all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Stuck upgrading from Guix v0.12
@ 2018-12-17 12:29 Paul Garlick
  2018-12-17 14:27 ` Konrad Hinsen
  0 siblings, 1 reply; 10+ messages in thread
From: Paul Garlick @ 2018-12-17 12:29 UTC (permalink / raw)
  To: help-guix

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

Hi Guix,

A lesson learnt from a previous update process [1] was; do not leave it
too long between 'guix pull' updates.  

However, I have one system running Ubuntu 16.04 and Guix v0.12 that I
am trying to update.  As root:

$guix package --list-installed
glibc-utf8-locales	2.25	out	/gnu/store/g4g0zhcp5j9
pyjmcv02ks4x2b48k252x-glibc-utf8-locales-2.25
guix	0.12.0-9.25a4	out	/gnu/store/nqy9m6hhnkkfwr5w
yq5bac96v9s9hc9i-guix-0.12.0-9.25a4
gnutls	3.5.9	out	/gnu/store/56dbd2gw33g3wdxmq78lr3
9lamg8gxnq-gnutls-3.5.9
nss-certs	3.30.2	out	/gnu/store/3ql0vilc0zv6ra42gh
i04787vrg6bb71-nss-certs-3.30.2

When I do 'guix pull' I get an error.  The backtrace suggests reporting
a bug:

Backtrace:
In unknown file:
   ?: 19 [primitive-load-path "guix/store" ...]
In ./guix/store.scm:
  20: 18 [#<procedure 167b020 ()>]
In ice-9/boot-9.scm:
2987: 17 [define-module* (guix store) #:filename ...]
2962: 16 [resolve-imports (((guix utils)) ((guix config)) ((guix
memoization)) ...)]
2900: 15 [resolve-interface (guix utils) #:select ...]
2825: 14 [#<procedure 16ffb40 at ice-9/boot-9.scm:2813:4 (name
#:optional autoload version #:key ensure)> # ...]
3101: 13 [try-module-autoload (guix utils) #f]
2412: 12 [save-module-excursion #<procedure 18d53c0 at ice-9/boot-
9.scm:3102:17 ()>]
3121: 11 [#<procedure 18d53c0 at ice-9/boot-9.scm:3102:17 ()>]
In unknown file:
   ?: 10 [primitive-load-path "guix/utils" ...]
In ./guix/utils.scm:
  26: 9 [#<procedure 17760a0 ()>]
In ice-9/boot-9.scm:
2987: 8 [define-module* (guix utils) #:filename ...]
2962: 7 [resolve-imports (((guix config)) ((srfi srfi-1)) ((srfi srfi-
9)) ...)]
2900: 6 [resolve-interface (guix config) #:select ...]
2825: 5 [#<procedure 16ffb40 at ice-9/boot-9.scm:2813:4 (name
#:optional autoload version #:key ensure)> # ...]
3101: 4 [try-module-autoload (guix config) #f]
2412: 3 [save-module-excursion #<procedure 18f3090 at ice-9/boot-
9.scm:3102:17 ()>]
3121: 2 [#<procedure 18f3090 at ice-9/boot-9.scm:3102:17 ()>]
In unknown file:
   ?: 1 [primitive-load-path "guix/config" ...]
In ./guix/config.scm:
   1: 0 [#<procedure 1790d40 ()>]

./guix/config.scm:1:437: In procedure #<procedure 1790d40 ()>:
./guix/config.scm:1:437: In procedure module-lookup: Unbound variable:
and=>
guix pull: error: You found a bug: the program
'/gnu/store/d9dc5jdlhbp4zdx1m9ffr3fmhyg60zy8-compute-guix-derivation'
failed to compute the derivation for Guix (version: "20181217.11";
system: "x86_64-linux";
host version: "20170504.14"; pull-version: 0).
Please report it by email to <bug-guix@gnu.org>.

However, I remember that the package guile-git was not a dependency at
the time of v0.12 but it is now.  So, rather than reporting the bug I
have tried to install guile-git:

$ guix package -i guile-git
Starting download of /gnu/store/c3npgqn9ag2ypi9bda1g779wwwlcqqrf-
libgit2-0.25.1.tar.gz
From https://github.com/libgit2/libgit2/archive/v0.25.1.tar.gz...
following redirection to `https://codeload.github.com/libgit2/libgit2/t
ar.gz/v0.25.1'...
 v0.25.1                                     1.3MiB/s 00:03 | 4.1MiB
