[Build-common-hackers] Bug#712729: The fix for this breaks other packages

Felipe Sateler fsateler at debian.org
Wed Sep 3 22:17:52 UTC 2014


On Wed, Sep 3, 2014 at 6:03 PM, Simon Ruderich <simon at ruderich.org> wrote:
> On Wed, Sep 03, 2014 at 03:37:01PM -0400, Felipe Sateler wrote:
>> The change proposed by Simon prepends every variable known to make
>> that starts with DEB_ , along with its value, to the invocation of
>> dpkg-buildflags. The problem is that some make variable names are
>> illegal as shell variable names. Like for example
>> DEB_DBG_PACKAGE_pulseaudio-module-zeroconf, which is not a valid shell
>> variable name. So the invocation expands to something like:
>
> Hello Felipe,

Hello Simon,

>
> The attached patch should fix this issue. I haven't used a
> whitelist of variables (which might get out of date) but instead
> filtered out all variables containing "-" in their names.

The problem is that such a blacklist could include other invalid shell
characters: + comes to mind, but I don't know the entire set of
character which are allowed as shell variables, as opposed to the
valid make allowed chars.

Maybe a more appropriate way would be to, instead of filtering out the
-, filter by matching FLAGS (after the DEB_ prefix)?


>
> I'm not sure how to create a Makefile variable with a "-" in it,
> I failed to do so, but the patch should work. Please test it, as
> I haven't tried to build pulseaudio with the patch.

You can do so like this:

% cat Makefile
dash = -
problem_$(dash) = 12345 # way 1
var = $(problem_$(dash))
v-2 = 2 # way 2

all:
        echo $(var) $(v-2)

-- 

Saludos,
Felipe Sateler



More information about the Build-common-hackers mailing list