1 |
> In two weeks from now, the council will meet again. This is the time |
2 |
> to raise and prepare items that the council should put on the agenda |
3 |
> to discuss or vote on. |
4 |
|
5 |
I'd like to ask the council to perform two votes about behaviour of |
6 |
install functions and about default src_install(). This arises from |
7 |
bug 481664, see the long discussion there [1]. |
8 |
|
9 |
In a nutshell: The default src_install() implementation in EAPIs 4 |
10 |
and 5 is flawed because it doesn't account for the DOCS variable being |
11 |
defined but empty. It ends up calling dodoc without any arguments in |
12 |
this case. This will work in Portage (with a QA warning), but the |
13 |
stricter implementation in Paludis will error out. |
14 |
|
15 |
1. I propose that we clarify PMS wording to say that the do*() install |
16 |
functions take one or filenames as arguments [2]. This would match |
17 |
established behaviour of all package managers. |
18 |
|
19 |
2. There is consensus that default src_install should be fixed in the |
20 |
next EAPI. The question is if we should retroactively change the |
21 |
specification [3]. Effectively, that wouldn't change Portage |
22 |
behaviour much (only suppress a QA warning), because it doesn't |
23 |
make any difference if checking for empty DOCS takes place in dodoc |
24 |
or in the caller. OTOH, it turns out that no ebuild is directly |
25 |
affected by the flaw in the package manager function (only |
26 |
indirectly, because the PM's implementation was copied to some |
27 |
eclasses). So maybe this change is not so urgent. |
28 |
|
29 |
To summarise the timeline of events so far: |
30 |
- Long-time Portage behaviour is that do* functions error out when |
31 |
called with no arguments. |
32 |
- PMS has documented this Portage behaviour, but wording isn't very |
33 |
clear for the issue at hand. |
34 |
- Other package managers also follow the Portage implementation. |
35 |
- EAPI 4 has introduced a default src_install function. The function |
36 |
doesn't account for empty DOCS. |
37 |
- Subsequently, the EAPI 4 default was copied to src_install of a few |
38 |
eclasses (e.g., multilib-minimal.eclass). |
39 |
- Portage was then changed to allow dodoc with no arguments [4]. |
40 |
Other do* functions keep their strict behaviour, though. |
41 |
- Some ebuilds started setting empty DOCS. This succeeds with Portage, |
42 |
but fails with other package managers. Bug 480892 was filed. |
43 |
- Recently, a QA warning was added to dodoc in Portage [5], so that |
44 |
ebuilds using empty DOCS can be spotted and fixed. |
45 |
|
46 |
Ulrich |
47 |
|
48 |
[1] https://bugs.gentoo.org/show_bug.cgi?id=481664 |
49 |
[2] http://article.gmane.org/gmane.linux.gentoo.pms/764 |
50 |
[3] http://article.gmane.org/gmane.linux.gentoo.pms/765 |
51 |
[4] http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=6271cfe43dcf0cb42d4c2c0b772a7be17be78d2f |
52 |
[5] http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=83ac345bb227dc1752a895d53037fce36c9c7966 |