kiss: fix_deps clean up

also fixed bug in pkg_installable
and misc clean up
This commit is contained in:
Dylan Araps 2021-07-05 13:05:24 +03:00
parent 09f48044aa
commit 3d431fe22c
No known key found for this signature in database
GPG Key ID: 13295DAC2CF13B5C
1 changed files with 19 additions and 28 deletions

47
kiss
View File

@ -447,9 +447,9 @@ pkg_order() {
for pkg do case $pkg in for pkg do case $pkg in
/*.tar.*) deps="$deps $pkg" ;; /*.tar.*) deps="$deps $pkg" ;;
*.tar.*) deps="$deps $ppwd/$pkg" ;; *.tar.*) deps="$deps $ppwd/$pkg" ;;
*/*) die "Invalid argument: '/!*[]' ($pkg)" ;; */*) die "Invalid argument: '/!*[]' ($pkg)" ;;
*) pkg_depends "$pkg" raw *) pkg_depends "$pkg" raw
esac done esac done
# Filter the list, only keeping explicit packages. The purpose of these # Filter the list, only keeping explicit packages. The purpose of these
@ -519,20 +519,14 @@ pkg_fix_deps() {
find "$pkg_dir/${PWD##*/}/" -type f 2>/dev/null | find "$pkg_dir/${PWD##*/}/" -type f 2>/dev/null |
while read -r file; do while read -r _fix_file; do
ldd_buf=$(ldd -- "$file" 2>/dev/null) || : ldd_buf=$(ldd -- "$_fix_file" 2>/dev/null) ||
continue
case $cmd_elf in elf_buf=${cmd_elf:+"$("$cmd_elf" -d "$_fix_file" 2>/dev/null)"} ||
*readelf) continue
"$cmd_elf" -d "$file"
;;
*) while read -r line || [ "$line" ]; do
printf '%s\n' "$ldd_buf"
;;
esac 2>/dev/null |
while read -r line; do
case $line in case $line in
*NEEDED*\[*\] | *'=>'*) *NEEDED*\[*\] | *'=>'*)
# readelf: 0x0000 (NEEDED) Shared library: [libjson-c.so.5] # readelf: 0x0000 (NEEDED) Shared library: [libjson-c.so.5]
@ -571,20 +565,17 @@ pkg_fix_deps() {
esac esac
;; ;;
esac esac
done || : done <<EOF || :
done | ${elf_buf:-"$ldd_buf"}
EOF
done | sort -uk1,1 depends - > "$tmp_dir/.fixdeps"
sort -uk1,1 depends - > "$tmp_dir/.fixdeps" # If the depends file was modified, show a diff and replace it.
! [ -s "$tmp_dir/.fixdeps" ] || {
diff -U 3 depends - < "$tmp_dir/.fixdeps" || : diff -U 3 depends - < "$tmp_dir/.fixdeps" 2>/dev/null || :
mv -f "$tmp_dir/.fixdeps" depends
mv -f "$tmp_dir/.fixdeps" depends
if [ -s depends ]; then
pkg_manifest "${PWD##*/}" pkg_manifest "${PWD##*/}"
else }
rm -f depends
fi
} }
pkg_manifest() ( pkg_manifest() (
@ -1237,7 +1228,7 @@ pkg_installable() {
while read -r dep dep_type || [ "$dep" ]; do while read -r dep dep_type || [ "$dep" ]; do
case $dep-$dep_type in case $dep-$dep_type in
*-\#) \#*-*)
continue continue
;; ;;