From Fedora Project Wiki
Churchyard (talk | contribs) No edit summary |
|||
(9 intermediate revisions by 2 users not shown) | |||
Line 30: | Line 30: | ||
* '''create macros from the example specfile''' | * '''create macros from the example specfile''' | ||
** by '''torsava''' | ** by '''torsava''' | ||
** <u> | ** <u>done</u> | ||
** put them to python-rpm-macros | ** put them to python-rpm-macros | ||
** https://github.com/torsava/python-rpm-macros/tree/private-torsava-master | ** https://github.com/torsava/python-rpm-macros/tree/private-torsava-master | ||
Line 36: | Line 36: | ||
* '''adjust the python(abi) requires/provides mechanism''' | * '''adjust the python(abi) requires/provides mechanism''' | ||
** by '''churchyard''' / '''mhroncok''' | ** by '''churchyard''' / '''mhroncok''' | ||
** <u> | ** <u>done</u> | ||
** patch at https://github.com/hroncok/rpm/commits/platform-python | ** patch at https://github.com/hroncok/rpm/commits/platform-python | ||
** it should require/provide platform-python(abi) for stuff in /usr/lib(64)/platform-python | ** it should require/provide platform-python(abi) for stuff in /usr/lib(64)/platform-python | ||
** the code lives in the rpm package: https://github.com/rpm-software-management/rpm/blob/master/scripts/pythondeps.sh | ** the code lives in the rpm package: https://github.com/rpm-software-management/rpm/blob/master/scripts/pythondeps.sh | ||
** this is part of python-rpm-generators package! | |||
** LATER make python-rpm-generators run on platform python MAYBE? | |||
* '''adjust pybytecompile script''' | * '''adjust pybytecompile script''' | ||
** should bytecompile stuff in /usr/lib/platform-python3.X with /usr/libexec/platform-python3.X | ** should bytecompile stuff in /usr/lib/platform-python3.X with /usr/libexec/platform-python3.X | ||
** by '''churchyard''' / '''mhroncok''' | ** by '''churchyard''' / '''mhroncok''' | ||
** <u> | ** <u>done</u> | ||
** patch at https://github.com/hroncok/rpm/commits/platform-python | ** patch at https://github.com/hroncok/rpm/commits/platform-python | ||
* '''start adding platform-python subpackages up until dnf''' | * '''start adding platform-python subpackages up until dnf''' | ||
** <u>done</u> | |||
** add bcond conditionals for all 3 subpackages: <code>%bcond_without python2</code>, python3, platform_python | ** add bcond conditionals for all 3 subpackages: <code>%bcond_without python2</code>, python3, platform_python | ||
** if present, remove the system python abi macro and/or shabeng adjusting for system-python | ** if present, remove the system python abi macro and/or shabeng adjusting for system-python | ||
Line 58: | Line 59: | ||
* '''adjust dnf''' | * '''adjust dnf''' | ||
** make <code>/usr/bin/dnf</code> use <code>/usr/libexec/platform-python</code>, make it require platform-python-dnf instead of python3-dnf | ** make <code>/usr/bin/dnf</code> use <code>/usr/libexec/platform-python</code>, make it require platform-python-dnf instead of python3-dnf | ||
** <u>done</u> | |||
* '''remove system-python''' | |||
** by '''churchyard''' / '''mhroncok''' | |||
** <u>done</u> | |||
* '''grep the specfiles for system-python abi macro and or shebang requirement and remove it''' | * '''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 | ** http://pkgs.fedoraproject.org/repo/rpm-specs-latest.tar.xz | ||
** there are packages not covered by previous steps but using it | ** there are packages not covered by previous steps but using it | ||
** | ** by '''churchyard''' / '''mhroncok''' | ||
** <u>done</u> | |||
* '''cleanup''' | * '''cleanup''' | ||
** remove '/usr/lib64/python36.zip' from platform-python's sys.path | |||
** Revisit bundled setuptools | |||
Latest revision as of 09:37, 1 September 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
- done
- /usr/libexec/platform-python
- done
- python3-config to platform-python-config, make it work
- excluded the python-config binaries for now
- libpython.so to libplatform-python.so, make it work
- done
- probably drop tkinter and tools until proven needed
- stalled, it can be done later
- Make Platform-Python build without bootstrapping:
- drop dependency on setuptools, pip, wheel
- undo de-bundling of setuptools and pip, but delete the bundled pip wheel, making Python crash when
-m venv
is invoked- pip wheel is removed, setuptools is there
- LATER make it not crash, but report a decent error message such as "Creating virtual environment with platform-python is not supported and is disabled. Use python3 instead."
- Enable the test suite
- Two test case failures so far
- One related to systemd-nspawn and the other to sysconfig, both can be safely skipped
- Two test case failures so far
- Enable profile guided optimizations and link time optimizations
- Done
- /usr/libexec/platform-python3.X
- Done
- create macros from the example specfile
- by torsava
- done
- put them to python-rpm-macros
- https://github.com/torsava/python-rpm-macros/tree/private-torsava-master
- adjust the python(abi) requires/provides mechanism
- by churchyard / mhroncok
- done
- patch at https://github.com/hroncok/rpm/commits/platform-python
- it should require/provide platform-python(abi) for stuff in /usr/lib(64)/platform-python
- the code lives in the rpm package: https://github.com/rpm-software-management/rpm/blob/master/scripts/pythondeps.sh
- this is part of python-rpm-generators package!
- LATER make python-rpm-generators run on platform python MAYBE?
- adjust pybytecompile script
- should bytecompile stuff in /usr/lib/platform-python3.X with /usr/libexec/platform-python3.X
- by churchyard / mhroncok
- done
- patch at https://github.com/hroncok/rpm/commits/platform-python
- start adding platform-python subpackages up until dnf
- done
- add bcond conditionals for all 3 subpackages:
%bcond_without python2
, python3, platform_python - if present, remove the system python abi macro and/or shabeng adjusting for system-python
- check if the platform-python(abi) works
- adjust dnf
- make
/usr/bin/dnf
use/usr/libexec/platform-python
, make it require platform-python-dnf instead of python3-dnf - done
- make
- remove system-python
- by churchyard / mhroncok
- done
- 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
- by churchyard / mhroncok
- done
- cleanup
- remove '/usr/lib64/python36.zip' from platform-python's sys.path
- Revisit bundled setuptools
Bootstrap order for Fedora
As we build stuff in copr, record it here so we know how to build it in Fedora:
https://etherpad.gnome.org/p/Fedora-Platform-Python-Bootstrap