From 5c10680f6f5f9ed1eb456f57cba3f88ecb69066c Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Sun, 2 Oct 2022 11:40:52 +1000 Subject: [PATCH] libmakepkg: fix compatibility with bash-5.2 globskipdots Bash 5.2 has a new globskipdots option, which is enabled by default. The check_dotfiles lint fails with globskipdots due to the assumption that at least the "." and ".." paths will match. Disabling globskipdots would be the usual solution, but that fails on bash<5.2. Instead, enable nullglob for this check. Signed-off-by: Allan McRae (cherry picked from commit a6b06a5b17e19db8700597ee06bae42b2cfe7b5a) --- scripts/libmakepkg/lint_package/dotfiles.sh.in | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/scripts/libmakepkg/lint_package/dotfiles.sh.in b/scripts/libmakepkg/lint_package/dotfiles.sh.in index bf6c7548..ac86b02f 100644 --- a/scripts/libmakepkg/lint_package/dotfiles.sh.in +++ b/scripts/libmakepkg/lint_package/dotfiles.sh.in @@ -29,10 +29,17 @@ lint_package_functions+=('check_dotfiles') check_dotfiles() { local ret=0 + + local shellopts=$(shopt -p nullglob) + shopt -s nullglob + for f in "$pkgdir"/.*; do [[ ${f##*/} == . || ${f##*/} == .. ]] && continue error "$(gettext "Dotfile found in package root '%s'")" "$f" ret=1 done + + eval "$shellopts" + return $ret }