[rtems-testing commit] release.sh: Tested on a second repository. White space at EOL removed.

Joel Sherril joel at rtems.org
Sun May 17 23:43:33 UTC 2015


Module:    rtems-testing
Branch:    master
Commit:    2c5f81d126738b1004f89d93efecaf2259755a7f
Changeset: http://git.rtems.org/rtems-testing/commit/?id=2c5f81d126738b1004f89d93efecaf2259755a7f

Author:    Joel Sherrill <joel.sherrill at oarcorp.com>
Date:      Sun May 17 17:44:47 2015 -0500

release.sh: Tested on a second repository. White space at EOL removed.

Reworked comments at the top of the file.

---

 release-helpers/release.sh | 119 ++++++++++++++++++++++++++-------------------
 1 file changed, 70 insertions(+), 49 deletions(-)

diff --git a/release-helpers/release.sh b/release-helpers/release.sh
index 4f67721..94b75f3 100755
--- a/release-helpers/release.sh
+++ b/release-helpers/release.sh
@@ -1,25 +1,32 @@
 #! /bin/sh
 #
 # This script is used to do the mechanics of making an RTEMS release
-# from git and associated artifacts:
-#  + bootstrapped RTEMS tarball
-#  + tarball of user documentation
-#  + tarball of generated Doxygen documentation
-#  + (TODO) ChangeLog
+# from the individual git repositories.  It is assumed that the user:
 #
-# It is assumed that the user:
 #  (a) does all work on a git branch
 #  (b) created that branch by hand
 #  (c) will push the branch by hand if all went OK
 #  (d) publish the artifacts to the ftp site
 #
+# After the user is on the manually created branch, the script performs
+# the following actions:
+#
+#  + updates VERSION file
+#  + (RTEMS only) updates version.m4 files
+#  + commits version information updates
+#  + generates compressed tar file of source
+#
+# For the primary RTEMS repository, it then produces the following
+# associated artifacts:
+#  + remakes the RTEMS tarball after bootstrapping
+#  + produces a tarball of user documentation
+#  + produces a tarball of generated Doxygen documentation
+#  + (TODO) produces a ChangeLog
+#
 # The script tries to do as much error checking as possible before
 # any commits or tags are added to the repository.
 #
 # TODO:
-#   + Can this be used on all repositories? If so, then it needs to guess or
-#     be told the repository.
-#   + Any other error checking?
 #   + Test host environment for more missing programs
 #     - Can't build tests without pax installed
 #   + Review against cut_release (old, cvs, etc.) and remove cut_release
@@ -78,7 +85,7 @@ if [ ${repo} != "NOT_SET" ] ; then
         echo "  rtemsdocs-${VERSION}.tar.bz2 rtemsdocs-${VERSION}"
         ;;
     esac
-  fi 
+  fi
 fi
 }
 
@@ -124,8 +131,19 @@ do
   esac
 done
 
-test -r aclocal/version.m4
-check_error $? "Not at the top of an RTEMS tree"
+# Must be in a git repository
+test -d .git
+check_error $? "You are not in a git checkout"
+
+# Do NOT do this on the master
+branch=`git branch | grep "*" | awk '{ print $2 }'`
+if [ ${branch} = "master" ] ; then
+  fatal "You should be on a git branch before running this script"
+fi
+
+# Determine the repository. This is used to trip special actions
+repo=`git rev-parse --show-toplevel`
+repo=`basename ${repo}`
 
 check_dep sb-bootstrap
 check_dep doxygen
@@ -137,15 +155,15 @@ if [ ${bump_dot_release} = "no" -a ${bump_major_version} = "no" ] ; then
 fi
 
 if [  ${VERSION} = "NOT_SET" -a ${MAJOR} = "NOT_SET" ] ; then
-  fatal "RTEMS Version and Major value not provided" 
+  fatal "RTEMS Version and Major value not provided"
 fi
 
 if [ ${VERSION} != "NOT_SET" -a ${MAJOR} = "NOT_SET" ] ; then
-  fatal "RTEMS Version provided without providing Major value" 
+  fatal "RTEMS Version provided without providing Major value"
 fi
 
 if [ ${VERSION} = "NOT_SET" -a ${MAJOR} != "NOT_SET" ] ; then
-  fatal "Major version provided without providing RTEMS Version value" 
+  fatal "Major version provided without providing RTEMS Version value"
 fi
 
 # Crude checks on the VERSION number
