Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
Alec Warner wrote: On Thu, Mar 18, 2010 at 1:27 PM, Ben de Grootyng...@gentoo.org wrote: On 18 March 2010 20:24, Fabian Groffengrob...@gentoo.org wrote: On 18-03-2010 20:20:02 +0100, Thomas Sachau wrote: There are 2 ways to fix this issue: -fix the dependency string for those packages (including the lines in distutils.eclass) or (since Arfrever claims current portage behaviour is wrong) -change portage behaviour to be satisfied with a python slot and to not require other slots. Since the last option will take time in any case, I guess the first option is the best to achieve the desired goal: make sure Python 3 stays as far away as possible from any system that doesn't need it. And the best way to do that is to package.mask it. The maintainer has chosen not to mask it in gentoo-x86, which means users are empowered to mask it locally and everyone who is complaining about getting python3 installed on their system should mask it locally. This is how users work around other defaults in the tree they don't agree with (USE flags, KEYWORDS, etc.) I don't get why this is a big deal at all or why people are unable to solve this themselves. Cheers, -- Ben de Groot Gentoo Linux Qt project lead developer I think this is because people that use Gentoo do so because it doesn't install things they don't need. Why install a package that is used by no other package? It's pointless. I would also add, if it gets installed and is used by no other package, --depclean should remove it. Putting it in package.mask locally is sort of silly in my opinion. There will come a day, maybe way off in the future, that something will need it. Then you have to edit the file again so portage can install it. This just seems to be adding either more work or unneeded packages. This is a users $0.02 worth. Dale :-) :-)
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 03/19/2010 12:15 AM, Dale wrote: I think this is because people that use Gentoo do so because it doesn't install things they don't need. Why install a package that is used by no other package? It's pointless. I would also add, if it gets installed and is used by no other package, --depclean should remove it. Putting it in package.mask locally is sort of silly in my opinion. There will come a day, maybe way off in the future, that something will need it. Then you have to edit the file again so portage can install it. I guess what you want is an emerge --avoid-new-slots-whenever-possible option. You might also want it to check for cases in which pulling in a new slot will allow you to remove an older slot (that will require some additional work). Having options like those would be really super, but I don't think using package.mask to do it will be so awful. -- Thanks, Zac
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On Thu, 18 Mar 2010 23:17:17 +0100 Ben de Groot yng...@gentoo.org wrote: Because it is extremely useless to the great majority of users. Most packages in the tree are useless to the great majority of users. -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
Zac Medico wrote: On 03/19/2010 12:15 AM, Dale wrote: I think this is because people that use Gentoo do so because it doesn't install things they don't need. Why install a package that is used by no other package? It's pointless. I would also add, if it gets installed and is used by no other package, --depclean should remove it. Putting it in package.mask locally is sort of silly in my opinion. There will come a day, maybe way off in the future, that something will need it. Then you have to edit the file again so portage can install it. I guess what you want is an emerge --avoid-new-slots-whenever-possible option. You might also want it to check for cases in which pulling in a new slot will allow you to remove an older slot (that will require some additional work). Having options like those would be really super, but I don't think using package.mask to do it will be so awful. I think what most people want is for portage not to pull in a package that nothing uses. I'm not a dev nor a programmer but I have yet to see any good reason for installing something that is not being used. It's not being tested to see if it is stable. It would have to be used before that would happen. Basically, it is just one more package to update and taking up hard drive space. It's not doing anything else. As for slots, if something needs it, portage would pull in the new slot. That's what portage does. It just seems in this case it is pulling in a new slot that nothing uses. Dale :-) :-)
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On Fri, 19 Mar 2010 03:54:28 -0500 Dale rdalek1...@gmail.com wrote: Ciaran McCreesh wrote: On Thu, 18 Mar 2010 23:17:17 +0100 Ben de Grootyng...@gentoo.org wrote: Because it is extremely useless to the great majority of users. Most packages in the tree are useless to the great majority of users. Which is why most users don't install everything. I have about 1000 packages installed here. The packages installed are either something I use or a dependency of something I use. What exactly is this being installed for again? If nothing depends on it, there is no need to have it. It's being installed because it's a dependency of something you use. Replace Python with any other library and we wouldn't be having this discussion. -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
Ciaran McCreesh wrote: On Fri, 19 Mar 2010 03:54:28 -0500 Dalerdalek1...@gmail.com wrote: Ciaran McCreesh wrote: On Thu, 18 Mar 2010 23:17:17 +0100 Ben de Grootyng...@gentoo.org wrote: Because it is extremely useless to the great majority of users. Most packages in the tree are useless to the great majority of users. Which is why most users don't install everything. I have about 1000 packages installed here. The packages installed are either something I use or a dependency of something I use. What exactly is this being installed for again? If nothing depends on it, there is no need to have it. It's being installed because it's a dependency of something you use. Replace Python with any other library and we wouldn't be having this discussion. OK. Right now, as you type this, what package depends on python-3 and won't work with python-2? Anything at all? If it is nothing, then why install it? Since python-3 is not what the system is using, it's not getting used even if it is installed. So as I mentioned in another reply, portage is installing something and it is just sitting there doing nothing. What is the point in that? Dale :-) :-)
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
Zac Medico wrote: I think what most people want is for portage not to pull in a package that nothing uses. I'm not a dev nor a programmer but I have yet to see any good reason for installing something that is not being used. It's not being tested to see if it is stable. It would have to be used before that would happen. Basically, it is just one more package to update and taking up hard drive space. It's not doing anything else. As for slots, if something needs it, portage would pull in the new slot. That's what portage does. It just seems in this case it is pulling in a new slot that nothing uses. Have you considered that they might possibly be hundreds of packages that you have installed providing functionality that you never use, but are only there as a fixed dependencies of something that you do. Hell lets take it even further than that, i'm sure there are thousands of lines of code in most packages that you will never hit, so why dont we start masking them as well. I don't recall ever using grep --version, please remove (mask) that code from grep. We will obviously need someway to unmask those code masks so lets create a couple of files for portage. Hows code.mask and code.unmask with a format of package path/to/file line1 line2 line3 line4 Or maybe we could just let users who don't want to install python-3 mask it _locally_. Once they need it portage is more than capable of telling them that. Dale :-) :-)
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
2010-03-19 10:23:31 Dale napisał(a): Ciaran McCreesh wrote: On Fri, 19 Mar 2010 03:54:28 -0500 Dalerdalek1...@gmail.com wrote: Ciaran McCreesh wrote: On Thu, 18 Mar 2010 23:17:17 +0100 Ben de Grootyng...@gentoo.org wrote: Because it is extremely useless to the great majority of users. Most packages in the tree are useless to the great majority of users. Which is why most users don't install everything. I have about 1000 packages installed here. The packages installed are either something I use or a dependency of something I use. What exactly is this being installed for again? If nothing depends on it, there is no need to have it. It's being installed because it's a dependency of something you use. Replace Python with any other library and we wouldn't be having this discussion. OK. Right now, as you type this, what package depends on python-3 and won't work with python-2? Anything at all? If it is nothing, then why install it? Since python-3 is not what the system is using, it's not getting used even if it is installed. So as I mentioned in another reply, portage is installing something and it is just sitting there doing nothing. What is the point in that? I can add python2 USE flag (enabled by default) to some versions of dev-lang/python. With USE=-python2, Python 2 will not be required and Python 3 will be set as main active version of Python. -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 19.3.2010 11.35, Arfrever Frehtes Taifersar Arahesis wrote: I can add python2 USE flag (enabled by default) to some versions of dev-lang/python. With USE=-python2, Python 2 will not be required and Python 3 will be set as main active version of Python. You should move to the same scheme that ruby uses. Then users can just disable the python_version_3 or whatever USE_EXPAND scheme is used. Regards, Petteri
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On Fri, Mar 19, 2010 at 04:23:31AM -0500, Dale wrote: OK. Right now, as you type this, what package depends on python-3 and won't work with python-2? Anything at all? If it is nothing, then why install it? To some degree it's the users choice which python version they choose to settle on- a simple server system doing file sharing could actually be py3k via portage/pkgcore both supporting py3k (including their dependencies). As for py3k only pkgs, I'd bet 3to2 is py3k only... it's worth noting that some new libs are targeting py3k only also (I don't agree with that, but it's upstreams choice). Since python-3 is not what the system is using, it's not getting used even if it is installed. So as I mentioned in another reply, portage is installing something and it is just sitting there doing nothing. What is the point in that? Mask the freaking package already. The time people have extended in bitching about this *literally* exceeds the time to type mkdir -p /etc/portage \ echo '=dev-lang/python-3' /etc/portage/package.mask If you consider masking it to be that horrible (or want to keep expending time), fine- then please do what Betelgeuse has suggested in IRC and raid from the ruby eclass the USE_EXPAND'd ruby_targets trickery and integrate that into the python eclass [1]. Via that (and a lot of ebuild cleanup) users could explicitly specify the python versions they want targeted and it would properly be represented in the depgraph. ~harring [1] Note that python.eclass already has something *roughly* similar to this, but 1) it's not USE based, 2) no one aparently knows about it, 3) from what I've seen most ebuilds haven't really been converted to handle this properly (yet). pgpfuTlCbt1ph.pgp Description: PGP signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
2010-03-19 10:39:07 Petteri Räty napisał(a): On 19.3.2010 11.35, Arfrever Frehtes Taifersar Arahesis wrote: I can add python2 USE flag (enabled by default) to some versions of dev-lang/python. With USE=-python2, Python 2 will not be required and Python 3 will be set as main active version of Python. You should move to the same scheme that ruby uses. Then users can just disable the python_version_3 or whatever USE_EXPAND scheme is used. We are waiting on ABI dependencies (and extended support for multiple ABIs in package manager), which will provide some needed functionality. -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On Fri, Mar 19, 2010 at 10:55:03AM +0100, Arfrever Frehtes Taifersar Arahesis wrote: 2010-03-19 10:39:07 Petteri Räty napisał(a): On 19.3.2010 11.35, Arfrever Frehtes Taifersar Arahesis wrote: I can add python2 USE flag (enabled by default) to some versions of dev-lang/python. With USE=-python2, Python 2 will not be required and Python 3 will be set as main active version of Python. You should move to the same scheme that ruby uses. Then users can just disable the python_version_3 or whatever USE_EXPAND scheme is used. We are waiting on ABI dependencies (and extended support for multiple ABIs in package manager), which will provide some needed functionality. You can do it now w/out waiting on ABI dependencies- I'm not saying the dependencies would be pretty, but it's doable to get abi level depdencies per slotting via expanding out the use combinations. Note that's a step beyond what's in place now- converting over to the ruby abuse of USE_EXPAND hands over better control to users now w/ the same dep gurantees. So... yeah, it's not reliant on EAPI. An EAPI extension *would* make it easier, but it's not required to do it (especially since the deps are already autogenerated to a decent degree). ~harring pgpSGu5ROjiqN.pgp Description: PGP signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On Fri, 19 Mar 2010 02:56:08 -0700 Brian Harring ferri...@gmail.com wrote: We are waiting on ABI dependencies (and extended support for multiple ABIs in package manager), which will provide some needed functionality. You can do it now w/out waiting on ABI dependencies- I'm not saying the dependencies would be pretty, but it's doable to get abi level depdencies per slotting via expanding out the use combinations. Note that's a step beyond what's in place now- converting over to the ruby abuse of USE_EXPAND hands over better control to users now w/ the same dep gurantees. So... yeah, it's not reliant on EAPI. An EAPI extension *would* make it easier, but it's not required to do it (especially since the deps are already autogenerated to a decent degree). How would do it and deal with existing packages not having the required things in IUSE without (+)/(-) use deps? I don't see a way of doing it legally without those. -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 03/19/2010 01:52 AM, Dale wrote: I think what most people want is for portage not to pull in a package that nothing uses. I'm not a dev nor a programmer but I have yet to see any good reason for installing something that is not being used. It's not being tested to see if it is stable. It would have to be used before that would happen. Basically, it is just one more package to update and taking up hard drive space. It's not doing anything else. It won't be pulled in unless something else is pulled in that can use python3. As for slots, if something needs it, portage would pull in the new slot. That's what portage does. It just seems in this case it is pulling in a new slot that nothing uses. The problem is, most people will have have something pulled in via dependencies that can use python3, even though python-2.x will suffice. For cases like this, some users may want to use package.mask in order to prevent python3 from being installed. -- Thanks, Zac
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
Ciaran McCreesh wrote: On Fri, 19 Mar 2010 04:23:31 -0500 Dalerdalek1...@gmail.com wrote: It's being installed because it's a dependency of something you use. Replace Python with any other library and we wouldn't be having this discussion. OK. Right now, as you type this, what package depends on python-3 and won't work with python-2? Anything at all? If it is nothing, then why install it? And that's where you're making the mistake: you're treating Python as being different from every other package. In every other case, you want things to be using the newest version of a slotted package where possible. Why aren't you complaining that you were forced to install gcc 4.3 and 4.1 when 3.4 worked just fine? Because, when I installed gcc 4.3, I could then unmerge the old gcc. That's why I didn't complain about that. With python, we still have to have the current version plus the new version which is not being used at all. Am I not correct in that? If the new python is installed, what exactly is going to use it? I used the new gcc. It worked fine. I unmerged the old one with no wasted space and one less package installed. This doesn't appear to be the case with python-3 tho. It's going to be installed and just sit there like a rock. Dale :-) :-)
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On Fri, Mar 19, 2010 at 10:01:05AM +, Ciaran McCreesh wrote: On Fri, 19 Mar 2010 02:56:08 -0700 Brian Harring ferri...@gmail.com wrote: We are waiting on ABI dependencies (and extended support for multiple ABIs in package manager), which will provide some needed functionality. You can do it now w/out waiting on ABI dependencies- I'm not saying the dependencies would be pretty, but it's doable to get abi level depdencies per slotting via expanding out the use combinations. Note that's a step beyond what's in place now- converting over to the ruby abuse of USE_EXPAND hands over better control to users now w/ the same dep gurantees. So... yeah, it's not reliant on EAPI. An EAPI extension *would* make it easier, but it's not required to do it (especially since the deps are already autogenerated to a decent degree). How would do it and deal with existing packages not having the required things in IUSE without (+)/(-) use deps? I don't see a way of doing it legally without those. Roughly, PYTHON_DEPS=pkg1 pkg2 pkg3 SUPPORTED_PYTHONS=2.6 2.7 3.1 inherit insanely-unfriendly-trickery w/in said eclass, it does a few things 1) IUSE addition of the USE_EXPAND targets for the supported abis 2) take the enabled USE_EXPAND'd flags intersected against SUPPORTED_PYTHON, then set deps/rdeps to python_2.6? ( pkg1[python_2.6] pkg2[python_2.6] pkg3[python2.6] ) python_2.7? ( pkg1[python_2.7] pkg2[python_2.7] pkg3[python2.7] ) python_3.1? ( pkg1[python_3.1] pkg2[python_3.1] pkg3[python3.1] ) Yes, that is horrible (ciaran you knew it was going to be). Few flaws with it also- 1) edge case when the user turns off all use flags needs addressing- worst case, python eclass forces whatever we consider the 'default' (aka 2.6) 2) python_2.6 isn't actually a valid use flag- it would have to be python_2-6 or python_26 since periods aren't allowed (arfie pointed this out) 3) this can be ugly for users if the PM doesn't treat use flags as tristate- specifically 'explicitly-set', 'explicitly-unset', 'indeterminant'. If the ocnfiguration forces an explicit and it conflicts w/ the use dep, ok, configuration needs to be changed. If the use flag is indeterminant, then the PM needs to flip the flag on it's own in that case- I know pkgcore should do this, I don't think portage/paludis do (please correct me if wrong). Thing to note, the deps *would* be accurate- further at the vdb level they'd actually be usable. A dev-lang/python in the vdb is basically unusable since implicitly the pkg that has the dep is built against whatever slottings of python were available at the time- so if you take a pkg from now, a year down the line when py3.2 is stabled as far as the PM can tell that pkg *still* would work if =py3.1 were removed (this obviously is not true). Note also that what I laid out above is as far as I know, going a couple of steps beyond what the ruby eclass does (same for what the python eclass does). I'm not necessarily advocating the approach above, but for the raw dev-lang/python dependency we *really* should be using use_expand there- it'll hand folk a fair amount of control as to what abi's get installed into. ~harring pgpxylTOhdfiC.pgp Description: PGP signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
2010-03-19 11:13:48 Dale napisał(a): Ciaran McCreesh wrote: On Fri, 19 Mar 2010 04:23:31 -0500 Dalerdalek1...@gmail.com wrote: It's being installed because it's a dependency of something you use. Replace Python with any other library and we wouldn't be having this discussion. OK. Right now, as you type this, what package depends on python-3 and won't work with python-2? Anything at all? If it is nothing, then why install it? And that's where you're making the mistake: you're treating Python as being different from every other package. In every other case, you want things to be using the newest version of a slotted package where possible. Why aren't you complaining that you were forced to install gcc 4.3 and 4.1 when 3.4 worked just fine? Because, when I installed gcc 4.3, I could then unmerge the old gcc. That's why I didn't complain about that. With python, we still have to have the current version plus the new version which is not being used at all. Am I not correct in that? If the new python is installed, what exactly is going to use it? I used the new gcc. It worked fine. I unmerged the old one with no wasted space and one less package installed. This doesn't appear to be the case with python-3 tho. It's going to be installed and just sit there like a rock. Python 3 is used during installation of packages, which support Python 2 and Python 3 and support installation for multiple Python ABIs. You can directly execute scripts with -3.1 suffix (e.g. bpython-3.1 or coverage-3.1) to use Python 3.1 even when Python 2.* is set as main active version of Python. -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
Arfrever Frehtes Taifersar Arahesis wrote: 2010-03-19 11:13:48 Dale napisał(a): Ciaran McCreesh wrote: On Fri, 19 Mar 2010 04:23:31 -0500 Dalerdalek1...@gmail.com wrote: It's being installed because it's a dependency of something you use. Replace Python with any other library and we wouldn't be having this discussion. OK. Right now, as you type this, what package depends on python-3 and won't work with python-2? Anything at all? If it is nothing, then why install it? And that's where you're making the mistake: you're treating Python as being different from every other package. In every other case, you want things to be using the newest version of a slotted package where possible. Why aren't you complaining that you were forced to install gcc 4.3 and 4.1 when 3.4 worked just fine? Because, when I installed gcc 4.3, I could then unmerge the old gcc. That's why I didn't complain about that. With python, we still have to have the current version plus the new version which is not being used at all. Am I not correct in that? If the new python is installed, what exactly is going to use it? I used the new gcc. It worked fine. I unmerged the old one with no wasted space and one less package installed. This doesn't appear to be the case with python-3 tho. It's going to be installed and just sit there like a rock. Python 3 is used during installation of packages, which support Python 2 and Python 3 and support installation for multiple Python ABIs. You can directly execute scripts with -3.1 suffix (e.g. bpython-3.1 or coverage-3.1) to use Python 3.1 even when Python 2.* is set as main active version of Python. But again, if it will work with python2 then you don't need python3. So you still don't need it installed just as has been said many times. Dale :-) :-)
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
Alistair Bush wrote: Zac Medico wrote: I think what most people want is for portage not to pull in a package that nothing uses. I'm not a dev nor a programmer but I have yet to see any good reason for installing something that is not being used. It's not being tested to see if it is stable. It would have to be used before that would happen. Basically, it is just one more package to update and taking up hard drive space. It's not doing anything else. As for slots, if something needs it, portage would pull in the new slot. That's what portage does. It just seems in this case it is pulling in a new slot that nothing uses. Have you considered that they might possibly be hundreds of packages that you have installed providing functionality that you never use, but are only there as a fixed dependencies of something that you do. Hell lets take it even further than that, i'm sure there are thousands of lines of code in most packages that you will never hit, so why dont we start masking them as well. I don't recall ever using grep --version, please remove (mask) that code from grep. We will obviously need someway to unmask those code masks so lets create a couple of files for portage. Hows code.mask and code.unmask with a format of package path/to/file line1 line2 line3 line4 Or maybe we could just let users who don't want to install python-3 mask it _locally_. Once they need it portage is more than capable of telling them that. Dale :-) :-) Because in my opinion, portage is the first thing in line to keep a system sane. Installing packages that are not needed means that portage fails on that. So in your example, portage fails to do its due diligence and it falls to the users to do it for portage. Yep, sounds like a good idea. If a package has something that I don't need, I can generally disable that with the USE flags. That is why I picked Gentoo as my distro. I can disable/remove things that I don't need. If Gentoo is going to start putting a lot of unneeded stuff on my system, I may as well go back to Mandriva and off the RPM cliff. I left Mandrake to get rid of unneeded packages. Now Gentoo is doing the same just not nearly as bad. This would be like a small bump in the huge hill that Mandriva has. Dale :-) :-)
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On Fri, 19 Mar 2010 10:02:44 -0500 Dale rdalek1...@gmail.com wrote: Because in my opinion, portage is the first thing in line to keep a system sane. Installing packages that are not needed means that portage fails on that. So in your example, portage fails to do its due diligence and it falls to the users to do it for portage. Yep, sounds like a good idea. No, portage does what the dependencies are telling it to do. I.e., if you have unversioned dev-lang/python in DEPEND, or =dev-lang/python-2.4 or whatever similar then it installs dev-lang/python:3 - why? Because the ebuilds tell portage that it will work like that. Another example: you have an ebuild that only works w/ gtk+-1* - you don't go to the ML asking for masking gtk+-2* but instead go and fix the dependencies to properly reflect that. So, now you can go and fix the dependencies treewide, or you can simply mask it *locally* if you don't want it. You'd still need to mask it if you install something that *really* works with both 2.x and 3.1 slots if you don't want python-3. It's like with any other slotted stuff in the tree, but for a reason unknown to me it's a huge issue all of a sudden because wh, t3h noes, it's python. And on that note - noone cares why people has lots of dev-libs/boost slots installed and why's the darned thing slotted on every minor version. So while talking about wrong dependencies, maybe the boost maintainer could explain why do we need it slotted like this: SLOT=$(get_version_component_range 1-2) - simply because I'm tired of depcleaning it all the time as nothing requires multiple slots of this thing here. Cheers, DN signature.asc Description: PGP signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 18-03-2010 20:20:02 +0100, Thomas Sachau wrote: There are 2 ways to fix this issue: -fix the dependency string for those packages (including the lines in distutils.eclass) or (since Arfrever claims current portage behaviour is wrong) -change portage behaviour to be satisfied with a python slot and to not require other slots. Since the last option will take time in any case, I guess the first option is the best to achieve the desired goal: make sure Python 3 stays as far away as possible from any system that doesn't need it. -- Fabian Groffen Gentoo on a different level
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On Thu, 18 Mar 2010 20:20:02 +0100 Thomas Sachau to...@gentoo.org wrote: -change portage behaviour to be satisfied with a python slot and to not require other slots. But then you'll never get new slots for the majority of dependencies where you do usually want the newest version. If Portage were to take existing slots, most users would still be using Python 2.4 to satisfy dependencies, and would never have had 2.5+ installed... -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
2010-03-18 20:20:02 Thomas Sachau napisał(a): Currently, some packages just depend on dev-lang/python. Arfrever claims it to be right It's correct only for packages (e.g. dev-python/setuptools), which support all versions of Python (including Python 3). Arfrever claims current portage behaviour is wrong I claim that Portage behavior is correct. -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 03/18/2010 08:28 PM, Ciaran McCreesh wrote: On Thu, 18 Mar 2010 20:20:02 +0100 Thomas Sachau to...@gentoo.org wrote: -change portage behaviour to be satisfied with a python slot and to not require other slots. But then you'll never get new slots for the majority of dependencies where you do usually want the newest version. If Portage were to take existing slots, most users would still be using Python 2.4 to satisfy dependencies, and would never have had 2.5+ installed... I know this part, this option was just the result of Arfrever telling me that just dev-lang/python is the right dependency and the PM being wrong, when pulling in something unneeded. python-3* might be a special case, since it is incompactible with 2* versions and wont be set as the default python during install. But this results in it being useless and not needed, until either a package or a user does require it explicitly. So my vote goes for changing the dependency strings for affected packages. -- Thomas Sachau Gentoo Linux Developer signature.asc Description: OpenPGP digital signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 03/18/2010 08:33 PM, Arfrever Frehtes Taifersar Arahesis wrote: 2010-03-18 20:20:02 Thomas Sachau napisał(a): Currently, some packages just depend on dev-lang/python. Arfrever claims it to be right It's correct only for packages (e.g. dev-python/setuptools), which support all versions of Python (including Python 3). Can you tell us any benefit for the normal user, when you require him to install python-3* and to install the python related packages additionally for python-3*, while the system python is still 2.6* and wont change in the near future? Arfrever claims current portage behaviour is wrong I claim that Portage behavior is correct. So you want everyone to install python-3*? See above question. -- Thomas Sachau Gentoo Linux Developer signature.asc Description: OpenPGP digital signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
2010-03-18 20:47:35 Thomas Sachau napisał(a): On 03/18/2010 08:33 PM, Arfrever Frehtes Taifersar Arahesis wrote: 2010-03-18 20:20:02 Thomas Sachau napisał(a): Currently, some packages just depend on dev-lang/python. Arfrever claims it to be right It's correct only for packages (e.g. dev-python/setuptools), which support all versions of Python (including Python 3). Can you tell us any benefit for the normal user, when you require him to install python-3* I don't require it. It's only a side effect of correct dependencies. -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 03/18/2010 09:43 PM, Thomas Sachau wrote: So my vote goes for changing the dependency strings for affected packages. Here's some thoughts on the matter: - dev-lang/python is correct if the package works with all python versions in tree - in general we want new slots of packages like gcc being pulled in Here's how we could change Portage behavior for pulling new slots that are not strictly required: - for packages in the world file install as soon as available - for dependencies install the new slot if everything works with the new slot This would mean that Portage would stay with 2.6 as long as you have something that doesn't work with 3.x installed. Regards, Petteri signature.asc Description: OpenPGP digital signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On Thu, 18 Mar 2010 22:02:38 +0200 Petteri Räty betelge...@gentoo.org wrote: Here's how we could change Portage behavior for pulling new slots that are not strictly required: - for packages in the world file install as soon as available - for dependencies install the new slot if everything works with the new slot This would mean that Portage would stay with 2.6 as long as you have something that doesn't work with 3.x installed. Why would you want the majority of your packages that can use a newer, shinier version of a library to continue using the old version? Do you really want to stick with Qt3 until every single app you have supports Qt4? -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 03/18/2010 08:55 PM, Arfrever Frehtes Taifersar Arahesis wrote: 2010-03-18 20:47:35 Thomas Sachau napisał(a): On 03/18/2010 08:33 PM, Arfrever Frehtes Taifersar Arahesis wrote: 2010-03-18 20:20:02 Thomas Sachau napisał(a): Currently, some packages just depend on dev-lang/python. Arfrever claims it to be right It's correct only for packages (e.g. dev-python/setuptools), which support all versions of Python (including Python 3). Can you tell us any benefit for the normal user, when you require him to install python-3* I don't require it. It's only a side effect of correct dependencies. Wrong. Correct dependencies only require the set of packages they need, they dont pull in packages nor versions, which are not used or needed. Since you claim portage behaviour being right and you dont want to change dev-lang/python dependency, you want to force all users to install python-3*, also it is not needed nor used nor is there any benefit from it being installed. -- Thomas Sachau Gentoo Linux Developer signature.asc Description: OpenPGP digital signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 03/18/2010 09:02 PM, Petteri Räty wrote: On 03/18/2010 09:43 PM, Thomas Sachau wrote: So my vote goes for changing the dependency strings for affected packages. Here's some thoughts on the matter: - dev-lang/python is correct if the package works with all python versions in tree - in general we want new slots of packages like gcc being pulled in Here's how we could change Portage behavior for pulling new slots that are not strictly required: - for packages in the world file install as soon as available - for dependencies install the new slot if everything works with the new slot This would mean that Portage would stay with 2.6 as long as you have something that doesn't work with 3.x installed. Regards, Petteri How do you detect this? Also, what about a new slot for python-2? E.g. 2.7? And do you want to add a special rule to portage just for the special case of python instead of the ebuilds/eclasses having the issue? There is currently the additional issue with distutils.eclass, which does directly add dev-lang/python to the dependencies, if there is nothing additional defined. So even e.g. dev-libs/protobuf does pull in python-3*, also there is no indication, that it will even work with that version. -- Thomas Sachau Gentoo Linux Developer signature.asc Description: OpenPGP digital signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 18 March 2010 20:24, Fabian Groffen grob...@gentoo.org wrote: On 18-03-2010 20:20:02 +0100, Thomas Sachau wrote: There are 2 ways to fix this issue: -fix the dependency string for those packages (including the lines in distutils.eclass) or (since Arfrever claims current portage behaviour is wrong) -change portage behaviour to be satisfied with a python slot and to not require other slots. Since the last option will take time in any case, I guess the first option is the best to achieve the desired goal: make sure Python 3 stays as far away as possible from any system that doesn't need it. And the best way to do that is to package.mask it. Cheers, -- Ben de Groot Gentoo Linux Qt project lead developer
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On Thu, 18 Mar 2010 21:27:50 +0100 Ben de Groot yng...@gentoo.org wrote: Since the last option will take time in any case, I guess the first option is the best to achieve the desired goal: make sure Python 3 stays as far away as possible from any system that doesn't need it. And the best way to do that is to package.mask it. Mask in the CVS tree?! Hmmm, there are tons of broken junk long dead upstream in the tree that doesn't even compile - guess what - not masked and noone's caring. Why on earth would you mask a working package with extremely active maintainer in CVS - just because you don't have a use for it? So why don't you mask it for yourself if you don't have any use for it? The time spent on this ML debate would IMHO be better spent on fixing the dependencies in the tree for stuff that doesn't work w/ python-2 and yet has unversioned or = deps in ebuilds and such. [1] Cheers, DN. [1] http://tinyurl.com/yhlmcq8 signature.asc Description: PGP signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 03/18/2010 10:10 PM, Ciaran McCreesh wrote: On Thu, 18 Mar 2010 22:02:38 +0200 Petteri Räty betelge...@gentoo.org wrote: Here's how we could change Portage behavior for pulling new slots that are not strictly required: - for packages in the world file install as soon as available - for dependencies install the new slot if everything works with the new slot This would mean that Portage would stay with 2.6 as long as you have something that doesn't work with 3.x installed. Why would you want the majority of your packages that can use a newer, shinier version of a library to continue using the old version? Do you really want to stick with Qt3 until every single app you have supports Qt4? PM can make it configurable. It's a trade off between having as few packages as possible installed and upgrading as soon as possible. In general I want to keep my installed stuff to minimum. I don't have a need for new stuff that I don't know exists. If I know packages can make use of it to give me something new and shiny I can always manually request the new slot to be installed. Most likely before everything is ported over there is something written to require the new version explicitly so it's sooner than you are saying. Regards, Petteri signature.asc Description: OpenPGP digital signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 03/18/2010 10:21 PM, Thomas Sachau wrote: On 03/18/2010 09:02 PM, Petteri Räty wrote: On 03/18/2010 09:43 PM, Thomas Sachau wrote: So my vote goes for changing the dependency strings for affected packages. Here's some thoughts on the matter: - dev-lang/python is correct if the package works with all python versions in tree - in general we want new slots of packages like gcc being pulled in Here's how we could change Portage behavior for pulling new slots that are not strictly required: - for packages in the world file install as soon as available - for dependencies install the new slot if everything works with the new slot This would mean that Portage would stay with 2.6 as long as you have something that doesn't work with 3.x installed. Regards, Petteri How do you detect this? By looking at the dependency graph? Also, what about a new slot for python-2? E.g. 2.7? Handled by the same rules. And do you want to add a special rule to portage just for the special case of python instead of the ebuilds/eclasses having the issue? What issue is there with ebuilds/eclasses? Both should reflect the deps as well as can be done with current EAPIs. If they don't, they need to be fixed. Regards, Petteri signature.asc Description: OpenPGP digital signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On Thu, 18 Mar 2010 23:00:56 +0200 Petteri Räty betelge...@gentoo.org wrote: Here's how we could change Portage behavior for pulling new slots that are not strictly required: - for packages in the world file install as soon as available - for dependencies install the new slot if everything works with the new slot This would mean that Portage would stay with 2.6 as long as you have something that doesn't work with 3.x installed. How do you detect this? By looking at the dependency graph? But you can't tell whether everything will work with the new slot until you've generated a full set of decisions, and you can't generate a full set of decisions until you decide whether you want to install the newer slot. The problem with expecting the resolver to be clever is that the same kind of clever in different places leads to horrible screwups... Every time the resolver has to make some kind of decision that isn't utterly explicit it's going to do the wrong thing in an annoying minority of cases. Much better to just have ebuilds say exactly what they mean. -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On Thu, Mar 18, 2010 at 09:13:01PM +0100, Thomas Sachau wrote: On 03/18/2010 08:55 PM, Arfrever Frehtes Taifersar Arahesis wrote: 2010-03-18 20:47:35 Thomas Sachau napisał(a): On 03/18/2010 08:33 PM, Arfrever Frehtes Taifersar Arahesis wrote: 2010-03-18 20:20:02 Thomas Sachau napisał(a): Currently, some packages just depend on dev-lang/python. Arfrever claims it to be right It's correct only for packages (e.g. dev-python/setuptools), which support all versions of Python (including Python 3). Can you tell us any benefit for the normal user, when you require him to install python-3* I don't require it. It's only a side effect of correct dependencies. Wrong. Correct dependencies only require the set of packages they need, they dont pull in packages nor versions, which are not used or needed. Since you claim portage behaviour being right and you dont want to change dev-lang/python dependency, you want to force all users to install python-3*, also it is not needed nor used nor is there any benefit from it being installed. dev-lang/python, if the pkg supports py2k/py3k (specifically py2.{4,5,6,7}, py3.{0,1,2}), *is* the correct dependency. End of story, no arguement is possible on that. Note I said 'correct', not 'desired'. It's the PM's choice how it chooses to fullfill that constraint. Now, even if py3k is basically unusable (for anything reliant on a framework, at this point in time it is unusable), that *still* doesn't matter- the dependency is *correct*. If you want to influence how the PM chooses what to use, that's masking or changing the algo it uses- not screwing up perfectly correct dependencies. Considering that the algo varies across all 3 managers, masking is the only tool that exists atm. ~harring pgptUvkVYB53o.pgp Description: PGP signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 03/18/2010 10:00 PM, Petteri Räty wrote: And do you want to add a special rule to portage just for the special case of python instead of the ebuilds/eclasses having the issue? What issue is there with ebuilds/eclasses? Both should reflect the deps as well as can be done with current EAPIs. If they don't, they need to be fixed. Regards, Petteri I know about distutils.eclass: If an ebuild does just inherit it and does not define anything special, it will add dev-lang/python to the dependency tree, which will pull in python-3*, also noone knows, if it is requested, supported or will even work there (e.g. dev-util/protobuf does pull in python-3*, also i dont see any marks, that it does support python-3*). -- Thomas Sachau Gentoo Linux Developer signature.asc Description: OpenPGP digital signature
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 03/18/10 21:53, Doktor Notor wrote: Why on earth would you mask a working package with extremely active maintainer in CVS Upstream stability is unequel Gentoo stability. Sebastian
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On 18 March 2010 21:53, Doktor Notor notordok...@gmail.com wrote: On Thu, 18 Mar 2010 21:27:50 +0100 Ben de Groot yng...@gentoo.org wrote: Since the last option will take time in any case, I guess the first option is the best to achieve the desired goal: make sure Python 3 stays as far away as possible from any system that doesn't need it. And the best way to do that is to package.mask it. Mask in the CVS tree?! Hmmm, there are tons of broken junk long dead upstream in the tree that doesn't even compile - guess what - not masked and noone's caring. If that is the case, that is bad practice and should be remedied, not used as an excuse to commit more crimes. Why on earth would you mask a working package with extremely active maintainer in CVS Because it is extremely useless to the great majority of users. Cheers, -- Ben de Groot Gentoo Linux Qt project lead developer
Re: [gentoo-dev] Packages pulling in python-3*, also they dont require it
On Thu, Mar 18, 2010 at 1:27 PM, Ben de Groot yng...@gentoo.org wrote: On 18 March 2010 20:24, Fabian Groffen grob...@gentoo.org wrote: On 18-03-2010 20:20:02 +0100, Thomas Sachau wrote: There are 2 ways to fix this issue: -fix the dependency string for those packages (including the lines in distutils.eclass) or (since Arfrever claims current portage behaviour is wrong) -change portage behaviour to be satisfied with a python slot and to not require other slots. Since the last option will take time in any case, I guess the first option is the best to achieve the desired goal: make sure Python 3 stays as far away as possible from any system that doesn't need it. And the best way to do that is to package.mask it. The maintainer has chosen not to mask it in gentoo-x86, which means users are empowered to mask it locally and everyone who is complaining about getting python3 installed on their system should mask it locally. This is how users work around other defaults in the tree they don't agree with (USE flags, KEYWORDS, etc.) I don't get why this is a big deal at all or why people are unable to solve this themselves. Cheers, -- Ben de Groot Gentoo Linux Qt project lead developer