diff options
author | Jon Turney <jon.turney@dronecode.org.uk> | 2021-05-05 16:08:46 +0300 |
---|---|---|
committer | Jon Turney <jon.turney@dronecode.org.uk> | 2022-07-01 14:52:51 +0300 |
commit | eca3a88d174516051883b5c7404f6985939d4b4e (patch) | |
tree | 9df03a2af7702155c0ccdbfd941bf4fb6947e753 /calm/past_mistakes.py | |
parent | 385eeb6a094e30aaaf224b9c5b4a025a09002726 (diff) |
Improve handling of old-style obsoletion packages
Identify old-style obsoletion packages (where the package is empty, has
a category of _obsolete, and requires: it's replacement), and upgrade
them to the new style (where the obsoleting package has an obsoletes:).
This is done per-arch, simply because lots of these historic obsoletion
packages only exist for x86, and it's redundant to obsolete: them on
x86_64.
Treating this similarly to past_mistakes.missing_obsoletes means that a
warning occurs when new version of package is missing that expected
obsolete:
Initially only apply to packages over a certain age, so we can observe
the effect on a small number of packages to make checking it's doing the
right thing easier.
Diffstat (limited to 'calm/past_mistakes.py')
-rw-r--r-- | calm/past_mistakes.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/calm/past_mistakes.py b/calm/past_mistakes.py index af6d650..c0e724f 100644 --- a/calm/past_mistakes.py +++ b/calm/past_mistakes.py @@ -220,3 +220,39 @@ empty_source = { 'pinentry-qt3-src': ['0.7.6-3'], # obsoleted by pinentry-qt 'xerces-c-devel-src': ['2.8.0-1'], # obsoleted by libxerces-c-devel } + +# additional data for the heuristic for upgrading old-style obsoletion packages +old_style_obsolete_by = { + 'at-spi2-atk': 'libatk-bridge2.0_0', + 'qt-gstreamer': 'libQtGStreamer1_0_0', + 'lighttpd-mod_trigger_b4_dl': 'lighttpd', + # these require: both epoch1 and epoch2 replacements, but epoch1 contains + # the same version + 'gcc-tools-autoconf': 'gcc-tools-epoch1-autoconf', + 'gcc-tools-automake': 'gcc-tools-epoch1-automake', + # these are odd and only exist to record an optional dependency on the + # language runtime (dynamically loaded at runtime), which is also noted in + # build-requires: + 'vim-lua': 'vim', + 'vim-perl': 'vim', + 'vim-python': 'vim', + 'vim-python3': 'vim', + 'vim-ruby': 'vim', + # (An empty replacement means "don't apply this heuristic". We use that to + # not bother with some x86-only packages which have complex replacements, + # since they will be going away relatively soon anyhow...) + 'SuiteSparse': '', + 'libSuiteSparse-devel': '', + 'libksba': '', + 'libstdc++6-devel': '', + 'octave-forge': '', + 'plotutils-devel': '', + 'rpm-doc': '', + 'tetex-base': '', + 'tetex-bin': '', + 'tetex-extra': '', + 'tetex-tiny': '', + 'tetex-x11': '', + 'texlive-collection-langtibetan': '', + 'texlive-collection-texinfo': '', +} |