1 |
-----BEGIN PGP SIGNED MESSAGE----- |
2 |
Hash: SHA256 |
3 |
|
4 |
On 25/09/12 02:03 PM, Ian Stakenvicius wrote: |
5 |
> Since hasufell brought it up, and as I believe he's going to ask |
6 |
> Council to approve it before moving forward with this proposal |
7 |
> towards including it in an EAPI, I wanted to clarify some of the |
8 |
> points mentioned: |
9 |
> |
10 |
> --- Quote, GLEP-62 --- |
11 |
>> Specifications, paragraph 3: The package manager should treat |
12 |
>> flags listed in IUSE_RUNTIME as regular USE flags, except for the |
13 |
>> following: |
14 |
> |
15 |
>> 1. enabling or disabling any of the flags must not involve |
16 |
>> rebuilding the package, |
17 |
> |
18 |
>> 2. it should be possible for a package manager to change those |
19 |
>> flags on a installed package without using the original ebuild, |
20 |
> |
21 |
>> 3. when queried on a installed package, the package manager must |
22 |
>> consider a particular flag enabled only if its dependencies are |
23 |
>> satisfied already, |
24 |
> |
25 |
>> 4. the flags may be listed in the visual output in a distinct way |
26 |
>> to inform the user that they affect runtime dependencies only. |
27 |
> |
28 |
> |
29 |
> #2 -- this would, if I'm understanding it properly, mean that the |
30 |
> IUSE list and the IUSE_RUNTIME list in the 'original ebuild' (ie in |
31 |
> vdb) would be ignored on an emerged package in favour of the |
32 |
> ebuild(s) in the tree, right? I'm not so sure this is a good |
33 |
> idea. |
34 |
> |
35 |
> IE, if IUSE and IUSE_RUNTIME have changed in the in-tree ebuild |
36 |
> and one of those use flags that changed have been triggered or |
37 |
> de-triggered I expect that the package should be rebuilt, to keep |
38 |
> it consistent with current practices. |
39 |
> |
40 |
> IE2, shouldn't the original ebuild be what's used to trigger the |
41 |
> skip-rebuild functionality, rather than the in-tree ebuild? |
42 |
> |
43 |
> |
44 |
> #3 -- this seems to imply to me, that the state of a package's |
45 |
> effective USE could be modified solely on the basis of a |
46 |
> dependency existing or not and have nothing to do with what the |
47 |
> flag was set to at emerge time. IE, *not* the state of USE in the |
48 |
> vdb. I think this would also be a problem. |
49 |
> |
50 |
> In order to properly handle dependency resolution (which IMO we |
51 |
> should do, because these are still USE flags) I think all use flag |
52 |
> settings should still be honoured by the PM and related metadata in |
53 |
> the vdb be updated for IUSE_RUNTIME flags identically to how it |
54 |
> would be done if IUSE_RUNTIME wasn't set. |
55 |
> |
56 |
> |
57 |
> Thoughts? |
58 |
> |
59 |
|
60 |
|
61 |
Based on the above I do expect the reference implementation would also |
62 |
need to change. I expect, for instance, that the PM's |
63 |
metadata-handling would need to occur as normal even though none of |
64 |
the package's phase functions would run, that is, *DEPEND |
65 |
(realistically RDEPEND as that should be the only one affected here, |
66 |
maybe PDEPEND too) and USE/PKGUSE would get updated. Since portage |
67 |
would not be re-emerging the package from the tree the original ebuild |
68 |
would remain. |
69 |
|
70 |
I expect, as a corollary to this, that a rebuild would be necessary if |
71 |
(on-disk-IUSE_RUNTIME xor in-ebuild-IUSE_RUNTIME) was non-empty |
72 |
(--newuse) or resulted in any flags that are in USE |
73 |
(--reinstall=changed-use). IMO this would be necessary to ensure the |
74 |
local ebuild copy and all related metadata for it gets updated in vdb. |
75 |
|
76 |
-----BEGIN PGP SIGNATURE----- |
77 |
Version: GnuPG v2.0.19 (GNU/Linux) |
78 |
|
79 |
iF4EAREIAAYFAlBh/EUACgkQ2ugaI38ACPAFfAD/UsYVQg6ZkwlsaWIafuFr0sqC |
80 |
7IuvqIgroxNWJ/5XRS8BAJ+5awXZanZftOmFWRmDUAxOvPc8+J073dAn78N0CPdB |
81 |
=zKzg |
82 |
-----END PGP SIGNATURE----- |