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