Subject: bug#32293: closed (Re: bug#32293: wrap-program with non-colon separtor produces incorrect bash substitutions)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 20 Aug 2018 15:07:02 +0000

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 [email-masked].

-- 
32293: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=32293
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#32293: wrap-program with non-colon separtor produces incorrect bash substitutions
From: Jelle Licht <[email-masked]>
To: Ludovic Courtès <[email-masked]>
Cc: Jelle Licht <[email-masked]>, [email-masked]
Date: Mon, 20 Aug 2018 17:06:07 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Ludovic Courtès <[email-masked]> writes:

> Hello Jelle!
>
> Jelle Licht <[email-masked]> 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’.

Subject: wrap-program with non-colon separtor produces incorrect bash substitutions
From: Jelle Licht <[email-masked]>
To: "Bug-guix\@gnu org" <[email-masked]>
Date: Fri, 27 Jul 2018 17:51:06 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

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.