diff options
author | Allen Byrne <50328838+byrnHDF@users.noreply.github.com> | 2023-07-16 04:36:46 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-16 04:36:46 (GMT) |
commit | cac778a4c33e9f34eb4825fd82b892e01ca56406 (patch) | |
tree | 2b2175f8e8fca683c3ba43b651314e736350c10c /bin/bbrelease | |
parent | 9938fc7f518f120c8cfcea8ac20cff6ba1e2a4d1 (diff) | |
download | hdf5-cac778a4c33e9f34eb4825fd82b892e01ca56406.zip hdf5-cac778a4c33e9f34eb4825fd82b892e01ca56406.tar.gz hdf5-cac778a4c33e9f34eb4825fd82b892e01ca56406.tar.bz2 |
Merge changes from develop (#3237)
to support official and snapshot releases from Github.
Diffstat (limited to 'bin/bbrelease')
-rwxr-xr-x | bin/bbrelease | 339 |
1 files changed, 0 insertions, 339 deletions
diff --git a/bin/bbrelease b/bin/bbrelease deleted file mode 100755 index c59e2e5..0000000 --- a/bin/bbrelease +++ /dev/null @@ -1,339 +0,0 @@ -#!/bin/sh -# -# Copyright by The HDF Group. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# - -# Make a release of hdf5. -# -# NOTE: -# This script differs from bin/release in that this has an added -# --revision option to create private releases with the code revision -# hash in the version strings. -# -# This script can probably be merged into the original release script in -# the future. - -# Function definitions -# -# Print Usage page -USAGE() -{ -cat << EOF -Usage: $0 -d <dir> [-h] [--private] [--revision [--branch BRANCHNAME]] <methods> ... - -d DIR The name of the directory where the release(s) should be - placed. - --branch BRANCHNAME This is to get the correct version of the branch name from the - repository. BRANCHNAME for v1.8 should be hdf5_1_8. - -h print the help page. - --private Make a private release with today's date in version information. - --revision Make a private release with the code revision number in version information. - This allows --branch to be used for the file name. - --branch BRANCHNAME This is to get the correct version of the branch name from the - repository. BRANCHNAME for v1.8 should be hdf5_1_8. - -This must be run at the top level of the source directory. -The other command-line options are the names of the programs to use -for compressing the resulting tar archive (if none are given then -"tar" is assumed): - - tar -- use tar and don't do any compressing. - gzip -- use gzip with "-9" and append ".gz" to the output name. - bzip2 -- use bzip2 with "-9" and append ".bz2" to the output name. - zip -- convert all text files to DOS style and form a zip file for Windows use. - -An md5 checksum is produced for each archive created and stored in the md5 file. - -Examples: - - $ bin/release -d /tmp - /tmp/hdf5-1.8.13-RELEASE.txt - /tmp/hdf5-1.8.13.md5 - /tmp/hdf5-1.8.13.tar - - $ bin/release -d /tmp gzip - /tmp/hdf5-1.8.13-RELEASE.txt - /tmp/hdf5-1.8.13.md5 - /tmp/hdf5-1.8.13.tar.gz - - $ bin/release -d /tmp tar gzip zip - /tmp/hdf5-1.8.13-RELEASE.txt - /tmp/hdf5-1.8.13.md5 - /tmp/hdf5-1.8.13.tar - /tmp/hdf5-1.8.13.tar.gz - /tmp/hdf5-1.8.13.tar.zip - -EOF - -} - -# Function name: tar2zip -# Convert the release tarball to a Windows zipball. -# -# Steps: -# 1. untar the tarball in a temporary directory; -# Note: do this in a temporary directory to avoid changing -# the original source directory which may be around. -# 2. convert all its text files to DOS (LF-CR) style; -# 3. form a zip file which is usable by Windows users. -# -# Parameters: -# $1 version -# $2 release tarball -# $3 output zipball file name -# -# Returns 0 if successful; 1 otherwise -# -tar2zip() -{ - if [ $# -ne 3 ]; then - echo "usage: tar2zip <tarfilename> <zipfilename>" - return 1 - fi - ztmpdir=/tmp/tmpdir$$ - mkdir -p $ztmpdir - version=$1 - tarfile=$2 - zipfile=$3 - - # step 1: untar tarball in ztmpdir - (cd $ztmpdir; tar xf -) < $tarfile - # sanity check - if [ ! -d $ztmpdir/$version ]; then - echo "untar did not create $ztmpdir/$version source dir" - # cleanup - rm -rf $ztmpdir - return 1 - fi - # step 2: convert text files - # There maybe a simpler way to do this. - # options used in unix2dos: - # -k Keep the date stamp - # -q quiet mode - # grep redirect output to /dev/null because -q or -s are not portable. - find $ztmpdir/$version | \ - while read inf; do \ - if file $inf | grep "$inf\: .*text" > /dev/null 2>&1 ; then \ - unix2dos -q -k $inf; \ - fi\ - done - # step 3: make zipball - # -9 maximum compression - # -y Store symbolic links as such in the zip archive - # -r recursive - # -q quiet - (cd $ztmpdir; zip -9 -y -r -q $version.zip $version) - mv $ztmpdir/$version.zip $zipfile - - # cleanup - rm -rf $ztmpdir -} - -# This command must be run at the top level of the hdf5 source directory. -# Verify this requirement. -if [ ! \( -f configure.ac -a -f bin/bbrelease \) ]; then - echo "$0 must be run at the top level of the hdf5 source directory" - exit 1 -fi - -# Defaults -DEST=releases -VERS=`perl bin/h5vers` -VERS_OLD= -test "$VERS" || exit 1 -verbose=yes -release_date=`date +%F` -today=`date +%Y%m%d` -pmode='no' -revmode='no' -tmpdir="../#release_tmp.$$" # tmp work directory -CPPLUS_RM_NAME=cpplus_RM - -# Restore previous Version information -RESTORE_VERSION() -{ - if [ X-${VERS_OLD} != X- ]; then - echo restoring version information back to $VERS_OLD - rm -f config/lt_vers.am - cp $tmpdir/lt_vers.am config/lt_vers.am - bin/h5vers -s $VERS_OLD - VERS_OLD= - fi -} - - -# Command-line arguments -while [ -n "$1" ]; do - arg=$1 - shift - case "$arg" in - -d) - DEST=$1 - shift - ;; - -h) - USAGE - exit 0 - ;; - --private) - pmode=yes - ;; - --revision) - revmode=yes - ;; - --branch) - BRANCHNAME=$1 - shift - ;; - -*) - echo "Unknown switch: $arg" 1>&2 - USAGE - exit 1 - ;; - *) - methods="$methods $arg" - ;; - esac -done - -# Default method is tar -if [ "X$methods" = "X" ]; then - methods="tar" -fi - -# Create the temporary work directory. -if mkdir $tmpdir; then - echo "temporary work directory for release. "\ - "Can be deleted after release completes." > $tmpdir/README -else - echo "Failed to mkdir tmpdir($tmpdir)" - exit 1 -fi - -# setup restoration in case of abort. -trap RESTORE_VERSION 0 - -if [ X$pmode = Xyes ]; then - VERS_OLD=$VERS - # Copy old version of config/lt_vers.am, since it's hard to - # "undo" changes to it. - cp config/lt_vers.am $tmpdir - # Set version information to m.n.r-of$today. - # (h5vers does not correctly handle just m.n.r-$today.) - VERS=`echo $VERS | sed -e s/-.*//`-of$today - echo Private release of $VERS - bin/h5vers -s $VERS -fi - -if [ X$revmode = Xyes ]; then - VERS_OLD=$VERS - echo "Save old version $VERS_OLD for restoration later." - # Copy old version of config/lt_vers.am, since it's hard to - # "undo" changes to it. - cp config/lt_vers.am $tmpdir - if [ "${BRANCHNAME}" = "" ]; then - BRANCHNAME=`git symbolic-ref -q --short HEAD` - fi - revision=`git rev-parse --short HEAD` - # Set version information to m.n.r-r$revision. - # (h5vers does not correctly handle just m.n.r-$today.) - VERS=`echo $VERS | sed -e s/-.*//`-$revision - echo Private release of $VERS - HDF5_VERS=hdf5-$BRANCHNAME-$revision - echo file base of $HDF5_VERS - bin/h5vers -s $VERS - # use a generic directory name for revision releases - HDF5_IN_VERS=hdfsrc -else - # Store hdf5-$VERS ("hdf5-1.7.51", e.g.) to a variable to avoid typos - HDF5_VERS=hdf5-$VERS - # directory name matches tar file name for non-revision releases - HDF5_IN_VERS=$HDF5_VERS -fi - -test "$verbose" && echo "Releasing $HDF5_VERS to $DEST" 1>&2 -if [ ! -d $DEST ]; then - echo " Destination directory $DEST does not exist" 1>&2 - exit 1 -fi - -# Create a symlink to the source so files in the tarball have the prefix -# we want (gnu's --transform isn't portable) -ln -s `pwd` $tmpdir/$HDF5_IN_VERS || exit 1 - -# Save a backup copy of Makefile if exists. -test -f Makefile && mv Makefile $tmpdir/Makefile.x -cp -p Makefile.dist Makefile - -# Update README.md and release_docs/RELEASE.txt with release information in -# line 1. -for f in README.md release_docs/RELEASE.txt; do - echo "HDF5 version $VERS released on $release_date" >$f.x - sed -e 1d $f >>$f.x - mv $f.x $f - # Make sure new files are of the right access mode - chmod 644 $f -done - -# Create the tar file -test "$verbose" && echo " Running tar..." 1>&2 -(cd "$tmpdir" && exec tar -ch --exclude-vcs -f "$HDF5_VERS.tar" "./$HDF5_IN_VERS" || exit 1 ) - -# Compress -MD5file=$HDF5_VERS.md5 -cp /dev/null $DEST/$MD5file -for comp in $methods; do - case $comp in - tar) - cp -p $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.tar - (cd $DEST; md5sum $HDF5_VERS.tar >> $MD5file) - ;; - gzip) - test "$verbose" && echo " Running gzip..." 1>&2 - gzip -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.gz - (cd $DEST; md5sum $HDF5_VERS.tar.gz >> $MD5file) - ;; - bzip2) - test "$verbose" && echo " Running bzip2..." 1>&2 - bzip2 -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.bz2 - (cd $DEST; md5sum $HDF5_VERS.tar.bz2 >> $MD5file) - ;; - zip) - test "$verbose" && echo " Creating zip ball..." 1>&2 - tar2zip $HDF5_IN_VERS $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.zip 1>&2 - (cd $DEST; md5sum $HDF5_VERS.zip >> $MD5file) - ;; - *) - echo "***Error*** Unknown method $comp" - exit 1 - ;; - esac -done - -# Copy the RELEASE.txt to the release area. -cp release_docs/RELEASE.txt $DEST/$HDF5_VERS-RELEASE.txt - -# Remove distributed Makefile and restore previous Makefile if existed. -rm -f Makefile -test -f $tmpdir/Makefile.x && mv $tmpdir/Makefile.x Makefile - -# Restore OLD version information, then no need for trap. -if [ X$pmode = Xyes ] || [ X$revmode = Xyes ]; then - echo "Restore the original version $VERS_OLD" - RESTORE_VERSION - trap 0 -fi - -# Remove temporary things -rm -rf $tmpdir - -echo "DONE" - -exit 0 |