Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 273625 - Slot operator dependencies (EAPI 4)
Summary: Slot operator dependencies (EAPI 4)
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All Linux
: High normal
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 273620
  Show dependency tree
 
Reported: 2009-06-10 20:20 UTC by Sebastian Luther (few)
Modified: 2016-05-21 11:24 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sebastian Luther (few) 2009-06-10 20:20:58 UTC
This bug tracks the implementation of the EAPI 3 feature mentioned in the summary.
Comment 1 Michael Evans 2009-06-16 23:11:23 UTC
I was going to file a bug proposing something that sounds like this.  I'm not -sure- slot operator deps are what I was imagining or not, there's no linked documentation, description, or even reference to a central EAPI 3 document.

-

Subject: Modify slot information to include dependency slotting information

A series of recent problems has led me to propose this solution.

A) Perl 5.10 is not yet in gentoo due to 'dual life' problems with support packages.
B) Upgrading xorg to 1.6 caused evdev to break since it was linking against xorg 1.5, thus my keyboard and mouse no longer worked without repair from SSH (or somehow getting to consolemode... difficult for someone LACKING ssh access given that they can't get out of X anymore!).
C) I am -sure- that others have similar issues with other packages.

My proposal is a modification to the slotting system gentoo currently uses.  Instead of just telling us what API/ABI a package provides, an additional part that is automatically generated at install time will be added that specifies the ABI/API of packages it links against.  A package that is 'unslotted' would instead have some default slot, like 'gentoo' as it's slot, and would still retain the dependency information.

Examples:

A package with a default slot...
nvidia-drivers:gentoo -> nvidia-drivers:gentoo:virtual-linux=2.6.30

A package with multiple slots and multiple-installed versions.
perl-plugin:1:perl>=5.8:perl<5.10
perl-plugin:1:perl>=5.10:perl<5.12
perl-plugin:2:perl>=5.10:perl<5.12

An application could depend on perl-plugin:(how to mark empty?):5.10 to specify that it requires a given plugin installed with perl 5.10.  Specifying perl>=5.10 and perl-plugin as dependencies might also work; however then it would require a second pass or more memory to generate/retain combinations.
Comment 2 Sebastian Luther (few) 2009-06-17 06:54:14 UTC
Have a look at =app-doc/pms-99999999.
Comment 3 Jonathan Callen (RETIRED) gentoo-dev 2009-10-17 21:44:42 UTC
From PMS:

An operator slot dependency consists of a colon followed by one of the following operators:

*   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.

=   Indicates that any slot value is acceptable. In addition, for runtime dependencies, indicates that the package will break unless a matching package with slot equal to the slot of the best installed version at the time the package was installed is available.

To implement the equals slot operator, the package manager will need to store the slot of the best installed version of the matching package. The package manager may do this by appending the appropriate slot after the equals sign when saving the package’s dependencies. This syntax is only for package manager use and must not be used by ebuilds.
Comment 4 Pacho Ramos gentoo-dev 2016-05-20 11:29:44 UTC
I am not sure if, currently, this is being covered by specifying concrete subslots in depends :/
Comment 5 Zac Medico gentoo-dev 2016-05-20 16:09:42 UTC
Marking as fixed since the slot operator has been implemented since EAPI 4.

(In reply to Pacho Ramos from comment #4)
> I am not sure if, currently, this is being covered by specifying concrete
> subslots in depends :/

Originally, the spec didn't include subslots. The subslots were added in order to account for packages that we don't want to slot (like dev-lang/perl for example). I'm not sure if that answers your question.
Comment 6 Pacho Ramos gentoo-dev 2016-05-21 11:24:04 UTC
Yeah, thanks :)