Gentoo Archives: gentoo-alt

From: Fabian Groffen <grobian@g.o>
To: gentoo-alt@l.g.o
Subject: Re: [gentoo-alt] [PREFIX] ongoing tree changes
Date: Mon, 05 Oct 2009 10:46:49
Message-Id: 20091005104744.GE20221@gentoo.org
In Reply to: [gentoo-alt] [PREFIX] ongoing tree changes by Fabian Groffen
1 On 26-09-2009 20:04:52 +0200, Fabian Groffen wrote:
2 > darkside and I just implemented the next step for us Prefix devs to get
3 > closer to mainline Gentoo. From now on, we can "move" packages from the
4 > Prefix tree to gentoo-x86 and remove them from the Prefix tree. This
5 > means they only live in gentoo-x86, and are automatically copied into
6 > the rsync snapshot. For developers this means the Prefix svn tree no
7 > longer contains all ebuilds. We will have to overlay either a CVS
8 > checkout of gentoo-x86, or an rsync checkout of the Prefix tree to get
9 > all goodies.
10
11 While this change was seamless for all rsync users, we developers (at
12 least I) got in a bit tricky situation. I'd like to share how I solved
13 the problem of "missing" packages on my non-main development boxes now.
14 Maybe someone has already developed a better approach.
15
16 I decided that since the svn tree is no longer complete, I had to use it
17 as overlay on top of a "complete" tree. Hence, I unset my SYNC, moved
18 away my PORTDIR and ran emerge --sync to just get an rsync checkout of
19 the Prefix tree. Next I added the svn tree to my PORTDIR_OVERLAY
20 variable (in etc/make.conf), and found that repoman did not like this
21 overlay because of a missing licenses and profiles dir. For licenses I
22 just made a symlink to the rsync copy, profiles cannot be a symlink, as
23 Portage doesn't like it when two overlays have the same repo_name. So
24 what I did instead is to copy the profiles dir from rsync to my svn
25 tree, modify the repo_name to have something else. Now that seems to
26 work. It should eventually get much better as less and less packages
27 are in the "overlay", and we benefit more and more from the metadata
28 cache from the rsync tree. Anyway, to keep the profiles dir up-to-date
29 in my svn tree, I now use a script with the following in my
30 etc/portage/postsync.d:
31
32 rsync --exclude=repo_name -a --delete \
33 ${EPREFIX}/usr/portage/profiles/ \
34 ${EPREFIX}/usr/portage-svn/profiles/
35 pushd ${EPREFIX}/usr/portage-svn > /dev/null
36 svn update
37 popd > /dev/null
38
39 where my svn tree is called "portage-svn", and the regular rsync tree is
40 in the standard place. I also just svn up my svn tree, so basically my
41 emerge --sync does the full job and I can now do the basic things like
42 fixing packages, keywording etc. For profiles changes I just have to
43 ssh to my main development box where I have lots of symlinks to retain a
44 quasi-full tree.
45
46 Hope this is useful for anyone. If there are better ideas to do things
47 here, I'm all ears.
48
49
50 --
51 Fabian Groffen
52 Gentoo on a different level