Summary: | dev-python/xcffib-0.11.1 failed for python 3.9 due to missing pip module | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | segmentation fault <segmentation-fault> |
Component: | Current packages | Assignee: | Python Gentoo Team <python> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | mgorny, sam |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | xcffib-0.11.1 build log |
Description
segmentation fault
2022-02-04 10:29:12 UTC
Please attach the full build.log in future but yeah, looks like missing pycparser. There's not a single "pycparser" occurrence in the source. On the other hand, the package requires cffi and cffi depends on pycparser. Did you have also have wrong targets on dev-python/cffi? Did you do some hacking after building cffi? Created attachment 764535 [details]
xcffib-0.11.1 build log
(In reply to Michał Górny from comment #2) > There's not a single "pycparser" occurrence in the source. On the other > hand, the package requires cffi and cffi depends on pycparser. Did you have > also have wrong targets on dev-python/cffi? Did you do some hacking after > building cffi? Maybe not in the source - but if you look at the output above - and in the build.log that I now posted, you will see: subprocess.CalledProcessError: Command '['/usr/bin/python3.9', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps' , '-w', '/XXXXXX/portage/dev-python/xcffib-0.11.1/temp/tmpi02zo7dx', '--quiet', 'pycparser']' returned non-zero exit status 1. which does contain 'pycparser'. It was this that tipped me off to look at pycparser. (In reply to Michał Górny from comment #2) > Did you have > also have wrong targets on dev-python/cffi? No. Python targets for dev-python/cffi must have been correct. I can see this now from the dates when the two packages were merged: dev-python/cffi-1.15.0 was merged on 24th Jan., 2022, in the right targets: [I] dev-python/cffi Available versions: 1.14.6:0/1.14.6^t 1.15.0:0/1.15.0^t {doc test PYTHON_TARGETS="python3_10 python3_8 python3_9"} Installed versions: 1.15.0:0/1.15.0^t(01:40:34 PM 01/24/2022)(-doc -test PYTHON_TARGETS="python3_8 python3_9 -python3_10") while dev-python/xcffib-0.11.1 was merged on 4th Feb., 2022: [I] dev-python/xcffib Available versions: 0.11.1^t {test PYTHON_TARGETS="python3_10 python3_8 python3_9"} Installed versions: 0.11.1^t(11:16:20 AM 02/04/2022)(-test PYTHON_TARGETS="python3_8 python3_9 -python3_10") > Did you do some hacking after > building cffi? No. Did you perhaps rebuild pycparser after emerging cffi (In reply to Michał Górny from comment #6) > Did you perhaps rebuild pycparser after emerging cffi Yes, because, as of today: [I] dev-python/pycparser Available versions: 2.21^t {test PYTHON_TARGETS="pypy3 python3_10 python3_8 python3_9"} Installed versions: 2.21^t(11:08:34 AM 02/04/2022)(-test PYTHON_TARGETS="python3_8 python3_9 -pypy3 -python3_10") therefore pycparser was (re-)compiled on 02/04/2022, while cffi still (even today) has a date of 01/24/2022: [I] dev-python/cffi Available versions: 1.14.6:0/1.14.6^t 1.15.0:0/1.15.0^t {doc test PYTHON_TARGETS="python3_10 python3_8 python3_9"} Installed versions: 1.15.0:0/1.15.0^t(01:40:34 PM 01/24/2022)(-doc -test PYTHON_TARGETS="python3_8 python3_9 -python3_10") so, indeed, pycparser was (re-)compiled on a later date than dev-python/cffi. FWIW dev-python/xcffib, dev-python/cairocffi and virtual/python-cffi also have a 02/04/2022 date on them. That is, all of them were (re-)merged on a later date than dev-python/cffi. That's because I am in the process of *incrementally* upgrading my system, since I cannot do it at once. I don't want to bother you with the details (they are irrelevant and you have enough to do :-)), but you can read about it here: https://forums.gentoo.org/viewtopic-t-1146987.html Be warned that you need time, patience - and good nerves. :-))) Ok, so the problem roughly is: normally Portage only checks for immediate dependencies. So if you emerge xcffib, it checks whether all packages directly required by xcffib (i.e. cffi here) are installed but it doesn't check if cffi's dependencies are still satisfied. There are options like --deep or --complete-graph that can change this behavior and make Portage compute the complete dependency tree every time, at the cost of slower processing. However, since you're still working on upgrading your system, they could cause more trouble than help. Ideally, get to the point when you can --deep upgrade @world, then depclean and everything should work fine afterwards. (In reply to Michał Górny from comment #8) > Ok, so the problem roughly is: normally Portage only checks for immediate > dependencies. So if you emerge xcffib, it checks whether all packages > directly required by xcffib (i.e. cffi here) are installed but it doesn't > check if cffi's dependencies are still satisfied. > > There are options like --deep or --complete-graph that can change this > behavior and make Portage compute the complete dependency tree every time, > at the cost of slower processing. Just of curiosity, I wanted to see if --deep would catch it. So let's take pycparser out of the python3_9 target and see if --deep will catch it: /etc/portage/package.use: # TEMPORARILY take pycparser out of python3_9. =dev-python/pycparser-2.21 -python_targets_python3_9 emerge -1av dev-python/pycparser ...oops, this did complain about the installed dev-python/cffi. :-) So let's do: emerge -1av --nodeps dev-python/pycparser Now pycparser is missing from python3_9. Let's see if --deep will catch it when we merge dev-python/xcffib: emerge -1Dav dev-python/xcffib These are the packages that would be merged, in reverse order: Calculating dependencies... done! [ebuild R ] dev-python/xcffib-0.11.1::gentoo USE="-test" PYTHON_TARGETS="python3_8 python3_9 -python3_10" 0 KiB [nomerge ] dev-python/cffi-1.15.0:0/1.15.0::gentoo USE="-doc -test" PYTHON_TARGETS="python3_8 python3_9 -python3_10" [ebuild R ] dev-python/pycparser-2.21::gentoo USE="-test" PYTHON_TARGETS="python3_8 python3_9* (-pypy3) -python3_10" 0 KiB Total: 2 packages (2 reinstalls), Size of downloads: 0 KiB The following USE changes are necessary to proceed: (see "package.use" in the portage(5) man page for more details) # required by dev-python/cffi-1.15.0::gentoo[-test] # required by dev-python/xcffib-0.11.1::gentoo[python_targets_python3_9,python_targets_python3_8,-python_targets_python3_10] # required by dev-python/xcffib (argument) >=dev-python/pycparser-2.21 python_targets_python3_9 Would you like to add these changes to your config files? [Yes/No] So yes, it does! The key is to use -D (--deep) if one wants to catch such things. Now I learned something, again. :-) |