From mboxrd@z Thu Jan 1 00:00:00 1970 From: swedebugia@riseup.net Subject: bug#33238: Fail nicely when profile is not found Date: Mon, 17 Dec 2018 03:04:04 -0800 Message-ID: <8eb75951106df8ab37ad625d05dfc365@riseup.net> References: <3c9c7b9e-90ce-a70e-2850-b4e32d719f04@riseup.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40031) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gYqhv-0007cN-SX for bug-guix@gnu.org; Mon, 17 Dec 2018 06:05:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gYqhr-0006ad-8d for bug-guix@gnu.org; Mon, 17 Dec 2018 06:05:07 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:46659) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gYqhr-0006aW-3T for bug-guix@gnu.org; Mon, 17 Dec 2018 06:05:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gYqhq-0006aR-S4 for bug-guix@gnu.org; Mon, 17 Dec 2018 06:05:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <3c9c7b9e-90ce-a70e-2850-b4e32d719f04@riseup.net> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: 33238@debbugs.gnu.org Cc: bug-Guix On 2018-11-02 09:00, swedebugia wrote: > Hi > > I installed guix from AUR and ran into this: > > $ guix pull -l > Backtrace: >            8 (apply-smob/1 #) > In ice-9/boot-9.scm: >     705:2  7 (call-with-prompt _ _ #) > In ice-9/eval.scm: >     619:8  6 (_ #(#(#))) > In guix/ui.scm: >   1578:12  5 (run-guix-command _ . _) > In ice-9/boot-9.scm: >     829:9  4 (catch srfi-34 # …) >     829:9  3 (catch system-error # …) >     829:9  2 (catch git-error # …) >     829:9  1 (catch system-error # …) > In unknown file: >            0 (raise #) > > ERROR: In procedure raise: > Wrong type (expecting exact integer): # &profile-not-found-error [profile: "/home/egil/.config/guix/current"] > 55dd9ac9a240> > > The install went fine but guix is not working :/ so I will do a manual > binary install instead. > > I could try crafting a patch testing if the directory exist if > somebody is willing to point me to the right file (and perhaps an > example of a procedure that can check this) > > Cheers > Swedebugia > > $ guix --version > guix (GNU Guix) 0.15.0 > Copyright (C) 2018 the Guix authors > License GPLv3+: GNU GPL version 3 or later > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. This is still present: sdb@antelope ~/src/guix$ ./pre-inst-env guix describe Git checkout: repository: /home/sdb/src/guix branch: HEAD commit: c4cc1b9d20212369d485a7b3788160117926ea3b sdb@antelope ~/src/guix$ ./pre-inst-env guix pull -l Backtrace: 8 (apply-smob/1 #) In ice-9/boot-9.scm: 705:2 7 (call-with-prompt _ _ #) In ice-9/eval.scm: 619:8 6 (_ #(#(#))) In guix/ui.scm: 1603:12 5 (run-guix-command _ . _) In ice-9/boot-9.scm: 829:9 4 (catch srfi-34 # …) 829:9 3 (catch system-error # …) 829:9 2 (catch git-error # …) 829:9 1 (catch system-error # …) In unknown file: 0 (raise #) ERROR: In procedure raise: Wrong type (expecting exact integer): # The relevant code from pull.scm is this: (define (process-query opts profile) "Process any query on PROFILE specified by OPTS." (match (assoc-ref opts 'query) (('list-generations pattern) (define (list-generations profile numbers) (match numbers ((first rest ...) (display-profile-content profile first) (let loop ((numbers numbers)) (match numbers ((first second rest ...) (display-profile-content-diff profile first second) (loop (cons second rest))) ((_) #t) (() #t)))))) (leave-on-EPIPE (cond ((not (file-exists? profile)) ; XXX: race condition (raise (condition (&profile-not-found-error (profile profile))))) ((string-null? pattern) (list-generations profile (profile-generations profile))) ((matching-generations pattern profile) => (match-lambda (() (exit 1)) ((numbers ...) (list-generations profile numbers))))))))) -- Cheers Swedebugia