Bug 1754151

Summary: Obsolete packages that used to require Python 3.7 but are gone in Fedora 32
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: fedora-obsolete-packagesAssignee: Miro Hrončok <mhroncok>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 32CC: j, mhroncok, zbyszek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: fedora-obsolete-packages-32-48 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-05-07 03:10:12 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1686977    

Description Miro Hrončok 2019-09-21 08:07:11 UTC
Packages that required Python 3.7 in Fedora 30 or 31 and are gone (retired, removed subpackages) from Fedora 32 must be obsoleted, or else they have broken dependencies.

I'll use this bug to track this.

Examples of such packages are python3-importlib-metadata (already obsoleted but updated in F31 in the meantime) or pytohn3-zipp (yet to be obsoleted). The challenge is that those packages are likely to get continuous updates in Fedora 30/31 and hence fedora-obsolete-packages needs to keep up.


Packages that required Python 3.7 in F30/F31:

for fed in 30 31; do
  for req in 'python(abi) = 3.7' 'libpython3.7m.so.1.0()(64bit)'; do
    repoquery --releasever=$fed --repo={fedora,updates{,-testing}} --whatrequires "$req" --qf '%{NAME}' 2>/dev/null
  done
done



Packages that still require Python 3.8/3.7 in Fedor 32 (packages that require 3.7 are currently broken, but still have chance to be updated):

for req in 'python(abi) = 3.7' 'libpython3.7m.so.1.0()(64bit)' 'python(abi) = 3.8' 'libpython3.8.so.1.0()(64bit)'; do
  repoquery --repo=rawhide --whatrequires "$req" --qf '%{NAME}' 2>/dev/null
done



For each package that is in the first set bot not in the other, it needs to be checked whether it still exists without the depndency:

repoquery --repo=rawhide $pkg --qf '%{NAME}' 2>/dev/null


And if not, see what version it used to have:


for fed in 30 31; do
  repoquery --releasever=$fed --repo={fedora,updates{,-testing}} $pkg --qf '%{NAME} %{EPOCH}:%{VERSION}-%{RELEASE}' 2>/dev/null
done


You get multiple versions, such as:

python3-importlib-metadata 0:0.18-1.fc30
python3-importlib-metadata 0:0.18-2.fc31
python3-importlib-metadata 0:0.23-1.fc31


You see if **the highest version** is not already obsoleted:

repoquery --repo=rawhide --whatobsoletes "python3-importlib-metadata = 0:0.23-1"


If not, it needs to be added into fedora-obsolete-packages.

(Any automation of this would be awesome.)

Comment 1 Miro Hrončok 2019-09-23 10:32:24 UTC
Alternatively, this gives all rawhide ("binary") packages, so it can be used to check if a package is gone (that is much faster):

$ repoquery --repo=rawhide -a --qf '%{NAME}'


I'm writing a script.

Comment 2 Miro Hrončok 2019-09-23 14:17:00 UTC
Script: https://github.com/hroncok/mini-mass-rebuild/blob/master/obsolete_packages.py

Process documentation: https://fedoraproject.org/wiki/SIGs/Python/UpgradingPython#Broken_upgrade_path

Output (surprisingly quite long):

