1*5e7646d2SAndroid Build Coastguard Worker#!/bin/sh 2*5e7646d2SAndroid Build Coastguard Worker# 3*5e7646d2SAndroid Build Coastguard Worker# makesrcdist - make a source distribution of CUPS. 4*5e7646d2SAndroid Build Coastguard Worker# 5*5e7646d2SAndroid Build Coastguard Worker 6*5e7646d2SAndroid Build Coastguard WorkerTMPDIR="${TMPDIR:=/tmp}" 7*5e7646d2SAndroid Build Coastguard Worker 8*5e7646d2SAndroid Build Coastguard Worker# Make sure we are running in the right directory... 9*5e7646d2SAndroid Build Coastguard Workerif test ! -f scripts/makesrcdist; then 10*5e7646d2SAndroid Build Coastguard Worker echo "Run this script from the top-level CUPS source directory, e.g.:" 11*5e7646d2SAndroid Build Coastguard Worker echo "" 12*5e7646d2SAndroid Build Coastguard Worker echo " scripts/makesrcdist $*" 13*5e7646d2SAndroid Build Coastguard Worker echo "" 14*5e7646d2SAndroid Build Coastguard Worker exit 1 15*5e7646d2SAndroid Build Coastguard Workerfi 16*5e7646d2SAndroid Build Coastguard Worker 17*5e7646d2SAndroid Build Coastguard Worker# See if we have local changes (other than this script...) 18*5e7646d2SAndroid Build Coastguard Workerif (git status | grep -v makesrcdist | grep -v makerpm | grep -q modified:); then 19*5e7646d2SAndroid Build Coastguard Worker echo Local changes remain: 20*5e7646d2SAndroid Build Coastguard Worker git status | grep -v makesrcdist | grep modified: 21*5e7646d2SAndroid Build Coastguard Worker exit 1 22*5e7646d2SAndroid Build Coastguard Workerfi 23*5e7646d2SAndroid Build Coastguard Worker 24*5e7646d2SAndroid Build Coastguard Worker# Prep for snapshot or version release... 25*5e7646d2SAndroid Build Coastguard Workerif test $# = 0; then 26*5e7646d2SAndroid Build Coastguard Worker # Compute version for snapshot 27*5e7646d2SAndroid Build Coastguard Worker rev=`git show --oneline | head -1 | awk '{print $1}'` 28*5e7646d2SAndroid Build Coastguard Worker version="2.3git" 29*5e7646d2SAndroid Build Coastguard Worker fileversion="2.3git-$rev" 30*5e7646d2SAndroid Build Coastguard Worker fileurl="file://$TMPDIR/cups-${fileversion}-source.tar.gz" 31*5e7646d2SAndroid Build Coastguard Worker SIGNFILES=no 32*5e7646d2SAndroid Build Coastguard Workerelse 33*5e7646d2SAndroid Build Coastguard Worker # Use version from command-line 34*5e7646d2SAndroid Build Coastguard Worker rev="1" 35*5e7646d2SAndroid Build Coastguard Worker version=$1 36*5e7646d2SAndroid Build Coastguard Worker fileversion=$1 37*5e7646d2SAndroid Build Coastguard Worker fileurl="https://github.com/apple/cups/releases/download/v$fileversion/cups-${fileversion}-source.tar.gz" 38*5e7646d2SAndroid Build Coastguard Worker SIGNFILES=yes 39*5e7646d2SAndroid Build Coastguard Worker 40*5e7646d2SAndroid Build Coastguard Worker echo Validating sources... 41*5e7646d2SAndroid Build Coastguard Worker cupsversionpatch=`echo $version | awk -F. '{if (NF == 3) { print $3 } else { print "0" } }'` 42*5e7646d2SAndroid Build Coastguard Worker cupsversion=`printf "2.03%02d" $cupsversionpatch` 43*5e7646d2SAndroid Build Coastguard Worker 44*5e7646d2SAndroid Build Coastguard Worker temp=`grep AC_INIT configure.ac | awk '{print $2}' | sed -e '1,$s/^\[//' -e '1,$s/\],$//'` 45*5e7646d2SAndroid Build Coastguard Worker if test "$temp" != $version; then 46*5e7646d2SAndroid Build Coastguard Worker echo "Still need to update version to $version in configure.ac (saw $temp)" 47*5e7646d2SAndroid Build Coastguard Worker exit 1 48*5e7646d2SAndroid Build Coastguard Worker fi 49*5e7646d2SAndroid Build Coastguard Worker 50*5e7646d2SAndroid Build Coastguard Worker temp=`grep CUPS_VERSION cups/cups.h | grep -v CUPS_VERSION_ | awk '{print $4}'` 51*5e7646d2SAndroid Build Coastguard Worker if test "$temp" != $cupsversion; then 52*5e7646d2SAndroid Build Coastguard Worker echo "Still need to update CUPS_VERSION to $cupsversion in cups/cups.h (saw $temp)" 53*5e7646d2SAndroid Build Coastguard Worker exit 1 54*5e7646d2SAndroid Build Coastguard Worker fi 55*5e7646d2SAndroid Build Coastguard Worker 56*5e7646d2SAndroid Build Coastguard Worker temp=`grep CUPS_VERSION_PATCH cups/cups.h | awk '{print $4}'` 57*5e7646d2SAndroid Build Coastguard Worker if test "$temp" != $cupsversionpatch; then 58*5e7646d2SAndroid Build Coastguard Worker echo "Still need to update CUPS_VERSION_PATCH to $cupsversionpatch in cups/cups.h (saw $temp)" 59*5e7646d2SAndroid Build Coastguard Worker exit 1 60*5e7646d2SAndroid Build Coastguard Worker fi 61*5e7646d2SAndroid Build Coastguard Worker 62*5e7646d2SAndroid Build Coastguard Worker temp=`head -1 README.md | awk '{print $5}'` 63*5e7646d2SAndroid Build Coastguard Worker if test "$temp" != "v$version"; then 64*5e7646d2SAndroid Build Coastguard Worker echo "Still need to update version to v$version in README.md (saw $temp)" 65*5e7646d2SAndroid Build Coastguard Worker exit 1 66*5e7646d2SAndroid Build Coastguard Worker fi 67*5e7646d2SAndroid Build Coastguard Worker 68*5e7646d2SAndroid Build Coastguard Worker temp=`head -1 INSTALL.md | awk '{print $4}'` 69*5e7646d2SAndroid Build Coastguard Worker if test "$temp" != "v$version"; then 70*5e7646d2SAndroid Build Coastguard Worker echo "Still need to update version to v$version in INSTALL.md (saw $temp)" 71*5e7646d2SAndroid Build Coastguard Worker exit 1 72*5e7646d2SAndroid Build Coastguard Worker fi 73*5e7646d2SAndroid Build Coastguard Worker 74*5e7646d2SAndroid Build Coastguard Worker temp=`head -6 CHANGES.md | grep "Changes in" | awk '{print $4}'` 75*5e7646d2SAndroid Build Coastguard Worker if test "$temp" != "v$version"; then 76*5e7646d2SAndroid Build Coastguard Worker echo "Still need to add Changes in v$version in CHANGES.md (saw $temp)" 77*5e7646d2SAndroid Build Coastguard Worker exit 1 78*5e7646d2SAndroid Build Coastguard Worker fi 79*5e7646d2SAndroid Build Coastguard Worker 80*5e7646d2SAndroid Build Coastguard Worker echo Creating tag for release... 81*5e7646d2SAndroid Build Coastguard Worker git tag -m "Tag $version" v$version 82*5e7646d2SAndroid Build Coastguard Worker git push origin v$version 83*5e7646d2SAndroid Build Coastguard Workerfi 84*5e7646d2SAndroid Build Coastguard Worker 85*5e7646d2SAndroid Build Coastguard Workerfileurl=`echo $fileurl | sed -e '1,$s/\\//\\\\\\//g'` 86*5e7646d2SAndroid Build Coastguard Workerfile="$HOME/cups-$fileversion-source.tar" 87*5e7646d2SAndroid Build Coastguard Worker 88*5e7646d2SAndroid Build Coastguard Workerecho Exporting $fileversion... 89*5e7646d2SAndroid Build Coastguard Workerrm -rf $TMPDIR/cups-$version 90*5e7646d2SAndroid Build Coastguard Workermkdir $TMPDIR/cups-$version 91*5e7646d2SAndroid Build Coastguard Workergit archive --format tar HEAD | (cd $TMPDIR/cups-$version; tar xf -) 92*5e7646d2SAndroid Build Coastguard Worker 93*5e7646d2SAndroid Build Coastguard Workerecho Preparing files... 94*5e7646d2SAndroid Build Coastguard Workercd $TMPDIR/cups-$version 95*5e7646d2SAndroid Build Coastguard Workersed -e '1,$s/@CUPS_VERSION@/'$version'/' \ 96*5e7646d2SAndroid Build Coastguard Worker -e '1,$s/^Source:.*/Source: '$fileurl'/' \ 97*5e7646d2SAndroid Build Coastguard Worker <packaging/cups.spec.in \ 98*5e7646d2SAndroid Build Coastguard Worker >packaging/cups.spec 99*5e7646d2SAndroid Build Coastguard Workerrm -rf .gitignore 100*5e7646d2SAndroid Build Coastguard Workercd .. 101*5e7646d2SAndroid Build Coastguard Worker 102*5e7646d2SAndroid Build Coastguard Workerecho Archiving... 103*5e7646d2SAndroid Build Coastguard Workertar cf $file cups-$version 104*5e7646d2SAndroid Build Coastguard Worker 105*5e7646d2SAndroid Build Coastguard Workerecho Compressing... 106*5e7646d2SAndroid Build Coastguard Workerif (which zopfli >/dev/null); then 107*5e7646d2SAndroid Build Coastguard Worker zopfli $file 108*5e7646d2SAndroid Build Coastguard Worker rm -f $file 109*5e7646d2SAndroid Build Coastguard Workerelse 110*5e7646d2SAndroid Build Coastguard Worker gzip -v9 $file 111*5e7646d2SAndroid Build Coastguard Workerfi 112*5e7646d2SAndroid Build Coastguard Worker 113*5e7646d2SAndroid Build Coastguard Workerif test $SIGNFILES = yes; then 114*5e7646d2SAndroid Build Coastguard Worker echo Signing... 115*5e7646d2SAndroid Build Coastguard Worker test -f $file.gz.sig && rm -f $file.gz.sig 116*5e7646d2SAndroid Build Coastguard Worker gpg --detach-sign -u security@cups.org $file.gz 117*5e7646d2SAndroid Build Coastguard Workerfi 118*5e7646d2SAndroid Build Coastguard Worker 119*5e7646d2SAndroid Build Coastguard Workerecho Removing temporary files... 120*5e7646d2SAndroid Build Coastguard Workerrm -rf cups-$version 121*5e7646d2SAndroid Build Coastguard Worker 122*5e7646d2SAndroid Build Coastguard Workerecho "Done - files in $HOME." 123