1 |
-----BEGIN PGP SIGNED MESSAGE----- |
2 |
Hash: SHA512 |
3 |
|
4 |
Hi James , |
5 |
|
6 |
> As a minimalist I'm trying to ferret out the differences in some of the |
7 |
> more minimal profiles versus potential embedded profiles, across several |
8 |
> different architectures: (arm32, arm64 x63_32 x86_64 ppc etc). I am also |
9 |
> quite curious to find a tool that will clearly list the complete set of |
10 |
> packages a given (eselected) profile will yield and the best ways to |
11 |
> customize that list of minimal (critical) packages. |
12 |
|
13 |
You're venturing into wonderland. Expect some mad hatters to pop up. |
14 |
|
15 |
> So in /etc/portage/profiles, we have lots of good information. |
16 |
|
17 |
You probably mean /usr/portage/profiles? |
18 |
|
19 |
> For example |
20 |
> the 'base' dir currently lists 77 packages found in most profiles (?). The |
21 |
> '/usr/portage/profiles/arch.list' dir lists not only the recognized arches |
22 |
> but also "Prefix Keywords". I'm not exactly sure how all of this profile |
23 |
> stuff works; who decides what's (packages) in and out, package_masks etc |
24 |
> etc. |
25 |
|
26 |
> So my questions related to how does gentoo actually determines the exact |
27 |
> list of programs that are minimally installed, with the specific |
28 |
> arch and the profile selected? In previous times, I just put USE='-*' in |
29 |
> the make.conf file and built upwards from there. |
30 |
|
31 |
Don't, it breaks things. |
32 |
|
33 |
> Still there were baseline |
34 |
> packages in the most minimal of stage based gentoo builds. I'm looking for |
35 |
> a current approach to bridging between a baseline default profile (for |
36 |
> amd64 that would be: [1] default/linux/amd64/13.0 *) and an embedded |
37 |
> amd64 profile (if one currently exist? How do I find the potential |
38 |
> profiles for say another arch (ppc for example), from an amd64 based |
39 |
> gentoo system? Tools? Recommended scripts to review? |
40 |
|
41 |
Your best bet is the (undocumented) portage python API. I guess the question |
42 |
is specific enough that you can pop into #gentoo-portage and ask. |
43 |
|
44 |
> 'eselect profile list' currently shows 21 amd64 choices: |
45 |
> |
46 |
> [1] default/linux/amd64/13.0 * |
47 |
> [2] default/linux/amd64/13.0/selinux |
48 |
> [3] default/linux/amd64/13.0/desktop |
49 |
> [4] default/linux/amd64/13.0/desktop/gnome |
50 |
> [5] default/linux/amd64/13.0/desktop/gnome/systemd |
51 |
> [6] default/linux/amd64/13.0/desktop/kde |
52 |
> [7] default/linux/amd64/13.0/desktop/kde/systemd |
53 |
> [8] default/linux/amd64/13.0/desktop/plasma |
54 |
> [9] default/linux/amd64/13.0/desktop/plasma/systemd |
55 |
> [10] default/linux/amd64/13.0/developer |
56 |
> [11] default/linux/amd64/13.0/no-multilib |
57 |
> [12] default/linux/amd64/13.0/systemd |
58 |
> [13] default/linux/amd64/13.0/x32 |
59 |
> [14] hardened/linux/amd64 |
60 |
> [15] hardened/linux/amd64/selinux |
61 |
> [16] hardened/linux/amd64/no-multilib |
62 |
> [17] hardened/linux/amd64/no-multilib/selinux |
63 |
> [18] hardened/linux/amd64/x32 |
64 |
> [19] hardened/linux/musl/amd64 |
65 |
> [20] default/linux/uclibc/amd64 |
66 |
> [21] hardened/linux/uclibc/amd64 |
67 |
> |
68 |
> |
69 |
> |
70 |
> But looking here at the files and directories ( ls /usr/portage/profiles) |
71 |
> |
72 |
> I see an organization structure that differs from the profile listing |
73 |
> semantics. So is there a script(s) that shows me what is being read from |
74 |
> the directory tree that yields those 21 choices? It seems a bit convoluted |
75 |
> to me, but I could easily have missed the documents that organize and |
76 |
> discuss such details? Or at least a listing of the scripts that build these |
77 |
> profile lists? Or is this adhoc? |
78 |
|
79 |
The choices from eselect come from /usr/portage/profiles/profiles.desc |
80 |
|
81 |
About what each of these profiles does - you can find that out by starting |
82 |
with the directory given in profiles.desc (e.g., |
83 |
/usr/portage/profiles/hardened/linux/amd64 for choice [14]) and follow the |
84 |
content of the "parent" files in the directories for inheritance. |
85 |
|
86 |
> The next thought is how then to best (succinctly) determine the complete |
87 |
> list of packages that will be pulled into any given (arch) profile. Is this |
88 |
> a fiefdom situation where those devs that maintain that arch (tongue in |
89 |
> cheek) quasi-use these scripts, config files and the /usr/portage/profiles |
90 |
> tree structure, consistently or as they wish? I'm not looking for emotional |
91 |
> responses, just clarity on where we are. |
92 |
|
93 |
Basically you have to follow the inheritance tree as defined by the parent |
94 |
files, and add stuff up. For the detailed algorithms, see app-doc/pms (good |
95 |
bedtime reading). |
96 |
|
97 |
The targets (systemd, desktop, kde, gnome) are more or less maintained by the |
98 |
respective teams. |
99 |
|
100 |
The arch dirs are maintained by the arch teams. |
101 |
|
102 |
Since changes to any of these dirs may affect a lot, they are usually done |
103 |
with care and rather minimally. |
104 |
|
105 |
> Finally. What if I want to "roll my own profiles"; should I just build on |
106 |
> one of the minimal ones or create something anew that exists only on my |
107 |
> systems? |
108 |
|
109 |
You *can* roll your own profiles, but it's non-trivial and can cause pain. |
110 |
You'll probably end up asking a lot of questions before it works. It took me a |
111 |
while to figure it out even when already knowing how the main profile tree |
112 |
more or less works. |
113 |
|
114 |
For an example, check my dev overlay (it adds one profile for x86 and for |
115 |
amd64). |
116 |
|
117 |
Your safest bet would be to inherit the arch main profile (e.g. |
118 |
default/linux/amd64/13.0) and maybe remove some stuff. However, there's not |
119 |
too much to remove left there. So I'm not sure if it's really worth the |
120 |
effort. |
121 |
|
122 |
Cheers, Andreas |
123 |
|
124 |
- -- |
125 |
Andreas K. Huettel |
126 |
Gentoo Linux developer (council, perl, libreoffice) |
127 |
dilfridge@g.o |
128 |
http://www.akhuettel.de/ |
129 |
-----BEGIN PGP SIGNATURE----- |
130 |
Version: GnuPG v2 |
131 |
|
132 |
iQIcBAEBCgAGBQJVfebGAAoJEB9VdM6hupKVj88P/RZ5WB3y0LJSVt+bffjawAHb |
133 |
dGENbzGx0MCqlr+yAlxkzbY8fVfpS0w9j4+p2/rWeqVv1VZLxqA0SOWKUD9wZ61W |
134 |
ScxLMq9Xe7juBwmOdNE+83QVRSNJUlPP4spBDhDf89qLlYVEgNCaOo/8nbWaQzjM |
135 |
JR7e6Jjhf/QI/2ySkYybRhXVAatw+u9E++VsucBY17+qq/gIES2U3Rnuajq6OSFR |
136 |
acv2lrVYA6MujX/5dWqypDLVE2xuuUgr1SHn+BWdOReI4ON7kMrrlkxa1W+/AUxm |
137 |
2ByZc0LF3Xtdsxrnbd0wJuqdp0j4Fk3WX7VOU1appqt4bAG0GkXfwTUt0XVn7Wa9 |
138 |
0fJAlo/LYURie/xBRh4E0pNUys0///r8iR9d0ikXQmL1/UjC1OzHTNW1s5K3P1o8 |
139 |
1/3urkIMUQz2iFOJ29Rx6Iwn3862yYEkb2fn3CHGO6T/6rc8KiwjKT+mybCVn5lv |
140 |
qp4AWzXwOm8jILYrqdYcwwhoDKtaHylJM2iVCVTI0wKf/BOor/I/QyyPXryZP0Jm |
141 |
yNn3ybaHQX2V++PNH6DZK1l71BTmyJcvau7Jl8lQZ9EVZNoAheMyfng8rzKduulE |
142 |
tIQ300wZJOXqqRyRpG22TMEuGG0EkV8d3fdP0I596nW7QyzPhRcjyQGMNOWFioZl |
143 |
g5xt/rezdqCDhvd6saFx |
144 |
=VlVg |
145 |
-----END PGP SIGNATURE----- |