transferred
output path `/gnu/store/c3npgqn9ag2ypi9bda1g779wwwlcqqrf-libgit2-
0.25.1.tar.gz' should have sha256 hash
`1cdwcw38frc1wf28x5ppddazv9hywc718j92f3xa3ybzzycyds3s', instead has
`0ywcxw1mwd56c8qc14hbx31bf198gxck3nja3laxyglv7l57qp26'

This has been reported before [2].  The workaround suggested there was
to download the source directly.  However, this now fails too:

$  guix download https://mirror.hydra.gnu.org/file/libgit2-0.25.1.tar.g
z/sha256/1cdwcw38frc1wf28x5ppddazv9hywc718j92f3xa3ybzzycyds3s
ERROR: Throw to key `gnutls-error' with args `(#<gnutls-error-enum
Error while reading file.> set-certificate-credentials-x509-trust-
file!)'

I think the error message is a little misleading here.  I have tried to
download the same file from a more recent guix installation on another
system which also fails.  Essentially, the error is 'file not found'.

So, the situation is that neither a substitute nor the source code are
available for libgit2 and Guix gets stuck.  How should one resolve
cases such as this?

Best regards,

Paul.


[1]: http://lists.gnu.org/archive/html/guix-devel/2018-09/msg00068.html
[2]: https://lists.gnu.org/archive/html/bug-guix/2017-10/msg00000.html

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

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

* Re: Stuck upgrading from Guix v0.12
  2018-12-17 12:29 Stuck upgrading from Guix v0.12 Paul Garlick
@ 2018-12-17 14:27 ` Konrad Hinsen
  2018-12-17 14:52   ` Paul Garlick
  0 siblings, 1 reply; 10+ messages in thread
From: Konrad Hinsen @ 2018-12-17 14:27 UTC (permalink / raw)
  To: Paul Garlick, help-guix

Hi Paul,

> A lesson learnt from a previous update process [1] was; do not leave it
> too long between 'guix pull' updates.  
>
> However, I have one system running Ubuntu 16.04 and Guix v0.12 that I
> am trying to update.  As root:

I have had similar problems as well in the past. The one recipe that has
always worked (aside from one case of a machine with very limited disk
space) is temporarily using a Guix compiled from source code.

The procedure for building Guix from source code is explained in the manual:

   https://www.gnu.org/software/guix/manual/en/html_node/Building-from-Git.html#Building-from-Git

When done (it takes a while to compile), run that copy of Guix to do a
"guix pull", without installing it, as described in

   https://www.gnu.org/software/guix/manual/en/html_node/Running-Guix-Before-It-Is-Installed.html#Running-Guix-Before-It-Is-Installed

After that, your standard Guix installation is up to date and you can
delete all the source code again.

The procedure is lengthy in terms of compile time, and requires a lot of
temporary disk space, but the advantage is that you don't have to
analyze what actually went wrong with your installation. Put
differently, it's hard on your computer but easy on our brain :-)

Konrad.

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

* Re: Stuck upgrading from Guix v0.12
  2018-12-17 14:27 ` Konrad Hinsen
@ 2018-12-17 14:52   ` Paul Garlick
  2018-12-17 15:07     ` Gábor Boskovits
  2018-12-17 22:37     ` Ricardo Wurmus
  0 siblings, 2 replies; 10+ messages in thread
