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 |