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

pywlroots wheel contains unnecessary libs #182

Open
heuer opened this issue Apr 17, 2024 · 4 comments
Open

pywlroots wheel contains unnecessary libs #182

heuer opened this issue Apr 17, 2024 · 4 comments

Comments

@heuer
Copy link
Contributor

heuer commented Apr 17, 2024

I updated my project to pywlroots 0.16.7 and got the following error:

DRI driver not from this Mesa build ('24.0.5' vs '23.1.4')
failed to bind extensions
DRI driver not from this Mesa build ('24.0.5' vs '23.1.4')
failed to bind extensions
DRI driver not from this Mesa build ('24.0.5' vs '23.1.4')
failed to bind extensions
DRI driver not from this Mesa build ('24.0.5' vs '23.1.4')
failed to bind extensions
[render/allocator/gbm.c:205] gbm_create_device failed
[render/allocator/allocator.c:143] Failed to create allocator
Fatal Python error: Segmentation fault

Current thread 0x00007fbe730fe740 (most recent call first):
  <no Python frame>

Extension modules: _cffi_backend (total: 1)

Installing from the source package works:

pip install --no-binary :all: pywlroots

The reason for the above mentioned error is, that the wheel provides libs which do not necessarily match the host machine:

ls pywlroots.libs
libblkid-7ac37cd8.so.1.1.0           libgpg-error-d4e115d0.so.0.24.2  libseat-a44803ed.so.1                 libxcb-dri3-74eae955.so.0.0.0
libcap-16fca4d2.so.2.48              libgudev-1-78686337.0.so.0.2.0   libselinux-64a010fa.so.1              libxcb-icccm-9453e4f7.so.4.0.0
libdrm-6768d3b2.so.2.4.0             libhogweed-cd4c53be.so.4.5       libsystemd-8bc3ba84.so.0.23.0         libxcb-present-9d0789f6.so.0.0.0
libEGL-976e38d5.so.1.1.0             libidn2-2f4a5893.so.0.3.6        libtasn1-222cca92.so.6.5.5            libxcb-randr-562554c2.so.0.1.0
libevdev-bed09dca.so.2.3.0           libinput-a3c39512.so.10.13.0     libudev-6ca67360.so.1.6.11            libxcb-render-161c0eb5.so.0.0.0
libffi-3a37023a.so.6.0.2             liblz4-a5753129.so.1.8.3         libunistring-05abdd40.so.2.1.0        libxcb-render-util-f04ad2c5.so.0.0.0
libgbm-d69d73a7.so.1.0.0             liblzma-51a76f52.so.5.2.4        libuuid-48d6f845.so.1.3.0             libxcb-res-d1051bd6.so.0.0.0
libgcrypt-a1b5cc4c.so.20.2.5         libmount-a0fce023.so.1.1.0       libwacom-a563e81a.so.2.6.1            libxcb-shm-0be6dfbf.so.0.0.0
libgio-2-fbc401ee.0.so.0.5600.4      libmtdev-95d9e17e.so.1.0.0       libwayland-client-4f0c8158.so.0.22.0  libxcb-xfixes-6de855b8.so.0.0.0
libGLdispatch-228223fa.so.0.0.0      libnettle-37944285.so.6.5        libwayland-server-ba005aa1.so.0.22.0  libxcb-xinput-5c69f591.so.0.1.0
libGLESv2-3f2b8a3d.so.2.1.0          libp11-kit-4d4a5b6d.so.0.3.0     libwlroots-9afe2e70.so.11             libxkbcommon-de59cad2.so.0.0.0
libgmodule-2-b0ca77de.0.so.0.5600.4  libpcre-0dd207b5.so.1.2.10       libXau-154567c4.so.6.0.0
libgmp-452f15e0.so.10.3.2            libpcre2-8-516f4c9d.so.0.7.1     libxcb-5ddf6756.so.1.1.0
libgnutls-5ac79744.so.30.28.2        libpixman-1-af926b34.so.0.42.0   libxcb-composite-84417425.so.0.0.0

Solution: Remove the libs from the wheel.

@heuer
Copy link
Contributor Author

heuer commented Apr 17, 2024

Hmmm... I looked at the previous releases: pywlroots always had the "libs" directory with the libraries... Strange that this wasn't a problem for my installation before.

@heuer
Copy link
Contributor Author

heuer commented Apr 17, 2024

The pywlroots-0.16.7-cp311-cp311-linux_aarch64.whl comes w/o the libs.

It just contains the _ffi.abi3.so (in the wlroots directory):

drwxr-xr-x 5 user user    4096 17. Apr 18:24 .
drwxr-xr-x 3 user user    4096 17. Apr 18:25 ..
-rw-r--r-- 1 user user    1200 17. Apr 03:39 allocator.py
-rw-r--r-- 1 user user    3979 17. Apr 03:39 backend.py
-rw-r--r-- 1 user user      20 17. Apr 07:45 _build.py
-rwxr-xr-x 1 user user 1092288 17. Apr 07:45 _ffi.abi3.so
-rw-r--r-- 1 user user   95775 17. Apr 03:39 ffi_build.py
-rw-r--r-- 1 user user    1150 17. Apr 03:39 helper.py
drwxr-xr-x 2 user user    4096 17. Apr 18:24 include
-rw-r--r-- 1 user user    2650 17. Apr 03:39 __init__.py
-rw-r--r-- 1 user user       0 17. Apr 03:39 py.typed
-rw-r--r-- 1 user user    3934 17. Apr 03:39 renderer.py
drwxr-xr-x 2 user user    4096 17. Apr 18:24 util
-rw-r--r-- 1 user user      50 17. Apr 03:39 version.py
drwxr-xr-x 2 user user    4096 17. Apr 18:24 wlr_types
-rw-r--r-- 1 user user   13827 17. Apr 03:39 xwayland.py

So, I wonder why other wheels ship with the libs

@heuer
Copy link
Contributor Author

heuer commented May 7, 2024

pywlroots 0.16.8 has the same problem. I cannot install pywlroots with pip unless I explicitly specify that the source code package should be used because the shipped libraries in the /lib subdirectory are incompatible with my system. And libraries like "libsystemd" or "libselinux" have nothing to do with the function of wlroots/pywlroots.

Aside from the fact that the libraries may be incompatible with the host system, this could also pose legal problems since pywlroots is under the NCSA license, which may not apply to all libraries distributed with pywlroots.

@heuer heuer changed the title pywlroots 0.16.7: Wheel contains unnecessary libs pywlroots wheel contains unnecessary libs May 7, 2024
@heuer heuer mentioned this issue May 7, 2024
@heuer
Copy link
Contributor Author

heuer commented May 13, 2024

Still relevant for 0.17

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

No branches or pull requests

1 participant