From: Paul Garlick @ 2018-12-17 14:52 UTC (permalink / raw)
  To: Konrad Hinsen, help-guix

Hi Konrad,

Thank you for your help.

> I have had similar problems as well in the past. The one recipe that
> has always worked (aside from one case of a machine with very limited
> disk space) is temporarily using a Guix compiled from source code.

I have hit a snag.  At the compile stage I do:

$ ./configure --localstatedir=/var

I get:

configure: error: Guile-Git is missing; please install it.

I would install guile-git if I could but it takes me back to the same
problem; neither the source nor a substitute for libgit2 are available.

I have looked for the files on hydra.gnu.org but I cannot find the
0.12-era versions.  Maybe they have been deleted.  Could they (or
should they) be restored ? 

Best regards,

Paul.

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

* Re: Stuck upgrading from Guix v0.12
  2018-12-17 14:52   ` Paul Garlick
@ 2018-12-17 15:07     ` Gábor Boskovits
  2018-12-17 22:37     ` Ricardo Wurmus
  1 sibling, 0 replies; 10+ messages in thread
From: Gábor Boskovits @ 2018-12-17 15:07 UTC (permalink / raw)
  To: Paul Garlick; +Cc: help-guix

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

Hello Paul,

This is a hard run. Getting that system back is not easy. There are two
ways I did that. The easier is to try to guix copy a working new guix from
another machine. Then you can guix pull using that.


2018. dec. 17., H 15:52 dátummal Paul Garlick <
pgarlick@tourbillion-technology.com> ezt írta:

> Hi Konrad,
>
> Thank you for your help.
>
> > I have had similar problems as well in the past. The one recipe that
> > has always worked (aside from one case of a machine with very limited
> > disk space) is temporarily using a Guix compiled from source code.
>
> I have hit a snag.  At the compile stage I do:
>
> $ ./configure --localstatedir=/var
>
> I get:
>
> configure: error: Guile-Git is missing; please install it.
>
> I would install guile-git if I could but it takes me back to the same
> problem; neither the source nor a substitute for libgit2 are available.
>

Another option: you couls try to find the source and guix download it from
somewhere.

Most probably this would require several iterations, as requirements were
added to the build that were not previously packaged. Also we do not have
so old substitues, so most probably this would involve rebuilding the world
several times.



> I have looked for the files on hydra.gnu.org but I cannot find the
> 0.12-era versions.  Maybe they have been deleted.  Could they (or
> should they) be restored ?
>
> Best regards,
>
> Paul.
>
Best regards,
g_bor

>

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

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

* Re: Stuck upgrading from Guix v0.12
  2018-12-17 14:52   ` Paul Garlick
  2018-12-17 15:07     ` Gábor Boskovits
@ 2018-12-17 22:37     ` Ricardo Wurmus
  2018-12-19 13:57       ` Ludovic Courtès
  1 sibling, 1 reply; 10+ messages in thread
From: Ricardo Wurmus @ 2018-12-17 22:37 UTC (permalink / raw)
  To: Paul Garlick; +Cc: help-guix


Hi Paul,

I’m in the same situation upgrading a machine that didn’t have an
Internet connection for months.

Here’s what I do:

- use a git checkout to jump to commit
  b0cb92b2d43a2c4d5fa9b3f8c04c5732c60061e7, which adds guile-gcrypt

- ./bootstrap && ./configure --localstatedir=/var && make clean && make

- ./pre-inst-env guix package -i guile guile-sqlite3 guile-json
  guile-ssh guile-gcrypt

- update to the latest version

--
Ricardo

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

* Re: Stuck upgrading from Guix v0.12
  2018-12-17 22:37     ` Ricardo Wurmus
@ 2018-12-19 13:57       ` Ludovic Courtès
  2018-12-19 14:26         ` Ricardo Wurmus
  0 siblings, 1 reply; 10+ messages in thread
From: Ludovic Courtès @ 2018-12-19 13:57 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: help-guix, Paul Garlick

