Cosmic-Chatter / Exhibitera

Free and open-source software for building and controlling museum exhibits.
MIT License
1 stars 1 forks source link

Issue when building Hub v5 on Raspberry Pi 4 -- argon2_cffi_bindings pulled in contains .so with GLIBC incompatibility #10

Open David-S-Morgan opened 2 weeks ago

David-S-Morgan commented 2 weeks ago

I've been able to compile Exhibitera_Hub on a Raspberry Pi 4 with the default Raspbian 11 (bullseye) distribution without any errors. However, the resulting binary fails to run, due to a requirement (argon2_cffi_bindings) being pulled in, which includes a pre-compiled shared library (_ffi.abi3.so) that appears to be incompatible.

From the output of pyinstaller (no error indicated):

Collecting argon2-cffi-bindings (from argon2-cffi->-r /home/dmorgan/MaritimeMuseum/Software/Exhibitera/Exhibitera-hub-build-rpi4//requirements.txt (line 2))
  Using cached https://www.piwheels.org/simple/argon2-cffi-bindings/argon2_cffi_bindings-21.2.0-cp311-abi3-linux_armv7l.whl

However, the version of _ffi.abi3.so being included looks like it requires at least GLIBC v2.34. When running the resulting Exhibitera_hub binary:

Traceback (most recent call last):
  File "Exhibitera_Hub.py", line 47, in <module>
  File "PyInstaller/loader/pyimod02_importers.py", line 419, in exec_module
  File "exhibitera_users.py", line 9, in <module>
  File "PyInstaller/loader/pyimod02_importers.py", line 419, in exec_module
  File "argon2/__init__.py", line 7, in <module>
  File "PyInstaller/loader/pyimod02_importers.py", line 419, in exec_module
  File "argon2/low_level.py", line 17, in <module>
  File "PyInstaller/loader/pyimod02_importers.py", line 419, in exec_module
  File "_argon2_cffi_bindings/__init__.py", line 3, in <module>
ImportError: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.34' not found (required by /tmp/_MEI4yfZDn/_argon2_cffi_bindings/_[ffi.abi3.so](http://ffi.abi3.so/))
[23226] Failed to execute script 'Exhibitera_Hub' due to unhandled exception!

RPi 4 has only GLIBC 2.31:

GNU C Library (Debian GLIBC 2.31-13+rpt2+rpi1+deb11u8) stable release version 2.31.
Copyright (C) 2020 Free Software Foundation, Inc.

As @forceflow1049 pointed out to me, an RPi 4 is not an ideal platform on which to run Hub, but might be good to fix this in some fashion. I did verify that this seems to be the only issue to getting Hub running, by installing python3-argon2 via the apt repository, manually copying over _ffi.abi3.so to the Hub build directory and redoing the build.