Source: boost1.67
Version: 1.67.0-9
Severity: serious
Control: clone -1 -2 boost1.62 1.62.0+dfsg-10
Control: retitle -2 boost1.62: for loops without set -e
Justification: Policy ยง4.6


Hi boost maintainers,

I've noticed that your for loops in your rules files are buggy.
This things:

        for pyver in $(pyversions); do \
                echo "Building Boost.Python for python version $$pyver"; \
                $(JAM) --build-dir=build-$$pyver --stagedir=stage-$$pyver 
--user-config=$(CURDIR)/user-config-$$pyver.jam --with-python --with-mpi 
python=$$pyver; \
        done

is buggy, as it wouldn't cause a build failure in the instance $(JAM)
failed.

you should prepend `set -e` in your for loops, like this:

    set -e ; for pyver in $(pyversions); do \ ....

in *all* the loops.  Alternatively you could appropriatly set SHELL,
but I somewhat recommend against, as I tend to prefer explicit errors
checking in my makefiles.

To be honest, I'd actually recommend you don't use shell loops in
makefiles, but instead prefer the facilities provided by makefiles
itself, which would also provide you with an increased parallelism
during the execution.

-- 
regards,
                        Mattia Rizzolo

GPG Key: 66AE 2B4A FCCF 3F52 DA18  4D18 4B04 3FCD B944 4540      .''`.
more about me:  https://mapreri.org                             : :'  :
Launchpad user: https://launchpad.net/~mapreri                  `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia  `-

Attachment: signature.asc
Description: PGP signature

Reply via email to