all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: Marius Bakke <mbakke@fastmail.com>
Cc: 31392@debbugs.gnu.org
Subject: bug#31392: gnome.scm cannot import (gnu packages rust)
Date: Thu, 10 May 2018 00:56:10 +0200	[thread overview]
Message-ID: <87h8ngv3p1.fsf@gnu.org> (raw)
In-Reply-To: <87vabwg5is.fsf@fastmail.com> (Marius Bakke's message of "Wed, 09 May 2018 18:25:47 +0200")

Hello,

Marius Bakke <mbakke@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’.

  reply	other threads:[~2018-05-09 22:57 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-09 16:25 bug#31392: gnome.scm cannot import (gnu packages rust) Marius Bakke
2018-05-09 22:56 ` Ludovic Courtès [this message]
2018-05-10 11:56   ` Marius Bakke
2018-05-10 20:25     ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87h8ngv3p1.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=31392@debbugs.gnu.org \
    --cc=mbakke@fastmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.