Andreas K. Huettel <dilfridge <at> gentoo.org> writes:
> You're venturing into wonderland. Expect some mad hatters to pop up. Yes! > > So my questions related to how does gentoo actually determines the exact > > list of programs that are minimally installed, with the specific > > arch and the profile selected? In previous times, I just put USE='-*' in > > the make.conf file and built upwards from there. > Don't, it breaks things. It use to work. So maybe building up from an embedded profile for a given arch? Problem is I'm not certain there is an "embedded" profile for any of the arches? If there is, then I could use that list of packages and tweak the list for another arch. > > Still there were baseline > > packages in the most minimal of stage based gentoo builds. I'm looking for > > a current approach to bridging between a baseline default profile (for > > amd64 that would be: [1] default/linux/amd64/13.0 *) and an embedded > > amd64 profile (if one currently exist? How do I find the potential > > profiles for say another arch (ppc for example), from an amd64 based > > gentoo system? Tools? Recommended scripts to review? > > Your best bet is the (undocumented) portage python API. I guess the > question is specific enough that you can pop into #gentoo-portage and > ask. OK. Good info. adhoc, as I suspected, burried in codes, scrips and data structures..... Busybox was the only common package I could find for embedded trees. > The choices from eselect come from /usr/portage/profiles/profiles.desc Ah! > About what each of these profiles does - you can find that out by > starting with the directory given in profiles.desc (e.g., > /usr/portage/profiles/hardened/linux/amd64 for choice [14]) and follow > the content of the "parent" files in the directories for inheritance. Ahhh! Boy some organizing tool would be keen to discern the differences. The next part would be the buzilla status of the profiles in comparison to what is common. Remember, I'm looking bottom (minimalistic upwards) to it should be much less that the (77) baseline packages.... There is a gap between embedded and baseline(=default); and no rhyme or reason. Adhoc per arch, mostly, if at all. > > The next thought is how then to best (succinctly) determine the complete > > list of packages that will be pulled into any given (arch) profile. > > Basically you have to follow the inheritance tree as defined by the > parent files, and add stuff up. For the detailed algorithms, see > app-doc/pms (good bedtime reading). > > The targets (systemd, desktop, kde, gnome) are more or less maintained > by the respective teams. > The arch dirs are maintained by the arch teams. > > Since changes to any of these dirs may affect a lot, they are usually > done with care and rather minimally. Yep! I keep old boxes around for such (destructive risk) noodling. > > Finally. What if I want to "roll my own profiles"; should I just > > build on one of the minimal ones or create something anew that exists > > only on my systems? > You *can* roll your own profiles, but it's non-trivial and can cause > pain. You'll probably end up asking a lot of questions before it works. > It took me a while to figure it out even when already knowing how the > main profile tree more or less works. Surely I know this. But looking for some standardization for "embedded-Gentoo" (i.e. the most mini-sizable possible embedded gentoo linux) should not be that difficult for most common arches we support. Getting from there to "minimized" and then "default" from the same arch tree (pathways) should be mostly the same except for things mandated by the functional differences of the arches themselves. I think I'm going to limit this (for now) to these arches (AMD64 x86_32 arm64 arm(32). > For an example, check my dev overlay (it adds one profile for x86 and for > amd64). Will do. > Your safest bet would be to inherit the arch main profile (e.g. > default/linux/amd64/13.0) and maybe remove some stuff. However, there's > not too much to remove left there. So I'm not sure if it's really worth > the effort. > Cheers, Andreas That is the 'top down' approach ((default --> embedded). You'd think this quest is the same, but I'm going to first look at this 'bottom up' (embedded --> minimal --> default); but much is missing. So I'll look at what exists in various embedded arches. I just cannot reconcile why there is no bridge between embedded and (some/any)minimal and default. I do understand now why you cannot (usually) change profiles; the profile system is a mess and really needs a whole new overall design. That's why we still have '13' in the profiles even though it's 2015. The entire gentoo profile system is showing it's age and evolutionary problems, imho. I not saying I'm taking on that brood of hornets, but just a few select migrations from embedded to minimal. Note {embedded << minimal << default} I still have some vintage gentoo systems running which have very few flags set and include (USE="-*") in make.conf. And a {state-machine/executive/rtos << embedded(linux)}, just so we are on the same page. thx! James