GNU bug report logs - #65718
Importing a toolchain packages causes top-level dependency cycles

Previous Next

Package: guix;

Reported by: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Date: Sun, 3 Sep 2023 18:30:03 UTC

Severity: normal

Merged with 65716

Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

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 65718 in the body.
You can then email your comments to 65718 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#65718; Package guix. (Sun, 03 Sep 2023 18:30:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Maxim Cournoyer <maxim.cournoyer <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sun, 03 Sep 2023 18:30:03 GMT) Full text and rfc822 format available.

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

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: bug-guix <bug-guix <at> gnu.org>
Subject: Importing a toolchain packages causes top-level dependency cycles
Date: Sun, 03 Sep 2023 10:39:22 -0400
Hello,

Attempting to add a new (gnu packages ergodox) module, it fails with the
following error:

--8<---------------cut here---------------start------------->8---
[ 11%] LOAD     guix/store/deduplication.scm
[ 11%] LOAD     guix/store/roots.scm
[ 11%] LOAD     guix/config.scm
[ 11%] LOAD     guix/tests.scm
ice-9/eval.scm:293:34: error: cross-gcc: unbound variable
hint: Did you forget `(use-modules (gnu packages cross-base))'?

make[2]: *** [Makefile:6997: make-core-go] Error 1
make[2]: Leaving directory '/home/maxim/src/guix'
make[1]: *** [Makefile:6083: all-recursive] Error 1
make[1]: Leaving directory '/home/maxim/src/guix'
make: *** [Makefile:4197: all] Error 2
--8<---------------cut here---------------end--------------->8---

Which looks like a circular dependency problem at the top level.  Here's
the content of gnu/packages/ergodox.scm:

--8<---------------cut here---------------start------------->8---
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
;;;
;;; 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 (gnu packages ergodox)
  #:use-module (gnu packages avr)
  #:use-module (guix build-system gnu)
  #:use-module (guix gexp)
  #:use-module (guix git-download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages))

(define (make-ergodox-firmware layout)
  (let ((revision "0")
        (commit "89b7e2bfdafb2a87e0248846d5c95cc5e9a27858"))
    (package
      (name (string-append "ergodox-firmware-" layout))
      (version (git-version "1" revision commit))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/benblazak/ergodox-firmware")
                      (commit commit)))
                (file-name (git-file-name name version))
                (sha256
                 (base32
                  "1gy2332kdqk8bjzpcsripx10896rbvgl0ic7r344kmpiwdgm9480"))))
      (build-system gnu-build-system)
      (arguments
       (list #:make-flags #~(list (string-append "LAYOUT=" layout))
             #:phases #~(modify-phases %standard-phases
                          (add-after 'unpack 'chdir
                            (lambda _
                              (chdir "src")))
                          ;; The Makefile-based build system lacks configure
                          ;; and install targets.
                          (delete 'configure)
                          (replace 'install
                            (lambda _
                              (install-file "firmware.hex" #$output)
                              (install-file "firmware.eep" #$output))))))
      (native-inputs (list avr-toolchain))
      (home-page "http://www.ergodox.io")
      (synopsis "Firmware for the ErgoDox keyboard")
      (description (format #f "This package contains the original firmware for
the ErgoDox keyboard, built using the ~a firmware.  It contains two files: the
@file{firmware.hex} and the @file{firmware.eep} files, which can be loaded to
a target using the @code{teensy-loader-cli} package." layout))
      (license license:expat))))

(define-public ergodox-firmware-colemak-jc-mod
  (make-ergodox-firmware "colemak-jc-mod"))

(define-public ergodox-firmware-colemak-symbol-mod
  (make-ergodox-firmware "colemak-symbol-mod"))

(define-public ergodox-firmware-dvorak-kinesis-mod
  (make-ergodox-firmware "dvorak-kinesis-mod"))

(define-public ergodox-firmware-qwerty-kinesis-mod
  (make-ergodox-firmware "qwerty-kinesis-mod"))

(define-public ergodox-firmware-workman-p-kinesis-mod
  (make-ergodox-firmware "workman-p-kinesis-mod"))
--8<---------------cut here---------------end--------------->8---

Commenting out the '(native-inputs (list avr-toolchain))' line resolves
the problem, but obviously breaks the package, which requires avr-gcc
and friends.

Another similar report was made in
<https://lists.gnu.org/archive/html/help-guix/2023-01/msg00013.html>.

-- 
Thanks,
Maxim




Merged 65716 65718. Request was from Maxim Cournoyer <maxim.cournoyer <at> gmail.com> to control <at> debbugs.gnu.org. (Sun, 03 Sep 2023 18:33:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#65718; Package guix. (Sun, 03 Sep 2023 19:57:02 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludo <at> gnu.org>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 65718 <at> debbugs.gnu.org, 65716 <at> debbugs.gnu.org
Subject: Re: bug#65718: Importing a toolchain packages causes top-level
 dependency cycles
Date: Sun, 03 Sep 2023 21:56:12 +0200
Hello,

Maxim Cournoyer <maxim.cournoyer <at> gmail.com> skribis:

> Adding the Guile undocumented "(set! %load-verbosely #t)" to my local
> near the top of my (guix config) module, I see, when running 'make':
>
> make[2] : on entre dans le répertoire « /home/maxim/src/guix »
> [...]
> Compiling Scheme modules...
> [  0%] LOAD     guix.scm
> ;;; loading ./guix/build/syscalls.scm
> ;;; loading ./guix/build/syscalls.scm

[...]

Looks like this is independent from your change no?  There’s no
ergodox.scm in the list of loaded files AFAICS.

Do you experience the problem without your patch?

Thanks,
Ludo’.




bug closed, send any further explanations to 65718 <at> debbugs.gnu.org and Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Request was from Maxim Cournoyer <maxim.cournoyer <at> gmail.com> to control <at> debbugs.gnu.org. (Wed, 04 Oct 2023 02:34:02 GMT) Full text and rfc822 format available.

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

This bug report was last modified 1 year and 189 days ago.

Previous Next


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