RUB-SysSec / DroneSecurity

DroneSecurity (NDSS 2023)
GNU Affero General Public License v3.0
944 stars 173 forks source link

Dependency hell #16

Open dk5ras opened 1 year ago

dk5ras commented 1 year ago

Hi,

I was not able to use the software, I always run into some numpy/scipy dependency hell. As not being a coding but a hardware guy, somehow I am stuck. Is there a recommended Linux distribution that should fulfil the expectations without too much fiddling? Latest Kubuntu obviously make trouble.

mrlnc commented 1 year ago

Thanks for the report. It looks like our pinned versions in requirements.txt aren't compatible with Ubuntu 23.04 (shipping Python 3.11.2).

When removing the pinned versions, pip will try to install whatever version is available. Replace requirements.txt with:

bitarray
contourpy
crcmod
cycler
fonttools
kiwisolver
matplotlib
numpy
packaging
Pillow
pyparsing
python-dateutil
scipy
six

Then run pip again:

source .venv/bin/activate
pip3 install -r requirements.txt

Running the code now fails because numpy changes. However, for me it was just this little change in src/qpsk.py:

-def get_symbol_bits(symbol: np.complex, phase_correction: int=0) -> int:
+def get_symbol_bits(symbol: complex, phase_correction: int=0) -> int:

I'll leave the issue open for now until we get around testing.