seemoo-lab / opendrop

An open Apple AirDrop implementation written in Python
https://owlink.org
GNU General Public License v3.0
8.48k stars 265 forks source link

AttributeError: /usr/bin/python3: undefined symbol: archive_version_number #118

Closed OPiElix closed 1 month ago

OPiElix commented 1 month ago

I installed Opendrop on Raspberry Pi 4B using Raspberry Pi OS lite 64-bit (Debian Bookworm) from this git using instructions from this repo. But I cant run it because this error keeps showing up: Traceback (most recent call last): File "/home/opilite/.local/bin/opendrop", line 5, in <module> from opendrop.cli import main File "/home/opilite/.local/lib/python3.11/site-packages/opendrop/cli.py", line 28, in <module> from .client import AirDropBrowser, AirDropClient File "/home/opilite/.local/lib/python3.11/site-packages/opendrop/client.py", line 30, in <module> import libarchive File "/home/opilite/.local/lib/python3.11/site-packages/libarchive/__init__.py", line 1, in <module> from .entry import ArchiveEntry File "/home/opilite/.local/lib/python3.11/site-packages/libarchive/entry.py", line 6, in <module> from . import ffi File "/home/opilite/.local/lib/python3.11/site-packages/libarchive/ffi.py", line 158, in <module> version_number = ffi('version_number', [], c_int, check_int) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/opilite/.local/lib/python3.11/site-packages/libarchive/ffi.py", line 102, in ffi f = getattr(libarchive, 'archive_'+name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/ctypes/__init__.py", line 389, in __getattr__ func = self.__getitem__(name) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/ctypes/__init__.py", line 394, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: /usr/bin/python3: undefined symbol: archive_version_number

python3 --version shows this: Python 3.11.2

What should I do?

P.S.: If you need any other info tell me and I'll post it

OPiElix commented 1 month ago

I am looking in detail at the error and it seems to origin from libarchive/ffi.py. I am not good in Python (noob-level). Can someone with experience look (or help me do it) into the error?

OPiElix commented 1 month ago

I figured it out:

I first downgraded libarchive-c to 2.9, pip3 uninstall libarchive-c and pip3 install libarchive-c==2.9 --no-cache-dir

Then, to solve the following AttributeError, I installed diffoscope through apt (somehow it solves the error) sudo apt install diffoscope -y,

Then, if you get this: RuntimeError: Interface awdl0 does not have an IPv6 address. Make sure thatowlis running., Follow instructions from Issue#72