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