pkg_conflicts: use pkg_name from caller

This commit is contained in:
Dylan Araps 2021-07-17 15:40:11 +03:00
parent c3c9049113
commit cd29cb3eaa
No known key found for this signature in database
GPG Key ID: 13295DAC2CF13B5C
1 changed files with 13 additions and 13 deletions

26
kiss
View File

@ -985,10 +985,11 @@ pkg_verify() {
pkg_conflicts() { pkg_conflicts() {
# Check to see if a package conflicts with another. # Check to see if a package conflicts with another.
log "$1" "Checking for package conflicts" # _pkg comes from the caller.
log "$_pkg" "Checking for package conflicts"
tmp_file "$1" manifest-files tmp_file "$_pkg" manifest-files
tmp_file "$1" found-conflicts tmp_file "$_pkg" found-conflicts
# Filter the tarball's manifest and select only files. Resolve all # Filter the tarball's manifest and select only files. Resolve all
# symlinks in file paths as well. # symlinks in file paths as well.
@ -1004,10 +1005,9 @@ pkg_conflicts() {
# resolved to their real locations. # resolved to their real locations.
printf '%s\n' "${PWD#"$KISS_ROOT"}/${file##*/}" printf '%s\n' "${PWD#"$KISS_ROOT"}/${file##*/}"
esac done < "$PWD/$pkg_db/$1/manifest" > "$_tmp_file_pre" esac done < "$PWD/$pkg_db/$_pkg/manifest" > "$_tmp_file_pre"
cd "$tar_dir/$1" cd "$tar_dir/$_pkg"
p_name=$1
set +f set +f
set -f "$sys_db"/*/manifest set -f "$sys_db"/*/manifest
@ -1018,7 +1018,7 @@ pkg_conflicts() {
for manifest do for manifest do
shift shift
case $manifest in "$sys_db/$p_name/manifest") case $manifest in "$sys_db/$_pkg/manifest")
continue continue
esac esac
@ -1075,22 +1075,22 @@ pkg_conflicts() {
# Move the conflicting file to the choices directory # Move the conflicting file to the choices directory
# and name it according to the format above. # and name it according to the format above.
mv -f "$PWD$con" "$PWD/$cho_db/$p_name$_fnr" 2>/dev/null || { mv -f "$PWD$con" "$PWD/$cho_db/$_pkg$_fnr" 2>/dev/null || {
log "File must be in ${con%/*} and not a symlink to it" log "File must be in ${con%/*} and not a symlink to it"
log "This usually occurs when a binary is installed to" log "This usually occurs when a binary is installed to"
die "/sbin instead of /usr/bin (example)" die "/sbin instead of /usr/bin (example)"
} }
done < "$_tmp_file" done < "$_tmp_file"
log "$p_name" "Converted all conflicts to choices (kiss a)" log "$_pkg" "Converted all conflicts to choices (kiss a)"
# Rewrite the package's manifest to update its location # Rewrite the package's manifest to update its location
# to its new spot (and name) in the choices directory. # to its new spot (and name) in the choices directory.
pkg_manifest "$p_name" "$tar_dir" pkg_manifest "$_pkg" "$tar_dir"
elif [ -s "$_tmp_file" ]; then elif [ -s "$_tmp_file" ]; then
log "Package '$p_name' conflicts with another package" "" "!>" log "Package '$_pkg' conflicts with another package" "" "!>"
log "Run 'KISS_CHOICE=1 kiss i $p_name' to add conflicts" "" "!>" log "Run 'KISS_CHOICE=1 kiss i $_pkg' to add conflicts" "" "!>"
die "as alternatives." "" "!>" die "as alternatives." "" "!>"
fi fi
} }
@ -1434,7 +1434,7 @@ pkg_install() {
# arg3: path to extracted package # arg3: path to extracted package
run_hook pre-install "$_pkg" "$PWD" run_hook pre-install "$_pkg" "$PWD"
pkg_conflicts "$_pkg" pkg_conflicts
log "$_pkg" "Installing package (${tar_file##*/})" log "$_pkg" "Installing package (${tar_file##*/})"