GNU bug report logs - #31392
gnome.scm cannot import (gnu packages rust)

Previous Next

Package: guix;

Reported by: Marius Bakke <mbakke <at> fastmail.com>

Date: Wed, 9 May 2018 16:27:01 UTC

Severity: normal

Tags: fixed

Done: ludo <at> gnu.org (Ludovic Courtès)

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 31392 in the body.
You can then email your comments to 31392 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#31392; Package guix. (Wed, 09 May 2018 16:27:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Marius Bakke <mbakke <at> fastmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Wed, 09 May 2018 16:27:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: bug-guix <at> gnu.org
Subject: gnome.scm cannot import (gnu packages rust)
Date: Wed, 09 May 2018 18:25:47 +0200
[Message part 1 (text/plain, inline)]
Hello!

I'm trying to update librsvg, which requires "rust".

However adding this simple diff:

--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -114,6 +114,7 @@
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages rdesktop)
+  #:use-module (gnu packages rust)
   #:use-module (gnu packages scanner)
   #:use-module (gnu packages selinux)
   #:use-module (gnu packages slang)

Causes the module to compile (sometimes), but any Guix action results in
a backtrace similar to this:

--8<---------------cut here---------------start------------->8---
guix build: warning: failed to load '(nonfree packages audio)':
In procedure module-lookup: Unbound variable: gcc
guix build: warning: failed to load '(nonfree packages games)':
Unbound variable: devil
guix build: warning: failed to load '(gnu packages avr)':
In procedure module-lookup: Unbound variable: binutils
guix build: warning: failed to load '(gnu packages axoloti)':
In procedure module-lookup: Unbound variable: gcc-4.9
guix build: warning: failed to load '(gnu packages bioconductor)':
In procedure module-lookup: Unbound variable: perl-module-build
guix build: warning: failed to load '(gnu packages bootloaders)':
no binding `bc' in module (gnu packages algebra)
guix build: warning: failed to load '(gnu packages chemistry)':
In procedure module-lookup: Unbound variable: python2-numpy
guix build: warning: failed to load '(gnu packages commencement)':
In procedure module-lookup: Unbound variable: gnu-make
guix build: warning: failed to load '(gnu packages debug)':
In procedure module-lookup: Unbound variable: gnu-make
guix build: warning: failed to load '(gnu packages display-managers)':
In procedure module-lookup: Unbound variable: gpgme
guix build: warning: failed to load '(gnu packages games)':
In procedure module-lookup: Unbound variable: unzip
guix build: warning: failed to load '(gnu packages image-viewers)':
In procedure module-lookup: Unbound variable: curl
guix build: warning: failed to load '(gnu packages license)':
In procedure module-lookup: Unbound variable: perl
guix build: warning: failed to load '(gnu packages make-bootstrap)':
In procedure module-lookup: Unbound variable: coreutils
guix build: warning: failed to load '(gnu packages syndication)':
In procedure module-lookup: Unbound variable: curl
guix build: warning: failed to load '(gnu packages unrtf)':
In procedure module-lookup: Unbound variable: coreutils
guix build: error: librsvg: unknown package
--8<---------------cut here---------------end--------------->8---

Not sure how to track down the module cycle.  Ideas?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#31392; Package guix. (Wed, 09 May 2018 22:57:01 GMT) Full text and rfc822 format available.

Message #8 received at 31392 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 31392 <at> debbugs.gnu.org
Subject: Re: bug#31392: gnome.scm cannot import (gnu packages rust)
Date: Thu, 10 May 2018 00:56:10 +0200
Hello,

Marius Bakke <mbakke <at> fastmail.com> skribis:

> I'm trying to update librsvg, which requires "rust".

Speaking of which, what are other distros doing?  Are all of them
switching to the Rust implementation, or are some keeping the C
implementation?

Not that I’m fond of C, but adding Rust (which is not bootstrapped,
etc.) in this place can be problematic.

> However adding this simple diff:
>
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -114,6 +114,7 @@
>    #:use-module (gnu packages pulseaudio)
>    #:use-module (gnu packages python)
>    #:use-module (gnu packages rdesktop)
> +  #:use-module (gnu packages rust)
>    #:use-module (gnu packages scanner)
>    #:use-module (gnu packages selinux)
>    #:use-module (gnu packages slang)
>
> Causes the module to compile (sometimes), but any Guix action results in
> a backtrace similar to this:

Here’s a debugging trick (not as helpful as one might like, but still):

--8<---------------cut here---------------start------------->8---
$ GUIX_PACKAGE_PATH= ./pre-inst-env guile
GNU Guile 2.2.3
Copyright (C) 1995-2017 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (primitive-load "gnu/packages/abiword.scm")
gnu/packages/rust.scm:241:25: error: gcc: unbound variable

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
scheme@(gnu packages rust) [1]> ,bt
         1190 (primitive-load "gnu/packages/abiword.scm")
In ice-9/eval.scm:
   721:201189 (primitive-eval _)
In ice-9/psyntax.scm:
  1235:361188 (expand-top-sequence _ _ _ #f _ _ _)
  1182:241187 (parse _ (("placeholder" placeholder)) ((top) #(ribcage () () ())) _ e # …)
   285:101186 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) (hygiene #))
In ice-9/eval.scm:
   293:341185 (_ #<directory (guile-user) 995140>)
In ice-9/boot-9.scm:
   2862:41184 (define-module* _ #:filename _ #:pure _ #:version _ #:imports _ # _ # _ …)
  2071:241183 (call-with-deferred-observers _)
  2875:241182 (_)
   222:291181 (map1 _)
   222:291180 (map1 _)
   222:291179 (map1 _)
   222:291178 (map1 _)
   222:291177 (map1 _)
   222:291176 (map1 _)
   222:171175 (map1 (((gnu packages autotools)) ((gnu packages boost)) ((gnu # #)) # …))
  2788:171174 (resolve-interface (gnu packages autotools) #:select _ #:hide _ #:prefix …)

[...]

In unknown file:
          22 (primitive-load-path "gnu/packages/gnome" #<procedure 1311b40 at ice-9/b…>)
In gnu/packages/gnome.scm:
     49:0 21 (_)
In ice-9/boot-9.scm:
   2862:4 20 (define-module* _ #:filename _ #:pure _ #:version _ #:imports _ #:exports …)
  2875:24 19 (_)
   222:29 18 (map1 _)
   222:29 17 (map1 _)
   222:29 16 (map1 _)
   222:29 15 (map1 _)
   222:29 14 (map1 _)
   222:29 13 (map1 _)
   222:29 12 (map1 _)
   222:29 11 (map1 _)
   222:29 10 (map1 _)
   222:29  9 (map1 _)
   222:29  8 (map1 _)
   222:17  7 (map1 (((gnu packages rust)) ((gnu packages admin)) ((gnu packages #)) …))
  2788:17  6 (resolve-interface (gnu packages rust) #:select _ #:hide _ #:prefix _ # _ …)
  2714:10  5 (_ (gnu packages rust) _ _ #:ensure _)
  2982:16  4 (try-module-autoload _ _)
   2312:4  3 (save-module-excursion _)
  3002:22  2 (_)
In unknown file:
           1 (primitive-load-path "gnu/packages/rust" #<procedure 1311a40 at ice-9/bo…>)
In gnu/packages/rust.scm:
   241:25  0 (_)
scheme@(gnu packages rust) [1]> ,error
gnu/packages/rust.scm:241:25: error: gcc: unbound variable
--8<---------------cut here---------------end--------------->8---

The issue was the reference to ‘gcc’ from the ‘native-search-paths’
field (a “top level reference” because it’s executed as soon as we load
rust.scm.)  While Guile allows for circular dependencies among modules,
it only works if the top-level of modules don’t look up variables
exported by each other, if you see what I mean.

Fixed in afc2bf53066975558676bc7f4957ad85d0ec170a.

Thanks,
Ludo’.




Added tag(s) fixed. Request was from ludo <at> gnu.org (Ludovic Courtès) to control <at> debbugs.gnu.org. (Wed, 09 May 2018 22:57:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 31392 <at> debbugs.gnu.org and Marius Bakke <mbakke <at> fastmail.com> Request was from ludo <at> gnu.org (Ludovic Courtès) to control <at> debbugs.gnu.org. (Wed, 09 May 2018 22:57:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#31392; Package guix. (Thu, 10 May 2018 11:57:01 GMT) Full text and rfc822 format available.

Message #15 received at 31392 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 31392 <at> debbugs.gnu.org
Subject: Re: bug#31392: gnome.scm cannot import (gnu packages rust)
Date: Thu, 10 May 2018 13:56:00 +0200
[Message part 1 (text/plain, inline)]
ludo <at> gnu.org (Ludovic Courtès) writes:

> Hello,
>
> Marius Bakke <mbakke <at> fastmail.com> skribis:
>
>> I'm trying to update librsvg, which requires "rust".
>
> Speaking of which, what are other distros doing?  Are all of them
> switching to the Rust implementation, or are some keeping the C
> implementation?
>
> Not that I’m fond of C, but adding Rust (which is not bootstrapped,
> etc.) in this place can be problematic.

I haven't checked a lot of distros, but Arch and Debian Experimental
have the Rust version already.  There is no maintained C implementation
any longer AFAIK.  It was officially deprecated in version 2.40.20[0],
which is what we have right now.

[0] https://ftp.acc.umu.se/pub/gnome/sources/librsvg/2.40/librsvg-2.40.20.news

[...]

> In unknown file:
>            1 (primitive-load-path "gnu/packages/rust" #<procedure 1311a40 at ice-9/bo…>)
> In gnu/packages/rust.scm:
>    241:25  0 (_)
> scheme@(gnu packages rust) [1]> ,error
> gnu/packages/rust.scm:241:25: error: gcc: unbound variable
> --8<---------------cut here---------------end--------------->8---
>
> The issue was the reference to ‘gcc’ from the ‘native-search-paths’
> field (a “top level reference” because it’s executed as soon as we load
> rust.scm.)  While Guile allows for circular dependencies among modules,
> it only works if the top-level of modules don’t look up variables
> exported by each other, if you see what I mean.
>
> Fixed in afc2bf53066975558676bc7f4957ad85d0ec170a.

That was fast, thank you!
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#31392; Package guix. (Thu, 10 May 2018 20:26:01 GMT) Full text and rfc822 format available.

Message #18 received at 31392 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 31392 <at> debbugs.gnu.org
Subject: Re: bug#31392: gnome.scm cannot import (gnu packages rust)
Date: Thu, 10 May 2018 22:25:49 +0200
Hey Marius,

Marius Bakke <mbakke <at> fastmail.com> skribis:

> ludo <at> gnu.org (Ludovic Courtès) writes:
>
>> Hello,
>>
>> Marius Bakke <mbakke <at> fastmail.com> skribis:
>>
>>> I'm trying to update librsvg, which requires "rust".
>>
>> Speaking of which, what are other distros doing?  Are all of them
>> switching to the Rust implementation, or are some keeping the C
>> implementation?
>>
>> Not that I’m fond of C, but adding Rust (which is not bootstrapped,
>> etc.) in this place can be problematic.
>
> I haven't checked a lot of distros, but Arch and Debian Experimental
> have the Rust version already.  There is no maintained C implementation
> any longer AFAIK.  It was officially deprecated in version 2.40.20[0],
> which is what we have right now.

Oh well, thanks for the info!

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 08 Jun 2018 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 322 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.