setlist=
quiet=0
clearlist=0
+includelibs=1
+resolvelibs=0
-while getopts :f:s:a:r:qc opt; do
+while getopts :f:s:a:r:qcLR opt; do
case $opt in
f) pkgfile="$OPTARG" ;;
s) setlist="$setlist $OPTARG"; clearlist=1 ;;
r) remove="$remove $OPTARG" ;;
q) quiet=1 ;;
c) clearlist=1 ;;
+ L) includelibs=0 ;;
+ R) resolvelibs=1 ;;
esac
done
shift $(( OPTIND - 1))
eval $(zpm parse -E "$pkgid")
package=$(zpm quote -q "$name")
version=$(zpm quote -q "$version")
-pkgselector="package = $package and version = $version and release = $release"
-listdeps="select requires from packagedeps where %s;\n"
+pkgselector="P.package = $package and P.version = $version and P.release = $release"
+listdeps="select requires from packagedeps P where %s;\n"
adddep='insert or ignore into packagedeps (package,version,release,requires) values (%s,%s,%d,%s);\n'
-rmdep='delete from packagedeps where %s and requires = %s;\n'
-cleardeps='delete from packagedeps where %s;\n'
+rmdep='delete from packagedeps P where %s and requires = %s;\n'
+cleardeps='delete from packagedeps P where %s;\n'
+libdeps="select distinct EN.needed from elfneeded EN join packagefiles P on P.hash = EN.file where %s;\n"
+resolvelibs="select distinct EN.needed from elfneeded EN join packagefiles PF on PF.hash = EN.file left join where %s;\n"
{
printf ".bail on\n";
fi
if [ $quiet -eq 0 ]; then
printf "$listdeps" "$pkgselector"
+ if [ $includelibs -eq 1 ]; then
+ printf "$libdeps" "$pkgselector"
+ fi
fi
printf "commit;\n";
} | zpm shell $pkgfile