# abrt-cli-ng 2.12.0-2 obsoleted by abrt-tui
%obsolete atomic 1.22.1-29
%obsolete atomic-registries 1.22.1-29
%obsolete authconfig 7.0.1-9
%obsolete blenderplayer 1:2.79b-16
%obsolete dreampie-python3 1.1.1-18
%obsolete elastic-curator 4.2.5-7
%obsolete fedora-productimg-cloud 26-5
%obsolete gfal2-python3 1.9.5-4               bz1754495
%obsolete gnome-dvb-daemon 0.2.91-0.13
%obsolete greenwave 0.9.4-3
%obsolete kaadbg 0.3.0-12
%obsolete mkdocs 0.16.3-10
%obsolete mkdocs-alabaster 0.7.4-8
%obsolete mkdocs-basic-theme 1.0.1-12
%obsolete mkdocs-bootstrap 0.1.1-11
%obsolete mkdocs-bootswatch 0.5.0-4
%obsolete mkdocs-cinder 0.9.3-10
%obsolete mkdocs-material 0.2.2-10
# nbdkit-python3-plugin 1.12.8-1 obsoleted by nbdkit-python-plugin
# openvdb-python3 6.1.0-2 obsoleted by python3-openvdb
%obsolete pintail 0.4-9
%obsolete pymol 2.1.0-5
%obsolete python-aiorpcx 0.10.5-2
%obsolete python-sphinx-autobuild 0.7.1-14
%obsolete python3-ahkab 0.18-15
%obsolete python3-ara 0.16.1-3
%obsolete python3-ara-tests 0.16.1-3
# python3-avahi 0.7-20 obsoleted by avahi
%obsolete python3-backports-unittest_mock 1.2.1-8
%obsolete python3-backports_abc 0.5-10
%obsolete python3-bash8 0.1.1-19
%obsolete python3-bitlyapi 0.1.1-21
# python3-black 19.3b0-1 obsoleted by black
%obsolete python3-bodhi3 3.14.0-2
%obsolete python3-bodhi3-client 3.14.0-2
%obsolete python3-castellan 0.5.0-8
%obsolete python3-ceilometermiddleware 0.5.0-8
%obsolete python3-cookies 2.2.1-16
%obsolete python3-curses_ex 0.3-12
%obsolete python3-cursive 0.1.2-9
%obsolete python3-deltasigma 0.2-17
# python3-detox 0.19-1 obsoleted by python3-tox
%obsolete python3-django-avatar 4.1.0-5
%obsolete python3-django-countries 5.3.1-3
%obsolete python3-django-jsonfield 2.0.2-9
%obsolete python3-django-notifications-hq 1.5.0-3
%obsolete python3-django-rest-framework-composed-permissions 0.1-10
%obsolete python3-django-stopforumspam 1.8-8
%obsolete python3-dlib 19.4-11
%obsolete python3-dpm 1.13.0-2
%obsolete python3-fabric3 1.13.1-9
%obsolete python3-fabulous 0.3.0-11
%obsolete python3-flickrapi 2.2.1-10
%obsolete python3-forensic1394 0.2-24
# python3-gmsh-private 4.1.5-2 obsoleted by python3-gmsh
%obsolete python3-googletrans 2.2.0-8
%obsolete python3-grapefruit 0.1a4-11
%obsolete python3-hardware 0.18-13
%obsolete python3-honcho 1.0.1-4
%obsolete python3-http-parser 0.8.3-22
%obsolete python3-importlib-metadata 0.23-2
%obsolete python3-kafka 1.4.3-4
%obsolete python3-keystonemiddleware 4.21.0-3
%obsolete python3-lfc 1.13.0-2
%obsolete python3-marrow-mailer 4.0.2-12
%obsolete python3-marrow-util 1.2.3-11
# python3-metakernel-bash 0.19.1-19 obsoleted by python3-metakernel
%obsolete python3-microversion-parse 0.1.3-12
# python3-nemo 4.2.0-2 obsoleted by nemo-python
%obsolete python3-nine 0.3.4-19
# python3-ntlm3 1.0.2-7 obsoleted by python3-ntlm-auth
%obsolete python3-offtrac 0.1.0-20
%obsolete python3-os-win 2.2.0-10
%obsolete python3-oslo-cache 1.28.0-4
%obsolete python3-oslo-cache-tests 1.28.0-4
%obsolete python3-oslo-messaging 8.1.2-2
%obsolete python3-oslo-messaging-tests 8.1.2-2
%obsolete python3-oslo-middleware 3.34.0-3
%obsolete python3-oslo-middleware-tests 3.34.0-3
%obsolete python3-oslo-policy 1.33.2-4
%obsolete python3-oslo-policy-tests 1.33.2-4
%obsolete python3-oslo-privsep 1.13.0-10
%obsolete python3-oslo-privsep-tests 1.13.0-10
%obsolete python3-oslo-reports 1.26.0-4
%obsolete python3-oslo-reports-tests 1.26.0-4
%obsolete python3-oslo-rootwrap 5.13.0-4
%obsolete python3-oslo-rootwrap-tests 5.13.0-4
%obsolete python3-oslo-service 1.29.0-4
%obsolete python3-oslo-service-tests 1.29.0-4
%obsolete python3-oslo-vmware 2.26.0-4
%obsolete python3-oslo-vmware-tests 2.26.0-4
%obsolete python3-osprofiler 1.11.0-8
%obsolete python3-pankoclient 0.3.0-10
%obsolete python3-pankoclient-tests 0.3.0-10
%obsolete python3-pg8000 1.12.3-3
%obsolete python3-port-for 0.4-9
%obsolete python3-pycadf 2.4.0-11
%obsolete python3-pyjf3 0.3-13
%obsolete python3-pykalman 0.9.5-25
%obsolete python3-pykde4 4.14.3-31
%obsolete python3-pypump 0.6-14
%obsolete python3-pystache 0.5.4-13
%obsolete python3-pyswip 0.2.7-6
%obsolete python3-rauth 0.7.3-8
%obsolete python3-releases 1.6.0-6
%obsolete python3-ripe-atlas-cousteau 1.3-11
%obsolete python3-ripe-atlas-sagan 1.1.11-12
%obsolete python3-seesaw 0.10.0-7
%obsolete python3-shogun 6.0.0-16
%obsolete python3-sip 4.19.18-7             bz1753069
%obsolete python3-socketIO-client 0.7.2-5
%obsolete python3-socketpool 0.5.3-16
%obsolete python3-sphinxbase 5prealpha-6
%obsolete python3-stestr-sql 2.4.0-3
# python3-syslog-ng 3.20.1-1 obsoleted by syslog-ng-python
%obsolete python3-thriftpy 0.3.9-11
%obsolete python3-tw2-jqplugins-ui 2.3.0-9
%obsolete python3-units 0.07-8
%obsolete python3-vips 8.7.4-3
# python3-virtualenv-python26 16.0.0-7 obsoleted by python3-virtualenv
%obsolete python3-windtalker 0.0.4-11
%obsolete python3-yubikey-piv-manager 1.4.2-9
%obsolete python3-zc-buildout 2.5.3-12
%obsolete python3-zipp 0.5.1-3
%obsolete python3-zope-contenttype 4.1.0-15
%obsolete python3-zope-datetime 4.1.0-13
%obsolete python3-zope-dottedname 4.1.0-16
%obsolete python3-zope-filerepresentation 4.1.0-15
%obsolete python3-zope-i18n 4.1.0-14
%obsolete python3-zope-processlifetime 2.1.0-11
%obsolete python3-zope-proxy 4.2.0-10
%obsolete python3-zope-sequencesort 4.0.1-13
%obsolete pythonqt 3.2-21
%obsolete ripe-atlas-tools 2.0.2-9
# sagemath-notebook-export 8.8-1 obsoleted by sagemath
%obsolete vint 0.3.18-4

