bug#78004: Unexpected/inconsistent compilation error

Ian Eure <[email protected]> Tue, 22 Apr 2025 20:42:55 -0700
Newsgroups gmane.lisp.guile.bugs
Message-ID <[email protected]>
Hi there,

This is a weird one, but after poking at it, I think it’s a Guile 
bug.
Happy to be wrong about that.  I can consistently reproduce it on 
two
separate computers, so this isn’t a hardware failure.

To reproduce:

1. Run `git clone https://codeberg.org/ieure/guix.git'
2. Change into the guix directory and run `git checkout -b
   autofs-service-type origin/autofs-service-type'
3. Save the following text into `channels.scm':
   (list (channel
          (name 'guix)
          (url "https://git.savannah.gnu.org/git/guix.git")
          (branch "master")
          (commit
           "15562902da00c97910d918c7bf825d6fc6a9f84b")
          (introduction
           (make-channel-introduction
            "9edb3f66fd807b096b48283debdcddccfea34bad"
            (openpgp-fingerprint
             "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 
             54FA")))))
3. Run `guix time-machine -C channels.scm \
        --commit=15562902da00c97910d918c7bf825d6fc6a9f84b -- \
        shell -m manifest.scm --pure'.
4. Run `./configure && bootstrap && make -j8' (substitute whatever
   numeral makes sense for your hardware).

The build will fail with this error:

    error: failed to load 'gnu/build/linux-initrd.scm':
    ice-9/eval.scm:293:34: In procedure symbol->string: Wrong type
    argument in position 1 (expecting symbol): #:cpio

Observe that the code does not contain `#:cpio', but:

    #:use-module ((guix cpio) #:prefix cpio:)

Okay, so that’s the problem.  I have also observed:

- It’s caused by the changes on this branch.  If you check out the
  base for my changes, 15562902da00c97910d918c7bf825d6fc6a9f84b, 
  then
  `make clean && make -j8', the build completes with no errors.
  Commit 1d7afd1d44fe702236f25ab2558789de41b27ded also builds 
  fine.
- If you check out 15562902da00c97910d918c7bf825d6fc6a9f84b and 
  build
  it, then check out the HEAD of autofs-service-type, it also 
  builds
  without errors.  The failure only happens if you build
  autofs-service-type from a clean state.
- The only changes between 
  15562902da00c97910d918c7bf825d6fc6a9f84b
  and 0ae700d9a7df3d1c6168932e2f72204f1a6a07f1 are to
  gnu/services/nfs.scm.  I am not sure why those changes would 
  cause a
  build failure in a completely different module.

Please let me know if I can provide more information.

Thanks,
  -- Ian