[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

use of {} shell wildcards in debian/rules



I have recently come across this behaviour while rebuilding
modxslt; in the debian/rules file, there are several instances
of the idiom:

@cp -a $(CURDIR)/debian/libmodxslt0/usr/lib/libmodxslt0{.a,.la} \
       $(CURDIR)/debian/libmodxslt0-dev/usr/lib

Note the use of the {.a,.la} wildcards.

While perfectly reasonable in bash, they are of course 
not POSIX shell wildcards. For some reason (I'm not actually
entirely clear why; I still have /bin/sh -> /bin/bash on 
this machine), make was using some non-bash shell to
execute its commands, so dpkg-buildpackage kept on failing
halfway through.

Similarly (though less problematically) there are several 
uses of "echo -e" which is not supported by whichever shell 
is being used. (but this just results in "-e" being output)

Clearly this is easy to fix, and I can provide a short bug
report and patch to modxslt; but I don't know if debian/rules
files are expected to conform to POSIX, or if one is allowed
the latitude of bash. Since they are Makefiles, there is no
convention (is there?) for specifying which shell should
be used to execute commands.

Should I submit a bug?

-- 
Dr. Toby White 
Dept. of Earth Sciences, Downing Street, Cambridge CB2 3EQ. UK
Email: <tow21@cam.ac.uk>



Reply to: