X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-gc;h=fdf8088b8c1abafa3f695b7b3ef30a0f7f23f996;hb=69491d14441cfc893e18e1c60c13c995b93002c9;hp=d2d49fc861c0dd95472395f13be317312f2b1410;hpb=e391f268e77b1609f4df34b1bb272cad3b5de7d4;p=zpackage diff --git a/zpm-gc b/zpm-gc index d2d49fc..fdf8088 100755 --- a/zpm-gc +++ b/zpm-gc @@ -77,17 +77,30 @@ export ZPMDB # check for incorrect hash file content -# remove orphaned elf info +# removes old packages +zpm shell local.db.rehash "select package||'-'||version||'-'||release from package_age where age > 2 and status = 'updated'"|xargs -n1 zpm rmpackage -S installed -f local.db.rehash + +select +EL.file, PF.path, +PF.package || '-' || PF.version || '-' || PF.release as pkgid +from elfneeded EL +left join files F on F.hash = EL.file +left join packagefiles PF on PF.hash = EL.file +where F.hash is null +and EL.file is not null +and PF.path is not null +; + # remove failed packages for pkg in $(zpm list -s failed); do zpm rmpackage -m 'gc removed failed' "$pkg" - echo removed $pkg + echo removed failed $pkg done for pkg in $(zpm list -s dryrun); do zpm rmpackage -m 'gc removed dryrun' "$pkg" - echo removed $pkg + echo removed dryrun $pkg done # remove incomplete packages @@ -95,7 +108,7 @@ done if [ $remove_incomplete_packages -ne 0 ]; then for pkg in $(zpm list -F 'hash is null'); do zpm rmpackage -m 'gc removed incomplete' $pkg - echo removed $pkg + echo removed incomplete $pkg done fi @@ -104,7 +117,7 @@ fi if [ $remove_old_packages -ne 0 ]; then zpm shell $ZPMDB "select printf('%s-%s-%s',package,version,release) from package_age where age > $retain_old" | while read pkg; do zpm rmpackage -m 'gc removed old package' $pkg - echo removed $pkg + echo removed old package $pkg done fi