Summary: | Package not supporting Python3.1: Active version of CPython 3 is not supported [...] | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | trogdog |
Component: | Current packages | Assignee: | Python Gentoo Team <python> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | fabio.coatti, mgorny, usefuljunk |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
trogdog
2011-11-01 13:25:55 UTC
You might want to clean up metadata.xml, mgorny... Python team, what's this? Lemme guess, even if you restrict Python3, it still bites you in the arse. app-portage/eclean-kernel-0.1.2::gentoo restricts 3.1 Python ABI, but not e.g. 3.2. Reporter of this bug has CPython 3.1 set as active version of CPython 3. Reporter of this bug should set CPython 3.2 as active version of CPython 3 or set custom value of USE_PYTHON variable (in /etc/make.conf or /etc/portage/env/app-portage/eclean-kernel). (In reply to comment #3) > app-portage/eclean-kernel-0.1.2::gentoo restricts 3.1 Python ABI, but not e.g. > 3.2. Reporter of this bug has CPython 3.1 set as active version of CPython 3. > Reporter of this bug should set CPython 3.2 as active version of CPython 3 or > set custom value of USE_PYTHON variable (in /etc/make.conf or > /etc/portage/env/app-portage/eclean-kernel). I don't really follow what you're saying - how can I set active version of python to 3.2 when I only have 3.1, and I don't understand what you mean by setting a custom value for USE_PYTHON, regardless though, that should be covered by the ebuild, not by me the user, surely if the package depends on a certain version of python portage should warn me and ask me to unmask it. I presume that's what you're saying I have to unmask and emerge python 3.2 for this ebuild to work? trogdog, First, this ebuild has some issues that need to be fixed before actually using the package. I know mgorny is a very responsive dev, so I would bet a fix will be available in short order. So what Arfrever is saying is that eclean-kernel works with >=dev-lang/python-3.2, that is the meaning of the message "Active version of CPython 3 is not supported..." The USE_PYTHON make.conf variable will allow any user to have portage maintain several versions of Python simultaneously. For many users this is not necessary, but for some it is rather nice. An example of its usage is as follows: USE_PYTHON="2.6 2.7 3.1 3.2" This will tell portage to build all python packages for all versions listed as long as the package supports it. In your instance, python-3.1 is not supported while python-3.2 is (potentially) supported. mgorny, As far as your ebuild I see a couple issues there. 1. SUPPORT_PYTHON_ABIS=1 Besides the fact that this variable needs a quoted value, this would tell portage to build the pkg for only 1 ABI, i.e. either python:2 or python:3 I may be mistaken but it appears from your ebuild to me that you want to support python:2.6 python:2.7 and python:3.2 So, you probably need something like the following to fix things up. PYTHON_DEPEND="2:2.6 3:3.2" SUPPORT_PYTHON_ABIS="1" RESTRICT_PYTHON_ABIS="2.[45] 3.1" This should be reviewed, however I think this will fix you up. (In reply to comment #5) > So, you probably need something like the following to fix things up. > PYTHON_DEPEND="2:2.6 3:3.2" > SUPPORT_PYTHON_ABIS="1" > RESTRICT_PYTHON_ABIS="2.[45] 3.1" Thanks, I didn't knew PYTHON_DEPEND supports multiple values. Committed this fix, please try and see what happens then. USE_PYTHON="2.7" emerge -v eclean-kernel builds fine USE_PYTHON="3.2" emerge -v eclean-kernel fails as expected because I don't have python 3.2 USE_PYTHON="2.7 3.1" emerge -v eclean-kernel builds fine with the ebuild selecting to use python 2.7 Looks like I need to add and maintain a USE_PYTHON variable in my make.conf Is there a way for portage/an ebuild to catch the absence of this variable? Thank you Michal, Matt and Arfrever *** Bug 390145 has been marked as a duplicate of this bug. *** Ok, we need to find a solution here. Any ideas? Michał, I am fairly certain that I gave you the solution in comment #5, does that not work for you? Find me on IRC and I can assist, #gentoo-python is a good place. (In reply to comment #10) > Michał, I am fairly certain that I gave you the solution in comment #5, does > that not work for you? Find me on IRC and I can assist, #gentoo-python is a > good place. Considering new bugreports, it doesn't work. You'd have to find someone who actually hits it though. thank you for resurecting this bug. I managed to install sucessfully on 2 machines but it has failed on 4 others. I have implemented the USE_PYTHON changes, but it seems that the ebuild has reverted back to PYTHON_DEPEND='2:2.6 3:3.2' SUPPORT_PYTHON_ABIS=1 RESTRICT_PYTHON_ABIS='2.4 2.5 3.1' *** Bug 390621 has been marked as a duplicate of this bug. *** To work this bug around, I've added new versions of gentoopm and eclean-kernel with Python3 restricted completely. (In reply to comment #14) > To work this bug around, I've added new versions of gentoopm and eclean-kernel > with Python3 restricted completely. The new version builds, but HP ~ # eclean-kernel -a Traceback (most recent call last): File "/usr/bin/eclean-kernel-2.7", line 26, in <module> sys.exit(main(sys.argv)) File "/usr/lib64/python2.7/site-packages/ecleankernel/cli.py", line 70, in main kernels = find_kernels() File "/usr/lib64/python2.7/site-packages/ecleankernel/kernel.py", line 182, in find_kernels % (cat, m, getattr(newk, cat))) SystemError: Colliding modules files: /lib/modules/2.6.36-gentoo-r5 and /lib64/modules/2.6.36-gentoo-r5 (In reply to comment #15) > The new version builds, but > > HP ~ # eclean-kernel -a > Traceback (most recent call last): > File "/usr/bin/eclean-kernel-2.7", line 26, in <module> > sys.exit(main(sys.argv)) > File "/usr/lib64/python2.7/site-packages/ecleankernel/cli.py", line 70, in > main > kernels = find_kernels() > File "/usr/lib64/python2.7/site-packages/ecleankernel/kernel.py", line 182, > in find_kernels > % (cat, m, getattr(newk, cat))) > SystemError: Colliding modules files: /lib/modules/2.6.36-gentoo-r5 and > /lib64/modules/2.6.36-gentoo-r5 Seems like missing realpath() somewhere. I'll try to look more deeply into it later today. I've opened bug for ya at: https://github.com/mgorny/eclean-kernel/issues/4 *** Bug 424021 has been marked as a duplicate of this bug. *** Package confirmed to build and work. |