Почему рецепт bitbake для python-cffi не работает на do_fetch

Не уверен, что это правильное место, чтобы спросить это:

Я боролся с попыткой создать рецепт для компиляции python-cffi для ветки биты в dora, и пока мне не повезло. Кажется, есть несколько рецептов, но они не работают для меня. Очевидно, файл gz исходного кода находится в странном состоянии и не может быть извлечен с помощью обычной команды do_fetch в bitbake.

При использовании этих рецептов битбейка в качестве отправной точки:

python-cffi_1.11.0.bb

а также

python-cffi_1.11.0.inc

Я изменил код, чтобы создать новый рецепт с именем python-cffi_1.11.2.bb, тогда стандартный do_fetch не понимает, как обращаться с загруженным файлом gz.

Это рецепт бит-бека, который я использую (названный python-cffi_1.11.2.bb)


SUMMARY = "Foreign Function Interface for Python calling C code"
# This is the format of the actual URI
SRC_URI = "https://pypi.python.org/packages/c9/70/89b68b6600d479034276fed316e14b9107d50a62f5627da37fafe083fde3/cffi-1.11.2.tar.gz#md5=a731487324b501c8295221b629d3f5f3"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf"
DEPENDS += "libffi python-pycparser"
SRC_URI[md5sum] = "a731487324b501c8295221b629d3f5f3"
RDEPENDS_${PN}_class-target = "python-io "
BBCLASSEXTEND = "native nativesdk"
inherit pypi setuptools

И я получаю этот набор сообщений об ошибках в build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/python-cffi/1.11.2-r0/temp/log.do_fetch

Очевидно, сборщик загружает файл правильно, но затем не знает, что с ним делать. В каталоге build/downloads находится файл cffi-1.11.2.tar.gz!

...
DEBUG: Trying Upstream
NOTE: fetch https://pypi.python.org/packages/c9/70/89b68b6600d479034276fed316e14b9107d50a62f5627da37fafe083fde3/cffi-1.11.2.tar.gz#md5=a731487324b501c8295221b629d3f5f3
DEBUG: executing /usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate -P /home/pjm/yocto-iscan/poky/build/downloads 'https://pypi.python.org/packages/c9/70/89b68b6600d479034276fed316e14b9107d50a62f5627da37fafe083fde3/cffi-1.11.2.tar.gz#md5=a731487324b501c8295221b629d3f5f3'
DEBUG: Fetcher accessed the network with the command /usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate -P /home/pjm/yocto-iscan/poky/build/downloads 'https://pypi.python.org/packages/c9/70/89b68b6600d479034276fed316e14b9107d50a62f5627da37fafe083fde3/cffi-1.11.2.tar.gz#md5=a731487324b501c8295221b629d3f5f3'
DEBUG: Running export SSH_AUTH_SOCK="/run/user/1000/keyring-1bn6Fg/ssh"; export PATH="/home/pjm/yocto-iscan/poky/build/tmp/sysroots/x86_64-linux/usr/bin/python-native:/home/pjm/yocto-iscan/poky/scripts:/home/pjm/yocto-iscan/poky/build/tmp/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi:/home/pjm/yocto-iscan/poky/build/tmp/sysroots/omap3logic/usr/bin/crossscripts:/home/pjm/yocto-iscan/poky/build/tmp/sysroots/x86_64-linux/usr/sbin:/home/pjm/yocto-iscan/poky/build/tmp/sysroots/x86_64-linux/usr/bin:/home/pjm/yocto-iscan/poky/build/tmp/sysroots/x86_64-linux/sbin:/home/pjm/yocto-iscan/poky/build/tmp/sysroots/x86_64-linux//bin:/home/pjm/yocto-iscan/poky/scripts:/home/pjm/yocto-iscan/poky/bitbake/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"; export HOME="/home/pjm"; /usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate -P /home/pjm/yocto-iscan/poky/build/downloads 'https://pypi.python.org/packages/c9/70/89b68b6600d479034276fed316e14b9107d50a62f5627da37fafe083fde3/cffi-1.11.2.tar.gz#md5=a731487324b501c8295221b629d3f5f3'
WARNING: Failed to fetch URL https://pypi.python.org/packages/c9/70/89b68b6600d479034276fed316e14b9107d50a62f5627da37fafe083fde3/cffi-1.11.2.tar.gz#md5=a731487324b501c8295221b629d3f5f3, attempting MIRRORS if available
DEBUG: Fetcher failure for URL: 'https://pypi.python.org/packages/c9/70/89b68b6600d479034276fed316e14b9107d50a62f5627da37fafe083fde3/cffi-1.11.2.tar.gz#md5=a731487324b501c8295221b629d3f5f3'. The fetch command returned success for url https://pypi.python.org/packages/c9/70/89b68b6600d479034276fed316e14b9107d50a62f5627da37fafe083fde3/cffi-1.11.2.tar.gz#md5=a731487324b501c8295221b629d3f5f3 but /home/pjm/yocto-iscan/poky/build/downloads/cffi-1.11.2.tar.gz#md5=a731487324b501c8295221b629d3f5f3 doesn't exist?!
DEBUG: Trying MIRRORS
...

Что я должен изменить в рецепте bitbake, чтобы do_fetch мог правильно извлечь файл? Я предполагаю, что есть некоторый шаг после выборки, который должен указать, что реальный файл называется cffi-1.11.2.tar.gz, а не файл с хешем md5, висящим на конце. Кажется, он ищет cffi-1.11.2.tar.gz#md5=a731487324b501c8295221b629d3f5f3 вместо cffi-1.11.2.tar.gz

1 ответ

Я думаю, что нашел ответ на этот вопрос.

Кажется, что битовый код ищет исходные файлы для python-cffi_1.11.2 и никогда не попадает в SRC_URI в реальном рецепте!

Это ошибка?

Если я переименую рецепт cffi_1.11.2.bb, он будет работать нормально.

Другие вопросы по тегам