Release.htm 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>How to prepare a Ghostscript release</title>
  5. <!-- $Id: Release.htm,v 1.40.2.3 2002/02/01 05:31:25 raph Exp $ -->
  6. <!-- Originally: make.txt -->
  7. <link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
  8. </head>
  9. <body>
  10. <!-- [1.0 begin visible header] ============================================ -->
  11. <!-- [1.1 begin headline] ================================================== -->
  12. <h1>How to prepare a Ghostscript release</h1>
  13. <!-- [1.1 end headline] ==================================================== -->
  14. <!-- [1.2 begin table of contents] ========================================= -->
  15. <h2>Table of contents</h2>
  16. <blockquote><ul>
  17. <li><a href="#Introduction">Introduction</a>
  18. <li><a href="#Servers">Servers</a>
  19. <ul>
  20. <li><a href="#Development_files">Development sources and bug reports</a>
  21. <li><a href="#Distribution">Distribution</a>
  22. </ul>
  23. <li><a href="#Making_distributions">Making distributions</a>
  24. <ul>
  25. <li><a href="#Preparing_source">Preparing the source code</a>
  26. <li><a href="#Testing">Testing</a>
  27. <li><a href="#Testing_on_Windows">Testing on Windows</a>
  28. <li><a href="#Finishing_up">Finishing up</a>
  29. <li><a href="#Beta_distributions">Beta distributions</a>
  30. <li><a href="#Public_releases">Public releases</a>
  31. </ul>
  32. <li><a href="#After_releasing">After releasing</a>
  33. <li><a href="#GNU_releases">GNU Ghostscript releases</a>
  34. <ul>
  35. <li><a href="#GNU_code">GNU code</a>
  36. <li><a href="#GNU_after_releasing">After releasing (GNU)</a>
  37. </ul>
  38. <li><a href="#Fonts">Fonts</a>
  39. </ul></blockquote>
  40. <!-- [1.2 end table of contents] =========================================== -->
  41. <!-- [1.3 begin hint] ====================================================== -->
  42. <p>For other information, see the <a href="Readme.htm">Ghostscript
  43. overview</a> and the instructions on how to <a href="Make.htm">build
  44. Ghostscript</a>.
  45. <!-- [1.3 end hint] ======================================================== -->
  46. <hr>
  47. <!-- [1.0 end visible header] ============================================== -->
  48. <!-- [2.0 begin contents] ================================================== -->
  49. <h2><a name="Introduction"></a>Introduction</h2>
  50. <p>
  51. This document describes the process that artofcode LLC, the copyright holder
  52. of Ghostscript, uses for making new Ghostscript releases. As time goes on,
  53. it will become a more suitable document for others wishing to prepare
  54. releases for distribution. Please note that although the <a
  55. href="Public.htm">Aladdin Free Public License</a> allows anyone to prepare
  56. and distribute releases in accordance with its terms and conditions, this
  57. document is really meant only for developers working closely with artofcode
  58. LLC.
  59. <p>
  60. This document is primarily about AFPL Ghostscript releases. See the
  61. section on <a href="#GNU_releases">GNU releases</a> below for information on
  62. making a GNU Ghostscript release from an existing AFPL Ghostscript
  63. release, and the section on <a href="#Fonts">fonts</a> for information on
  64. releasing font packages.
  65. <p>
  66. The release process is evolving. This document is not necessarily up to
  67. date in all particulars.
  68. <p>
  69. File names below that don't include an explicit subdirectory name are in the
  70. <b><tt>src</tt></b> subdirectory.
  71. <p>
  72. If you do plan to make your own distribution, please be aware of some items
  73. you will want to change.
  74. <ul>
  75. <li>If you make any significant changes, please edit
  76. <b><tt>gscdef.c</tt></b> to change <b><tt>GS_PRODUCTFAMILY</tt></b> and
  77. <b><tt>GS_PRODUCT</tt></b> from "AFPL Ghostscript" to something else, in
  78. order to avoid confusion with artofcode's releases.
  79. <li>In the same file, you may also want to edit <b><tt>GS_COPYRIGHT</tt></b>
  80. to add your own copyright notice (although you must not remove any
  81. notice that is there).
  82. <li>You will almost certainly want to edit <b><tt>version.mak</tt></b> to
  83. change the revision date, <b><tt>GS_REVISIONDATE</tt></b>.
  84. <li>If you want to change the version number, you must change it in both
  85. <b><tt>version.mak</tt></b> (<b><tt>GS_VERSION_</tt></b>*) and
  86. <b><tt>lib/gs_init.ps</tt></b> (the integer on a line by itself near the
  87. beginning of the file).
  88. </ul>
  89. <h2><a name="Servers"></a>Servers</h2>
  90. <p>
  91. The AFPL Ghostscript files are maintained on sites accessible to the
  92. public. One specific site hosts the active CVS repository for code, data,
  93. and documentation, and the bug report data base; several sites offer
  94. distributions with version numbers, intended for wider distribution.
  95. <h3><a name="Development_files"></a>Development sources and bug reports</h3>
  96. <p>
  97. While we are in the process of transitioning to ghostscript.com, the
  98. primary repository for AFPL Ghostscript is still SourceForge (<a
  99. href="http://sourceforge.net/"
  100. class="offsite">http://sourceforge.net/</a>). Please read the
  101. SourceForge AFPL Ghostscript home page (<a
  102. href="http://sourceforge.net/projects/ghostscript/"
  103. class="offsite">http://sourceforge.net/projects/ghostscript/</a>)
  104. first. CVS access information is available at <a
  105. href="http://cvs.ghostscript.com/"
  106. class="offsite">http://cvs.ghostscript.com/</a>.
  107. <h3><a name="Distribution"></a>Distribution</h3>
  108. <p>
  109. Stable, beta, and development releases are all available from
  110. <blockquote>
  111. <a
  112. href="http://sourceforge.net/project/showfiles.php?group_id=1897"
  113. class="offsite">http://sourceforge.net/project/showfiles.php?group_id=1897</a>
  114. </blockquote>
  115. <p>
  116. Stable releases are also distributed from
  117. <blockquote>
  118. <a
  119. href="ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/"
  120. class="offsite">ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/</a>
  121. </blockquote>
  122. <p>
  123. Development releases are also distributed from
  124. <blockquote>
  125. <a href="ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/test/"
  126. class="offsite">ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/test/</a>
  127. </blockquote>
  128. <h2><a name="Making_distributions"></a>Making distributions</h2>
  129. <p>
  130. This document only discusses source distributions. Source distributions
  131. currently can only be made on Linux systems (but it probably wouldn't take
  132. much work to support other Unix systems). Ghostscript as distributed also
  133. often includes executables or other packages for the Windows and MacOS
  134. environments, but artofcode does not produce these, and this document does not
  135. discuss them. For more information about Windows packages, please contact
  136. <a href="mailto:bug-gswin@ghostscript.com"><tt>bug-gswin@ghostscript.com</tt></a>;
  137. for more information about MacOS packages, please contact <a
  138. href="mailto:mac-gs@ghostscript.com"><tt>mac-gs@ghostscript.com</tt></a>.
  139. <p>
  140. To make a source distribution, you will need the scripts and data files in
  141. the <b><tt>toolbin/</tt></b> directory. You will probably find it
  142. convenient to include this directory in the PATH, but the instructions below
  143. don't assume that you have done this. To run the scripts, you will need
  144. reasonably current versions of Tcl, freely available from Scriptics (<a
  145. class="offsite"
  146. href="http://www.scriptics.com"><tt>http://www.scriptics.com</tt></a>), and
  147. Python, freely available from <a class="offsite"
  148. href="http://www.python.org"><tt>http://www.python.org</tt></a>.
  149. <p>
  150. The instructions below also refer to some files that are deliberately
  151. omitted from the public distribution, because they are copyrighted by their
  152. authors and not freely redistributable. You will need to provide similar
  153. files for your environment.
  154. <blockquote><pre>
  155. <b><tt>data/*/*.ps</tt></b> (PostScript files) - needed for smoke testing
  156. <b><tt>beta.msg</tt></b> - the announcement message for the release
  157. </pre></blockquote>
  158. <h3><a name="Preparing_source"></a>Preparing the source code</h3>
  159. <p>
  160. Update references to the date:
  161. <ul>
  162. <li>In <b><tt>version.mak</tt></b>, the numeric date.
  163. <li>In <b><tt>doc/News.htm</tt></b>, in 3 places, skipping the Id: line.
  164. </ul>
  165. <p>
  166. Also in <b><tt>doc/News.htm</tt></b>, update the number of the highest
  167. closed bug and the list of open bugs.
  168. <p>
  169. Check in <b><tt>gscdef.c</tt></b> that the definition of
  170. <b><tt>GS_PRODUCT</tt></b> includes the appropriate one of "DEVELOPMENT
  171. RELEASE", "BETA RELEASE", or neither, and does not include "CVS
  172. PRE-RELEASE".
  173. <p>
  174. Check for patched configuration parameters, <b><tt>#define TEST</tt></b>s,
  175. version/date inconsistencies, and mismatches between the working directory
  176. and the CVS repository by running:
  177. <blockquote><pre>
  178. toolbin/pre
  179. </pre></blockquote>
  180. <p>
  181. This program compares the result of various greps against a check file,
  182. writing the results of grep on one output file and the differences from the
  183. check file on another. See the source code of <b><tt>toolbin/pre</tt></b>
  184. for the default file names. The important one is the check file,
  185. <b><tt>toolbin/pre.chk</tt></b>. <b><tt>pre</tt></b> also verifies that the
  186. right information is in the following places:
  187. <ul>
  188. <li>version number in <b><tt>man/*.1</tt></b>, <b><tt>doc/*.htm</tt></b>,
  189. <b><tt>version.mak</tt></b>, <b><tt>doc/gs-vms.hlp</tt></b>,
  190. <b><tt>lib/gs_init.ps</tt></b>
  191. <li>revision date in <b><tt>man/*.1</tt></b>, <b><tt>doc/*.htm</tt></b>,
  192. <b><tt>version.mak</tt></b>, <b><tt>doc/gs-vms.hlp</tt></b>
  193. <li>copyright year (if necessary) in <b><tt>gscdef.c</tt></b>
  194. <li>third-party library version number in <b><tt>*.mak</tt></b>
  195. </ul>
  196. <p>
  197. If necessary, run
  198. <blockquote><pre>
  199. toolbin/pre update
  200. </pre></blockquote>
  201. <p>
  202. to update the version and revision date in the doc files, and then run
  203. <blockquote><pre>
  204. toolbin/pre
  205. </pre></blockquote>
  206. <p>
  207. again. Note: this script currently generates a number of spurious
  208. warnings.
  209. <p>
  210. Check the consistency of the source code with the makefiles by
  211. running:
  212. <blockquote><pre>
  213. toolbin/gsmake.tcl check
  214. </pre></blockquote>
  215. <p> Note that this script seems to generate spurious warnings.
  216. <p>
  217. Check that all source and .ps files are documented at least minimally by
  218. running:
  219. <blockquote><pre>
  220. toolbin/hrefcov.tcl +src
  221. toolbin/hrefcov.tcl +lib
  222. </pre></blockquote>
  223. <h3><a name="Testing"></a>Testing</h3>
  224. <p>
  225. Edit the makefile (presumably <b><tt>unix-gcc.mak</tt></b>) to set
  226. <blockquote><pre>
  227. FEATURE_DEVS=$(FEATURE_DEVS_ALL)
  228. COMPILE_INITS=1
  229. </pre></blockquote>
  230. <p>
  231. This will help catch compilation problems.
  232. <p>
  233. Run
  234. <blockquote><pre>
  235. rm obj/*
  236. make -j2 &gt;&amp; t.log
  237. </pre></blockquote>
  238. <p>
  239. and look for warnings and errors in the log file.
  240. <p>
  241. Do a smoke test in a separate window, replacing <b><tt>/gs</tt></b> with the
  242. name of the development root directory if necessary:
  243. <blockquote><pre>
  244. unset GS_DEVICE GS_FONTPATH GS_LIB GS_OPTIONS
  245. cd /tmp
  246. /gs/bin/gs -I/gs/lib -I/gs/fonts -dNOPAUSE -dBATCH /gs/toolbin/smoke.ps | tee t
  247. export TEMP=/gs/tmp
  248. /gs/bin/gs -I/gs/lib -I/gs/fonts -dNOPAUSE -dBATCH -sDEVICE=bitcmyk\
  249. -sOutputFile=/dev/null -r600 -dBufferSpace=50000 /gs/toolbin/smoke.ps | tee t
  250. </pre></blockquote>
  251. <p>
  252. This reads files named
  253. <blockquote><pre>
  254. <b><tt>/gs/data/ps/*.ps</tt></b>
  255. <b><tt>/gs/data/psl2/*.ps</tt></b>
  256. <b><tt>/gs/data/psl3/*.ps</tt></b>
  257. <b><tt>/gs/data/test/*.ps</tt></b>
  258. </pre></blockquote>
  259. <p>
  260. (Edit <b><tt>toolbin/smoke.ps</tt></b> ad lib to use other test sets.)
  261. Watch for crashes, unusual error messages, or anomalous displayed output.
  262. If there are any problems, start over from the beginning of the process.
  263. <p>
  264. Undo the <b><tt>FEATURE_DEVS</tt></b> and <b><tt>COMPILE_INITS</tt></b>
  265. edits.
  266. <p>
  267. Run
  268. <blockquote><pre>
  269. cvs commit
  270. </pre></blockquote>
  271. <p>
  272. to ensure the repository is up to date.
  273. <p>
  274. Execute
  275. <blockquote><pre>
  276. toolbin/cvs2hist.py -v #.## > doc/Changes.htm
  277. </pre></blockquote>
  278. <p>
  279. This consolidates all the CVS logs since the previous release in a readable
  280. format. Note: the cvs2hist.py tool currently in the distribution is not
  281. branch-aware. The Changes.htm file for the 7.04 release was made using
  282. a patched version, and this command line:
  283. <blockquote><pre>
  284. cvs2hist.py -j gs7_03 -r-rGS_7_0X -v 7.04 > doc/Changes.htm
  285. </pre></blockquote>
  286. <p>
  287. Run
  288. <blockquote><pre>
  289. tclsh
  290. % source toolbin/makeset.tcl
  291. % makehist
  292. </pre></blockquote>
  293. <p>
  294. This updates <b><tt>doc/History#.htm</tt></b> from
  295. <b><tt>doc/News.htm</tt></b> and <b><tt>doc/Changes.htm</tt></b>. Then run
  296. <blockquote><pre>
  297. cvs commit
  298. </pre></blockquote>
  299. <p>
  300. again to check in the Changes and history files.
  301. <p>
  302. For the unix source distributions only, generate the configure
  303. scripts. From the top level directory, run
  304. <blockquote><pre>./autogen.sh
  305. make clean
  306. </pre></blockquote>
  307. This should create links to <tt>configure.ac</tt> and
  308. <tt>Makefile.in</tt> in the top level directory and
  309. invoke autoconf to create the <tt>configure</tt> script.
  310. <p>
  311. You should then verify that only autogen.sh, configure,
  312. Makefile.in exist as files at the top level. Running ./configure
  313. will create a number of files that should not be distributed.
  314. 'make clean' may or may not remove these depending on the
  315. version.
  316. <p>
  317. Make the source archives with
  318. <blockquote><pre>
  319. tclsh
  320. % source toolbin/makeset.tcl
  321. % maketars
  322. </pre></blockquote>
  323. <p>
  324. This creates the files
  325. <blockquote><pre>
  326. <b><tt>ghostscript-#.##.tar.gz</tt></b> (main archive)
  327. <b><tt>ghostscript-#.##.tar.bz2</tt></b> (main archive)
  328. </pre></blockquote>
  329. <h3><a name="Testing_on_Windows"></a>Testing on Windows</h3>
  330. <p>
  331. For Windows testing, you will need, in addition to the files listed
  332. under "<a href="#Preparing_source">Preparing the source</a>" above:
  333. <blockquote><pre>
  334. <b><tt>toolbin/makewin</tt></b> (link to <b><tt>makeset.tcl</tt></b>)
  335. </pre></blockquote>
  336. <p>
  337. The following procedures rely on a large number of MS-DOS batch scripts that
  338. are not discussed here: they are unlikely to be generally useful.
  339. <p>
  340. Mount the Windows partition on <b><tt>/c</tt></b>, and create the
  341. <b><tt>/c/work</tt></b> directory if needed.
  342. <p>
  343. Make the zip archive of all files needed for a Windows build, and copy it to
  344. the Windows partition:
  345. <blockquote><pre>
  346. toolbin/makewin
  347. cp gs###.zip /c/work
  348. </pre></blockquote>
  349. <p>
  350. Boot into Windows. Unpack the archive:
  351. <blockquote><pre>
  352. cd \work
  353. unzip -oq gs###.zip
  354. gs###
  355. </pre></blockquote>
  356. <p>
  357. The <b><tt>gs###.bat</tt></b> script creates some necessary directories,
  358. sets up <b><tt>PATH</tt></b> and <b><tt>GS_LIB</tt></b> for testing, and
  359. makes the <b><tt>gs#.##</tt></b> directory current.
  360. <p>
  361. Build with the Borland compiler:
  362. <blockquote><pre>
  363. config bcwin32
  364. copy /y /b ..\gs\makefile
  365. erase obj\*.*
  366. make > bc.log
  367. </pre></blockquote>
  368. <p>
  369. Smoke test the executables (both <b><tt>gswin32</tt></b> and
  370. <b><tt>gswin32c</tt></b>), as described above for source distributions.
  371. Then build with the Microsoft compiler:
  372. <blockquote><pre>
  373. config msvc32
  374. copy /y /b ..\gs\makefile
  375. erase obj\*.*
  376. nmake > msvc.log
  377. </pre></blockquote>
  378. <p>
  379. Smoke test these executables too.
  380. <p>
  381. Building with the Watcom compiler doesn't work, because the
  382. <b><tt>wmake</tt></b> or <b><tt>wmakel</tt></b> program runs out of memory.
  383. However, if it did work, this is how to do it:
  384. <blockquote><pre>
  385. config watcw32
  386. copy /y /b ..\gs\makefile
  387. erase obj\*.*
  388. wmake -u > watc.log
  389. </pre></blockquote>
  390. <p>
  391. Boot back into Linux. If testing in Windows revealed problems, edit the
  392. source files as necessary, and go back to <a
  393. href="#Preparing_source">"Preparing the source code."</a>
  394. <h3><a name="Finishing_up"></a>Finishing up</h3>
  395. <p>
  396. If you are maintaining local master copies, execute
  397. <blockquote><pre>
  398. toolbin/makemaster
  399. </pre></blockquote>
  400. <p>
  401. This creates a <b><tt>master/###</tt></b> directory if necessary, and moves
  402. the archives to it.
  403. <p>
  404. Tag the source files with the release number by executing
  405. <blockquote><pre>
  406. cvs tag gs#_##
  407. </pre></blockquote
  408. <p>
  409. Upload <b><tt>ghostscript-#.##.tar.*</tt></b> to SourceForge (by anonymous
  410. FTP to <b><tt>download.sourceforge.net</tt></b>, directory
  411. <b><tt>/incoming</tt></b>), and then post it using the "File Release"
  412. facility in the AFPL Ghostscript project. If this is a test release, put
  413. it in the <b><tt>gs-test</tt></b> module, otherwise put it in the
  414. <b><tt>ghostscript</tt></b> module. If you are adding Windows executables
  415. to an existing source release, please use the same release date as the
  416. source release, not the current date.
  417. <p>
  418. If <b><tt>ansi2knr.c</tt></b> has changed, put it on
  419. <b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/ansi2knr.c</tt></b>.
  420. <p>
  421. If <b><tt>doc/C-style.htm</tt></b> has changed, put it on
  422. <b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/C-style.htm</tt></b>.
  423. <h3><a name="Beta_distributions"></a>Beta distributions</h3>
  424. <p>
  425. Do the steps for distributions in general.
  426. <p>
  427. Upload <b><tt>ghostscript-#.##.tar.*</tt></b> to
  428. <b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/test</tt></b>.
  429. <p>
  430. Construct the e-mail announcement by editing <b><tt>beta.msg</tt></b>.
  431. Mail using:
  432. <blockquote><pre>
  433. To: gs-test
  434. </pre></blockquote>
  435. <h3><a name="Public_releases"></a>Public releases</h3>
  436. <p>
  437. Update the title (current version #), first heading (previous version #),
  438. and "new features" and "known problems" lists in
  439. <b><tt>doc/Current.htm</tt></b>.
  440. <p>
  441. Do the steps for distributions in general.
  442. <p>
  443. Create a directory at
  444. <b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/gs###/</tt></b>. In that
  445. directory, store the following files:
  446. <ul>
  447. <li>Standard distribution files:
  448. <blockquote><pre>
  449. <b><tt>ghostscript-#.##.tar.gz</tt></b>
  450. <b><tt>ghostscript-#.##.tar.bz2</tt></b>
  451. </pre></blockquote>
  452. <li>MS Windows source and executables:
  453. <blockquote><pre>
  454. <b><tt>gs###src.zip</tt></b>
  455. <b><tt>gs###w32.exe</tt></b>
  456. <b><tt>gs###w32.zip</tt></b>
  457. </pre></blockquote>
  458. <li>Third-party libraries, as links (upload these if not installed), where
  459. <b><tt>$$$</tt></b> et al. refer to the version number of the library, which
  460. should be the latest compatible release of the library and must be consistent
  461. with the values of <b><tt>JVERSION</tt></b> and <b><tt>PVERSION</tt></b> in
  462. the makefiles:
  463. <blockquote><pre>
  464. <b><tt>jpegsrc.v$$.tar.gz</tt></b> -> <b><tt>../../3rdparty/jpegsrc.v$$.tar.gz</tt></b>
  465. <b><tt>libpng-$.$.$.tar.gz</tt></b> -> <b><tt>../../3rdparty/libpng-$.$.$.tar.gz</tt></b>
  466. <b><tt>zlib-$.$.$.tar.gz</tt></b> -> <b><tt>../../3rdparty/zlib-$.$.$.tar.gz</tt></b>
  467. <b><tt>jpegsr$$.zip</tt></b> -> <b><tt>../../3rdparty/jpegsr$$.zip</tt></b>
  468. <b><tt>lpng$$$.zip</tt></b> -> <b><tt>../../3rdparty/lpng$$$.zip</tt></b>
  469. <b><tt>zlib$$$.zip</tt></b> -> <b><tt>../../3rdparty/zlib$$$.zip</tt></b>
  470. </pre></blockquote>
  471. In any case, the names of the links in the distribution directory should reflect
  472. the original name of the upstream file.
  473. <li>Fonts, where <b><tt>$.$$</tt></b> refers to the most recent version
  474. number of the fonts:
  475. <blockquote><pre>
  476. <b><tt>ghostscript-fonts-other-$.$.tar.gz</tt></b> -> <b><tt>../fonts/ghostscript-fonts-other-$.$.tar.gz</tt></b>
  477. <b><tt>ghostscript-fonts-std-$.$.tar.gz</tt></b> -> <b><tt>../fonts/ghostscript-fonts-std-$.$.tar.gz</tt></b>
  478. </pre></blockquote>
  479. </ul>
  480. <p>
  481. (Note that the link names are somewhat inconsistent: some of them retain the
  482. version number of the file being referenced, and some of them use the
  483. Ghostscript version number. This is a historical artifact that might be
  484. changed someday.)
  485. <p>
  486. E-mail the release announcement using:
  487. <blockquote><pre>
  488. To: gs-announce
  489. </pre></blockquote>
  490. <p>
  491. Edit the Web pages in cvs and commit to reflect the new release.
  492. The Wisconsin server should update automatically.
  493. <h2><a name="After_releasing"></a>After releasing</h2>
  494. <p>
  495. Update the version number by incrementing it:
  496. <ul>
  497. <li>In <b><tt>lib/gs_init.ps</tt></b>, at the very beginning of the file.
  498. <li>In <b><tt>version.mak</tt></b>, in 3 definitions.
  499. <li>In <b><tt>doc/News.htm</tt></b>, in 4 places.
  500. </ul>
  501. <p>
  502. In <b><tt>gscdef.c</tt></b>, edit the definition of
  503. <b><tt>GS_PRODUCT</tt></b> to include "CVS PRE-RELEASE".
  504. <p>
  505. Edit <b><tt>doc/News.htm</tt></b> to remove all the content.
  506. <h2><a name="GNU_releases"></a>GNU Ghostscript releases</h2>
  507. <p>
  508. artofcode LLC re-releases each tested AFPL Ghostscript version with
  509. the GPL, as GNU Ghostscript, when the next tested AFPL Ghostscript
  510. version comes out.
  511. <p>Note: This section is completely out of date. We no longer use
  512. toolbin/makegnu to automatically create the GNU releases.
  513. <h3><a name="GNU_code"></a>GNU code</h3>
  514. <p>
  515. To make a GNU Ghostscript release from AFPL Ghostscript release #.##, run
  516. <blockquote><pre>
  517. toolbin/makegnu #.##
  518. </pre></blockquote>
  519. <p>
  520. This reads the files
  521. <blockquote><pre>
  522. /gs/master/#.##/ghostscript-#.##.tar.gz
  523. /gs/master/#.##/ghostscript-#.##gnu.tar.gz
  524. </pre></blockquote>
  525. <p>
  526. and creates the file
  527. <blockquote><pre>
  528. /tmp/gnu-gs-#.##.tar.gz
  529. </pre></blockquote>
  530. <p>
  531. Note that the <b><tt>makegnu</tt></b> script uses a program called
  532. <b><tt>copyrite</tt></b> that rewrites the copyright notices. The
  533. <b><tt>copyrite</tt></b> program is intentionally not distributed with
  534. Ghostscript.
  535. <p>
  536. Upload the file <b><tt>/tmp/gnu-gs-#.##.tar.gz</tt></b> to
  537. <b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/gs#.##/</tt></b>. Delete the file
  538. after uploading.
  539. <h3><a name="GNU_after_releasing"></a>After releasing (GNU)</h3>
  540. <p>
  541. E-mail the full URL and the <b><tt>md5sum</tt></b> of the new archive(s) to
  542. <a href="mailto:ftp-upload@gnu.org"><tt>ftp-upload@gnu.org</tt></a>.
  543. <h2><a name="Fonts"></a>Fonts</h2>
  544. <p>
  545. artofcode LLC distributes a package of the base 35 PostScript fonts, and a
  546. package of other miscellaneous fonts. As with the Ghostscript code, each
  547. package is released both with the AFPL and with the GPL; however, unlike the
  548. Ghostscript code, artofcode releases these versions simultaneously rather
  549. than with a one-version delay.
  550. <p>
  551. To make the font packages, run the command
  552. <blockquote><pre>
  553. toolbin/makefonts #.##
  554. </pre></blockquote>
  555. <p>
  556. This creates the following files:
  557. <blockquote><pre>
  558. ghostscript-fonts-std-#.##.tar.gz
  559. ghostscript-fonts-other-#.##.tar.gz
  560. gnu-gs-fonts-std-#.##.tar.gz
  561. gnu-gs-fonts-other-#.##.tar.gz
  562. </pre></blockquote>
  563. <p>
  564. The first two of these use the AFPL, and should be uploaded to
  565. <b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/fonts/</tt></b>. The other two
  566. use the GPL, and should be uploaded to
  567. <b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/fonts/</tt></b>. For the GNU
  568. release, also see <a href="#GNU_after_releasing">"After releasing
  569. (GNU)"</a>.
  570. <!-- [2.0 end contents] ==================================================== -->
  571. <!-- [3.0 begin visible trailer] =========================================== -->
  572. <hr>
  573. <p>
  574. <small>Copyright &copy; 1999, 2000 Aladdin Enterprises. All rights
  575. reserved.</small>
  576. <p>
  577. <small>This file is part of AFPL Ghostscript. See the <a
  578. href="Public.htm">Aladdin Free Public License</a> (the "License") for full
  579. details of the terms of using, copying, modifying, and redistributing
  580. AFPL Ghostscript.</small>
  581. <p>
  582. <small>Ghostscript version 7.04, 31 January 2002
  583. <!-- [3.0 end visible trailer] ============================================= -->
  584. </body>
  585. </html>