Re: [gentoo-portage-dev] [PATCH 0/3] Add cross-prefix support
On 06/17/2013 12:21 AM, Ruud Koolen wrote: This patch series adds support for using a portage installed in one prefix to build packages with a different prefix. The current portage has a single EPREFIX variable specifying both the prefix of the portage installation, and the prefix of the packages portage is building. This patch series splits it into two parts: the portage.const.EPREFIX variable specifying the prefix of the portage installation, used for constructing the PATH as well as the paths to files belonging to a portage installation itself rather than a target root; and the EPREFIX setting in config instances, specifying the prefix of the to-be-built packages and being used for almost everything else. The EPREFIX config setting defaults to const.EPREFIX, but can be overridden by the EPREFIX environment variable, as well as the emerge --prefix option. This allows one to install systems with different prefixes using `EPREFIX=/foo emerge @system`, though some unrelated changes need to happen elsewhere first in order to make that a reality. Ruud Koolen (3): Distinguish between portage prefix and package prefix Based GLOBAL_CONFIG_PATH and DEPCACHE_PATH on portage prefix Pick up EPREFIX environment variable bin/dispatch-conf |2 +- bin/portageq |2 +- pym/_emerge/actions.py |9 + pym/_emerge/main.py|7 pym/portage/_legacy_globals.py |3 +- pym/portage/_sets/__init__.py |3 -- pym/portage/const.py | 34 ++-- pym/portage/dispatch_conf.py |2 +- .../package/ebuild/_config/LocationsManager.py | 22 - pym/portage/package/ebuild/config.py | 21 pym/portage/package/ebuild/doebuild.py |2 +- pym/portage/package/ebuild/fetch.py|4 -- pym/portage/tests/resolver/ResolverPlayground.py |3 +- pym/portage/util/env_update.py |3 +- 14 files changed, 34 insertions(+), 83 deletions(-) I've committed your patches with a few trivial modifications, as noted here: http://bugs.gentoo.org/show_bug.cgi?id=395633#c37 -- Thanks, Zac
Re: [gentoo-portage-dev] [PATCH 0/3] Add cross-prefix support
Hi Ruud, On 17-06-2013 09:21:41 +0200, Ruud Koolen wrote: This patch series adds support for using a portage installed in one prefix to build packages with a different prefix. Thanks so much for your work. I hope to have a look at this soon, and merge this. From your work I assume your patches don't break normal installs/bootstraps, right? (You tested that?) Fabian -- Fabian Groffen Gentoo on a different level signature.asc Description: Digital signature
RE: [gentoo-portage-dev] [PATCH 0/3] Add cross-prefix support
On Mon, 17 Jun 2013, at 01:00, Ruud Koolen thusly quipped: I also didn't test whether these patches work on the prefix-portage branch. I don't really know much far prefix-portage diverges from mainline portage, so I don't know whether I should expect it to just work. Prefix portage is literally a branch -- in the git sense of the term -- of the regular portage git repo on g.o.g.o. So, a good place to start is to check out that branch and see if your diffs apply. When I am doing work that I expect to flow into both branches, I typically maintain a master and prefix_master private branch, with the latter set to pull from origin/prefix, i.e.: [remote origin] fetch = +refs/heads/*:refs/remotes/origin/* url = /usr/src/repos/git/portage.git [branch master] remote = origin merge = refs/heads/master [branch prefix_master] remote = origin merge = refs/heads/prefix [branch cygwin_master] remote = . merge = refs/heads/prefix_master Guess I didn't use very consistent naming. The basic plan is, with the arrows representing flows of information to the right-hand side on git pull: [upstream repo] - /usr/src/repos/git/portage.git -- a bare, vanilla clone of upstream [portage.git/master] - master (which is a private branch with upstreamable patches) [portage.git/prefix] - prefix_master (also a private branch, analogous to master, with forward-ported versions of my patches in master; upstreamable to origin/prefix) [prefix_master] - cygwin (an experimental prefix portage fork, downstream to all of the above) Usually I cherry-pick patches from master into prefix_master and perform up any merges at that phase, and then just git checkout cygwin ; git pull to merge those (vs.-vanilla-prefix-portage) patches into my experimental prefix portage fork. I do that way because my eyes simply glaze over when I try to read that whole business about prune-and-graft in git merge --help; however if you end up with a huge pile of patches to merge, the prune-graft approach should work perfectly fine to move deltas from master to prefix-master. -gmt