You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2015/05/24 17:22:46 UTC

svn commit: r1681474 - /tomcat/native/trunk/jnirelease.sh

Author: rjung
Date: Sun May 24 15:22:45 2015
New Revision: 1681474

URL: http://svn.apache.org/r1681474
Log:
Sync release scrpt with 1.1.
Biggest change ist that we drop the jni
intermediate directory in the release tarball.

In addition we simply export everything ad remove
two unwanted files instead of exporting lots
of pieces.

Modified:
    tomcat/native/trunk/jnirelease.sh

Modified: tomcat/native/trunk/jnirelease.sh
URL: http://svn.apache.org/viewvc/tomcat/native/trunk/jnirelease.sh?rev=1681474&r1=1681473&r2=1681474&view=diff
==============================================================================
--- tomcat/native/trunk/jnirelease.sh (original)
+++ tomcat/native/trunk/jnirelease.sh Sun May 24 15:22:45 2015
@@ -15,18 +15,28 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-# Default place to look for apr source.  Can be overridden with 
+
+#
+# BEFORE releasing don't forget to edit and commit
+#        native/include/tcn_version.h
+#        native/os/win32/libtcnative.rc
+
+# Default place to look for apr source.  Can be overridden with
 #   --with-apr=[directory]
-apr_src_dir=`pwd`/srclib/apr
-JKJNIEXT=""
-JKJNIVER=""
+apr_src_dir=`pwd`/native/srclib/apr
 SVNBASE=https://svn.apache.org/repos/asf/tomcat/native
+TCJAVA_SVNBASE=https://svn.apache.org/repos/asf/tomcat/tc8.0.x/trunk
 
-# Set the environment variable that stops OSX including storing extended
-# attributes in tar archives etc with a file starting with ._
+# Set the environment variable that stops OSX storing extended
+# attributes in tar archives etc. with a file starting with ._
 COPYFILE_DISABLE=1
 export COPYFILE_DISABLE
 
+JKJNIEXT=""
+JKJNIVER=""
+JKJNIREL=""
+JKJNIFORCE=""
+
 for o
 do
     case "$o" in
@@ -34,6 +44,10 @@ do
        *) a='' ;;
     esac
     case "$o" in
+        -f )
+            JKJNIFORCE=1
+            shift
+            ;;
         --ver*=*    )
             JKJNIEXT="$a"
             shift
@@ -69,7 +83,7 @@ if [ "x$JKJNIEXT" = "x" ]; then
     echo ""
     echo "Unknown SVN version"
     echo "Use:"
-    echo "  --ver=<version>|<branch>|trunk"
+    echo "  --ver=<tagged-version>|1.1.x|trunk|."
     echo ""
     exit 1
 fi
@@ -84,7 +98,18 @@ for i in w3m elinks links
 do
     EXPTOOL="`which $i 2>/dev/null || type $i 2>&1`"
     if [ -x "$EXPTOOL" ]; then
-        EXPOPTS="`eval echo \"\$$i_opts\"`"
+        case ${i} in
+          w3m)
+            EXPOPTS="${w3m_opts}"
+            ;;
+          elinks)
+            EXPOPTS="${elinks_opts}"
+            ;;
+          links)
+            EXPOPTS="${links_opts}"
+            ;;
+        esac
+        echo "Using: ${EXPTOOL} ${EXPOPTS} ..."
         break
     fi
 done
@@ -95,62 +120,162 @@ if [ ! -x "$EXPTOOL" ]; then
     echo ""
     exit 1
 fi
-
-echo $JKJNIEXT | egrep -e 'x$' > /dev/null 2>&1
-if [ $? -eq 0 ]; then
-    USE_BRANCH=1
+PERL="`which perl 2>/dev/null || type perl 2>&1`"
+if [ -x "$PERL" ]; then
+    echo "Using $PERL"
 else
-    USE_BRANCH=0
+    echo ""
+    echo "Cannot find perl"
+    echo "Make sure you have perl in the PATH"
+    echo ""
+    exit 1
 fi
 
-JKJNISVN=$SVNBASE/${JKJNIEXT}
 if [ "x$JKJNIEXT" = "xtrunk" ]; then
