[PATCH] guile: allow pre-inst-env inject local paths

  • Open
  • quality assurance status badge
Details
3 participants
  • Maxime Devos
  • Sergei Trofimovich
  • Sergei Trofimovich
Owner
unassigned
Submitted by
Sergei Trofimovich
Severity
normal
S
S
Sergei Trofimovich wrote on 15 May 2021 11:52
(address . guix-patches@gnu.org)
20210515095227.3245343-1-slyfox@gentoo.org
I observed the problem when tried to run 'guix refresh' from local git checkout:

$ strace -f ./pre-inst-env guix refresh -u re2c |& fgrep re2c.scm
...
[pid 3014757] openat(AT_FDCWD, "/usr/share/guile/site/3.0/gnu/packages/re2c.scm.qilB0R",
O_RDWR|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied)

Attempt to /usr/share happens because local directory override is ignored:

$ ./pre-inst-env guile -c '(display (search-path %load-path "gnu/packages/re2c.scm")) (newline) (display %load-path) (newline)'
/usr/share/guile/site/3.0/gnu/packages/re2c.scm
(/usr/share/guile/3.0 \
/usr/share/guile/site/3.0 \
/usr/share/guile/site \
/usr/share/guile \
/home/slyfox/dev/git/guix \
/home/slyfox/dev/git/guix)

It happens because ./guile ignores GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH
unconditionally.

The change keeps GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH for ./pre-inst-env.

* gnu/packages/aux-files/guile-launcher.c (main): don't ignore
GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH in GUIX_UNINSTALLED=1 mode.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
---
gnu/packages/aux-files/guile-launcher.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)

