From: Ken M. <kma...@us...> - 2002-08-02 14:54:57
|
Update of /cvsroot/perl-xml/Frontier-RPC/docs In directory usw-pr-cvs1:/tmp/cvs-serv26086/docs Added Files: make-rel Log Message: * docs/make-rel: added * README: changed mirror location to SourceForge; added notes for Apache::XMLRPC and Frontier::Responder. --- NEW FILE: make-rel --- #! /bin/sh # # NAME # make-rel -- make a software release # # SYNOPSIS usage="make-rel SYMBOLIC_TAG MODULE" # # DESCRIPTION # # `make-rel' exports MODULE from CVS using SYMBOLIC_TAG and # creates a distribution from it. # # `make-rel' can tell the difference between `autoconf' style # packages, Perl, and Python packages and create them accordingly. # # For `autoconf' packages, `make-rel' edits the SYMBOLIC_TAG into # `configure.in', runs `autoconf', `./configure', and then # performs a `make dist'. # # For Perl packages, `make-rel' edits the SYMBOLIC_TAG into the # file identified in `Makefile.PL' as the `VERSION_FROM' file, # runs `perl Makefile.pl' and `make dist'. # # For Python packages, `make-rel' edits the SYMBOLIC_TAG into # `setup.py'. # # SYMBOLIC_TAGs of the form ``r([0-9]+)m([0-9]+)(.*)'' are # reformatted to ``\1.\2\3'' to translate between CVS/RCSs # requirement against using `.' in a tag name. For example, a # symbolic tag `r0m1b1' is reformatted to `0.1b1'. # # The leading `r' of a SYMBOLIC_TAG is removed. Underscores (`_') # are translated to periods (`.'). # # $Id: make-rel,v 1.1 2002/08/02 14:54:50 kmacleod Exp $ # AUTOCONF="/usr/bin/autoconf" GREP="/usr/bin/grep" PERL="/usr/bin/perl" AWK="/usr/bin/awk" CVS="/usr/bin/cvs" PWD_CMD="/bin/pwd" SED="/bin/sed" TR="/usr/bin/tr" if [ $# != 2 ]; then echo "$usage" exit 0 fi SYMBOLIC_TAG="$1" MODULE="$2" set -e set -x original_dir="`$PWD_CMD`" release="`echo \"$SYMBOLIC_TAG\" | $SED -e 's/r\([0-9]\{1,\}\)m\([0-9]\{1,\}\)\(.*\)/\1.\2\3/'`" release="`echo \"$release\" | $SED -e 's/^r//' | $TR '_' '.'`" mkdir /tmp/dist-$$ cd /tmp/dist-$$ $CVS export -r $SYMBOLIC_TAG -d dist $MODULE cd dist if [ -f configure.in ]; then mv configure.in .. # edit the SYMBOLIC_TAG into `configure.in', translating to a # ``cleaner'' release number $SED <../configure.in >configure.in \ -e 's/^VERSION=.*$/VERSION='"$release"'/' echo "$release" >.release $AUTOCONF ./configure make dist cd .. elif [ -f Makefile.PL ]; then perl <<'EOF' use ExtUtils::Manifest; ($missfile, $missentry) = ExtUtils::Manifest::fullcheck; die "make-rel: release does not check against manifest\n" if ($#{$missfile} != -1 || $#{$missentry} != -1); EOF if [ $? != 0 ]; then exit 1; fi VERSION_FROM="`$SED -n -e \"/VERSION_FROM/s/.*'\(.*\)',/\1/p\" Makefile.PL`" mv $VERSION_FROM .. $SED <../`basename $VERSION_FROM` >$VERSION_FROM \ -e '/VERSION = /s/0\.00/'"$release"'/' for ii in `find . -name \*.pm`; do mv $ii .. $SED <../`basename $ii` >$ii \ -e '/VERSION = /s/0\.00/'"$release"'/' done if [ -f $MODULE.spec ]; then $SED <$MODULE.spec >$MODULE-$release.spec \ -e 's/@VERSION@/'"$release"'/g' mv MANIFEST .. $SED <../MANIFEST >MANIFEST \ -e "/^$MODULE.spec$/a\\ $MODULE-$release.spec " fi perl Makefile.PL make dist mv $MODULE-$release.tar.gz .. cd .. elif [ -f setup.py ]; then mv setup.py .. $SED <../setup.py >setup.py \ -e '/version = /s/0\.0\.0/'"$release"'/' python setup.py sdist mv dist/$MODULE-$release.tar.gz .. cd .. else echo "Unknown package type" cd .. rm -rf dist-$$ exit 1 fi chmod a-w *.tar.gz mv *.tar.gz $original_dir cd .. rm -rf dist-$$ |