@@ -166,16 +184,6 @@ if [ ${MAJOR} != "NOT_SET" ] ; then
   esac
 fi
 
-# Must be in a git repository
-test -d .git
-check_error $? "You are not in a git checkout"
-
-# Do NOT do this on the master
-branch=`git branch | grep "*" | awk '{ print $2 }'`
-if [ ${branch} = "master" ] ; then
-  fatal "You should be on a git branch before running this script"
-fi
-
 # If making a dot release, then there are extra requirements.
 if [ ${bump_dot_release} = "yes" ] ; then
   # We want to be on the release branch
@@ -190,27 +198,40 @@ if [ ${bump_dot_release} = "yes" ] ; then
     *) fatal "${VERSION} does not start with ${MAJOR}" ;;
   esac
 
-  # We need to have access to various texi tools to build documentation
-  # For CentOS, the RPMs are texinfo-tex and texi2html
-  check_dep texi2dvi
-  check_dep texi2pdf
-  # main tool varies based on texinfo version
-  type texi2any >/dev/null 2>&1
-  ta=$?
-  type texi2html >/dev/null 2>&1
-  if [ $? -ne 0 -a ${ta} -ne 0 ] ; then
-    fatal "Neither texi2any nor tex2html is available"
-  fi
-
-  # We need to have access to SPARC tools to build Doxygen.
-  check_dep sparc-rtems${MAJOR}-gcc
+  case ${repo} in
+    rtems)
+      # We need to have access to various texi tools to build documentation
+      # For CentOS, the RPMs are texinfo-tex and texi2html
+      check_dep texi2dvi
+      check_dep texi2pdf
+      # main tool varies based on texinfo version
+      type texi2any >/dev/null 2>&1
+      ta=$?
+      type texi2html >/dev/null 2>&1
+      if [ $? -ne 0 -a ${ta} -ne 0 ] ; then
+        fatal "Neither texi2any nor tex2html is available"
+      fi
+
+      # We need to have access to SPARC tools to build Doxygen.
+      check_dep sparc-rtems${MAJOR}-gcc
+      ;;
+    *)
+      # No special dependencies for this repository
+      ;;
+   esac
 fi
 
-##### END OF ERROR CHECKING
+### Check for supporting files in top directory
+test -r VERSION
+check_error $? "VERSION file is not present"
 
-# Determine the repository. This is used to trip special actions
-repo=`git rev-parse --show-toplevel`
-repo=`basename ${repo}`
+test -r SUPPORT
+check_error $? "File SUPPORT is not present"
+
+grep "^.*Version " VERSION >/dev/null 2>&1
+check_error $? "VERSION file does not include proper Version string"
+
+##### END OF ERROR CHECKING
 
 # For the RTEMS repository, update the aclocal.m4 and VERSION file
 update_aclocal_version_for_version()
@@ -235,7 +256,7 @@ update_aclocal_version_for_version()
       check_error 1 "Need to update version.py"
       ;;
     *)
-      sed -i -e "s,\(^RTEMS Version\).*,\1 ${RV}," VERSION
+      sed -i -e "s,\(^.*Version\).*,\1 ${RV}," VERSION
       git add VERSION
       git commit -m "VERSION: Update to ${RV}"
       ;;
@@ -249,9 +270,9 @@ update_doc_versions()
   date2=`date "+%B %Y"`
   find -name version.texi | while read f
   do
-    (echo "@set UPDATED ${date1}" ; 
-     echo "@set UPDATED-MONTH ${date2}" ; 
-     echo "@set EDITION ${MAJOR}" ; 
+    (echo "@set UPDATED ${date1}" ;
+     echo "@set UPDATED-MONTH ${date2}" ;
+     echo "@set EDITION ${MAJOR}" ;
      echo "@set VERSION ${VERSION}" ) \
     >${f}
   done
@@ -266,7 +287,7 @@ build_doxygen()
   cpu=sparc
   bsp=leon3
   outdir=${1}
-  
+
   rm -rf b-doxy
   mkdir b-doxy
   cd b-doxy
@@ -282,7 +303,7 @@ build_doxygen()
       -e "s,^STRIP_FROM_PATH.*=.*$,STRIP_FROM_PATH = ," \
       -e "s,^INPUT.*=.*lib.*$,INPUT = ," \
     <Doxyfile >../../../${bsp}/lib/include/Doxyfile
-  
+
   cd ../../../${bsp}/lib/include
 
   doxygen >doxy.log 2>&1



More information about the vc mailing list