RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Ralf S. Engelschall
Root: /v/rpm/cvs Email: [EMAIL PROTECTED]
Module: rpm Date: 13-Jun-2007 14:29:26
Branch: HEAD Handle: 2007061313292600
Added files:
rpm devtool devtool.conf
Modified files:
rpm INSTALL
Log:
add a small but generic development tool (devtool) and its
RPM-specific configuration (devtool.conf) which at this time at least
contains the procedure how to checkout the additionally required CVS
modules
Summary:
Revision Changes Path
2.6 +7 -0 rpm/INSTALL
2.1 +123 -0 rpm/devtool
2.1 +43 -0 rpm/devtool.conf
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/INSTALL
============================================================================
$ cvs diff -u -r2.5 -r2.6 INSTALL
--- rpm/INSTALL 25 May 2007 17:35:52 -0000 2.5
+++ rpm/INSTALL 13 Jun 2007 12:29:26 -0000 2.6
@@ -1,3 +1,10 @@
+To build RPM 5 from CVS sources
+-------------------------------
+
+./devtool checkout
+./devtool autogen
+./devtool configure [...]
+
To build RPM you will need several other packages:
--------------------------------------------------
@@ .
patch -p0 <<'@@ .'
Index: rpm/devtool
============================================================================
$ cvs diff -u -r0 -r2.1 devtool
--- /dev/null 2007-06-13 14:22:01 +0200
+++ devtool 2007-06-13 14:29:26 +0200
@@ -0,0 +1,123 @@
+#!/bin/sh
+##
+## devtool -- Development Tool
+## Copyright (c) 2001 Ralf S. Engelschall <[EMAIL PROTECTED]>
+##
+
+# build environment sanity check
+if [ ! -f devtool.conf ]; then
+ echo "devtool:ERROR: no devtool.conf in current directory" 1>&2
+ exit 1
+fi
+
+# usage sanity check
+if [ $# -eq 0 ]; then
+ echo "devtool:USAGE: devtool <command> [<arg> ...]" 1>&2
+ exit 1
+fi
+cmd="$1"
+shift
+cmdline=`grep "^%$cmd" devtool.conf`
+if [ ".$cmdline" = . ]; then
+ echo "devtool:ERROR: command $cmd not found in devtool.conf" 1>&2
+ exit 1
+fi
+
+# ensure a reasonable temporary directory exists
+if [ ".$TMPDIR" != . ]; then
+ tmpdir="$TMPDIR"
+elif [ ".$TEMPDIR" != . ]; then
+ tmpdir="$TEMPDIR"
+else
+ tmpdir="/tmp"
+fi
+tmpfile="$tmpdir/devtool.$$.tmp"
+
+# generate run-command script
+rm -f $tmpfile
+touch $tmpfile
+( sed <"$0" -e '1,/^## devtool.func {/d' -e '/^## } devtool.func/,$d'
+ sed <devtool.conf -e "1,/^%common/d" -e '/^%.*/,$d'
+ sed <devtool.conf -e "1,/^%$cmd/d" -e '/^%.*/,$d' ) |\
+sed -e 's;\([ ]\)@\([a-zA-Z_][a-zA-Z0-9_]*\);\1devtool_\2;' >>$tmpfile
+
+# execute run-command script
+sh $tmpfile "$@"
+rc=$?
+
+# cleanup and graceful exit
+rm -f $tmpfile >/dev/null 2>&1 || true
+exit $rc
+
+## devtool.func { # is now embedded. This line used as cutting point. Do
not remove.
+
+devtool_require () {
+ t="$1"; o="$2"; p="$3"; e="$4"; a="$5"
+ v=`($t $o | head -1 | awk "{ print \\\$$p; }") 2>/dev/null`
+ if [ ".$v" = . ]; then
+ echo "devtool:ERROR: unable to determine version of $t" 1>&2
+ exit 1
+ fi
+ case "$v" in
+ $e )
+ ;;
+ $a )
+ echo "devtool:WARNING: $t version $v accepted, but expected $e."
1>&2
+ ;;
+ * )
+ echo "devtool:ERROR: $t version $v NOT acceptable, requires $e."
1>&2
+ exit 1
+ ;;
+ esac
+ echo "$v"
+}
+
+devtool_autogen () {
+ tool=$1
+ shift
+ case $tool in
+ autoconf )
+ autoconf_version=`devtool_require autoconf --version 4 "$1" "$2"`
+ echo "generating (GNU Autoconf $autoconf_version): configure
config.h.in"
+ autoconf
+ autoheader 2>&1 | grep -v "is unchanged"
+ rm -rf autom4te.cache >/dev/null 2>&1
+ ;;
+ libtool )
+ libtoolize_version=`devtool_require libtoolize --version 4 "$1"
"$2"`
+ echo "generating (GNU Libtool $libtoolize_version): ltmain.sh,
libtool.m4, config.guess, config.sub"
+ libtoolize --force --copy >/dev/null 2>&1
+ cp `libtoolize --force --copy --dry-run | grep "add the contents
of" |\
+ sed -e 's;^[^\`]*\`;;' -e "s;'.*;;"` libtool.m4
+ ;;
+ shtool )
+ shtoolize_version=`devtool_require shtoolize -v 3 "$1" "$2"`
+ echo "generating (GNU Shtool $shtoolize_version): shtool"
+ shift
+ shift
+ shtoolize -q "$@"
+ ;;
+ esac
+}
+
+devtool_autoclean () {
+ tool=$1
+ shift
+ case $tool in
+ autoconf )
+ echo "removing: configure config.h.in"
+ rm -f configure config.h.in
+ ;;
+ libtool )
+ echo "removing: ltmain.sh libtool.m4 config.guess config.sub"
+ rm -f ltmain.sh libtool.m4 config.guess config.sub
+ ;;
+ shtool )
+ echo "removing: shtool"
+ rm -f shtool
+ ;;
+ esac
+}
+
+## } devtool.func # is now embedded. This line used as cutting point. Do
not remove.
+
@@ .
patch -p0 <<'@@ .'
Index: rpm/devtool.conf
============================================================================
$ cvs diff -u -r0 -r2.1 devtool.conf
--- /dev/null 2007-06-13 14:22:01 +0200
+++ devtool.conf 2007-06-13 14:29:26 +0200
@@ -0,0 +1,43 @@
+##
+## devtool.conf -- Development Tool Configuration for RPM 5
+##
+
+%common
+ MODULE_NAMES="popt db zlib"
+ MODULE_TAG_POPT=""
+ MODULE_TAG_DB=""
+ MODULE_TAG_ZLIB=""
+
+%checkout
+ for name in $MODULE_NAMES; do
+ release=MODULE_TAG_`echo ${name} | tr [a-z] [A-Z]`
+ release=`eval echo \\$${release}`
+ if [ ".${release}" = . ]; then
+ if [ -d ${name}/CVS ]; then
+ echo "===> ${name} (cvs up HEAD)"
+ ( cd ${name} && cvs up -A )
+ else
+ echo "===> ${name} (cvs co HEAD)"
+ cvs co -A -d ${name} ${name}
+ fi
+ else
+ if [ -d ${name}/CVS ]; then
+ echo "===> ${name} (cvs up ${release})"
+ ( cd ${name} && cvs up -r${release} )
+ else
+ echo "===> ${name} (cvs co ${release})"
+ cvs co -r${release} -d ${name} ${name}
+ fi
+ fi
+ echo "<=== ${name}"
+ done
+
+%autogen
+ sh autogen.sh --noconfigure
+
+%configure
+ ./configure \
+ --cache-file=config.cache \
+ --prefix=/tmp/rpm \
+ "$@"
+
@@ .
______________________________________________________________________
RPM Package Manager http://rpm5.org
CVS Sources Repository [email protected]