RFC: Junk in Fedora Extras
Michael Schwendt
bugs.michael at gmx.net
Sat Oct 21 21:32:19 UTC 2006
So far, we have been running "repomanage" on the Fedora Extras repository
trees to get rid of old package releases automatically. In development, we
keep only the latest release, for older trees we keep at most two
releases.
However, occasionally I've run into obsolete/orphaned sub-packages where
the packager changed the BuildArch or deleted a sub-package without asking
the repository staff to delete old package releases manually. It can also
happen that the package removal requests, which are processed by humans,
lead to incomplete removal of packages, when e.g. "debuginfo" packages are
not removed or version-information was misleading.
The resulting obsolete package releases live in the repository forever, as
repomanage will never decide to delete them.
As a solution, I've looked into porting my old Perl rpm-expire script to
Python -- I've lost the script in the single place where it was running
and have only recovered an early prototype I'm not satisfactory with.
The technique is based on this:
* We build from src.rpm packages.
* For all binary rpms there must be a corresponding src.rpm.
* The src.rpm name is in the %{sourcerpm} header of a binary rpm.
* If the src.rpm for a binary rpm in the repository does not exist,
where does the binary rpm come from? --> We delete it!
* Instead of expiring arbitrary packages based on "number of pkgs found",
we expire only src.rpms and clean up the binary rpms based on whether
their src.rpms still exist.
Running a quick hack of this on the current FE repositories, it creates a
long list of "lost souls" as appended below. I've checked a few already
and so far could not find any false positives. Of course, letting such a
script remove these packages automatically actually, will require a few
good sanity checks, so run-time errors don't empty the entire
repository. ;)
[...]
This is the full list of binary rpms, which do not have a corresponding
src.rpm in the repository:
Expiring (keep = 1): /extras/development/SRPMS
Skipping em8300-kmod
Skipping sysprof-kmod
Pruning: /extras/development/ppc
Macaulay2-0.9.8-0.3.cvs20060327.fc6.ppc.rpm
clearlooks-0.5-1.ppc.rpm
dhcp-forwarder-0.7-7.fc5.ppc.rpm
dhcp-forwarder-sysv-0.7-7.fc5.ppc.rpm
dietlibc-0.29-4.fc5.ppc.rpm
gnome-applet-netmon-0.4-3.ppc.rpm
gnome-theme-clearlooks-0.5-3.ppc.rpm
gprolog-1.2.19-5.fc6.ppc.rpm
gprolog-docs-1.2.19-5.fc6.ppc.rpm
gprolog-examples-1.2.19-5.fc6.ppc.rpm
pessulus-2.16.0-4.fc6.ppc.rpm
ip-sentinel-0.12-5.fc5.ppc.rpm
ip-sentinel-sysv-0.12-5.fc5.ppc.rpm
libc-client2004g-2004g-6.fc6.ppc.rpm
cobbler-0.1.1-8.fc6.noarch.rpm
python-simpletal-3.12-1.ppc.rpm
perl-Alien-wxWidgets-0.21-1.fc6.noarch.rpm
util-vserver-build-0.30.208-1.fc5.ppc.rpm
util-vserver-0.30.208-1.fc5.ppc.rpm
util-vserver-devel-0.30.208-1.fc5.ppc.rpm
util-vserver-core-0.30.208-1.fc5.ppc.rpm
util-vserver-legacy-0.30.208-1.fc5.ppc.rpm
util-vserver-lib-0.30.208-1.fc5.ppc.rpm
util-vserver-sysv-0.30.208-1.fc5.ppc.rpm
Macaulay2-debuginfo-0.9.8-0.3.cvs20060327.fc6.ppc.rpm
clearlooks-debuginfo-0.5-1.ppc.rpm
dhcp-forwarder-debuginfo-0.7-7.fc5.ppc.rpm
dietlibc-debuginfo-0.29-4.fc5.ppc.rpm
gnome-applet-netmon-debuginfo-0.4-3.ppc.rpm
gnome-theme-clearlooks-debuginfo-0.5-3.ppc.rpm
gprolog-debuginfo-1.2.19-5.fc6.ppc.rpm
db4o-debuginfo-5.5-8.fc6.ppc.rpm
ip-sentinel-debuginfo-0.12-5.fc5.ppc.rpm
python-psyco-debuginfo-1.4-1.ppc.rpm
python-simpletal-debuginfo-3.12-1.ppc.rpm
util-vserver-debuginfo-0.30.208-1.fc5.ppc.rpm
perl-Alien-wxWidgets-debuginfo-0.21-3.fc6.ppc.rpm
Pruning: /extras/development/x86_64
pessulus-2.16.0-4.fc6.x86_64.rpm
libc-client2004g-2004g-6.fc6.x86_64.rpm
perl-Unicode-Map8-0.12-7.fc5.x86_64.rpm
perl-Unicode-MapUTF8-1.09-6.fc5.noarch.rpm
perl-Alien-wxWidgets-0.21-1.fc6.noarch.rpm
db4o-debuginfo-5.5-8.fc6.x86_64.rpm
perl-Unicode-Map8-debuginfo-0.12-7.fc5.x86_64.rpm
perl-Alien-wxWidgets-debuginfo-0.21-3.fc6.x86_64.rpm
Pruning: /extras/development/i386
pessulus-2.16.0-4.fc6.i386.rpm
libc-client2004g-2004g-6.fc6.i386.rpm
perl-Alien-wxWidgets-0.21-1.fc6.noarch.rpm
db4o-debuginfo-5.5-8.fc6.i386.rpm
perl-Alien-wxWidgets-debuginfo-0.21-3.fc6.i386.rpm
Expiring (keep = 2): /extras/5/SRPMS
Skipping em8300-kmod
Skipping sysprof-kmod
Pruning: /extras/5/ppc
apmud-1.0.0-1.ppc.rpm
perl-Alien-wxWidgets-0.21-1.fc5.noarch.rpm
lat-1.0.6-1.fc5.noarch.rpm
nabi-0.14-4.ppc.rpm
python-reportlab-1.20-1.fc4.ppc.rpm
qof-docs-0.6.4-3.fc5.ppc.rpm
scim-bridge-gtkimm-0.1.12-1.fc5.ppc.rpm
clearlooks-0.5-1.ppc.rpm
dhcp-forwarder-0.7-7.fc5.ppc.rpm
dhcp-forwarder-sysv-0.7-7.fc5.ppc.rpm
dietlibc-0.29-4.fc5.ppc.rpm
gnome-applet-netmon-0.4-3.ppc.rpm
gnome-theme-clearlooks-0.5-3.ppc.rpm
ip-sentinel-0.12-5.fc5.ppc.rpm
ip-sentinel-sysv-0.12-5.fc5.ppc.rpm
libc-client2004g-2004g-4.fc5.2.ppc.rpm
python-simpletal-3.12-1.ppc.rpm
util-vserver-0.30.208-1.fc5.ppc.rpm
util-vserver-build-0.30.208-1.fc5.ppc.rpm
util-vserver-core-0.30.208-1.fc5.ppc.rpm
util-vserver-devel-0.30.208-1.fc5.ppc.rpm
util-vserver-legacy-0.30.208-1.fc5.ppc.rpm
util-vserver-lib-0.30.208-1.fc5.ppc.rpm
util-vserver-sysv-0.30.208-1.fc5.ppc.rpm
scim-bridge-gtkimm-0.1.12-1.fc5.1.ppc.rpm
php-eaccelerator-5.1.4_0.9.5-1.fc5.ppc.rpm
R-mAr-debuginfo-1.1-3.fc5.ppc.rpm
abicheck-debuginfo-1.2-5.ppc.rpm
apmud-debuginfo-1.0.0-1.ppc.rpm
ikvm-debuginfo-0.22-5.fc5.ppc.rpm
ikvm-debuginfo-0.22-7.fc5.ppc.rpm
nabi-debuginfo-0.14-4.ppc.rpm
perl-Alien-wxWidgets-debuginfo-0.21-2.fc5.ppc.rpm
python-reportlab-debuginfo-1.20-1.fc4.ppc.rpm
clearlooks-debuginfo-0.5-1.ppc.rpm
dhcp-forwarder-debuginfo-0.7-7.fc5.ppc.rpm
dietlibc-debuginfo-0.29-4.fc5.ppc.rpm
gnome-applet-netmon-debuginfo-0.4-3.ppc.rpm
gnome-theme-clearlooks-debuginfo-0.5-3.ppc.rpm
ip-sentinel-debuginfo-0.12-5.fc5.ppc.rpm
python-psyco-debuginfo-1.4-1.ppc.rpm
python-simpletal-debuginfo-3.12-1.ppc.rpm
util-vserver-debuginfo-0.30.208-1.fc5.ppc.rpm
php-eaccelerator-debuginfo-5.1.4_0.9.5-1.fc5.ppc.rpm
Pruning: /extras/5/x86_64
perl-Alien-wxWidgets-0.21-1.fc5.noarch.rpm
kphone-4.2-6.fc5.x86_64.rpm
lvcool-1.0.0-1.x86_64.rpm
qof-docs-0.6.4-3.fc5.x86_64.rpm
scim-bridge-gtkimm-0.1.12-1.fc5.x86_64.rpm
tpb-0.6.3-2.x86_64.rpm
lat-1.0.6-1.fc5.noarch.rpm
amaya-8.5-2.x86_64.rpm
libc-client2004g-2004g-4.fc5.2.x86_64.rpm
perl-Unicode-Map8-0.12-7.fc5.x86_64.rpm
soundtracker-0.6.7-3.x86_64.rpm
scim-bridge-gtkimm-0.1.12-1.fc5.1.x86_64.rpm
php-eaccelerator-5.1.4_0.9.5-1.fc5.x86_64.rpm
R-mAr-debuginfo-1.1-3.fc5.x86_64.rpm
abicheck-debuginfo-1.2-5.x86_64.rpm
ikvm-debuginfo-0.22-5.fc5.x86_64.rpm
ikvm-debuginfo-0.22-7.fc5.x86_64.rpm
kphone-debuginfo-4.2-6.fc5.x86_64.rpm
lvcool-debuginfo-1.0.0-1.x86_64.rpm
maxima-debuginfo-5.9.1-4.fc5.x86_64.rpm
perl-Alien-wxWidgets-debuginfo-0.21-2.fc5.x86_64.rpm
tpb-debuginfo-0.6.3-2.x86_64.rpm
amaya-debuginfo-8.5-2.x86_64.rpm
perl-Unicode-Map8-debuginfo-0.12-7.fc5.x86_64.rpm
soundtracker-debuginfo-0.6.7-3.x86_64.rpm
php-eaccelerator-debuginfo-5.1.4_0.9.5-1.fc5.x86_64.rpm
Pruning: /extras/5/i386
perl-Alien-wxWidgets-0.21-1.fc5.noarch.rpm
lat-1.0.6-1.fc5.noarch.rpm
qof-docs-0.6.4-3.fc5.i386.rpm
scim-bridge-gtkimm-0.1.12-1.fc5.i386.rpm
libc-client2004g-2004g-4.fc5.2.i386.rpm
scim-bridge-gtkimm-0.1.12-1.fc5.1.i386.rpm
php-eaccelerator-5.1.4_0.9.5-1.fc5.i386.rpm
R-mAr-debuginfo-1.1-3.fc5.i386.rpm
abicheck-debuginfo-1.2-5.i386.rpm
ikvm-debuginfo-0.22-5.fc5.i386.rpm
ikvm-debuginfo-0.22-7.fc5.i386.rpm
maxima-debuginfo-5.9.1-4.fc5.i386.rpm
perl-Alien-wxWidgets-debuginfo-0.21-2.fc5.i386.rpm
php-eaccelerator-debuginfo-5.1.4_0.9.5-1.fc5.i386.rpm
Expiring (keep = 2): /extras/4/SRPMS
Pruning: /extras/4/ppc
check-0.9.3-1.fc4.ppc.rpm
php-mmcache-5.0.4_2.4.6-8.fc4.ppc.rpm
php-eaccelerator-5.0.4_0.9.4-2.fc4.ppc.rpm
nabi-0.14-4.ppc.rpm
php-eaccelerator-5.0.4_0.9.4-1.fc4.ppc.rpm
php-mmcache-5.0.4_2.4.6-7.fc4.ppc.rpm
python-simpletal-3.12-1.ppc.rpm
R-mAr-debuginfo-1.1-3.fc4.ppc.rpm
abicheck-debuginfo-1.2-5.ppc.rpm
nabi-debuginfo-0.14-4.ppc.rpm
php-eaccelerator-debuginfo-5.0.4_0.9.4-1.fc4.ppc.rpm
php-mmcache-debuginfo-5.0.4_2.4.6-7.fc4.ppc.rpm
python-psyco-debuginfo-1.4-1.ppc.rpm
python-simpletal-debuginfo-3.12-1.ppc.rpm
php-mmcache-debuginfo-5.0.4_2.4.6-8.fc4.ppc.rpm
php-eaccelerator-debuginfo-5.0.4_0.9.4-2.fc4.ppc.rpm
Pruning: /extras/4/x86_64
amaya-8.5-2.x86_64.rpm
check-0.9.3-1.fc4.x86_64.rpm
php-eaccelerator-5.0.4_0.9.4-1.fc4.x86_64.rpm
php-mmcache-5.0.4_2.4.6-7.fc4.x86_64.rpm
soundtracker-0.6.7-3.x86_64.rpm
php-mmcache-5.0.4_2.4.6-8.fc4.x86_64.rpm
php-eaccelerator-5.0.4_0.9.4-2.fc4.x86_64.rpm
tpb-0.6.3-2.x86_64.rpm
R-mAr-debuginfo-1.1-3.fc4.x86_64.rpm
abicheck-debuginfo-1.2-5.x86_64.rpm
amaya-debuginfo-8.5-2.x86_64.rpm
maxima-debuginfo-5.9.1-4.fc4.x86_64.rpm
php-eaccelerator-debuginfo-5.0.4_0.9.4-1.fc4.x86_64.rpm
php-mmcache-debuginfo-5.0.4_2.4.6-7.fc4.x86_64.rpm
soundtracker-debuginfo-0.6.7-3.x86_64.rpm
tpb-debuginfo-0.6.3-2.x86_64.rpm
php-mmcache-debuginfo-5.0.4_2.4.6-8.fc4.x86_64.rpm
php-eaccelerator-debuginfo-5.0.4_0.9.4-2.fc4.x86_64.rpm
Pruning: /extras/4/i386
check-0.9.3-1.fc4.i386.rpm
php-eaccelerator-5.0.4_0.9.4-1.fc4.i386.rpm
php-mmcache-5.0.4_2.4.6-7.fc4.i386.rpm
php-mmcache-5.0.4_2.4.6-8.fc4.i386.rpm
php-eaccelerator-5.0.4_0.9.4-2.fc4.i386.rpm
R-mAr-debuginfo-1.1-3.fc4.i386.rpm
abicheck-debuginfo-1.2-5.i386.rpm
maxima-debuginfo-5.9.1-4.fc4.i386.rpm
php-eaccelerator-debuginfo-5.0.4_0.9.4-1.fc4.i386.rpm
php-mmcache-debuginfo-5.0.4_2.4.6-7.fc4.i386.rpm
php-mmcache-debuginfo-5.0.4_2.4.6-8.fc4.i386.rpm
php-eaccelerator-debuginfo-5.0.4_0.9.4-2.fc4.i386.rpm
Expiring (keep = 2): /extras/3/SRPMS
Pruning: /extras/3/x86_64
check-0.9.3-1.fc3.x86_64.rpm
ghc-doc-6.4-1.fc3.x86_64.rpm
ghc64-6.4-1.fc3.x86_64.rpm
ghc64-prof-6.4-1.fc3.x86_64.rpm
libtidy-0.99.0-2.20040916.x86_64.rpm
libtidy-devel-0.99.0-2.20040916.x86_64.rpm
plone-2.1-0.1.alpha2.fc3.noarch.rpm
python-reportlab-1.19-2.x86_64.rpm
revelation-0.3.4-1.noarch.rpm
torcs-data-cars-Patwo-Design-1.2.2-1.noarch.rpm
tidy-0.99.0-2.20040916.x86_64.rpm
torcs-data-cars-kcendra-gt-1.2.2-1.noarch.rpm
torcs-data-cars-VM-1.2.2-1.noarch.rpm
torcs-data-cars-kcendra-roadsters-1.2.2-1.noarch.rpm
torcs-data-cars-kcendra-sport-1.2.2-1.noarch.rpm
torque-localhost-2.1.0p0-2.fc3.x86_64.rpm
abicheck-debuginfo-1.2-3.x86_64.rpm
maxima-debuginfo-5.9.1-4.fc3.x86_64.rpm
python-reportlab-debuginfo-1.19-2.x86_64.rpm
tidy-debuginfo-0.99.0-2.20040916.x86_64.rpm
Pruning: /extras/3/i386
allegro-4.0.3-7.i386.rpm
allegro-devel-4.0.3-7.i386.rpm
allegro-tools-4.0.3-7.i386.rpm
check-0.9.3-1.fc3.i386.rpm
epydoc-2.1-2.i386.rpm
ghc-doc-6.4-1.fc3.i386.rpm
ghc64-6.4-1.fc3.i386.rpm
ghc64-prof-6.4-1.fc3.i386.rpm
gnome-vfsmm26-2.6.1-1.i386.rpm
gnome-vfsmm26-devel-2.6.1-1.i386.rpm
libgnomemm26-devel-2.6.0-1.i386.rpm
libgnomemm26-2.6.0-1.i386.rpm
libgnomeuimm26-devel-2.6.0-1.i386.rpm
libgnomeuimm26-2.6.0-1.i386.rpm
plone-2.1-0.1.alpha2.fc3.noarch.rpm
revelation-0.3.4-1.noarch.rpm
torcs-data-cars-kcendra-roadsters-1.2.2-1.noarch.rpm
torcs-data-cars-Patwo-Design-1.2.2-1.noarch.rpm
torcs-data-cars-VM-1.2.2-1.noarch.rpm
torcs-data-cars-kcendra-gt-1.2.2-1.noarch.rpm
torcs-data-cars-kcendra-sport-1.2.2-1.noarch.rpm
torque-localhost-2.1.0p0-2.fc3.i386.rpm
wxGTK-2.4.2-7.i386.rpm
wxGTK-common-2.4.2-7.i386.rpm
wxGTK-common-devel-2.4.2-7.i386.rpm
wxGTK-devel-2.4.2-7.i386.rpm
wxGTK-gl-2.4.2-7.i386.rpm
wxGTK-stc-2.4.2-7.i386.rpm
wxGTK-xrc-2.4.2-7.i386.rpm
wxGTK2-2.4.2-7.i386.rpm
wxGTK2-devel-2.4.2-7.i386.rpm
wxGTK2-gl-2.4.2-7.i386.rpm
wxGTK2-stc-2.4.2-7.i386.rpm
wxGTK2-xrc-2.4.2-7.i386.rpm
xtide-2.8-1.i386.rpm
abicheck-debuginfo-1.2-3.i386.rpm
allegro-debuginfo-4.0.3-7.i386.rpm
epydoc-debuginfo-2.1-2.i386.rpm
gnome-vfsmm26-debuginfo-2.6.1-1.i386.rpm
libgnomemm26-debuginfo-2.6.0-1.i386.rpm
libgnomeuimm26-debuginfo-2.6.0-1.i386.rpm
maxima-debuginfo-5.9.1-4.fc3.i386.rpm
wxGTK-debuginfo-2.4.2-7.i386.rpm
xtide-debuginfo-2.8-1.i386.rpm
More information about the fedora-extras-list
mailing list