08.12.2013 20:54, Tom Wijsman пишет: > Hello fellow developers > > == Situation == > > When specifying a dependency like cat/pkg it will default to cat/pkg:* > which is defined in `man 5 ebuild` as: > > * Indicates that any slot value is acceptable. In addition, > for runtime dependencies, indicates that the package will not > break if the matched package is uninstalled and replaced by a > different matching package in a different slot. > > This default reflects different behavior than what we use slots for, > besides allowing side-by-side installations we rather use it to > specifically depend on a new major version. (eg. dev-libs/glib). > > Let's say I want to a add a new major version of cat/pkg to the Portage > tree, introducing it in the same SLOT="0" isn't an option. This gives > us two options, one is SLOT="2", the other is to create cat/pkg2 or so. > > Creating a new SLOT is the most sane thing going forward; but, as the > default (:*) depends on any SLOT, this needs a half thousand commits to > fix up reverse dependencies. Thus, instead a new package is made. [1] > > When our defaults force us down such path, that can't be good and it > affects the quality of our Portage tree; so, this makes me wonder, can > we change the default from :* to :0? What do you think? > > [1] https://bugs.gentoo.org/show_bug.cgi?id=493652 > "media-libs/libsdl2: should be a SLOT=2 of media-libs/libsdl" > > == Task == > > If we agree we do this; in order to change :* to :0, we need to change > the PMS to cover this change and implement it in the package managers. > > Before we do that, we need to evaluate how practical this is to apply. > While we are trying to fix the default behavior, what would changing > the default from :* to :0 break? > > One thing that directly comes to mind is that dependencies that have no > SLOT="0" ebuild present would need us to manually specify a specific > SLOT; given that this is a not so common situation, the amount of > commits needed here is low. > > Another thing that comes to mind is that we need to check what to do > with packages were the highest available version does not belong to > SLOT="0"; technically, restricting these to SLOT="0" will not cause > breakage, it might however cause some blockers. We'll have to look > closer into how we can alleviate this result. > > Is there anything else we need to take into account? > > == Summary == > > Situation: > > Defaulting to :* on SLOT-less dependencies makes it hard to add a > new SLOT to a package, using :0 instead would not make this a > problem and not require to fix up all reverse dependencies. > > Task: > > Check results, correct some exceptions, update PMS, implement it. > > Thank you in advance for participating in this discussion. > In short - please do NOT do this. More complicated answer - you break the whole idea of slots. When user types 'emerge cat/foo' it means now - "i want cat/foo, whatever versions it will be(depending on mask, keywords, etc, etc)". Your proposal changes this behaviour drastically, and reasons for such changes are not worth it. -- Best regards, Sergey Popov Gentoo developer Gentoo Desktop Effects project lead Gentoo Qt project lead Gentoo Proxy maintainers project lead