-    JKJNIVER=`svn info ${JKJNISVN} | awk '$1 == "Revision:" {print $2}'`
-elif [ $USE_BRANCH -eq 1 ]; then
-    JKJNIBRANCH=${JKJNIEXT}
-    JKJNISVN=$SVNBASE/branches/${JKJNIBRANCH}
-    JKJNIVER=${JKJNIBRANCH}-`svn info ${JKJNISVN} | awk '$1 == "Revision:" {print $2}'`
+    JKJNISVN="${SVNBASE}/trunk"
+    JKJNIVER=`svn info $JKJNISVN | awk '$1 == "Revision:" {print $2}'`
+    JKJNIVER="$JKJNIEXT-$JKJNIVER"
+elif [ "x$JKJNIEXT" = "x1.1.x" ]; then
+    JKJNISVN="${SVNBASE}/branches/$JKJNIEXT"
+    JKJNIVER=`svn info $JKJNISVN | awk '$1 == "Revision:" {print $2}'`
+    JKJNIVER="$JKJNIEXT-$JKJNIVER"
+elif [ "x$JKJNIEXT" = "x." ]; then
+    JKJNISVN="."
+    JKJNIVER=`svn info $JKJNISVN | awk '$1 == "Revision:" {print $2}'`
+    JKJNIEXT=`svn info $JKJNISVN | awk '$1 == "URL:" {print $2}' | sed -e 's#.*/##'`
+    JKJNIVER="checkout-$JKJNIEXT-$JKJNIVER"
 else
+    JKJNISVN="${SVNBASE}/tags/TOMCAT_NATIVE_`echo $JKJNIEXT | sed 's/\./_/g'`"
     JKJNIVER=$JKJNIEXT
-    JKJNISVN="${SVNBASE}/tags/TOMCAT_NATIVE_`echo $JKJNIVER | sed 's/\./_/g'`"
+    JKJNIREL=1
 fi
 echo "Using SVN repo       : \`${JKJNISVN}'"
 echo "Using version        : \`${JKJNIVER}'"
 
+# Checking for recentness of svn:externals
+externals_path=java/org/apache/tomcat
+jni_externals=`svn propget svn:externals $JKJNISVN/$externals_path | \
+    grep $externals_path/jni | \
+    sed -e 's#.*@##' -e 's# .*##'`
+jni_last_changed=`svn info --xml $TCJAVA_SVNBASE/$externals_path/jni | \
+    tr "\n" " " | \
+    sed -e 's#.*commit  *revision="##' -e 's#".*##'`
+if [ "x$jni_externals" != "x$jni_last_changed" ]; then
+    echo "WARNING: svn:externals for jni in $externals_path is '$jni_externals',"
+    echo "         last changed revision in TC trunk is '$jni_last_changed'."
+    echo "         Either correct now by running"
+    echo "         'svn propedit svn:externals' on $externals_path to fix"
+    echo "         or run this script with -f (force)"
+    if [ "X$JKJNIFORCE" = "X1" ]
+    then
+        sleep 3
+        echo "FORCED run chosen"
+    else
+        exit 1
+    fi
+fi
 
 JKJNIDIST=tomcat-native-${JKJNIVER}-src
 
 rm -rf ${JKJNIDIST}
-
+mkdir -p ${JKJNIDIST}
 svn export ${JKJNISVN} ${JKJNIDIST}
 if [ $? -ne 0 ]; then
+    echo ""
     echo "svn export failed"
+    echo ""
     exit 1
 fi
+rm -f ${JKJNIDIST}/KEYS ${JKJNIDIST}/download_deps.sh
+
+# check the release if release.
+if [ "x$JKJNIREL" = "x1" ]; then
+    grep TCN_IS_DEV_VERSION ${JKJNIDIST}/native/include/tcn_version.h | grep 0
+    if [ $? -ne 0 ]; then
+        echo "Check: ${JKJNIDIST}/native/include/tcn_version.h says -dev"
+        echo "Check TCN_IS_DEV_VERSION - Aborting"
+        exit 1
+    fi
+    WIN_VERSION=`grep TCN_VERSION ${JKJNIDIST}/native/os/win32/libtcnative.rc | grep define | awk ' { print $3 } '`
+    if [ "x\"$JKJNIVER\"" != "x$WIN_VERSION" ]; then
+        echo "Check: ${JKJNIDIST}/native/os/win32/libtcnative.rc says $WIN_VERSION (FILEVERSION, PRODUCTVERSION, TCN_VERSION)"
+        echo "Must be $JKJNIVER - Aborting"
+        exit 1
+    fi
+else
+    echo "Not a release"
+fi
 
 top="`pwd`"
 cd ${JKJNIDIST}/xdocs
