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]

Reply via email to