pywlroots
pywlroots copied to clipboard
pywlroots wheel contains unnecessary libs
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.
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.
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
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.
Still relevant for 0.17