+
+# Make docs
 ant
-$EXPTOOL $EXPOPTS ../build/docs/miscellaneous/printer/changelog.html > ../CHANGELOG.txt 2>/dev/null
+if [ $? -ne 0 ]; then
+    echo ""
+    echo "ant (building docs failed)"
+    echo ""
+    exit 1
+fi
+
+$EXPTOOL $EXPOPTS ../build/docs/miscellaneous/changelog.html > ../CHANGELOG.txt 2>/dev/null
+if [ $? -ne 0 ]; then
+    echo ""
+    echo "$EXPTOOL $EXPOPTS ../build/docs/miscellaneous/changelog.html failed"
+    echo ""
+    exit 1
+fi
+# Remove page navigation data from converted file.
+cp -p ../CHANGELOG.txt ../CHANGELOG.txt.tmp
+awk '/Preface/ {o=1} o>0' ../CHANGELOG.txt.tmp > ../CHANGELOG.txt
+rm ../CHANGELOG.txt.tmp
+
 cd "$top"
 mv ${JKJNIDIST}/build/docs ${JKJNIDIST}/docs
 rm -rf ${JKJNIDIST}/build
 
-#
-# Prebuild
+# Prebuild (create configure)
 cd ${JKJNIDIST}/native
-./buildconf --with-apr=$apr_src_dir
+./buildconf --with-apr=$apr_src_dir || exit 1
+
 cd "$top"
 # Create source distribution
-tar -cf - ${JKJNIDIST} | gzip -c9 > ${JKJNIDIST}.tar.gz
-#
+tar -cf - ${JKJNIDIST} | gzip -c9 > ${JKJNIDIST}.tar.gz || exit 1
+
 # Create Win32 source distribution
 JKWINDIST=tomcat-native-${JKJNIVER}-win32-src
 rm -rf ${JKWINDIST}
 mkdir -p ${JKWINDIST}
-svn export --native-eol CRLF ${JKJNISVN}/native ${JKWINDIST}/native
-svn cat ${JKJNISVN}/LICENSE > ${JKWINDIST}/LICENSE
-svn cat ${JKJNISVN}/NOTICE > ${JKWINDIST}/NOTICE
-svn cat ${JKJNISVN}/README.txt > ${JKWINDIST}/README.txt
-cp ${JKJNIDIST}/CHANGELOG.txt ${JKWINDIST}/
+svn export --native-eol CRLF ${JKJNISVN} ${JKWINDIST}
+if [ $? -ne 0 ]; then
+    echo ""
+    echo "svn export failed"
+    echo ""
+    exit 1
+fi
+rm -f ${JKJNIDIST}/KEYS ${JKJNIDIST}/download_deps.sh
+
+top="`pwd`"
+cd ${JKWINDIST}/xdocs
+
+# Make docs
+ant
+if [ $? -ne 0 ]; then
+    echo ""
+    echo "ant (building docs failed)"
+    echo ""
+    exit 1
+fi
+
+cd "$top"
+cp ${JKJNIDIST}/CHANGELOG.txt ${JKWINDIST}
+
+mv ${JKWINDIST}/build/docs ${JKWINDIST}/docs
+rm -rf ${JKWINDIST}/build
+for i in LICENSE NOTICE README.txt TODO.txt
+do
+    $PERL ${JKWINDIST}/native/build/lineends.pl --cr ${JKWINDIST}/${i}
+done
+$PERL ${JKWINDIST}/native/build/lineends.pl --cr ${JKWINDIST}/CHANGELOG.txt
+
 zip -9rqyo ${JKWINDIST}.zip ${JKWINDIST}



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org