🛠️🐜 Antkeeper superbuild with dependencies included https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

203 lines
5.9 KiB

  1. How to prepare a new release
  2. ----------------------------
  3. . include/freetype/freetype.h: Update `FREETYPE_MAJOR`,
  4. `FREETYPE_MINOR`, and `FREETYPE_PATCH`.
  5. . Update version numbers in all files where necessary (for example, do
  6. a grep for both '2.10.4' and '2104' for release 2.10.4).
  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 'freetype' and
  12. 'freetype-demos' repositories).
  13. . Clone the git archive to another directory with
  14. git clone -l -s . ../freetype.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 'freetype-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 ('freetype',
  29. 'freetype-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 'freetype' and 'freetype-demos'
  38. repositories to generate the `.tar.gz`, `.tar.xz`, and `.zip` files.
  39. . Create the doc bundles (`freetype-doc-<version>.tar.gz`,
  40. `freetype-doc-<version>.tar.xz`, `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.10.4
  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.xz \
  58. ft$version.zip"
  59. FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \
  60. ft2demos-$VERSION.tar.xz \
  61. ftdmo$version.zip"
  62. FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \
  63. freetype-doc-$VERSION.tar.xz \
  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. $SAVANNAH_USER@dl.sv.nongnu.org:/releases/freetype/
  105. rsync -avP -e ssh $FREETYPE_PACKAGES $FREETYPE_SIGNATURES \
  106. $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
  107. rsync -avP -e ssh $FT2DEMOS_PACKAGES $FT2DEMOS_SIGNATURES \
  108. $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-demos/$VERSION/
  109. rsync -avP -e ssh $FTDOC_PACKAGES $FTDOC_SIGNATURES \
  110. $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-docs/$VERSION/
  111. # EOF
  112. . Prepare a `README` file for SourceForge and upload it with the
  113. following script (with updated `$VERSION` and `$SOURCEFORGE_USER`
  114. variables).
  115. #!/bin/sh
  116. VERSION=2.10.4
  117. SOURCEFORGE_USER=wlemb
  118. #####################################################################
  119. rsync -avP -e ssh README \
  120. $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
  121. # EOF
  122. . On SourceForge, tag the just uploaded `ftXXX.zip` and
  123. `freetype-XXX.tar.xz` files as the default files to download for
  124. 'Windows' and 'Others', respectively.
  125. . Copy the reference files (generated by `make dist`) to
  126. <freetype-web git repository>/freetype2/docs/reference
  127. . Update the 'freetype-web' repository. `git push` then automatically
  128. triggers an update of the public web pages within ten minutes due to
  129. a cron script (on 'wl@freedesktop.org') that rsyncs with
  130. freedesktop.org://srv/freetype.freedesktop.org/www
  131. . Announce new release on 'freetype-announce@nongnu.org' and to
  132. relevant newsgroups.
  133. ----------------------------------------------------------------------
  134. Copyright (C) 2003-2021 by
  135. David Turner, Robert Wilhelm, and Werner Lemberg.
  136. This file is part of the FreeType project, and may only be used,
  137. modified, and distributed under the terms of the FreeType project
  138. license, LICENSE.TXT. By continuing to use, modify, or distribute
  139. this file you indicate that you have read the license and understand
  140. and accept it fully.
  141. --- end of release ---