1 |
Stephen Bennett wrote: |
2 |
> On Tue, 30 Jan 2007 17:06:51 +0100 |
3 |
> Marius Mauch <genone@g.o> wrote: |
4 |
> |
5 |
>> The idea is to add a special category (let's call it "active" for |
6 |
>> now) that has the following properties: |
7 |
>> - this category doesn't exist in portdir or vdb (= no ebuilds) |
8 |
>> - when portage ($pkgmanager) encounters a "active/foo" atom in a |
9 |
>> dependency string it executes some special code (e.g. |
10 |
>> "$PORTDIR/scripts/active-check/foo =active/foo-1") to determine if |
11 |
>> that atom is satisfied |
12 |
> |
13 |
> Given that in the general case the package manager can't change the |
14 |
> active provider and will have to bail with an appropriate message that |
15 |
> the user needs to change it themselves, the obvious solution to this is |
16 |
> the previously-discussed-somewhere-I-can't-remember ebuild function, |
17 |
> called on depgraph creation, to check that it will be able to compile |
18 |
> in the current system environment. It's considerably simpler and more |
19 |
> generally useful than subverting DEPEND to add weird special-case hacks |
20 |
> to it. |
21 |
|
22 |
No one said subverting DEPEND was necessarily required. |
23 |
|
24 |
This stuff is essentially another visibility filter. |
25 |
|
26 |
Think for example along the ACCEPT_RESTRICT lines, but less fugly. |
27 |
|
28 |
User has FEATURES="sandbox" |
29 |
|
30 |
ebuild has RESTRICT="sandbox" |
31 |
|
32 |
Ebuild is not visible because it is incompatable with current environment. |
33 |
|
34 |
The only problem here being some visibility filters are 'soft' (like |
35 |
sandbox and USE vars) and some filters are hard (dependencies). USE |
36 |
flags can often be flippy flopped to get a solution (as with sandbox, |
37 |
which can be selectively turned off). |
38 |
-- |
39 |
gentoo-portage-dev@g.o mailing list |