123 lines
3.3 KiB
Plaintext
123 lines
3.3 KiB
Plaintext
|
|
#!/bin/sh
|
||
|
|
#
|
||
|
|
# makesrcdist - make a source distribution of CUPS.
|
||
|
|
#
|
||
|
|
|
||
|
|
TMPDIR="${TMPDIR:=/tmp}"
|
||
|
|
|
||
|
|
# Make sure we are running in the right directory...
|
||
|
|
if test ! -f scripts/makesrcdist; then
|
||
|
|
echo "Run this script from the top-level CUPS source directory, e.g.:"
|
||
|
|
echo ""
|
||
|
|
echo " scripts/makesrcdist $*"
|
||
|
|
echo ""
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# See if we have local changes (other than this script...)
|
||
|
|
if (git status | grep -v makesrcdist | grep -v makerpm | grep -q modified:); then
|
||
|
|
echo Local changes remain:
|
||
|
|
git status | grep -v makesrcdist | grep modified:
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Prep for snapshot or version release...
|
||
|
|
if test $# = 0; then
|
||
|
|
# Compute version for snapshot
|
||
|
|
rev=`git show --oneline | head -1 | awk '{print $1}'`
|
||
|
|
version="2.3git"
|
||
|
|
fileversion="2.3git-$rev"
|
||
|
|
fileurl="file://$TMPDIR/cups-${fileversion}-source.tar.gz"
|
||
|
|
SIGNFILES=no
|
||
|
|
else
|
||
|
|
# Use version from command-line
|
||
|
|
rev="1"
|
||
|
|
version=$1
|
||
|
|
fileversion=$1
|
||
|
|
fileurl="https://github.com/apple/cups/releases/download/v$fileversion/cups-${fileversion}-source.tar.gz"
|
||
|
|
SIGNFILES=yes
|
||
|
|
|
||
|
|
echo Validating sources...
|
||
|
|
cupsversionpatch=`echo $version | awk -F. '{if (NF == 3) { print $3 } else { print "0" } }'`
|
||
|
|
cupsversion=`printf "2.03%02d" $cupsversionpatch`
|
||
|
|
|
||
|
|
temp=`grep AC_INIT configure.ac | awk '{print $2}' | sed -e '1,$s/^\[//' -e '1,$s/\],$//'`
|
||
|
|
if test "$temp" != $version; then
|
||
|
|
echo "Still need to update version to $version in configure.ac (saw $temp)"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
temp=`grep CUPS_VERSION cups/cups.h | grep -v CUPS_VERSION_ | awk '{print $4}'`
|
||
|
|
if test "$temp" != $cupsversion; then
|
||
|
|
echo "Still need to update CUPS_VERSION to $cupsversion in cups/cups.h (saw $temp)"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
temp=`grep CUPS_VERSION_PATCH cups/cups.h | awk '{print $4}'`
|
||
|
|
if test "$temp" != $cupsversionpatch; then
|
||
|
|
echo "Still need to update CUPS_VERSION_PATCH to $cupsversionpatch in cups/cups.h (saw $temp)"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
temp=`head -1 README.md | awk '{print $4}'`
|
||
|
|
if test "$temp" != "v$version"; then
|
||
|
|
echo "Still need to update version to v$version in README.md (saw $temp)"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
temp=`head -1 INSTALL.md | awk '{print $4}'`
|
||
|
|
if test "$temp" != "v$version"; then
|
||
|
|
echo "Still need to update version to v$version in INSTALL.md (saw $temp)"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
temp=`head -6 CHANGES.md | grep "Changes in" | awk '{print $4}'`
|
||
|
|
if test "$temp" != "v$version"; then
|
||
|
|
echo "Still need to add Changes in v$version in CHANGES.md (saw $temp)"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo Creating tag for release...
|
||
|
|
git tag -m "Tag $version" v$version
|
||
|
|
git push origin v$version
|
||
|
|
fi
|
||
|
|
|
||
|
|
fileurl=`echo $fileurl | sed -e '1,$s/\\//\\\\\\//g'`
|
||
|
|
file="$HOME/cups-$fileversion-source.tar"
|
||
|
|
|
||
|
|
echo Exporting $fileversion...
|
||
|
|
rm -rf $TMPDIR/cups-$version
|
||
|
|
mkdir $TMPDIR/cups-$version
|
||
|
|
git archive --format tar HEAD | (cd $TMPDIR/cups-$version; tar xf -)
|
||
|
|
|
||
|
|
echo Preparing files...
|
||
|
|
cd $TMPDIR/cups-$version
|
||
|
|
sed -e '1,$s/@CUPS_VERSION@/'$version'/' \
|
||
|
|
-e '1,$s/^Source:.*/Source: '$fileurl'/' \
|
||
|
|
<packaging/cups.spec.in \
|
||
|
|
>packaging/cups.spec
|
||
|
|
rm -rf .gitignore
|
||
|
|
cd ..
|
||
|
|
|
||
|
|
echo Archiving...
|
||
|
|
tar cf $file cups-$version
|
||
|
|
|
||
|
|
echo Compressing...
|
||
|
|
if (which zopfli >/dev/null); then
|
||
|
|
zopfli $file
|
||
|
|
rm -f $file
|
||
|
|
else
|
||
|
|
gzip -v9 $file
|
||
|
|
fi
|
||
|
|
|
||
|
|
if test $SIGNFILES = yes; then
|
||
|
|
echo Signing...
|
||
|
|
test -f $file.gz.sig && rm -f $file.gz.sig
|
||
|
|
gpg --detach-sign -u security@cups.org $file.gz
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo Removing temporary files...
|
||
|
|
rm -rf cups-$version
|
||
|
|
|
||
|
|
echo "Done - files in $HOME."
|