[pacman-dev] [PATCH 2/2] makepkg: allow to substitute with existing vars
郑文辉(Techlive Zheng)
techlivezheng at gmail.com
Thu Oct 3 09:01:06 EDT 2013
2013/10/3 Dave Reisner <d at falconindy.com>:
> On Thu, Oct 03, 2013 at 03:49:34PM +0800, Techlive Zheng wrote:
>> ---
>> scripts/makepkg.sh.in | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>> index f6d884f..1736dc7 100644
>> --- a/scripts/makepkg.sh.in
>> +++ b/scripts/makepkg.sh.in
>> @@ -2809,7 +2809,7 @@ fi
>>
>> # override settings from extra variables on commandline, if any
>> if (( ${#extra_environment[*]} )); then
>> - export "${extra_environment[@]}"
>> + eval export "${extra_environment[@]}"
>
> NAK. The intention was for the extra args on the commandline to be
> treated exactly as make treats them. Doing this introduces an
> (undocumented) layer of indirection that would not be easily discernable
> at a glance, and probably result in some very unexpected behavior.
>
> Simple example: your change has no regard for whitespace, so something
> like CFLAGS='-O2 -g' will abort strangely:
>
> /home/noclaf/src/up/pacman/scripts/makepkg: line 2851: export:
> `-Wnotvalid': not a valid identifier
>
> You'd need to pass CFLAGS='-O2\ -g' which is unexpected and potentially
> awkward. Consider the case where the value comes from somewhere other
> than a string literal.
>
> The whitespace concerns could be fixed, but I really don't think this is
> generally a road we want to go down.
>
>> fi
>>
>> # set pkgdir to something "sensible" for (not recommended) use during build()
>> --
>> 1.8.4
>>
>>
>
What I want to accomplish with this is that I want to do something
like this `makepkg SRCDEST='$BUILDDIR/$pkgbase'` which will store
downloaded sources into the directory where they will be built not
where the PKGBUILD is.
There is no other way I could do this without these patches.
More information about the pacman-dev
mailing list