Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does not install into a venv on Ubuntu 20.04 #125

Open
jecompton opened this issue Feb 22, 2023 · 4 comments
Open

Does not install into a venv on Ubuntu 20.04 #125

jecompton opened this issue Feb 22, 2023 · 4 comments

Comments

@jecompton
Copy link

The README.md says I can just apt install the headers. However, the only systemd header package available is libsystemd-dev. The others, like libsystemd-journal-dev and libsystemd-daemon-dev do not exist for 20.04, so I can't install them.

If I try to pip install into my venv anyway, I get a bunch of compilation errors (as I figured). They seem related to unicode. Anyway, here's the last lines showing the pip install crashing:

      cython_utility:179:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
      In file included from /home/jecompt/.pyenv/versions/3.9.5/include/python3.9/unicodeobject.h:1026,
                       from /home/jecompt/.pyenv/versions/3.9.5/include/python3.9/Python.h:97,
                       from systemd/reader.c:23:
      /home/jecompt/.pyenv/versions/3.9.5/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here
        580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
            |                                             ^~~~~~~~~~~~~~~~~~~
      cython_utility:179:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
      In file included from /home/jecompt/.pyenv/versions/3.9.5/include/python3.9/unicodeobject.h:1026,
                       from /home/jecompt/.pyenv/versions/3.9.5/include/python3.9/Python.h:97,
                       from systemd/reader.c:23:
      /home/jecompt/.pyenv/versions/3.9.5/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
        446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
            |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> systemd
@thn80
Copy link

thn80 commented Oct 31, 2023

I am having the same issue on Debian 12.

@axoroll7
Copy link

axoroll7 commented Jan 2, 2024

I am having the same issue on Debian 12.

It works for me on Debian 12, with "pkg-config", "libsystemd-dev", and "python3-dev".

EDIT : With Python 3.11.2
EDIT 2 : Python 3.11.2 from "python3-full"

@ssbarnea
Copy link

ssbarnea commented Aug 6, 2024

To reinstate it, it seems that the same fails on Ubuntu 24.04 too with py311 (deadsnakes), even if python was installed in full python3.11-full. Still the errors is a little bit different:

Building wheels for collected packages: systemd-python
  Building wheel for systemd-python (setup.py) ... error
  Running setup.py clean for systemd-python
