Gentoo Archives: gentoo-alt

From: Anders Bo Rasmussen <abr@×××××××.com>
To: gentoo-alt@l.g.o
Subject: Re: [gentoo-alt] prefix: Keeping old version of portage tree
Date: Thu, 17 Jul 2014 13:54:07
Message-Id: CANCygR4Fiu-qMNkTj8s5_O8LHEwhmaWFTP0j5JgsuV612g44bQ@mail.gmail.com
In Reply to: Re: [gentoo-alt] prefix: Keeping old version of portage tree by Michael Haubenwallner
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 >