View previous topic :: View next topic |
Author |
Message |
javeree Guru

Joined: 29 Jan 2006 Posts: 461
|
Posted: Thu Dec 21, 2017 11:55 am Post subject: single slot conflict of package with itself |
|
|
I am trying to move as many packages as possible to python 3.5, so I've put in make.conf
Code: | PYTHON_TARGETS="python3_5"
PYTHON_SINGLE_TARGET="python3_5" |
first of all, I had to set separate use flags for a lot of programs that seem to be only working with python2.7, such as e.g:
Code: | media-sound/rgain python_targets_python2_7 |
I don't understand why a package that requires python2.7 would have a USE flag asking the user what version to use. i would like to understand this, but it is easily solved by setting the flag.
The problem is that there are a lot of slot conflicts reported. Sometimes, I manage to solve them with trial and error, but I don't understand the type of conflict below: It complains about a slot conflict of a package version with itself. I am pretty sure it is somehow related to the python flags, but I don't really understand what it is saying: what is the meaning of (-), (+) and ? in this output and how can I interprete this to understand the conflict.
Code: |
!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:
dev-python/cssselect:0
(dev-python/cssselect-0.9.1:0/0::gentoo, installed) pulled in by
>=dev-python/cssselect-0.7.1[python_targets_python2_7(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),python_single_target_python2_7(+)] required by (app-text/calibre-3.3.0:0/0::gentoo, ebuild scheduled for merge)
(dev-python/cssselect-0.9.1:0/0::gentoo, ebuild scheduled for merge) pulled in by
dev-python/cssselect[python_targets_python3_4(-)?,python_targets_python3_5(-)?,-python_single_target_jython2_7(-),-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python2_7(-),-python_single_target_python3_6(-),python_single_target_python3_4(+)?,python_single_target_python3_5(+)?] required by (app-text/sigil-0.9.5-r2:0/0::gentoo, ebuild scheduled for merge)
|
|
|
Back to top |
|
 |
Naib Watchman


Joined: 21 May 2004 Posts: 6082 Location: Removed by Neddy
|
Posted: Thu Dec 21, 2017 12:00 pm Post subject: |
|
|
python 2.7 is a special beast and there are a lot of maintained packages that have not or have no plan on migrating to python3. Having a python3.x only system is great in theory but in practice, a single py2 only library will fail.
Now these python2 only libraries will depend on other python module BUT they may support py2 and py3 THUS these need to target py2 and py3 to support the non-migrated packages.
I ended up having a py27 package.use file to list the Python2 only packages but then the python target is 3.4 AND 2.7 so those that support both are installed for both _________________ #define HelloWorld int
#define Int main()
#define Return printf
#define Print return
#include <stdio>
HelloWorld Int {
Return("Hello, world!\n");
Print 0; |
|
Back to top |
|
 |
Hu Administrator

Joined: 06 Mar 2007 Posts: 23628
|
Posted: Fri Dec 22, 2017 12:38 am Post subject: |
|
|
(-) = if not defined in ebuild, treat as if defined and disabled.
(+) = if not defined in ebuild, treat as if defined and enabled.
? (postfix) = if enabled on requiring package, then require enabled on target package. If not enabled on requiring package, then no requirement on state for target package. This is a shorthand for: Code: | A? ( target/package[A] )
!A? ( target/package ) |
The overall conflict is that you have two packages, app-text/sigil and app-text/calibre that both impose requirements on package dev-python/cssselect. Those requirements conflict, so you can't satisfy both requiring packages at once as-is. You may be able to change the configuration of one or both of the requiring packages so that their requirements on dev-python/cssselect can be satisfied at the same time. In some cases, it is as simple as permitting Portage to rebuild both requiring packages with the currently applicable system USE flags. What is the output of emerge --pretend --verbose app-text/sigil app-text/calibre dev-python/cssselect? |
|
Back to top |
|
 |
javeree Guru

Joined: 29 Jan 2006 Posts: 461
|
Posted: Sat Dec 23, 2017 1:19 am Post subject: |
|
|
Thanks for this very accurate description. So it means that the output itself does not really the reason or solution. You have to look at the actual flags that are used to know how to solve such an issue. In this particular case, I had to set app-text/calibre python_targets_python2_7 (and solve a bunch of similar issues for other packages, but finally the emerge started updating. Currently 4/122. |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|