unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#25775: Can't install packages after guix pull
@ 2017-02-17 16:04 sirgazil
  2017-02-18 11:11 ` Pjotr Prins
                   ` (2 more replies)
  0 siblings, 3 replies; 25+ messages in thread
From: sirgazil @ 2017-02-17 16:04 UTC (permalink / raw)
  To: 25775

[-- Attachment #1: Type: text/plain, Size: 2761 bytes --]

Hi,

I've been using the binary installation of Guix on Debian 8 for some time now. However, after a "guix pull", I can't install packages anymore.


Steps to reproduce
===============


- Run "guix pull" as a user

- Run "guix package -i guile"




Expected result
============

The latest stable version of GNU Guile is installed correctly.


Unexpected result
==============

I get the following error:

warning: failed to install locale: Invalid argument
Backtrace:
In guix/packages.scm:
982: 19 [bag-grafts # #]
966: 18 [fold-bag-dependencies #<procedure bbfa4f0 at guix/packages.scm:982:29 (package grafts)> ...]
983: 17 [#<procedure bbfa4f0 at guix/packages.scm:982:29 (package grafts)> # ()]
786: 16 [cache! #<weak-key-hash-table a01b060 0/223> # "i686-linux" ...]
910: 15 [thunk]
786: 14 [cache! #<weak-key-hash-table a01b280 167/223> # # ...]
1092: 13 [thunk]
1024: 12 [bag->derivation # # #]
In srfi/srfi-1.scm:
578: 11 [map #<procedure b73c510 at guix/packages.scm:1026:30 (t-1321339)> #]
In guix/packages.scm:
846: 10 [expand-input # # # ...]
In guix/store.scm:
1249: 9 [run-with-store # ...]
In guix/packages.scm:
480: 8 [#<procedure b7591e0 at guix/packages.scm:480:2 (state)> #]
485: 7 [#<procedure bbc9a80 at guix/packages.scm:485:34 (state)> #]
In gnu/packages/bash.scm:
249: 6 [#<procedure bbc9aa0 at gnu/packages/bash.scm:249:2 (state)> #]
In guix/download.scm:
421: 5 [#<procedure bafce38 at guix/download.scm:421:2 (state)> #]
In guix/store.scm:
1169: 4 [#<procedure b759138 at guix/store.scm:1168:28 (store)> #]
In guix/packages.scm:
786: 3 [cache! #<weak-key-hash-table a01b280 167/223> #f ...]
1092: 2 [thunk]
786: 1 [cache! #<weak-key-hash-table a01b100 169/223> #f ...]
871: 0 [thunk]

guix/packages.scm:871:27: In procedure thunk:
guix/packages.scm:871:27: In procedure struct_vtable: Wrong type argument in position 1 (expecting struct): #f


System information
===============

Guix (after pull): guix (GNU Guix) 20170216.20

Foreign distro:
Debian 8 (Linux makina 3.16.0-4-686-pae #1 SMP Debian 3.16.39-1 (2016-12-30) i686 GNU/Linux)


Additional notes
=============

There is a related conversation about this problem in #guix log (https://gnunet.org/bot/log/guix/2017-02-17#T1295254) where amz3` reported the same problem on Ubuntu 16.10 (amd64). lfam couldn't reproduce the problem on x86_64 Guix on Debian.

It was suggested by lfam in the same conversation that the problem might be due to a very old guix-daemon, which is true for my system. However, there was no way for me to update the daemon because I get the same error described above when I run the second step of the following procedure (run as root):


- Run "guix pull"

- Run "guix package --upgrade"

- Restart guix-daemon





---
https://sirgazil.bitbucket.io/

[-- Attachment #2: Type: text/html, Size: 4229 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-17 16:04 bug#25775: Can't install packages after guix pull sirgazil
@ 2017-02-18 11:11 ` Pjotr Prins
  2017-02-18 14:29   ` Pjotr Prins
                     ` (2 more replies)
  2017-02-20 16:06 ` Ricardo Wurmus
  2017-02-21  8:52 ` bug#25775: Attempts to fix bootstrap Guile bug Andy Wingo
  2 siblings, 3 replies; 25+ messages in thread
From: Pjotr Prins @ 2017-02-18 11:11 UTC (permalink / raw)
  To: sirgazil; +Cc: 25775

I am seeing the same on a fresh checkout and build:

penguin2:~/genenetwork/guix$ ./pre-inst-env guix package -p $HOME/opt/guix-build-system --install autoconf
warning: failed to install locale: Invalid argument
Backtrace:
In guix/packages.scm:
 982: 19 [bag-grafts # #]
 966: 18 [fold-bag-dependencies #<procedure 3cc5a20 at guix/packages.scm:982:29 (package grafts)> ...]
 983: 17 [#<procedure 3cc5a20 at guix/packages.scm:982:29 (package grafts)> # ()]
 786: 16 [cache! #<weak-key-hash-table 190de00 0/223> # "x86_64-linux" ...]
 910: 15 [thunk]
 786: 14 [cache! #<weak-key-hash-table 18fc520 167/223> # # ...]
1092: 13 [thunk]
1024: 12 [bag->derivation # # #]
In srfi/srfi-1.scm:
 578: 11 [map #<procedure 43a1960 at guix/packages.scm:1026:30 (t-1699962)> #]
In guix/packages.scm:
 846: 10 [expand-input # # # ...]
In guix/store.scm:
1249: 9 [run-with-store # ...]
In guix/packages.scm:
 480: 8 [#<procedure 43f9f60 at guix/packages.scm:480:2 (state)> #]
 485: 7 [#<procedure 3f5ff40 at guix/packages.scm:485:34 (state)> #]
In gnu/packages/bash.scm:
 249: 6 [#<procedure 3f5ff80 at gnu/packages/bash.scm:249:2 (state)> #]
In guix/download.scm:
 421: 5 [#<procedure 418ea00 at guix/download.scm:421:2 (state)> #]
In guix/store.scm:
1169: 4 [#<procedure 43f9e10 at guix/store.scm:1168:28 (store)> #]
In guix/packages.scm:
 786: 3 [cache! #<weak-key-hash-table 18fc520 167/223> #f ...]
1092: 2 [thunk]
 786: 1 [cache! #<weak-key-hash-table 1900640 169/223> #f ...]
 871: 0 [thunk]

@ commit 42e721a13d6f47397e585f5909d140c4bafb4ad0

Installation with --no-grafts passes fine.

Pj.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-18 11:11 ` Pjotr Prins
@ 2017-02-18 14:29   ` Pjotr Prins
  2017-02-18 15:35   ` Ricardo Wurmus
  2017-02-19  9:21   ` pelzflorian (Florian Pelz)
  2 siblings, 0 replies; 25+ messages in thread
From: Pjotr Prins @ 2017-02-18 14:29 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: sirgazil, 25775

And this appears to be related:

./pre-inst-env guix import cpan Time::ParseDate

Starting download of /tmp/guix-file.4UM1ZV
From http://mirror.ibcp.fr/pub/CPAN/authors/id/M/MU/MUIR/modules/Time-ParseDate-2015.103.tar.gz...
 ...2015.103.tar.gz  26KiB          214KiB/s 00:00 [####################] 100.0%
Backtrace:
In guix/packages.scm:
 982: 19 [bag-grafts # #]
 966: 18 [fold-bag-dependencies #<procedure 54aef20 at guix/packages.scm:982:29 (package grafts)> ...]
 983: 17 [#<procedure 54aef20 at guix/packages.scm:982:29 (package grafts)> # ()]
 786: 16 [cache! #<weak-key-hash-table 2be7100 0/223> # "x86_64-linux" ...]
 910: 15 [thunk]
 786: 14 [cache! #<weak-key-hash-table 2be7540 167/223> # # ...]
1092: 13 [thunk]
1024: 12 [bag->derivation # # #]
In srfi/srfi-1.scm:
 578: 11 [map #<procedure 5b16ba0 at guix/packages.scm:1026:30 (t-23184)> #]
In guix/packages.scm:
 846: 10 [expand-input # # # ...]
In guix/store.scm:
1249: 9 [run-with-store # ...]
In guix/packages.scm:
 480: 8 [#<procedure 5b3b870 at guix/packages.scm:480:2 (state)> #]
 485: 7 [#<procedure 420b600 at guix/packages.scm:485:34 (state)> #]
In gnu/packages/bash.scm:
 249: 6 [#<procedure 420b640 at gnu/packages/bash.scm:249:2 (state)> #]
In guix/download.scm:
 421: 5 [#<procedure 597a500 at guix/download.scm:421:2 (state)> #]
In guix/store.scm:
1169: 4 [#<procedure 5b3b720 at guix/store.scm:1168:28 (store)> #]
In guix/packages.scm:
 786: 3 [cache! #<weak-key-hash-table 2be7540 167/223> #f ...]
1092: 2 [thunk]
 786: 1 [cache! #<weak-key-hash-table 2be7240 170/223> #f ...]
 871: 0 [thunk]

guix/packages.scm:871:27: In procedure thunk:
guix/packages.scm:871:27: In procedure struct_vtable: Wrong type argument in position 1 (expecting struct): #f

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-18 11:11 ` Pjotr Prins
  2017-02-18 14:29   ` Pjotr Prins
@ 2017-02-18 15:35   ` Ricardo Wurmus
  2017-02-18 16:18     ` Pjotr Prins
  2017-02-19  9:21   ` pelzflorian (Florian Pelz)
  2 siblings, 1 reply; 25+ messages in thread
From: Ricardo Wurmus @ 2017-02-18 15:35 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: sirgazil, 25775


Pjotr Prins <pjotr.public12@thebird.nl> writes:

> I am seeing the same on a fresh checkout and build:

Sirgazil wrote that an old version of the guix-daemon is in use.  What
version of the guix-daemon are you using, Pjotr?

-- 
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-18 15:35   ` Ricardo Wurmus
@ 2017-02-18 16:18     ` Pjotr Prins
  2017-02-18 16:30       ` Pjotr Prins
  0 siblings, 1 reply; 25+ messages in thread
From: Pjotr Prins @ 2017-02-18 16:18 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: sirgazil, 25775

On Sat, Feb 18, 2017 at 04:35:06PM +0100, Ricardo Wurmus wrote:
> 
> Pjotr Prins <pjotr.public12@thebird.nl> writes:
> 
> > I am seeing the same on a fresh checkout and build:
> 
> Sirgazil wrote that an old version of the guix-daemon is in use.  What
> version of the guix-daemon are you using, Pjotr?

/gnu/store/wvj056mfbqid88q2l119kb3mwicii0i6-guix-0.11.0-1.4420/bin/guix-daemon

I'll try a later version soon. At least it builds without grafts.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-18 16:18     ` Pjotr Prins
@ 2017-02-18 16:30       ` Pjotr Prins
  2017-02-20  8:31         ` Tomas Cech
  2017-02-20 22:44         ` Ben Sturmfels
  0 siblings, 2 replies; 25+ messages in thread
From: Pjotr Prins @ 2017-02-18 16:30 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: sirgazil, 25775

Yes, using the latest guix-daemon and guix client fixed it:

/gnu/store/175nlv448nk5kagwwl3zyy2w4726qfz6-guix-0.12.0-4.d9da/bin/guix-daemon

/home/pjotr/genenetwork/guix/scripts/guix --version
guix (GNU Guix) 20170218.09


./pre-inst-env guix import cpan Time::ParseDate

Starting download of /tmp/guix-file.hSC5MT
From http://mirror.ibcp.fr/pub/CPAN/authors/id/M/MU/MUIR/modules/Time-ParseDate-2015.103.tar.gz...
 ...2015.103.tar.gz  26KiB          201KiB/s 00:00 [####################] 100.0%
(package
  (name "perl-time-parsedate")
  (version "2015.103")
  (source
    (origin
      (method url-fetch)
      (uri (string-append
             "mirror://cpan/authors/id/M/MU/MUIR/modules/Time-ParseDate-"
             version
             ".tar.gz"))
      (sha256
        (base32
          "1lgfr87j4qwqnln0hyyzgik5ixqslzdaksn9m8y824gqbcihc6ic"))))
  (build-system perl-build-system)
  (native-inputs
    `(("perl-extutils-makemaker"
       ,perl-extutils-makemaker)
      ("perl-time-piece" ,perl-time-piece)))
  (home-page
    "http://search.cpan.org/dist/Time-ParseDate")
  (synopsis "Parse and format time values")
  (description fill-in-yourself!)
  (license #f))

I also confirm 'guix pull' failed with the older daemon. Whatever system we
find to replace 'guix pull' should be more conservative in preventing this type of 
breakage.

-- 

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-18 11:11 ` Pjotr Prins
  2017-02-18 14:29   ` Pjotr Prins
  2017-02-18 15:35   ` Ricardo Wurmus
@ 2017-02-19  9:21   ` pelzflorian (Florian Pelz)
  2017-02-19  9:26     ` Ricardo Wurmus
  2017-02-19  9:43     ` pelzflorian (Florian Pelz)
  2 siblings, 2 replies; 25+ messages in thread
From: pelzflorian (Florian Pelz) @ 2017-02-19  9:21 UTC (permalink / raw)
  To: 25775

On 02/18/2017 12:11 PM, Pjotr Prins wrote:
> I am seeing the same on a fresh checkout and build:
> 
> penguin2:~/genenetwork/guix$ ./pre-inst-env guix package -p $HOME/opt/guix-build-system --install autoconf
> warning: failed to install locale: Invalid argument
> Backtrace:
> In guix/packages.scm:
>  982: 19 [bag-grafts # #]
>  966: 18 [fold-bag-dependencies #<procedure 3cc5a20 at guix/packages.scm:982:29 (package grafts)> ...]
>  983: 17 [#<procedure 3cc5a20 at guix/packages.scm:982:29 (package grafts)> # ()]
>  786: 16 [cache! #<weak-key-hash-table 190de00 0/223> # "x86_64-linux" ...]
>  910: 15 [thunk]
>  786: 14 [cache! #<weak-key-hash-table 18fc520 167/223> # # ...]
> 1092: 13 [thunk]
> 1024: 12 [bag->derivation # # #]
> In srfi/srfi-1.scm:
>  578: 11 [map #<procedure 43a1960 at guix/packages.scm:1026:30 (t-1699962)> #]
> In guix/packages.scm:
>  846: 10 [expand-input # # # ...]
> In guix/store.scm:
> 1249: 9 [run-with-store # ...]
> In guix/packages.scm:
>  480: 8 [#<procedure 43f9f60 at guix/packages.scm:480:2 (state)> #]
>  485: 7 [#<procedure 3f5ff40 at guix/packages.scm:485:34 (state)> #]
> In gnu/packages/bash.scm:
>  249: 6 [#<procedure 3f5ff80 at gnu/packages/bash.scm:249:2 (state)> #]
> In guix/download.scm:
>  421: 5 [#<procedure 418ea00 at guix/download.scm:421:2 (state)> #]
> In guix/store.scm:
> 1169: 4 [#<procedure 43f9e10 at guix/store.scm:1168:28 (store)> #]
> In guix/packages.scm:
>  786: 3 [cache! #<weak-key-hash-table 18fc520 167/223> #f ...]
> 1092: 2 [thunk]
>  786: 1 [cache! #<weak-key-hash-table 1900640 169/223> #f ...]
>  871: 0 [thunk]
> 
> @ commit 42e721a13d6f47397e585f5909d140c4bafb4ad0
> 
> Installation with --no-grafts passes fine.
> 
> Pj.
> 

I had the same error yesterday on Arch after `guix pull` when I tried to
`guix system init` or `guix package -u`. I tried again with a newly
compiled guix from git, but the same error occurred. I did not try
--no-grafts.

Today I don’t even get that far:

$ guix package -u
guix package: error: failed to connect to
`/var/guix/daemon-socket/socket': Connection refused

`systemctl status -l guix-daemon` shows no errors. Another reboot of
course does not help.

Regards,
Florian

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-19  9:21   ` pelzflorian (Florian Pelz)
@ 2017-02-19  9:26     ` Ricardo Wurmus
  2017-02-19  9:43     ` pelzflorian (Florian Pelz)
  1 sibling, 0 replies; 25+ messages in thread
From: Ricardo Wurmus @ 2017-02-19  9:26 UTC (permalink / raw)
  To: pelzflorian (Florian Pelz); +Cc: 25775


pelzflorian (Florian Pelz) <pelzflorian@pelzflorian.de> writes:

> Today I don’t even get that far:
>
> $ guix package -u
> guix package: error: failed to connect to
> `/var/guix/daemon-socket/socket': Connection refused

This indicates that the daemon is not running.  The daemon (when
running) listens for connections on that socket file.

-- 
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-19  9:21   ` pelzflorian (Florian Pelz)
  2017-02-19  9:26     ` Ricardo Wurmus
@ 2017-02-19  9:43     ` pelzflorian (Florian Pelz)
  1 sibling, 0 replies; 25+ messages in thread
From: pelzflorian (Florian Pelz) @ 2017-02-19  9:43 UTC (permalink / raw)
  To: 25775

A full uninstall and reinstall as described on the Arch wiki solved the
issue for me; `guix pull` and everything works again. systemctl had
reported the daemon to be running; I still have no idea what happened.
Some network thing? No idea.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-18 16:30       ` Pjotr Prins
@ 2017-02-20  8:31         ` Tomas Cech
  2017-02-20 22:44         ` Ben Sturmfels
  1 sibling, 0 replies; 25+ messages in thread
From: Tomas Cech @ 2017-02-20  8:31 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: sirgazil, 25775

On Sat, 18 Feb 2017 17:30:34 +0100,
Pjotr Prins wrote:
> 
> Yes, using the latest guix-daemon and guix client fixed it:
> 
> /gnu/store/175nlv448nk5kagwwl3zyy2w4726qfz6-guix-0.12.0-4.d9da/bin/guix-daemon
> 
> /home/pjotr/genenetwork/guix/scripts/guix --version
> guix (GNU Guix) 20170218.09
> 
> 
> ./pre-inst-env guix import cpan Time::ParseDate
> 
> Starting download of /tmp/guix-file.hSC5MT
> >From http://mirror.ibcp.fr/pub/CPAN/authors/id/M/MU/MUIR/modules/Time-ParseDate-2015.103.tar.gz...
>  ...2015.103.tar.gz  26KiB          201KiB/s 00:00 [####################] 100.0%
> (package
>   (name "perl-time-parsedate")
>   (version "2015.103")
>   (source
>     (origin
>       (method url-fetch)
>       (uri (string-append
>              "mirror://cpan/authors/id/M/MU/MUIR/modules/Time-ParseDate-"
>              version
>              ".tar.gz"))
>       (sha256
>         (base32
>           "1lgfr87j4qwqnln0hyyzgik5ixqslzdaksn9m8y824gqbcihc6ic"))))
>   (build-system perl-build-system)
>   (native-inputs
>     `(("perl-extutils-makemaker"
>        ,perl-extutils-makemaker)
>       ("perl-time-piece" ,perl-time-piece)))
>   (home-page
>     "http://search.cpan.org/dist/Time-ParseDate")
>   (synopsis "Parse and format time values")
>   (description fill-in-yourself!)
>   (license #f))
> 
> I also confirm 'guix pull' failed with the older daemon. Whatever system we
> find to replace 'guix pull' should be more conservative in preventing this type of 
> breakage.


So this means that users of Guix can't make `guix pull' continuously
and will eventually need to use GIT tree?

If so, shouldn't we make new quick release to fill the gap?

Or split release of Guix and guix-daemon? That could be helpful...

S_W

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-17 16:04 bug#25775: Can't install packages after guix pull sirgazil
  2017-02-18 11:11 ` Pjotr Prins
@ 2017-02-20 16:06 ` Ricardo Wurmus
  2017-02-23 19:28   ` Leo Famulari
  2017-02-21  8:52 ` bug#25775: Attempts to fix bootstrap Guile bug Andy Wingo
  2 siblings, 1 reply; 25+ messages in thread
From: Ricardo Wurmus @ 2017-02-20 16:06 UTC (permalink / raw)
  To: sirgazil; +Cc: 25775

This problem was exposed by commit 50b8a527e, which adds a graft for
bash and along with it a download method for bash patches.  What happens
is that for a reason I haven’t yet understood the download method
procedure is called with “#f” instead of a package object for guile.

This is no problem when the built-in downloader is used, because by
design it doesn’t need Guile or GnuTLS.  Older daemons do not have a
built-in downloader and fall back to the “in-band-download”, which needs
to be passed a Guile package.  Because this doesn’t happen in this case,
Guix at this commit or later abort when an old daemon is used.

Since I lack an understanding of why the “guile” argument could ever
purposefully be set to “#f” I cannot come up with a nice fix.  Instead
of a nice fix I have found a really gross fix:

--8<---------------cut here---------------start------------->8---
diff --git a/guix/download.scm b/guix/download.scm
index 813f51f48..86f859881 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -418,7 +418,10 @@ GnuTLS itself and its dependencies.  See <http://bugs.gnu.org/22774>."
                        ;; hash of the expected result.
                        #:verify-certificate? #f)))))

-  (mlet %store-monad ((guile (package->derivation guile system)))
+  (mlet %store-monad ((guile (package->derivation
+                              (or guile
+                                  (@@ (gnu packages bootstrap) %bootstrap-guile))
+                              system)))
     (gexp->derivation file-name builder
                       #:guile-for-build guile
                       #:system system
--8<---------------cut here---------------end--------------->8---

With this patch installed I can use the latest Guix with an ancient
guix-daemon (I tested with 0.10.0).

For those of you who are using Guix on top of a foreign distribution:
you may find the following steps helpful in upgrading the daemon to
a compatible version.

--8<---------------cut here---------------start------------->8---
# become root
su -

# update to the last version of guix that works
# with older daemons
guix pull --url=http://git.savannah.gnu.org/cgit/guix.git/snapshot/afd532337.tar.gz

# update root's profile to get a new "guix" package
# including a new daemon
guix package -u

# edit the systemd unit to use the new daemon
sed -i "s|ExecStart=.*|ExecStart=/root/.guix-profile/bin/guix-daemon --build-users-group=guixbuild" /etc/systemd/system/guix-daemon.service

# reload the unit file
systemctl daemon-reload

# restart the daemon
systemctl restart guix-daemon

# now become a regular user and run "guix pull"
exit
guix pull
--8<---------------cut here---------------end--------------->8---

Ideally, this wouldn’t be necessary, but I cannot install this ugly
patch (or a prettier variant thereof) before someone who is more
familiar with the code has looked over it.

I hope this helps!

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-18 16:30       ` Pjotr Prins
  2017-02-20  8:31         ` Tomas Cech
@ 2017-02-20 22:44         ` Ben Sturmfels
  2017-02-20 22:52           ` Ben Sturmfels
                             ` (2 more replies)
  1 sibling, 3 replies; 25+ messages in thread
From: Ben Sturmfels @ 2017-02-20 22:44 UTC (permalink / raw)
  To: 25775

On Sat, 18 Feb 2017 16:30:34 +0000
Pjotr Prins <pjotr.public12@thebird.nl> wrote:

> Yes, using the latest guix-daemon and guix client fixed it:
> 
> /gnu/store/175nlv448nk5kagwwl3zyy2w4726qfz6-guix-0.12.0-4.d9da/bin/guix-daemon

Could I trouble you to walk through the steps for manually installing a
different version of guix-daemon? I'm stuck in the same situation where
I can't `guix package --install`.

Regards,
Ben

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-20 22:44         ` Ben Sturmfels
@ 2017-02-20 22:52           ` Ben Sturmfels
  2017-02-21  2:20             ` Ben Sturmfels
  2017-02-21  5:41           ` Pjotr Prins
  2017-02-21  7:16           ` Ricardo Wurmus
  2 siblings, 1 reply; 25+ messages in thread
From: Ben Sturmfels @ 2017-02-20 22:52 UTC (permalink / raw)
  To: 25775

On Tue, 21 Feb 2017 09:44:03 +1100
Ben Sturmfels <ben@stumbles.id.au> wrote:

> On Sat, 18 Feb 2017 16:30:34 +0000
> Pjotr Prins <pjotr.public12@thebird.nl> wrote:
> 
> > Yes, using the latest guix-daemon and guix client fixed it:
> > 
> > /gnu/store/175nlv448nk5kagwwl3zyy2w4726qfz6-guix-0.12.0-4.d9da/bin/guix-daemon  
> 
> Could I trouble you to walk through the steps for manually installing
> a different version of guix-daemon? I'm stuck in the same situation
> where I can't `guix package --install`.

(Also can't `guix pull` without an error)

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-20 22:52           ` Ben Sturmfels
@ 2017-02-21  2:20             ` Ben Sturmfels
  2017-02-21 22:36               ` Ricardo Wurmus
  0 siblings, 1 reply; 25+ messages in thread
From: Ben Sturmfels @ 2017-02-21  2:20 UTC (permalink / raw)
  To: 25775

On Tue, 21 Feb 2017 09:52:11 +1100
Ben Sturmfels <ben@stumbles.id.au> wrote:

> > Could I trouble you to walk through the steps for manually
> > installing a different version of guix-daemon? I'm stuck in the
> > same situation where I can't `guix package --install`.  
> 
> (Also can't `guix pull` without an error)

I'm attempting to fix my GuixSD system by downloading Guix
0.12.0 Binary, extracting and running guix-daemon, then running `guix
pull` against that. The daemon runs ok, but `guix pull` is expecting
its dependencies to be at /gnu, when they're actually at
~/Downloads/gnu. Any suggestions?

$ sudo
Downloads/gnu/store/gj2i5xs7nm80mwrb139pa8iqfccw08zz-guix-0.12.0/bin/guix-daemon
--build-users-group guixbuild --substitute-urls
https://mirror.hydra.gnu.org

$
~/Downloads/gnu/store/gj2i5xs7nm80mwrb139pa8iqfccw08zz-guix-0.12.0/bin/guix
pull
--url=http://git.savannah.gnu.org/cgit/guix.git/snapshot/guix-0.12.0.tar.gz 
/home/ben/Downloads/gnu/store/gj2i5xs7nm80mwrb139pa8iqfccw08zz-guix-0.12.0/bin/guix:
line
4: /gnu/store/gj2i5xs7nm80mwrb139pa8iqfccw08zz-guix-0.12.0/bin/.guix-real:
No such file or directory

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-20 22:44         ` Ben Sturmfels
  2017-02-20 22:52           ` Ben Sturmfels
@ 2017-02-21  5:41           ` Pjotr Prins
  2017-02-21  7:16           ` Ricardo Wurmus
  2 siblings, 0 replies; 25+ messages in thread
From: Pjotr Prins @ 2017-02-21  5:41 UTC (permalink / raw)
  To: Ben Sturmfels; +Cc: 25775

On Tue, Feb 21, 2017 at 09:44:03AM +1100, Ben Sturmfels wrote:
> On Sat, 18 Feb 2017 16:30:34 +0000
> Pjotr Prins <pjotr.public12@thebird.nl> wrote:
> 
> > Yes, using the latest guix-daemon and guix client fixed it:
> > 
> > /gnu/store/175nlv448nk5kagwwl3zyy2w4726qfz6-guix-0.12.0-4.d9da/bin/guix-daemon
> 
> Could I trouble you to walk through the steps for manually installing a
> different version of guix-daemon? I'm stuck in the same situation where
> I can't `guix package --install`.

Since all the paths are hardcoded inside guix binaries you can move a
version of ./gnu/store/*-guix-0.12.* into the /gnu/store and run it
from there. The store does not care what you move there as long as the
path is unique (a feature of isolation) and it will actually clean up
when you garbage collect. You can even use the binaries inside the
binary tarball distribution of Guix by copying that one directory in.

Note that you should not overwrite files in /var/guix - where the
database resides as it will bring your whole system into a different
state.

I guess this is somewhat of a dirty fix, but it can fast track things
when you are stuck. Guix archive works in a similar fashion, but also
updates the database.

Pj.
-- 

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-20 22:44         ` Ben Sturmfels
  2017-02-20 22:52           ` Ben Sturmfels
  2017-02-21  5:41           ` Pjotr Prins
@ 2017-02-21  7:16           ` Ricardo Wurmus
  2 siblings, 0 replies; 25+ messages in thread
From: Ricardo Wurmus @ 2017-02-21  7:16 UTC (permalink / raw)
  To: Ben Sturmfels; +Cc: 25775


Ben Sturmfels <ben@stumbles.id.au> writes:

> On Sat, 18 Feb 2017 16:30:34 +0000
> Pjotr Prins <pjotr.public12@thebird.nl> wrote:
>
>> Yes, using the latest guix-daemon and guix client fixed it:
>> 
>> /gnu/store/175nlv448nk5kagwwl3zyy2w4726qfz6-guix-0.12.0-4.d9da/bin/guix-daemon
>
> Could I trouble you to walk through the steps for manually installing a
> different version of guix-daemon? I'm stuck in the same situation where
> I can't `guix package --install`.

I have posted a list of steps to update the daemon here:

    https://lists.gnu.org/archive/html/bug-guix/2017-02/msg00086.html

Do you need anything beyond that?

-- 
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Attempts to fix bootstrap Guile bug
  2017-02-17 16:04 bug#25775: Can't install packages after guix pull sirgazil
  2017-02-18 11:11 ` Pjotr Prins
  2017-02-20 16:06 ` Ricardo Wurmus
@ 2017-02-21  8:52 ` Andy Wingo
  2017-02-21 18:03   ` Leo Famulari
  2017-03-07 23:02   ` Ludovic Courtès
  2 siblings, 2 replies; 25+ messages in thread
From: Andy Wingo @ 2017-02-21  8:52 UTC (permalink / raw)
  To: 25775

Hi,

It seems that this bug is related to the introduction of
url-fetch/reset-patch-level.  It takes a #:guile kwarg but defaults to
#f; if not given #:guile, that #f propagates through instead of a
package object.

So one fix is here:

  diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
  index c8d94c8..d070cca 100644
  --- a/gnu/packages/bootstrap.scm
  +++ b/gnu/packages/bootstrap.scm
  @@ -76,8 +76,10 @@
   
     (let ((orig-method (origin-method source)))
       (origin (inherit source)
  -      (method (cond ((eq? orig-method url-fetch)
  -                     (boot url-fetch))
  +      (method (cond ((or (eq? orig-method url-fetch)
  +                         (eq? orig-method
  +                              (@@ (gnu packages bash) url-fetch/reset-patch-level)))
  +                     (boot orig-method))
                       (else orig-method)))
         (patch-guile %bootstrap-guile)
         (patch-inputs %bootstrap-patch-inputs)

I think anyway.  If you look at this code, the "boot" helper decorates
the url-fetch call with a #:guile.  But I don't think this function is
called for bash because I still see an error.

Another fix is here I think:

  diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
  index c121fd8..fdb3aa8 100644
  --- a/gnu/packages/bash.scm
  +++ b/gnu/packages/bash.scm
  @@ -250,7 +250,8 @@ can apply to a patch-level 0 Bash."
                          (patch (url-fetch url hash-algo hash
                                            (string-append name ".orig")
                                            #:system system
  -                                         #:guile guile)))
  +                                         #:guile guile))
  +                       (guile (package->derivation guile system)))
       (gexp->derivation name
                         (with-imported-modules '((guix build utils))
                           #~(begin

Here this "guile" propagates below to #:guile-for-build, which AFAIU
should be a derivation, not a package.

But even with this, I still get an error.  Add (unless guile (error
"what")) to the top of url-fetch/reset-patch-level, and I get:

  [6h8mzf08ld7r69yy9gdbxw9vba0l9sr2-profile] wingo@clucks:~/src/guix$ guix build guile-next
  Backtrace:
  In srfi/srfi-1.scm:
   575: 19 [map #<procedure 1a7fb40 at guix/scripts/build.scm:629:16 (expr)> (#)]
  In guix/scripts/build.scm:
   634: 18 [#<procedure 1a7fb40 at guix/scripts/build.scm:629:16 (expr)> #]
  In guix/packages.scm:
   786: 17 [cache! #<weak-key-hash-table 18a8a40 318/443> # # ...]
  1095: 16 [thunk]
   982: 15 [bag-grafts # #]
   966: 14 [fold-bag-dependencies #<procedure 501b0a0 at guix/packages.scm:982:29 (package grafts)> ...]
   983: 13 [#<procedure 501b0a0 at guix/packages.scm:982:29 (package grafts)> # #]
   786: 12 [cache! #<weak-key-hash-table 18a8600 3/223> # "x86_64-linux" ...]
   910: 11 [thunk]
   786: 10 [cache! #<weak-key-hash-table 18a8a40 318/443> # # ...]
  1092: 9 [thunk]
  1024: 8 [bag->derivation # # #]
  In srfi/srfi-1.scm:
   575: 7 [map #<procedure 4bce810 at guix/packages.scm:1026:30 (t-32174)> #]
  In guix/packages.scm:
   846: 6 [expand-input # # # ...]
  In guix/store.scm:
  1249: 5 [run-with-store # ...]
  In guix/packages.scm:
  1200: 4 [#<procedure 4cee600 at guix/packages.scm:1194:5 (state)> #]
   486: 3 [patch-and-repack # # # ...]
  In srfi/srfi-1.scm:
   575: 2 [map #<procedure instantiate-patch (expr)> (#)]
  In gnu/packages/bash.scm:
   249: 1 [url-fetch/reset-patch-level "mirror://gnu/bash/bash-4.4-patches/bash44-007" ...]
  In unknown file:
     ?: 0 [scm-error misc-error #f "~A" ("what") #f]

  ERROR: In procedure scm-error:
  ERROR: what

That indicates to me that somehow the origin for this bash (or is it
bash/fixed?) isn't getting its url-fetch call appropriately decorated.

I think in the meantime it would be acceptable to insert an

  (unless guile
    (error "update your guix daemon from git and restart it (#25775)"))

to url-fetch/reset-patch-level, or something like that.  WDYT?

Andy

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Attempts to fix bootstrap Guile bug
  2017-02-21  8:52 ` bug#25775: Attempts to fix bootstrap Guile bug Andy Wingo
@ 2017-02-21 18:03   ` Leo Famulari
  2017-02-21 22:34     ` Ricardo Wurmus
  2017-03-07 23:02   ` Ludovic Courtès
  1 sibling, 1 reply; 25+ messages in thread
From: Leo Famulari @ 2017-02-21 18:03 UTC (permalink / raw)
  To: Andy Wingo; +Cc: 25775

On Tue, Feb 21, 2017 at 09:52:09AM +0100, Andy Wingo wrote:
> I think in the meantime it would be acceptable to insert an
> 
>   (unless guile
>     (error "update your guix daemon from git and restart it (#25775)"))
> 
> to url-fetch/reset-patch-level, or something like that.  WDYT?

I think it would be better if users didn't have to set up a Guix
development environment to work around this bug.

My hunch is that the people who never updated root's packages and thus
experienced the bug are the people who are least comfortable with such a
solution.

What about Ricardo's "really gross fix"? [0] I don't understand it enough to
know why it's gross. If it works and does not break other things, at
least it could protect people who have not yet hit the bug, but will hit
it the next time they run `guix pull`.
 
[0]
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25775#35

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Attempts to fix bootstrap Guile bug
  2017-02-21 18:03   ` Leo Famulari
@ 2017-02-21 22:34     ` Ricardo Wurmus
  2017-02-21 23:00       ` Leo Famulari
  0 siblings, 1 reply; 25+ messages in thread
From: Ricardo Wurmus @ 2017-02-21 22:34 UTC (permalink / raw)
  To: Leo Famulari; +Cc: Andy Wingo, 25775


Leo Famulari <leo@famulari.name> writes:

> What about Ricardo's "really gross fix"? [0] I don't understand it enough to
> know why it's gross. If it works and does not break other things, at
> least it could protect people who have not yet hit the bug, but will hit
> it the next time they run `guix pull`.

It’s gross because it’s just a band aid.  I don’t know if it might break
other things (in my short tests it didn’t).  It shouldn’t affect people
with new daemons, because they will use the daemon’s download feature.

I guess we could just push it to fix “guix pull” now and revert later
once we have a good fix (or if it causes trouble).

What do you think?

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-21  2:20             ` Ben Sturmfels
@ 2017-02-21 22:36               ` Ricardo Wurmus
  2017-04-11  1:01                 ` Ben Sturmfels
  0 siblings, 1 reply; 25+ messages in thread
From: Ricardo Wurmus @ 2017-02-21 22:36 UTC (permalink / raw)
  To: Ben Sturmfels; +Cc: 25775


Ben Sturmfels <ben@stumbles.id.au> writes:

> On Tue, 21 Feb 2017 09:52:11 +1100
> Ben Sturmfels <ben@stumbles.id.au> wrote:
>
>> > Could I trouble you to walk through the steps for manually
>> > installing a different version of guix-daemon? I'm stuck in the
>> > same situation where I can't `guix package --install`.  
>> 
>> (Also can't `guix pull` without an error)
>
> I'm attempting to fix my GuixSD system by downloading Guix
> 0.12.0 Binary, extracting and running guix-daemon, then running `guix
> pull` against that. The daemon runs ok, but `guix pull` is expecting
> its dependencies to be at /gnu, when they're actually at
> ~/Downloads/gnu. Any suggestions?

How did you end up having dependencies outside of /gnu?  All Guix
packages depend only on things inside the store.  If you want to use
substitutes you cannot avoid /gnu.

-- 
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Attempts to fix bootstrap Guile bug
  2017-02-21 22:34     ` Ricardo Wurmus
@ 2017-02-21 23:00       ` Leo Famulari
  0 siblings, 0 replies; 25+ messages in thread
From: Leo Famulari @ 2017-02-21 23:00 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: Andy Wingo, 25775

On Tue, Feb 21, 2017 at 11:34:55PM +0100, Ricardo Wurmus wrote:
> 
> Leo Famulari <leo@famulari.name> writes:
> 
> > What about Ricardo's "really gross fix"? [0] I don't understand it enough to
> > know why it's gross. If it works and does not break other things, at
> > least it could protect people who have not yet hit the bug, but will hit
> > it the next time they run `guix pull`.
> 
> It’s gross because it’s just a band aid.  I don’t know if it might break
> other things (in my short tests it didn’t).  It shouldn’t affect people
> with new daemons, because they will use the daemon’s download feature.
> 
> I guess we could just push it to fix “guix pull” now and revert later
> once we have a good fix (or if it causes trouble).
> 
> What do you think?

Since you know my relative ignorance, take this with a grain of salt,
but that sounds good to me. You should probably wait for Andy's opinion,
though :)

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-20 16:06 ` Ricardo Wurmus
@ 2017-02-23 19:28   ` Leo Famulari
  2017-02-23 21:36     ` Ricardo Wurmus
  0 siblings, 1 reply; 25+ messages in thread
From: Leo Famulari @ 2017-02-23 19:28 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: sirgazil, 25775

[-- Attachment #1: Type: text/plain, Size: 1401 bytes --]

On Mon, Feb 20, 2017 at 05:06:48PM +0100, Ricardo Wurmus wrote:
> Since I lack an understanding of why the “guile” argument could ever
> purposefully be set to “#f” I cannot come up with a nice fix.  Instead
> of a nice fix I have found a really gross fix:
> 
> --8<---------------cut here---------------start------------->8---
> diff --git a/guix/download.scm b/guix/download.scm
> index 813f51f48..86f859881 100644
> --- a/guix/download.scm
> +++ b/guix/download.scm
> @@ -418,7 +418,10 @@ GnuTLS itself and its dependencies.  See <http://bugs.gnu.org/22774>."
>                         ;; hash of the expected result.
>                         #:verify-certificate? #f)))))
> 
> -  (mlet %store-monad ((guile (package->derivation guile system)))
> +  (mlet %store-monad ((guile (package->derivation
> +                              (or guile
> +                                  (@@ (gnu packages bootstrap) %bootstrap-guile))
> +                              system)))
>      (gexp->derivation file-name builder
>                        #:guile-for-build guile
>                        #:system system
> --8<---------------cut here---------------end--------------->8---

Based on discussion on #guix with Ricardo and Andy, I pushed this diff
as 9f05908fb1e3707cae593d94688748294717a546 on Ricardo's behalf.

I'm leaving the bug open until we find a better fix.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-23 19:28   ` Leo Famulari
@ 2017-02-23 21:36     ` Ricardo Wurmus
  0 siblings, 0 replies; 25+ messages in thread
From: Ricardo Wurmus @ 2017-02-23 21:36 UTC (permalink / raw)
  To: Leo Famulari; +Cc: sirgazil, 25775


Leo Famulari <leo@famulari.name> writes:

> On Mon, Feb 20, 2017 at 05:06:48PM +0100, Ricardo Wurmus wrote:
>> Since I lack an understanding of why the “guile” argument could ever
>> purposefully be set to “#f” I cannot come up with a nice fix.  Instead
>> of a nice fix I have found a really gross fix:
>>
>> --8<---------------cut here---------------start------------->8---
>> diff --git a/guix/download.scm b/guix/download.scm
>> index 813f51f48..86f859881 100644
>> --- a/guix/download.scm
>> +++ b/guix/download.scm
>> @@ -418,7 +418,10 @@ GnuTLS itself and its dependencies.  See <http://bugs.gnu.org/22774>."
>>                         ;; hash of the expected result.
>>                         #:verify-certificate? #f)))))
>>
>> -  (mlet %store-monad ((guile (package->derivation guile system)))
>> +  (mlet %store-monad ((guile (package->derivation
>> +                              (or guile
>> +                                  (@@ (gnu packages bootstrap) %bootstrap-guile))
>> +                              system)))
>>      (gexp->derivation file-name builder
>>                        #:guile-for-build guile
>>                        #:system system
>> --8<---------------cut here---------------end--------------->8---
>
> Based on discussion on #guix with Ricardo and Andy, I pushed this diff
> as 9f05908fb1e3707cae593d94688748294717a546 on Ricardo's behalf.

Thank you!

> I'm leaving the bug open until we find a better fix.

That’s fair.

For people who encounter this bug at a later point: please upgrade the
daemon; that’s better than trying to use the latest Guix with an
outdated daemon.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

^ permalink raw reply	[flat|nested] 25+ messages in thread

* bug#25775: Attempts to fix bootstrap Guile bug
  2017-02-21  8:52 ` bug#25775: Attempts to fix bootstrap Guile bug Andy Wingo
  2017-02-21 18:03   ` Leo Famulari
@ 2017-03-07 23:02   ` Ludovic Courtès
  1 sibling, 0 replies; 25+ messages in thread
From: Ludovic Courtès @ 2017-03-07 23:02 UTC (permalink / raw)
  To: Andy Wingo; +Cc: 25775-done

[-- Attachment #1: Type: text/plain, Size: 592 bytes --]

Hello,

Thanks Andy & Ricardo for the detailed explanations!

Andy Wingo <wingo@pobox.com> skribis:

> It seems that this bug is related to the introduction of
> url-fetch/reset-patch-level.  It takes a #:guile kwarg but defaults to
> #f; if not given #:guile, that #f propagates through instead of a
> package object.

Nasty.

To reproduce the problem reported here, one can:

  1. Revert the “band-aid commit”
     9f05908fb1e3707cae593d94688748294717a546.

  2. Change download.scm to force it to behave as when talking to an old
     daemon.

This gives this:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 1256 bytes --]

diff --git a/guix/download.scm b/guix/download.scm
index 86f859881..811abe27b 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -418,10 +418,7 @@ GnuTLS itself and its dependencies.  See <http://bugs.gnu.org/22774>."
                        ;; hash of the expected result.
                        #:verify-certificate? #f)))))
 
-  (mlet %store-monad ((guile (package->derivation
-                              (or guile
-                                  (@@ (gnu packages bootstrap) %bootstrap-guile))
-                              system)))
+  (mlet %store-monad ((guile (package->derivation guile system)))
     (gexp->derivation file-name builder
                       #:guile-for-build guile
                       #:system system
@@ -472,7 +469,7 @@ in the store."
             (and uri (memq (uri-scheme uri) '(#f file))))
         (interned-file (if uri (uri-path uri) url)
                        (or name file-name))
-        (mlet* %store-monad ((builtins (built-in-builders*))
+        (mlet* %store-monad ((builtins -> '())
                              (download -> (if (member "download" builtins)
                                               built-in-download
                                               in-band-download)))

[-- Attachment #3: Type: text/plain, Size: 232 bytes --]


Then run something like:

  guix gc -d /gnu/store/*-bash-4.4.tar.xz
  ./pre-inst-env guix build bash -S --no-substitutes

~~~~~~

To mirror what ‘url-fetch’ does, we should change the default value of
#:guile here:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: Type: text/x-patch, Size: 697 bytes --]

diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index c3b94391e..b4d0b6777 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -243,7 +243,8 @@ without modification.")
 
 (define* (url-fetch/reset-patch-level url hash-algo hash
                                       #:optional name
-                                      #:key (system (%current-system)) guile)
+                                      #:key (system (%current-system))
+                                      (guile (default-guile)))
   "Fetch the Bash patch from URL and reset its 'PATCHLEVEL' definition so it
 can apply to a patch-level 0 Bash."
   (mlet* %store-monad ((name -> (or name (basename url)))

[-- Attachment #5: Type: text/plain, Size: 277 bytes --]


However that leads to a stack overflow unless we patch
‘bootstrap-origin’ the way Andy suggests (which is not desirable IMO).

So, instead, we can simply force the use of the bootstrap Guile for
these derivations, which doesn’t make any difference functionally:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #6: Type: text/x-patch, Size: 1837 bytes --]

--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -21,6 +21,7 @@
 (define-module (gnu packages bash)
   #:use-module (guix licenses)
   #:use-module (gnu packages)
+  #:use-module (gnu packages bootstrap)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages bison)
@@ -243,14 +244,17 @@ without modification.")
 
 (define* (url-fetch/reset-patch-level url hash-algo hash
                                       #:optional name
-                                      #:key (system (%current-system)) guile)
+                                      #:key (system (%current-system)))
   "Fetch the Bash patch from URL and reset its 'PATCHLEVEL' definition so it
 can apply to a patch-level 0 Bash."
+  ;; Note: Forcefully use %BOOTSTRAP-GUILE here to work around bootstrapping
+  ;; issues when using a daemon that lacks the "download" built-in.  See
+  ;; <https://bugs.gnu.org/25775>.
   (mlet* %store-monad ((name -> (or name (basename url)))
                        (patch (url-fetch url hash-algo hash
                                          (string-append name ".orig")
                                          #:system system
-                                         #:guile guile)))
+                                         #:guile %bootstrap-guile)))
     (gexp->derivation name
                       (with-imported-modules '((guix build utils))
                         #~(begin
@@ -259,7 +263,6 @@ can apply to a patch-level 0 Bash."
                             (substitute* #$output
                               (("PATCHLEVEL [0-6]+")
                                "PATCHLEVEL 0"))))
-                      #:guile-for-build guile
                       #:system system)))
 
 (define bash/fixed                        ;CVE-2017-5932 (RCE with completion)

[-- Attachment #7: Type: text/plain, Size: 138 bytes --]


And it does the job.

Pushed as 6c5b56f9fa01b7fe9034bac47b20e08a2fdb2629.  Let me know if
there are still fishy things!

Ludo’.

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* bug#25775: Can't install packages after guix pull
  2017-02-21 22:36               ` Ricardo Wurmus
@ 2017-04-11  1:01                 ` Ben Sturmfels
  0 siblings, 0 replies; 25+ messages in thread
From: Ben Sturmfels @ 2017-04-11  1:01 UTC (permalink / raw)
  To: 25775

[-- Attachment #1: Type: text/plain, Size: 3073 bytes --]

On 22/02/17 09:36, Ricardo Wurmus wrote:
> 
> Ben Sturmfels <ben@stumbles.id.au> writes:
> 
>> On Tue, 21 Feb 2017 09:52:11 +1100
>> Ben Sturmfels <ben@stumbles.id.au> wrote:
>>
>>>> Could I trouble you to walk through the steps for manually
>>>> installing a different version of guix-daemon? I'm stuck in the
>>>> same situation where I can't `guix package --install`.  
>>>
>>> (Also can't `guix pull` without an error)
>>
>> I'm attempting to fix my GuixSD system by downloading Guix
>> 0.12.0 Binary, extracting and running guix-daemon, then running `guix
>> pull` against that. The daemon runs ok, but `guix pull` is expecting
>> its dependencies to be at /gnu, when they're actually at
>> ~/Downloads/gnu. Any suggestions?
> 
> How did you end up having dependencies outside of /gnu?  All Guix
> packages depend only on things inside the store.  If you want to use
> substitutes you cannot avoid /gnu.

Sorry for the late reply. I had dependencies outside of /gnu
because I was attempting to upgrade guix-daemon without messing with the
nice clean read-only mounted /gnu/store filesystem. Turns out I didn't
use that approach in the end and used "rollback" instead.

I realised that the recovery steps in
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25775#35 were more for
Guix on a foreign distro.

For anyone else on GuixSD who can't `guix pull` or `guix package
--install` due to older guix-daemon mismatched with newer guix installed
for root, here's how I fixed my system:

1. I had a number of system generations available so I rolled back to
one before I ran the problematic "sudo guix pull", with `guix system
list-generations` and `guix system switch-generations`.

2. Ran `sudo guix pull
--url=http://git.savannah.gnu.org/cgit/guix.git/snapshot/afd532337.tar.gz`
to get the last version of guix compatible with older daemons.

3. Ran `sudo guix system reconfigure myconfig.scm`, which upgrades
guix-daemon. Note that `guix package --upgrade` as root doesn't upgrade
guix-daemon on GuixSD. Note also that I ended up reducing the services
in this config to just "%base-services" to avoid hours of unnecessary
compiling, when I really just needed guix-daemon. Ended up having to do
it in a virtual terminal.

4. Reboot and verify that I had an 0.12 version of guix-daemon running.

5. Ran `sudo guix pull` and `sudo guix system reconfigure myconfig2.scm`
to restore my full desktop services and upgrade system infrastructure to
latest version.

6. For good measure, ran `sudo guix pull` and `sudo guix package
--upgrade` to bring root's guix tools up to date (actually had zero
packages installed for root).

7. Ran `guix pull` and `guix package --upgrade` as my normal user to
update that too.

My actual path took a lot more than 7 steps, so I hope I got those
instructions right. ;)

Reinstalling probably would have been faster, but I've learnt a lot more
about how GuixSD works, and it's satisfying and reassuring to be able to
fix things by rolling back!

Regards,
Ben






[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2017-04-11  1:02 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-17 16:04 bug#25775: Can't install packages after guix pull sirgazil
2017-02-18 11:11 ` Pjotr Prins
2017-02-18 14:29   ` Pjotr Prins
2017-02-18 15:35   ` Ricardo Wurmus
2017-02-18 16:18     ` Pjotr Prins
2017-02-18 16:30       ` Pjotr Prins
2017-02-20  8:31         ` Tomas Cech
2017-02-20 22:44         ` Ben Sturmfels
2017-02-20 22:52           ` Ben Sturmfels
2017-02-21  2:20             ` Ben Sturmfels
2017-02-21 22:36               ` Ricardo Wurmus
2017-04-11  1:01                 ` Ben Sturmfels
2017-02-21  5:41           ` Pjotr Prins
2017-02-21  7:16           ` Ricardo Wurmus
2017-02-19  9:21   ` pelzflorian (Florian Pelz)
2017-02-19  9:26     ` Ricardo Wurmus
2017-02-19  9:43     ` pelzflorian (Florian Pelz)
2017-02-20 16:06 ` Ricardo Wurmus
2017-02-23 19:28   ` Leo Famulari
2017-02-23 21:36     ` Ricardo Wurmus
2017-02-21  8:52 ` bug#25775: Attempts to fix bootstrap Guile bug Andy Wingo
2017-02-21 18:03   ` Leo Famulari
2017-02-21 22:34     ` Ricardo Wurmus
2017-02-21 23:00       ` Leo Famulari
2017-03-07 23:02   ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).