release 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. How to prepare a new release
  2. ----------------------------
  3. . include/freetype/freetype.h: Update FREETYPE_MAJOR, FREETYPE_MINOR,
  4. and FREETYPE_PATCH.
  5. . Update version numbers in all files where necessary (for example, do
  6. a grep for both `2.3.1' and `231' for release 2.3.1).
  7. . builds/unix/configure.raw: Update `version_info'.
  8. . docs/CHANGES: Document differences to last release.
  9. . README: Update.
  10. . docs/VERSIONS.TXT: Document changed `version_info'.
  11. . ChangeLog: Announce new release (both in the freetype2 and
  12. freetype2-demos modules).
  13. . Clone the git archive to another directory with
  14. git clone -l -s . ../freetype2.test
  15. or something like this and run
  16. make distclean; make devel; make
  17. make distclean; make devel; make multi
  18. make distclean; make devel CC=g++; make CC=g++
  19. make distclean; make devel CC=g++; make multi CC=g++
  20. sh autogen.sh
  21. make distclean; ./configure; make
  22. make distclean; ./configure CC=g++; make
  23. in the cloned repository to test compilation with both gcc and g++.
  24. . Test C++ compilation for freetype2-demos too (using `git clone' as
  25. above).
  26. . Run src/tools/chktrcmp.py and check that there are no undefined
  27. trace_XXXX macros.
  28. . After pushing the new release, tag the git repositories (freetype2,
  29. freetype2-demos) with
  30. git tag VER-<version> -m "" -u <committer>
  31. and push the tags with
  32. git push --tags
  33. . Check with
  34. git clean -ndx
  35. that the git directory is really clean (and remove extraneous files
  36. if necessary).
  37. . Say `make dist' in both the freetype2 and freetype2-demos modules
  38. to generate the .tar.gz, .tar.bz2, and .zip files.
  39. . Create the doc bundles (freetype-doc-<version>.tar.gz,
  40. freetype-doc-<version>.tar.bz2, ftdoc<version>.zip). This is
  41. everything in
  42. <freetype-web git repository>/freetype2/docs
  43. except the `reference' subdirectory. Do *not* use option `-l' from
  44. zip!
  45. . Run the following script (with updated `$VERSION', `$SAVANNAH_USER',
  46. and $SOURCEFORGE_USER variables) to sign and upload the bundles to
  47. both Savannah and SourceForge. The signing code has been taken from
  48. the `gnupload' script (part of the automake bundle).
  49. #!/bin/sh
  50. VERSION=2.5.1
  51. SAVANNAH_USER=wl
  52. SOURCEFORGE_USER=wlemb
  53. #####################################################################
  54. GPG='/usr/bin/gpg --batch --no-tty'
  55. version=`echo $VERSION | sed "s/\\.//g"`
  56. FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \
  57. freetype-$VERSION.tar.bz2 \
  58. ft$version.zip"
  59. FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \
  60. ft2demos-$VERSION.tar.bz2 \
  61. ftdmo$version.zip"
  62. FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \
  63. freetype-doc-$VERSION.tar.bz2 \
  64. ftdoc$version.zip"
  65. PACKAGE_LIST="$FREETYPE_PACKAGES \
  66. $FT2DEMOS_PACKAGES \
  67. $FTDOC_PACKAGES"
  68. set -e
  69. unset passphrase
  70. PATH=/empty echo -n "Enter GPG passphrase: "
  71. stty -echo
  72. read -r passphrase
  73. stty echo
  74. echo
  75. for f in $PACKAGE_LIST; do
  76. if test ! -f $f; then
  77. echo "$0: Cannot find \`$f'" 1>&2
  78. exit 1
  79. else
  80. :
  81. fi
  82. done
  83. for f in $PACKAGE_LIST; do
  84. echo "Signing $f..."
  85. rm -f $f.sig
  86. echo $passphrase | $GPG --passphrase-fd 0 -ba -o $f.sig $f
  87. done
  88. FREETYPE_SIGNATURES=
  89. for i in $FREETYPE_PACKAGES; do
  90. FREETYPE_SIGNATURES="$FREETYPE_SIGNATURES $i.sig"
  91. done
  92. FT2DEMOS_SIGNATURES=
  93. for i in $FT2DEMOS_PACKAGES; do
  94. FT2DEMOS_SIGNATURES="$FT2DEMOS_SIGNATURES $i.sig"
  95. done
  96. FTDOC_SIGNATURES=
  97. for i in $FTDOC_PACKAGES; do
  98. FTDOC_SIGNATURES="$FTDOC_SIGNATURES $i.sig"
  99. done
  100. SIGNATURE_LIST="$FREETYPE_SIGNATURES \
  101. $FT2DEMOS_SIGNATURES \
  102. $FTDOC_SIGNATURES"
  103. scp $PACKAGE_LIST $SIGNATURE_LIST \
  104. [email protected]:/releases/freetype/
  105. rsync -avP -e ssh $FREETYPE_PACKAGES $FREETYPE_SIGNATURES \
  106. $SOURCEFORGE_USER,[email protected]:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
  107. rsync -avP -e ssh $FT2DEMOS_PACKAGES $FT2DEMOS_SIGNATURES \
  108. $SOURCEFORGE_USER,[email protected]:/home/frs/project/f/fr/freetype/freetype-demos/$VERSION/
  109. rsync -avP -e ssh $FTDOC_PACKAGES $FTDOC_SIGNATURES \
  110. $SOURCEFORGE_USER,[email protected]:/home/frs/project/f/fr/freetype/freetype-docs/$VERSION/
  111. # EOF
  112. . Prepare a README for SourceForge and upload it with the following
  113. script (with updated `$VERSION' and $SOURCEFORGE_USER variables).
  114. #!/bin/sh
  115. VERSION=2.5.1
  116. SOURCEFORGE_USER=wlemb
  117. #####################################################################
  118. rsync -avP -e ssh README \
  119. $SOURCEFORGE_USER,[email protected]:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
  120. # EOF
  121. . On SourceForge, tag the just uploaded `ftXXX.zip' and
  122. `freetype-XXX.tar.bz2' files as the default files to download for
  123. `Windows' and `Others', respectively.
  124. . Copy the reference files (generated by `make dist') to
  125. <freetype-web git repository>/freetype2/docs/reference
  126. . Update the `freetype-web' repository. `git push' then automatically
  127. triggers an update of the public web pages within ten minutes, due
  128. to a cron script (on [email protected]) that rsyncs with
  129. freedesktop.org://srv/freetype.freedesktop.org/www
  130. . Announce new release on [email protected] and to relevant
  131. newsgroups.
  132. ----------------------------------------------------------------------
  133. Copyright 2003-2017 by
  134. David Turner, Robert Wilhelm, and Werner Lemberg.
  135. This file is part of the FreeType project, and may only be used,
  136. modified, and distributed under the terms of the FreeType project
  137. license, LICENSE.TXT. By continuing to use, modify, or distribute
  138. this file you indicate that you have read the license and understand
  139. and accept it fully.
  140. --- end of release ---