summaryrefslogtreecommitdiff
path: root/tools/makesrcdist
blob: 0eb4426f61c77cf5e78a84ff738b86cb1f0be6d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!/bin/sh
#
# "$Id$"
#
# makesrcdist - make a source distribution of CUPS.
#

# Make sure we are running in the right directory...
if test ! -f tools/makesrcdist; then
        echo "Run this script from the top-level CUPS source directory, e.g.:"
        echo ""
        echo "    tools/makesrcdist $*"
        echo ""
        exit 1
fi

if (svn st | grep -v makesrcdist | grep -qv '^\?'); then
        echo Local changes remain:
        svn st | grep -v makesrcdist | grep -v '^\?'
        exit 1
fi

if test $# = 0; then
	echo Updating for snapshot...
	svn up

	# Compute version for snapshot
	rev=`svn info . | grep Revision: | awk '{print $2}'`
	version="2.0svn"
	revision="-r$rev"
	fileversion="2.0svn-r$rev"
	fileurl="http://www.cups.org/software/test/cups-$fileversion-source.tar."
	url="."
else
	# Use version from command-line
	rev="1"
	version=$1
	revision=""
	fileversion=$1
	fileurl="http://www.cups.org/software/$version/cups-$fileversion-source.tar."
	url="svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-$version"

	echo Validating sources...
	cupsversionpatch=`echo $version | awk -F. '{if (NF == 3) { print $3 } else { print "0" } }'`
	cupsversion=`printf "2.00%02d" $cupsversionpatch`

	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.txt | awk '{print $4}'`
	if test "$temp" != "v$version"; then
		echo "Still need to update version to v$version in README.txt (saw $temp)"
		exit 1
	fi

	temp=`head -1 INSTALL.txt | awk '{print $4}'`
	if test "$temp" != "v$version"; then
		echo "Still need to update version to v$version in INSTALL.txt (saw $temp)"
		exit 1
	fi

	temp=`head -4 CHANGES.txt | grep "CHANGES IN" | awk '{print $4}'`
	if test "$temp" != "V$version"; then
		echo "Still need to add CHANGES IN V$version in CHANGES.txt (saw $temp)"
		exit 1
	fi

	echo Creating tag for release...
	svn copy svn+ssh://src.apple.com/svn/cups/cups.org/trunk "$url" \
		-m "Tag $version" || exit 1
fi

fileurl=`echo $fileurl | sed -e '1,$s/\\//\\\\\\//g'`

echo Exporting $fileversion...
rm -rf /tmp/cups-$version
svn export $url /tmp/cups-$version

echo Updating version information...
cd /tmp/cups-$version/config-scripts

sed -e '1,$s/^CUPS_VERSION=.*/CUPS_VERSION='$version'/' \
	-e '1,$s/^CUPS_REVISION=.*/CUPS_REVISION='$revision'/' \
	<cups-common.m4 >cups-common.m4.new
mv cups-common.m4.new cups-common.m4
cd ..

echo Configuring...
autoconf -f
rm -rf autom4te*.cache
rm -rf everywhere
rm -rf tools
cd ..

echo -n Archiving...gz
sed -e '1,$s/@CUPS_VERSION@/'$version'/' \
	-e '1,$s/^Release:.*/Release: '$rev'/' \
	-e '1,$s/^Source:.*/Source: '$fileurl'gz/' \
	<cups-$version/packaging/cups.spec.in \
	>cups-$version/packaging/cups.spec
tar czf cups-$fileversion-source.tar.gz cups-$version

echo -n ...bz2
sed -e '1,$s/@CUPS_VERSION@/'$version'/' \
	-e '1,$s/^Release:.*/Release: '$rev'/' \
	-e '1,$s/^Source:.*/Source: '$fileurl'bz2/' \
	<cups-$version/packaging/cups.spec.in \
	>cups-$version/packaging/cups.spec
tar cjf cups-$fileversion-source.tar.bz2 cups-$version
echo "..."

if test -x /usr/bin/md5sum; then
	(cd /tmp; md5sum cups-$fileversion-source.tar.{bz2,gz} | awk '{print $1, "'$fileversion' '$fileversion'/" $2}')
elif test -x /sbin/md5; then
	(cd /tmp; md5 cups-$fileversion-source.tar.{bz2,gz} | awk '{print $4, "'$fileversion' '$fileversion'/" substr($2, 2, length($2) - 2)}')
fi

for file in /tmp/cups-$fileversion-source.tar.{bz2,gz}; do
	gpg --detach-sign $file
done

echo Removing temporary files...
rm -rf cups-$version

echo "Done."

#
# End of "$Id$".
#