FreeBSD Bugzilla – Attachment 219202 Details for
Bug 250723
Add `set pipefail` to most framework scripts to ensure early failures
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
v1
pipefail-D27007.diff (text/plain), 13.75 KB, created by
Mathieu Arnold
on 2020-10-29 15:05:22 UTC
(
hide
)
Description:
v1
Filename:
MIME Type:
Creator:
Mathieu Arnold
Created:
2020-10-29 15:05:22 UTC
Size:
13.75 KB
patch
obsolete
>base commit: r553439 >diff --git a/Mk/Scripts/check-desktop-entries.sh b/Mk/Scripts/check-desktop-entries.sh >index 30025f985916..d5cfadb26eea 100644 >--- a/Mk/Scripts/check-desktop-entries.sh >+++ b/Mk/Scripts/check-desktop-entries.sh >@@ -1,16 +1,17 @@ > #!/bin/sh > # $FreeBSD$ > # > # MAINTAINER: portmgr@FreeBSD.org > > set -e >+set pipefail > > . "${dp_SCRIPTSDIR}/functions.sh" > > validate_env dp_CURDIR dp_ECHO_CMD dp_ECHO_MSG dp_EXPR dp_GREP dp_PKGNAME \ > dp_SED dp_TR dp_MAKE > > [ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_CHECK_DESKTOP_ENTRIES}" ] && set -x > > set -u > >diff --git a/Mk/Scripts/check-stagedir.sh b/Mk/Scripts/check-stagedir.sh >index 231affabe58a..0de5afe3354c 100644 >--- a/Mk/Scripts/check-stagedir.sh >+++ b/Mk/Scripts/check-stagedir.sh >@@ -5,20 +5,21 @@ > # MAINTAINER: portmgr@FreeBSD.org > # > # This script serves 2 purposes: > # 1. Generate a plist > # 2. Test a plist for issues: > # a. Files in STAGEDIR that are missing from plist > # b. Files in plist missing from STAGEDIR > # c. Files in plist which are owned by dependencies/MTREEs > > set -e >+set pipefail > > . ${SCRIPTSDIR}/functions.sh > > # lists an mtree file's contents, prefixed to dir. > listmtree() { # mtreefile prefix > { > echo '#mtree' > sed 's/nochange$//;' $1 > } | tar -tf- | sed "s,^,$2/,;s,^$2/\.$,$2,;s,^$,/," > } >diff --git a/Mk/Scripts/check-vulnerable.sh b/Mk/Scripts/check-vulnerable.sh >index bb85a118f559..7cbc50664568 100644 >--- a/Mk/Scripts/check-vulnerable.sh >+++ b/Mk/Scripts/check-vulnerable.sh >@@ -1,16 +1,17 @@ > #!/bin/sh > # $FreeBSD$ > # > # MAINTAINER: portmgr@FreeBSD.org > > set -e >+set pipefail > > . "${dp_SCRIPTSDIR}/functions.sh" > > validate_env dp_ECHO_MSG dp_PKG_BIN dp_PORTNAME dp_PKGNAME > > [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_CHECK_VULNERABLE}" ] && set -x > > set -u > > # If the package is pkg, disable these checks, it fails while >diff --git a/Mk/Scripts/check_leftovers.sh b/Mk/Scripts/check_leftovers.sh >index 56203f9a73e9..8e757b63a6e1 100644 >--- a/Mk/Scripts/check_leftovers.sh >+++ b/Mk/Scripts/check_leftovers.sh >@@ -16,20 +16,22 @@ > # + new-file > # M modified-file reason... > # > # stdout: > # same -/+/M format, but with files substituted, without approved > # whitelisted files, and hides any directories already in plist. > # > # The PLIST_SUB feature can be disabled by setting PLIST_SUB_SED= > # in environment. > >+set pipefail >+ > [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_CHECK_LEFTOVERS}" ] && set -x > > origin="$1" > [ $# -eq 1 ] || { echo "Must supply ORIGIN as parameter" >&2; exit 1; } > [ -n "${PORTSDIR}" ] || { echo "PORTSDIR must be set" >&2; exit 1; } > > # May be passed in from environment if using an overlay. > : ${portdir:="${PORTSDIR}/${origin}"} > > # PREFIX/LOCALBASE may be set in env or want default from port. >diff --git a/Mk/Scripts/checksum.sh b/Mk/Scripts/checksum.sh >index cde14a831999..0e649967d7cf 100644 >--- a/Mk/Scripts/checksum.sh >+++ b/Mk/Scripts/checksum.sh >@@ -1,16 +1,17 @@ > #!/bin/sh > # $FreeBSD$ > # > # MAINTAINER: portmgr@FreeBSD.org > > set -e >+set pipefail > > . "${dp_SCRIPTSDIR}/functions.sh" > > validate_env dp_CHECKSUM_ALGORITHMS dp_CURDIR dp_DISTDIR dp_DISTINFO_FILE \ > dp_DIST_SUBDIR dp_ECHO_MSG dp_FETCH_REGET dp_MAKE dp_MAKEFLAGS \ > dp_DISABLE_SIZE dp_NO_CHECKSUM > > [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_CHECKSUM}" ] && set -x > > set -u >diff --git a/Mk/Scripts/create-manifest.sh b/Mk/Scripts/create-manifest.sh >index cb924a03839c..a95def911893 100644 >--- a/Mk/Scripts/create-manifest.sh >+++ b/Mk/Scripts/create-manifest.sh >@@ -1,16 +1,17 @@ > #!/bin/sh > # $FreeBSD$ > # > # MAINTAINER: portmgr@FreeBSD.org > > set -e >+set pipefail > > . "${dp_SCRIPTSDIR}/functions.sh" > > validate_env dp_ACTUAL_PACKAGE_DEPENDS dp_CATEGORIES dp_COMMENT \ > dp_COMPLETE_OPTIONS_LIST dp_DEPRECATED dp_DESCR dp_EXPIRATION_DATE \ > dp_GROUPS dp_LICENSE dp_LICENSE_COMB dp_MAINTAINER dp_METADIR \ > dp_NO_ARCH dp_PKGBASE dp_PKGDEINSTALL dp_PKGINSTALL dp_PKGMESSAGES \ > dp_PKGORIGIN dp_PKGPOSTDEINSTALL dp_PKGPOSTINSTALL dp_PKGPOSTUPGRADE \ > dp_PKGPREDEINSTALL dp_PKGPREINSTALL dp_PKGPREUPGRADE dp_PKGUPGRADE \ > dp_PKGVERSION dp_PKG_BIN dp_PKG_IGNORE_DEPENDS dp_PKG_NOTES \ >diff --git a/Mk/Scripts/depends-list.sh b/Mk/Scripts/depends-list.sh >index 843bedd03958..f930305723e2 100644 >--- a/Mk/Scripts/depends-list.sh >+++ b/Mk/Scripts/depends-list.sh >@@ -1,15 +1,16 @@ > #!/bin/sh > # MAINTAINER: portmgr@FreeBSD.org > # $FreeBSD$ > > set -e >+set pipefail > > . ${dp_SCRIPTSDIR}/functions.sh > > flavors=0 > recursive=0 > missing=0 > requires_wrkdir=0 > while getopts "fmrw" FLAG; do > case "${FLAG}" in > f) >diff --git a/Mk/Scripts/desktop-categories.sh b/Mk/Scripts/desktop-categories.sh >index 14d9b9643ac1..7f6d584f11b6 100644 >--- a/Mk/Scripts/desktop-categories.sh >+++ b/Mk/Scripts/desktop-categories.sh >@@ -1,16 +1,17 @@ > #!/bin/sh > # $FreeBSD$ > # > # MAINTAINER: portmgr@FreeBSD.org > > set -e >+set pipefail > > . "${dp_SCRIPTSDIR}/functions.sh" > > validate_env dp_CATEGORIES dp_SORT dp_TR dp_ECHO_CMD > > [ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_DESKTOP_CATEGORIES}" ] && set -x > > set -u > > categories="" >diff --git a/Mk/Scripts/dialog4ports.sh b/Mk/Scripts/dialog4ports.sh >index 61b855ee44b8..afd332bec27a 100644 >--- a/Mk/Scripts/dialog4ports.sh >+++ b/Mk/Scripts/dialog4ports.sh >@@ -1,14 +1,15 @@ > #! /bin/sh > # $FreeBSD$ > # Maintainer: portmgr@FreeBSD.org > set -e >+set pipefail > > [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_DIALOG4PORTS}" ] && set -x > > if [ -z "${DIALOG4PORTS}" -o -z "${PORTSDIR}" -o -z "${MAKE}" ]; then > echo "DIALOG4PORTS, MAKE and PORTSDIR required in environment." >&2 > exit 1 > fi > > : ${DIALOGPORT:=ports-mgmt/dialog4ports} > : ${DIALOGNAME:=dialog4ports} >diff --git a/Mk/Scripts/do-depends.sh b/Mk/Scripts/do-depends.sh >index 2185faebe6dd..2dbd1b81d4c5 100644 >--- a/Mk/Scripts/do-depends.sh >+++ b/Mk/Scripts/do-depends.sh >@@ -1,16 +1,17 @@ > #!/bin/sh > # $FreeBSD$ > # > # MAINTAINER: portmgr@FreeBSD.org > > set -e >+set pipefail > > . ${dp_SCRIPTSDIR}/functions.sh > > validate_env dp_RAWDEPENDS dp_DEPTYPE dp_DEPENDS_TARGET dp_DEPENDS_PRECLEAN \ > dp_DEPENDS_CLEAN dp_DEPENDS_ARGS dp_USE_PACKAGE_DEPENDS \ > dp_USE_PACKAGE_DEPENDS_ONLY dp_PKG_ADD dp_PKG_INFO dp_WRKDIR \ > dp_PKGNAME dp_STRICT_DEPENDS dp_LOCALBASE dp_LIB_DIRS dp_SH \ > dp_SCRIPTSDIR PORTSDIR dp_MAKE dp_MAKEFLAGS dp_OVERLAYS > > [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_DO_DEPENDS}" ] && set -x >diff --git a/Mk/Scripts/do-fetch.sh b/Mk/Scripts/do-fetch.sh >index 7772f3b382bd..4e1c8f7f229a 100644 >--- a/Mk/Scripts/do-fetch.sh >+++ b/Mk/Scripts/do-fetch.sh >@@ -1,16 +1,17 @@ > #!/bin/sh > # $FreeBSD$ > # > # MAINTAINER: portmgr@FreeBSD.org > > set -e >+set pipefail > > . "${dp_SCRIPTSDIR}/functions.sh" > > validate_env dp_DEVELOPER dp_DISABLE_SIZE dp_DISTDIR dp_DISTINFO_FILE \ > dp_DIST_SUBDIR dp_ECHO_MSG dp_FETCH_AFTER_ARGS dp_FETCH_BEFORE_ARGS \ > dp_FETCH_CMD dp_FETCH_ENV dp_FORCE_FETCH_ALL dp_FORCE_FETCH_LIST \ > dp_MASTER_SITE_BACKUP dp_MASTER_SITE_OVERRIDE dp_MASTER_SORT_AWK \ > dp_NO_CHECKSUM dp_RANDOMIZE_SITES dp_SITE_FLAVOR dp_TARGET > > [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_DO_FETCH}" ] && set -x >diff --git a/Mk/Scripts/do-patch.sh b/Mk/Scripts/do-patch.sh >index f880738ea367..814efc72c326 100644 >--- a/Mk/Scripts/do-patch.sh >+++ b/Mk/Scripts/do-patch.sh >@@ -1,16 +1,17 @@ > #!/bin/sh > # $FreeBSD$ > # > # MAINTAINER: portmgr@FreeBSD.org > > set -e >+set pipefail > > . "${dp_SCRIPTSDIR}/functions.sh" > > validate_env dp_BZCAT dp_CAT dp_DISTDIR dp_ECHO_MSG dp_EXTRA_PATCHES \ > dp_EXTRA_PATCH_TREE dp_GZCAT dp_OPSYS dp_PATCH dp_PATCHDIR \ > dp_PATCHFILES dp_PATCH_ARGS dp_PATCH_DEBUG_TMP dp_PATCH_DIST_ARGS \ > dp_PATCH_SILENT dp_PATCH_WRKSRC dp_PKGNAME dp_PKGORIGIN \ > dp_UNZIP_NATIVE_CMD dp_XZCAT > > [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_DO_PATCH}" ] && set -x >diff --git a/Mk/Scripts/do-users-groups.sh b/Mk/Scripts/do-users-groups.sh >index 95c3d9a4c999..aaa3e37fe9b3 100644 >--- a/Mk/Scripts/do-users-groups.sh >+++ b/Mk/Scripts/do-users-groups.sh >@@ -1,16 +1,17 @@ > #!/bin/sh > # $FreeBSD$ > # > # MAINTAINER: portmgr@FreeBSD.org > > set -e >+set pipefail > > . "${dp_SCRIPTSDIR}/functions.sh" > > validate_env dp_ECHO_MSG dp_GID_FILES dp_GID_OFFSET dp_GROUPS_BLACKLIST \ > dp_INSTALL dp_OPSYS dp_OSVERSION dp_PREFIX dp_PW dp_SCRIPTSDIR \ > dp_UG_DEINSTALL dp_UG_INSTALL dp_UID_FILES dp_UID_OFFSET \ > dp_USERS_BLACKLIST > > [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_DO_USERS_GROUPS}" ] && set -x > >diff --git a/Mk/Scripts/find-lib.sh b/Mk/Scripts/find-lib.sh >index 3e3c523fe042..c7bafcd12d55 100644 >--- a/Mk/Scripts/find-lib.sh >+++ b/Mk/Scripts/find-lib.sh >@@ -1,14 +1,16 @@ > #!/bin/sh > # MAINTAINER: portmgr@FreeBSD.org > # $FreeBSD$ > >+set pipefail >+ > [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_FIND_LIB}" ] && set -x > > if [ -z "${LIB_DIRS}" -o -z "${LOCALBASE}" ]; then > echo "LIB_DIRS, LOCALBASE required in environment." >&2 > exit 1 > fi > > if [ -f /usr/share/misc/magic.mime -o -f /usr/share/misc/magic.mime.mgc ]; then > echo >&2 > echo "Either /usr/share/misc/magic.mime or /usr/share/misc/magic.mime.mgc exist and must be removed." >&2 >diff --git a/Mk/Scripts/generate-symbols.sh b/Mk/Scripts/generate-symbols.sh >index 4ebb8c87de24..7d9f4bed4d91 100644 >--- a/Mk/Scripts/generate-symbols.sh >+++ b/Mk/Scripts/generate-symbols.sh >@@ -2,20 +2,22 @@ > # $FreeBSD$ > # Maintainer: portmgr@FreeBSD.org > # > # This script will find all ELF files in STAGEDIR and then strip and move > # the symbols to LOCALBASE/lib/debug/<original path>. > # For example: > # /var/qmail/bin/qmaild -> /usr/local/lib/debug/var/qmail/bin/qmaild.debug > # /usr/local/bin/ssh -> /usr/local/lib/debug/usr/local/bin/ssh.debug > LIB_DIR_PREFIX="${LOCALBASE}/lib/debug" > >+set pipefail >+ > msg() { > echo "====> $*" > } > > msg "Finding symbols" > > # Find all ELF files > ELF_FILES=$(mktemp -t elf_files) > find ${STAGEDIR} -type f ! -name '*.a' \ > -exec /usr/bin/readelf -S /dev/null {} + 2>/dev/null | awk ' \ >diff --git a/Mk/Scripts/install-desktop-entries.sh b/Mk/Scripts/install-desktop-entries.sh >index 5acb4db84799..d21bfba5d748 100644 >--- a/Mk/Scripts/install-desktop-entries.sh >+++ b/Mk/Scripts/install-desktop-entries.sh >@@ -1,16 +1,17 @@ > #!/bin/sh > # $FreeBSD$ > # > # MAINTAINER: portmgr@FreeBSD.org > > set -e >+set pipefail > > . "${dp_SCRIPTSDIR}/functions.sh" > > validate_env dp_SED dp_ECHO_CMD dp_STAGEDIR dp_DESKTOPDIR > > [ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_INSTALL_DESKTOP_ENTRIES}" ] && set -x > > set -u > > while [ $# -ge 6 ]; do >diff --git a/Mk/Scripts/makesum.sh b/Mk/Scripts/makesum.sh >index a4230905c647..a86d1e7cd9fa 100644 >--- a/Mk/Scripts/makesum.sh >+++ b/Mk/Scripts/makesum.sh >@@ -1,16 +1,17 @@ > #!/bin/sh > # $FreeBSD$ > # > # MAINTAINER: portmgr@FreeBSD.org > > set -e >+set pipefail > > . "${dp_SCRIPTSDIR}/functions.sh" > > validate_env dp_CHECKSUM_ALGORITHMS dp_CKSUMFILES dp_DISTDIR dp_DISTINFO_FILE \ > dp_ECHO_MSG > > [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_MAKESUM}" ] && set -x > > set -u > >diff --git a/Mk/Scripts/plist_sub_sed_sort.sh b/Mk/Scripts/plist_sub_sed_sort.sh >index 3dbab42183ad..234a7fdf29b6 100644 >--- a/Mk/Scripts/plist_sub_sed_sort.sh >+++ b/Mk/Scripts/plist_sub_sed_sort.sh >@@ -1,17 +1,19 @@ > #! /bin/sh > # $FreeBSD$ > # > # MAINTAINER: portmgr@FreeBSD.org > # > # PLIST_SUB_SED helper to sort by longest value first. > >+set pipefail >+ > awk '{ > while (match($0, /s![^!]*![^!]*!g;/)) { > sedp=substr($0, RSTART, RLENGTH) > $0=substr($0, RSTART+RLENGTH) > split(sedp, a, "!") > # Convert \. to . for sorting. > gsub(/\\./, ".", a[2]) > print length(a[2]), sedp > } > }' | sort -rn | awk '{$1=""; print $0}' > $1 >diff --git a/Mk/Scripts/ports_env.sh b/Mk/Scripts/ports_env.sh >index 7d1d861bf28e..6433c6c7dc50 100644 >--- a/Mk/Scripts/ports_env.sh >+++ b/Mk/Scripts/ports_env.sh >@@ -1,13 +1,15 @@ > #! /bin/sh > > # MAINTAINER: portmgr@FreeBSD.org > # $FreeBSD$ > >+set pipefail >+ > if [ -z "${SCRIPTSDIR}" ]; then > echo "Must set SCRIPTSDIR" >&2 > exit 1 > fi > > . ${SCRIPTSDIR}/functions.sh > > export_ports_env >diff --git a/Mk/Scripts/qa.sh b/Mk/Scripts/qa.sh >index 74aa476b0a3c..21e1c3818832 100644 >--- a/Mk/Scripts/qa.sh >+++ b/Mk/Scripts/qa.sh >@@ -1,14 +1,16 @@ > #!/bin/sh > # MAINTAINER: portmgr@FreeBSD.org > # $FreeBSD$ > >+set pipefail >+ > if [ -z "${STAGEDIR}" -o -z "${PREFIX}" -o -z "${LOCALBASE}" ]; then > echo "STAGEDIR, PREFIX, LOCALBASE required in environment." >&2 > exit 1 > fi > > [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_QA}" ] && set -x > > LF=$(printf '\nX') > LF=${LF%X} > >diff --git a/Mk/Scripts/rust-compat11-canary.sh b/Mk/Scripts/rust-compat11-canary.sh >index 90e74bda0cfc..4777b80710ee 100644 >--- a/Mk/Scripts/rust-compat11-canary.sh >+++ b/Mk/Scripts/rust-compat11-canary.sh >@@ -1,14 +1,15 @@ > #!/bin/sh > # MAINTAINER: rust@FreeBSD.org > # $FreeBSD$ > set -eu >+set pipefail > > if [ "${OPSYS}" != FreeBSD ] || [ "${OSVERSION}" -lt 1200000 ]; then > exit 0 > fi > > cat <<EOF | ${CC} -o "${WRKDIR}/compat11_canary" -xc - > #include <sys/syscall.h> > #include <errno.h> > #include <unistd.h> > >diff --git a/Mk/Scripts/smart_makepatch.sh b/Mk/Scripts/smart_makepatch.sh >index 286242ba388e..a804d7ba5f4e 100644 >--- a/Mk/Scripts/smart_makepatch.sh >+++ b/Mk/Scripts/smart_makepatch.sh >@@ -18,20 +18,22 @@ > # will only appear in one of patch file. > # 2) It's possible that trailing garbage at the end of a patch in a > # multipatch file might corrupt the comment (or be interpreted as > # a comment) of the following patch. (garbage in, garbage out) > # > # Reminder > # Don't forget to disable post-patch targets before regenerating patches > # if those targets modify source files (e.g. with sed). You may also > # want to disable EXTRA_PATCHES as well if that is being used. > >+set pipefail >+ > [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_SMART_MAKEPATCH}" ] && set -x > > if [ -z "${PATCHDIR}" -o -z "${PATCH_WRKSRC}" -o -z "${WRKDIR}" ]; then > echo "WRKDIR, PATCHDIR, and PATCH_WRKSRC required in environment." >&2 > exit 1 > fi > > WORKAREA=${WRKDIR}/.makepatch-tmp > PATCHMAP=${WORKAREA}/pregen.map > COMMENTS=${WORKAREA}/comments
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 250723
:
219202
|
219299