Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 How to prepare a new release
2 ----------------------------
4 . include/freetype.h: Update FREETYPE_MAJOR, FREETYPE_MINOR,
5 and FREETYPE_PATCH.
7 . Update version numbers in all files where necessary (for example, do
8 a grep for both `2.3.1' and `231' for release 2.3.1).
10 . builds/unix/configure.raw: Update `version_info'.
12 . docs/CHANGES: Document differences to last release.
14 . README: Update.
16 . docs/VERSION.DLL: Document changed `version_info'.
18 . ChangeLog: Announce new release (both in the freetype2 and
19 freetype2-demos modules).
21 . Clone the git archive to another directory with
23 git clone -l -s . ../freetype2.test
25 or something like this and run
27 make distclean; make devel; make
28 make distclean; make devel; make multi
29 make distclean; make devel CC=g++; make CC=g++
30 make distclean; make devel CC=g++; make multi CC=g++
32 sh autogen.sh
33 make distclean; ./configure; make
34 make distclean; ./configure CC=g++; make
36 in the cloned repository to test compilation with both gcc and g++.
38 . Test C++ compilation for freetype2-demos too (using `git clone' as
39 above).
41 . Run src/tools/chktrcmp.py and check that there are no undefined
42 trace_XXXX macros.
44 . Tag the git repositories (freetype2, freetype2-demos) with
46 git tag VER-<version> -m "" -u <committer>
48 and push the tags with
50 git push --tags
52 . Check with
54 git clean -ndx
56 that the git directory is really clean (and remove extraneous files
57 if necessary).
59 . Say `make dist' in both the freetype2 and freetype2-demos modules
60 to generate the .tar.gz, .tar.bz2, and .zip files.
62 . Create the doc bundles (freetype-doc-<version>.tar.gz,
63 freetype-doc-<version>.tar.bz2, ftdoc<version>.zip). This is
64 everything in
66 <freetype-web git repository>/freetype2/docs
68 except the `reference' subdirectory. Do *not* use option `-l' from
69 zip!
71 . Run the following script (with updated `$VERSION', `$SAVANNAH_USER',
72 and $SOURCEFORGE_USER variables) to sign and upload the bundles to
73 both Savannah and SourceForge. The signing code has been taken from
74 the `gnupload' script (part of the automake bundle).
76 #!/bin/sh
78 VERSION=2.5.1
79 SAVANNAH_USER=wl
80 SOURCEFORGE_USER=wlemb
82 #####################################################################
84 GPG='/usr/bin/gpg --batch --no-tty'
86 version=`echo $VERSION | sed "s/\\.//g"`
88 FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \
89 freetype-$VERSION.tar.bz2 \
90 ft$version.zip"
91 FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \
92 ft2demos-$VERSION.tar.bz2 \
93 ftdmo$version.zip"
94 FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \
95 freetype-doc-$VERSION.tar.bz2 \
96 ftdoc$version.zip"
98 PACKAGE_LIST="$FREETYPE_PACKAGES \
99 $FT2DEMOS_PACKAGES \
100 $FTDOC_PACKAGES"
102 set -e
103 unset passphrase
105 PATH=/empty echo -n "Enter GPG passphrase: "
106 stty -echo
107 read -r passphrase
108 stty echo
109 echo
111 for f in $PACKAGE_LIST; do
112 if test ! -f $f; then
113 echo "$0: Cannot find \`$f'" 1>&2
114 exit 1
115 else
116 :
117 fi
118 done
120 for f in $PACKAGE_LIST; do
121 echo "Signing $f..."
122 rm -f $f.sig
123 echo $passphrase | $GPG --passphrase-fd 0 -ba -o $f.sig $f
124 done
126 FREETYPE_SIGNATURES=
127 for i in $FREETYPE_PACKAGES; do
128 FREETYPE_SIGNATURES="$FREETYPE_SIGNATURES $i.sig"
129 done
131 FT2DEMOS_SIGNATURES=
132 for i in $FT2DEMOS_PACKAGES; do
133 FT2DEMOS_SIGNATURES="$FT2DEMOS_SIGNATURES $i.sig"
134 done
136 FTDOC_SIGNATURES=
137 for i in $FTDOC_PACKAGES; do
138 FTDOC_SIGNATURES="$FTDOC_SIGNATURES $i.sig"
139 done
141 SIGNATURE_LIST="$FREETYPE_SIGNATURES \
142 $FT2DEMOS_SIGNATURES \
143 $FTDOC_SIGNATURES"
145 scp $PACKAGE_LIST $SIGNATURE_LIST \
146 $SAVANNAH_USER@dl.sv.nongnu.org:/releases/freetype/
148 rsync -avP -e ssh $FREETYPE_PACKAGES $FREETYPE_SIGNATURES \
149 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
150 rsync -avP -e ssh $FT2DEMOS_PACKAGES $FT2DEMOS_SIGNATURES \
151 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-demos/$VERSION/
152 rsync -avP -e ssh $FTDOC_PACKAGES $FTDOC_SIGNATURES \
153 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-docs/$VERSION/
155 # EOF
157 . Prepare a README for SourceForge and upload it with the following
158 script (with updated `$VERSION' and $SOURCEFORGE_USER variables).
160 #!/bin/sh
162 VERSION=2.5.1
163 SOURCEFORGE_USER=wlemb
165 #####################################################################
167 rsync -avP -e ssh README \
168 $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
170 # EOF
172 . On SourceForge, tag the just uploaded `ftXXX.zip' and
173 `freetype-XXX.tar.bz2' files as the default files to download for
174 `Windows' and `Others', respectively.
176 . Copy the reference files (generated by `make dist') to
178 <freetype-web git repository>/freetype2/docs/reference
180 . Update the `freetype-web' repository. `git push' then automatically
181 triggers an update of the public web pages within ten minutes, due
182 to a cron script (on wl@freedesktop.org) that rsyncs with
184 freedesktop.org://srv/freetype.freedesktop.org/www
186 . Announce new release on freetype-announce@nongnu.org and to relevant
187 newsgroups.
189 ----------------------------------------------------------------------
191 Copyright 2003, 2005-2007, 2009, 2011-2013 by
192 David Turner, Robert Wilhelm, and Werner Lemberg.
194 This file is part of the FreeType project, and may only be used,
195 modified, and distributed under the terms of the FreeType project
196 license, LICENSE.TXT. By continuing to use, modify, or distribute
197 this file you indicate that you have read the license and understand
198 and accept it fully.
201 --- end of release ---