1 |
On 09/03/17 10:34 AM, Michał Górny wrote: |
2 |
> The second group (patch sets) is more unclear. AFAICS some people argue |
3 |
> that packages with major patch sets applied should be distinguished by |
4 |
> separate package names. Others see that applying them via USE flags is |
5 |
> easier. |
6 |
> |
7 |
> Separate packages are used e.g. for different kernel patch sets. This |
8 |
> has the following advantages: |
9 |
> |
10 |
> 2a1. more clear distinction between base and patched version, |
11 |
> |
12 |
> 2a2. cleaner when patch sets imply major changes, e.g. when some |
13 |
> of the USE flags apply to patched version only, |
14 |
> |
15 |
> 2a3. the packages can be bumped independently, without worrying that |
16 |
> the patch set has not been updated yet. |
17 |
> |
18 |
> A single package with USE flags is used e.g. for openssl (hpn patch |
19 |
> set), bitcoincore (ljr patch set). This has the following advantages: |
20 |
> |
21 |
> 2b1. available patches are cleanly exposed via USE flags, |
22 |
> |
23 |
> 2b2. multiple patch sets can be combined in a single package, |
24 |
> |
25 |
> 2b3. usually there is less work for the package maintainer. |
26 |
> |
27 |
> |
28 |
> The third group (dead package forks) is most unclear to me, especially |
29 |
> that those kinds of forks frequently continue using the original package |
30 |
> name. |
31 |
> |
32 |
> The advantage of treating the fork as a continuation of the original |
33 |
> package is that it requires no effort from users, and is clear from |
34 |
> keywording/stabilization perspective. However, it means that users |
35 |
> suddenly start using a package from different upstream -- but then, does |
36 |
> it differ much compared to when upstream developers change? |
37 |
> |
38 |
> Using separate packages would clearly indicate that we're switching to |
39 |
> a fork. However, usually this would mean inventing a custom package name |
40 |
> (like 'xarchiver-ib'), and somehow informing users about the switch. For |
41 |
> stable packages, we'd also have to figure out some reasonable way to |
42 |
> suggest the upgrade first to ~arch users, then to stable. |
43 |
> |
44 |
|
45 |
I think for both of these cases, developer discretion is required to |
46 |
choose the correct path. For the large-patchset case, it depends for |
47 |
instance if the patchset is just adding major features not included |
48 |
upstream or if it's significantly changing the regular operations of |
49 |
the package (almost as if it should be a fork) -- the bitcoin example |
50 |
may (can't confirm as i haven't looked) fall into the latter case, |
51 |
while USE=experimental on gentoo-sources definitely falls into the |
52 |
former IMO. |
53 |
|
54 |
Similarly for the dead-fork case -- x11-misc/slim is my example on |
55 |
this one, as the original upstream has died twice since I started |
56 |
maintaining that package and most recently I've essentially taken over |
57 |
the package and become its upstream (at least for gentoo; it's unclear |
58 |
what other distros are using but all of the various forks that seem to |
59 |
be out there are more out-of-date than mine). Back to the point, the |
60 |
change in fork on the x11-misc/slim package in this case just ensures |
61 |
continuity; I expect there are other packages where the new generation |
62 |
arising from the previously dead upstream warrants a whole new name, |
63 |
especially if this fork has adopted a new or revised name. I expect |
64 |
we likely SHOULDN'T diverge from upstream naming in these cases unless |
65 |
there's a really good reason to do so, but at the same time if there's |
66 |
a fork that has become a de-facto new upstream I expect it's safe to |
67 |
use that directly without any form of rename or possibly even end-user |
68 |
notification. |
69 |
|
70 |
It's the maintainer's responsibility to ensure the package works as |
71 |
expected and pick up the pieces whenever it doesn't, which can (often) |
72 |
mean maintaining large patchsets that take forever to integrate |
73 |
upstream (if ever). Although I think most of those tend to be |
74 |
build-system related rather than code related, it's all sort of within |
75 |
the same overall scope. We do have a loose (or is it firm?) policy to |
76 |
avoid deviation from the upstream experience as much as possible in |
77 |
gentoo-repo packages, so as long as said experience is maintained from |
78 |
the end-user perspective I think the maintainer's choice is fine. |
79 |
|
80 |
Of course, when packages are proxy-maintained things can get a little |
81 |
more difficult as more often than not we don't really have a de-facto |
82 |
gentoo maintainer, so maybe in those cases a clear policy or guidline |
83 |
of what proxy-maint will and won't accept should be defined. |