commit 32518710436cfafd14a01130f9a1b6d56c8dfaae
parent 4d3d6db8af381c1e7206c423da4aeca2ce414778
Author: Dylan Araps <dylan.araps@gmail.com>
Date: Wed, 20 Nov 2019 14:26:08 +0000
kiss: resolve symlinks in package conflict check.
Diffstat:
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/kiss b/kiss
@@ -579,7 +579,11 @@ pkg_conflicts() {
# exist in the filesystem. It's pointless to check for conflicts
# with files which don't presently exist.
tar xf "$1" -O "./$pkg_db/$2/manifest" | while read -r file; do
- [ -f "$KISS_ROOT/$file" ] && printf '%s\n' "$file"
+ [ -f "$KISS_ROOT/$file" ] && {
+ printf '%s\n' "$file"
+
+ (cd "$KISS_ROOT/"; readlink -f "./$file")
+ }
done |
# Filter the existing file list through the manifest of the
@@ -588,9 +592,10 @@ pkg_conflicts() {
# If the generated manifest contains matches, check the
# contents for conflicts.
- [ -s "$cac_dir/$pid-m" ] &&
+ if [ -s "$cac_dir/$pid-m" ]; then
grep -Fxf "$cac_dir/$pid-m" -- "$sys_db"/*/manifest &&
die "Package '$2' conflicts with another package"
+ fi
set -ef
}