component/systemd: Version up
Switch to pure meson build system and adapt configuration for SlapOS requirements. Support multiarch env by simply linking from lib64. Version 249.6 incorporates fix from https://bugs.gentoo.org/824026 for: meson.build: ERROR: Object <[BooleanHolder] holds [bool]: False> of type bool does not support the +
-
Owner
Why
--no-index
and separate sections to download Jinja2 & MarkupSafe ? The problem is that 0895cef8 is wrong because the condition does not apply on the Python version that's used to install systemd. I mean that if [python3] default to 3.8+ and buildout runs Python 2, it's the recent MarkupSafe that must be used. Currently, the NEO-STRESS test suite fails because of that.I don't really want to commit:
--- a/component/systemd/buildout.cfg +++ b/component/systemd/buildout.cfg @@ -19,7 +19,11 @@ url = https://files.pythonhosted.org/packages/bf/10/ff66fea6d1788c458663a84d8878 filename = MarkupSafe-2.0.1.tar.gz md5sum = 892e0fefa3c488387e5cc0cad2daa523 -[systemd-markupsafe-download:sys.version_info < (3,8)] +# WARNING: [systemd-markupsafe-download] is only used by systemd-python and +# when buildout runs with Python 2, MarkupSafe is installed with +# [python3] which default to Python 3.8+. Even if Python 2 can only +# install version 1.0, that's the other version we must use. +[systemd-markupsafe-download:python3 and sys.version_info < (3,8)] url = https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/${:filename} filename = MarkupSafe-1.0.tar.gz md5sum = 2fcedc9284d50e577b5192e8e3578355
If not perfect, better keep things simple.
If we could just write
MarkupSafe=2.0.1
&MarkupSafe=1.0
(without everything else that appears in the download sections), it should be easy to have everything inside [systemd-python] and then choose depending on the actual version of python (${systemd-python:python} would be the name of the python section, from which we'd get the executable and the version).Maybe we could use buildout API to download dependencies.
/cc @tleymone
-
Owner
For example:
Installing systemd-python. Ignoring MarkupSafe: markers 'python_version < "3.8"' don't match your environment Collecting Jinja2==2.11.3 Using cached Jinja2-2.11.3-py2.py3-none-any.whl (125 kB) Collecting MarkupSafe==2.0.1 Using cached MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl (30 kB) Installing collected packages: MarkupSafe, Jinja2 Successfully installed Jinja2-2.11.3 MarkupSafe-2.0.1 WARNING: You are using pip version 20.2.3; however, version 22.2.1 is available. You should consider upgrading via the '/srv/slapgrid/slappart93/srv/runner/shared/systemd-python/3ab3200afe9411d4dde2d59f4a090de6/bin/python3 -m pip install --upgrade pip' command. Found existing installation: pip 20.2.3 Uninstalling pip-20.2.3: Successfully uninstalled pip-20.2.3 Found existing installation: setuptools 49.2.1 Uninstalling setuptools-49.2.1: Successfully uninstalled setuptools-49.2.1
-
Owner
However, I start to think we do too much for Python 2. I still need qemu with Python 2 for NEO but no ceph. On old OS, it currently works because ceph is skipped but on Debian 10, [librbd] fails to build due to missing Python 3.
What about disabling ceph buildout runs with Python 2 and then stopping to use venvs in systemd/ceph ?