'current-guix' uses configure flags of Git checkout

  • Done
  • quality assurance status badge
Details
2 participants
  • Winter
  • Simon Tournier
Owner
unassigned
Submitted by
Winter
Severity
normal
W
W
Winter wrote on 5 Mar 2023 19:43
(address . bug-guix@gnu.org)
54A42435-DA64-4CF4-976B-2789D7441C55@winter.cafe
Hi,

Given the following commands from a fresh checkout (after the keyring branch has been fetched and 'guix git authenticate' has been run):

./bootstrap
./configure --localstatedir=/var --sysconfdir=/hi/guix
make
./pre-inst-env guix system image -t iso9660 gnu/system/install.scm

Booting the resulting ISO will result in the installer running a Guix instance that has a sysconfdir of '/hi/guix', which can be checked by looking at the contents of '/run/current-system/profile/share/guile/site/3.0/guix/config.scm':

(define-public %sysconfidr "/hi/guix")

This is caused because the installer uses 'current-guix', and it seemingly does not reconfigure the build (likely due to the use of 'channel-build-system').

Thanks,
Winter
W
W
Winter wrote on 6 Mar 2023 02:28
(address . 61987@debbugs.gnu.org)
49541BAF-F0DE-4DEF-86EC-353AB605A8C6@winter.cafe
I've tried to dig deeper into this, but am stumped by an issue: editing 'build-aux/build-self.scm' isn't actually doing anything.

After applying this diff, the status message still prints out when running './pre-inst-env guix build -e "((@ (gnu packages package-management) current-guix))"':

Toggle diff (22 lines)
diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm
index 02822a2ee8..607a7ac0cd 100644
--- a/build-aux/build-self.scm
+++ b/build-aux/build-self.scm
@@ -461,8 +461,6 @@ files."
(logior major minor))
"none")
node))))))
- (format (current-error-port) "Computing Guix derivation for '~a'... "
- system)

;; Wait for a connection on SOCK and proxy build output so it can be
;; processed according to the settings currently in effect (build

However, (guix channels) is definitely reading build-self, as changing the path it reads it from to a nonexistent path causes the build to throw, as expected.

The same goes for if I edit any module except for some values in (guix config) -- 'current-guix' never gets rebuilt.

I'd appreciate any help in figuring this out.

Thanks,
Winter
W
W
Winter wrote on 7 Mar 2023 05:18
(address . 61987@debbugs.gnu.org)
93283ACC-FFC5-46D2-A0E9-2AA55539463C@winter.cafe
After looking through some of the code in (guix self), this may not be a bug at all? If something wants the current Guix, it'd definitely want that to include all the configuration values of the current Guix, too.

Due to this, I'm leaning towards closing this issue, but I'll let someone more knowledgable in this area make the final call.

Thanks,
Winter
S
S
Simon Tournier wrote on 7 Mar 2023 13:38
Re: bug#61987: 'current-guix' uses configure flags of Git checkout
86o7p4but1.fsf@gmail.com
Hi,

Toggle quote (2 lines)
> ./configure --localstatedir=/var --sysconfdir=/hi/guix

[...]

Toggle quote (2 lines)
> (define-public %sysconfidr "/hi/guix")

Well, I do not see where is the bug. :-) I think it is expected.

Cheers,
simon
W
W
Winter wrote on 7 Mar 2023 16:33
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)
6DCA1F86-DEBB-41F7-9E2E-6121B411D75E@winter.cafe
tags 61987 notabug
close 61987
thanks

Hi Simon,

Agreed -- I'll submit a patch for a side effect of this, but this doesn't seem to be an actual issue.

Thanks,
Winter
?