Heya,

Ricardo Wurmus <rekado@elephly.net> skribis:

> I’m in the same situation upgrading a machine that didn’t have an
> Internet connection for months.
>
> Here’s what I do:
>
> - use a git checkout to jump to commit
>   b0cb92b2d43a2c4d5fa9b3f8c04c5732c60061e7, which adds guile-gcrypt
>
> - ./bootstrap && ./configure --localstatedir=/var && make clean && make
>
> - ./pre-inst-env guix package -i guile guile-sqlite3 guile-json
>   guile-ssh guile-gcrypt
>
> - update to the latest version

Just a reminder so people don’t run away ;-): the upgrade story got much
better shortly before 0.15.0, when ‘guix pull’ got the ability to “build
Guix from Guix” in a way that does not rely* on the currently installed
Guix.  For example, you can run 0.15’s ‘guix pull’ and upgrade to
today’s Guix without problems.

Ludo’.

* More specifically, ‘guix pull’ relies on a small subset of Guix
  functionality that hasn’t changed in a couple of years, which is a lot
  given Guix’s history.

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

* Re: Stuck upgrading from Guix v0.12
  2018-12-19 13:57       ` Ludovic Courtès
@ 2018-12-19 14:26         ` Ricardo Wurmus
  2018-12-20 19:54           ` Paul Garlick
  2019-01-09 16:47           ` Paul Garlick
  0 siblings, 2 replies; 10+ messages in thread
From: Ricardo Wurmus @ 2018-12-19 14:26 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: help-guix, Paul Garlick


Ludovic Courtès <ludo@gnu.org> writes:

> Heya,
>
> Ricardo Wurmus <rekado@elephly.net> skribis:
>
>> I’m in the same situation upgrading a machine that didn’t have an
>> Internet connection for months.
>>
>> Here’s what I do:
>>
>> - use a git checkout to jump to commit
>>   b0cb92b2d43a2c4d5fa9b3f8c04c5732c60061e7, which adds guile-gcrypt
>>
>> - ./bootstrap && ./configure --localstatedir=/var && make clean && make
>>
>> - ./pre-inst-env guix package -i guile guile-sqlite3 guile-json
>>   guile-ssh guile-gcrypt
>>
>> - update to the latest version
>
> Just a reminder so people don’t run away ;-): the upgrade story got much
> better shortly before 0.15.0, when ‘guix pull’ got the ability to “build
> Guix from Guix” in a way that does not rely* on the currently installed
> Guix.  For example, you can run 0.15’s ‘guix pull’ and upgrade to
> today’s Guix without problems.

Yes, this is correct.

The above recipe works when Guix is used exclusively from a git
checkout.  Using “guix pull” via version 0.15.0 is easier.

--
Ricardo

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

