1 |
Hi Anders, sorry for being verbose, but: |
2 |
|
3 |
On 07/15/2014 08:19 PM, Anders Bo Rasmussen wrote: |
4 |
> Hi again. |
5 |
> |
6 |
> Today I did some more experiments with Gentoo Prefix and I must say |
7 |
> that I think it looks very good. Basically I just compiled some |
8 |
> different programs ending with gvim, testing that it ran on servers |
9 |
> with different Linux distributions and as different users - and it all |
10 |
> worked :) |
11 |
|
12 |
Thanks! Actually, that's the goal of Gentoo Prefix. ;) |
13 |
|
14 |
> What I want to use Gentoo Prefix for is to make a toolchain for |
15 |
> compiling a software project (and at the same time also make a lot of |
16 |
> programs available on different servers). |
17 |
|
18 |
Seems you have very similar needs than ourself here, except that we do have |
19 |
to provide more packages than available in the Gentoo Prefix portage tree, |
20 |
on more platforms than RHEL and SLES. However, to provide a quite stable |
21 |
development environment, we did have to fork the Gentoo Prefix tree, to be |
22 |
able to maintain the stable keywords we have added, without the need to |
23 |
follow each Gentoo package upgrade. |
24 |
|
25 |
This fork was done in late 2009, and here we're currently in a process of |
26 |
upgrading to the current Prefix tree - without breaking the existing one. |
27 |
|
28 |
Additionally, we had to create my own profiles (versioned "2010.0"), to avoid |
29 |
the need to set USE flags and the like on the target instances. For each |
30 |
target platform there is a "stable", an "unstable" as well as a "buildbot" |
31 |
profile with appropriate ACCEPT_KEYWORDS settings, plus the special keyword |
32 |
called "~buildbot", accepted by the buildbot-profiles for each platform. |
33 |
|
34 |
Each project-development machine now has both a "stable" and an "unstable" |
35 |
instance of our 2010.0 Prefix distro with the appropriate profile selected. |
36 |
Software-project developers now use the "stable" instance for testing their |
37 |
releases as well as distributing to the customer's machine, while they use |
38 |
the "unstable" instance for using newer features, testing bugfixes in the |
39 |
Prefix distro and the like. |
40 |
|
41 |
Also, for each target platform there's at least one machine having the |
42 |
buildbot-slave doing fresh bootstraps once a week, as well as updating |
43 |
that bootstrapped instances triggered by various commit hooks, especially |
44 |
in our local overlay. |
45 |
|
46 |
> My basic idea is to have a script that makes a new version of my Gentoo |
47 |
> Prefix installation each time I run it, so it could be placed e.g. at |
48 |
> /<somewhere_global_available>/gentoo-<date>. This script or small set |
49 |
> of scripts should contain which packages to emerge, changes to |
50 |
> make.conf, package.use and other changes that is needed to make an |
51 |
> installation. And of course the scripts will be in a VCS. The software |
52 |
> project will just point to the version it currently uses at |
53 |
> /<somewhere_global_available>/gentoo-<date>. This way old versions of |
54 |
> the software project can be compiled without problems, as all the |
55 |
> tools will be the same version. |
56 |
|
57 |
Here, we do have a cron job, once a week creating a snapshot of both the |
58 |
merged tree (Prefix+overlay) and the distfiles from all ebuilds with at |
59 |
least one stable keyword, as well as the setup script that knows how to |
60 |
utilize these snapshot tarballs. Every once in a while (at least once a |
61 |
year), we do set date-based VCS tags on the Prefix tree and the overlay, |
62 |
matching the last snapshot content, and define this snapshot as release. |
63 |
|
64 |
> What concerns me is that I think I should only update the Portage Tree |
65 |
> when I need it. With the method described above I'll get a new version |
66 |
> of the Portage Tree each time. That means that I'll not get the same |
67 |
> installation if I run my script with 2 weeks in between, which I don't |
68 |
> like, as I then can't fix small problems without changing everything. |
69 |
|
70 |
This now released setup script (plus the two tarballs) then is used for |
71 |
fresh distro installs on new target machines, where a subsequent emerge |
72 |
sync+update is optional. |
73 |
|
74 |
> Any ideas on how I somehow gets the same portage tree or another way |
75 |
> to solve this problem? |
76 |
> And I guess I should also store the source files somewhere and not get |
77 |
> them downloaded, so I don't risk an old version is suddenly not |
78 |
> available anymore - is there a way to do that? |
79 |
|
80 |
Along with the forked Prefix tree we also do maintain a "master mirror", |
81 |
providing LAN-access to the merged tree as well as the distfiles, while |
82 |
the setup script mentioned above knows how to setup SYNC&GENTOO_MIRRORS. |
83 |
|
84 |
But: As each of these additional scripts are bound to the existence of |
85 |
that local overlay, they cannot be made public without modification. |
86 |
While we would love to have public variants of them - allowing to manage |
87 |
private distros with optional private overlays, we cannot promise anything |
88 |
about splitting them into public scripts and private configs. |
89 |
|
90 |
HTH, |
91 |
/haubi/ |