GNU bug report logs - #32293
wrap-program with non-colon separtor produces incorrect bash substitutions

Previous Next

Package: guix;

Reported by: Jelle Licht <jlicht <at> fsfe.org>

Date: Fri, 27 Jul 2018 15:52:01 UTC

Severity: normal

Done: Jelle Licht <jlicht <at> fsfe.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Jelle Licht <jlicht <at> fsfe.org>
Subject: bug#32293: closed (Re: bug#32293: wrap-program with non-colon
 separtor produces incorrect bash substitutions)
Date: Mon, 20 Aug 2018 15:07:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#32293: wrap-program with non-colon separtor produces incorrect bash substitutions

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 32293 <at> debbugs.gnu.org.

-- 
32293: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=32293
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Jelle Licht <jlicht <at> fsfe.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Jelle Licht <jlicht <at> fsfe.org>, 32293-done <at> debbugs.gnu.org
Subject: Re: bug#32293: wrap-program with non-colon separtor produces
 incorrect bash substitutions
Date: Mon, 20 Aug 2018 17:06:07 +0200
Ludovic Courtès <ludo <at> gnu.org> writes:

> Hello Jelle!
>
> Jelle Licht <jlicht <at> fsfe.org> skribis:
>
>> While working to package some lua-related stuff, I need to deal with the
>> LUA_PATH environment variable. This variable uses `;' as a separator, and
>> as such, I wanted to wrap one of my programs
>>
>> ...
>> (wrap-program (string-append out "/bin/fennel")
>>                    `("LUA_PATH" ";" prefix (,path)))
>> ...
>>
>>
>> ... which gives me the following snippet for the fennel script:
>>
>> export LUA_PATH="/gnu/store/3yjzvzwczi37snccrxbw7xsmbns1qc7a-fennel-1-1.f2a3d3b/share/lua/5.3/?.lua${LUA_PATH;+;}$LUA_PATH"
>>
>> ... which is not a correct bash substitution. I _think_ the first `;' in
>> `{LUA_PATH;+;}' needs to be a colon instead, at least if `wrap-program'
>> is only used to generate bash-compliant wrappers.
>>
>> It seems this can be (easily?) fixed around guix/build/utils.scm:1055,
>> but any changes I made there had me starting to build bash and other
>> things from scratch.
>
> It’s indeed where the bug lies.  Changing that file involves a full
> rebuild (because every package build process uses it), but that’s OK:
> you can test the ‘wrap-program’ procedure independently (at the REPL,
> for example), and then we can push this change to ‘core-updates’.
>
> We need to check whether ‘core-updates’ still accepts full-rebuild
> changes at this stage, though.

I pushed this on core-updates as e6c4e41102.

>
> Thanks,
> Ludo’.

[Message part 3 (message/rfc822, inline)]
From: Jelle Licht <jlicht <at> fsfe.org>
To: "Bug-guix\@gnu org" <bug-guix <at> gnu.org>
Subject: wrap-program with non-colon separtor produces incorrect bash
 substitutions
Date: Fri, 27 Jul 2018 17:51:06 +0200
Hi all,

While working to package some lua-related stuff, I need to deal with the
LUA_PATH environment variable. This variable uses `;' as a separator, and
as such, I wanted to wrap one of my programs

--8<---------------cut here---------------start------------->8---
...
(wrap-program (string-append out "/bin/fennel")
                   `("LUA_PATH" ";" prefix (,path)))
...
--8<---------------cut here---------------end--------------->8---

... which gives me the following snippet for the fennel script:

--8<---------------cut here---------------start------------->8---
export LUA_PATH="/gnu/store/3yjzvzwczi37snccrxbw7xsmbns1qc7a-fennel-1-1.f2a3d3b/share/lua/5.3/?.lua${LUA_PATH;+;}$LUA_PATH"
--8<---------------cut here---------------end--------------->8---

... which is not a correct bash substitution. I _think_ the first `;' in
`{LUA_PATH;+;}' needs to be a colon instead, at least if `wrap-program'
is only used to generate bash-compliant wrappers.

It seems this can be (easily?) fixed around guix/build/utils.scm:1055,
but any changes I made there had me starting to build bash and other
things from scratch.



This bug report was last modified 6 years and 279 days ago.

Previous Next


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