Fail fast when pw(8) fails to create a user or a group. Especially when it is
not the last command in the pre-install script then the exit code will be 0 and
the failure will go unnoticed.
PR: 267384
Approved by: jrm (mentor)
Differential Revision: https://reviews.freebsd.org/D42719
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.
The generated pre-install scripts isn't pkg -r friendly for all
ports that have USERS/GROUPS with an homedir, fix that.
Reviewed by: bapt
Approved by: portmgr (bapt)
Differential Revision: https://reviews.freebsd.org/D24531
Repeat after me: If you change IFS, it will break something unexpected.
The problem is that we use IFS to change read's field separator. This
has the side effect of changing how sh(1) splits all string, including
in command parsing functions.
In this case, unless quoted, the strings are always splitted using IFS.
So changing IFS will change how these strings are splitted, and you end
up having a headache. For example:
$ GID_FILES="foo bar"
$ set -x
$ echo $GID_FILES
+ echo foo bar
foo bar
$ IFS=:
$ GID_FILES="foo bar"
$ set -x
$ echo $GID_FILES
+ echo 'foo bar'
foo bar
In the first case, it runs echo with two arguments, first is foo, second is bar.
In the second case, it runs echo with one argument, 'foo bar'.
To fix this, restrict the time during which IFS changes to only one
command, set, and use positional parameters to extract values.
Reported by: feld
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D11632
This happens when the UID/GID doesn't match the expected number from
UIDs/GIDs.
https://github.com/freebsd/pkg/issues/1485 has more details.
With hat: portmgr
Discussed with: bapt, mat
This adds a few features:
- it checks that the UID line has the right number of fields [1]
- it tells the user that there are groups that he may want to remove [2]
PR: 208800, 173318 [1], 157546 [2]
Submitted by: mat
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D5939