python-pypcap: explicitly call pyrexc using python2 to fix too long shebang

python-pypcap calls thez pyrexc Python script directly. This script is
generated by the pyrexc installation with a shebang line that has a
full path to our host-python interpreter. Unfortunately, since Linux
cuts the shebang line at 128 characters, it means that if you have an
output directory with a very very long name, the pyrexc script does
not run.

To solve that, we explicitly invoke pyrexc with the python2
interpreter.

Note that invoking the python2 interpreter directly is safe because
python-pypcap is only available for Python 2.x, so we are just that
$(HOST_DIR)/usr/bin/python2 is available.

Fixes #8281.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Thomas Petazzoni 2015-10-14 15:09:11 +02:00
parent 0a854ce4cc
commit fd43cadc6b

View file

@ -12,7 +12,7 @@ PYTHON_PYPCAP_SETUP_TYPE = distutils
PYTHON_PYPCAP_DEPENDENCIES = host-python-pyrex libpcap
define PYTHON_PYPCAP_CONFIGURE_CMDS
$(HOST_DIR)/usr/bin/pyrexc $(@D)/pcap.pyx
$(HOST_DIR)/usr/bin/python2 $(HOST_DIR)/usr/bin/pyrexc $(@D)/pcap.pyx
(cd $(@D); \
$(HOST_DIR)/usr/bin/python setup.py \
config --with-pcap=$(STAGING_DIR)/usr)