1 |
Hi people, |
2 |
|
3 |
I've been cooking a thought for some time now, and now I'm inviting you |
4 |
to have a look at and share your thoughts about it: |
5 |
|
6 |
The title could be somehow like: |
7 |
|
8 |
How to use "Gentoo, the Meta Distribution" to create my own |
9 |
"Enterprise Distribution"? |
10 |
|
11 |
When I say "my own Enterprise Distribution", I mean doing my own arch |
12 |
testing and stable keywords, for a small number of packages - less than |
13 |
200 here including @system. |
14 |
|
15 |
"Doing my own stable keywords" does not mean to throw away upstream |
16 |
(=Gentoo) keywords, but reuse them as unstable keywords for my |
17 |
distribution, so my distro-users can easily emerge packages which are |
18 |
either upstream-stable or even -unstable, assuming they know what they |
19 |
do then. |
20 |
|
21 |
Additionally, I want to have my own release cycles, using my own release |
22 |
profiles. |
23 |
|
24 |
This all implies that I "track" (=git-speaking) upstream tree in some |
25 |
scm, ideally with only my release profiles and my keywords as the only |
26 |
local difference. |
27 |
|
28 |
Now for how to specify the keywords: |
29 |
|
30 |
Assume upstream ebuild contains: |
31 |
KEYWORDS=' amd64 ~hppa ~mips ppc x86' |
32 |
|
33 |
my local ebuild then *additionally* might contain: |
34 |
HAUBIDIST_KEYWORDS='amd64 hppa ~x86' |
35 |
|
36 |
Now I want to tell PM which ebuild-keywords to use for my |
37 |
distro-instance, where only 1. and 2. really would make sense: |
38 |
1. ' amd64 hppa ~x86' |
39 |
2. ' amd64 hppa ~mips ~ppc ~x86' |
40 |
3. ' amd64 hppa ~mips ppc ~x86' |
41 |
4. '~amd64 ~hppa ~mips ppc ~x86' |
42 |
5. ' amd64 ~hppa ~mips ppc x86' |
43 |
|
44 |
This could be done by telling PM - in etc/make.conf or profile/make.conf |
45 |
- how to merge $KEYWORDS and $HAUBIDIST_KEYWORDS. According to above |
46 |
numbering, this might look like (with value-order being important): |
47 |
1. ACCEPT_DISTRO_KEYWORDS=' HAUBIDIST ' |
48 |
2. ACCEPT_DISTRO_KEYWORDS=' HAUBIDIST ~GENTOO' |
49 |
3. ACCEPT_DISTRO_KEYWORDS=' HAUBIDIST GENTOO' |
50 |
4. ACCEPT_DISTRO_KEYWORDS='~HAUBIDIST GENTOO' |
51 |
5. ACCEPT_DISTRO_KEYWORDS=' GENTOO HAUBIDIST' |
52 |
where 'HAUBIDIST' maps to ebuild's $HAUBIDIST_KEYWORDS and 'GENTOO' maps |
53 |
to ebuild's $KEYWORDS. |
54 |
|
55 |
This eventually also could apply for Gentoo Hardened, to not have that |
56 |
large list in package.mask, but HARDENED_KEYWORDS in the ebuilds, and |
57 |
ACCEPT_DISTRO_KEYWORDS='HARDENED ~GENTOO' in make.conf. |
58 |
|
59 |
And when HARDENED_KEYWORDS is in upstream ebuilds, also this could work |
60 |
for HAUBIDIST in make.conf then: |
61 |
ACCEPT_DISTRO_KEYWORDS='HAUBIDIST ~HARDENED' |
62 |
|
63 |
Now when "Gentoo" stands for either "Gentoo Linux" or "Gentoo Prefix": |
64 |
|
65 |
We could have PREFIX_KEYWORDS in the maintree-ebuild, and for HAUBIDIST |
66 |
- when it is a "Prefix Distribution" - to have in make.conf: |
67 |
ACCEPT_DISTRO_KEYWORDS='HAUBIDIST ~PREFIX' |
68 |
|
69 |
So for the vanilla "Gentoo Linux Distribution", this would mean: |
70 |
ACCEPT_DISTRO_KEYWORDS='GENTOO' |
71 |
the vanilla "Gentoo Prefix Distribution" would ship with: |
72 |
ACCEPT_DISTRO_KEYWORDS='PREFIX' |
73 |
and the vanilla "Gentoo Hardened Linux Distribution" with: |
74 |
ACCEPT_DISTRO_KEYWORDS='HARDENED ~GENTOO' |
75 |
|
76 |
What else would be needed for the whole topic: |
77 |
* helper scripts to manage/merge/update my private distro-tree. |
78 |
* helper scripts to set up my private distro's distfiles mirror. |
79 |
* repoman support for additional keyword variables |
80 |
* more thoughts |
81 |
* ... |
82 |
|
83 |
Thank you for your time reading until here! |
84 |
|
85 |
/haubi/ (-> weekend now) |
86 |
-- |
87 |
Michael Haubenwallner |
88 |
Gentoo on a different level |