Hi people,
I've been cooking a thought for some time now, and now I'm inviting you
to have a look at and share your thoughts about it:
The title could be somehow like:
How to use "Gentoo, the Meta Distribution" to create my own
"Enterprise Distribution"?
When I say "my own Enterprise Distribution", I mean doing my own arch
testing and stable keywords, for a small number of packages - less than
200 here including @system.
"Doing my own stable keywords" does not mean to throw away upstream
(=Gentoo) keywords, but reuse them as unstable keywords for my
distribution, so my distro-users can easily emerge packages which are
either upstream-stable or even -unstable, assuming they know what they
do then.
Additionally, I want to have my own release cycles, using my own release
profiles.
This all implies that I "track" (=git-speaking) upstream tree in some
scm, ideally with only my release profiles and my keywords as the only
local difference.
Now for how to specify the keywords:
Assume upstream ebuild contains:
KEYWORDS=' amd64 ~hppa ~mips ppc x86'
my local ebuild then *additionally* might contain:
HAUBIDIST_KEYWORDS='amd64 hppa ~x86'
Now I want to tell PM which ebuild-keywords to use for my
distro-instance, where only 1. and 2. really would make sense:
1. ' amd64 hppa ~x86'
2. ' amd64 hppa ~mips ~ppc ~x86'
3. ' amd64 hppa ~mips ppc ~x86'
4. '~amd64 ~hppa ~mips ppc ~x86'
5. ' amd64 ~hppa ~mips ppc x86'
This could be done by telling PM - in etc/make.conf or profile/make.conf
- how to merge $KEYWORDS and $HAUBIDIST_KEYWORDS. According to above
numbering, this might look like (with value-order being important):
1. ACCEPT_DISTRO_KEYWORDS=' HAUBIDIST '
2. ACCEPT_DISTRO_KEYWORDS=' HAUBIDIST ~GENTOO'
3. ACCEPT_DISTRO_KEYWORDS=' HAUBIDIST GENTOO'
4. ACCEPT_DISTRO_KEYWORDS='~HAUBIDIST GENTOO'
5. ACCEPT_DISTRO_KEYWORDS=' GENTOO HAUBIDIST'
where 'HAUBIDIST' maps to ebuild's $HAUBIDIST_KEYWORDS and 'GENTOO' maps
to ebuild's $KEYWORDS.
This eventually also could apply for Gentoo Hardened, to not have that
large list in package.mask, but HARDENED_KEYWORDS in the ebuilds, and
ACCEPT_DISTRO_KEYWORDS='HARDENED ~GENTOO' in make.conf.
And when HARDENED_KEYWORDS is in upstream ebuilds, also this could work
for HAUBIDIST in make.conf then:
ACCEPT_DISTRO_KEYWORDS='HAUBIDIST ~HARDENED'
Now when "Gentoo" stands for either "Gentoo Linux" or "Gentoo Prefix":
We could have PREFIX_KEYWORDS in the maintree-ebuild, and for HAUBIDIST
- when it is a "Prefix Distribution" - to have in make.conf:
ACCEPT_DISTRO_KEYWORDS='HAUBIDIST ~PREFIX'
So for the vanilla "Gentoo Linux Distribution", this would mean:
ACCEPT_DISTRO_KEYWORDS='GENTOO'
the vanilla "Gentoo Prefix Distribution" would ship with:
ACCEPT_DISTRO_KEYWORDS='PREFIX'
and the vanilla "Gentoo Hardened Linux Distribution" with:
ACCEPT_DISTRO_KEYWORDS='HARDENED ~GENTOO'
What else would be needed for the whole topic:
* helper scripts to manage/merge/update my private distro-tree.
* helper scripts to set up my private distro's distfiles mirror.
* repoman support for additional keyword variables
* more thoughts
* ...
Thank you for your time reading until here!
/haubi/ (-> weekend now)
--
Michael Haubenwallner
Gentoo on a different level
|