Subject: Re: on guix 0.3 package -e '(@ …)' has to be run twice to install a new package (not build yet)

From: Arne Babenhauserheide <[email-masked]>
Date: Sat, 14 Sep 2013 01:07:20 +0200

The referenced file:

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <[email-masked]>
;;; Copyright © 2013 Cyril Roelandt <[email-masked]>
;;; Copyright © 2013 Ludovic Courtès <[email-masked]>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (mercurial)
  #:use-module ((guix licenses) #:select (asl2.0 gpl1+ gpl2+ gpl3+))
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system python)
  #:use-module (guix build utils)
  #:use-module ((gnu packages gettext)
                #:renamer (symbol-prefix-proc 'guix:))
  #:use-module (gnu packages libapr)
  #:use-module (gnu packages nano)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages python)
  #:use-module (gnu packages sqlite)
  #:use-module (gnu packages system)
  #:use-module (gnu packages emacs)
  #:use-module (gnu packages compression))

(define-public hg
  (package
    (name "mercurial")
    (version "2.7.1")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "http://mercurial.selenic.com/release/mercurial-" version ".tar.gz"))
      (sha256
       (base32
        "121m8f7vmipmdg00cnzdz2rjkgydh28mwfirqkrbs5fv089vywl4"))))
    (build-system python-build-system)
    (home-page "http://mercurial.selenic.com")
    (synopsis "Decentralized version control system")
    (description
     "Mercurial is a free, distributed source control management tool. 
It efficiently handles projects of any size and offers an easy and intuitive interface.")
    (license gpl2+)))

Am Freitag, 6. September 2013, 11:00:01 schrieb Arne Babenhauserheide:
> To test the bug, save this file as mercurial.scm: http://bpaste.net/raw/129793/
> 
> Now run
>  
>     GUILE_LOAD_PATH=. guix package -e '(@ (mercurial) hg)'
> 
> 
> On the first run I got the following backtrace: 
> 
> @ build-succeeded /nix/store/9rajwkq02sk4nq7cvrxilbsvxrywh2zs-mercurial-2.7.1.drv -
> Backtrace:
> In ice-9/boot-9.scm:
>  157: 14 [catch #t #<catch-closure 88e540> ...]
> In unknown file:
>    ?: 13 [apply-smob/1 #<catch-closure 88e540>]
> In ice-9/boot-9.scm:
>   63: 12 [call-with-prompt prompt0 ...]
> In ice-9/eval.scm:
>  432: 11 [eval # #]
> In ice-9/boot-9.scm:
> 2320: 10 [save-module-excursion #<procedure 8becc0 at ice-9/boot-9.scm:3961:3 ()>]
> 3966: 9 [#<procedure 8becc0 at ice-9/boot-9.scm:3961:3 ()>]
> In unknown file:
>    ?: 8 [load-compiled/vm "/home/arne/.cache/guile/ccache/2.0-LE-8-2.0/usr/local/bin/guix.go"]
> In guix/ui.scm:
>  475: 7 [run-guix-command package "-e" "(@ (mercurial) hg)"]
> In ice-9/boot-9.scm:
>  157: 6 [catch srfi-34 #<procedure e98aa0 at guix/ui.scm:153:2 ()> ...]
>  157: 5 [catch system-error ...]
> In guix/scripts/package.scm:
>  951: 4 [#<procedure 17c1570 at guix/scripts/package.scm:937:8 ()>]
>  866: 3 [process-actions (# # # #)]
> In guix/store.scm:
>  483: 2 [build-derivations # #]
>  334: 1 [process-stderr #]
> In guix/serialization.scm:
>   49: 0 [read-int #<input-output: socket 9>]
> 
> guix/serialization.scm:49:4: In procedure read-int:
> guix/serialization.scm:49:4: In procedure bv-u32-ref: Wrong type argument in position 1 (expecting bytevector): #<eof>
> 
> The second run succeeds.

-- 
1w6 sie zu achten,
sie alle zu finden,
in Spiele zu leiten
und sacht zu verbinden.
→ http://1w6.org