* Re: Stuck upgrading from Guix v0.12
  2018-12-19 14:26         ` Ricardo Wurmus
@ 2018-12-20 19:54           ` Paul Garlick
  2019-01-09 16:47           ` Paul Garlick
  1 sibling, 0 replies; 10+ messages in thread
From: Paul Garlick @ 2018-12-20 19:54 UTC (permalink / raw)
  To: Ricardo Wurmus, Ludovic Courtès; +Cc: help-guix

Hi Ricardo,

Thank you for your help.

> I’m in the same situation upgrading a machine that didn’t have an
> Internet connection for months.
> 
> Here’s what I do:
> 
> - use a git checkout to jump to commit
>   b0cb92b2d43a2c4d5fa9b3f8c04c5732c60061e7, which adds guile-gcrypt
> 
> - ./bootstrap && ./configure --localstatedir=/var && make clean &&
> make
> 
> - ./pre-inst-env guix package -i guile guile-sqlite3 guile-json
> guile-ssh guile-gcrypt
> 
> - update to the latest version

I am following the recipe but have hit trouble at the configure stage:

$./configure --localstatedir=/var
.
.
.
configure: error: Guile-Git is missing; please install it.

This takes me back to the libgit2 unavailability problem.  I have not
been able to find a way to provide a sufficient build environment (I
have upgraded the OS to Ubuntu 18.04 in the meantime).  

Any suggestions?

Paul.

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

* Re: Stuck upgrading from Guix v0.12
  2018-12-19 14:26         ` Ricardo Wurmus
  2018-12-20 19:54           ` Paul Garlick
@ 2019-01-09 16:47           ` Paul Garlick
  2019-01-31 14:46             ` swedebugia
  1 sibling, 1 reply; 10+ messages in thread
From: Paul Garlick @ 2019-01-09 16:47 UTC (permalink / raw)
  To: Ricardo Wurmus, Ludovic Courtès; +Cc: help-guix

Hi Guix,

Got it! I have been able to upgrade from version 0.12 to version 0.16.

I used 'guix copy' to copy a recent guix on a local server.  Thank you
Gabor for the suggestion.  The steps I followed were:

i) generate signing keys on both systems
ii) copy across public keys and authorize on each system
iii) install guix in the user profile on the server
iv) use 'guix copy --from=localServer /gnu/store/...guix-0.16.0-4...'
Note: this copies the dependencies too
v) set GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH on the receiving
system.  Note: set the variables to point to the newly-copied paths in
/gnu/store for guile-gcrypt, guile-sqlite3, guile-git and guile-
bytestructures
vi) use '/gnu/store/...guix-0.16.0-4.../bin/guix pull'
vii) include .config/guix/current/bin in PATH variable
viii) use 'guix package --upgrade'
ix) update guix-daemon.service
x) restart daemon

To finish, I authorized substitutes for ci.guix.info.pub.  I am cooking
with gas again!

Best regards,

Paul.

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

* Re: Stuck upgrading from Guix v0.12
  2019-01-09 16:47           ` Paul Garlick
@ 2019-01-31 14:46             ` swedebugia
  0 siblings, 0 replies; 10+ messages in thread
From: swedebugia @ 2019-01-31 14:46 UTC (permalink / raw)
  To: help-guix

On 2019-01-09 17:47, Paul Garlick wrote:
> Hi Guix,
> 
> Got it! I have been able to upgrade from version 0.12 to version 0.16.
> 
> I used 'guix copy' to copy a recent guix on a local server.  Thank you
> Gabor for the suggestion.  The steps I followed were:
> 
> i) generate signing keys on both systems
> ii) copy across public keys and authorize on each system
> iii) install guix in the user profile on the server
> iv) use 'guix copy --from=localServer /gnu/store/...guix-0.16.0-4...'
> Note: this copies the dependencies too
> v) set GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH on the receiving
> system.  Note: set the variables to point to the newly-copied paths in
> /gnu/store for guile-gcrypt, guile-sqlite3, guile-git and guile-
> bytestructures
> vi) use '/gnu/store/...guix-0.16.0-4.../bin/guix pull'
> vii) include .config/guix/current/bin in PATH variable
> viii) use 'guix package --upgrade'
> ix) update guix-daemon.service
> x) restart daemon
> 
> To finish, I authorized substitutes for ci.guix.info.pub.  I am cooking
> with gas again!

Nice!

Thanks for sharing.

-- 
Cheers Swedebugia

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

end of thread, other threads:[~2019-01-31 14:46 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-17 12:29 Stuck upgrading from Guix v0.12 Paul Garlick
2018-12-17 14:27 ` Konrad Hinsen
2018-12-17 14:52   ` Paul Garlick
2018-12-17 15:07     ` Gábor Boskovits
2018-12-17 22:37     ` Ricardo Wurmus
2018-12-19 13:57       ` Ludovic Courtès
2018-12-19 14:26         ` Ricardo Wurmus
2018-12-20 19:54           ` Paul Garlick
2019-01-09 16:47           ` Paul Garlick
2019-01-31 14:46             ` swedebugia

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.