release-sign-tarballs revision 3114ead9a60b65191e92dea6c76c038c03a8f1dc
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce#!/bin/bash
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceSIGNER="bryce@bryceharrington.org"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceVERSION="0.92"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbrycePKG_NAME="inkscape"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Locate Dependencies
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce#------------------------------------------------------------------------------
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceMD5SUM=`which md5sum || which gmd5sum`
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceSHA1SUM=`which sha1sum || which gsha1sum`
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceSHA256SUM=`which sha256sum || which gsha256sum`
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Choose which make program to use (could be gmake)
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceMAKE=${MAKE:="make"}
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Set the default make tarball creation command
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceMAKE_DIST_CMD=distcheck
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Choose which grep program to use (on Solaris, must be gnu grep)
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceif [ "x$GREP" = "x" ] ; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce if [ -x /usr/gnu/bin/grep ] ; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce GREP=/usr/gnu/bin/grep
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce else
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce GREP=grep
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce fi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbrycefi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Find path for GnuPG v2
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceif [ "x$GPG" = "x" ] ; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce if [ -x /usr/bin/gpg2 ] ; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce GPG=/usr/bin/gpg2
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce else
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce GPG=gpg
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce fi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbrycefi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Function: sign_or_fail
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce#------------------------------------------------------------------------------
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce#
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Sign the given file, if any
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Output the name of the signature generated to stdout (all other output to
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# stderr)
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Return 0 on success, 1 on fail
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce#
3114ead9a60b65191e92dea6c76c038c03a8f1dcbrycesign_or_fail() {
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce if [ -n "$1" ]; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce sig=$1.sig
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce rm -f $sig
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce [ -n ${SIGNER} ] && signer="-u $SIGNER"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce echo "$GPG $signer --detach-sign $1" 1>&2
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce $GPG $signer --detach-sign $1 1>&2
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce if [ $? -ne 0 ]; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce echo "Error: failed to sign $1." >&2
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce return 1
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce fi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce echo $sig
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce fi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce return 0
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce}
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbrycesign_packages() {
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce targz="${PKG_NAME}-${VERSION}.tar.gz"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce tarbz2="${PKG_NAME}-${VERSION}.tar.bz2"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce tarxz="${PKG_NAME}-${VERSION}.tar.xz"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce zip="${PKG_NAME}-${VERSION}.zip"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce # The tar.gz is always required
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce gpgsignerr=0
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce siggz="$(sign_or_fail ${targz})"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce gpgsignerr=$((${gpgsignerr} + $?))
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce if [ -e "${tarbz2}" ]; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce sigbz2="$(sign_or_fail ${tarbz2})"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce gpgsignerr=$((${gpgsignerr} + $?))
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce fi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce if [ -e "${tarxz}" ]; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce sigxz="$(sign_or_fail ${tarxz})"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce gpgsignerr=$((${gpgsignerr} + $?))
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce fi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce if [ -e "${zip}" ]; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce sigzip="$(sign_or_fail ${zip})"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce gpgsignerr=$((${gpgsignerr} + $?))
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce fi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce if [ ${gpgsignerr} -ne 0 ]; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce echo "Error: unable to sign at least one of the tarballs."
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce return 1
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce fi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce return 0;
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce}
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbrycegenerate_announce() {
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce}
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceprocess() {
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce sign_packages
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce generate_announce > "$tar_name.announce"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce echo "Info: [ANNOUNCE] template generated in \"$tar_name.announce\" file."
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce echo " Please pgp sign and send it."
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce return 0
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce}
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceprocess