From 35a96bde514a8897f6f0fcc41c5833bf63df2e2a Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 18:29:01 +0200 Subject: Adding upstream version 1.0.2. Signed-off-by: Daniel Baumann --- packaging/release-sign-tarballs | 259 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 259 insertions(+) create mode 100755 packaging/release-sign-tarballs (limited to 'packaging/release-sign-tarballs') diff --git a/packaging/release-sign-tarballs b/packaging/release-sign-tarballs new file mode 100755 index 0000000..1731e15 --- /dev/null +++ b/packaging/release-sign-tarballs @@ -0,0 +1,259 @@ +#!/bin/bash + +SIGNER="bryce@bryceharrington.org" +VERSION="0.92" +PKG_NAME="inkscape" +LIST_TO="inkscape-announce@lists.sf.net" +LIST_CC="inkscape-devel@lists.sf.net" +VCS_SYSTEM="git" + +# Locate Dependencies +#------------------------------------------------------------------------------ + +MD5SUM=`which md5sum || which gmd5sum` +SHA1SUM=`which sha1sum || which gsha1sum` +SHA256SUM=`which sha256sum || which gsha256sum` + +# Choose which make program to use (could be gmake) +MAKE=${MAKE:="make"} + +# Set the default make tarball creation command +MAKE_DIST_CMD=distcheck + +# Choose which grep program to use (on Solaris, must be gnu grep) +if [ "x$GREP" = "x" ] ; then + if [ -x /usr/gnu/bin/grep ] ; then + GREP=/usr/gnu/bin/grep + else + GREP=grep + fi +fi + +# Find path for GnuPG v2 +if [ "x$GPG" = "x" ] ; then + if [ -x /usr/bin/gpg2 ] ; then + GPG=/usr/bin/gpg2 + else + GPG=gpg + fi +fi + +#------------------------------------------------------------------------------ + +usage() { + basename="`expr "//$0" : '.*/\([^/]*\)'`" + cat < /dev/null + if [ $? -ne 0 ]; then + echo "Error: '${MAKE} ${MAKEFLAGS} ${MAKE_DIST_CMD}' failed." + cd $top_src + return 1 + fi + + return 0 +} + +# Function: sign_or_fail +#------------------------------------------------------------------------------ +# +# Sign the given file, if any +# Output the name of the signature generated to stdout (all other output to +# stderr) +# Return 0 on success, 1 on fail +# +sign_or_fail() { + if [ -n "$1" ]; then + sig=$1.sig + rm -f $sig + + [ -n ${SIGNER} ] && signer="-u $SIGNER" + + echo "$GPG $signer --detach-sign $1" 1>&2 + $GPG $signer --detach-sign $1 1>&2 + if [ $? -ne 0 ]; then + echo "Error: failed to sign $1." >&2 + return 1 + fi + echo $sig + fi + return 0 +} + + +sign_packages() { + tar_name="$1" + targz="${tar_name}.tar.gz" + tarbz2="${tar_name}.tar.bz2" + tarxz="${tar_name}.tar.xz" + zip="${tar_name}.zip" + + for tarball in $targz $tarxz $tarbz2 $zip; do + if [ -e "${tarball}" ]; then + sig="$(sign_or_fail ${tarball})" + gpgsignerr=$((${gpgsignerr} + $?)) + sig_url="http://inkscape.org/.../$sig" + cat < + +The above barely scratches the surface of what's included in this +release. For the full scoop, please see our detailed Release Notes: + + http://wiki.inkscape.org/wiki/index.php/Release_notes/$VERSION + +RELEASE +} + +process() { + top_src=$(pwd) + + tar_name=$(make_dist) + generate_announce > "${tar_name}.announce" + + # TODO: Once converted to git, enable display of shortlog + #tag_previous=`git describe --abbrev=0 HEAD^ 2>/dev/null` + #tag_range="FIXME..FIXME" + #`git log --no-merges "$tag_range" | git shortlog` + echo "${VCS_SYSTEM} tag: $tar_name" >> ${tar_name}.announce + + sign_packages ${tar_name} >> "${tar_name}.announce" + if [ $? -ne 0 ]; then + rm "${tar_name}.announce" + echo "Error: Failed signatures" + return 1 + fi + + # TODO: Verify the top commit SHA has a version bump + # local_top_commit_sha=`git rev-list --max-count=1 HEAD` + # git diff --unified=0 HEAD^ | $GREP -F $pkg_version >/dev/null 2>&1 + # TODO: Check that the top commit is pushed to remote + # git rev-list --max-count=1 $remote_name/$remote_branch + + echo "TODO: Tag the top commit as $tar_name" + echo "TODO: Upload the tarballs to the remote" + echo "TODO: Push all local changes and tags to remote" + + echo "Info: [ANNOUNCE] template generated in \"$tar_name.announce\" file." + echo " Please pgp sign and send it." + + return 0 +} + +process -- cgit v1.2.3