1 |
-----BEGIN PGP SIGNED MESSAGE----- |
2 |
Hash: SHA256 |
3 |
|
4 |
=============================================== |
5 |
Proposal for addition of distribution variables |
6 |
=============================================== |
7 |
|
8 |
:Author: |
9 |
A. Wilcox (Adélie Linux) |
10 |
:Date: |
11 |
2016-12-04 |
12 |
:Status: |
13 |
Request for Comment |
14 |
|
15 |
|
16 |
|
17 |
|
18 |
Introduction |
19 |
- ------------ |
20 |
|
21 |
This proposal outlines the addition of environment variables to a |
22 |
future EAPI for the purposes of identifying the builder of packages, |
23 |
and a route for their more immediate addition to the Gentoo package |
24 |
tree before the next EAPI is published. |
25 |
|
26 |
|
27 |
Background |
28 |
- ---------- |
29 |
|
30 |
The Gentoo package repository is used not only by thousands of users, |
31 |
but also used by other distributions and organisations, such as |
32 |
Funtoo, CoreOS, and Google ChromeOS. From the Gentoo Foundation's own |
33 |
charter, it self-describes in the following way: "Gentoo is a |
34 |
metadistribution". That allows users to make their own flavours of |
35 |
Gentoo themselves. Several forks already exist, including Exherbo, |
36 |
Funtoo, Sabayon, Galapagos, Vida, and Calculate. Google also |
37 |
maintains a fork, ChromeOS, for their Chromebook laptops. CoreOS also |
38 |
uses Gentoo's repository for their distribution. In addition, there |
39 |
are also binary distributions such as Pentoo and Adélie that provide |
40 |
additional value but are not, in so many words, a 'fork' of Gentoo. |
41 |
|
42 |
|
43 |
Current Situation |
44 |
- ----------------- |
45 |
|
46 |
Currently, forks and derivatives of Gentoo are required to choose one |
47 |
of only two options. They can either use the tree as is, which causes |
48 |
packages to identify as being built for Gentoo and causes most |
49 |
autoconf -based packages (and some CMake packages in KDE) to have |
50 |
their bug report URLs to point to bugs.g.o. Alternatively, they can |
51 |
fork the Git repository, requiring the need of manual merges when |
52 |
conflicts arise, and additional wasted effort when upstreams release |
53 |
new versions of software. |
54 |
|
55 |
|
56 |
Deficiencies |
57 |
- ------------ |
58 |
|
59 |
If a fork or derivative of Gentoo does not have the manpower or |
60 |
resources to modify all ebuilds that mention the Gentoo name / bug URL |
61 |
(about 1500 at my last count), then both distributions suffer. Users |
62 |
of the fork will file bugs with Gentoo that are not bugs in Gentoo. |
63 |
Developers of the fork will not know about said bugs, and be unable to |
64 |
fix them. Gentoo bug-wranglers and devs will have to waste time and |
65 |
resources testing bugs, finding out they are not even Gentoo bugs, and |
66 |
closing them as WONTFIX or WORKSFORME. |
67 |
|
68 |
If they choose the alternative of forking the repository and changing |
69 |
these parameters in ebuilds, then it makes upstreaming their |
70 |
improvements much more difficult. Sabayon has a repository on GitHub |
71 |
specifically for this, and Adélie wastes continual effort applying |
72 |
patches against the tree as it evolves. |
73 |
|
74 |
|
75 |
Solution Objectives |
76 |
- ------------------- |
77 |
|
78 |
* Protect Gentoo's name, trademark, and reputation by avoiding any |
79 |
appearance that derivative distributions are associated with Gentoo. |
80 |
|
81 |
* Lessen number of inappropriate bugs filed on bugs.g.o due to forks and |
82 |
derivatives. |
83 |
|
84 |
* Foster better collaboration and sharing of improvements between |
85 |
Gentoo and its forks/derivatives. |
86 |
|
87 |
* Future potential changes to the bug report URL, while exceedingly |
88 |
unlikely, is additionally made easier. |
89 |
|
90 |
|
91 |
Solution Vision |
92 |
- --------------- |
93 |
|
94 |
I hereby propose adding the following two variables to the src_* |
95 |
phases. None of these variables will have a default specified in PMS |
96 |
if they are added. |
97 |
|
98 |
:``${DISTRO}``: |
99 |
The name of the distribution. This would be set in |
100 |
``profiles/base/make.defaults`` on Gentoo to "Gentoo". |
101 |
|
102 |
:``${DISTRO_BUG_URL}``: |
103 |
The URL to use to report bugs with software on the distribution. |
104 |
This would be set to "https://bugs.gentoo.org/" on Gentoo. |
105 |
|
106 |
By replacing references to 'Gentoo' passed to ./configure, make, etc |
107 |
with ``${DISTRO}``, distributions like Sabayon, Calculate, and Adélie |
108 |
will be able to notate their name as the distributor on packages. |
109 |
This will affect packages such as LibreOffice, OpenRC, X.Org, and KDE, |
110 |
which are all compiled with the name of the distribution internally. |
111 |
They use this for bug information, and having the proper distribution |
112 |
name will allow for more proper bug handling and ensure less |
113 |
inappropriate blame is assigned to Gentoo. This also ensures that the |
114 |
fork or derivative's own mailing lists, forums, and so on are searched |
115 |
and contacted before Gentoo's. |
116 |
|
117 |
By replacing references to 'bugs.gentoo.org' passed to ./configure with |
118 |
``${DISTRO_BUG_URL}``, the Gentoo project will have a significant |
119 |
reduction in wasted effort handling inappropriately filed bugs when |
120 |
the issues are caused by changes by the forks and derivatives. |
121 |
|
122 |
|
123 |
Roadmap |
124 |
- ------- |
125 |
|
126 |
Since the shell environment is flexible, this change can be |
127 |
implemented almost immediately; the defaults specified in the Gentoo |
128 |
base profile ensure that at worst nothing will immediately change. As |
129 |
forks, derivatives, and other organisations change the environment |
130 |
variables in their profiles or ``make.conf`` files, all updated |
131 |
ebuilds will immediately reflect the changes. |
132 |
|
133 |
During this, the variables can be added to the EAPI=7 specification, |
134 |
and may eventually be added to PMS §11.1. |
135 |
|
136 |
|
137 |
Suggested Wording |
138 |
- ----------------- |
139 |
|
140 |
Attached is a patch for pms.git with suggested wording for the two |
141 |
variables mentioned above. |
142 |
|
143 |
- -- |
144 |
A. Wilcox (awilfox) |
145 |
Project Lead, Adélie Linux |
146 |
http://adelielinux.org |
147 |
-----BEGIN PGP SIGNATURE----- |
148 |
Version: GnuPG v2 |
149 |
|
150 |
iQIcBAEBCAAGBQJYRKdKAAoJEMspy1GSK50UC9UQAJDv1SV2vCc6V+5ndcvnMwoc |
151 |
DPkiXxhqSPtaoCSGbggIO9xHgFmnuYXYU7xT4w8sUApS/pp3EBY5GzES+3fztlT6 |
152 |
xvZG+peoxOf0aIa2KiAvNdYXDQLixxWS/irnJiKvXr0A2gYbic0Z5ztqDRtsu6aR |
153 |
tTaF5sp3uOUxcMs5otBC8bdvRPdwPatgr3zGG7TZ1TLCx2aQb5MFESH0wJXCig4i |
154 |
fp23MIKbcBqnVyxiOqffOiexxAeIVZX5kV+zkWRPOJyq7nbg5X2tg2KSqScC/j9N |
155 |
u0iVvfn/0ySv9Cnp9uWyHBvWyjymgnQPyM1wfPnCS6n834lx2Ydt2MAonIA6yJx2 |
156 |
cOF6/cXlBBNJ4WloAp51G1V7Rwvj5RhHB20gplDYPOIkbWi3WH10XvMhHJieSXZv |
157 |
KHiJAX25M/URvDtnllSYCir+a6+lsZAWzQzzTrACx647Gt5RWEo+Kik+7oXcSooM |
158 |
hTyEjBsVVj73CX2UXlYx7sT0p///nng+phLT1ZX3XIwJfM4bhBffpRtDULi/JNpV |
159 |
gWXm/kW8bndvgsay9nduwc1yd1fEdshVdcUlhLOYuHwo6oDCV6Z5xXldvTf1X2KW |
160 |
8rEWU17oCJOJokURkAWmZR29VUSc6mbPtldk8w+N+V1bMQaSI5SWcHwtGsckXTaJ |
161 |
AcNQFF1dBC1GGOYpD8IK |
162 |
=ctPw |
163 |
-----END PGP SIGNATURE----- |