RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Ralf S. Engelschall
Root: /v/rpm/cvs Email: rse@rpm5.org
Module: rpm Date: 16-Jul-2007 18:31:35
Branch: HEAD Handle: 2007071617313500
Modified files:
rpm INSTALL devtool.conf
Log:
provide some documentation how one can build RPM on a cluster of
servers and work on the same RPM source tree, but in parallel one
multiple servers
Summary:
Revision Changes Path
2.30 +63 -0 rpm/INSTALL
2.34 +5 -0 rpm/devtool.conf
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/INSTALL
============================================================================
$ cvs diff -u -r2.29 -r2.30 INSTALL
--- rpm/INSTALL 15 Jul 2007 21:50:16 -0000 2.29
+++ rpm/INSTALL 16 Jul 2007 16:31:35 -0000 2.30
@@ -106,6 +106,69 @@
LDFLAGS = `pkg-config rpm --libs-only-other`
LIBS = `pkg-config rpm --libs-only-l`
+BUILDING RPM ON A CLUSTER OF SERVERS
+====================================
+
+Assume you have...
+
+- a cluster of time-synchronized Unix servers
+ (usually of different Unix flavors to make sense in this context),
+- each one allowing you to login under your personal account and
+ access your central home directory (usually via NFS) and
+- use the full set of development tools,
+
+...then you can build RPM in parallel on an arbitrary number of servers
+in this cluster by using the following procedure:
+
+1. Build Environment Preparation:
+
+ On a single arbitrary server of the cluster prepare the RPM source
+ tree at least once.
+
+ server1$ cd ~/work
+ server1$ cvs -d rpm-cvs@rpm5.org:/v/rpm/cvs co rpm
+ server1$ cd rpm
+ server1$ . devtool.bashrc
+
+ server1$ devtool checkout
+ server1$ devtool autogen
+
+2. Platform Preparation:
+
+ on every(!) server of the cluster prepare its platform-specific
+ environment (includes building local copies of all third-party
+ libraries).
+
+ serverN$ cd ~/work/rpm
+ serverN$ . devtool.bashrc
+
+ serverN$ devtool setup-platform
+ serverN$ devtool standalone prepare
+ serverN$ devtool standalone autogen
+ serverN$ devtool standalone configure
+
+3. Development:
+
+ now you can develop RPM on any number of servers of the cluster in
+ parallel.
+
+ serverN$ cd ~/work/rpm
+ serverN$ . devtool.bashrc
+
+ serverN$ cd {build,lib,rpmdb,rpmio,misc,...}
+ serverN$ vi *.c
+ serverN$ devtool make [-l]
+
+4. Test-Drive:
+
+ on an arbitrary server of the cluster you can test-drive RPM via:
+
+ serverN$ cd ~/work/rpm
+ serverN$ . devtool.bashrc
+
+ serverN$ devtool make install
+ serverN$ /tmp/rpm/bin/rpm [...]
+
LIBRARY ISSUES
==============
@@ .
patch -p0 <<'@@ .'
Index: rpm/devtool.conf
============================================================================
$ cvs diff -u -r2.33 -r2.34 devtool.conf
--- rpm/devtool.conf 16 Jul 2007 16:06:51 -0000 2.33
+++ rpm/devtool.conf 16 Jul 2007 16:31:35 -0000 2.34
@@ -44,6 +44,11 @@
%make
# intentionally just a pass-through target
# (important for use with devtool.bashrc)
+ if [ ".$1" = ".-l" ]; then
+ shift
+ else
+ cd ${DEVTOOL_SRCDIR}
+ fi
make "$@"
%prepare
@@ .
Received on Mon Jul 16 18:31:36 2007