summaryrefslogtreecommitdiffstats
path: root/rubbos/app/tomcat-connectors-1.2.32-src/tools/jkrelease.sh
diff options
context:
space:
mode:
Diffstat (limited to 'rubbos/app/tomcat-connectors-1.2.32-src/tools/jkrelease.sh')
-rwxr-xr-xrubbos/app/tomcat-connectors-1.2.32-src/tools/jkrelease.sh327
1 files changed, 327 insertions, 0 deletions
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/tools/jkrelease.sh b/rubbos/app/tomcat-connectors-1.2.32-src/tools/jkrelease.sh
new file mode 100755
index 00000000..d92b1c46
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/tools/jkrelease.sh
@@ -0,0 +1,327 @@
+#!/bin/ksh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# Make sure to set your path so that we can find
+# the following binaries:
+# cd, mkdir, cp, rm, find
+# svn
+# ant
+# libtoolize, aclocal, autoheader, automake, autoconf
+# tar, zip, gzip
+# gpg
+# And any one of: w3m, elinks, links (links2)
+
+SVNROOT="http://svn.apache.org/repos/asf"
+SVNPROJ="tomcat/jk"
+JK_CVST="tomcat-connectors"
+JK_OWNER="root"
+JK_GROUP="bin"
+JK_TOOLS="`pwd`"
+
+COPY_TOP="KEYS"
+COPY_JK="BUILD.txt native jkstatus support tools xdocs"
+COPY_NATIVE="LICENSE NOTICE"
+COPY_BUILD="docs"
+COPY_CONF="httpd-jk.conf uriworkermap.properties workers.properties workers.properties.minimal"
+SIGN_OPTS=""
+
+#################### NO CHANGE BELOW THIS LINE ##############
+
+#################### FUNCTIONS ##############
+
+usage() {
+ echo "Usage:: $0 -v VERSION [-f] [-r revision] [-t tag | -b BRANCH | -T | -d DIR]"
+ echo " -v: version to package"
+ echo " -f: force, do not validate tag against version"
+ echo " -t: tag to use if different from version"
+ echo " -r: revision to package"
+ echo " -b: package from branch BRANCH"
+ echo " -T: package from trunk"
+ echo " -d: package from local directory"
+ echo " -p: GNU PG passphrrase used for signing"
+ echo " -k: ID of GNU PG key to use for signing"
+}
+
+copy_files() {
+ src=$1
+ target=$2
+ list="$3"
+
+ mkdir -p $target
+ for item in $list
+ do
+ echo "Copying $item from $src ..."
+ cp -pr $src/$item $target/
+ done
+}
+
+#################### MAIN ##############
+
+conflict=0
+while getopts :v:t:r:b:d:p:k:Tf c
+do
+ case $c in
+ v) version=$OPTARG;;
+ t) tag=$OPTARG
+ conflict=$(($conflict+1));;
+ r) revision=$OPTARG;;
+ k) SIGN_OPTS="--default-key=$OPTARG $SIGN_OPTS";;
+ p) SIGN_OPTS="--passphrase=$OPTARG $SIGN_OPTS";;
+ b) branch=$OPTARG
+ conflict=$(($conflict+1));;
+ T) trunk=trunk
+ conflict=$(($conflict+1));;
+ d) local_dir=$OPTARG
+ conflict=$(($conflict+1));;
+ f) force='y';;
+ \:) usage
+ exit 2;;
+ \?) usage
+ exit 2;;
+ esac
+done
+shift `expr $OPTIND - 1`
+
+if [ $conflict -gt 1 ]
+then
+ usage
+ echo "Only one of the options '-t', '-b', '-T' and '-d' is allowed."
+ exit 2
+fi
+
+if [ -n "$local_dir" ]
+then
+ echo "Caution: Packaging from directory!"
+ echo "Make sure the directory is committed."
+ answer="x"
+ while [ "$answer" != "y" -a "$answer" != "n" ]
+ do
+ echo "Do you want to proceed? [y/n]"
+ read answer
+ done
+ if [ "$answer" != "y" ]
+ then
+ echo "Aborting."
+ exit 4
+ fi
+fi
+
+if [ -z "$version" ]
+then
+ usage
+ exit 2
+fi
+if [ -n "$revision" ]
+then
+ revision="-r $revision"
+fi
+if [ -n "$trunk" ]
+then
+ JK_SVN_URL="${SVNROOT}/${SVNPROJ}/trunk"
+ svn_url_info="`svn help info | grep URL`"
+ if [ -n "$svn_url_info" ]
+ then
+ JK_SVN_INFO="${JK_SVN_URL}"
+ else
+ JK_SVN_INFO=.
+ fi
+ JK_REV=`svn info $revision $JK_SVN_INFO | awk '$1 == "Revision:" {print $2}'`
+ if [ -z "$JK_REV" ]
+ then
+ echo "No Revision found at '$JK_SVN_URL'"
+ exit 3
+ fi
+ JK_SUFFIX=-${JK_REV}
+ JK_DIST=${JK_CVST}-${version}-dev${JK_SUFFIX}-src
+elif [ -n "$branch" ]
+then
+ JK_BRANCH=`echo $branch | sed -e 's#/#__#g'`
+ JK_SVN_URL="${SVNROOT}/${SVNPROJ}/branches/$branch"
+ JK_REV=`svn info $revision ${JK_SVN_URL} | awk '$1 == "Revision:" {print $2}'`
+ if [ -z "$JK_REV" ]
+ then
+ echo "No Revision found at '$JK_SVN_URL'"
+ exit 3
+ fi
+ JK_SUFFIX=-${JK_BRANCH}-${JK_REV}
+ JK_DIST=${JK_CVST}-${version}-dev${JK_SUFFIX}-src
+elif [ -n "$local_dir" ]
+then
+ JK_SVN_URL="$local_dir"
+ JK_REV=`svn info $revision ${JK_SVN_URL} | awk '$1 == "Revision:" {print $2}'`
+ if [ -z "$JK_REV" ]
+ then
+ echo "No Revision found at '$JK_SVN_URL'"
+ exit 3
+ fi
+ JK_SUFFIX=-local-`date +%Y%m%d%H%M%S`-${JK_REV}
+ JK_DIST=${JK_CVST}-${version}-dev${JK_SUFFIX}-src
+else
+ JK_VER=$version
+ JK_TAG=`echo $version | sed -e 's#^#JK_#' -e 's#\.#_#g'`
+ if [ -n $tag ]
+ then
+ if [ -z $force ]
+ then
+ echo $tag | grep "^$JK_TAG" > /dev/null 2>&1
+ if [ $? -gt 0 ]
+ then
+ echo "Tag '$tag' doesn't belong to version '$version'."
+ echo "Force using '-f' if you are sure."
+ exit 5
+ fi
+ fi
+ JK_TAG=$tag
+ fi
+ JK_SVN_URL="${SVNROOT}/${SVNPROJ}/tags/${JK_TAG}"
+ JK_REV=`svn info $revision ${JK_SVN_URL} | awk '$1 == "Revision:" {print $2}'`
+ JK_SUFFIX=" ($JK_REV)"
+ JK_DIST=${JK_CVST}-${JK_VER}-src
+fi
+
+echo "Using subversion URL: $JK_SVN_URL"
+echo "Rolling into file $JK_DIST.*"
+sleep 2
+
+umask 022
+
+rm -rf ${JK_DIST}
+rm -rf ${JK_DIST}.tmp
+
+mkdir -p ${JK_DIST}.tmp
+svn export $revision "${JK_SVN_URL}" ${JK_DIST}.tmp/jk
+if [ $? -ne 0 ]; then
+ echo "svn export failed"
+ exit 1
+fi
+
+for item in ${COPY_TOP}
+do
+ svn export $revision "${JK_SVN_URL}/${item}" ${JK_DIST}.tmp/${item}
+done
+
+# Build documentation.
+cd ${JK_DIST}.tmp/jk/xdocs
+ant
+cd ../../..
+
+# Update version information
+file=${JK_DIST}.tmp/jk/native/common/jk_version.h
+cp -p $file $file.orig
+sed -e 's/^#define JK_REVISION .*/#define JK_REVISION "'"$JK_SUFFIX"'"/' \
+ $file.orig > $file
+rm $file.orig
+
+# Copying things into the source distribution
+copy_files ${JK_DIST}.tmp $JK_DIST "$COPY_TOP"
+copy_files ${JK_DIST}.tmp/jk $JK_DIST "$COPY_JK"
+copy_files ${JK_DIST}.tmp/jk/native $JK_DIST "$COPY_NATIVE"
+copy_files ${JK_DIST}.tmp/jk/build $JK_DIST "$COPY_BUILD"
+copy_files ${JK_DIST}.tmp/jk/conf $JK_DIST/conf "$COPY_CONF"
+
+# Remove extra directories and files
+targetdir=${JK_DIST}
+rm -rf ${targetdir}/xdocs/jk2
+rm -rf ${targetdir}/native/CHANGES.txt
+rm -rf ${targetdir}/native/build.xml
+rm -rf ${targetdir}/native/NOTICE
+rm -rf ${targetdir}/native/LICENSE
+find ${JK_DIST} -name .cvsignore -exec rm -rf \{\} \;
+find ${JK_DIST} -name CVS -exec rm -rf \{\} \;
+find ${JK_DIST} -name .svn -exec rm -rf \{\} \;
+
+cd ${JK_DIST}/native
+
+# Check for links, elinks or w3m
+W3MOPTS="-dump -cols 80 -t 4 -S -O iso-8859-1 -T text/html"
+ELNKOPTS="-dump -dump-width 80 -dump-charset iso-8859-1 -no-numbering -no-home"
+LNKOPTS="-dump -width 80 -codepage iso-8859-1 -no-g -html-numbered-links 0"
+failed=true
+for tool in `echo "w3m elinks links"`
+do
+ found=false
+ for dir in `echo ${PATH} | sed 's!^:!.:!;s!:$!:.!;s!::!:.:!g;s!:! !g'`
+ do
+ if [ -x ${dir}/${tool} ]
+ then
+ found=true
+ break
+ fi
+ done
+
+ # Try to run it
+ if ${found}
+ then
+ case ${tool} in
+ w3m)
+ TOOL="w3m $W3MOPTS"
+ ;;
+ links)
+ TOOL="links $LNKOPTS"
+ ;;
+ elinks)
+ TOOL="elinks $ELNKOPTS"
+ ;;
+ esac
+ rm -f CHANGES
+ echo "Creating the CHANGES file using '$TOOL' ..."
+ ${TOOL} ../docs/miscellaneous/printer/changelog.html > CHANGES 2>/dev/null
+ if [ -f CHANGES -a -s CHANGES ]
+ then
+ failed=false
+ break
+ fi
+ fi
+done
+if [ ${failed} = "true" ]
+then
+ echo "Can't convert html to text (CHANGES)"
+ exit 1
+fi
+
+# Export text docs
+echo "Creating the NEWS file using '$TOOL' ..."
+rm -f NEWS
+touch NEWS
+for news in `ls -r ../xdocs/news/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].xml`
+do
+ print=`echo $news | sed -e 's#xdocs/news#docs/news/printer#' -e 's#\.xml#.html#'`
+ echo "Adding $print to NEWS file ..."
+ ${TOOL} $print >>NEWS
+done
+if [ ! -s NEWS ]
+then
+ echo "Can't convert html to text (NEWS)"
+ exit 1
+fi
+
+# Generate configure et. al.
+./buildconf.sh
+cd ../../
+
+# Pack
+tar cfz ${JK_DIST}.tar.gz --owner="${JK_OWNER}" --group="${JK_GROUP}" ${JK_DIST} || exit 1
+perl ${JK_DIST}/tools/lineends.pl --cr ${JK_DIST}
+zip -9 -r ${JK_DIST}.zip ${JK_DIST}
+
+# Create detached signature and verify it
+archive=${JK_DIST}.tar.gz
+. ${JK_TOOLS}/signfile.sh ${SIGN_OPTS} $archive
+archive=${JK_DIST}.zip
+. ${JK_TOOLS}/signfile.sh ${SIGN_OPTS} $archive
+