Gentoo Archives: gentoo-dev

From: Ian Stakenvicius <axs@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] How to deal with package forks?
Date: Thu, 09 Mar 2017 16:05:26
Message-Id: 4cbf1d6d-ddd3-d608-15fc-a4769c422624@gentoo.org
In Reply to: [gentoo-dev] How to deal with package forks? by "Michał Górny"
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.

Attachments

File name MIME type
signature.asc application/pgp-signature