diff options
| -rw-r--r-- | sbopkglint.d/05-basic-sanity.t.sh | 17 | 
1 files changed, 15 insertions, 2 deletions
| diff --git a/sbopkglint.d/05-basic-sanity.t.sh b/sbopkglint.d/05-basic-sanity.t.sh index d62238a..04d5ef9 100644 --- a/sbopkglint.d/05-basic-sanity.t.sh +++ b/sbopkglint.d/05-basic-sanity.t.sh @@ -169,9 +169,17 @@ done  # 20220414 bkw: absolute symlinks used to be an error, but there are just  # too many packages that use them. so only flag them if they're broken links. +# 20230627 bkw: note absolute symlinks outside the package. used in my own +# smc build, for instance. up to the human to decide whether it's a problem.  find . -type l -lname '/*' | while read f; do  	target="$( readlink "$f" | sed 's,^/*,,' )" -	[ -e "$target" ] || ls -bld "$f" > .badlinks.$$ +	if [ ! -e "$target" ]; then +		if [ -e "/$target" ]; then +			ls -bld "$f" > .outlinks.$$ +		else +			ls -bld "$f" > .badlinks.$$ +		fi +	fi  done  if [ -s .badlinks.$$ ]; then @@ -179,7 +187,12 @@ if [ -s .badlinks.$$ ]; then  	cat .badlinks.$$  fi -rm -f .badlinks.$$ +if [ -s .outlinks.$$ ]; then +	note "package contains symlinks outside the package (which is OK, if intentional):" +	cat .outlinks.$$ +fi + +rm -f .badlinks.$$ .outlinks.$$  find_warnfiles "package contains broken relative symlinks:" \  	-L . -type l \! -lname '/*' | 
