set pipefail changes the pipeline return status from being the return
status of the last command to the last non 0 exit status of any command
in the pipeline. This is needed to make sure all the commands in a
pipeline did actually return a non 0 status and not only the last one.
PR: 250723
Exp-run by: antoine
Reviewed by: bapt
Approved by: bapt
Differential Revision: https://reviews.freebsd.org/D27007
set pipefail changes the pipeline return status from being the return
status of the last command to the last non 0 exit status of any command
in the pipeline. This is needed to make sure all the commands in a
pipeline did actually return a non 0 status and not only the last one.
When command expansions are unquoted, word splitting and globbing will
occur. This often manifests itself by breaking when filenames contain
spaces.
Trying to fix it by adding quotes or escapes to the data will not work.
Instead, quote the command substitution itself.
If the command substitution outputs multiple pieces of data, use a loop
instead.
Add an exception when using set -- where splitting is intended.
PR: 227109
Submitted by: mat
Exp-run by: antoine
Sponsored by: Absolight
Backtick command substitution `STATEMENT` is legacy syntax with several
issues.
- It has a series of undefined behaviors related to quoting in POSIX.
- It imposes a custom escaping mode with surprising results.
- It's exceptionally hard to nest.
$(STATEMENT) command substitution has none of these problems, and is
therefore strongly encouraged.
PR: 227109
Submitted by: mat
Sponsored by: Absolight
Change the way the dependencies are registred so that now it follows the same
mechanism as when the *_DEPENDS making the dependency registration system ready
to allow multiple packages from the same origin such as flavours and subpackages
Also allowing to install twice the same port one built with python33 and the
other built with python27 for example.
PR: 19702
With help of: antoine
Exp-run: portmgr (antoine)