Page MenuHomeFreeBSD

D13970.id38394.diff
No OneTemporary

D13970.id38394.diff

Index: Mk/Scripts/actual-package-depends.sh
===================================================================
--- Mk/Scripts/actual-package-depends.sh
+++ Mk/Scripts/actual-package-depends.sh
@@ -2,7 +2,7 @@
# MAINTAINER: portmgr@FeeeBSD.org
# $FreeBSD$
-[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_ACTUAL_PACKAGE_DEPENDS}" ] && set -x
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_ACTUAL_PACKAGE_DEPENDS}" ] && set -x
if [ -z "${PKG_BIN}" ]; then
echo "PKG_BIN required in environment." >&2
@@ -12,21 +12,21 @@
resolv_symlink() {
local file tgt
file=${1}
- if [ ! -L ${file} ] ; then
- echo ${file}
+ if [ ! -L "${file}" ] ; then
+ echo "${file}"
return
fi
- tgt=`readlink ${file}`
+ tgt=$(readlink "${file}")
case $tgt in
/*)
- echo $tgt
+ echo "$tgt"
return
;;
esac
file=${file%/*}/${tgt}
- absolute_path ${file}
+ absolute_path "${file}"
}
absolute_path() {
@@ -35,6 +35,8 @@
myifs=${IFS}
IFS='/'
+ # shellcheck disable=SC2086
+ # we want splitting here.
set -- ${file}
IFS=${myifs}
for el; do
@@ -45,7 +47,7 @@
*) target="${target}/${el}" ;;
esac
done
- echo ${target}
+ echo "${target}"
}
find_dep() {
@@ -60,15 +62,15 @@
searchfile=$pattern
;;
*)
- searchfile=$(/usr/bin/which ${pattern} 2>/dev/null)
+ searchfile=$(/usr/bin/which "${pattern}" 2>/dev/null)
;;
esac
if [ -n "${searchfile}" ]; then
- ${PKG_BIN} which -q ${searchfile} || ${PKG_BIN} which -q "$(resolv_symlink ${searchfile} 2>/dev/null)" ||
+ ${PKG_BIN} which -q "${searchfile}" || ${PKG_BIN} which -q "$(resolv_symlink "${searchfile}" 2>/dev/null)" ||
echo "actual-package-depends: dependency on ${searchfile} not registered (normal if it belongs to base)" >&2
fi
}
for lookup; do
- ${PKG_BIN} query "\"%n\": {origin: \"%o\", version: \"%v\"}" "$(find_dep ${lookup})" || :
+ ${PKG_BIN} query "\"%n\": {origin: \"%o\", version: \"%v\"}" "$(find_dep "${lookup}")" || :
done
Index: Mk/Scripts/check-stagedir.sh
===================================================================
--- Mk/Scripts/check-stagedir.sh
+++ Mk/Scripts/check-stagedir.sh
@@ -13,14 +13,14 @@
set -e
-. ${SCRIPTSDIR}/functions.sh
+. "${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,^$,/,"
+ sed 's/nochange$//;' "$1"
+ } | tar -tf- | sed "s,^,$2/,;s,^$2/\\.$,$2,;s,^$,/,"
}
### PRODUCE MTREE FILE
@@ -33,7 +33,7 @@
# Use MTREE_FILE if specified and it doesn't already
# match LOCALBASE
if [ -n "${MTREE_FILE}" ]; then
- if [ "${PREFIX}" != "${LOCALBASE}" -o "${MTREE_FILE}" \
+ if [ "${PREFIX}" != "${LOCALBASE}" ] || [ "${MTREE_FILE}" \
!= "${PORTSDIR}/Templates/BSD.local.dist" ]; then
listmtree "${MTREE_FILE}" "${PREFIX}"
fi
@@ -45,27 +45,27 @@
# Add LOCALBASE
a=${LOCALBASE}
while :; do
- echo ${a}
+ echo "${a}"
a=${a%/*}
[ -z "${a}" ] && break
done
# Add in PREFIX if this port wants it
- if [ ${NO_PREFIX_RMDIR} -eq 0 ]; then
+ if [ "${NO_PREFIX_RMDIR}" -eq 0 ]; then
a=${PREFIX}
while :; do
- echo ${a}
+ echo "${a}"
a=${a%/*}
[ -z "${a}" ] && break
done
fi
- } >${WRKDIR}/.mtree
+ } >"${WRKDIR}"/.mtree
}
-# Sort a directory list by the order of the dfs-sorted file (from find -ds)
+# Sort a directory list by the order of the dfs-sorted file (from find -d -s)
sort_dfs() {
- while read dir; do
- grep "^[0-9]* ${dir}$" ${WRKDIR}/.staged-dirs-dfs-sorted
+ while read -r dir; do
+ grep "^[0-9]* ${dir}$" "${WRKDIR}"/.staged-dirs-dfs-sorted
done | sort -n | cut -d ' ' -f2-
}
@@ -73,7 +73,7 @@
setup_plist_seds() {
### HANDLE PORTDOCS/PORTEXAMPLES
sed_portdocsexamples="/%%DOCSDIR%%/s!^!%%PORTDOCS%%!g; /%%EXAMPLESDIR%%/s!^!%%PORTEXAMPLES%%!g;"
- if [ ${makeplist} -eq 0 ]; then
+ if [ "${makeplist}" -eq 0 ]; then
# echo "=====> Using OPTIONS: ${PORT_OPTIONS}" | /usr/bin/fmt -w 79 | \
# sed -e '2,$s/^/ /'
# Handle magical PORT* features
@@ -88,51 +88,51 @@
unset PORT_OPTIONS
fi
- sed_plist_sub=$(echo "${PLIST_SUB_SED}" | /bin/sh ${SCRIPTSDIR}/plist_sub_sed_sort.sh)
+ sed_plist_sub=$(echo "${PLIST_SUB_SED}" | /bin/sh "${SCRIPTSDIR}"/plist_sub_sed_sort.sh)
unset PLIST_SUB_SED
# Used for generate_plist
sed_files_gen="s!^${PREFIX}/!!g; ${sed_plist_sub} \
- ${sed_portdocsexamples} /^share\/licenses/d; \
- \#${LOCALBASE}/lib/debug#d;"
+ ${sed_portdocsexamples} /^share\\/licenses/d; \
+ \\#${LOCALBASE}/lib/debug#d;"
sed_dirs_gen="s!^${PREFIX}/!!g; ${sed_plist_sub} s,^,@dir ,; \
${sed_portdocsexamples} \
- /^@dir share\/licenses/d;"
+ /^@dir share\\/licenses/d;"
# These prevent ignoring DOCS/EXAMPLES dirs with sed_portdocsexamples
- sed_files="s!^${PREFIX}/!!g; ${sed_plist_sub} /^share\/licenses/d; \
- \#${LOCALBASE}/lib/debug#d;"
+ sed_files="s!^${PREFIX}/!!g; ${sed_plist_sub} /^share\\/licenses/d; \
+ \\#${LOCALBASE}/lib/debug#d;"
sed_dirs="s!^${PREFIX}/!!g; ${sed_plist_sub} s,^,@dir ,; \
- /^@dir share\/licenses/d;"
+ /^@dir share\\/licenses/d;"
}
# Generate plist from staged files
generate_plist() {
- : >${WRKDIR}/.staged-plist
+ : >"${WRKDIR}"/.staged-plist
### HANDLE FILES
- find ${STAGEDIR} -type f -o -type l | sort | \
- sed -e "s,${STAGEDIR},," >${WRKDIR}/.staged-files
- comm -13 ${WRKDIR}/.plist-files ${WRKDIR}/.staged-files | \
+ find "${STAGEDIR}" -type f -o -type l | sort | \
+ sed -e "s,${STAGEDIR},," >"${WRKDIR}"/.staged-files
+ comm -13 "${WRKDIR}"/.plist-files "${WRKDIR}"/.staged-files | \
sed -e "${sed_files_gen}" \
- >>${WRKDIR}/.staged-plist || :
+ >>"${WRKDIR}"/.staged-plist || :
### HANDLE DIRS
- cat ${WRKDIR}/.plist-dirs-unsorted ${WRKDIR}/.mtree \
- | sort -u >${WRKDIR}/.traced-dirs
- find ${STAGEDIR} -type d | sed -e "s,^${STAGEDIR},,;/^$/d" | sort \
- >${WRKDIR}/.staged-dirrms-sorted
- find -sd ${STAGEDIR}${PREFIX} -type d -empty | sed -e "s,^${STAGEDIR},,;\,^${PREFIX}$,d;/^$/d" \
- >${WRKDIR}/.staged-dirs-dfs
- find -sd ${STAGEDIR} -type d ! -path "${STAGEDIR}${PREFIX}/*" | sed -e "s,^${STAGEDIR},,;\,^${PREFIX}$,d;/^$/d" \
- >>${WRKDIR}/.staged-dirs-dfs
- sort ${WRKDIR}/.staged-dirs-dfs >${WRKDIR}/.staged-dirs-sorted
- awk '{print FNR, $0}' ${WRKDIR}/.staged-dirs-dfs \
- >${WRKDIR}/.staged-dirs-dfs-sorted
- # Find all staged dirs and then sort them by depth-first (find -ds)
- comm -13 ${WRKDIR}/.traced-dirs ${WRKDIR}/.staged-dirs-sorted \
+ cat "${WRKDIR}"/.plist-dirs-unsorted "${WRKDIR}"/.mtree \
+ | sort -u >"${WRKDIR}"/.traced-dirs
+ find "${STAGEDIR}" -type d | sed -e "s,^${STAGEDIR},,;/^$/d" | sort \
+ >"${WRKDIR}"/.staged-dirrms-sorted
+ find -s -d "${STAGEDIR}${PREFIX}" -type d -empty | sed -e "s,^${STAGEDIR},,;\\,^${PREFIX}$,d;/^$/d" \
+ >"${WRKDIR}"/.staged-dirs-dfs
+ find -s -d "${STAGEDIR}" -type d ! -path "${STAGEDIR}${PREFIX}/*" | sed -e "s,^${STAGEDIR},,;\\,^${PREFIX}$,d;/^$/d" \
+ >>"${WRKDIR}"/.staged-dirs-dfs
+ sort "${WRKDIR}"/.staged-dirs-dfs >"${WRKDIR}"/.staged-dirs-sorted
+ awk '{print FNR, $0}' "${WRKDIR}"/.staged-dirs-dfs \
+ >"${WRKDIR}"/.staged-dirs-dfs-sorted
+ # Find all staged dirs and then sort them by depth-first (find -d -s)
+ comm -13 "${WRKDIR}"/.traced-dirs "${WRKDIR}"/.staged-dirs-sorted \
| sort_dfs | sed "${sed_dirs_gen}" \
- >>${WRKDIR}/.staged-plist || :
+ >>"${WRKDIR}"/.staged-plist || :
}
# Check for files in STAGEDIR missing from plist
@@ -141,7 +141,7 @@
echo "===> Checking for items in STAGEDIR missing from pkg-plist"
# Handle whitelisting
- while read path; do
+ while read -r path; do
case "${path}" in
*.bak) ;;
*.orig) ;;
@@ -175,7 +175,7 @@
echo "Error: Orphaned: ${path}" >&2
;;
esac
- done < ${WRKDIR}/.staged-plist
+ done < "${WRKDIR}"/.staged-plist
return ${ret}
}
@@ -183,34 +183,34 @@
check_missing_plist_items() {
local ret=0
echo "===> Checking for items in pkg-plist which are not in STAGEDIR"
- : >${WRKDIR}/.invalid-plist-missing
- comm -23 ${WRKDIR}/.plist-files-no-comments ${WRKDIR}/.staged-files | \
+ : >"${WRKDIR}"/.invalid-plist-missing
+ comm -23 "${WRKDIR}"/.plist-files-no-comments "${WRKDIR}"/.staged-files | \
sed -e "${sed_files}" \
- >>${WRKDIR}/.invalid-plist-missing || :
+ >>"${WRKDIR}"/.invalid-plist-missing || :
# Look for directories, then sort them by DFS. Must create the dirs
# so find -ds can be used to sort them.
- rm -rf ${WRKDIR}/.missing-dirs > /dev/null 2>&1 || :
- mkdir ${WRKDIR}/.missing-dirs
- comm -23 ${WRKDIR}/.plist-dirs-sorted-no-comments \
- ${WRKDIR}/.staged-dirrms-sorted > ${WRKDIR}/.missing-plist-dirs
+ rm -rf "${WRKDIR}"/.missing-dirs > /dev/null 2>&1 || :
+ mkdir "${WRKDIR}"/.missing-dirs
+ comm -23 "${WRKDIR}"/.plist-dirs-sorted-no-comments \
+ "${WRKDIR}"/.staged-dirrms-sorted > "${WRKDIR}"/.missing-plist-dirs
# Creates the dirs in WRKDIR/.missing-dirs and ensure spaces are
# quoted.
sed -e "s,^,${WRKDIR}/.missing-dirs," \
-e 's,^\(.*\)$,"\1",' \
- ${WRKDIR}/.missing-plist-dirs | xargs mkdir -p
- find -ds ${WRKDIR}/.missing-dirs | \
+ "${WRKDIR}"/.missing-plist-dirs | xargs mkdir -p
+ find -d -s "${WRKDIR}"/.missing-dirs | \
sed -e "s,^${WRKDIR}/.missing-dirs,," | \
- while read dir; do \
- grep -x "${dir}" ${WRKDIR}/.missing-plist-dirs || :; done | \
+ while read -r dir; do \
+ grep -x "${dir}" "${WRKDIR}"/.missing-plist-dirs || :; done | \
sed "${sed_dirs}" \
- >>${WRKDIR}/.invalid-plist-missing || :
- rm -rf ${WRKDIR}/.missing-dirs
+ >>"${WRKDIR}"/.invalid-plist-missing || :
+ rm -rf "${WRKDIR}"/.missing-dirs
if [ -s "${WRKDIR}/.invalid-plist-missing" ]; then
ret=1
- while read line; do
+ while read -r line; do
echo "Error: Missing: ${line}" >&2
- done < ${WRKDIR}/.invalid-plist-missing
+ done < "${WRKDIR}"/.invalid-plist-missing
fi
return ${ret}
}
@@ -228,29 +228,29 @@
validate_env STAGEDIR PREFIX LOCALBASE WRKDIR WRKSRC MTREE_FILE \
TMPPLIST PLIST_SUB_SED SCRIPTSDIR PORT_OPTIONS NO_PREFIX_RMDIR
-[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_CHECK_STAGEDIR}" ] && set -x
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_CHECK_STAGEDIR}" ] && set -x
set -u
if [ $makeplist = 0 ] ; then
echo "===> Parsing plist"
- parse_plist "${PREFIX}" 1 < ${TMPPLIST} \
- 3>${WRKDIR}/.plist-dirs-unsorted \
- >${WRKDIR}/.plist-files-unsorted
+ parse_plist "${PREFIX}" 1 < "${TMPPLIST}" \
+ 3>"${WRKDIR}"/.plist-dirs-unsorted \
+ >"${WRKDIR}"/.plist-files-unsorted
unset TMPPLIST
# Create the -no-comments files and trim out @comment from the plists.
# This is used for various tests later.
- sed -e '/^@comment/d' ${WRKDIR}/.plist-dirs-unsorted \
- >${WRKDIR}/.plist-dirs-unsorted-no-comments
- sed -i '' -e 's/^@comment //' ${WRKDIR}/.plist-dirs-unsorted
- sed -e '/^@comment/d' ${WRKDIR}/.plist-files-unsorted | sort \
- >${WRKDIR}/.plist-files-no-comments
- sed -e 's/^@comment //' ${WRKDIR}/.plist-files-unsorted | sort \
- >${WRKDIR}/.plist-files
+ sed -e '/^@comment/d' "${WRKDIR}"/.plist-dirs-unsorted \
+ >"${WRKDIR}"/.plist-dirs-unsorted-no-comments
+ sed -i '' -e 's/^@comment //' "${WRKDIR}"/.plist-dirs-unsorted
+ sed -e '/^@comment/d' "${WRKDIR}"/.plist-files-unsorted | sort \
+ >"${WRKDIR}"/.plist-files-no-comments
+ sed -e 's/^@comment //' "${WRKDIR}"/.plist-files-unsorted | sort \
+ >"${WRKDIR}"/.plist-files
else
# generate plist - pretend the plist had been empty
- : >${WRKDIR}/.plist-dirs-unsorted
- : >${WRKDIR}/.plist-files
+ : >"${WRKDIR}"/.plist-dirs-unsorted
+ : >"${WRKDIR}"/.plist-files
echo '/you/have/to/check/what/makeplist/gives/you'
fi
@@ -261,15 +261,15 @@
# If just making plist, show results and exit successfully.
if [ ${makeplist} -eq 1 ]; then
- cat ${WRKDIR}/.staged-plist
+ cat "${WRKDIR}"/.staged-plist
exit 0
fi
check_orphans_from_plist || ret=1
# Prepare plist-dirs for directory checks
-sort -u ${WRKDIR}/.plist-dirs-unsorted-no-comments \
- >${WRKDIR}/.plist-dirs-sorted-no-comments
+sort -u "${WRKDIR}"/.plist-dirs-unsorted-no-comments \
+ >"${WRKDIR}"/.plist-dirs-sorted-no-comments
check_missing_plist_items || ret=1
Index: Mk/Scripts/check-vulnerable.sh
===================================================================
--- Mk/Scripts/check-vulnerable.sh
+++ Mk/Scripts/check-vulnerable.sh
@@ -9,7 +9,7 @@
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
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_CHECK_VULNERABLE}" ] && set -x
set -u
Index: Mk/Scripts/check_leftovers.sh
===================================================================
--- Mk/Scripts/check_leftovers.sh
+++ Mk/Scripts/check_leftovers.sh
@@ -23,7 +23,7 @@
# The PLIST_SUB feature can be disabled by setting PLIST_SUB_SED=
# in environment.
-[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_CHECK_LEFTOVERS}" ] && set -x
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_CHECK_LEFTOVERS}" ] && set -x
origin="$1"
[ $# -eq 1 ] || { echo "Must supply ORIGIN as parameter" >&2; exit 1; }
@@ -35,21 +35,21 @@
if [ -n "${PREFIX}" ]; then
PORT_FLAGS="${PORT_FLAGS} PREFIX=${PREFIX}"
else
- PREFIX=$(make -C ${portdir} -VPREFIX)
+ PREFIX=$(make -C "${portdir}" -VPREFIX)
fi
if [ -n "${LOCALBASE}" ]; then
PORT_FLAGS="${PORT_FLAGS} LOCALBASE=${LOCALBASE}"
else
- LOCALBASE=$(make -C ${portdir} -VLOCALBASE)
+ LOCALBASE=$(make -C "${portdir}" -VLOCALBASE)
fi
if [ -z "${CCACHE_DIR}" ]; then
- CCACHE_DIR=$(make -C ${portdir} -VCCACHE_DIR)
+ CCACHE_DIR=$(make -C "${portdir}" -VCCACHE_DIR)
fi
-homedirs=$(awk -F: -v users=$(make -C ${portdir} -V USERS|sed -e 's, ,|,g;/^$/d;s,^,^(,;s,$,)$,') 'users && $1 ~ users {print $9}' ${PORTSDIR}/UIDs|sort -u|sed -e "s|/usr/local|${PREFIX}|"|tr "\n" " ")
-plistsub_sed=$(make -C ${portdir} -VPLIST_SUB_SED | /bin/sh ${PORTSDIR}/Mk/Scripts/plist_sub_sed_sort.sh)
-tmpplist=$(make -C ${portdir} -VTMPPLIST)
+homedirs=$(awk -F: -v users="$(make -C "${portdir}" -V USERS|sed -e 's, ,|,g;/^$/d;s,^,^(,;s,$,)$,')" 'users && $1 ~ users {print $9}' "${PORTSDIR}"/UIDs|sort -u|sed -e "s|/usr/local|${PREFIX}|"|tr "\\n" " ")
+plistsub_sed=$(make -C "${portdir}" -VPLIST_SUB_SED | /bin/sh "${PORTSDIR}"/Mk/Scripts/plist_sub_sed_sort.sh)
+tmpplist=$(make -C "${portdir}" -VTMPPLIST)
-while read modtype path extra; do
+while read -r modtype path extra; do
# Ignore everything from these files/directories
case "${path}" in
${CCACHE_DIR}/*|\
@@ -95,7 +95,7 @@
# Don't show dirs already in plist (due to parents)
grep -qE \
"^@(unexec rmdir \"?(%D/|${PREFIX})?${path#${PREFIX}/}[ \"]|dir(rm|rmtry)? ${path#${PREFIX}/}\$)" \
- ${tmpplist} && continue
+ "${tmpplist}" && continue
fi
# Check absolute paths
@@ -117,13 +117,13 @@
# bsd.port.mk for now.
# Skip if it is PREFIX and non-LOCALBASE. See misc/kdehier4
# or mail/qmail for examples
- [ "${path}" = "${PREFIX}" -a "${LOCALBASE}" != "${PREFIX}" ] &&
+ [ "${path}" = "${PREFIX}" ] && [ "${LOCALBASE}" != "${PREFIX}" ] &&
ignore_path=1
# The removal of info may be a bug; it's part of BSD.local.dist.
# See ports/74691
- [ "${sub_path}" = "info" -a "${LOCALBASE}" != "${PREFIX}" ] &&
+ [ "${sub_path}" = "info" ] && [ "${LOCALBASE}" != "${PREFIX}" ] &&
ignore_path=1
[ $ignore_path -eq 0 ] && echo "- ${sub_path}"
@@ -152,10 +152,8 @@
share/xml/catalog.ports) ;;
# Ignore ghc's doc index
share/doc/ghc-%%GHC_VERSION%%/*) ;;
- share/doc/ghc-%%GHC_VERSION%%/html/libraries/%%PORTNAME%%-%%PORTVERSION%%/html) ;;
# Ignore ghc's package conf
lib/ghc-%%GHC_VERSION%%/package.conf.d/*) ;;
- lib/ghc-%%GHC_VERSION%%/package.conf.d/%%PORTNAME%%-%%PORTVERSION%%.conf) ;;
# Ignore common system config files
/etc/group|\
/etc/make.conf|\
Index: Mk/Scripts/checksum.sh
===================================================================
--- Mk/Scripts/checksum.sh
+++ Mk/Scripts/checksum.sh
@@ -11,7 +11,7 @@
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
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_CHECKSUM}" ] && set -x
set -u
@@ -34,7 +34,7 @@
ignore="true"
fi
- if [ $ignore = "false" -a -z "$CKSUM" ]; then
+ if [ $ignore = "false" ] && [ -z "$CKSUM" ]; then
${dp_ECHO_MSG} "=> No $alg checksum recorded for $file."
ignore="true"
fi
@@ -57,7 +57,9 @@
${dp_ECHO_MSG} "=> $alg Checksum mismatch for $file."
refetchlist="$refetchlist $file "
OK="${OK:-retry}"
- [ "${OK}" = "retry" -a "${dp_FETCH_REGET}" -gt 0 ] && rm -f "${file}"
+ if [ "${OK}" = "retry" ] && [ "${dp_FETCH_REGET}" -gt 0 ]; then
+ rm -f "${file}"
+ fi
ignored="false"
fi
done
@@ -70,6 +72,8 @@
if [ "${OK:=true}" = "retry" ] && [ "${dp_FETCH_REGET}" -gt 0 ]; then
${dp_ECHO_MSG} "===> Refetch for ${dp_FETCH_REGET} more times files: $refetchlist"
+ # shellcheck disable=SC2086
+ # dp_MAKEFLAGS contains arguments, needs splitting.
if ${dp_MAKE} -C "${dp_CURDIR}" ${dp_MAKEFLAGS} FORCE_FETCH_LIST="$refetchlist" FETCH_REGET="$((dp_FETCH_REGET - 1))" fetch; then
if ${dp_MAKE} -C "${dp_CURDIR}" ${dp_MAKEFLAGS} FETCH_REGET="$((dp_FETCH_REGET - 1))" checksum ; then
OK="true"
@@ -77,7 +81,7 @@
fi
fi
- if [ "$OK" != "true" -a "${dp_FETCH_REGET}" -eq 0 ]; then
+ if [ "$OK" != "true" ] && [ "${dp_FETCH_REGET}" -eq 0 ]; then
${dp_ECHO_MSG} "===> Giving up on fetching files: $refetchlist"
${dp_ECHO_MSG} "Make sure the Makefile and distinfo file (${dp_DISTINFO_FILE})"
${dp_ECHO_MSG} "are up to date. If you are absolutely sure you want to override this"
@@ -87,7 +91,7 @@
if [ "$OK" != "true" ]; then
exit 1
fi
-elif [ -n "${@}" ]; then
+elif [ -n "${*}" ]; then
${dp_ECHO_MSG} "=> No checksum file (${dp_DISTINFO_FILE})."
exit 1
fi
Index: Mk/Scripts/create-manifest.sh
===================================================================
--- Mk/Scripts/create-manifest.sh
+++ Mk/Scripts/create-manifest.sh
@@ -16,7 +16,7 @@
dp_PKGVERSION dp_PKG_BIN dp_PKG_IGNORE_DEPENDS dp_PKG_NOTES \
dp_PORT_OPTIONS dp_PREFIX dp_USERS dp_WWW
-[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_CREATE_MANIFEST}" ] && set -x
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_CREATE_MANIFEST}" ] && set -x
set -u
@@ -26,17 +26,17 @@
lst=$2
for elt in ${lst} ; do
- if [ ${elt} = ${str} ]; then
+ if [ "${elt}" = "${str}" ]; then
return 0
fi
done
return 1
}
-mkdir -p ${dp_METADIR}
+mkdir -p "${dp_METADIR}"
# Save stdout and redirect it to the manifest file.
-exec 3>&1 >${dp_METADIR}/+MANIFEST
+exec 3>&1 >"${dp_METADIR}"/+MANIFEST
# First, all the required bits
cat <<EOT
@@ -57,17 +57,17 @@
[ -z "${dp_LICENSE}" ] || echo "licenses: [ ${dp_LICENSE} ]"
[ -z "${dp_USERS}" ] || echo "users: [ ${dp_USERS} ]"
[ -z "${dp_GROUPS}" ] || echo "groups: [ ${dp_GROUPS} ]"
-[ -n "${dp_NO_ARCH}" ] && echo "arch : `${dp_PKG_BIN} config abi | tr '[:upper:]' '[:lower:]' | cut -d: -f1,2`:*"
-[ -n "${dp_NO_ARCH}" ] && echo "abi : `${dp_PKG_BIN} config abi | cut -d: -f1,2`:*"
+[ -n "${dp_NO_ARCH}" ] && echo "arch : $(${dp_PKG_BIN} config abi | tr '[:upper:]' '[:lower:]' | cut -d: -f1,2):*"
+[ -n "${dp_NO_ARCH}" ] && echo "abi : $(${dp_PKG_BIN} config abi | cut -d: -f1,2):*"
# Then the key/values sections
echo "deps: { "
-eval ${dp_ACTUAL_PACKAGE_DEPENDS} | grep -v -E ${dp_PKG_IGNORE_DEPENDS} | sort -u
+eval "${dp_ACTUAL_PACKAGE_DEPENDS}" | grep -v -E "${dp_PKG_IGNORE_DEPENDS}" | sort -u
echo "}"
echo "options: {"
for opt in ${dp_COMPLETE_OPTIONS_LIST}; do
- if listcontains ${opt} "${dp_PORT_OPTIONS}"; then
+ if listcontains "${opt}" "${dp_PORT_OPTIONS}"; then
echo " ${opt}: on,"
else
echo " ${opt}: off,"
@@ -86,7 +86,7 @@
fi
# Copy the pkg-descr file
-cp ${dp_DESCR} ${dp_METADIR}/+DESC
+cp "${dp_DESCR}" "${dp_METADIR}/+DESC"
# Concatenate all the scripts
output_files=
@@ -96,28 +96,28 @@
[ -f "${output}" ] && output_files="${output_files:+${output_files} }${output}"
done
done
-[ -n "${output_files}" ] && rm -f ${output_files}
+[ -n "${output_files}" ] && rm -f "${output_files}"
for stage in INSTALL DEINSTALL UPGRADE; do
for prepost in '' PRE POST; do
eval files="\${dp_PKG${prepost}${stage}}"
output=${dp_METADIR}/+${prepost:+${prepost}_}${stage}
for input in ${files}; do
- [ -f "${input}" ] && cat ${input} >> ${output}
+ [ -f "${input}" ] && cat "${input}" >> "${output}"
done
done
done
# *** STARTING NOW, STDOUT is +DISPLAY ***
-exec >${dp_METADIR}/+DISPLAY
+exec >"${dp_METADIR}/+DISPLAY"
for message in ${dp_PKGMESSAGES}; do
[ -f "${message}" ] && cat "${message}"
done
# Try and keep these messages in sync with check-deprecated
-if [ ${dp_MAINTAINER} = "ports@FreeBSD.org" ]; then
+if [ "${dp_MAINTAINER}" = "ports@FreeBSD.org" ]; then
if [ -f "${dp_METADIR}/+DISPLAY" ]; then echo; fi
cat <<-EOT
===> NOTICE:
@@ -153,6 +153,6 @@
fi
fi
-if [ ! -s ${dp_METADIR}/+DISPLAY ]; then
- rm -f ${dp_METADIR}/+DISPLAY
+if [ ! -s "${dp_METADIR}/+DISPLAY" ]; then
+ rm -f "${dp_METADIR}/+DISPLAY"
fi
Index: Mk/Scripts/depends-list.sh
===================================================================
--- Mk/Scripts/depends-list.sh
+++ Mk/Scripts/depends-list.sh
@@ -4,7 +4,7 @@
set -e
-. ${dp_SCRIPTSDIR}/functions.sh
+. "${dp_SCRIPTSDIR}"/functions.sh
recursive=0
missing=0
@@ -34,14 +34,14 @@
shift $((OPTIND-1))
validate_env PORTSDIR dp_PKGNAME
-if [ ${recursive} -eq 1 -o ${requires_wrkdir} -eq 1 ]; then
+if [ ${recursive} -eq 1 ] || [ ${requires_wrkdir} -eq 1 ]; then
validate_env dp_MAKE
# Cache command executions to avoid looking them up again in every
# sub-make.
MAKE="${dp_MAKE}" export_ports_env >/dev/null
fi
-[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_DEPENDS_LIST}" ] && set -x
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_DEPENDS_LIST}" ] && set -x
set -u
@@ -56,6 +56,8 @@
unset FLAVOR
myifs=${IFS}
IFS=:
+ # shellcheck disable=SC2086
+ # we need splitting here.
set -- ${_dep}
IFS=${myifs}
@@ -77,7 +79,7 @@
esac
checked="${checked} ${d}"
# Check if the dependency actually exists or skip otherwise.
- if [ ! -d ${d} ]; then
+ if [ ! -d "${d}" ]; then
echo "${dp_PKGNAME}: \"${d}\" non-existent -- dependency list incomplete" >&2
continue
fi
@@ -92,11 +94,15 @@
# Grab any needed vars from the port.
if [ ${requires_wrkdir} -eq 1 ]; then
- set -- $(${dp_MAKE} -C ${d} -VWRKDIR -V_UNIFIED_DEPENDS)
+ # shellcheck disable=SC2046
+ # We want word splitting here.
+ set -- $(${dp_MAKE} -C "${d}" -VWRKDIR -V_UNIFIED_DEPENDS)
wrkdir="$1"
shift
elif [ ${recursive} -eq 1 ]; then
- set -- $(${dp_MAKE} -C ${d} -V_UNIFIED_DEPENDS)
+ # shellcheck disable=SC2046
+ # We want word splitting here.
+ set -- $(${dp_MAKE} -C "${d}" -V_UNIFIED_DEPENDS)
fi
# If a WRKDIR is required to show the dependency, check for it.
@@ -104,12 +110,16 @@
if [ ${requires_wrkdir} -eq 1 ] && ! [ -d "${wrkdir}" ]; then
show_dep=0
fi
- [ ${show_dep} -eq 1 ] && echo ${d}
- if [ ${recursive} -eq 1 -o ${requires_wrkdir} -eq 1 -a ${show_dep} -eq 1 ]; then
+ [ ${show_dep} -eq 1 ] && echo "${d}"
+ if [ ${recursive} -eq 1 ] || ( [ ${requires_wrkdir} -eq 1 ] && [ ${show_dep} -eq 1 ] ); then
+ # shellcheck disable=SC2068
+ # Do not add quotes, we want to split the string here.
check_dep $@
fi
done
}
checked=
+# shellcheck disable=SC2068
+# Do not add quotes, we want to split the string here.
check_dep $@
Index: Mk/Scripts/dialog4ports.sh
===================================================================
--- Mk/Scripts/dialog4ports.sh
+++ Mk/Scripts/dialog4ports.sh
@@ -3,48 +3,48 @@
# Maintainer: portmgr@FreeBSD.org
set -e
-[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_DIALOG4PORTS}" ] && set -x
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_DIALOG4PORTS}" ] && set -x
-if [ -z "${DIALOG4PORTS}" -o -z "${PORTSDIR}" -o -z "${MAKE}" ]; then
+if [ -z "${DIALOG4PORTS}" ] || [ -z "${PORTSDIR}" ] || [ -z "${MAKE}" ]; then
echo "DIALOG4PORTS, MAKE and PORTSDIR required in environment." >&2
exit 1
fi
-: ${DIALOGPORT:=ports-mgmt/dialog4ports}
-: ${DIALOGNAME:=dialog4ports}
+: "${DIALOGPORT:=ports-mgmt/dialog4ports}"
+: "${DIALOGNAME:=dialog4ports}"
OPTIONSFILE="$1"
-if ! [ -e $DIALOG4PORTS ]; then
+if ! [ -e "$DIALOG4PORTS" ]; then
# If INSTALL_AS_USER is set then just build and use the WRKDIR version
# Also do this if PREFIX!=LOCALBASE to avoid missing file or double
# installs
- if [ -n "${INSTALL_AS_USER}" -o "${PREFIX}" != "${LOCALBASE}" ]; then
+ if [ -n "${INSTALL_AS_USER}" ] || [ "${PREFIX}" != "${LOCALBASE}" ]; then
if ! [ -d "${PORTSDIR}/${DIALOGPORT}" ]; then
echo "===> Skipping 'config' as ${DIALOGPORT} is not checked out" >&2
exit 1
fi
- DIALOG4PORTS=$(${MAKE} -C ${PORTSDIR}/${DIALOGPORT} -V DIALOG4PORTS)
+ DIALOG4PORTS=$(${MAKE} -C "${PORTSDIR}/${DIALOGPORT}" -V DIALOG4PORTS)
if ! [ -e "${DIALOG4PORTS}" ]; then
echo "===> Building ${DIALOGNAME} as it is required for the config dialog"
- ${MAKE} -C ${PORTSDIR}/${DIALOGPORT} -D NO_DIALOG clean build
+ ${MAKE} -C "${PORTSDIR}/${DIALOGPORT}" -D NO_DIALOG clean build
fi
else
# Build+install through su-install as normal
echo "===> Building/installing ${DIALOGNAME} as it is required for the config dialog"
- ${MAKE} -C ${PORTSDIR}/${DIALOGPORT} -D NO_DIALOG clean install
+ ${MAKE} -C "${PORTSDIR}/${DIALOGPORT}" -D NO_DIALOG clean install
# Need to clean again as it can't run twice in 1 call above
- ${MAKE} -C ${PORTSDIR}/${DIALOGPORT} -D NO_DIALOG clean
+ ${MAKE} -C "${PORTSDIR}/${DIALOGPORT}" -D NO_DIALOG clean
fi
fi
# Backwards compat with older version which used stdout [<= 0.1.1] (or stderr [0.1.2]).
# Clear environment of PKGNAME or the dialog will show on older versions
# that do not understand -v.
-if ! env -u PKGNAME ${DIALOG4PORTS} -v > /dev/null 2>&1; then
- exec $DIALOG4PORTS > $OPTIONSFILE 2>&1
+if ! env -u PKGNAME "${DIALOG4PORTS}" -v > /dev/null 2>&1; then
+ exec "$DIALOG4PORTS" > "$OPTIONSFILE" 2>&1
fi
# Newer versions use stderr to work around a jail issue
# http://lists.freebsd.org/pipermail/freebsd-ports/2013-March/082383.html
-exec $DIALOG4PORTS 2> $OPTIONSFILE
+exec "$DIALOG4PORTS" 2> "$OPTIONSFILE"
Index: Mk/Scripts/do-depends.sh
===================================================================
--- Mk/Scripts/do-depends.sh
+++ Mk/Scripts/do-depends.sh
@@ -5,7 +5,7 @@
set -e
-. ${dp_SCRIPTSDIR}/functions.sh
+. "${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 \
@@ -13,7 +13,7 @@
dp_PKGNAME dp_STRICT_DEPENDS dp_LOCALBASE dp_LIB_DIRS dp_SH \
dp_SCRIPTSDIR PORTSDIR dp_MAKE dp_MAKEFLAGS
-[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_DO_DEPENDS}" ] && set -x
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_DO_DEPENDS}" ] && set -x
set -u
@@ -22,8 +22,10 @@
origin=$1
target=$2
depends_args=$3
- if [ -z "${dp_USE_PACKAGE_DEPENDS}" -a -z "${dp_USE_PACKAGE_DEPENDS_ONLY}" ]; then
- MAKEFLAGS="${dp_MAKEFLAGS}" ${dp_MAKE} -C ${origin} -DINSTALLS_DEPENDS ${target} ${depends_args}
+ if [ -z "${dp_USE_PACKAGE_DEPENDS}" ] && [ -z "${dp_USE_PACKAGE_DEPENDS_ONLY}" ]; then
+ # shellcheck disable=SC2086
+ # depends_args contains arguments, needs splitting.
+ MAKEFLAGS="${dp_MAKEFLAGS}" ${dp_MAKE} -C "${origin}" -DINSTALLS_DEPENDS "${target}" ${depends_args}
return 0
fi
@@ -31,22 +33,24 @@
PKGFILE pkgfile \
PKGBASE pkgbase
- if [ -r "${pkgfile}" -a "${target}" = "${dp_DEPENDS_TARGET}" ]; then
+ if [ -r "${pkgfile}" ] && [ "${target}" = "${dp_DEPENDS_TARGET}" ]; then
echo "===> Installing existing package ${pkgfile}"
if [ "${pkgbase}" = "pkg" ]; then
- [ -d ${dp_WRKDIR} ] || mkdir -p ${dp_WRKDIR}
- tar xf ${pkgfile} -C ${dp_WRKDIR} -s ",/.*/,,g" "*/pkg-static"
- ${dp_WRKDIR}/pkg-static add ${pkgfile}
- rm -f ${dp_WRKDIR}/pkg-static
+ [ -d "${dp_WRKDIR}" ] || mkdir -p "${dp_WRKDIR}"
+ tar xf "${pkgfile}" -C "${dp_WRKDIR}" -s ",/.*/,,g" "*/pkg-static"
+ "${dp_WRKDIR}"/pkg-static add "${pkgfile}"
+ rm -f "${dp_WRKDIR}"/pkg-static
else
- ${dp_PKG_ADD} -A ${pkgfile}
+ ${dp_PKG_ADD} -A "${pkgfile}"
fi
- elif [ -n "${dp_USE_PACKAGE_DEPENDS_ONLY}" -a "${target}" = "${dp_DEPENDS_TARGET}" ]; then
+ elif [ -n "${dp_USE_PACKAGE_DEPENDS_ONLY}" ] && [ "${target}" = "${dp_DEPENDS_TARGET}" ]; then
echo "===> ${dp_PKGNAME} depends on package: ${pkgfile} - not found" >&2
echo "===> USE_PACKAGE_DEPENDS_ONLY set - not building missing dependency from source" >&2
exit 1
else
- MAKEFLAGS="${dp_MAKEFLAGS}" ${dp_MAKE} -C ${origin} -DINSTALLS_DEPENDS ${target} ${depends_args}
+ # shellcheck disable=SC2086
+ # depends_args contains arguments, needs splitting.
+ MAKEFLAGS="${dp_MAKEFLAGS}" ${dp_MAKE} -C "${origin}" -DINSTALLS_DEPENDS "${target}" ${depends_args}
fi
}
@@ -72,7 +76,7 @@
find_file_path()
{
- if which -s $1 ; then
+ if which -s "$1" ; then
echo "===> ${dp_PKGNAME} depends on executable: $1 - found"
return 0
fi
@@ -82,8 +86,8 @@
find_lib()
{
- echo -n "===> ${dp_PKGNAME} depends on shared library: $1"
- libfile=$(env -i PATH="${PATH}" LIB_DIRS="${dp_LIB_DIRS}" LOCALBASE="${dp_LOCALBASE}" ${dp_SH} ${dp_SCRIPTSDIR}/find-lib.sh $1)
+ printf "===> %s depends on shared library: %s" "${dp_PKGNAME}" "$1"
+ libfile=$(env -i PATH="${PATH}" LIB_DIRS="${dp_LIB_DIRS}" LOCALBASE="${dp_LOCALBASE}" "${dp_SH}" "${dp_SCRIPTSDIR}"/find-lib.sh "$1")
if [ -z "${libfile}" ]; then
echo " - not found"
return 1
@@ -98,9 +102,11 @@
unset FLAVOR
myifs=${IFS}
IFS=:
+ # shellcheck disable=SC2086
+ # we want splitting here.
set -- ${_line}
IFS=${myifs}
- if [ $# -lt 2 -o $# -gt 3 ]; then
+ if [ $# -lt 2 ] || [ $# -gt 3 ]; then
echo "Error: bad dependency syntax in ${dp_DEPTYPE}" >&2
echo "expecting: pattern:origin[@flavour][:target]" >&2
echo "got: ${_line}" >&2
@@ -170,7 +176,7 @@
if ${fct} "${pattern}" ; then
continue
fi
- [ ${pattern} = "/nonexistent" ] || anynotfound=1
+ [ "${pattern}" = "/nonexistent" ] || anynotfound=1
if [ ! -f "${origin}/Makefile" ]; then
echo "Error a dependency refers to a non existing origin: ${origin} in ${dp_DEPTYPE}" >&2
@@ -190,7 +196,7 @@
exit 1
fi
-if [ -n "${dp_STRICT_DEPENDS}" -a ${anynotfound} -eq 1 ]; then \
+if [ -n "${dp_STRICT_DEPENDS}" ] && [ ${anynotfound} -eq 1 ]; then \
echo "===> dp_STRICT_DEPENDS set - Not installing missing dependencies."
echo " This means a dependency is wrong since it was not satisfied in the ${dp_DEPTYPE} phase."
exit 1
Index: Mk/Scripts/do-fetch.sh
===================================================================
--- Mk/Scripts/do-fetch.sh
+++ Mk/Scripts/do-fetch.sh
@@ -13,7 +13,7 @@
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
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_DO_FETCH}" ] && set -x
set -u
@@ -48,7 +48,7 @@
fi
done
fi
- if [ -f "${file}" -a "$force_fetch" != "true" ]; then
+ if [ -f "${file}" ] && [ "$force_fetch" != "true" ]; then
continue
fi
full_file="${dp_DIST_SUBDIR:+${dp_DIST_SUBDIR}/}${file}"
@@ -58,7 +58,7 @@
${dp_ECHO_MSG} "=> Please correct this problem and try again."
exit 1
fi
- if [ -f "${dp_DISTINFO_FILE}" -a -z "${dp_NO_CHECKSUM}" ]; then
+ if [ -f "${dp_DISTINFO_FILE}" ] && [ -z "${dp_NO_CHECKSUM}" ]; then
_sha256sum=$(distinfo_data SHA256 "${full_file}")
if [ -z "$_sha256sum" ]; then
${dp_ECHO_MSG} "=> ${dp_DIST_SUBDIR:+$dp_DIST_SUBDIR/}$file is not in ${dp_DISTINFO_FILE}."
@@ -104,14 +104,15 @@
fi
done
___MASTER_SITES_TMP=
- SORTED_MASTER_SITES_CMD_TMP="echo ${dp_MASTER_SITE_OVERRIDE} $(echo -n "${__MASTER_SITES_TMP}" | awk "${dp_MASTER_SORT_AWK}") ${dp_MASTER_SITE_BACKUP}"
+ SORTED_MASTER_SITES_CMD_TMP="echo ${dp_MASTER_SITE_OVERRIDE} $(printf "%s" "${__MASTER_SITES_TMP}" | awk "${dp_MASTER_SORT_AWK}") ${dp_MASTER_SITE_BACKUP}"
case ${dp_TARGET} in
fetch-list)
- echo -n "mkdir -p ${dp_DISTDIR} && "
- echo -n "cd ${dp_DISTDIR} && { "
+ printf "mkdir -p %s && cd %s && { " "${dp_DISTDIR}" "${dp_DISTDIR}"
;;
esac
sites_remaining=0
+ # shellcheck disable=SC2086
+ # dp_RANDOMIZE_SITES contains arguments, with spaces, needs to be split.
sites="$(${SORTED_MASTER_SITES_CMD_TMP} ${dp_RANDOMIZE_SITES})"
for site in ${sites}; do
sites_remaining=$((sites_remaining + 1))
@@ -130,13 +131,15 @@
;;
esac
_fetch_cmd="${dp_FETCH_CMD} ${dp_FETCH_BEFORE_ARGS}"
- if [ -z "${dp_DISABLE_SIZE}" -a -n "${CKSIZE}" ]; then
+ if [ -z "${dp_DISABLE_SIZE}" ] && [ -n "${CKSIZE}" ]; then
_fetch_cmd="${_fetch_cmd} -S ${CKSIZE}"
fi
_fetch_cmd="${_fetch_cmd} ${args} ${dp_FETCH_AFTER_ARGS}"
case ${dp_TARGET} in
do-fetch|makesum)
${dp_ECHO_MSG} "=> Attempting to fetch ${site}${file}"
+ # shellcheck disable=SC2086
+ # _fetch_cmd contains arguments, with spaces, needs to be split.
if env -S "${dp_FETCH_ENV}" ${_fetch_cmd}; then
actual_size=$(stat -f %z "${file}")
if [ -n "${dp_DISABLE_SIZE}" ] || [ -z "${CKSIZE}" ] || [ "${actual_size}" -eq "${CKSIZE}" ]; then
@@ -151,10 +154,10 @@
fi
;;
fetch-list)
- echo -n "env $(escape "${_fetch_cmd}") || "
+ printf "env %s || " "$(escape "${_fetch_cmd}")"
;;
fetch-url-list-int)
- echo ${args}
+ echo "${args}"
;;
esac
done
Index: Mk/Scripts/do-patch.sh
===================================================================
--- Mk/Scripts/do-patch.sh
+++ Mk/Scripts/do-patch.sh
@@ -13,7 +13,7 @@
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
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_DO_PATCH}" ] && set -x
set -u
@@ -50,7 +50,7 @@
*)
${dp_CAT} "${file}"
;;
- esac | do_patch "$@" ${patch_strip}
+ esac | do_patch "$@" "${patch_strip}"
}
do_patch() {
@@ -79,11 +79,13 @@
if [ -n "${dp_PATCH_DEBUG_TMP}" ]; then
${dp_ECHO_MSG} "===> Applying ${msg} patch ${i}"
fi
- if do_patch ${dp_PATCH_ARGS} < ${i}; then
+ # shellcheck disable=SC2086
+ # dp_PATCH_ARGS contains arguments, with spaces, needs to be split.
+ if do_patch ${dp_PATCH_ARGS} < "${i}"; then
PATCHES_APPLIED="${PATCHES_APPLIED} ${i}"
else
${dp_ECHO_MSG} "=> ${msg} patch ${i} failed to apply cleanly."
- if [ -n "${PATCHES_APPLIED}" -a "${dp_PATCH_SILENT}" != "yes" ]; then
+ if [ -n "${PATCHES_APPLIED}" ] && [ "${dp_PATCH_SILENT}" != "yes" ]; then
${dp_ECHO_MSG} "=> Patch(es) ${PATCHES_APPLIED} applied cleanly."
fi
false
@@ -99,6 +101,8 @@
${dp_ECHO_MSG} "===> Applying distribution patches for ${dp_PKGNAME}"
cd "${dp_DISTDIR}"
for i in ${dp_PATCHFILES}; do
+ # shellcheck disable=SC2086
+ # dp_PATCH_DIST_ARGS contains arguments, with spaces, needs to be split.
apply_one_patch "${i}" \
"${dp_PATCH_DEBUG_TMP:+ Applying distribution patch}" \
${dp_PATCH_DIST_ARGS}
@@ -107,6 +111,8 @@
if [ -n "${dp_EXTRA_PATCHES}" ]; then
for i in ${dp_EXTRA_PATCHES}; do
+ # shellcheck disable=SC2086
+ # dp_PATCH_ARGS contains arguments, with spaces, needs to be split.
apply_one_patch "${i}" \
"Applying extra patch" \
${dp_PATCH_ARGS}
Index: Mk/Scripts/do-users-groups.sh
===================================================================
--- Mk/Scripts/do-users-groups.sh
+++ Mk/Scripts/do-users-groups.sh
@@ -12,7 +12,7 @@
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
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_DO_USERS_GROUPS}" ] && set -x
set -u
@@ -56,15 +56,21 @@
echo "echo \"===> Creating groups.\"" >> "${dp_UG_INSTALL}"
for group in ${GROUPS}; do
# _bgpd:*:130:
+ # shellcheck disable=SC2086
+ # We need splitting.
if ! grep -q "^${group}:" ${dp_GID_FILES}; then \
error "** Cannot find any information about group \`${group}' in ${dp_GID_FILES}."
fi
+ # shellcheck disable=SC2086
+ # We need splitting in the heredoc.
while read -r line; do
# Do not change IFS for more than one command, if we
# changed IFS around the while read, it would mess up
# the string splitting in the heredoc command.
o_IFS=${IFS}
IFS=":"
+ # shellcheck disable=SC2086
+ # We want splitting.
set -- ${line}
IFS=${o_IFS}
group=$1
@@ -99,15 +105,21 @@
for user in ${USERS}; do
# _bgpd:*:130:130:BGP Daemon:/var/empty:/sbin/nologin
+ # shellcheck disable=SC2086
+ # We need splitting.
if ! grep -q "^${user}:" ${dp_UID_FILES} ; then
error "** Cannot find any information about user \`${user}' in ${dp_UID_FILES}."
fi
+ # shellcheck disable=SC2086
+ # We need splitting in the heredoc.
while read -r line; do
# Do not change IFS for more than one command, if we
# changed IFS around the while read, it would mess up
# the string splitting in the heredoc command.
o_IFS=${IFS}
IFS=":"
+ # shellcheck disable=SC2086
+ # We want splitting.
set -- ${line}
IFS=${o_IFS}
login=$1
@@ -151,6 +163,8 @@
if [ -n "${GROUPS}" ]; then
for group in ${GROUPS}; do
# mail:*:6:postfix,clamav
+ # shellcheck disable=SC2086
+ # We need splitting in the heredoc.
while read -r line; do
# Do not change IFS for more than one command, if we
# changed IFS around the while read, it would mess up
@@ -159,6 +173,8 @@
IFS=":"
# As some lines do not have a fourth argument, provide
# one so $4 always exists.
+ # shellcheck disable=SC2086
+ # We need splitting.
set -- ${line} ""
IFS=${o_IFS}
group=$1
@@ -167,6 +183,8 @@
gid=$((gid+dp_GID_OFFSET))
o_IFS=${IFS}
IFS=","
+ # shellcheck disable=SC2086
+ # We need splitting.
set -- ${members}
IFS=${o_IFS}
for login in "$@"; do
Index: Mk/Scripts/find-lib.sh
===================================================================
--- Mk/Scripts/find-lib.sh
+++ Mk/Scripts/find-lib.sh
@@ -2,14 +2,14 @@
# MAINTAINER: portmgr@FreeBSD.org
# $FreeBSD$
-[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_FIND_LIB}" ] && set -x
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_FIND_LIB}" ] && set -x
-if [ -z "${LIB_DIRS}" -o -z "${LOCALBASE}" ]; then
+if [ -z "${LIB_DIRS}" ] || [ -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
+if [ -f /usr/share/misc/magic.mime ] || [ -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
echo "These are legacy files from an older release and may safely be deleted." >&2
@@ -22,12 +22,12 @@
fi
lib=$1
-dirs="${LIB_DIRS} `cat ${LOCALBASE}/libdata/ldconfig/* 2>/dev/null || :`"
+dirs="${LIB_DIRS} $(cat "${LOCALBASE}"/libdata/ldconfig/* 2>/dev/null || :)"
for libdir in ${dirs} ; do
- test -f ${libdir}/${lib} || continue
+ test -f "${libdir}/${lib}" || continue
libfile=${libdir}/${lib}
- [ `file -b -L --mime-type ${libfile}` = "application/x-sharedlib" ] || continue
- echo $libfile
+ [ "$(file -b -L --mime-type "${libfile}")" = "application/x-sharedlib" ] || continue
+ echo "$libfile"
break
done
Index: Mk/Scripts/functions.sh
===================================================================
--- Mk/Scripts/functions.sh
+++ Mk/Scripts/functions.sh
@@ -30,7 +30,7 @@
# the plist so it does not show up as an orphan. PLIST_SUB uses
# a @comment to deactive files. XXX: It would be better to
# make all ports use @ignore instead of @comment.
- if [ ${parse_comments} -eq 1 -a -z "${line%%@comment *}" ]; then
+ if [ "${parse_comments}" -eq 1 ] && [ -z "${line%%@comment *}" ]; then
line="${line##*@comment }"
# Remove @comment so it can be parsed as a file,
# but later prepend it again to create a list of
@@ -60,7 +60,7 @@
@dir*|'@unexec rmdir'*|'@unexec /bin/rmdir'*)
line="$(printf %s "$line" \
| sed -Ee 's/\|\|.*//;s|[[:space:]]+[0-9]*[[:space:]]*>[&]?[[:space:]]*[^[:space:]]+||g' \
- -e "/^@unexec[[:space:]]+(\/bin\/)?rmdir( -p)?/s|([^%])%D([^%])|\1${cwd}\2|g" \
+ -e "/^@unexec[[:space:]]+(\\/bin\\/)?rmdir( -p)?/s|([^%])%D([^%])|\\1${cwd}\\2|g" \
-e '/^@unexec[[:space:]]+(\/bin\/)?rmdir( -p)?/s|"(.*)"[[:space:]]*|\1|g' \
-e 's/@unexec[[:space:]]+(\/bin\/)?rmdir( -p)?[[:space:]]+//' \
-e 's/@dir(rm|rmtry)?[[:space:]]+//' \
@@ -72,14 +72,18 @@
;;
# Handle [file] Keywords
@info\ *|@shell\ *|@xmlcatmgr\ *)
+ # shellcheck disable=SC2086
+ # We want splitting.
set -- $line
shift
- case "$@" in
- /*) echo "${comment}$@" ;;
- *) echo "${comment}${cwd}/$@" ;;
+ case "$*" in
+ /*) echo "${comment}$*" ;;
+ *) echo "${comment}${cwd}/$*" ;;
esac
;;
@sample\ *)
+ # shellcheck disable=SC2086
+ # We want splitting.
set -- $line
shift
sample_file=$1
@@ -101,14 +105,16 @@
;;
# Handle [dir] Keywords
@fc\ *|@fcfontsdir\ *|@fontsdir\ *)
+ # shellcheck disable=SC2086
+ # We want splitting.
set -- $line
shift
- case "$@" in
+ case "$*" in
/*)
- echo >&3 "${comment}$@"
+ echo >&3 "${comment}$*"
;;
*)
- echo >&3 "${comment}${cwd}/$@"
+ echo >&3 "${comment}${cwd}/$*"
;;
esac
;;
@@ -125,6 +131,8 @@
fi
;;
@cwd*|@cd*)
+ # shellcheck disable=SC2086
+ # We want splitting.
set -- $line
newcwd=$2
# Don't set cwd=/ as it causes // in plist and
@@ -160,7 +168,7 @@
}
export_ports_env() {
- local export_vars make_cmd make_env var results value uses
+ local export_vars make_cmd make_env var value uses
validate_env MAKE PORTSDIR
@@ -201,16 +209,18 @@
done
# Bring in all the vars, but not empty ones.
- eval $(${MAKE} -f ${PORTSDIR}/Mk/bsd.port.mk ${make_cmd} \
- USES="${uses}" | grep -v '=$' | sed -e 's,\\ $,,')
+ eval "$(${MAKE} -f "${PORTSDIR}/Mk/bsd.port.mk" "${make_cmd}" \
+ USES="${uses}" | grep -v '=$' | sed -e 's,\\ $,,')"
for var in ${export_vars}; do
# Export and display non-empty ones. This is not redundant
# with above since we're looping on all vars here; do not
# export a var we didn't eval in.
- value="$(eval echo \$${var})"
+ value="$(eval echo \$"${var}")"
if [ -n "${value}" ]; then
- export ${var}
+ # shellcheck disable=SC2163
+ # We want to export the variable which name is in var.
+ export "${var}"
echo "export ${var}=\"${value}\""
fi
done
@@ -222,7 +232,7 @@
alg=$1
file=$2
- if [ \( -n "${dp_DISABLE_SIZE}" -a -n "${dp_NO_CHECKSUM}" \) -o ! -f "${dp_DISTINFO_FILE}" ]; then
+ if ( [ -n "${dp_DISABLE_SIZE}" ] && [ -n "${dp_NO_CHECKSUM}" ] ) || [ ! -f "${dp_DISTINFO_FILE}" ]; then
exit
fi
awk -v alg="$alg" -v file="${file}" \
@@ -270,7 +280,11 @@
_vars="${_vars}${_vars:+ }${_var}"
shift 2
done
+ # shellcheck disable=SC2086
+ # We want splitting.
set -- ${_vars}
+ # shellcheck disable=SC2086
+ # We want splitting in the heredoc.
while read -r _line; do
setvar "$1" "${_line}"
shift
Index: Mk/Scripts/generate-symbols.sh
===================================================================
--- Mk/Scripts/generate-symbols.sh
+++ Mk/Scripts/generate-symbols.sh
@@ -3,7 +3,7 @@
# Maintainer: portmgr@FreeBSD.org
msg() {
- echo "====> $@"
+ echo "====> $*"
}
msg "Finding symbols"
@@ -12,23 +12,23 @@
ELF_FILES=$(mktemp -t elf_files)
LF=$(printf '\nX')
LF=${LF%X}
-find ${STAGEDIR} -type f \
- -exec /usr/bin/file -nNF "${LF}" {} + | while read f; do
- read output
+find "${STAGEDIR}" -type f \
+ -exec /usr/bin/file -nNF "${LF}" {} + | while read -r f; do
+ read -r output
case "${output}" in
ELF\ *\ executable,\ *FreeBSD*,\ not\ stripped*|\
ELF\ *\ shared\ object,\ *FreeBSD*,\ not\ stripped*)
echo "${f}"
;;
esac
-done > ${ELF_FILES}
+done > "${ELF_FILES}"
# Create all of the /usr/local/lib/* dirs
lib_dir="${STAGEDIR}.debug${PREFIX}/lib/debug"
sed -e "s,^${STAGEDIR}${PREFIX}/,${lib_dir}/," -e 's,/[^/]*$,,' \
- ${ELF_FILES} | sort -u | xargs mkdir -p
+ "${ELF_FILES}" | sort -u | xargs mkdir -p
-while read staged_elf_file; do
+while read -r staged_elf_file; do
elf_file_name="${staged_elf_file##*/}"
lib_dir_dest="${lib_dir}/${staged_elf_file#${STAGEDIR}${PREFIX}/}"
# Strip off filename
@@ -41,6 +41,6 @@
--add-gnu-debuglink="${lib_dir_dest}/${elf_file_name}.debug" \
"${staged_elf_file}"
msg "Saved symbols for ${staged_elf_file}"
-done < ${ELF_FILES}
+done < "${ELF_FILES}"
-rm -f ${ELF_FILES}
+rm -f "${ELF_FILES}"
Index: Mk/Scripts/makesum.sh
===================================================================
--- Mk/Scripts/makesum.sh
+++ Mk/Scripts/makesum.sh
@@ -10,7 +10,7 @@
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
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_MAKESUM}" ] && set -x
set -u
@@ -27,8 +27,8 @@
# the first run.
# So, we extract the content of the distinfo file minus the TIMESTAMP, if it
# contains a TIMESTAMP.
-if [ -f "${dp_DISTINFO_FILE}" ] && grep -q "^TIMESTAMP " ${dp_DISTINFO_FILE}; then
- grep -v "^TIMESTAMP " ${dp_DISTINFO_FILE} > ${DISTINFO_OLD}
+if [ -f "${dp_DISTINFO_FILE}" ] && grep -q "^TIMESTAMP " "${dp_DISTINFO_FILE}"; then
+ grep -v "^TIMESTAMP " "${dp_DISTINFO_FILE}" > "${DISTINFO_OLD}"
fi
for file in ${dp_CKSUMFILES}; do
@@ -47,7 +47,7 @@
# need to add one.
# - If the old and new distinfo content minus the TIMESTAMP differ, it means
# something was updated or changed, it is time to generate a new timestamp.
-if [ ! -s ${DISTINFO_OLD} ] || ! cmp -s ${DISTINFO_OLD} ${DISTINFO_NEW}; then
- echo "TIMESTAMP = $(date '+%s')" > ${dp_DISTINFO_FILE}
- cat ${DISTINFO_NEW} >> ${dp_DISTINFO_FILE}
+if [ ! -s "${DISTINFO_OLD}" ] || ! cmp -s "${DISTINFO_OLD}" "${DISTINFO_NEW}"; then
+ echo "TIMESTAMP = $(date '+%s')" > "${dp_DISTINFO_FILE}"
+ cat "${DISTINFO_NEW}" >> "${dp_DISTINFO_FILE}"
fi
Index: Mk/Scripts/plist_sub_sed_sort.sh
===================================================================
--- Mk/Scripts/plist_sub_sed_sort.sh
+++ Mk/Scripts/plist_sub_sed_sort.sh
@@ -5,7 +5,7 @@
#
# PLIST_SUB_SED helper to sort by longest value first.
-exec awk '{
+awk '{
while (match($0, /s![^!]*![^!]*!g;/)) {
sedp=substr($0, RSTART, RLENGTH)
$0=substr($0, RSTART+RLENGTH)
Index: Mk/Scripts/ports_env.sh
===================================================================
--- Mk/Scripts/ports_env.sh
+++ Mk/Scripts/ports_env.sh
@@ -8,6 +8,6 @@
exit 1
fi
-. ${SCRIPTSDIR}/functions.sh
+. "${SCRIPTSDIR}"/functions.sh
export_ports_env
Index: Mk/Scripts/qa.sh
===================================================================
--- Mk/Scripts/qa.sh
+++ Mk/Scripts/qa.sh
@@ -2,36 +2,37 @@
# MAINTAINER: portmgr@FreeBSD.org
# $FreeBSD$
-if [ -z "${STAGEDIR}" -o -z "${PREFIX}" -o -z "${LOCALBASE}" ]; then
+if [ -z "${STAGEDIR}" ] || [ -z "${PREFIX}" ] || [ -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
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_QA}" ] && set -x
LF=$(printf '\nX')
LF=${LF%X}
+SOH=$(printf '\1')
notice() {
- echo "Notice: $@" >&2
+ echo "Notice: $*" >&2
}
warn() {
- echo "Warning: $@" >&2
+ echo "Warning: $*" >&2
}
err() {
- echo "Error: $@" >&2
+ echo "Error: $*" >&2
}
list_stagedir_elfs() {
- cd ${STAGEDIR} && find -s . -type f \( -perm +111 -o -name '*.so*' \) "$@"
+ cd "${STAGEDIR}" && find -s . -type f \( -perm +111 -o -name '*.so*' \) "$@"
}
shebangonefile() {
local f interp interparg badinterp rc
- f="$@"
+ f="$*"
rc=0
# whitelist some files
@@ -54,7 +55,7 @@
${LINUXBASE}/*) ;;
${LOCALBASE}/bin/perl5.* | ${PREFIX}/bin/perl5.*)
# lang/perl5* are allowed to have these shebangs.
- if ! expr ${PKGORIGIN} : '^lang/perl5.*' > /dev/null; then
+ if ! expr "${PKGORIGIN}" : '^lang/perl5.*' > /dev/null; then
err "'${interp}' is an invalid shebang for '${f#${STAGEDIR}${PREFIX}/}' you must use ${LOCALBASE}/bin/perl."
err "Either pass \${PERL} to the build or use USES=shebangfix"
rc=1
@@ -95,13 +96,13 @@
rc=0
- while read f; do
+ while read -r f; do
# No results presents a blank line from heredoc.
[ -z "${f}" ] && continue
shebangonefile "${f}" || rc=1
# Use heredoc to avoid losing rc from find|while subshell
done <<-EOF
- $(find ${STAGEDIR}${PREFIX} \
+ $(find "${STAGEDIR}${PREFIX}" \
-type f -perm +111 2>/dev/null)
EOF
@@ -112,8 +113,8 @@
local rc
local found_openssl
local file
- [ "${PKGBASE}" = "pkg" -o "${PKGBASE}" = "pkg-devel" ] && return
- while read f; do
+ [ "${PKGBASE}" = "pkg" ] || [ "${PKGBASE}" = "pkg-devel" ] && return
+ while read -r f; do
case ${f} in
File:\ .*)
file=${f#File: .}
@@ -133,9 +134,9 @@
done <<-EOF
$(list_stagedir_elfs -exec readelf -d {} + 2>/dev/null)
EOF
- if [ -z "${USESSSL}" -a -n "${found_openssl}" ]; then
+ if [ -z "${USESSSL}" ] && [ -n "${found_openssl}" ]; then
warn "you need USES=ssl"
- elif [ -n "${USESSSL}" -a -z "${found_openssl}" ]; then
+ elif [ -n "${USESSSL}" ] && [ -z "${found_openssl}" ]; then
warn "you may not need USES=ssl"
fi
return ${rc}
@@ -148,10 +149,10 @@
# Split stat(1) result into 2 lines and read each line separately to
# retain spaces in filenames.
- while read l; do
+ while read -r l; do
# No results presents a blank line from heredoc.
[ -z "${l}" ] && continue
- read link
+ read -r link
case "${link}" in
${STAGEDIR}*)
err "Bad symlink '${l#${STAGEDIR}${PREFIX}/}' pointing inside the stage directory"
@@ -163,14 +164,14 @@
warn "Bad symlink '${l#${STAGEDIR}}' pointing to an absolute pathname '${link}'"
fi
# Also warn if the symlink exists nowhere.
- if [ ! -e "${STAGEDIR}${link}" -a ! -e "${link}" ]; then
+ if [ ! -e "${STAGEDIR}${link}" ] && [ ! -e "${link}" ]; then
warn "Symlink '${l#${STAGEDIR}}' pointing to '${link}' which does not exist in the stage directory or in localbase"
fi
;;
esac
# Use heredoc to avoid losing rc from find|while subshell.
done <<-EOF
- $(find ${STAGEDIR} -type l -exec stat -f "%N${LF}%Y" {} +)
+ $(find "${STAGEDIR}" -type l -exec stat -f "%N${LF}%Y" {} +)
EOF
return ${rc}
@@ -181,7 +182,7 @@
rc=0
- while read f; do
+ while read -r f; do
# No results presents a blank line from heredoc.
[ -z "${f}" ] && continue
# Ignore false-positive/harmless files
@@ -194,7 +195,7 @@
rc=1
# Use heredoc to avoid losing rc from find|while subshell
done <<-EOF
- $(find ${TMPPLIST} ${STAGEDIR} -type f -exec grep -l "${STAGEDIR}" {} +)
+ $(find "${TMPPLIST}" "${STAGEDIR}" -type f -exec grep -l "${STAGEDIR}" {} +)
EOF
return ${rc}
@@ -207,21 +208,21 @@
# Split file and result into 2 lines and read separately to ensure
# files with spaces are kept intact.
# Using readelf -h ... /ELF Header:/ will match on all ELF files.
- find ${STAGEDIR} -type f ! -name '*.a' ! -name '*.o' \
- -exec readelf -S {} + 2>/dev/null | awk '\
- /File:/ {sub(/File: /, "", $0); file=$0} \
+ find "${STAGEDIR}" -type f ! -name '*.a' ! -name '*.o' \
+ -exec readelf -S {} + 2>/dev/null | awk '
+ /File:/ {sub(/File: /, "", $0); file=$0}
/SYMTAB/ {print file}' |
- while read f; do
+ while read -r f; do
warn "'${f#${STAGEDIR}${PREFIX}/}' is not stripped consider trying INSTALL_TARGET=install-strip or using \${STRIP_CMD}"
done
}
desktopfileutils() {
if [ -z "${USESDESKTOPFILEUTILS}" ]; then
- grep -q MimeType= ${STAGEDIR}${PREFIX}/share/applications/*.desktop 2>/dev/null &&
+ grep -q MimeType= "${STAGEDIR}${PREFIX}"/share/applications/*.desktop 2>/dev/null &&
warn "you need USES=desktop-file-utils"
else
- grep -q MimeType= ${STAGEDIR}${PREFIX}/share/applications/*.desktop 2>/dev/null ||
+ grep -q MimeType= "${STAGEDIR}${PREFIX}"/share/applications/*.desktop 2>/dev/null ||
warn "you may not need USES=desktop-file-utils"
fi
return 0
@@ -237,9 +238,9 @@
found=1
break
done
- if [ -z "${USESSHAREDMIMEINFO}" -a ${found} -eq 1 ]; then
+ if [ -z "${USESSHAREDMIMEINFO}" ] && [ ${found} -eq 1 ]; then
warn "you need USES=shared-mime-info"
- elif [ -n "${USESSHAREDMIMEINFO}" -a ${found} -eq 0 ]; then
+ elif [ -n "${USESSHAREDMIMEINFO}" ] && [ ${found} -eq 0 ]; then
warn "you may not need USES=shared-mime-info"
fi
return 0
@@ -248,22 +249,23 @@
suidfiles() {
local filelist
- filelist=`find ${STAGEDIR} -type f \
+ filelist=$(find "${STAGEDIR}" -type f \
\( -perm -u+x -or -perm -g+x -or -perm -o+x \) \
- \( -perm -u+s -or -perm -g+s \)`
+ \( -perm -u+s -or -perm -g+s \))
if [ -n "${filelist}" ]; then
warn "setuid files in the stage directory (are these necessary?):"
- ls -liTd ${filelist}
+ ls -liTd "${filelist}"
fi
return 0
}
libtool() {
if [ -z "${USESLIBTOOL}" ]; then
- find ${STAGEDIR} -name '*.la' | while read f; do
- grep -q 'libtool library' "${f}" &&
- err ".la libraries found, port needs USES=libtool" &&
- return 1 || true
+ find "${STAGEDIR}" -name '*.la' | while read -r f; do
+ if grep -q 'libtool library' "${f}"; then
+ err ".la libraries found, port needs USES=libtool"
+ return 1
+ fi
done
# The return above continues here.
fi
@@ -271,19 +273,19 @@
libperl() {
local has_some_libperl_so files found
- if [ -n "${SITE_ARCH_REL}" -a -d "${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}" ]; then
+ if [ -n "${SITE_ARCH_REL}" ] && [ -d "${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}" ]; then
has_some_libperl_so=0
files=0
- while read f; do
+ while read -r f; do
# No results presents a blank line from heredoc.
[ -z "${f}" ] && continue
files=$((files+1))
- found=`readelf -d ${f} | awk "BEGIN {libperl=1; rpath=10; runpath=100}
+ found=$(readelf -d "${f}" | awk "BEGIN {libperl=1; rpath=10; runpath=100}
/NEEDED.*${LIBPERL}/ { libperl = 0 }
/RPATH.*perl.*CORE/ { rpath = 0 }
/RUNPATH.*perl.*CORE/ { runpath = 0 }
END {print libperl+rpath+runpath}
- "`
+ ")
case "${found}" in
*1)
warn "${f} is not linked with ${LIBPERL}, not respecting lddlflags?"
@@ -291,7 +293,7 @@
*0)
has_some_libperl_so=1
# Older Perl did not USE_LDCONFIG.
- if [ ! -f ${LOCALBASE}/${LDCONFIG_DIR}/perl5 ]; then
+ if [ ! -f "${LOCALBASE}/${LDCONFIG_DIR}/perl5" ]; then
case "${found}" in
*1?)
warn "${f} does not have a rpath to ${LIBPERL}, not respecting lddlflags?"
@@ -307,10 +309,10 @@
esac
# Use heredoc to avoid losing rc from find|while subshell
done <<-EOT
- $(find ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL} -name '*.so')
+ $(find "${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}" -name '*.so')
EOT
- if [ ${files} -gt 0 -a ${has_some_libperl_so} -eq 0 ]; then
+ if [ ${files} -gt 0 ] && [ ${has_some_libperl_so} -eq 0 ]; then
err "None of the .so in ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL} are linked with ${LIBPERL}, see above for the full list."
return 1
else
@@ -320,7 +322,7 @@
}
prefixvar() {
- if [ ${PREFIX} != ${LINUXBASE} -a -d ${STAGEDIR}${PREFIX}/var ]; then
+ if [ "${PREFIX}" != "${LINUXBASE}" ] && [ -d "${STAGEDIR}${PREFIX}/var" ]; then
warn "port uses ${PREFIX}/var instead of /var"
fi
}
@@ -338,9 +340,9 @@
found=1
break
done
- if [ -z "${USESTERMINFO}" -a -n "${found}" ]; then
+ if [ -z "${USESTERMINFO}" ] && [ -n "${found}" ]; then
warn "you need USES=terminfo"
- elif [ -n "${USESTERMINFO}" -a -z "${found}" ]; then
+ elif [ -n "${USESTERMINFO}" ] && [ -z "${found}" ]; then
warn "you may not need USES=terminfo"
fi
return 0
@@ -352,7 +354,7 @@
lst=$2
for elt in ${lst} ; do
- if [ ${elt} = ${str} ]; then
+ if [ "${elt}" = "${str}" ]; then
return 0
fi
done
@@ -364,274 +366,273 @@
local lib_file=$2
# miscellaneous USE clauses
- if [ ${pkg} = 'devel/gettext-runtime' ]; then
+ if [ "${pkg}" = 'devel/gettext-runtime' ]; then
warn "you need USES+=gettext-runtime"
- elif [ ${pkg} = 'databases/sqlite3' ]; then
+ elif [ "${pkg}" = 'databases/sqlite3' ]; then
warn "you need USES+=sqlite"
- elif [ ${pkg} = 'databases/sqlite2' ]; then
+ elif [ "${pkg}" = 'databases/sqlite2' ]; then
warn "you need USES+=sqlite:2"
# Gnome -> same as port
- # grep LIB_DEPENDS= Mk/Uses/gnome.mk |sed -e 's|\(.*\)_LIB_DEPENDS.*:\(.*\)\/\(.*\)|[ "\1" = "\3" ] \&\& echo "\\${pkg} = \\\"\2/\3\\\" -o \\\\"|'|sort|sh
- elif [ ${pkg} = "accessibility/atk" -o \
- ${pkg} = "accessibility/atkmm" -o \
- ${pkg} = "graphics/cairo" -o \
- ${pkg} = "graphics/cairomm" -o \
- ${pkg} = "devel/dconf" -o \
- ${pkg} = "audio/esound" -o \
- ${pkg} = "devel/gconf2" -o \
- ${pkg} = "devel/gconfmm26" -o \
- ${pkg} = "devel/glib12" -o \
- ${pkg} = "devel/glib20" -o \
- ${pkg} = "devel/glibmm" -o \
- ${pkg} = "audio/gsound" -o \
- ${pkg} = "x11-toolkits/gtk12" -o \
- ${pkg} = "x11-toolkits/gtk20" -o \
- ${pkg} = "x11-toolkits/gtk30" -o \
- ${pkg} = "www/gtkhtml3" -o \
- ${pkg} = "www/gtkhtml4" -o \
- ${pkg} = "x11-toolkits/gtkmm20" -o \
- ${pkg} = "x11-toolkits/gtkmm24" -o \
- ${pkg} = "x11-toolkits/gtkmm30" -o \
- ${pkg} = "x11-toolkits/gtksourceview" -o \
- ${pkg} = "x11-toolkits/gtksourceview2" -o \
- ${pkg} = "x11-toolkits/gtksourceview3" -o \
- ${pkg} = "x11-toolkits/gtksourceviewmm3" -o \
- ${pkg} = "devel/libbonobo" -o \
- ${pkg} = "x11-toolkits/libbonoboui" -o \
- ${pkg} = "databases/libgda5" -o \
- ${pkg} = "databases/libgda5-ui" -o \
- ${pkg} = "databases/libgdamm5" -o \
- ${pkg} = "devel/libglade2" -o \
- ${pkg} = "x11/libgnome" -o \
- ${pkg} = "graphics/libgnomecanvas" -o \
- ${pkg} = "x11/libgnomekbd" -o \
- ${pkg} = "print/libgnomeprint" -o \
- ${pkg} = "x11-toolkits/libgnomeprintui" -o \
- ${pkg} = "x11-toolkits/libgnomeui" -o \
- ${pkg} = "devel/libgsf" -o \
- ${pkg} = "www/libgtkhtml" -o \
- ${pkg} = "x11-toolkits/libgtksourceviewmm" -o \
- ${pkg} = "graphics/librsvg2" -o \
- ${pkg} = "devel/libsigc++12" -o \
- ${pkg} = "devel/libsigc++20" -o \
- ${pkg} = "x11-toolkits/libwnck" -o \
- ${pkg} = "x11-toolkits/libwnck3" -o \
- ${pkg} = "textproc/libxml++26" -o \
- ${pkg} = "textproc/libxml2" -o \
- ${pkg} = "textproc/libxslt" -o \
- ${pkg} = "x11-wm/metacity" -o \
- ${pkg} = "x11-toolkits/pango" -o \
- ${pkg} = "x11-toolkits/pangomm" -o \
- ${pkg} = "x11-toolkits/pangox-compat" -o \
- ${pkg} = "x11-toolkits/vte" -o \
- ${pkg} = "x11-toolkits/vte3" ]; then
+ # grep LIB_DEPENDS= Mk/Uses/gnome.mk |sed -e 's|\(.*\)_LIB_DEPENDS.*:\(.*\)\/\([^[:space:]]*\).*|[ "\1" = "\3" ] \&\& echo "[ \\\"\\${pkg}\\\" = \\\"\2/\3\\\" ] \|\| \\\\"|'|env LANG=C sort|sh
+ elif [ "${pkg}" = "accessibility/atk" ] || \
+ [ "${pkg}" = "accessibility/atkmm" ] || \
+ [ "${pkg}" = "graphics/cairo" ] || \
+ [ "${pkg}" = "graphics/cairomm" ] || \
+ [ "${pkg}" = "devel/dconf" ] || \
+ [ "${pkg}" = "audio/esound" ] || \
+ [ "${pkg}" = "devel/gconf2" ] || \
+ [ "${pkg}" = "devel/gconfmm26" ] || \
+ [ "${pkg}" = "devel/glib12" ] || \
+ [ "${pkg}" = "devel/glib20" ] || \
+ [ "${pkg}" = "devel/glibmm" ] || \
+ [ "${pkg}" = "audio/gsound" ] || \
+ [ "${pkg}" = "x11-toolkits/gtk12" ] || \
+ [ "${pkg}" = "x11-toolkits/gtk20" ] || \
+ [ "${pkg}" = "x11-toolkits/gtk30" ] || \
+ [ "${pkg}" = "www/gtkhtml3" ] || \
+ [ "${pkg}" = "www/gtkhtml4" ] || \
+ [ "${pkg}" = "x11-toolkits/gtkmm20" ] || \
+ [ "${pkg}" = "x11-toolkits/gtkmm24" ] || \
+ [ "${pkg}" = "x11-toolkits/gtkmm30" ] || \
+ [ "${pkg}" = "x11-toolkits/gtksourceview" ] || \
+ [ "${pkg}" = "x11-toolkits/gtksourceview2" ] || \
+ [ "${pkg}" = "x11-toolkits/gtksourceview3" ] || \
+ [ "${pkg}" = "x11-toolkits/gtksourceviewmm3" ] || \
+ [ "${pkg}" = "devel/libbonobo" ] || \
+ [ "${pkg}" = "x11-toolkits/libbonoboui" ] || \
+ [ "${pkg}" = "databases/libgda5" ] || \
+ [ "${pkg}" = "databases/libgda5-ui" ] || \
+ [ "${pkg}" = "databases/libgdamm5" ] || \
+ [ "${pkg}" = "devel/libglade2" ] || \
+ [ "${pkg}" = "x11/libgnome" ] || \
+ [ "${pkg}" = "graphics/libgnomecanvas" ] || \
+ [ "${pkg}" = "x11/libgnomekbd" ] || \
+ [ "${pkg}" = "print/libgnomeprint" ] || \
+ [ "${pkg}" = "x11-toolkits/libgnomeprintui" ] || \
+ [ "${pkg}" = "x11-toolkits/libgnomeui" ] || \
+ [ "${pkg}" = "devel/libgsf" ] || \
+ [ "${pkg}" = "www/libgtkhtml" ] || \
+ [ "${pkg}" = "x11-toolkits/libgtksourceviewmm" ] || \
+ [ "${pkg}" = "graphics/librsvg2" ] || \
+ [ "${pkg}" = "devel/libsigc++12" ] || \
+ [ "${pkg}" = "devel/libsigc++20" ] || \
+ [ "${pkg}" = "x11-toolkits/libwnck" ] || \
+ [ "${pkg}" = "x11-toolkits/libwnck3" ] || \
+ [ "${pkg}" = "textproc/libxml++26" ] || \
+ [ "${pkg}" = "textproc/libxml2" ] || \
+ [ "${pkg}" = "textproc/libxslt" ] || \
+ [ "${pkg}" = "x11-wm/metacity" ] || \
+ [ "${pkg}" = "x11-toolkits/pango" ] || \
+ [ "${pkg}" = "x11-toolkits/pangomm" ] || \
+ [ "${pkg}" = "x11-toolkits/pangox-compat" ] || \
+ [ "${pkg}" = "x11-toolkits/vte" ] || \
+ [ "${pkg}" = "x11-toolkits/vte3" ]; then
warn "you need USE_GNOME+=${pkg#*/}"
# Gnome different as port
# grep LIB_DEPENDS= Mk/Uses/gnome.mk |sed -e 's|\(.*\)_LIB_DEPENDS.*:\(.*\)\/\(.*\)|[ "\1" = "\3" ] \|\| echo "elif [ \\${pkg} = \\\"\2/\3\\\" ]; then; warn \\\"you need USE_GNOME+=\1\\\""|'|sort|sh
- elif [ ${pkg} = "databases/evolution-data-server" ]; then warn "you need USE_GNOME+=evolutiondataserver3"
- elif [ ${pkg} = "graphics/gdk-pixbuf" ]; then warn "you need USE_GNOME+=gdkpixbuf"
- elif [ ${pkg} = "graphics/gdk-pixbuf2" ]; then warn "you need USE_GNOME+=gdkpixbuf2"
- elif [ ${pkg} = "x11/gnome-desktop" ]; then warn "you need USE_GNOME+=gnomedesktop3"
- elif [ ${pkg} = "devel/gnome-vfs" ]; then warn "you need USE_GNOME+=gnomevfs2"
- elif [ ${pkg} = "devel/gobject-introspection" ]; then warn "you need USE_GNOME+=introspection"
- elif [ ${pkg} = "graphics/libart_lgpl" ]; then warn "you need USE_GNOME+=libartlgpl2"
- elif [ ${pkg} = "devel/libIDL" ]; then warn "you need USE_GNOME+=libidl"
- elif [ ${pkg} = "x11-fm/nautilus" ]; then warn "you need USE_GNOME+=nautilus3"
- elif [ ${pkg} = "devel/ORBit2" ]; then warn "you need USE_GNOME+=orbit2"
+ elif [ "${pkg}" = "databases/evolution-data-server" ]; then warn "you need USE_GNOME+=evolutiondataserver3"
+ elif [ "${pkg}" = "graphics/gdk-pixbuf" ]; then warn "you need USE_GNOME+=gdkpixbuf"
+ elif [ "${pkg}" = "graphics/gdk-pixbuf2" ]; then warn "you need USE_GNOME+=gdkpixbuf2"
+ elif [ "${pkg}" = "x11/gnome-desktop" ]; then warn "you need USE_GNOME+=gnomedesktop3"
+ elif [ "${pkg}" = "devel/gnome-vfs" ]; then warn "you need USE_GNOME+=gnomevfs2"
+ elif [ "${pkg}" = "devel/gobject-introspection" ]; then warn "you need USE_GNOME+=introspection"
+ elif [ "${pkg}" = "graphics/libart_lgpl" ]; then warn "you need USE_GNOME+=libartlgpl2"
+ elif [ "${pkg}" = "devel/libIDL" ]; then warn "you need USE_GNOME+=libidl"
+ elif [ "${pkg}" = "x11-fm/nautilus" ]; then warn "you need USE_GNOME+=nautilus3"
+ elif [ "${pkg}" = "devel/ORBit2" ]; then warn "you need USE_GNOME+=orbit2"
# mate
- # grep LIB_DEPENDS= Mk/Uses/mate.mk |sed -e 's|\(.*\)_LIB_DEPENDS.*:\(.*\)\/\(.*\)|elif [ ${pkg} = "\2/\3" ]; then warn "you need USE_MATE+=\1"|'
- elif [ ${pkg} = "x11-fm/caja" ]; then warn "you need USE_MATE+=caja"
- elif [ ${pkg} = "sysutils/mate-control-center" ]; then warn "you need USE_MATE+=controlcenter"
- elif [ ${pkg} = "x11/mate-desktop" ]; then warn "you need USE_MATE+=desktop"
- elif [ ${pkg} = "x11/libmatekbd" ]; then warn "you need USE_MATE+=libmatekbd"
- elif [ ${pkg} = "net/libmateweather" ]; then warn "you need USE_MATE+=libmateweather"
- elif [ ${pkg} = "x11-wm/marco" ]; then warn "you need USE_MATE+=marco"
- elif [ ${pkg} = "x11/mate-menus" ]; then warn "you need USE_MATE+=menus"
- elif [ ${pkg} = "x11/mate-panel" ]; then warn "you need USE_MATE+=panel"
- elif [ ${pkg} = "sysutils/mate-polkit" ]; then warn "you need USE_MATE+=polkit"
+ # grep LIB_DEPENDS= Mk/Uses/mate.mk |sed -e 's|\(.*\)_LIB_DEPENDS.*:\(.*\)\/\(.*\)|elif [ "${pkg}" = "\2/\3" ]; then warn "you need USE_MATE+=\1"|'
+ elif [ "${pkg}" = "x11-fm/caja" ]; then warn "you need USE_MATE+=caja"
+ elif [ "${pkg}" = "sysutils/mate-control-center" ]; then warn "you need USE_MATE+=controlcenter"
+ elif [ "${pkg}" = "x11/mate-desktop" ]; then warn "you need USE_MATE+=desktop"
+ elif [ "${pkg}" = "x11/libmatekbd" ]; then warn "you need USE_MATE+=libmatekbd"
+ elif [ "${pkg}" = "net/libmateweather" ]; then warn "you need USE_MATE+=libmateweather"
+ elif [ "${pkg}" = "x11-wm/marco" ]; then warn "you need USE_MATE+=marco"
+ elif [ "${pkg}" = "x11/mate-menus" ]; then warn "you need USE_MATE+=menus"
+ elif [ "${pkg}" = "x11/mate-panel" ]; then warn "you need USE_MATE+=panel"
+ elif [ "${pkg}" = "sysutils/mate-polkit" ]; then warn "you need USE_MATE+=polkit"
# KDE
- # grep -B1 _LIB= Mk/Uses/kde.mk | grep _PORT=|sed -e 's/^\(.*\)_PORT=[[:space:]]*\([^[:space:]]*\).*/elif [ ${pkg} = "\2" ]; then warn "you need to use USE_KDE+=\1"/'
- elif [ ${pkg} = "sysutils/baloo" ]; then warn "you need to use USE_KDE+=baloo"
- elif [ ${pkg} = "sysutils/baloo-widgets" ]; then warn "you need to use USE_KDE+=baloo-widgets"
- elif [ ${pkg} = "x11/kactivities" ]; then warn "you need to use USE_KDE+=kactivities"
- elif [ ${pkg} = "editors/kate" ]; then warn "you need to use USE_KDE+=kate"
- elif [ ${pkg} = "x11/kdelibs4" ]; then warn "you need to use USE_KDE+=kdelibs"
- elif [ ${pkg} = "sysutils/kfilemetadata" ]; then warn "you need to use USE_KDE+=kfilemetadata"
- elif [ ${pkg} = "audio/libkcddb" ]; then warn "you need to use USE_KDE+=libkcddb"
- elif [ ${pkg} = "audio/libkcompactdisc" ]; then warn "you need to use USE_KDE+=libkcompactdisc"
- elif [ ${pkg} = "graphics/libkdcraw-kde4" ]; then warn "you need to use USE_KDE+=libkdcraw"
- elif [ ${pkg} = "misc/libkdeedu" ]; then warn "you need to use USE_KDE+=libkdeedu"
- elif [ ${pkg} = "games/libkdegames" ]; then warn "you need to use USE_KDE+=libkdegames"
- elif [ ${pkg} = "graphics/libkexiv2-kde4" ]; then warn "you need to use USE_KDE+=libkexiv2"
- elif [ ${pkg} = "graphics/libkipi-kde4" ]; then warn "you need to use USE_KDE+=libkipi"
- elif [ ${pkg} = "x11/libkonq" ]; then warn "you need to use USE_KDE+=libkonq"
- elif [ ${pkg} = "graphics/libksane" ]; then warn "you need to use USE_KDE+=libksane"
- elif [ ${pkg} = "astro/marble" ]; then warn "you need to use USE_KDE+=marble"
- elif [ ${pkg} = "sysutils/nepomuk-core" ]; then warn "you need to use USE_KDE+=nepomuk-core"
- elif [ ${pkg} = "sysutils/nepomuk-widgets" ]; then warn "you need to use USE_KDE+=nepomuk-widgets"
- elif [ ${pkg} = "graphics/okular" ]; then warn "you need to use USE_KDE+=okular"
- elif [ ${pkg} = "deskutils/kdepimlibs4" ]; then warn "you need to use USE_KDE+=pimlibs"
- elif [ ${pkg} = "devel/ruby-qtruby" ]; then warn "you need to use USE_KDE+=qtruby"
- elif [ ${pkg} = "devel/smokegen" ]; then warn "you need to use USE_KDE+=smokegen"
- elif [ ${pkg} = "devel/smokekde" ]; then warn "you need to use USE_KDE+=smokekde"
- elif [ ${pkg} = "devel/smokeqt" ]; then warn "you need to use USE_KDE+=smokeqt"
- elif [ ${pkg} = "x11/kde4-workspace" ]; then warn "you need to use USE_KDE+=workspace"
- elif [ ${pkg} = "databases/akonadi" ]; then warn "you need to use USE_KDE+=akonadi"
- elif [ ${pkg} = "x11-toolkits/attica" ]; then warn "you need to use USE_KDE+=attica"
- elif [ ${pkg} = "x11/qimageblitz" ]; then warn "you need to use USE_KDE+=qimageblitz"
- elif [ ${pkg} = "textproc/soprano" ]; then warn "you need to use USE_KDE+=soprano"
- elif [ ${pkg} = "deskutils/libstreamanalyzer" ]; then warn "you need to use USE_KDE+=strigi"
+ # grep -B1 _LIB= Mk/Uses/kde.mk | grep _PORT=|sed -e 's/^\(.*\)_PORT=[[:space:]]*\([^[:space:]]*\).*/elif [ "${pkg}" = "\2" ]; then warn "you need to use USE_KDE+=\1"/'
+ elif [ "${pkg}" = "sysutils/baloo" ]; then warn "you need to use USE_KDE+=baloo"
+ elif [ "${pkg}" = "sysutils/baloo-widgets" ]; then warn "you need to use USE_KDE+=baloo-widgets"
+ elif [ "${pkg}" = "x11/kactivities" ]; then warn "you need to use USE_KDE+=kactivities"
+ elif [ "${pkg}" = "editors/kate" ]; then warn "you need to use USE_KDE+=kate"
+ elif [ "${pkg}" = "x11/kdelibs4" ]; then warn "you need to use USE_KDE+=kdelibs"
+ elif [ "${pkg}" = "sysutils/kfilemetadata" ]; then warn "you need to use USE_KDE+=kfilemetadata"
+ elif [ "${pkg}" = "audio/libkcddb" ]; then warn "you need to use USE_KDE+=libkcddb"
+ elif [ "${pkg}" = "audio/libkcompactdisc" ]; then warn "you need to use USE_KDE+=libkcompactdisc"
+ elif [ "${pkg}" = "graphics/libkdcraw-kde4" ]; then warn "you need to use USE_KDE+=libkdcraw"
+ elif [ "${pkg}" = "misc/libkdeedu" ]; then warn "you need to use USE_KDE+=libkdeedu"
+ elif [ "${pkg}" = "games/libkdegames" ]; then warn "you need to use USE_KDE+=libkdegames"
+ elif [ "${pkg}" = "graphics/libkexiv2-kde4" ]; then warn "you need to use USE_KDE+=libkexiv2"
+ elif [ "${pkg}" = "graphics/libkipi-kde4" ]; then warn "you need to use USE_KDE+=libkipi"
+ elif [ "${pkg}" = "x11/libkonq" ]; then warn "you need to use USE_KDE+=libkonq"
+ elif [ "${pkg}" = "graphics/libksane" ]; then warn "you need to use USE_KDE+=libksane"
+ elif [ "${pkg}" = "astro/marble" ]; then warn "you need to use USE_KDE+=marble"
+ elif [ "${pkg}" = "sysutils/nepomuk-core" ]; then warn "you need to use USE_KDE+=nepomuk-core"
+ elif [ "${pkg}" = "sysutils/nepomuk-widgets" ]; then warn "you need to use USE_KDE+=nepomuk-widgets"
+ elif [ "${pkg}" = "graphics/okular" ]; then warn "you need to use USE_KDE+=okular"
+ elif [ "${pkg}" = "deskutils/kdepimlibs4" ]; then warn "you need to use USE_KDE+=pimlibs"
+ elif [ "${pkg}" = "devel/ruby-qtruby" ]; then warn "you need to use USE_KDE+=qtruby"
+ elif [ "${pkg}" = "devel/smokegen" ]; then warn "you need to use USE_KDE+=smokegen"
+ elif [ "${pkg}" = "devel/smokekde" ]; then warn "you need to use USE_KDE+=smokekde"
+ elif [ "${pkg}" = "devel/smokeqt" ]; then warn "you need to use USE_KDE+=smokeqt"
+ elif [ "${pkg}" = "x11/kde4-workspace" ]; then warn "you need to use USE_KDE+=workspace"
+ elif [ "${pkg}" = "databases/akonadi" ]; then warn "you need to use USE_KDE+=akonadi"
+ elif [ "${pkg}" = "x11-toolkits/attica" ]; then warn "you need to use USE_KDE+=attica"
+ elif [ "${pkg}" = "x11/qimageblitz" ]; then warn "you need to use USE_KDE+=qimageblitz"
+ elif [ "${pkg}" = "textproc/soprano" ]; then warn "you need to use USE_KDE+=soprano"
+ elif [ "${pkg}" = "deskutils/libstreamanalyzer" ]; then warn "you need to use USE_KDE+=strigi"
# KDE Frameworks
- elif [ ${pkg} = "devel/kf5-extra-cmake-modules" ]; then warn "you need to use USE_KDE+=ecm"
- elif [ ${pkg} = "devel/kf5-kcmutils" ]; then warn "you need to use USE_KDE+=kcmutils"
- elif [ ${pkg} = "devel/kf5-kdeclarative" ]; then warn "you need to use USE_KDE+=kdeclarative"
- elif [ ${pkg} = "devel/kf5-kfilemetadata" ]; then warn "you need to use USE_KDE+=filemetadata5"
- elif [ ${pkg} = "devel/kf5-kio" ]; then warn "you need to use USE_KDE+=kio"
- elif [ ${pkg} = "devel/kf5-solid" ]; then warn "you need to use USE_KDE+=solid"
- elif [ ${pkg} = "devel/kf5-threadweaver" ]; then warn "you need to use USE_KDE+=threadweaver"
- elif [ ${pkg} = "devel/kio-extras-kf5" ]; then warn "you need to use USE_KDE+=kio-extras"
- elif [ ${pkg} = "graphics/kf5-kimageformats" ]; then warn "you need to use USE_KDE+=kimageformats"
- elif [ ${pkg} = "lang/kf5-kross" ]; then warn "you need to use USE_KDE+=kross"
- elif [ ${pkg} = "security/kf5-kdesu" ]; then warn "you need to use USE_KDE+=kdesu"
- elif [ ${pkg} = "sysutils/kf5-baloo" ]; then warn "you need to use USE_KDE+=baloo5"
- elif [ ${pkg} = "sysutils/kf5-bluez-qt" ]; then warn "you need to use USE_KDE+=bluez-qt"
- elif [ ${pkg} = "textproc/kf5-sonnet" ]; then warn "you need to use USE_KDE+=sonnet"
- elif [ ${pkg} = "www/kf5-kdewebkit" ]; then warn "you need to use USE_KDE+=kdewebkit"
- elif [ ${pkg} = "www/kf5-khtml" ]; then warn "you need to use USE_KDE+=khtml"
- elif [ ${pkg} = "x11-themes/kf5-breeze-icons" ]; then warn "you need to use USE_KDE+=breeze-icons"
- elif [ ${pkg} = "x11-themes/kf5-oxygen-icons5" ]; then warn "you need to use USE_KDE+=oxygen-icons5"
- elif [ ${pkg} = "x11-toolkits/kf5-attica" ]; then warn "you need to use USE_KDE+=attica5"
- elif [ ${pkg} = "x11/kf5-frameworkintegration" ]; then warn "you need to use USE_KDE+=frameworkintegration"
- elif [ ${pkg} = "x11/kf5-kded" ]; then warn "you need to use USE_KDE+=kded"
- elif [ ${pkg} = "x11/kf5-kdelibs4support" ]; then warn "you need to use USE_KDE+=kdelibs4support"
- elif [ ${pkg} = "x11/kf5-plasma-framework" ]; then warn "you need to use USE_KDE+=plasma-framework"
- elif expr ${pkg} : '.*/kf5-.*' > /dev/null; then
- warn "you need USE_KDE+=$(echo ${pkg} | sed -E 's|.*/kf5-k||')"
+ elif [ "${pkg}" = "devel/kf5-extra-cmake-modules" ]; then warn "you need to use USE_KDE+=ecm"
+ elif [ "${pkg}" = "devel/kf5-kcmutils" ]; then warn "you need to use USE_KDE+=kcmutils"
+ elif [ "${pkg}" = "devel/kf5-kdeclarative" ]; then warn "you need to use USE_KDE+=kdeclarative"
+ elif [ "${pkg}" = "devel/kf5-kfilemetadata" ]; then warn "you need to use USE_KDE+=filemetadata5"
+ elif [ "${pkg}" = "devel/kf5-kio" ]; then warn "you need to use USE_KDE+=kio"
+ elif [ "${pkg}" = "devel/kf5-solid" ]; then warn "you need to use USE_KDE+=solid"
+ elif [ "${pkg}" = "devel/kf5-threadweaver" ]; then warn "you need to use USE_KDE+=threadweaver"
+ elif [ "${pkg}" = "devel/kio-extras-kf5" ]; then warn "you need to use USE_KDE+=kio-extras"
+ elif [ "${pkg}" = "graphics/kf5-kimageformats" ]; then warn "you need to use USE_KDE+=kimageformats"
+ elif [ "${pkg}" = "lang/kf5-kross" ]; then warn "you need to use USE_KDE+=kross"
+ elif [ "${pkg}" = "security/kf5-kdesu" ]; then warn "you need to use USE_KDE+=kdesu"
+ elif [ "${pkg}" = "sysutils/kf5-baloo" ]; then warn "you need to use USE_KDE+=baloo5"
+ elif [ "${pkg}" = "sysutils/kf5-bluez-qt" ]; then warn "you need to use USE_KDE+=bluez-qt"
+ elif [ "${pkg}" = "textproc/kf5-sonnet" ]; then warn "you need to use USE_KDE+=sonnet"
+ elif [ "${pkg}" = "www/kf5-kdewebkit" ]; then warn "you need to use USE_KDE+=kdewebkit"
+ elif [ "${pkg}" = "www/kf5-khtml" ]; then warn "you need to use USE_KDE+=khtml"
+ elif [ "${pkg}" = "x11-themes/kf5-breeze-icons" ]; then warn "you need to use USE_KDE+=breeze-icons"
+ elif [ "${pkg}" = "x11-themes/kf5-oxygen-icons5" ]; then warn "you need to use USE_KDE+=oxygen-icons5"
+ elif [ "${pkg}" = "x11-toolkits/kf5-attica" ]; then warn "you need to use USE_KDE+=attica5"
+ elif [ "${pkg}" = "x11/kf5-frameworkintegration" ]; then warn "you need to use USE_KDE+=frameworkintegration"
+ elif [ "${pkg}" = "x11/kf5-kded" ]; then warn "you need to use USE_KDE+=kded"
+ elif [ "${pkg}" = "x11/kf5-kdelibs4support" ]; then warn "you need to use USE_KDE+=kdelibs4support"
+ elif [ "${pkg}" = "x11/kf5-plasma-framework" ]; then warn "you need to use USE_KDE+=plasma-framework"
+ elif expr "${pkg}" : '.*/kf5-.*' > /dev/null; then
+ warn "you need USE_KDE+=$(echo "${pkg}" | sed -E 's|.*/kf5-k||')"
# GStreamer 0.10
- elif [ ${pkg} = "multimedia/gstreamer" ]; then warn "you need to use USE_GSTREAMER+=yes"
- elif [ ${pkg} = "multimedia/gstreamer-plugins" ]; then warn "you need to use USE_GSTREAMER+=yes"
- elif [ ${pkg} = "multimedia/gstreamer-plugins-bad" ]; then warn "you need to use USE_GSTREAMER+=bad"
+ elif [ "${pkg}" = "multimedia/gstreamer" ]; then warn "you need to use USE_GSTREAMER+=yes"
+ elif [ "${pkg}" = "multimedia/gstreamer-plugins" ]; then warn "you need to use USE_GSTREAMER+=yes"
+ elif [ "${pkg}" = "multimedia/gstreamer-plugins-bad" ]; then warn "you need to use USE_GSTREAMER+=bad"
# GStreamer 1
- elif [ ${pkg} = "multimedia/gstreamer1" ]; then warn "you need to use USE_GSTREAMER1+=yes"
- elif [ ${pkg} = "multimedia/gstreamer1-plugins" ]; then warn "you need to use USE_GSTREAMER1+=yes"
- elif [ ${pkg} = "multimedia/gstreamer1-plugins-bad" ]; then warn "you need to use USE_GSTREAMER1+=bad"
+ elif [ "${pkg}" = "multimedia/gstreamer1" ]; then warn "you need to use USE_GSTREAMER1+=yes"
+ elif [ "${pkg}" = "multimedia/gstreamer1-plugins" ]; then warn "you need to use USE_GSTREAMER1+=yes"
+ elif [ "${pkg}" = "multimedia/gstreamer1-plugins-bad" ]; then warn "you need to use USE_GSTREAMER1+=bad"
# sdl-related
- elif [ ${pkg} = 'devel/sdl12' ]; then
+ elif [ "${pkg}" = 'devel/sdl12' ]; then
warn "you need USE_SDL+=sdl"
- elif echo ${pkg} | grep -E '/sdl_(console|gfx|image|mixer|mm|net|pango|sound|ttf)$' > /dev/null; then
- warn "you need USE_SDL+=$(echo ${pkg} | sed -E 's|.*/sdl_||')"
- elif [ ${pkg} = 'devel/sdl20' ]; then
+ elif echo "${pkg}" | grep -E '/sdl_(console|gfx|image|mixer|mm|net|pango|sound|ttf)$' > /dev/null; then
+ warn "you need USE_SDL+=$(echo "${pkg}" | sed -E 's|.*/sdl_||')"
+ elif [ "${pkg}" = 'devel/sdl20' ]; then
warn "you need USE_SDL+=sdl2"
- elif echo ${pkg} | grep -E '/sdl2_(gfx|image|mixer|net|ttf)$' > /dev/null; then
- warn "you need USE_SDL+=$(echo ${pkg} | sed -E 's|.*/sdl2_||')2"
+ elif echo "${pkg}" | grep -E '/sdl2_(gfx|image|mixer|net|ttf)$' > /dev/null; then
+ warn "you need USE_SDL+=$(echo "${pkg}" | sed -E 's|.*/sdl2_||')2"
# gl-related
- elif expr ${lib_file} : "${LOCALBASE}/lib/libGL.so.*$" > /dev/null; then
+ elif expr "${lib_file}" : "${LOCALBASE}/lib/libGL.so.*$" > /dev/null; then
warn "you need USE_GL+=gl"
- elif expr ${lib_file} : "${LOCALBASE}/lib/libgbm.so.*$" > /dev/null; then
+ elif expr "${lib_file}" : "${LOCALBASE}/lib/libgbm.so.*$" > /dev/null; then
warn "you need USE_GL+=gbm"
- elif expr ${lib_file} : "${LOCALBASE}/lib/libGLESv2.so.*$" > /dev/null; then
+ elif expr "${lib_file}" : "${LOCALBASE}/lib/libGLESv2.so.*$" > /dev/null; then
warn "you need USE_GL+=glesv2"
- elif expr ${lib_file} : "${LOCALBASE}/lib/libEGL.so.*$" > /dev/null; then
+ elif expr "${lib_file}" : "${LOCALBASE}/lib/libEGL.so.*$" > /dev/null; then
warn "you need USE_GL+=egl"
- elif [ ${pkg} = 'graphics/glew' ]; then
+ elif [ "${pkg}" = 'graphics/glew' ]; then
warn "you need USE_GL+=glew"
- elif [ ${pkg} = 'graphics/libGLU' ]; then
+ elif [ "${pkg}" = 'graphics/libGLU' ]; then
warn "you need USE_GL+=glu"
- elif [ ${pkg} = 'graphics/libGLw' ]; then
+ elif [ "${pkg}" = 'graphics/libGLw' ]; then
warn "you need USE_GL+=glw"
- elif [ ${pkg} = 'graphics/freeglut' ]; then
+ elif [ "${pkg}" = 'graphics/freeglut' ]; then
warn "you need USE_GL+=glut"
# Xorg-libraries: this should be by XORG_MODULES @ bsd.xorg.mk
- elif echo ${pkg} | grep -E '/lib(X11|Xau|Xdmcp|Xext|SM|ICE|Xfixes|Xft|Xdamage|Xcomposite|Xcursor|Xinerama|Xmu|Xmuu|Xpm|Xt|Xtst|Xi|Xrandr|Xrender|Xres|XScrnSaver|Xv|Xxf86vm|Xxf86dga|Xxf86misc|xcb)$' > /dev/null; then
- warn "you need USE_XORG+=$(echo ${pkg} | sed -E 's|.*/lib||' | tr '[:upper:]' '[:lower:]')"
- elif [ ${pkg} = 'x11/pixman' ]; then
+ elif echo "${pkg}" | grep -E '/lib(X11|Xau|Xdmcp|Xext|SM|ICE|Xfixes|Xft|Xdamage|Xcomposite|Xcursor|Xinerama|Xmu|Xmuu|Xpm|Xt|Xtst|Xi|Xrandr|Xrender|Xres|XScrnSaver|Xv|Xxf86vm|Xxf86dga|Xxf86misc|xcb)$' > /dev/null; then
+ warn "you need USE_XORG+=$(echo "${pkg}" | sed -E 's|.*/lib||' | tr '[:upper:]' '[:lower:]')"
+ elif [ "${pkg}" = 'x11/pixman' ]; then
warn "you need USE_XORG+=pixman"
# Qt4
- elif expr ${pkg} : '.*/qt4-.*' > /dev/null; then
- warn "you need USE_QT4+=$(echo ${pkg} | sed -E 's|.*/qt4-||')"
- elif expr ${pkg} : '.*/.*-qt4' > /dev/null; then
- warn "you need USE_QT4+=$(echo ${pkg} | sed -E 's|.*/(.*)-qt4|\1|')"
+ elif expr "${pkg}" : '.*/qt4-.*' > /dev/null; then
+ warn "you need USE_QT4+=$(echo "${pkg}" | sed -E 's|.*/qt4-||')"
+ elif expr "${pkg}" : '.*/.*-qt4' > /dev/null; then
+ warn "you need USE_QT4+=$(echo "${pkg}" | sed -E 's|.*/(.*)-qt4|\1|')"
# Qt5
- elif expr ${pkg} : '.*/qt5-.*' > /dev/null; then
- warn "you need USE_QT5+=$(echo ${pkg} | sed -E 's|.*/qt5-||')"
+ elif expr "${pkg}" : '.*/qt5-.*' > /dev/null; then
+ warn "you need USE_QT5+=$(echo "${pkg}" | sed -E 's|.*/qt5-||')"
# MySQL
- elif expr ${lib_file} : "${LOCALBASE}/lib/mysql/[^/]*$" > /dev/null; then
+ elif expr "${lib_file}" : "${LOCALBASE}/lib/mysql/[^/]*$" > /dev/null; then
warn "you need USES+=mysql"
# postgresql
- elif expr ${pkg} : "^databases/postgresql.*-client" > /dev/null; then
+ elif expr "${pkg}" : "^databases/postgresql.*-client" > /dev/null; then
warn "you need USES+=pgsql"
# bdb
- elif expr ${pkg} : "^databases/db[456]" > /dev/null; then
+ elif expr "${pkg}" : "^databases/db[456]" > /dev/null; then
warn "you need USES+=bdb"
# fam/gamin
- elif [ ${pkg} = "devel/fam" -o ${pkg} = "devel/gamin" ]; then
+ elif [ "${pkg}" = "devel/fam" ] || [ "${pkg}" = "devel/gamin" ]; then
warn "you need USES+=fam"
# firebird
- elif [ ${pkg} = "databases/firebird25-client" ]; then
+ elif [ "${pkg}" = "databases/firebird25-client" ]; then
warn "you need USES+=firebird"
# fuse
- elif [ ${pkg} = "sysutils/fusefs-libs" ]; then
+ elif [ "${pkg}" = "sysutils/fusefs-libs" ]; then
warn "you need USES+=fuse"
# gnustep
- elif [ ${pkg} = "lang/gnustep-base" ]; then
+ elif [ "${pkg}" = "lang/gnustep-base" ]; then
warn "you need USES+=gnustep and USE_GNUSTEP+=base"
- elif [ ${pkg} = "x11-toolkits/gnustep-gui" ]; then
+ elif [ "${pkg}" = "x11-toolkits/gnustep-gui" ]; then
warn "you need USES+=gnustep and USE_GNUSTEP+=gui"
# iconv
- elif [ ${pkg} = "converters/libiconv" ]; then
+ elif [ "${pkg}" = "converters/libiconv" ]; then
warn "you need USES+=iconv, USES+=iconv:wchar_t, or USES+=iconv:translit depending on needs"
# jpeg
- elif [ ${pkg} = "graphics/jpeg" -o ${pkg} = "graphics/jpeg-turbo" ]; then
+ elif [ "${pkg}" = "graphics/jpeg" ] || [ "${pkg}" = "graphics/jpeg-turbo" ]; then
warn "you need USES+=jpeg"
# libarchive
- elif [ ${pkg} = "archivers/libarchive" ]; then
+ elif [ "${pkg}" = "archivers/libarchive" ]; then
warn "you need USES+=libarchive"
- elif [ ${pkg} = "devel/libedit" ]; then
+ elif [ "${pkg}" = "devel/libedit" ]; then
warn "you need USES+=libedit"
# lua
- elif expr ${pkg} : "^lang/lua" > /dev/null; then
+ elif expr "${pkg}" : "^lang/lua" > /dev/null; then
warn "you need USES+=lua"
# motif
- elif [ ${pkg} = "x11-toolkits/lesstif" -o ${pkg} = "x11-toolkits/open-motif" ]; then
+ elif [ "${pkg}" = "x11-toolkits/lesstif" ] || [ "${pkg}" = "x11-toolkits/open-motif" ]; then
warn "you need USES+=motif"
# ncurses
- elif [ ${pkg} = "devel/ncurses" ]; then
+ elif [ "${pkg}" = "devel/ncurses" ]; then
warn "you need USES+=ncurses"
# objc
- elif [ ${pkg} = "lang/libobjc2" ]; then
+ elif [ "${pkg}" = "lang/libobjc2" ]; then
warn "you need USES+=objc"
# openal
- elif [ ${pkg} = "audio/openal" -o ${pkg} = "audio/openal-soft" -o ${pkg} = "audio/freealut" ]; then
+ elif [ "${pkg}" = "audio/openal" ] || [ "${pkg}" = "audio/openal-soft" ] || [ "${pkg}" = "audio/freealut" ]; then
warn "you need USES+=openal"
# pure
- elif [ ${pkg} = "lang/pure" ]; then
+ elif [ "${pkg}" = "lang/pure" ]; then
warn "you need USES+=pure"
# readline
- elif [ ${pkg} = "devel/readline" ]; then
+ elif [ "${pkg}" = "devel/readline" ]; then
warn "you need USES+=readline"
# ssl
- elif [ ${pkg} = "security/openssl" -o ${pkg} = "security/openssl-devel" \
- -o ${pkg} = "security/libressl" -o ${pkg} = "security/libressl-devel" \
- ]; then
+ elif [ "${pkg}" = "security/openssl" ] || [ "${pkg}" = "security/openssl-devel" ] || \
+ [ "${pkg}" = "security/libressl" ] || [ "${pkg}" = "security/libressl-devel" ]; then
warn "you need USES=ssl"
# Tcl
- elif expr ${pkg} : "^lang/tcl" > /dev/null; then
+ elif expr "${pkg}" : "^lang/tcl" > /dev/null; then
warn "you need USES+=tcl"
# Tk
- elif expr ${pkg} : "^x11-toolkits/tk" > /dev/null; then
+ elif expr "${pkg}" : "^x11-toolkits/tk" > /dev/null; then
warn "you need USES+=tk"
# Xfce
- # grep LIB_DEPENDS= Mk/Uses/xfce.mk |sed -e 's|\(.*\)_LIB_DEPENDS.*:\(.*\)\/\(.*\)|elif [ ${pkg} = "\2/\3" ]; then warn "you need USE_XFCE+=\1"|'
- elif [ ${pkg} = "sysutils/garcon" ]; then warn "you need USE_XFCE+=garcon"
- elif [ ${pkg} = "x11/libexo" ]; then warn "you need USE_XFCE+=libexo"
- elif [ ${pkg} = "x11-toolkits/libxfce4gui" ]; then warn "you need USE_XFCE+=libgui"
- elif [ ${pkg} = "x11/libxfce4menu" ]; then warn "you need USE_XFCE+=libmenu"
- elif [ ${pkg} = "x11/libxfce4util" ]; then warn "you need USE_XFCE+=libutil"
- elif [ ${pkg} = "x11-wm/xfce4-panel" ]; then warn "you need USE_XFCE+=panel"
- elif [ ${pkg} = "x11-fm/thunar" ]; then warn "you need USE_XFCE+=thunar"
- elif [ ${pkg} = "x11/xfce4-conf" ]; then warn "you need USE_XFCE+=xfconf"
+ # grep LIB_DEPENDS= Mk/Uses/xfce.mk |sed -e 's|\(.*\)_LIB_DEPENDS.*:\(.*\)\/\(.*\)|elif [ "${pkg}" = "\2/\3" ]; then warn "you need USE_XFCE+=\1"|'
+ elif [ "${pkg}" = "sysutils/garcon" ]; then warn "you need USE_XFCE+=garcon"
+ elif [ "${pkg}" = "x11/libexo" ]; then warn "you need USE_XFCE+=libexo"
+ elif [ "${pkg}" = "x11-toolkits/libxfce4gui" ]; then warn "you need USE_XFCE+=libgui"
+ elif [ "${pkg}" = "x11/libxfce4menu" ]; then warn "you need USE_XFCE+=libmenu"
+ elif [ "${pkg}" = "x11/libxfce4util" ]; then warn "you need USE_XFCE+=libutil"
+ elif [ "${pkg}" = "x11-wm/xfce4-panel" ]; then warn "you need USE_XFCE+=panel"
+ elif [ "${pkg}" = "x11-fm/thunar" ]; then warn "you need USE_XFCE+=thunar"
+ elif [ "${pkg}" = "x11/xfce4-conf" ]; then warn "you need USE_XFCE+=xfconf"
# default
- elif expr ${lib_file} : "${LOCALBASE}/lib/[^/]*$" > /dev/null; then
+ elif expr "${lib_file}" : "${LOCALBASE}/lib/[^/]*$" > /dev/null; then
lib_file=${lib_file#${LOCALBASE}/lib/}
lib_file=${lib_file%.so*}.so
warn "you need LIB_DEPENDS+=${lib_file}:${pkg}"
@@ -645,18 +646,18 @@
# Check all dynamicaly linked ELF files
# Some .so are not executable, but we want to check them too.
- while read file; do
+ while read -r file; do
# No results presents a blank line from heredoc.
[ -z "${file}" ] && continue
- while read dep_file; do
+ while read -r dep_file; do
# No results presents a blank line from heredoc.
[ -z "${dep_file}" ] && continue
# Skip files we already checked.
- if listcontains ${dep_file} "${already}"; then
+ if listcontains "${dep_file}" "${already}"; then
continue
fi
- if $(pkg which -q ${dep_file} > /dev/null 2>&1); then
- dep_file_pkg=$(pkg which -qo ${dep_file})
+ if pkg which -q "${dep_file}" > /dev/null 2>&1; then
+ dep_file_pkg=$(pkg which -qo "${dep_file}")
# Check that the .so we need has a SONAME
if [ "${dep_file_pkg}" != "${PKGORIGIN}" ]; then
@@ -666,9 +667,9 @@
fi
# If we don't already depend on it, and we don't provide it
- if ! listcontains ${dep_file_pkg} "${LIB_RUN_DEPENDS} ${PKGORIGIN}"; then
+ if ! listcontains "${dep_file_pkg}" "${LIB_RUN_DEPENDS} ${PKGORIGIN}"; then
err "${file} is linked to ${dep_file} from ${dep_file_pkg} but it is not declared as a dependency"
- proxydeps_suggest_uses ${dep_file_pkg} ${dep_file}
+ proxydeps_suggest_uses "${dep_file_pkg}" "${dep_file}"
rc=1
fi
else
@@ -678,16 +679,16 @@
already="${already} ${dep_file}"
done <<-EOT
$(env LD_LIBMAP_DISABLE=1 ldd -a "${STAGEDIR}${file}" | \
- awk '\
- BEGIN {section=0}\
- /^\// {section++}\
- !/^\// && section<=1 && ($3 ~ "^'${PREFIX}'" || $3 ~ "^'${LOCALBASE}'") {print $3}')
+ awk '
+ BEGIN {section=0}
+ /^\// {section++}
+ !/^\// && section<=1 && ($3 ~ "^'"${PREFIX}"'" || $3 ~ "^'"${LOCALBASE}"'") {print $3}')
EOT
done <<-EOT
$(list_stagedir_elfs | \
- file -F $'\1' -f - | \
+ file -F "${SOH}" -f - | \
grep -a 'ELF.*FreeBSD.*dynamically linked' | \
- cut -f 1 -d $'\1'| \
+ cut -f 1 -d "${SOH}"| \
sed -e 's/^\.//')
EOT
@@ -697,13 +698,15 @@
}
sonames() {
- [ ! -d ${STAGEDIR}${PREFIX}/lib -o -n "${BUNDLE_LIBS}" ] && return 0
- while read f; do
+ [ ! -d "${STAGEDIR}${PREFIX}/lib" ] || [ -n "${BUNDLE_LIBS}" ] && return 0
+ while read -r f; do
# No results presents a blank line from heredoc.
[ -z "${f}" ] && continue
# Ignore symlinks
- [ -f "${f}" -a ! -L "${f}" ] || continue
- if ! readelf -d ${f} | grep -q SONAME; then
+ if [ -f "${f}" ] && [ ! -L "${f}" ]; then
+ continue
+ fi
+ if ! readelf -d "${f}" | grep -q SONAME; then
warn "${f} doesn't have a SONAME."
warn "pkg(8) will not register it as being provided by the port."
warn "If another port depend on it, pkg will not be able to know where it comes from."
@@ -718,7 +721,7 @@
fi
# Use heredoc to avoid losing rc from find|while subshell
done <<-EOT
- $(find ${STAGEDIR}${PREFIX}/lib -name '*.so.*')
+ $(find "${STAGEDIR}${PREFIX}/lib" -name '*.so.*')
EOT
}
@@ -740,13 +743,13 @@
local portname version module gotsome
[ -x "${LOCALBASE}/bin/corelist" ] || return 0
for dep in ${UNIFIED_DEPENDS}; do
- portname=$(expr "${dep}" : ".*/p5-\(.*\)")
+ portname=$(expr "${dep}" : ".*/p5-\\(.*\\)")
if [ -n "${portname}" ]; then
gotsome=1
module=$(perlcore_port_module_mapping "${portname}")
- version=$(expr "${dep}" : ".*>=*\([^:<]*\)")
+ version=$(expr "${dep}" : ".*>=*\\([^:<]*\\)")
- while read l; do
+ while read -r l; do
case "${l}" in
*was\ not\ in\ CORE*)
# This never was with Perl
@@ -771,7 +774,7 @@
err "This line is not handled: \"${l}\""
esac
done <<-EOT
- $(${LOCALBASE}/bin/corelist "${module}"|tail -1)
+ $("${LOCALBASE}"/bin/corelist "${module}"|tail -1)
EOT
fi
done
@@ -783,7 +786,7 @@
no_arch() {
[ -z "$NO_ARCH" ] && return
rc=0
- while read f; do
+ while read -r f; do
[ -z "$f" ] && continue
if [ -n "$NO_ARCH_IGNORE" ]; then
skip=
@@ -794,13 +797,13 @@
done
[ "$skip" ] && continue
fi
- err "'${f#.}' is a architecture specific binary file and you have set NO_ARCH. Either remove NO_ARCH or add '$(basename $f)' to NO_ARCH_IGNORE."
+ err "'${f#.}' is a architecture specific binary file and you have set NO_ARCH. Either remove NO_ARCH or add '$(basename "$f")' to NO_ARCH_IGNORE."
rc=1
done <<-EOF
$(list_stagedir_elfs \
- | file -F $'\1' -f - -N \
+ | file -F "${SOH}" -f - -N \
| grep -aE 'ELF .* [LM]SB .*, .*, version [0-9]+ \(FreeBSD\)' \
- | cut -f 1 -d $'\1')
+ | cut -f 1 -d "${SOH}")
EOF
return $rc
}
@@ -809,19 +812,22 @@
{
rc=0
if [ "${PKGBASE%%-*}" = "rubygem" ]; then
+ # shellcheck disable=SC2153
+ # In the heredoc, ${PORTNAME} comes from the environment, not
+ # to be confused with ${portname}
while read -r l; do
if [ -n "${l}" ]; then
name=${l%% *}
vers=${l#* }
while read -r v; do
if ! while read -r p; do
- ${LOCALBASE}/bin/ruby -e "puts 'OK' if Gem::Dependency.new('${name}','${v}').match?('${name}','${p}')"
+ "${LOCALBASE}"/bin/ruby -e "puts 'OK' if Gem::Dependency.new('${name}','${v}').match?('${name}','${p}')"
done | grep -qFx OK; then
- err RubyGem dependency ${name} ${v} is not satisfied.
+ err RubyGem dependency "${name}" "${v}" is not satisfied.
rc=1
fi <<-EOF
- $(${LOCALBASE}/bin/gem list -e "${name}" \
- | sed "s|.*(\(.*\))|\1|" \
+ $("${LOCALBASE}"/bin/gem list -e "${name}" \
+ | sed "s|.*(\\(.*\\))|\\1|" \
| tr -d ' ' \
| tr , '\n')
EOF
@@ -833,7 +839,7 @@
EOF
fi
done <<-EOF
- $(grep -a 'add_runtime_dependency' ${STAGEDIR}${PREFIX}/lib/ruby/gems/*/specifications/${PORTNAME}-*.gemspec \
+ $(grep -a 'add_runtime_dependency' "${STAGEDIR}${PREFIX}"/lib/ruby/gems/*/specifications/"${PORTNAME}"-*.gemspec \
| sed 's|.*<\(.*\)>.*\[\(.*\)\])|\1 \2|' \
| sort -u)
EOF
@@ -859,7 +865,7 @@
fi
# advise install of bundler if its not present for check
- if ! type bundle > /dev/null 2>&1; then
+ if ! command -v bundle > /dev/null 2>&1; then
notice "Please install sysutils/rubygem-bundler for additional Gemfile-checks"
return 0
fi
@@ -876,12 +882,12 @@
# use bundle to check if Gemfile is satisfied
# if bundle returns 1 the Gemfile is not satisfied
# and so stage-qa isn't also
- if ! bundle check --dry-run --gemfile $f > /dev/null 2>&1; then
+ if ! bundle check --dry-run --gemfile "$f" > /dev/null 2>&1; then
warn "Dependencies defined in ${f} are not satisfied"
fi
done <<-EOF
- $(find ${STAGEDIR} -name Gemfile)
+ $(find "${STAGEDIR}" -name Gemfile)
EOF
return 0
}
@@ -908,7 +914,7 @@
checks="$checks proxydeps sonames perlcore no_arch gemdeps gemfiledeps flavors"
ret=0
-cd ${STAGEDIR}
+cd "${STAGEDIR}" || exit 1
for check in ${checks}; do
${check} || ret=1
done
Index: Mk/Scripts/smart_makepatch.sh
===================================================================
--- Mk/Scripts/smart_makepatch.sh
+++ Mk/Scripts/smart_makepatch.sh
@@ -25,9 +25,9 @@
# 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.
-[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_SMART_MAKEPATCH}" ] && set -x
+[ -n "${DEBUG_MK_SCRIPTS}" ] || [ -n "${DEBUG_MK_SCRIPTS_SMART_MAKEPATCH}" ] && set -x
-if [ -z "${PATCHDIR}" -o -z "${PATCH_WRKSRC}" -o -z "${WRKDIR}" ]; then
+if [ -z "${PATCHDIR}" ] || [ -z "${PATCH_WRKSRC}" ] || [ -z "${WRKDIR}" ]; then
echo "WRKDIR, PATCHDIR, and PATCH_WRKSRC required in environment." >&2
exit 1
fi
@@ -48,12 +48,12 @@
strip_path() {
local raw_name=$1
if [ "${STRIP_COMPONENTS}" = "0" ]; then
- echo ${raw_name}
+ echo "${raw_name}"
else
- echo ${raw_name} | awk -v sc=${STRIP_COMPONENTS} -F "/" \
- '{ for (x = sc + 1; x <= NF; x++) { \
- slash = (x>sc+1) ? "/" : ""; \
- printf ("%s%s", slash, $x); \
+ echo "${raw_name}" | awk -v sc="${STRIP_COMPONENTS}" -F "/" \
+ '{ for (x = sc + 1; x <= NF; x++) {
+ slash = (x>sc+1) ? "/" : "";
+ printf ("%s%s", slash, $x);
}}'
fi
}
@@ -61,15 +61,17 @@
std_patch_filename() {
local sans_cwd
local raw_name
- sans_cwd=$(echo $1 | sed 's|^\.\/||')
- raw_name=$(strip_path ${sans_cwd})
- echo patch-$(echo ${raw_name} | sed -e 's|_|&&|g; s|/|_|g')
+ sans_cwd=$(echo "$1" | sed 's|^\.\/||')
+ raw_name=$(strip_path "${sans_cwd}")
+ echo "patch-$(echo "${raw_name}" | sed -e 's|_|&&|g; s|/|_|g')"
}
patchdir_files_list() {
if [ -d "${PATCHDIR}" ]; then
- (cd ${PATCHDIR} && \
- find * -type f -name "patch-*" -maxdepth 0 \
+ # shellcheck disable=SC2035
+ # -f already makes sure what follows is not a flag
+ (cd "${PATCHDIR}" && \
+ find -f * -type f -name "patch-*" -maxdepth 0 \
2>/dev/null | sed -e '/\.orig$/d'
)
fi;
@@ -81,28 +83,28 @@
local first_target
local testres
local lps
- first_target=$(echo $2 | sed 's|^\.\/||')
+ first_target=$(echo "$2" | sed 's|^\.\/||')
for lps in __ - + ; do
- testres=patch-$(echo ${first_target} | sed -e "s|/|${lps}|g")
+ testres=patch-$(echo "${first_target}" | sed -e "s|/|${lps}|g")
if [ "${testres}" = "${current_patch_name}" ]; then
result=${testres}
break
fi
done
- echo ${result}
+ echo "${result}"
}
map_existing_patches() {
- mkdir -p ${WORKAREA}
- : > ${PATCHMAP}
+ mkdir -p "${WORKAREA}"
+ : > "${PATCHMAP}"
local target
local future_name
local std_target
local P
local t
for P in ${old_patch_list}; do
- target=$(cd ${PATCHDIR} && \
- grep "^+++ " ${P} | awk '{print $2}'
+ target=$(cd "${PATCHDIR}" && \
+ grep "^+++ " "${P}" | awk '{print $2}'
)
# For single patches, we honor previous separators, but use
# a standard patch name if the current patch name does not
@@ -114,12 +116,12 @@
future_name=${P}
break;
fi
- std_target=$(std_patch_filename ${t})
- future_name=$(valid_name ${P} ${t} ${std_target})
+ std_target=$(std_patch_filename "${t}")
+ future_name=$(valid_name "${P}" "${t}" "${std_target}")
done
for t in ${target}; do
- std_target=$(std_patch_filename ${t})
- echo "${future_name} ${std_target}" >> ${PATCHMAP}
+ std_target=$(std_patch_filename "${t}")
+ echo "${future_name} ${std_target}" >> "${PATCHMAP}"
done
done
}
@@ -130,54 +132,54 @@
local rawname
local fname
local num
- contains=$(grep "^+++ " ${existing_patch} | awk '{x++; print x}')
+ contains=$(grep "^+++ " "${existing_patch}" | awk '{x++; print x}')
for num in ${contains}; do
- rawname=$(grep "^+++ " ${existing_patch} | \
- awk -v num=${num} '{x++; if (x==num) print $2}')
- fname=$(std_patch_filename $rawname)
- awk -v num=${num} '\
- BEGIN { done=0; x=0; hunk=0; looking=(num==1) } \
- { \
- if (!done) { \
- if ($1 == "@@") { \
- split ($2,a,","); \
- split ($3,b,","); \
+ rawname=$(grep "^+++ " "${existing_patch}" | \
+ awk -v num="${num}" '{x++; if (x==num) print $2}')
+ fname=$(std_patch_filename "$rawname")
+ awk -v num="${num}" '
+ BEGIN { done=0; x=0; hunk=0; looking=(num==1) }
+ {
+ if (!done) {
+ if ($1 == "@@") {
+ split ($2,a,",");
+ split ($3,b,",");
hca = a[2];
hcb = a[3];
hunk = 1;
- } else if (hunk) { \
- first=substr($1,1,1); \
- if (first == "-") { hca-- } \
- else if (first == "+") { hcb-- } \
- else {hca--; hcb--} \
- if (hca == 0 && hcb == 0) {hunk = 0} \
- } \
- if ($1 == "---") { \
- x++; \
- if (x == num) { done = 1 } \
- if (x + 1 == num) { looking = 1 } \
- } else if (!hunk && looking) { \
- if ($1!="diff" && $1!="index" && $1!="+++") {\
- print $0 \
- } \
- } \
- } \
- }' ${existing_patch} > ${COMMENTS}/${fname}
+ } else if (hunk) {
+ first=substr($1,1,1);
+ if (first == "-") { hca-- }
+ else if (first == "+") { hcb-- }
+ else {hca--; hcb--}
+ if (hca == 0 && hcb == 0) {hunk = 0}
+ }
+ if ($1 == "---") {
+ x++;
+ if (x == num) { done = 1 }
+ if (x + 1 == num) { looking = 1 }
+ } else if (!hunk && looking) {
+ if ($1!="diff" && $1!="index" && $1!="+++") {
+ print $0
+ }
+ }
+ }
+ }' "${existing_patch}" > "${COMMENTS}/${fname}"
done
}
extract_comments() {
- mkdir -p ${COMMENTS}
- rm -f ${COMMENTS}/*
+ mkdir -p "${COMMENTS}"
+ rm -f "${COMMENTS}"/*
local P
for P in ${old_patch_list}; do
- extract_comment_from_patch ${P}
+ extract_comment_from_patch "${P}"
done
}
regenerate_patches() {
- mkdir -p ${REGENNED}
- rm -f ${REGENNED}/*
+ mkdir -p "${REGENNED}"
+ rm -f "${REGENNED}"/*
[ ! -d "${PATCH_WRKSRC}" ] && return
local F
@@ -185,48 +187,52 @@
local OUT
local ORIG
local new_list
+ # shellcheck disable=SC2035
+ # -f already makes sure what follows is not a flag
new_list=$(cd "${PATCH_WRKSRC}" && \
- find -s * -type f -name '*.orig' 2>/dev/null)
+ find -s -f * -type f -name '*.orig' 2>/dev/null)
(cd "${PATCH_WRKSRC}" && for F in ${new_list}; do
ORIG=${F#./}
NEW=${ORIG%.orig}
- cmp -s ${ORIG} ${NEW} && continue
- OUT=${REGENNED}/$(std_patch_filename ${NEW})
- TZ=UTC diff -udp ${ORIG} ${NEW} | sed \
+ cmp -s "${ORIG}" "${NEW}" && continue
+ OUT=${REGENNED}/$(std_patch_filename "${NEW}")
+ TZ=UTC diff -udp "${ORIG}" "${NEW}" | sed \
-e '/^---/s|\.[0-9]* +0000$| UTC|' \
-e '/^+++/s|\([[:blank:]][-0-9:.+]*\)*$||' \
- > ${OUT} || true
+ > "${OUT}" || true
done)
}
get_patch_name() {
- awk -v name=$1 '\
- { if ($2 == name) \
- { \
- if (!done) { print $1 }; \
- done = 1; \
- } \
- } \
- END { if (!done) print name }' ${PATCHMAP}
+ awk -v name="$1" '
+ { if ($2 == name)
+ {
+ if (!done) { print $1 };
+ done = 1;
+ }
+ }
+ END { if (!done) print name }' "${PATCHMAP}"
}
stage_patches() {
- mkdir -p ${DESTDIR}
- rm -f ${DESTDIR}/*
+ mkdir -p "${DESTDIR}"
+ rm -f "${DESTDIR}"/*
local P
local name
local patch_list
- patch_list=$(cd ${REGENNED} && find * -name "patch-*" 2>/dev/null)
+ # shellcheck disable=SC2035
+ # -f already makes sure what follows is not a flag
+ patch_list=$(cd "${REGENNED}" && find -f * -name "patch-*" 2>/dev/null)
for P in ${patch_list}; do
- name=$(get_patch_name ${P})
- [ -e ${COMMENTS}/${P} ] && cat ${COMMENTS}/${P} \
- >> ${DESTDIR}/${name}
+ name=$(get_patch_name "${P}")
+ [ -e "${COMMENTS}/${P}" ] && cat "${COMMENTS}/${P}" \
+ >> "${DESTDIR}/${name}"
if [ "${P}" = "${name}" ]; then
echo "Generated ${P}"
else
echo "Generated ${P} >> ${name} (legacy)"
fi
- cat ${REGENNED}/${P} >> ${DESTDIR}/${name}
+ cat "${REGENNED}/${P}" >> "${DESTDIR}/${name}"
done
}
@@ -239,47 +245,48 @@
local cpatch
local cpatch_stripped
for P in ${old_patch_list}; do
- if [ -e ${DESTDIR}/${P} ]; then
+ if [ -e "${DESTDIR}/${P}" ]; then
ppatch=${PATCHDIR}/${P}
cpatch=${DESTDIR}/${P}
ppatch_stripped=$(mktemp -t portpatch)
cpatch_stripped=$(mktemp -t portpatch)
- egrep -v -- '--- .+ UTC$' ${ppatch} \
- > ${ppatch_stripped}
- egrep -v -- '--- .+ UTC$' ${cpatch} \
- > ${cpatch_stripped}
+ grep -E -v -- '--- .+ UTC$' "${ppatch}" \
+ > "${ppatch_stripped}"
+ grep -E -v -- '--- .+ UTC$' "${cpatch}" \
+ > "${cpatch_stripped}"
# Don't replace patches with only metadata changes
- if ! cmp -s ${ppatch_stripped} ${cpatch_stripped}; then
+ if ! cmp -s "${ppatch_stripped}" "${cpatch_stripped}"; then
archive_patch_list="${archive_patch_list} ${P}"
else
echo "${P} only contains metadata changes; not replacing"
- rm ${cpatch}
+ rm "${cpatch}"
fi
- rm ${ppatch_stripped}
- rm ${cpatch_stripped}
+ rm "${ppatch_stripped}"
+ rm "${cpatch_stripped}"
fi
done
old_patch_list=${archive_patch_list}
}
conserve_old_patches() {
- mkdir -p ${SAVEDIR}
- rm -f ${SAVEDIR}/*
+ mkdir -p "${SAVEDIR}"
+ rm -f "${SAVEDIR}"/*
[ -z "${old_patch_list}" ] && return
local P
for P in ${old_patch_list}; do
- mv ${PATCHDIR}/${P} ${SAVEDIR}/${P}
+ mv "${PATCHDIR}/${P}" "${SAVEDIR}/${P}"
done
echo "The previous patches have been placed here:"
- echo ${SAVEDIR}
+ echo "${SAVEDIR}"
}
install_regenerated_patches() {
- local testdir=$(find ${DESTDIR} -empty)
+ local testdir
+ testdir=$(find "${DESTDIR}" -empty)
if [ -z "${testdir}" ]; then
- mkdir -p ${PATCHDIR}
- find ${DESTDIR} -type f -exec mv {} ${PATCHDIR}/ \;
+ mkdir -p "${PATCHDIR}"
+ find "${DESTDIR}" -type f -exec mv {} "${PATCHDIR}"/ \;
fi
}

File Metadata

Mime Type
text/plain
Expires
Wed, Feb 4, 11:24 PM (19 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28438386
Default Alt Text
D13970.id38394.diff (101 KB)

Event Timeline