2 |
- |
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.95 2005/10/20 19:46:23 ray Exp $ -->
|
|
|
6 |
<!-- Originally: make.txt -->
|
|
|
7 |
<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
|
|
|
8 |
</head>
|
|
|
9 |
|
|
|
10 |
<body>
|
|
|
11 |
<!-- [1.0 begin visible header] ============================================ -->
|
|
|
12 |
|
|
|
13 |
<!-- [1.1 begin headline] ================================================== -->
|
|
|
14 |
|
|
|
15 |
<h1>How to prepare a Ghostscript release</h1>
|
|
|
16 |
|
|
|
17 |
<!-- [1.1 end headline] ==================================================== -->
|
|
|
18 |
|
|
|
19 |
<!-- [1.2 begin table of contents] ========================================= -->
|
|
|
20 |
|
|
|
21 |
<h2>Table of contents</h2>
|
|
|
22 |
|
|
|
23 |
<blockquote><ul>
|
|
|
24 |
<li><a href="#Introduction">Introduction</a>
|
|
|
25 |
<li><a href="#Servers">Servers</a>
|
|
|
26 |
<ul>
|
|
|
27 |
<li><a href="#Development_files">Development sources and bug reports</a>
|
|
|
28 |
<li><a href="#Distribution">Distribution</a>
|
|
|
29 |
</ul>
|
|
|
30 |
<li><a href="#Release_numbering">Release numbering</a>
|
|
|
31 |
<li><a href="#Making_distributions">Making distributions</a>
|
|
|
32 |
<ul>
|
|
|
33 |
<li><a href="#Preparing_source">Preparing the source code</a>
|
|
|
34 |
<li><a href="#Testing">Testing</a>
|
|
|
35 |
<li><a href="#Changelog">Updating the Changelog</a>
|
|
|
36 |
<li><a href="#Making_Tarballs">Making the source distribution</a>
|
|
|
37 |
<li><a href="#Testing_on_Windows">Testing on Windows</a>
|
|
|
38 |
<li><a href="#Windows_distribution">Building the Windows distribution</a>
|
|
|
39 |
<li><a href="#Finishing_up">Finishing up</a>
|
|
|
40 |
<li><a href="#Beta_distributions">Beta distributions</a>
|
|
|
41 |
<li><a href="#Public_releases">Public releases</a>
|
|
|
42 |
</ul>
|
|
|
43 |
<li><a href="#After_releasing">After releasing</a>
|
|
|
44 |
<li><a href="#GPL_releases">GPL Ghostscript releases</a>
|
|
|
45 |
<ul>
|
|
|
46 |
<li><a href="#GPL_code">GPL code</a>
|
|
|
47 |
<li><a href="#GPL_after_releasing">After releasing (GPL)</a>
|
|
|
48 |
</ul>
|
|
|
49 |
<li><a href="#Fonts">Fonts</a>
|
|
|
50 |
</ul></blockquote>
|
|
|
51 |
|
|
|
52 |
<!-- [1.2 end table of contents] =========================================== -->
|
|
|
53 |
|
|
|
54 |
<!-- [1.3 begin hint] ====================================================== -->
|
|
|
55 |
|
|
|
56 |
<p>For other information, see the <a href="Readme.htm">Ghostscript
|
|
|
57 |
overview</a> and the instructions on how to <a href="Make.htm">build
|
|
|
58 |
Ghostscript</a>.
|
|
|
59 |
|
|
|
60 |
<!-- [1.3 end hint] ======================================================== -->
|
|
|
61 |
|
|
|
62 |
<hr>
|
|
|
63 |
|
|
|
64 |
<!-- [1.0 end visible header] ============================================== -->
|
|
|
65 |
|
|
|
66 |
<!-- [2.0 begin contents] ================================================== -->
|
|
|
67 |
|
|
|
68 |
<h2><a name="Introduction"></a>Introduction</h2>
|
|
|
69 |
|
|
|
70 |
<p>
|
|
|
71 |
This document describes the process that artofcode LLC, the copyright holder
|
|
|
72 |
of Ghostscript, uses for making new Ghostscript releases. Please note
|
|
|
73 |
that while the the license allows anyone to prepare and distribute
|
|
|
74 |
releases in accordance with its terms and conditions, this document is
|
|
|
75 |
really meant only to document the process used by artofcode LLC.
|
|
|
76 |
However, the eventual purpose of this document is to describe
|
|
|
77 |
Ghostscript release procedures in enough detail that someone who knows
|
|
|
78 |
little about Ghostscript but is generally familiar with the platform on
|
|
|
79 |
which the procedure is being carried out can execute the procedures
|
|
|
80 |
correctly. So if you add or changing anything to/in this document,
|
|
|
81 |
be sure to specify all command lines, file names, etc. in explicit
|
|
|
82 |
detail.
|
|
|
83 |
|
|
|
84 |
<p>
|
|
|
85 |
The release process for the GPL and AFPL branches are similar, though
|
|
|
86 |
there are some differences in terms of policy and release locations. See
|
|
|
87 |
the section on <a href="#GPL_releases">GPL releases</a> below for
|
|
|
88 |
information specific to GPL Ghostscript.
|
|
|
89 |
|
|
|
90 |
<p>
|
|
|
91 |
File names below that don't include an explicit subdirectory name are in the
|
|
|
92 |
<b><tt>src</tt></b> subdirectory.
|
|
|
93 |
|
|
|
94 |
<p>
|
|
|
95 |
If you do plan to make your own distribution, please be aware of some items
|
|
|
96 |
you will want to change.
|
|
|
97 |
|
|
|
98 |
<ul>
|
|
|
99 |
|
|
|
100 |
<li>If you make any significant changes, please edit
|
|
|
101 |
<b><tt>gscdef.c</tt></b> to change <b><tt>GS_PRODUCTFAMILY</tt></b> and
|
|
|
102 |
<b><tt>GS_PRODUCT</tt></b> from "AFPL Ghostscript" to something else,
|
|
|
103 |
in order to avoid confusion with artofcode's releases.
|
|
|
104 |
|
|
|
105 |
<li>In the same file, you may also want to edit <b><tt>GS_COPYRIGHT</tt></b>
|
|
|
106 |
to add your own copyright notice (although you must not remove any
|
|
|
107 |
notice that is there).
|
|
|
108 |
|
|
|
109 |
<li>You will almost certainly want to edit <b><tt>version.mak</tt></b> to
|
|
|
110 |
change the revision date, <b><tt>GS_REVISIONDATE</tt></b>.
|
|
|
111 |
|
|
|
112 |
<li>If you want to change the release number, you must change it in all the
|
|
|
113 |
places listed under <a href="#Release_numbering">"Release numbering"</a>
|
|
|
114 |
below.
|
|
|
115 |
|
|
|
116 |
</ul>
|
|
|
117 |
|
|
|
118 |
<h2><a name="Servers"></a>Servers</h2>
|
|
|
119 |
|
|
|
120 |
<p>
|
|
|
121 |
The GPL and AFPL Ghostscript files are maintained on sites accessible to
|
|
|
122 |
the public. One specific site hosts the active CVS repository for code,
|
|
|
123 |
data, and documentation, and the bug report data base; several sites
|
|
|
124 |
offer distributions with release numbers, intended for wider
|
|
|
125 |
distribution.
|
|
|
126 |
|
|
|
127 |
<h3><a name="Development_files"></a>Development sources and bug reports</h3>
|
|
|
128 |
|
|
|
129 |
<p>
|
|
|
130 |
The primary repository for GPL and AFPL Ghostscript is <a
|
|
|
131 |
href="http://www.ghostscript.com/" class="offsite">ghostscript.com</a>.
|
|
|
132 |
Please check there first for any news about releases or current work,
|
|
|
133 |
and for information about where to download ghostscript and how to
|
|
|
134 |
access the mailing lists.
|
|
|
135 |
|
|
|
136 |
CVS access is through <a
|
|
|
137 |
href="http://cvs.ghostscript.com/"
|
|
|
138 |
class="offsite">cvs.ghostscript.com</a>.
|
|
|
139 |
|
|
|
140 |
<p>
|
|
|
141 |
It may also be helpful to
|
|
|
142 |
read the SourceForge AFPL Ghostscript home page (<a
|
|
|
143 |
href="http://sourceforge.net/projects/ghostscript/"
|
|
|
144 |
class="offsite">http://sourceforge.net/projects/ghostscript/</a>).
|
|
|
145 |
|
|
|
146 |
<h3><a name="Distribution"></a>Distribution</h3>
|
|
|
147 |
|
|
|
148 |
<p>
|
|
|
149 |
Stable, beta, and development releases are all available from
|
|
|
150 |
<blockquote>
|
|
|
151 |
<a
|
|
|
152 |
href="http://sourceforge.net/project/showfiles.php?group_id=1897"
|
|
|
153 |
class="offsite">http://sourceforge.net/project/showfiles.php?group_id=1897</a>
|
|
|
154 |
</blockquote>
|
|
|
155 |
|
|
|
156 |
<p>
|
|
|
157 |
Stable releases are also distributed from
|
|
|
158 |
|
|
|
159 |
<blockquote>
|
|
|
160 |
<a
|
|
|
161 |
href="ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/"
|
|
|
162 |
class="offsite">ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/</a> or
|
|
|
163 |
<br>
|
|
|
164 |
<a
|
|
|
165 |
href="ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gpl/"
|
|
|
166 |
class="offsite">ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gpl/</a>
|
|
|
167 |
</blockquote>
|
|
|
168 |
|
|
|
169 |
<p>
|
|
|
170 |
Development releases are also distributed from
|
|
|
171 |
|
|
|
172 |
<blockquote>
|
|
|
173 |
<a href="ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/test/"
|
|
|
174 |
class="offsite">ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/test/</a>
|
|
|
175 |
</blockquote>
|
|
|
176 |
|
|
|
177 |
<h2><a name="Release_numbering"></a>Release numbering</h2>
|
|
|
178 |
|
|
|
179 |
<p>
|
|
|
180 |
Ghostscript uses a two-part (major.minor) release number. The second part
|
|
|
181 |
of the release number is a 2-digit decimal fraction: it counts 00,
|
|
|
182 |
01, 02, and so on through 99.
|
|
|
183 |
|
|
|
184 |
<ul>
|
|
|
185 |
|
|
|
186 |
<li>Release numbers N.0x and N.5x indicate stable versions.
|
|
|
187 |
<li>Successive increments generally indicate bug fixes and minor enhancements.
|
|
|
188 |
<li>Development, testing and beta releases generally begin with a minor release number that is
|
|
|
189 |
a multiple of ten and increment from there.
|
|
|
190 |
</ul>
|
|
|
191 |
|
|
|
192 |
<p>
|
|
|
193 |
Release numbers appear in the following places in the Ghostscript files:
|
|
|
194 |
|
|
|
195 |
<ul>
|
|
|
196 |
|
|
|
197 |
<li>In <b><tt>lib/gs_init.ps</tt></b>, as an integer (release number x100) at the beginning of the
|
|
|
198 |
file just after the initial comment blocks.
|
|
|
199 |
|
|
|
200 |
<li>In <b><tt>src/version.mak</tt></b>, split into 3 lines.
|
|
|
201 |
|
|
|
202 |
<li>In <b><tt>doc/News.htm</tt></b>, in the two headers and their labels and at the very end in
|
|
|
203 |
the copyright footer.
|
|
|
204 |
|
|
|
205 |
<li>At the foot of most documenation files. However, these are updated mechanically from the value
|
|
|
206 |
in <b><tt>News.htm</tt></b> as part of the release process and do not need to be maintained
|
|
|
207 |
directly.
|
|
|
208 |
</ul>
|
|
|
209 |
|
|
|
210 |
<h3>Before a release</h3>
|
|
|
211 |
|
|
|
212 |
<p>
|
|
|
213 |
The current release number in the development code must be set to the desired value. The increment
|
|
|
214 |
from just after the previous release (see below) is sufficient for minor updates. In the case of
|
|
|
215 |
major changes or a new stable release, the number will need to be bumped; this is generally done
|
|
|
216 |
as the first step of preparing a new release.
|
|
|
217 |
|
|
|
218 |
<h3>After a release</h3>
|
|
|
219 |
|
|
|
220 |
<p>
|
|
|
221 |
After making a release the release number in CVS is incremented. Thus versions built
|
|
|
222 |
from cvs are always marked with a future (or unused) release number to avoid confusion.
|
|
|
223 |
|
|
|
224 |
<p>
|
|
|
225 |
Additionally, After an N.00 or N.50 stable release, a branch is made in cvs so that development
|
|
|
226 |
can continue independently of changes to the stable series. When this happens, the minor release
|
|
|
227 |
number is incremented by 10 (or 20) on the development branch (and by 1 on the new stable branch,
|
|
|
228 |
as above) to avoid collisions.
|
|
|
229 |
|
|
|
230 |
<p>
|
|
|
231 |
While incrementing the release number after making a release may seem
|
|
|
232 |
counter-intuitive, it ensures that, at any given time, the version
|
|
|
233 |
number alone is sufficient to distinguish between the current CVS
|
|
|
234 |
state and a numbered release.
|
|
|
235 |
|
|
|
236 |
<h2><a name="Making_distributions"></a>Making distributions</h2>
|
|
|
237 |
|
|
|
238 |
<p>
|
|
|
239 |
This document only discusses source distributions. Source distributions
|
|
|
240 |
currently can only be made on Linux systems (but it probably wouldn't take
|
|
|
241 |
much work to support other Unix systems). Ghostscript as distributed also
|
|
|
242 |
often includes executables or other packages for the Windows and MacOS
|
|
|
243 |
environments, but artofcode does not always produce these, and this document does not
|
|
|
244 |
discuss them. For more information about Windows packages, please contact
|
|
|
245 |
<a href="mailto:bug-gswin@ghostscript.com"><tt>bug-gswin@ghostscript.com</tt></a>;
|
|
|
246 |
for more information about MacOS packages, please contact <a
|
|
|
247 |
href="mailto:mac-gs@ghostscript.com"><tt>mac-gs@ghostscript.com</tt></a>.
|
|
|
248 |
|
|
|
249 |
<p>
|
|
|
250 |
To make a source distribution, you will need the scripts and data files in
|
|
|
251 |
the <b><tt>toolbin/</tt></b> directory. The instructions below generally
|
|
|
252 |
assume that you're invoking the relative to the top level of the source
|
|
|
253 |
tree.
|
|
|
254 |
|
|
|
255 |
To run the scripts, you will need reasonably current versions of Tcl,
|
|
|
256 |
freely available from Scriptics
|
|
|
257 |
(<a class="offsite" href="http://www.scriptics.com"><tt>http://www.scriptics.com</tt></a>), and
|
|
|
258 |
Python, freely available from <a class="offsite"
|
|
|
259 |
href="http://www.python.org"><tt>http://www.python.org</tt></a>.
|
|
|
260 |
|
|
|
261 |
<p>
|
|
|
262 |
To update the changelogs, you'll also need a recent version of the cvs2cl perl script. If
|
|
|
263 |
not already installed on your system a copy can be found at
|
|
|
264 |
<a class="offsite" href="http://www.red-bean.com/cvs2cl/cvs2cl.pl">http://www.red-bean.com/cvs2cl/cvs2cl.pl</a>.
|
|
|
265 |
|
|
|
266 |
<p>
|
|
|
267 |
The instructions below also refer to some files that are deliberately
|
|
|
268 |
omitted from the public distribution, because they are not freely
|
|
|
269 |
redistributable. You will need to provide similar files for your
|
|
|
270 |
environment.
|
|
|
271 |
|
|
|
272 |
<blockquote><pre>
|
|
|
273 |
<b><tt>data/*/*.ps</tt></b> (PostScript files) - needed for smoke testing
|
|
|
274 |
</pre></blockquote>
|
|
|
275 |
|
|
|
276 |
<h3><a name="Preparing_source"></a>Preparing the source code</h3>
|
|
|
277 |
|
|
|
278 |
<p>
|
|
|
279 |
If necessary, update the release number by incrementing it as described in
|
|
|
280 |
<a href="#Release_numbering">Release numbering</a> above.
|
|
|
281 |
|
|
|
282 |
<p>
|
|
|
283 |
Update references to the date for release:
|
|
|
284 |
|
|
|
285 |
<ul>
|
|
|
286 |
|
|
|
287 |
<li>In <b><tt>version.mak</tt></b>, the numeric date.
|
|
|
288 |
|
|
|
289 |
<li>In <b><tt>doc/News.htm</tt></b>, in two places, skipping the Id:
|
|
|
290 |
line. That is, in parentheses after the <tt>VERSION X.YY</tt> heading,
|
|
|
291 |
and in the copyright footer both the year and the release date.
|
|
|
292 |
|
|
|
293 |
<li>In <b><tt>src/dwsetup.rc</tt></b> and <b><tt>src/winint.mak</tt></b>,
|
|
|
294 |
update the year in the embedded copyright notice.
|
|
|
295 |
|
|
|
296 |
</ul>
|
|
|
297 |
|
|
|
298 |
<p>
|
|
|
299 |
We recommend using a UTC release date to avoid timezone skew.
|
|
|
300 |
|
|
|
301 |
<p>
|
|
|
302 |
Also in <b><tt>doc/News.htm</tt></b>, update the number of the highest
|
|
|
303 |
closed bug and the list of open bugs.
|
|
|
304 |
|
|
|
305 |
<p>
|
|
|
306 |
Check in <b><tt>gscdef.c</tt></b> that the definition of
|
|
|
307 |
<b><tt>GS_PRODUCT</tt></b> includes the appropriate one of "DEVELOPMENT
|
|
|
308 |
RELEASE", "BETA RELEASE", or neither, and does not include "CVS
|
|
|
309 |
PRE-RELEASE".
|
|
|
310 |
|
|
|
311 |
<p>Run the source-consistency checks from the test suite:
|
|
|
312 |
|
|
|
313 |
<blockquote><pre>
|
|
|
314 |
toolbin/tests/check_all.py --gsroot=.
|
|
|
315 |
</pre></blockquote>
|
|
|
316 |
Where the argument of --gsroot is the path to the top level of the
|
|
|
317 |
source tree. Fix any problems it indicates, and commit them to cvs.
|
|
|
318 |
|
|
|
319 |
<p>
|
|
|
320 |
Check for patched configuration parameters, <b><tt>#define TEST</tt></b>s,
|
|
|
321 |
version/date inconsistencies, and mismatches between the working directory
|
|
|
322 |
and the CVS repository by running:
|
|
|
323 |
|
|
|
324 |
<blockquote><pre>
|
|
|
325 |
toolbin/pre.tcl
|
|
|
326 |
</pre></blockquote>
|
|
|
327 |
|
|
|
328 |
<p>
|
|
|
329 |
This program compares the result of various greps against a check file,
|
|
|
330 |
writing the results of grep on one output file and the differences from the
|
|
|
331 |
check file on another. See the source code for the default file names. The
|
|
|
332 |
important one is the check file,
|
|
|
333 |
<b><tt>toolbin/pre.chk</tt></b>. <b><tt>pre.tcl</tt></b> also verifies
|
|
|
334 |
that the
|
|
|
335 |
right information is in the following places:
|
|
|
336 |
<ul>
|
|
|
337 |
<li>release number in <b><tt>man/*.1</tt></b>, <b><tt>doc/*.htm</tt></b>,
|
|
|
338 |
<b><tt>version.mak</tt></b>, <b><tt>doc/gs-vms.hlp</tt></b>,
|
|
|
339 |
<b><tt>lib/gs_init.ps</tt></b>
|
|
|
340 |
<li>revision date in <b><tt>man/*.1</tt></b>, <b><tt>doc/*.htm</tt></b>,
|
|
|
341 |
<b><tt>version.mak</tt></b>, <b><tt>doc/gs-vms.hlp</tt></b>
|
|
|
342 |
<li>copyright year (if necessary) in <b><tt>gscdef.c</tt></b>
|
|
|
343 |
<li>third-party library version number in <b><tt>*.mak</tt></b>
|
|
|
344 |
</ul>
|
|
|
345 |
|
|
|
346 |
<p>
|
|
|
347 |
If necessary, run
|
|
|
348 |
|
|
|
349 |
<blockquote><pre>
|
|
|
350 |
toolbin/pre.tcl update
|
|
|
351 |
</pre></blockquote>
|
|
|
352 |
|
|
|
353 |
<p>
|
|
|
354 |
to update the version and revision date in the doc files, and then run
|
|
|
355 |
|
|
|
356 |
<blockquote><pre>
|
|
|
357 |
toolbin/pre.tcl
|
|
|
358 |
</pre></blockquote>
|
|
|
359 |
|
|
|
360 |
<p>
|
|
|
361 |
again. To confirm that everything is updated. You may have to commit to
|
|
|
362 |
cvs after the update to satify the script that all the dates are
|
|
|
363 |
correct.
|
|
|
364 |
|
|
|
365 |
<p>
|
|
|
366 |
Check the consistency of the source code with the makefiles by
|
|
|
367 |
running:
|
|
|
368 |
|
|
|
369 |
<blockquote><pre>
|
|
|
370 |
toolbin/gsmake.tcl check
|
|
|
371 |
</pre></blockquote>
|
|
|
372 |
|
|
|
373 |
This script assumes the top level makefile is named '<tt>makefile</tt>'.
|
|
|
374 |
|
|
|
375 |
<p>
|
|
|
376 |
Fix any problems and commit to cvs.
|
|
|
377 |
|
|
|
378 |
<h3><a name="Testing"></a>Testing</h3>
|
|
|
379 |
|
|
|
380 |
<p>
|
|
|
381 |
Edit your top-level the Makefile to set
|
|
|
382 |
<blockquote><pre>
|
|
|
383 |
FEATURE_DEVS=$(FEATURE_DEVS_ALL)
|
|
|
384 |
COMPILE_INITS=1
|
|
|
385 |
</pre></blockquote>
|
|
|
386 |
|
|
|
387 |
<p>
|
|
|
388 |
This will help catch compilation problems.
|
|
|
389 |
|
|
|
390 |
<p>
|
|
|
391 |
Run
|
|
|
392 |
|
|
|
393 |
<blockquote><pre>
|
|
|
394 |
rm obj/*
|
|
|
395 |
make -j2 >& make.log
|
|
|
396 |
</pre></blockquote>
|
|
|
397 |
|
|
|
398 |
<p>
|
|
|
399 |
and look for warnings and errors in the log file.
|
|
|
400 |
|
|
|
401 |
<p>
|
|
|
402 |
Do a smoke test, updating the example paths as necessary:
|
|
|
403 |
|
|
|
404 |
<blockquote><pre>
|
|
|
405 |
unset GS_DEVICE GS_FONTPATH GS_LIB GS_OPTIONS
|
|
|
406 |
./bin/gs -I./lib -I./fonts -dNOPAUSE -dBATCH toolbin/smoke.ps
|
|
|
407 |
./bin/gs -I./lib -I./fonts -dNOPAUSE -dBATCH -sDEVICE=bitcmyk\
|
|
|
408 |
-sOutputFile=/dev/null -r600 -dBufferSpace=100000 toolbin/smoke.ps
|
|
|
409 |
</pre></blockquote>
|
|
|
410 |
|
|
|
411 |
<p>
|
|
|
412 |
This reads files named
|
|
|
413 |
|
|
|
414 |
<blockquote><pre>
|
|
|
415 |
<b><tt>data/misc/*.ps</tt></b>
|
|
|
416 |
<b><tt>data/ps/*.ps</tt></b>
|
|
|
417 |
<b><tt>data/psl2/*.ps</tt></b>
|
|
|
418 |
<b><tt>data/psl3/*.ps</tt></b>
|
|
|
419 |
</pre></blockquote>
|
|
|
420 |
|
|
|
421 |
<p>
|
|
|
422 |
(Edit <b><tt>toolbin/smoke.ps</tt></b> to use other test sets.)
|
|
|
423 |
Watch for crashes, unusual error messages, or anomalous displayed output.
|
|
|
424 |
If there are any problems, start over from the beginning of the process.
|
|
|
425 |
|
|
|
426 |
<p>
|
|
|
427 |
Undo the <b><tt>FEATURE_DEVS</tt></b> and <b><tt>COMPILE_INITS</tt></b>
|
|
|
428 |
edits.
|
|
|
429 |
|
|
|
430 |
<p>
|
|
|
431 |
Run
|
|
|
432 |
|
|
|
433 |
<blockquote><pre>
|
|
|
434 |
cvs commit
|
|
|
435 |
</pre></blockquote>
|
|
|
436 |
|
|
|
437 |
<p>
|
|
|
438 |
to ensure the repository is up to date.
|
|
|
439 |
|
|
|
440 |
<h3><a name="Changelog"></a>Updating the changelog</h3>
|
|
|
441 |
|
|
|
442 |
<p>
|
|
|
443 |
Create a new changelog by running either (for the main HEAD branch)
|
|
|
444 |
|
|
|
445 |
<blockquote><pre>
|
|
|
446 |
cvs2cl.pl --utc -T --follow trunk --delta <prev release tag>:HEAD --xml -f doc/changelog.xml
|
|
|
447 |
</pre></blockquote>
|
|
|
448 |
|
|
|
449 |
or (for a non-HEAD branch)
|
|
|
450 |
|
|
|
451 |
<blockquote><pre>
|
|
|
452 |
cvs2cl.pl --utc -T --follow <branch> --delta <prev release tag>:<branch tag> --xml -f doc/changelog.xml
|
|
|
453 |
</pre></blockquote>
|
|
|
454 |
e.g.
|
|
|
455 |
<blockquote>
|
|
|
456 |
<pre>cvs2cl.pl --utc -T --follow trunk --delta gs8_00:HEAD --xml -f doc/changelog.xml</pre>
|
|
|
457 |
</blockquote>
|
|
|
458 |
|
|
|
459 |
<p>
|
|
|
460 |
This consolidates all the CVS logs since the previous release in a readable
|
|
|
461 |
format. You may also wish to pass a file mapping cvs user names to real names
|
|
|
462 |
with the <tt>-U</tt> option.
|
|
|
463 |
|
|
|
464 |
<p>
|
|
|
465 |
Create the html-format changes and details documents as follows:
|
|
|
466 |
|
|
|
467 |
<blockquote><pre>
|
|
|
468 |
cd doc
|
|
|
469 |
../toolbin/split_changelog.py changelog.xml Changes.htm Details.htm
|
|
|
470 |
cd ..
|
|
|
471 |
</pre></blockquote>
|
|
|
472 |
|
|
|
473 |
<p>
|
|
|
474 |
The xml changelog file can now be deleted. Run
|
|
|
475 |
|
|
|
476 |
<blockquote><pre>
|
|
|
477 |
toolbin/makehist.tcl
|
|
|
478 |
</pre></blockquote>
|
|
|
479 |
|
|
|
480 |
<p>
|
|
|
481 |
This updates <b><tt>doc/History#.htm</tt></b> from
|
|
|
482 |
<b><tt>doc/News.htm</tt></b> and <b><tt>doc/Changes.htm</tt></b>.
|
|
|
483 |
|
|
|
484 |
Then run
|
|
|
485 |
|
|
|
486 |
<blockquote><pre>
|
|
|
487 |
cvs commit
|
|
|
488 |
</pre></blockquote>
|
|
|
489 |
|
|
|
490 |
<p>
|
|
|
491 |
again to check in the Changes and history files.
|
|
|
492 |
|
|
|
493 |
<h3><a name="Making_Tarballs"></a>Making the source distribution</h3>
|
|
|
494 |
|
|
|
495 |
<p>
|
|
|
496 |
First, tag the versions of the files in cvs with the release version
|
|
|
497 |
number.
|
|
|
498 |
|
|
|
499 |
<blockquote>
|
|
|
500 |
<pre><tt>cvs tag gs#_##</tt></pre>
|
|
|
501 |
</blockquote>
|
|
|
502 |
|
|
|
503 |
If you've already tagged this release (e.g. in making an earlier
|
|
|
504 |
release candidate) you'll need to add the <tt>-r</tt> and <tt>-F</tt>
|
|
|
505 |
options after 'cvs tag' to force moving the tag to the new revisions
|
|
|
506 |
of changed files.
|
|
|
507 |
|
|
|
508 |
<p>
|
|
|
509 |
Pull a fresh copy for distribution from the cvs repository:
|
|
|
510 |
|
|
|
511 |
<blockquote><pre>
|
|
|
512 |
<tt>cvs -z3 -d <ghostscript cvsroot> export -r gs#_## -d ghostscript-#.## gs</tt>
|
|
|
513 |
</pre></blockquote>
|
|
|
514 |
|
|
|
515 |
|
|
|
516 |
<p>
|
|
|
517 |
Generate the text versions of the README and PUBLIC documents:
|
|
|
518 |
|
|
|
519 |
<blockquote>
|
|
|
520 |
<pre><tt>cd ghostscript-#.##</tt>
|
|
|
521 |
<tt>lynx -dump -nolist doc/Readme.htm > doc/README</tt>
|
|
|
522 |
<tt>lynx -dump -nolist doc/Public.htm > doc/PUBLIC</tt></pre>
|
|
|
523 |
</blockquote>
|
|
|
524 |
|
|
|
525 |
<p>
|
|
|
526 |
Add copies of third-party libraries. Versions of the ijs and icc
|
|
|
527 |
libraries are included in Ghostscript cvs, so these are provided
|
|
|
528 |
by the export. Source for zlib, libjpeg, and zlib are usually provided
|
|
|
529 |
in the Windows and MacOS source releases, but not the unix tarballs.
|
|
|
530 |
|
|
|
531 |
<p>
|
|
|
532 |
Download and unpack the latest source release of
|
|
|
533 |
<a href="http://jbig2dec.sourceforge.net/">jbig2dec</a>, renaming the
|
|
|
534 |
directory to just <tt>jbig2dec</tt> on the top level of ghostscript
|
|
|
535 |
source directory.
|
|
|
536 |
|
|
|
537 |
<p>
|
|
|
538 |
For the unix source distributions only, generate the configure
|
|
|
539 |
scripts. From the top level directory, run
|
|
|
540 |
|
|
|
541 |
<blockquote><pre><tt>./autogen.sh</tt>
|
|
|
542 |
<tt>make distclean</tt>
|
|
|
543 |
</pre></blockquote>
|
|
|
544 |
|
|
|
545 |
This should create links to <tt>configure.ac</tt> and
|
|
|
546 |
<tt>Makefile.in</tt> in the top level directory and
|
|
|
547 |
invoke autoconf to create the <tt>configure</tt> script.
|
|
|
548 |
|
|
|
549 |
<p>
|
|
|
550 |
Also, run <tt>autoconf</tt> in the ijs subdir to create the configure script
|
|
|
551 |
for that package.
|
|
|
552 |
|
|
|
553 |
<p>
|
|
|
554 |
Move back to directory containing the distribution code and make the
|
|
|
555 |
source archives with:
|
|
|
556 |
|
|
|
557 |
<blockquote><pre>
|
|
|
558 |
<tt>tar cvzf ghostscript-#.##.tar.gz ghostscript-#.##/*</tt>
|
|
|
559 |
<tt>zcat ghostscript-#.##.tar.gz | bzip2 -c > ghostscript-#.##.tar.bz2</tt>
|
|
|
560 |
</pre></blockquote>
|
|
|
561 |
|
|
|
562 |
<p>
|
|
|
563 |
This creates the files
|
|
|
564 |
|
|
|
565 |
<blockquote><pre>
|
|
|
566 |
<b><tt>ghostscript-#.##.tar.gz</tt></b> (main archive)
|
|
|
567 |
<b><tt>ghostscript-#.##.tar.bz2</tt></b> (main archive)
|
|
|
568 |
</pre></blockquote>
|
|
|
569 |
|
|
|
570 |
<p>
|
|
|
571 |
The important issue is that the tarballs unpack into a directory
|
|
|
572 |
of the same name, and that the code be a pristine copy without
|
|
|
573 |
build or CVS housekeeping files.
|
|
|
574 |
|
|
|
575 |
<p>
|
|
|
576 |
It is also customary to make a <tt>gs###src.zip</tt> archive for the
|
|
|
577 |
convenience of windows developers. See below.
|
|
|
578 |
|
|
|
579 |
<h3><a name="Testing_on_Windows"></a>Testing on Windows</h3>
|
|
|
580 |
|
|
|
581 |
<p>
|
|
|
582 |
For Windows testing, you will need, in addition to the files listed
|
|
|
583 |
under "<a href="#Preparing_source">Preparing the source</a>" above:
|
|
|
584 |
<blockquote><pre>
|
|
|
585 |
<b><tt>toolbin/makewin.tcl</tt></b>
|
|
|
586 |
</pre></blockquote>
|
|
|
587 |
|
|
|
588 |
<p>
|
|
|
589 |
The following procedures rely on a large number of MS-DOS batch scripts that
|
|
|
590 |
are not discussed here: they are unlikely to be generally useful.
|
|
|
591 |
|
|
|
592 |
<p>
|
|
|
593 |
Mount the Windows partition on <b><tt>/c</tt></b>, and create the
|
|
|
594 |
<b><tt>/c/work</tt></b> directory if needed.
|
|
|
595 |
|
|
|
596 |
<p>
|
|
|
597 |
Make the zip archive of all files needed for a Windows build, and copy it to
|
|
|
598 |
the Windows partition:
|
|
|
599 |
|
|
|
600 |
<blockquote><pre>
|
|
|
601 |
toolbin/makewin
|
|
|
602 |
cp gs###.zip /c/work
|
|
|
603 |
</pre></blockquote>
|
|
|
604 |
|
|
|
605 |
<p>
|
|
|
606 |
Boot into Windows. Unpack the archive:
|
|
|
607 |
|
|
|
608 |
<blockquote><pre>
|
|
|
609 |
cd \work
|
|
|
610 |
unzip -oq gs###.zip
|
|
|
611 |
gs###
|
|
|
612 |
</pre></blockquote>
|
|
|
613 |
|
|
|
614 |
<p>
|
|
|
615 |
The <b><tt>gs###.bat</tt></b> script creates some necessary directories,
|
|
|
616 |
sets up <b><tt>PATH</tt></b> and <b><tt>GS_LIB</tt></b> for testing, and
|
|
|
617 |
makes the <b><tt>gs#.##</tt></b> directory current.
|
|
|
618 |
|
|
|
619 |
<p>
|
|
|
620 |
Build with the Borland compiler:
|
|
|
621 |
|
|
|
622 |
<blockquote><pre>
|
|
|
623 |
config bcwin32
|
|
|
624 |
copy /y /b ..\gs\makefile
|
|
|
625 |
erase obj\*.*
|
|
|
626 |
make > bc.log
|
|
|
627 |
</pre></blockquote>
|
|
|
628 |
|
|
|
629 |
<p>
|
|
|
630 |
Smoke test the executables (both <b><tt>gswin32</tt></b> and
|
|
|
631 |
<b><tt>gswin32c</tt></b>), as described above for source distributions.
|
|
|
632 |
Then build with the Microsoft compiler:
|
|
|
633 |
|
|
|
634 |
<blockquote><pre>
|
|
|
635 |
config msvc32
|
|
|
636 |
copy /y /b ..\gs\makefile
|
|
|
637 |
erase obj\*.*
|
|
|
638 |
nmake > msvc.log
|
|
|
639 |
</pre></blockquote>
|
|
|
640 |
|
|
|
641 |
<p>
|
|
|
642 |
Smoke test these executables too.
|
|
|
643 |
|
|
|
644 |
<p>
|
|
|
645 |
Building with the Watcom compiler doesn't work, because the
|
|
|
646 |
<b><tt>wmake</tt></b> or <b><tt>wmakel</tt></b> program runs out of memory.
|
|
|
647 |
However, if it did work, this is how to do it:
|
|
|
648 |
|
|
|
649 |
<blockquote><pre>
|
|
|
650 |
config watcw32
|
|
|
651 |
copy /y /b ..\gs\makefile
|
|
|
652 |
erase obj\*.*
|
|
|
653 |
wmake -u > watc.log
|
|
|
654 |
</pre></blockquote>
|
|
|
655 |
|
|
|
656 |
<p>
|
|
|
657 |
Boot back into Linux. If testing in Windows revealed problems, edit the
|
|
|
658 |
source files as necessary, and go back to <a
|
|
|
659 |
href="#Preparing_source">"Preparing the source code."</a>
|
|
|
660 |
|
|
|
661 |
<h3><a name="Windows_distribution"></a>Building the Windows distribution</h3>
|
|
|
662 |
<p>
|
|
|
663 |
Extract the sources from <b><tt>ghostscript-N.NN.tar.gz</tt></b>
|
|
|
664 |
then repackage in a zip file as follows:
|
|
|
665 |
<blockquote>
|
|
|
666 |
<b><tt>zip -r temp.zip gsN.NN/LICENSE gsN.NN/doc gsN.NN/examples
|
|
|
667 |
gsN.NN/icclib gsN.NN/ijs gsN.NN/jasper gsN.NN/jbig2dec gsN.NN/lib
|
|
|
668 |
gsN.NN/src gsN.NN/Resource</tt></b>
|
|
|
669 |
</blockquote>
|
|
|
670 |
Unzip converting the line endings to CRLF:
|
|
|
671 |
<blockquote>
|
|
|
672 |
<b><tt>unzip -a temp.zip<br>
|
|
|
673 |
del temp.zip</tt></b>
|
|
|
674 |
</blockquote>
|
|
|
675 |
Then finally zip up the sources to the distribution file:
|
|
|
676 |
<blockquote>
|
|
|
677 |
<b><tt>zip -9 -r -X gsNNNsrc.zip gsN.NN</tt></b>
|
|
|
678 |
</blockquote>
|
|
|
679 |
This method is reasonably portable, and does not convert binary
|
|
|
680 |
files such as
|
|
|
681 |
<b><tt><a href="../examples/annots.pdf">examples/annots.pdf</a></tt></b>.
|
|
|
682 |
<p>
|
|
|
683 |
Unzip <b><tt>gsNNNsrc.zip</tt></b>.
|
|
|
684 |
The directory must be named <b><tt>gsN.NN</tt></b>.
|
|
|
685 |
<p>
|
|
|
686 |
Extract the AFPL fonts <b><tt>ghostscript-fonts-std-6.0.tar.gz</tt></b>
|
|
|
687 |
or GNU fonts <b><tt>gnu-gs-fonts-std-6.0.tar.gz</tt></b>
|
|
|
688 |
into a directory <b><tt>fonts</tt></b> adjacent to the
|
|
|
689 |
<b><tt>gsN.NN</tt></b> directory.
|
|
|
690 |
The fonts are needed in this location for building
|
|
|
691 |
the distribution archive later.
|
|
|
692 |
<p>
|
|
|
693 |
You will need the command line Info-Zip zip program available from
|
|
|
694 |
<a href="http://www.info-zip.org/pub/infozip/">
|
|
|
695 |
http://www.info-zip.org/pub/infozip/</a>
|
|
|
696 |
Alternatively, the command line version of WinZip
|
|
|
697 |
(<b><tt>wzzip.exe</tt></b>) can be used by replacing the
|
|
|
698 |
Info-Zip command line options <b><tt>-9 -r</tt></b>
|
|
|
699 |
with <b><tt>-ex -P</tt></b> in
|
|
|
700 |
<b><tt><a href="../src/winint.mak">winint.mak</a></tt></b>.
|
|
|
701 |
<p>
|
|
|
702 |
You will need WinZip Self-Extractor for building the
|
|
|
703 |
self extracting archive. This is commercial software.
|
|
|
704 |
You may need to update the path <b><tt>WINZIPSE_XE</tt></b> in
|
|
|
705 |
<b><tt><a href="../src/winint.mak">winint.mak</a></tt></b>.
|
|
|
706 |
<p>
|
|
|
707 |
Unzip the jpeg, libpng and zlib libraries, then make ghostscript
|
|
|
708 |
as documented in <a href="Make.htm">Make.htm</a>.
|
|
|
709 |
<p>
|
|
|
710 |
Run the command <b><tt>nmake archive</tt></b>. This builds the distribution
|
|
|
711 |
archive <b><tt>gsNNNw32.exe</tt></b> and an ordinary zip file
|
|
|
712 |
<b><tt>gsNNNw32.zip</tt></b> in the parent directory.
|
|
|
713 |
If you do not have WinZip Self-Extractor, you can use
|
|
|
714 |
<b><tt>nmake zip</tt></b> to make <b><tt>gsNNNw32.zip</tt></b> only.
|
|
|
715 |
|
|
|
716 |
<h3><a name="Finishing_up"></a>Finishing up</h3>
|
|
|
717 |
|
|
|
718 |
<p>
|
|
|
719 |
Upload <b><tt>ghostscript-#.##.tar.*</tt></b> to SourceForge (by anonymous
|
|
|
720 |
FTP to <b><tt>upload.sourceforge.net</tt></b>, directory
|
|
|
721 |
<b><tt>/incoming</tt></b>), and then post it using the "File Release"
|
|
|
722 |
facility in the AFPL Ghostscript project. If this is a stable AFPL
|
|
|
723 |
release put it in the <b><tt>ghostscript</tt></b> module.
|
|
|
724 |
If this is a GPL release, put it in the <b><tt>gs-gpl</tt></b> module.
|
|
|
725 |
If this is a test release or beta release, put
|
|
|
726 |
it in the <b><tt>gs-devel</tt></b> or <b><tt>gs-beta</tt></b> module,
|
|
|
727 |
respectively.
|
|
|
728 |
If you are adding executable builds or source archives for other
|
|
|
729 |
platforms to an existing source release, please use the same release
|
|
|
730 |
date as the source release, not the current date.
|
|
|
731 |
|
|
|
732 |
<p>
|
|
|
733 |
If <b><tt>doc/C-style.htm</tt></b> has changed, put it on
|
|
|
734 |
<b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/C-style.htm</tt></b>.
|
|
|
735 |
|
|
|
736 |
<h3><a name="Beta_distributions"></a>Beta distributions</h3>
|
|
|
737 |
|
|
|
738 |
<p>
|
|
|
739 |
Do the steps for distributions in general.
|
|
|
740 |
|
|
|
741 |
<p>
|
|
|
742 |
Upload <b><tt>ghostscript-#.##.tar.*</tt></b> to
|
|
|
743 |
<b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/test</tt></b>.
|
|
|
744 |
|
|
|
745 |
<p>
|
|
|
746 |
Send an email announcement to the <tt>gs-test</tt> list
|
|
|
747 |
announcing the new release.
|
|
|
748 |
|
|
|
749 |
<h3><a name="Public_releases"></a>Public releases</h3>
|
|
|
750 |
|
|
|
751 |
<p>
|
|
|
752 |
Do the steps for distributions in general.
|
|
|
753 |
|
|
|
754 |
<p>
|
|
|
755 |
Create a directory at
|
|
|
756 |
<b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/gs###/</tt></b>. In that
|
|
|
757 |
directory, store the following files:
|
|
|
758 |
|
|
|
759 |
<ul>
|
|
|
760 |
|
|
|
761 |
<li>Standard distribution files:
|
|
|
762 |
|
|
|
763 |
<blockquote><pre>
|
|
|
764 |
<b><tt>ghostscript-#.##.tar.gz</tt></b>
|
|
|
765 |
<b><tt>ghostscript-#.##.tar.bz2</tt></b>
|
|
|
766 |
</pre></blockquote>
|
|
|
767 |
|
|
|
768 |
<li>MS Windows source and executables:
|
|
|
769 |
|
|
|
770 |
<blockquote><pre>
|
|
|
771 |
<b><tt>gs###src.zip</tt></b>
|
|
|
772 |
<b><tt>gs###w32.exe</tt></b>
|
|
|
773 |
<b><tt>gs###w32.zip</tt></b>
|
|
|
774 |
</pre></blockquote>
|
|
|
775 |
|
|
|
776 |
<li>Third-party libraries, as links (upload these if not installed), where
|
|
|
777 |
<b><tt>$$$</tt></b> et al. refer to the version number of the library, which
|
|
|
778 |
should be the latest compatible release of the library and should be
|
|
|
779 |
consistent with the values of and version numbers specifically listed in
|
|
|
780 |
the makefiles.
|
|
|
781 |
|
|
|
782 |
<blockquote><pre>
|
|
|
783 |
<b><tt>jpegsrc.v$$.tar.gz</tt></b> -> <b><tt>../../3rdparty/jpegsrc.v$$.tar.gz</tt></b>
|
|
|
784 |
<b><tt>libpng-$.$.$.tar.gz</tt></b> -> <b><tt>../../3rdparty/libpng-$.$.$.tar.gz</tt></b>
|
|
|
785 |
<b><tt>zlib-$.$.$.tar.gz</tt></b> -> <b><tt>../../3rdparty/zlib-$.$.$.tar.gz</tt></b>
|
|
|
786 |
<b><tt>jpegsr$$.zip</tt></b> -> <b><tt>../../3rdparty/jpegsr$$.zip</tt></b>
|
|
|
787 |
<b><tt>lpng$$$.zip</tt></b> -> <b><tt>../../3rdparty/lpng$$$.zip</tt></b>
|
|
|
788 |
<b><tt>zlib$$$.zip</tt></b> -> <b><tt>../../3rdparty/zlib$$$.zip</tt></b>
|
|
|
789 |
</pre></blockquote>
|
|
|
790 |
|
|
|
791 |
In any case, the names of the links in the distribution directory should reflect
|
|
|
792 |
the original name of the upstream file.
|
|
|
793 |
|
|
|
794 |
<li>Fonts, where <b><tt>$.$$</tt></b> refers to the most recent version
|
|
|
795 |
number of the fonts:
|
|
|
796 |
|
|
|
797 |
<blockquote><pre>
|
|
|
798 |
<b><tt>ghostscript-fonts-other-$.$.tar.gz</tt></b> -> <b><tt>../fonts/ghostscript-fonts-other-$.$.tar.gz</tt></b>
|
|
|
799 |
<b><tt>ghostscript-fonts-std-$.$.tar.gz</tt></b> -> <b><tt>../fonts/ghostscript-fonts-std-$.$.tar.gz</tt></b>
|
|
|
800 |
</pre></blockquote>
|
|
|
801 |
|
|
|
802 |
</ul>
|
|
|
803 |
|
|
|
804 |
<p>
|
|
|
805 |
(Note that the link names are somewhat inconsistent: some of them retain the
|
|
|
806 |
version number of the file being referenced, and some of them use the
|
|
|
807 |
Ghostscript release number. This is a historical artifact that might be
|
|
|
808 |
changed someday.)
|
|
|
809 |
|
|
|
810 |
<p>
|
|
|
811 |
E-mail the release announcement using:
|
|
|
812 |
<blockquote><pre>
|
|
|
813 |
To: gs-announce
|
|
|
814 |
</pre></blockquote>
|
|
|
815 |
|
|
|
816 |
<p>
|
|
|
817 |
Edit the Web pages in cvs and commit to reflect the new release.
|
|
|
818 |
The Wisconsin server should update automatically.
|
|
|
819 |
|
|
|
820 |
<h2><a name="After_releasing"></a>After releasing</h2>
|
|
|
821 |
|
|
|
822 |
<p>
|
|
|
823 |
Update the release number by incrementing it as described in <a
|
|
|
824 |
href="#Release_numbering">Release numbering</a> above.
|
|
|
825 |
|
|
|
826 |
<p>
|
|
|
827 |
In <b><tt>gscdef.c</tt></b>, edit the definition of
|
|
|
828 |
<b><tt>GS_PRODUCT</tt></b> to include "CVS PRE-RELEASE".
|
|
|
829 |
|
|
|
830 |
<p>
|
|
|
831 |
Edit <b><tt>doc/News.htm</tt></b> to remove all the content.
|
|
|
832 |
|
|
|
833 |
|
|
|
834 |
<h2><a name="GPL_releases"></a>GPL Ghostscript releases</h2>
|
|
|
835 |
|
|
|
836 |
<p>
|
|
|
837 |
artofcode LLC re-releases each stable AFPL Ghostscript branch as
|
|
|
838 |
GPL Ghostscript (under the GNU GPL license) when the next major stable
|
|
|
839 |
AFPL release comes out, or after one calendar year, whichever comes first.
|
|
|
840 |
|
|
|
841 |
<h3><a name="GPL_code"></a>GPL code</h3>
|
|
|
842 |
|
|
|
843 |
<p>
|
|
|
844 |
To make a GPL Ghostscript release from AFPL Ghostscript, update the
|
|
|
845 |
LICENCE file to reflect the new status of the code. In general there
|
|
|
846 |
can be no recipe for this as it depends on the niceties of ownership and
|
|
|
847 |
permisison attached to each piece of code. However, a previous GPL
|
|
|
848 |
release can serve as a guide.
|
|
|
849 |
|
|
|
850 |
<p>
|
|
|
851 |
There are also generally some portions of code (usually drivers) which
|
|
|
852 |
are limited to GPL Ghostscript only. These may want porting to the new
|
|
|
853 |
version before release.
|
|
|
854 |
|
|
|
855 |
<p>Once the license change is complete and the codebase has been
|
|
|
856 |
updated to satifaction, follow the release process as described for AFPL
|
|
|
857 |
Ghostscript above to test and package the new version. The distribution
|
|
|
858 |
methods are parallel to those for the AFPL, with the GPL releases
|
|
|
859 |
generally going under a separate header. For example, on the wisc
|
|
|
860 |
ftp site upload the file to
|
|
|
861 |
<tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gpl/gs###/</tt>.
|
|
|
862 |
|
|
|
863 |
|
|
|
864 |
<h2><a name="Fonts"></a>Fonts</h2>
|
|
|
865 |
|
|
|
866 |
<p>
|
|
|
867 |
artofcode LLC distributes a package of the base 35 PostScript fonts, and a
|
|
|
868 |
package of other miscellaneous fonts. As with the Ghostscript code, each
|
|
|
869 |
package is released both with the AFPL and with the GPL; however, unlike the
|
|
|
870 |
Ghostscript code, artofcode releases these versions simultaneously rather
|
|
|
871 |
than with a one-version delay.
|
|
|
872 |
|
|
|
873 |
<p>
|
|
|
874 |
To make the font packages, run the command
|
|
|
875 |
|
|
|
876 |
<blockquote><pre>
|
|
|
877 |
toolbin/makefonts #.##
|
|
|
878 |
</pre></blockquote>
|
|
|
879 |
|
|
|
880 |
<p>
|
|
|
881 |
This creates the following files:
|
|
|
882 |
|
|
|
883 |
<blockquote><pre>
|
|
|
884 |
ghostscript-fonts-std-#.##.tar.gz
|
|
|
885 |
ghostscript-fonts-other-#.##.tar.gz
|
|
|
886 |
gnu-gs-fonts-std-#.##.tar.gz
|
|
|
887 |
gnu-gs-fonts-other-#.##.tar.gz
|
|
|
888 |
</pre></blockquote>
|
|
|
889 |
|
|
|
890 |
<p>
|
|
|
891 |
The first two of these use the AFPL, and should be uploaded to
|
|
|
892 |
<b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/fonts/</tt></b>. The other two
|
|
|
893 |
use the GPL, and should be uploaded to
|
|
|
894 |
<b><tt>ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/fonts/</tt></b>. For the GPL
|
|
|
895 |
release, also see <a href="#GPL_after_releasing">"After releasing
|
|
|
896 |
(GNU)"</a>.
|
|
|
897 |
|
|
|
898 |
<!-- [2.0 end contents] ==================================================== -->
|
|
|
899 |
|
|
|
900 |
<!-- [3.0 begin visible trailer] =========================================== -->
|
|
|
901 |
<hr>
|
|
|
902 |
|
|
|
903 |
<p>
|
|
|
904 |
<small>Copyright © 1999-2003 artofcode LLC. All rights
|
|
|
905 |
reserved.</small>
|
|
|
906 |
|
|
|
907 |
<p>
|
|
|
908 |
This software is provided AS-IS with no warranty, either express or
|
|
|
909 |
implied.
|
|
|
910 |
|
|
|
911 |
This software is distributed under license and may not be copied,
|
|
|
912 |
modified or distributed except as expressly authorized under the terms
|
|
|
913 |
of the license contained in the file LICENSE in this distribution.
|
|
|
914 |
|
|
|
915 |
For more information about licensing, please refer to
|
|
|
916 |
http://www.ghostscript.com/licensing/. For information on
|
|
|
917 |
commercial licensing, go to http://www.artifex.com/licensing/ or
|
|
|
918 |
contact Artifex Software, Inc., 101 Lucas Valley Road #110,
|
|
|
919 |
San Rafael, CA 94903, U.S.A., +1(415)492-9861.
|
|
|
920 |
|
|
|
921 |
<p>
|
|
|
922 |
<small>Ghostscript version 8.53, 20 October 2005
|
|
|
923 |
|
|
|
924 |
<!-- [3.0 end visible trailer] ============================================= -->
|
|
|
925 |
|
|
|
926 |
</body>
|
|
|
927 |
</html>
|