trouble building py3-requests -- dependencies build against wrong version of python.
Vick Khera
vivek at khera.org
Fri Jun 9 13:47:10 UTC 2017
I'm trying to build py3-iocage, which has as one dependeny py3-requests.
When building this with poudriere, the py3-requests port somehow causes
py27-chardet to be built instead of py36-chardet, which then results in
py3-requests failing to find the dependency (which it just tried to build).
Here is a test I just ran:
% rm /usr/local/poudriere/data/packages/freebsd:11:x86:64/All/py*-chardet*
% poudriere bulk -j 11amd64 -J 4:6 www/py3-requests
The build fails with this:
[00:00:08] ====>> [01][00:00:00] Starting build of textproc/py-chardet
[00:00:14] ====>> [01][00:00:06] Finished build of textproc/py-chardet:
Success
[00:00:14] ====>> [01][00:00:00] Starting build of www/py3-requests
[00:00:19] ====>> [01][00:00:05] Finished build of www/py3-requests:
Failed: run-depends
Looking in the log file from poudriere we have:
=======================<phase: run-depends >============================
===> py36-requests-2.17.3 depends on package: py36-chardet>=3.0.2 - not found
===> py36-requests-2.17.3 depends on package:
/packages/All/py36-chardet-3.0.3.txz - not found
===> USE_PACKAGE_DEPENDS_ONLY set - not building missing dependency
from source
and we see that py27-chardet was actually built:
% ls -l
/usr/local/poudriere/data/packages/freebsd:11:x86:64/All/py*-chardet*
-rw-r--r-- 1 root wheel 155212 Jun 9 09:24
/usr/local/poudriere/data/packages/freebsd:11:x86:64/All/py27-chardet-3.0.3.txz
If I explicitly build py3-chardet I get the right version:
% rm /usr/local/poudriere/data/packages/freebsd:11:x86:64/All/py*-chardet*
% poudriere bulk -j 11amd64 -J 4:6 textproc/py3-chardet
% ls -l
/usr/local/poudriere/data/packages/freebsd:11:x86:64/All/py*-chardet*
-rw-r--r-- 1 root wheel 157916 Jun 9 09:35
/usr/local/poudriere/data/packages/freebsd:11:x86:64/All/py36-chardet-3.0.3.txz
When I subsequently build py3-requests it finds the py36-chardet package,
but then fails on its other dependencies with the same error pattern (ie,
it built py27-idna instead of py36-idna, etc.)
How can I convince py3-requests to build py3-chardet rather than py-chardet
(and py36-idna, etc.) like it does above? It seems to me that the "include"
method of making the py3 modules child ports of the py modules is failing
here with py3-requests.
My poudriere make.conf file has
DEFAULT_VERSIONS=mysql=5.6 pgsql=9.4 apache=2.4 perl5=5.24 ssl=openssl
php=7.0 python3=3.6
That is the only mention of python in there.
Running FreeBSD 11.0/amd64, ports tree updated as of this morning with
portsnap.
More information about the freebsd-ports
mailing list