php-src/scripts/dev/gen_verify_stub
Calvin Buckley 3618382d07
Handle BSD checksum and file utilities (#14690)
* Handle BSD checksum utilities

The BSDs have different checksum utilities than GNU systems do. If we
don't see the GNU checksum utilities installed, use the BSD ones, as
their output is compatible enough.

Addresses part of GH-14688.

* Prefer GNU touch

BSD touch at least in macOS does not handle local timezone in the
timestamp (like 2024-06-27T10:26:23-03:00). As such, try GNU touch (as
ports systems almost always prefix with g if coreutils is installed) and
prefer that if available. It's not the end of the world though if GNU
touch isn't available, as BSD touch on some systems may support it, and
if it doesn't, then it's just timestamps, nothing too serious.
2024-07-08 13:27:47 -03:00

54 lines
1 KiB
Bash
Executable file

#!/bin/bash
# Handle GNU vs. BSD checksum utilities
sha256sum="$(which sha256sum)"
sha256sum="${sha256sum:-$(which shasum) -a 256}"
if [ "x$1" == "x" ]
then
echo "Usage: $0 <version> [email]"
echo "Generate the tarball verification info suitable to put into an announcement."
echo
echo "Examples"
echo " $0 7.0.0beta3"
exit 0
fi
RELEASE_VER=$1
GPG_USER=
if [ "x$2" != "x" ]
then
GPG_USER=$2
fi
if test "x$PHPROOT" == "x"; then
PHPROOT=.
fi
for TARBALL in "$PHPROOT/php-$RELEASE_VER.tar.bz2" "$PHPROOT/php-$RELEASE_VER.tar.gz" "$PHPROOT/php-$RELEASE_VER.tar.xz"
do
if ! [ -e $TARBALL ]
then
echo "$TARBALL doesn't exist"
exit 3
fi
if [ "x$GPG_USER" == "x" ]
then
gpg --armor --detach-sign $TARBALL
else
gpg -u $GPG_USER --armor --detach-sign $TARBALL
fi
done
for TARBALL in "$PHPROOT/php-$RELEASE_VER.tar.bz2" "$PHPROOT/php-$RELEASE_VER.tar.gz" "$PHPROOT/php-$RELEASE_VER.tar.xz"
do
basename $TARBALL
echo "SHA256 hash: `$sha256sum $TARBALL | cut -d' ' -f1`";
echo PGP signature:
cat $TARBALL.asc
echo -e "\n"
done
exit 0