1#!/bin/sh
2#
3# "$Id: makesrcdist 12078 2014-07-31 11:45:57Z msweet $"
4#
5# makesrcdist - make a source distribution of CUPS.
6#
7
8# Make sure we are running in the right directory...
9if test ! -f tools/makesrcdist; then
10        echo "Run this script from the top-level CUPS source directory, e.g.:"
11        echo ""
12        echo "    tools/makesrcdist $*"
13        echo ""
14        exit 1
15fi
16
17if (svn st | grep -v makesrcdist | grep -qv '^\?'); then
18        echo Local changes remain:
19        svn st | grep -v makesrcdist | grep -v '^\?'
20        exit 1
21fi
22
23if test $# = 0; then
24	echo Updating for snapshot...
25	svn up
26
27	# Compute version for snapshot
28	rev=`svn info . | grep Revision: | awk '{print $2}'`
29	version="2.0svn"
30	revision="-r$rev"
31	fileversion="2.0svn-r$rev"
32	fileurl="http://www.cups.org/software/test/cups-$fileversion-source.tar."
33	url="."
34else
35	# Use version from command-line
36	rev="1"
37	version=$1
38	revision=""
39	fileversion=$1
40	fileurl="http://www.cups.org/software/$version/cups-$fileversion-source.tar."
41	url="svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-$version"
42
43	echo Validating sources...
44	cupsversionpatch=`echo $version | awk -F. '{if (NF == 3) { print $3 } else { print "0" } }'`
45	cupsversion=`printf "2.00%02d" $cupsversionpatch`
46
47	temp=`grep CUPS_VERSION cups/cups.h | grep -v CUPS_VERSION_ | awk '{print $4}'`
48	if test "$temp" != $cupsversion; then
49		echo "Still need to update CUPS_VERSION to $cupsversion in cups/cups.h (saw $temp)"
50		exit 1
51	fi
52
53	temp=`grep CUPS_VERSION_PATCH cups/cups.h | awk '{print $4}'`
54	if test "$temp" != $cupsversionpatch; then
55		echo "Still need to update CUPS_VERSION_PATCH to $cupsversionpatch in cups/cups.h (saw $temp)"
56		exit 1
57	fi
58
59	temp=`head -1 README.txt | awk '{print $4}'`
60	if test "$temp" != "v$version"; then
61		echo "Still need to update version to v$version in README.txt (saw $temp)"
62		exit 1
63	fi
64
65	temp=`head -1 INSTALL.txt | awk '{print $4}'`
66	if test "$temp" != "v$version"; then
67		echo "Still need to update version to v$version in INSTALL.txt (saw $temp)"
68		exit 1
69	fi
70
71	temp=`head -4 CHANGES.txt | grep "CHANGES IN" | awk '{print $4}'`
72	if test "$temp" != "V$version"; then
73		echo "Still need to add CHANGES IN V$version in CHANGES.txt (saw $temp)"
74		exit 1
75	fi
76
77	echo Creating tag for release...
78	svn copy svn+ssh://src.apple.com/svn/cups/cups.org/trunk "$url" \
79		-m "Tag $version" || exit 1
80fi
81
82fileurl=`echo $fileurl | sed -e '1,$s/\\//\\\\\\//g'`
83
84echo Exporting $fileversion...
85rm -rf /tmp/cups-$version
86svn export $url /tmp/cups-$version
87
88echo Updating version information...
89cd /tmp/cups-$version/config-scripts
90
91sed -e '1,$s/^CUPS_VERSION=.*/CUPS_VERSION='$version'/' \
92	-e '1,$s/^CUPS_REVISION=.*/CUPS_REVISION='$revision'/' \
93	<cups-common.m4 >cups-common.m4.new
94mv cups-common.m4.new cups-common.m4
95cd ..
96
97echo Configuring...
98autoconf -f
99rm -rf autom4te*.cache
100rm -rf everywhere
101rm -rf tools
102cd ..
103
104echo -n Archiving...gz
105sed -e '1,$s/@CUPS_VERSION@/'$version'/' \
106	-e '1,$s/^Release:.*/Release: '$rev'/' \
107	-e '1,$s/^Source:.*/Source: '$fileurl'gz/' \
108	<cups-$version/packaging/cups.spec.in \
109	>cups-$version/packaging/cups.spec
110tar czf cups-$fileversion-source.tar.gz cups-$version
111
112echo -n ...bz2
113sed -e '1,$s/@CUPS_VERSION@/'$version'/' \
114	-e '1,$s/^Release:.*/Release: '$rev'/' \
115	-e '1,$s/^Source:.*/Source: '$fileurl'bz2/' \
116	<cups-$version/packaging/cups.spec.in \
117	>cups-$version/packaging/cups.spec
118tar cjf cups-$fileversion-source.tar.bz2 cups-$version
119echo "..."
120
121if test -x /usr/bin/md5sum; then
122	(cd /tmp; md5sum cups-$fileversion-source.tar.{bz2,gz} | awk '{print $1, "'$fileversion' '$fileversion'/" $2}')
123elif test -x /sbin/md5; then
124	(cd /tmp; md5 cups-$fileversion-source.tar.{bz2,gz} | awk '{print $4, "'$fileversion' '$fileversion'/" substr($2, 2, length($2) - 2)}')
125fi
126
127for file in /tmp/cups-$fileversion-source.tar.{bz2,gz}; do
128	gpg --detach-sign $file
129done
130
131echo Removing temporary files...
132rm -rf cups-$version
133
134echo "Done."
135
136#
137# End of "$Id: makesrcdist 12078 2014-07-31 11:45:57Z msweet $".
138#
139