Toggle diff (33 lines)
diff --git a/gnu/packages/aux-files/guile-launcher.c b/gnu/packages/aux-files/guile-launcher.c
index 47ba069de1..bed63353a9 100644
--- a/gnu/packages/aux-files/guile-launcher.c
+++ b/gnu/packages/aux-files/guile-launcher.c
@@ -73,14 +73,19 @@ main (int argc, char **argv)
which is always preferable over the C locale. */
setlocale (LC_ALL, "en_US.utf8");
- const char *str;
- str = getenv ("GUILE_LOAD_PATH");
- load_path = str != NULL ? strdup (str) : NULL;
- str = getenv ("GUILE_LOAD_COMPILED_PATH");
- load_compiled_path = str ? strdup (str) : NULL;
+ /* Allow ./pre-inst-env to inject local paths. That way local sources
+ are preferred for most operations. */
+ if (getenv ("GUIX_UNINSTALLED") == NULL)
+ {
+ const char *str;
+ str = getenv ("GUILE_LOAD_PATH");
+ load_path = str != NULL ? strdup (str) : NULL;
+ str = getenv ("GUILE_LOAD_COMPILED_PATH");
+ load_compiled_path = str ? strdup (str) : NULL;
- unsetenv ("GUILE_LOAD_PATH");
- unsetenv ("GUILE_LOAD_COMPILED_PATH");
+ unsetenv ("GUILE_LOAD_PATH");
+ unsetenv ("GUILE_LOAD_COMPILED_PATH");
+ }
/* XXX: Do not let GMP allocate via libgc as this can lead to memory
corruption in GnuTLS/Nettle since Nettle also uses GMP:
--
2.31.1
S
S
Sergei Trofimovich wrote on 16 Aug 2021 19:28
(address . 48434@debbugs.gnu.org)
20210816182822.654d3e1f@zn3
On Sat, 15 May 2021 10:52:27 +0100
Sergei Trofimovich <slyfox@gentoo.org> wrote:

Toggle quote (63 lines)
> I observed the problem when tried to run 'guix refresh' from local git checkout:
>
> $ strace -f ./pre-inst-env guix refresh -u re2c |& fgrep re2c.scm
> ...
> [pid 3014757] openat(AT_FDCWD, "/usr/share/guile/site/3.0/gnu/packages/re2c.scm.qilB0R",
> O_RDWR|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied)
>
> Attempt to /usr/share happens because local directory override is ignored:
>
> $ ./pre-inst-env guile -c '(display (search-path %load-path "gnu/packages/re2c.scm")) (newline) (display %load-path) (newline)'
> /usr/share/guile/site/3.0/gnu/packages/re2c.scm
> (/usr/share/guile/3.0 \
> /usr/share/guile/site/3.0 \
> /usr/share/guile/site \
> /usr/share/guile \
> /home/slyfox/dev/git/guix \
> /home/slyfox/dev/git/guix)
>
> It happens because ./guile ignores GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH
> unconditionally.
>
> The change keeps GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH for ./pre-inst-env.
>
> * gnu/packages/aux-files/guile-launcher.c (main): don't ignore
> GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH in GUIX_UNINSTALLED=1 mode.
>
> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
> ---
> gnu/packages/aux-files/guile-launcher.c | 19 ++++++++++++-------
> 1 file changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/gnu/packages/aux-files/guile-launcher.c b/gnu/packages/aux-files/guile-launcher.c
> index 47ba069de1..bed63353a9 100644
> --- a/gnu/packages/aux-files/guile-launcher.c
> +++ b/gnu/packages/aux-files/guile-launcher.c
> @@ -73,14 +73,19 @@ main (int argc, char **argv)
> which is always preferable over the C locale. */
> setlocale (LC_ALL, "en_US.utf8");
>
> - const char *str;
> - str = getenv ("GUILE_LOAD_PATH");
> - load_path = str != NULL ? strdup (str) : NULL;
> - str = getenv ("GUILE_LOAD_COMPILED_PATH");
> - load_compiled_path = str ? strdup (str) : NULL;
> + /* Allow ./pre-inst-env to inject local paths. That way local sources
> + are preferred for most operations. */
> + if (getenv ("GUIX_UNINSTALLED") == NULL)
> + {
> + const char *str;
> + str = getenv ("GUILE_LOAD_PATH");
> + load_path = str != NULL ? strdup (str) : NULL;
> + str = getenv ("GUILE_LOAD_COMPILED_PATH");
> + load_compiled_path = str ? strdup (str) : NULL;
>
> - unsetenv ("GUILE_LOAD_PATH");
> - unsetenv ("GUILE_LOAD_COMPILED_PATH");
> + unsetenv ("GUILE_LOAD_PATH");
> + unsetenv ("GUILE_LOAD_COMPILED_PATH");
> + }
>
> /* XXX: Do not let GMP allocate via libgc as this can lead to memory
> corruption in GnuTLS/Nettle since Nettle also uses GMP:

Stumbled on it again today when cloned fresh guix repo and forgot to
apply this patch. Is it a reasonable approach? Or something else is
at fault here?

Thanks!

--

Sergei
M
M
Maxime Devos wrote on 16 Aug 2021 20:52
Re: [bug#48434] [PATCH] guile: allow pre-inst-env inject local paths
430b0e953bf76a13ff2290004d3e7ac1f0bdef7c.camel@telenet.be
Sergei Trofimovich schreef op ma 16-08-2021 om 18:28 [+0100]:
Toggle quote (21 lines)
> On Sat, 15 May 2021 10:52:27 +0100
> Sergei Trofimovich <slyfox@gentoo.org> wrote:
>
> > I observed the problem when tried to run 'guix refresh' from local git checkout:
> >
> > $ strace -f ./pre-inst-env guix refresh -u re2c |& fgrep re2c.scm
> > ...
> > [pid 3014757] openat(AT_FDCWD, "/usr/share/guile/site/3.0/gnu/packages/re2c.scm.qilB0R",
> > O_RDWR|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied)
> >
> > Attempt to /usr/share happens because local directory override is ignored:
> >
> > $ ./pre-inst-env guile -c '(display (search-path %load-path "gnu/packages/re2c.scm")) (newline) (display %load-path) (newline)'
> > /usr/share/guile/site/3.0/gnu/packages/re2c.scm
> > (/usr/share/guile/3.0 \
> > /usr/share/guile/site/3.0 \
> > /usr/share/guile/site \
> > /usr/share/guile \
> > /home/slyfox/dev/git/guix \
> > /home/slyfox/dev/git/guix)

^ here's the checkout in the load path

Toggle quote (4 lines)
> >
> > It happens because ./guile ignores GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH
> > unconditionally.

The local directory isn't ignored, it's at the end (the effect is about the same though).

Toggle quote (5 lines)
> > The change keeps GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH for ./pre-inst-env.
> >
> > * gnu/packages/aux-files/guile-launcher.c (main): don't ignore
> > GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH in GUIX_UNINSTALLED=1 mode.

Could you do something like

#define GUIX_UNINSTALLED 1
#if GUIX_UNINSTALLED
new behaviour
#else
OLD BEHAVIOUR
#endif

and change "Makefile.am" to compile two variants of "guile",
one with "DGUIX_UNINSTALLED=1" which goes into libexec, and another
with "DGUIX_UNINSTALLED=0" named "$CHECKOUT/guile" which isn't installed
anywhere but will be added to PATH by "pre-inst-env", or something like that?

I've a bit of an aversion towards using $..._UNINSTALLED environment variables,
as it leads to difficult situations like ‘what should happen if I /gnu/store/.../bin/guix
is run with GUIX_UNINSTALLED set to 1’:

(a): Reset "GUILE_LOAD{,_COMPILED}_PATH" because we're running directly from the store
(b): Don't reset "GUILE_LOAD_{,_COMPILED}_PATH" because GUIX_UNINSTALLED is set to 1.

As a comparison, GUIX_UNINSTALLED, the preprocessor variable, is like a ‘lexical variable’,
and GUIX_UNINSTALLED, the environment variable, is like a
‘parameter object’/‘dynamically bound variable’ (see, e.g., 6.11.12 Parameters in the Guile
manual). I tend to prefer the former, except for dynamic things like LC_ALL, $[...]_PATH
(when used by "guile", "gcc" -- applications typically shouldn't depend on $GUILE_LOAD_PATH,
if they do, they need 'wrap-program' or the like’).

Also, "guile-launcher.c" is used by 'quiet-quile" in (guix self). It should probably be
verified that "guix pull" still works well.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYRq0ABccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7u7dAP9nyeKHaysuBDca+a/M++uXSwnB
KuxMRdGln5+HLg/dJgEArmz16fXyIH98bXEO/VAu3uc7l/Mk5c9cdYsIDx9XqAM=
=ipRd
-----END PGP SIGNATURE-----


S
S
Sergei Trofimovich wrote on 17 Aug 2021 10:28
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 48434@debbugs.gnu.org)
20210817092830.7a86d795@zn3
On Mon, 16 Aug 2021 20:52:48 +0200
Maxime Devos <maximedevos@telenet.be> wrote:

Toggle quote (15 lines)
> Sergei Trofimovich schreef op ma 16-08-2021 om 18:28 [+0100]:
> > On Sat, 15 May 2021 10:52:27 +0100
> > Sergei Trofimovich <slyfox@gentoo.org> wrote:
> >
> > > I observed the problem when tried to run 'guix refresh' from local git checkout:
> > >
> > > $ strace -f ./pre-inst-env guix refresh -u re2c |& fgrep re2c.scm
> > > ...
> > > [pid 3014757] openat(AT_FDCWD, "/usr/share/guile/site/3.0/gnu/packages/re2c.scm.qilB0R",
> > > O_RDWR|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied)
> > >
> > > Attempt to /usr/share happens because local directory override is ignored:

> The local directory isn't ignored, it's at the end (the effect is about the same though).

Reworded to: "because local directory override has too low priority".

Toggle quote (19 lines)
> > > The change keeps GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH for ./pre-inst-env.
> > >
> > > * gnu/packages/aux-files/guile-launcher.c (main): don't ignore
> > > GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH in GUIX_UNINSTALLED=1 mode.
>
> Could you do something like
>
> #define GUIX_UNINSTALLED 1
> #if GUIX_UNINSTALLED
> new behaviour
> #else
> OLD BEHAVIOUR
> #endif
>
> and change "Makefile.am" to compile two variants of "guile",
> one with "DGUIX_UNINSTALLED=1" which goes into libexec, and another
> with "DGUIX_UNINSTALLED=0" named "$CHECKOUT/guile" which isn't installed
> anywhere but will be added to PATH by "pre-inst-env", or something like that?

Attached v2 patch that should solve all the above.

Added two 'guile' flavours:
inplace/guile (to be used inplace)
store/guile (to be installed to libexec)
While at it moved 'guix-daemon' to 'inplace/' as well to make it clear that
tests use inplace variant sometimes. Installation location did not change.

Also moved scripts/guix to inplace/guix as ./pre-inst-env relies on it to
be injected to PATH.

Toggle quote (3 lines)
> Also, "guile-launcher.c" is used by 'quiet-quile" in (guix self). It should probably be
> verified that "guix pull" still works well.

It's a bit hard to test right now as guix-master is slightly broken due to
missing installed files when installed as a primary package manager, but at
least fetch part works fine:

$ guix pull
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Authenticating channel 'guix', commits 9edb3f6 to f7094f5 (29 new commits)...
Building from this channel:
Backtrace:
In ice-9/boot-9.scm:
222:29 19 (map1 (((guix store)) ((guix records)) ((guix #)) (#) …))
222:29 18 (map1 (((guix records)) ((guix profiles)) ((guix #)) # …))
222:29 17 (map1 (((guix profiles)) ((guix discovery)) ((guix …)) …))
222:29 16 (map1 (((guix discovery)) ((guix combinators)) ((# …)) …))
222:29 15 (map1 (((guix combinators)) ((guix channels)) ((# #)) …))
222:29 14 (map1 (((guix channels)) ((guix describe)) ((guix #)) …))
222:29 13 (map1 (((guix describe)) ((guix sets)) ((guix ui)) (#) …))
222:29 12 (map1 (((guix sets)) ((guix ui)) ((guix diagnostics)) …))
222:29 11 (map1 (((guix ui)) ((guix diagnostics)) ((guix #)) (#) …))
222:29 10 (map1 (((guix diagnostics)) ((guix modules)) ((# #)) # …))
222:29 9 (map1 (((guix modules)) ((guix packages)) ((guix #)) # …))
222:29 8 (map1 (((guix packages)) ((guix utils)) ((gnu # #)) # …))
222:29 7 (map1 (((guix utils)) ((gnu packages base)) ((gnu …)) …))
222:29 6 (map1 (((gnu packages base)) ((gnu packages bash)) (#) …))
222:29 5 (map1 (((gnu packages bash)) ((gnu packages hurd)) (#) …))
222:29 4 (map1 (((gnu packages hurd)) ((gnu system setuid)) (#) …))
222:17 3 (map1 (((gnu system setuid)) ((srfi srfi-1)) ((# #)) # …))
3329:6 2 (resolve-interface (gnu system setuid) #:select _ #:hide …)
1685:16 1 (raise-exception _ #:continuable? _)
1685:16 0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
no code for module (gnu system setuid)

Thanks!

--

Sergei
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQKTBAEBCgB9FiEE+g11JqJ4cL44QkmN7V5F4G8qwpMFAmEbcy5fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZB
MEQ3NTI2QTI3ODcwQkUzODQyNDk4REVENUU0NUUwNkYyQUMyOTMACgkQ7V5F4G8q
wpNFdw//XKDejSC5UcZ0uGEqXcpWL8Cz+RjiXFHOqQBZR7grr4EV3cME6GSONBe9
jgKXhO44xJa2+uv5IRFGqWNqcwKThFZw4Is4cOfkNxKI2BL5/AMXJOmoYV5aARRf
jE/UxkI3DplzB69d5iWbUmRwzFUk0FB88hxchjxmfl0pvmUV1KEdBv75rwaGALlE
KbcVJWVhOeoVTDIYNLpLuIHjpE4xIYSOYEaeLBCzlUERYw0ddI3dj/PBGL1QOSlK
xoyRctXBzO/LglKJv9AaA++Lbx3+GdxrXTxijRfLPsJFfm/CDVr5Z/l742URZ8Mv
fLxKGuA5EflTGR37wf192+8kPNgdVBIes2aoQMxmbkBk39u1jWmUvflYSHVKCRvm
jde9ctTO/ZdxRFL34VPHXspCSSe7s84ZFz67Pj/BBwG6+1vud45XacHxDpOeCQRD
NFRofFF1FOhIm7mJEwxbfTu1mtCPcavhSehXhkha1EghychYJS/65P4THz0qZ9qh
DlxjNpBRa73tCuJ12jYpgGr5bU0QInhbM+YRt+cZ5sQQHjs0kMhay9y0WabM+VPy
Dn1cbxhxqXWNPmjpD2iQNukAeD3bmb/vwCXrw0OGDgus5vtN5yFo5FiJTjsEhWKg
PxjclmWVgFD49ww70doX570+0vI/ufnrraFP5Qzbancy2hQKbKw=
=Pz9u
-----END PGP SIGNATURE-----


S
S
Sergei Trofimovich wrote on 17 Aug 2021 11:35
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 48434@debbugs.gnu.org)
20210817103539.205800bd@zn3
On Tue, 17 Aug 2021 09:28:30 +0100
Sergei Trofimovich <slyich@gmail.com> wrote:

Toggle quote (88 lines)
> On Mon, 16 Aug 2021 20:52:48 +0200
> Maxime Devos <maximedevos@telenet.be> wrote:
>
> > Sergei Trofimovich schreef op ma 16-08-2021 om 18:28 [+0100]:
> > > On Sat, 15 May 2021 10:52:27 +0100
> > > Sergei Trofimovich <slyfox@gentoo.org> wrote:
> > >
> > > > I observed the problem when tried to run 'guix refresh' from local git checkout:
> > > >
> > > > $ strace -f ./pre-inst-env guix refresh -u re2c |& fgrep re2c.scm
> > > > ...
> > > > [pid 3014757] openat(AT_FDCWD, "/usr/share/guile/site/3.0/gnu/packages/re2c.scm.qilB0R",
> > > > O_RDWR|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied)
> > > >
> > > > Attempt to /usr/share happens because local directory override is ignored:
>
> > The local directory isn't ignored, it's at the end (the effect is about the same though).
>
> Reworded to: "because local directory override has too low priority".
>
> > > > The change keeps GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH for ./pre-inst-env.
> > > >
> > > > * gnu/packages/aux-files/guile-launcher.c (main): don't ignore
> > > > GUILE_LOAD_PATH / GUILE_LOAD_COMPILED_PATH in GUIX_UNINSTALLED=1 mode.
> >
> > Could you do something like
> >
> > #define GUIX_UNINSTALLED 1
> > #if GUIX_UNINSTALLED
> > new behaviour
> > #else
> > OLD BEHAVIOUR
> > #endif
> >
> > and change "Makefile.am" to compile two variants of "guile",
> > one with "DGUIX_UNINSTALLED=1" which goes into libexec, and another
> > with "DGUIX_UNINSTALLED=0" named "$CHECKOUT/guile" which isn't installed
> > anywhere but will be added to PATH by "pre-inst-env", or something like that?
>
> Attached v2 patch that should solve all the above.
>
> Added two 'guile' flavours:
> inplace/guile (to be used inplace)
> store/guile (to be installed to libexec)
> While at it moved 'guix-daemon' to 'inplace/' as well to make it clear that
> tests use inplace variant sometimes. Installation location did not change.
>
> Also moved scripts/guix to inplace/guix as ./pre-inst-env relies on it to
> be injected to PATH.
>
> > Also, "guile-launcher.c" is used by 'quiet-quile" in (guix self). It should probably be
> > verified that "guix pull" still works well.
>
> It's a bit hard to test right now as guix-master is slightly broken due to
> missing installed files when installed as a primary package manager, but at
> least fetch part works fine:
>
> $ guix pull
> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
> Authenticating channel 'guix', commits 9edb3f6 to f7094f5 (29 new commits)...
> Building from this channel:
> guix https://git.savannah.gnu.org/git/guix.git f7094f5
> Backtrace:
> In ice-9/boot-9.scm:
> 222:29 19 (map1 (((guix store)) ((guix records)) ((guix #)) (#) …))
> 222:29 18 (map1 (((guix records)) ((guix profiles)) ((guix #)) # …))
> 222:29 17 (map1 (((guix profiles)) ((guix discovery)) ((guix …)) …))
> 222:29 16 (map1 (((guix discovery)) ((guix combinators)) ((# …)) …))
> 222:29 15 (map1 (((guix combinators)) ((guix channels)) ((# #)) …))
> 222:29 14 (map1 (((guix channels)) ((guix describe)) ((guix #)) …))
> 222:29 13 (map1 (((guix describe)) ((guix sets)) ((guix ui)) (#) …))
> 222:29 12 (map1 (((guix sets)) ((guix ui)) ((guix diagnostics)) …))
> 222:29 11 (map1 (((guix ui)) ((guix diagnostics)) ((guix #)) (#) …))
> 222:29 10 (map1 (((guix diagnostics)) ((guix modules)) ((# #)) # …))
> 222:29 9 (map1 (((guix modules)) ((guix packages)) ((guix #)) # …))
> 222:29 8 (map1 (((guix packages)) ((guix utils)) ((gnu # #)) # …))
> 222:29 7 (map1 (((guix utils)) ((gnu packages base)) ((gnu …)) …))
> 222:29 6 (map1 (((gnu packages base)) ((gnu packages bash)) (#) …))
> 222:29 5 (map1 (((gnu packages bash)) ((gnu packages hurd)) (#) …))
> 222:29 4 (map1 (((gnu packages hurd)) ((gnu system setuid)) (#) …))
> 222:17 3 (map1 (((gnu system setuid)) ((srfi srfi-1)) ((# #)) # …))
> 3329:6 2 (resolve-interface (gnu system setuid) #:select _ #:hide …)
> 1685:16 1 (raise-exception _ #:continuable? _)
> 1685:16 0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> no code for module (gnu system setuid)

works successfully on a multi-user foreign distribution.

--

Sergei
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQKTBAEBCgB9FiEE+g11JqJ4cL44QkmN7V5F4G8qwpMFAmEbgutfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZB
MEQ3NTI2QTI3ODcwQkUzODQyNDk4REVENUU0NUUwNkYyQUMyOTMACgkQ7V5F4G8q
wpPKXw/+OcS0qx0cxflo0VmNqJ4kEUoPtEDLbrkrsZYOTEAaIqkv1Tjp+dZdRb3p
0b/Q+dE5jbKXfSgoMnfju8r1UFjInwwe0rtysH/4wm14dYgHuITSCS2QROmkXgyY
smFW52iRfxYdy7q7rsBnoSSaf3BVwB/5FMP8ytxFosqwb3vmaHX7VurjNNXam3zo
i7zXtz0VV00xcHxLIvF5uOJGqFwQITGridPtNlLOC7JfaOj7bsJwrFpbhmvMiRAd
+YSBVsWXo9Ou57qmbtyd4t5s8EPGt3mzcjXr0xbp2jdWwMXXvSBrQRIMBoMmnVJc
vLuWRsEUaXYJcU6j5yMXG5j0D7Q+Q1eP+K/1vDJj5Eh3IAtPWGJOnQ1DP5/sKnFQ
pf1KmotcmtmUcLn2LBNqUyrmUTvBx4mX3moc5DctNpwCcxV/U/I3Np2+L6TMAOgS
nd1Z+uqGnqngbhczfQ4MqoEKSgq/9K3V7SD636Jmq/EdptPIC8XKwLMaqJcbnjPw
SwjwwQgNJ9nZEkTGna+pSU0RrPYIsBslI1lvUShdcOPAGa8RwBI5ZbSXla+pT3FP
4hd6uO/ryCSUnzGn+riSeW93POkY1MchyNO8f5ahTClJ7FnKsdd8XAzL4/2fw7JV
Uz0mxtjVfLHAQOIx+0Q/nZ9haXxWPvhobJp/ZuTtRLD1P5Fd0Yc=
=6d4Q
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 17 Aug 2021 12:24
(name . Sergei Trofimovich)(address . slyich@gmail.com)(address . 48434@debbugs.gnu.org)
1c0ddae642a3ffc341ae8d904c8fc2d5eecfef5f.camel@telenet.be
Sergei Trofimovich schreef op di 17-08-2021 om 09:28 [+0100]:
Toggle quote (10 lines)
> It's a bit hard to test right now as guix-master is slightly broken due to
> missing installed files when installed as a primary package manager, but at
> least fetch part works fine:
>
> $ guix pull
> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
> Authenticating channel 'guix', commits 9edb3f6 to f7094f5 (29 new commits)...
> Building from this channel:
> guix https://git.savannah.gnu.org/git/guix.git f7094f5

I meant something like "$ guix pull --url=. --commit=... --root=guix0"
or "$ ./pre-inst-env guix pull --url=. --commit=... --root=guix1" or
"$ ./pre-inst-env guix pull --root=guix2". Simply running "$
guix pull",
outside "./pre-inst-env", would simply test the (unpatched) guix you have
installed (with "make install" or "apt-get install guix" or "guix pull"),
and doesn't test the patched guix.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYRuOchccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7tw8AQCokkS8Gg1Ix1CIl1Le1GSRfGHs
k6d7RXNLeoB11b8JtwEA9VIokkouqtdTpcn5QbrgsFnt1a8jTR85CUPX+1se/QU=
=5YcE
-----END PGP SIGNATURE-----


S
S
Sergei Trofimovich wrote on 17 Aug 2021 14:15
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 48434@debbugs.gnu.org)
20210817131551.68222eee@zn3
On Tue, 17 Aug 2021 12:24:50 +0200
Maxime Devos <maximedevos@telenet.be> wrote:

Toggle quote (19 lines)
> Sergei Trofimovich schreef op di 17-08-2021 om 09:28 [+0100]:
> > It's a bit hard to test right now as guix-master is slightly broken due to
> > missing installed files when installed as a primary package manager, but at
> > least fetch part works fine:
> >
> > $ guix pull
> > Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
> > Authenticating channel 'guix', commits 9edb3f6 to f7094f5 (29 new commits)...
> > Building from this channel:
> > guix https://git.savannah.gnu.org/git/guix.git f7094f5
>
> I meant something like "$ guix pull --url=. --commit=... --root=guix0"
> or "$ ./pre-inst-env guix pull --url=. --commit=... --root=guix1" or
> "$ ./pre-inst-env guix pull --root=guix2". Simply running "$
> guix pull",
> outside "./pre-inst-env", would simply test the (unpatched) guix you have
> installed (with "make install" or "apt-get install guix" or "guix pull"),
> and doesn't test the patched guix.

Ah. I did install patched guix into the system (and that's how

I still don't quite understand if channel we pull from also should be patched.
Let's assume it should:

$ LANG=C ./pre-inst-env guix pull --url=. --commit=e9029ed5eae45ee8f53f055ee66f9bce353cac84 --root=guix0
guix pull: error: root=guix0: unrecognized option

I'm not sure what --root= does. Is it a user name? Or a profile name?

--

Sergei
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQKTBAEBCgB9FiEE+g11JqJ4cL44QkmN7V5F4G8qwpMFAmEbqHdfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZB
MEQ3NTI2QTI3ODcwQkUzODQyNDk4REVENUU0NUUwNkYyQUMyOTMACgkQ7V5F4G8q
wpNUOhAApkFGbFmIRphayF0JPO+gPl/p7a9ZxeDnaaviZ7SjFS98Nb3r6wKW2Fkj
ztMnAT8H9ZkFumNXVvCwqv8LGd4eLy1OdcYT0rR1iYJJxvVrlcEh3dN3/8rRY3qE
qCDFG7rjnP/QxcNRgRHw2HY8BR5X94Yet68Bvi/d59FZ5104tSvAc0aVUITIZVVh
sarjfTLSWhJOtZ83JfbCQ5wnfr2gA3OZi4+J8hQdOqERWXN7te538KYKAfglJy0A
5F/EvsSSu1i3jtqyvSAaF2EbEPaj1iJdqO1RyU43cSUVXzQTvouIk3FIiclvCpNw
waonZyKuer3lxBmrh2766tp9HEh4bL036Mu4wgYbXkB7jQWbEd2LoLorZsJHPgVm
IFGhQXjfHqkRIW9QlkwLOnY+4ymvSyTXnVdejkx13Y24uSNYs9OFJVl40UmPT7hi
FKsgzg5eypv73J/FM28boaYZov7Ck91tiu0EYvULhnUAQC+UjyRwN7SGSdpk9FoW
SA8KAeXAhNizmNpNxQAF92umff25PszqJL2lWfeIybvHSl/aQlxQBN8F9nbb73zE
Sj73W4Wka+Sxy6iC8SBDXXSfAYeKKJ/jJ3xDHH/hWIY/xstMLE74P1ygMlUiwhXB
Z30effVGFMNqKM+j32ij/+d6MX7nxf6pukqt6Fn6nxiMP0Z+Bhw=
=hbyi
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 17 Aug 2021 15:59
(name . Sergei Trofimovich)(address . slyich@gmail.com)(address . 48434@debbugs.gnu.org)
83e6e2b24540bdcbd584bd9418b59c952a6baa26.camel@telenet.be
Toggle quote (11 lines)
> Ah. I did install patched guix into the system (and that's how
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=50090).
>
> I still don't quite understand if channel we pull from also should be patched.
> Let's assume it should:
>
> $ LANG=C ./pre-inst-env guix pull --url=. --commit=e9029ed5eae45ee8f53f055ee66f9bce353cac84 --root=guix0
> guix pull: error: root=guix0: unrecognized option
>
> I'm not sure what --root= does. Is it a user name? Or a profile name?

I forgot the exact option, it should have been "--profile=guix0".
From (guix)Submitting patches:

15. Make sure your changes do not break Guix and simulate a ‘guix
pull’ with:
guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYRvAqRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7kGLAQCEQrHEsSAM4u5KChmrKb4lKls5
n5U+T78LR3WQofS92AEAsTabHaYLebAjw7emKIkOn6J/XNbjhCCgZq5p8rGZewI=
=Wp4T
-----END PGP SIGNATURE-----


S
S
Sergei Trofimovich wrote on 17 Aug 2021 19:42
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 48434@debbugs.gnu.org)
20210817184205.670d2121@zn3
On Tue, 17 Aug 2021 15:59:05 +0200
Maxime Devos <maximedevos@telenet.be> wrote:

Toggle quote (19 lines)
> > Ah. I did install patched guix into the system (and that's how
> > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=50090).
> >
> > I still don't quite understand if channel we pull from also should be patched.
> > Let's assume it should:
> >
> > $ LANG=C ./pre-inst-env guix pull --url=. --commit=e9029ed5eae45ee8f53f055ee66f9bce353cac84 --root=guix0
> > guix pull: error: root=guix0: unrecognized option
> >
> > I'm not sure what --root= does. Is it a user name? Or a profile name?
>
> I forgot the exact option, it should have been "--profile=guix0".
> From (guix)Submitting patches:
>
> 15. Make sure your changes do not break Guix and simulate a ‘guix
> pull’ with:
> guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master
>

Aha, thank you! That works:

$ guix pull --commit=... --url=${PWD} --profile=/tmp/g1.master --disable-authentication
$ ./pre-inst-env guix pull --commit=... --url=${PWD} --profile=/tmp/g2.master --disable-authentication

--

Sergei
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQKTBAEBCgB9FiEE+g11JqJ4cL44QkmN7V5F4G8qwpMFAmEb9O5fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZB
MEQ3NTI2QTI3ODcwQkUzODQyNDk4REVENUU0NUUwNkYyQUMyOTMACgkQ7V5F4G8q
wpM0JRAAvwwekozFPyqUfMKEouVI6Q0LV+wyiGlEdPJBV53fsADUyUs+b0R68Fxf
dRxLt0Fh7Hf8NWBeBAzmLNwouv3hZYdEXydR0RrZ+lwhGTh9hJN3oX3e6O/WhifA
Eh3vz9Y17DvkBQ3sDnZbrOEni9EOay9RTml7PBbrT2C1+hOFNIMiPu5HismEP1Mt
WhQhuHagYxjBkHyekF/dDyu5PLmEicYLSScPFyz8pExoMIQjXh3z63CsPcfV3uhL
o3n4ged/Vwi1rUOU9oeeejzTB4WsSgxV5ynsPheAWL9CtIdA4BR+dpZmRgvNr63S
OS9pvQ5cFVbPkgxA8wYCW8hyqJGn1PfoKKVbxZkvZ3FuqF2ioAywpSKToQarLbbu
tjekRSVo+BuL/JAQ0Ikq1ShPaFguBKKKlE4+JGM/KI1UUUWmh0v84iM45nIS7qSi
krSOUkOWMeF3xSFal0wiCeEe7AygJ6xmo6OA3xXTakZOemkPy1nrFPD80P5rK9AO
pkz2+y+aeN2omLoTIFQq5UP702U47vX+pVsW2v4Bl3csO0Hi3q0huc1L14uWONFA
AJJRv6SNCx9f4ciNRvt4E67rFSc5V7X4rGcjdw2KmqMIseguELB86J7E415yqVMZ
h+i1m9fKvoHAzRlMQcO+Yhkjvq18Am0hcwqvRom0M5qXe6RuEhc=
=378X
-----END PGP SIGNATURE-----


?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 48434@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 48434
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch