How to obtain and test development versions of Portage
1.
Access to Portage SVN repositories
The Portage sourcecode is maintained within a SVN repository on the Gentoo SVN server.
This server is only accessible for Gentoo developers, for anonymous access see http://anonsvn.gentoo.org/.
If you are a dev: The main repository is located at svn+ssh://cvs.gentoo.org/var/svnroot/portage/main,
please note that it is subject to strict access controls, only people listed
in the developers section on the portage project page are able to commit to it.
Note: It is assumed you know how to work with Subversion. |
Note: The repository can be viewed over viewcvs |
The repository currently contains the following branches (incomplete list):
- trunk: the current main development line
- branches/2.1-experimental: the former development line, now abandoned (don't use it unless you want to backport stuff)
- branches/prefix: experimental branch with support for prefix installs
- branches/2.0.54: old stable maintenance branch, nothing happens here anymore
- branches/2.1.2: current stable maintenance branch
Note: The old CVS repository still exists, but is not updated anymore or used in any other way. |
2.
Creating snapshots from Portage SVN repositories
Code Listing 2.1: creating a snapshot from portage trunk |
svn co svn://anonsvn.gentoo.org/portage/main/trunk
major_version=2.2
prev_release=rc1
latest_rev=$(svn info trunk | grep '^Last Changed Rev:' | grep -o '[0-9]*$')
snapshot_version=${major_version}_${prev_release}_p${latest_rev}
trunk/mkrelease.sh --anon ${snapshot_version}
|
3.
Testing multiple Portage versions
Note: This section only applies to Portage 2.1.2 or later |
There are various reasons why you'd want to have multiple versions of portage
available at the same time without having to install them as system default.
Examples would be to check which versions are affected by a specific bug, to
test new features before deploying a new version or have a svn checkout available
for testing while keeping a stable release for normal operation.
As of Portage-2.1.2 one can have and use an arbitrary number of Portage
installations parallel to each other by adjusting the two environment variables
PATH and PYTHONPATH. For example if you have a checkout of the
trunk branch at /checkouts/portage/trunk you'd set them like this:
Code Listing 3.1: settings to use portage trunk |
export PYTHONPATH="/checkouts/portage/trunk/pym:${PYTHONPATH}"
export PATH="/checkouts/portage/trunk/bin:${PATH}"
|
With those settings calling tools like emerge, repoman or
ebuild will pickup the correct locations to import libraries. External
tools like gentoolkit or porthole may or may not respect those settings though.
Setting PATH isn't even necessary if you always call the commands by their full
name (e.g. /checkouts/portage/trunk/bin/emerge instead of emerge).
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|