Comment 3 Zbigniew Jędrzejewski-Szmek 2019-10-26 16:06:40 UTC
Output of script added to fedora-obsolete-packages-32-21 for rawhide.

Comment 4 Miro Hrončok 2019-10-26 22:18:14 UTC
You've added a second section with the output in https://src.fedoraproject.org/rpms/fedora-obsolete-packages/c/cab911529b892ed5bc172f376624c4950f22c278?branch=master

There is already this section at "Please collect the python 3.7 Obsoletes: here" section.

Comment 6 Ben Cotton 2020-02-11 17:50:28 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 32 development cycle.
Changing version to 32.

Comment 7 Miro Hrončok 2020-02-28 11:32:49 UTC
Pushed this before the beta freeze: https://src.fedoraproject.org/rpms/fedora-obsolete-packages/c/07de510e63e8959609fcbb419786fce72119bc6b?branch=master

Hopefully no more retired packages in Fedora 32, but we should recheck before the final freeze.

Comment 8 Miro Hrončok 2020-02-28 11:34:15 UTC
Note that the script linked above is intended for rawhide. Any changes from there should be added to fedora-obsolete-packages master branch and cherry-picked line by line to f32 as needed.

Comment 9 Fedora Update System 2020-04-17 22:52:05 UTC
FEDORA-2020-77ddbc3494 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-77ddbc3494

Comment 10 Fedora Update System 2020-04-19 04:26:48 UTC
FEDORA-2020-77ddbc3494 has been pushed to the Fedora 32 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-77ddbc3494`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-77ddbc3494

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 11 Fedora Update System 2020-04-23 23:53:00 UTC
FEDORA-2020-d833de9a38 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-d833de9a38

Comment 12 Fedora Update System 2020-04-25 12:20:47 UTC
FEDORA-2020-d833de9a38 has been pushed to the Fedora 32 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-d833de9a38`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-d833de9a38

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 13 Fedora Update System 2020-05-02 05:54:29 UTC
FEDORA-2020-fd04d74051 has been pushed to the Fedora 32 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-fd04d74051`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-fd04d74051

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 14 Fedora Update System 2020-05-06 13:41:10 UTC
FEDORA-2020-b151af48ef has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-b151af48ef

Comment 15 Fedora Update System 2020-05-07 03:10:12 UTC
FEDORA-2020-b151af48ef has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.