Obsoletes, Obsoletes, Obsoletes
Michael Schwendt
mschwendt at gmail.com
Tue Aug 20 22:29:17 UTC 2013
Oh no! Another one of those threads... ;-)
Well, a comment from Thomas Moschny inspired me to examine "Obsoletes"
tags in our package collection a bit.
How to find "Obsoletes" tags, which are not high enough?
For example, it happens regularly that even with Fedora's Package Rename
Process, which requires a package review, incorrect Obsoletes (the $obsver
in the guidelines) manage to slip through because of the dist tag. The
supposed-to-be-obsolete package remains installed and installable. Or
worse, if not retired properly, it might return with a bumped release
after a rebuild:
pexpect-0:2.3-9.fc19.noarch isn't obsoleted
pexpect <= 0:2.3-9 obsoleted by python-pexpect-0:2.5.1-6.fc19.noarch
pexpect-0:2.3-10.fc20.noarch isn't obsoleted
pexpect <= 0:2.3-9 obsoleted by python-pexpect-0:2.5.1-6.fc19.noarch
What has happened? It should have been retired in Fedora 18 already when
it got obsoleted.
So, my first idea has been to look at all packages in the repositories and
search for builds with an EVR that is higher than an existing Obsoletes
tag for that package name. Huge output! A nightmare. A Herculean task to
check them all (until the script may be trusted), but easy enough to
skim over the list and perform a plausibility check:
latte-integrale
4ti2-0:1.5-3.fc18.i686 isn't obsoleted
4ti2 < 0:1.5-1 obsoleted by 4ti2-0:1.5-10.fc20.i686
Indeed. "latte-integrale" is the src.rpm name. It builds a "4ti2"
binary rpm with an EVR higher than the Obsoletes tag. Checking the
spec file in git:
%package -n 4ti2
# This can be removed once Fedora 18 reaches EOL.
Provides: 4ti2 = %{version}-%{release}
Obsoletes: 4ti2 < 1.5-1
And there are many more like that. We're really bad here.
I don't even understand that spec file. _Why_ does it add such
Provides (those are automatic for %name anyway) and self-Obsoletes?
Anyway, enjoy the full list here:
http://mschwendt.fedorapeople.org/dubious_Obsoletes_in_Rawhide_20130821.txt
On to the second experiment. Ancient Obsoletes! Which Obsoletes tags
are too low for any current build in Fedora 16 up to Rawhide?
It's a shorter list:
http://mschwendt.fedorapeople.org/ancient_Obsoletes_in_Rawhide_20130821.txt
But hey, what the heck is stuff like this?
erlang
erlang-0:R14B-04.1.fc16.i686 is oldest
erlang < 0:R13B-04.5 obsoleted by erlang-erl_interface-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-et-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-crypto-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-examples-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-sasl-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-compiler-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-inviso-0:R15B-03.3.fc18.i686
erlang < 0:R13B-04.5 obsoleted by erlang-reltool-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-syntax_tools-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-diameter-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-eldap-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-erts-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-webtool-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-cosNotification-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-parsetools-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-jinterface-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-dialyzer-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-gs-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-cosTime-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-toolbar-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-tools-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-tv-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-megaco-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-eunit-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-percept-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-ssh-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-asn1-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-erl_docgen-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-ic-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-edoc-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-wx-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-appmon-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-runtime_tools-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-orber-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-stdlib-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-cosFileTransfer-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-cosEvent-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-snmp-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-test_server-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-cosEventDomain-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-cosProperty-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-ssl-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-mnesia-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-debugger-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-pman-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-typer-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-otp_mibs-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-xmerl-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-kernel-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-common_test-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-hipe-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-cosTransactions-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-os_mon-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-inets-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-public_key-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-odbc-0:R16B-01.1.fc20.1.i686
erlang < 0:R13B-04.5 obsoleted by erlang-docbuilder-0:R14B-04.1.fc16.i686
erlang < 0:R13B-04.5 obsoleted by erlang-observer-0:R16B-01.1.fc20.1.i686
# repoquery --whatobsoletes erlang|wc -l
112
More information about the devel
mailing list