From Fedora Project Wiki
Churchyard (talk | contribs) No edit summary |
(Moved adjusting python(abi) after we have packages to test it on (setuptools, pip, wheel)) |
||
Line 16: | Line 16: | ||
** ready in COPR | ** ready in COPR | ||
** https://github.com/torsava/python-rpm-macros/tree/private-torsava-master | ** https://github.com/torsava/python-rpm-macros/tree/private-torsava-master | ||
* '''add platform supackages to setuptools, pip, wheel''' | * '''add platform supackages to setuptools, pip, wheel''' | ||
Line 26: | Line 22: | ||
** bootstrap build them (see python3.spec for build order) | ** bootstrap build them (see python3.spec for build order) | ||
** check if the platform-python(abi) works | ** check if the platform-python(abi) works | ||
* '''adjust the python(abi) requires/provides mechanism''' | |||
** it should require/provide platform-python(abi) for stuff in /usr/lib(64)/platform-python | |||
** the code lives in the rpm package | |||
* '''rebuild platform-python with rewheel''' | * '''rebuild platform-python with rewheel''' |
Revision as of 14:16, 3 August 2017
Platform Python Stack: Roamap
There should be a copr repo where this all happens. In order to have permission, it has been created in the python-sig group: https://copr.fedorainfracloud.org/coprs/g/python/platform-python-stack/
- create the platform-python package
- by cstratak
- stdlib and site-packages installs to /usr/lib(64)/platform-python3.6
- /usr/libexec/platform-python
- python3-config to platform-python-config, make it work
- libpython.so to libplatformpython.so, make it work
- probably drop tkinter and tools until proven needed
- create macros from the example specfile
- by torsava
- put them to python-rpm-macros
- ready in COPR
- https://github.com/torsava/python-rpm-macros/tree/private-torsava-master
- add platform supackages to setuptools, pip, wheel
- by torsava
- add bcond conditionals for all 3 subpackages: with_python2, with_python3, with_platform_python
- bootstrap build them (see python3.spec for build order)
- check if the platform-python(abi) works
- adjust the python(abi) requires/provides mechanism
- it should require/provide platform-python(abi) for stuff in /usr/lib(64)/platform-python
- the code lives in the rpm package
- rebuild platform-python with rewheel
- start adding platform-python subpackages up until dnf
- add bcond conditionals for all 3 subpackages: with_python2, with_python3, with_platform_python
- if present, remove the system python abi macro and/or shabeng adjusting for system-python
- adjust dnf
- make
/usr/bin/dnf
use/usr/libexec/platform-python
, make it require platform-python-dnf instead of python3-dnf
- make
- grep the specfiles for system-python abi macro and or shebang requirement and remove it
- http://pkgs.fedoraproject.org/repo/rpm-specs-latest.tar.xz
- there are packages not covered by previous steps but using it
- probably not worth doing in copr, wait for rawhide
$ grep --files-with-matches system-python * dnf.spec freeipa.spec gtk2.spec python3.spec python-rpm-macros.spec python-six.spec python-virtualenvcontext.spec rpm.spec
$ dnf repoquery --whatrequires system-python anaconda-core-0:26.21.11-1.fc26.x86_64 dnf-yum-0:2.6.2-1.fc26.noarch gerrymander-0:1.5-6.fc26.noarch global-0:6.5.6-1.fc26.x86_64 hovercraft-0:2.2-1.fc26.noarch httpie-0:0.9.4-7.fc26.noarch onionshare-0:1.0-1.fc26.noarch python-ladon-0:0.9.38-3.fc26.noarch python3-alembic-0:0.9.1-1.fc26.noarch python3-dnf-0:2.6.2-1.fc26.noarch python3-grapefruit-0:0.1a4-5.fc26.noarch python3-hawkey-0:0.9.3-1.fc26.x86_64 python3-iniparse-0:0.4-24.fc26.noarch python3-junitxml-0:0.7-10.fc26.noarch python3-libcomps-0:0.1.8-3.fc26.x86_64 python3-librepo-0:1.7.20-3.fc26.x86_64 python3-os-testr-0:0.7.0-5.fc26.noarch python3-prelude-correlator-0:3.1.0-2.fc26.noarch python3-pygpgme-0:0.3-22.fc26.x86_64 python3-pywbem-0:0.10.0-1.fc26.noarch python3-raven-0:6.0.0-1.fc26.noarch python3-rpm-0:4.13.0.1-5.fc26.x86_64 python3-six-0:1.10.0-9.fc26.noarch python3-websocket-client-0:0.40.0-1.fc26.noarch target-restore-0:2.1.fb63-1.fc26.noarch targetcli-0:2.1.fb46-1.fc26.noarch
$ dnf repoquery --whatrequires 'system-python(abi)' python3-dnf-0:2.6.2-1.fc26.noarch python3-hawkey-0:0.9.3-1.fc26.x86_64 python3-iniparse-0:0.4-24.fc26.noarch python3-libcomps-0:0.1.8-3.fc26.x86_64 python3-librepo-0:1.7.20-3.fc26.x86_64 python3-pygpgme-0:0.3-22.fc26.x86_64 python3-rpm-0:4.13.0.1-5.fc26.x86_64 python3-six-0:1.10.0-9.fc26.noarch