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


Reply via email to