Failed to build systemd-python
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [104 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-aarch64-cpython-311
      creating build/lib.linux-aarch64-cpython-311/systemd
      copying systemd/__init__.py -> build/lib.linux-aarch64-cpython-311/systemd
      copying systemd/journal.py -> build/lib.linux-aarch64-cpython-311/systemd
      copying systemd/daemon.py -> build/lib.linux-aarch64-cpython-311/systemd
      creating build/lib.linux-aarch64-cpython-311/systemd/test
      copying systemd/test/test_daemon.py -> build/lib.linux-aarch64-cpython-311/systemd/test
      copying systemd/test/test_journal.py -> build/lib.linux-aarch64-cpython-311/systemd/test
      copying systemd/test/test_login.py -> build/lib.linux-aarch64-cpython-311/systemd/test
      copying systemd/test/test_id128.py -> build/lib.linux-aarch64-cpython-311/systemd/test
      running build_ext
      building 'systemd/_journal' extension
      creating build/temp.linux-aarch64-cpython-311
      creating build/temp.linux-aarch64-cpython-311/systemd
      aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -g -fwrapv -O2 -fPIC -DPACKAGE_VERSION=\"235\" -DLIBSYSTEMD_VERSION=255 -I/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/include -I/usr/include/python3.11 -c systemd/_journal.c -o build/temp.linux-aarch64-cpython-311/systemd/_journal.o -std=c99 -Werror=implicit-function-declaration
      aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -g -fwrapv -O2 -fPIC -DPACKAGE_VERSION=\"235\" -DLIBSYSTEMD_VERSION=255 -I/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/include -I/usr/include/python3.11 -c systemd/pyutil.c -o build/temp.linux-aarch64-cpython-311/systemd/pyutil.o -std=c99 -Werror=implicit-function-declaration
      aarch64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -g -fwrapv -O2 build/temp.linux-aarch64-cpython-311/systemd/_journal.o build/temp.linux-aarch64-cpython-311/systemd/pyutil.o -L/usr/lib/aarch64-linux-gnu -lsystemd -o build/lib.linux-aarch64-cpython-311/systemd/_journal.cpython-311-aarch64-linux-gnu.so
      building 'systemd/_reader' extension
      aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -g -fwrapv -O2 -fPIC -DPACKAGE_VERSION=\"235\" -DLIBSYSTEMD_VERSION=255 -I/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/include -I/usr/include/python3.11 -c systemd/_reader.c -o build/temp.linux-aarch64-cpython-311/systemd/_reader.o -std=c99 -Werror=implicit-function-declaration
      aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -g -fwrapv -O2 -fPIC -DPACKAGE_VERSION=\"235\" -DLIBSYSTEMD_VERSION=255 -I/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/include -I/usr/include/python3.11 -c systemd/pyutil.c -o build/temp.linux-aarch64-cpython-311/systemd/pyutil.o -std=c99 -Werror=implicit-function-declaration
      aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -g -fwrapv -O2 -fPIC -DPACKAGE_VERSION=\"235\" -DLIBSYSTEMD_VERSION=255 -I/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/include -I/usr/include/python3.11 -c systemd/strv.c -o build/temp.linux-aarch64-cpython-311/systemd/strv.o -std=c99 -Werror=implicit-function-declaration
      aarch64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -g -fwrapv -O2 build/temp.linux-aarch64-cpython-311/systemd/_reader.o build/temp.linux-aarch64-cpython-311/systemd/pyutil.o build/temp.linux-aarch64-cpython-311/systemd/strv.o -L/usr/lib/aarch64-linux-gnu -lsystemd -o build/lib.linux-aarch64-cpython-311/systemd/_reader.cpython-311-aarch64-linux-gnu.so
      building 'systemd/_daemon' extension
      aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -g -fwrapv -O2 -fPIC -DPACKAGE_VERSION=\"235\" -DLIBSYSTEMD_VERSION=255 -I/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/include -I/usr/include/python3.11 -c systemd/_daemon.c -o build/temp.linux-aarch64-cpython-311/systemd/_daemon.o -std=c99 -Werror=implicit-function-declaration
      aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -g -fwrapv -O2 -fPIC -DPACKAGE_VERSION=\"235\" -DLIBSYSTEMD_VERSION=255 -I/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/include -I/usr/include/python3.11 -c systemd/pyutil.c -o build/temp.linux-aarch64-cpython-311/systemd/pyutil.o -std=c99 -Werror=implicit-function-declaration
      aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -g -fwrapv -O2 -fPIC -DPACKAGE_VERSION=\"235\" -DLIBSYSTEMD_VERSION=255 -I/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/include -I/usr/include/python3.11 -c systemd/util.c -o build/temp.linux-aarch64-cpython-311/systemd/util.o -std=c99 -Werror=implicit-function-declaration
      aarch64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -g -fwrapv -O2 build/temp.linux-aarch64-cpython-311/systemd/_daemon.o build/temp.linux-aarch64-cpython-311/systemd/pyutil.o build/temp.linux-aarch64-cpython-311/systemd/util.o -L/usr/lib/aarch64-linux-gnu -lsystemd -o build/lib.linux-aarch64-cpython-311/systemd/_daemon.cpython-311-aarch64-linux-gnu.so
      building 'systemd/id128' extension
      aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -g -fwrapv -O2 -fPIC -DPACKAGE_VERSION=\"235\" -DLIBSYSTEMD_VERSION=255 -I/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/include -I/usr/include/python3.11 -c systemd/id128.c -o build/temp.linux-aarch64-cpython-311/systemd/id128.o -std=c99 -Werror=implicit-function-declaration
      aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -g -fwrapv -O2 -fPIC -DPACKAGE_VERSION=\"235\" -DLIBSYSTEMD_VERSION=255 -I/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/include -I/usr/include/python3.11 -c systemd/pyutil.c -o build/temp.linux-aarch64-cpython-311/systemd/pyutil.o -std=c99 -Werror=implicit-function-declaration
      aarch64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -g -fwrapv -O2 build/temp.linux-aarch64-cpython-311/systemd/id128.o build/temp.linux-aarch64-cpython-311/systemd/pyutil.o -L/usr/lib/aarch64-linux-gnu -lsystemd -o build/lib.linux-aarch64-cpython-311/systemd/id128.cpython-311-aarch64-linux-gnu.so
      building 'systemd/login' extension
      aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -g -fwrapv -O2 -fPIC -DPACKAGE_VERSION=\"235\" -DLIBSYSTEMD_VERSION=255 -I/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/include -I/usr/include/python3.11 -c systemd/login.c -o build/temp.linux-aarch64-cpython-311/systemd/login.o -std=c99 -Werror=implicit-function-declaration
      aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -g -fwrapv -O2 -fPIC -DPACKAGE_VERSION=\"235\" -DLIBSYSTEMD_VERSION=255 -I/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/include -I/usr/include/python3.11 -c systemd/pyutil.c -o build/temp.linux-aarch64-cpython-311/systemd/pyutil.o -std=c99 -Werror=implicit-function-declaration
      aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -g -fwrapv -O2 -fPIC -DPACKAGE_VERSION=\"235\" -DLIBSYSTEMD_VERSION=255 -I/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/include -I/usr/include/python3.11 -c systemd/strv.c -o build/temp.linux-aarch64-cpython-311/systemd/strv.o -std=c99 -Werror=implicit-function-declaration
      aarch64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -g -fwrapv -O2 build/temp.linux-aarch64-cpython-311/systemd/login.o build/temp.linux-aarch64-cpython-311/systemd/pyutil.o build/temp.linux-aarch64-cpython-311/systemd/strv.o -L/usr/lib/aarch64-linux-gnu -lsystemd -o build/lib.linux-aarch64-cpython-311/systemd/login.cpython-311-aarch64-linux-gnu.so
      /media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
      !!

              ********************************************************************************
              Please avoid running ``setup.py`` directly.
              Instead, use pypa/build, pypa/installer or other
              standards-based tools.

              See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
              ********************************************************************************

      !!
        self.initialize_options()
      installing to build/bdist.linux-aarch64/wheel
      running install
      running install_lib
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-5orjisse/systemd-python_bfb90fba293f41529c2bb525c79f69f9/setup.py", line 79, in <module>
          setup (name = 'systemd-python',
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/__init__.py", line 107, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/dist.py", line 1233, in run_command
          super().run_command(command)
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/wheel/bdist_wheel.py", line 403, in run
          self.run_command("install")
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/dist.py", line 1233, in run_command
          super().run_command(command)
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/command/install.py", line 78, in run
          return orig.install.run(self)
                 ^^^^^^^^^^^^^^^^^^^^^^
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/_distutils/command/install.py", line 708, in run
          self.run_command(cmd_name)
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/dist.py", line 1233, in run_command
          super().run_command(command)
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 987, in run_command
          cmd_obj.ensure_finalized()
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 111, in ensure_finalized
          self.finalize_options()
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/command/install_lib.py", line 17, in finalize_options
          self.set_undefined_options('install',('install_layout','install_layout'))
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 296, in set_undefined_options
          setattr(self, dst_option, getattr(src_cmd_obj, src_option))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/media/psf/c/a/ansible_collections/ansible/eda/.tox/u1/py311-unit/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 107, in __getattr__
          raise AttributeError(attr)
      AttributeError: install_layout. Did you mean: 'install_platlib'?
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.

@ssbarnea
Copy link

ssbarnea commented Aug 6, 2024

Here is an interesting discovery:

# this fails to install:
pip==24.0
setuptools==68.1.2
wheel==0.42.0

# this succeeds installing:
pip==24.2
setuptools==72.1.0
systemd-python==235
wheel==0.44.0

The tricky bit is that we do not have much control over which versions of these build deps are installed by default inside a new venv, especially when using a testing framework such tox. it should be noted that these do not see too old either.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

4 participants