xref: /aosp_15_r20/external/libcups/scripts/makesrcdist (revision 5e7646d21f1134fb0638875d812ef646c12ab91e)
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