]> git.donarmstrong.com Git - debian/debian-policy.git/blob - upgrading-checklist.html
Manoj
[debian/debian-policy.git] / upgrading-checklist.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
2 <html>
3   <head>
4  <!--                             -*- Mode: Sgml -*-
5     upgrading-checklist.html
6     Author           : Manoj Srivastava ( srivasta@tiamat.datasync.com )
7     Created On       : Thu Oct 29 20:54:48 1998
8     Created On Node  : tiamat.datasync.com
9     Last Modified By : Manoj Srivastava
10     Last Modified On : Sat Oct 26 12:22:40 2002
11     Last Machine Used: glaurung.green-gryphon.com
12     Update Count     : 29
13     Status           : Unknown, Use with caution!
14     HISTORY          :
15     Description      :
16
17     -->
18
19
20     <title>Policy checklist for upgrading your packages</title>
21   </head>
22   <body>
23
24     <h1>Policy checklist for upgrading your packages</h1>
25
26     <h2>About the checklist</h2>
27
28 <p>
29 The checklist below has been created to simplify the upgrading process
30 of old packages.  Note that this list is not `official'; it simply
31 gives an indication of what has changed and whether you are likely to
32 need to make changes to your package in light of this.  If you have
33 doubts about a certain topic, if you need more details, or if you
34 think some other package does not comply with policy, please refer to
35 the Policy Manual itself.  All of the changes from version 3.0.0
36 onwards indicate which section of the Policy Manual discusses the
37 issue: [3.4] means section 3.4.  The section numbering changed when
38 the packaging manual was incorporated into policy; the section numbers
39 used below refer to the current version.
40 </p>
41
42 <p>
43 Here is how the check list works: Check which policy version your
44 package complies with currently (indicated in the "Standards-Version"
45 field of the source package).  Then move upwards until the top and
46 check which of the items on the list might concern your package.  Note
47 which sections of policy discuss this, and then check out the Policy
48 Manual for details.  If you are upgrading from Policy version < 2.5.0,
49 it may be easier to check through the whole of policy instead of
50 picking your way through this list.
51 </p>
52
53 <h2>The checklist</h2>
54
55 <pre>
56 3.5.8.0                    Nov 02
57
58      - It is no longer necessary to keep a log of changes to the upstream
59        sources in the copyright file. Instead, all such changes should be
60        documented in the changelog file. [13.7]
61      - <tt>Build-Depends</tt>,  <tt>Build-Conflicts</tt>,
62        <tt>Build-Depends-Indep</tt>, and
63        <tt>Build-Conflicts-Indep</tt> must also be satisfied when the
64        clean target is called[7.6]
65      - A new apps/Science menu section is available [menu policy]
66      - debconf specification cleared up, various changes. [debconf
67        policy]
68      - The section on required man pages has been changed. Missing
69        manual pages for programs are a bug. [13.1]
70
71 3.5.7.0                    Aug 02
72
73      - Packages no longer have to ask permission to call MAKEDEV in
74        postinst, merely notifying the user ought to be enough. [11.6]
75      - cryptographic software may now be included in the main
76        archive. [2.1.5]
77      - task packages are now not permitted; tasks are now created by a
78        special Tasks: field in the control file. [2.3.8]
79      - window managers that support netwm now can added 20 points when
80        they add themselves as an alternative for
81        /usr/bin/x-window-manager [12.8.4]
82      - There are new rules for build-indep/build-arch targets and
83        there is a new Build-Depend-Indep semantic. These were actually
84        introduced in 3.5.6, but I forgot to mention them here. [7]
85      - The default compilation options have now changed, one should
86        provide debugging symbols in all cases, and optionally step
87        back optimization to -O0, depending on the DEB_BUILD_OPTIONS
88        environment variable. [11.1]
89      - Added mention of build-arch, build-indep, etc, in describing
90        the relationships with `Build-Depends', `Build-Conflicts',
91        `Build-Depends-Indep', and `Build-Conflicts-Indep'. May need to
92        review the new rules.  [7.6, 5.2]
93      - Changed rules on how, and when, to invoke ldconfig in maintiner
94        scripts. Long rationale. [9]
95
96 3.5.6.0                    Jul 01
97
98      - Emacs and TeX are no longer mandated by policy to be priority
99        standard packages [2.2]
100      - Programs that access docs need to do so via /usr/share/doc, and
101        not via /usr/doc/ as was the policy previously [12.5]
102      - Putting documentation in /usr/doc versus /usr/share/doc is now
103        a ``serious'' policy violation
104      - For web servers, one should not provide non-local access to the
105        /usr/share/doc hierarchy. If one can't provide access controls for
106        the //localhost/doc/ directory, then it is preferred that one
107        ask permission to expose that information during the install [12.5]
108
109
110 3.5.5.0                    May 01
111
112      - Manpages should not rely on header information to have
113        alternative manpage names available; it should only use
114        symlinks or .so pages to do this [13.1]
115      - [Clarified note in 3.5.3.0 upgrading checklist regarding
116         examples and templates: this refers only to those examples used
117         by scripts; see section 11.7.3 for the whole story]
118      - Included a new section 11.9.1 describing the use of
119        dpkg-statoverride; this does not have the weight of policy
120      - Clarify Standards-Version: you don't need to rebuild your
121        packages just to change the Standards-Version!
122      - Plugins are no longer bound by all the rules of shared
123        libraries [11.2]
124      - X Windows related things:
125        * Clarification of priority levels of X Window System related
126          packages [12.8.1]
127        * Rules for defining x-terminal-emulator improved [12.8.3]
128        * X Font policy rewritten: you must read this if you provide
129          fonts for the X Window System [12.8.5]
130        * Packages must not ship /usr/X11R6/lib/X11/app-defaults/ [12.8.6]
131        * X-related packages should usually use the regular FHS
132          locations; imake-using packages are exempted from this [12.8.7]
133        * OpenMotif linked binaries have the same rules as
134          OSF/Motif-linked ones [12.8.8]
135
136
137 3.5.4.0                    Apr 01
138
139      - The system-wide mail directory is now /var/mail, no longer
140        /var/spool/mail.  Any packages accessing the mail spool should
141        access it via /var/mail and include a suitable Depends field;
142        details in [12.6]
143      - The perl policy is now part of Debian policy proper. Perl
144        programs and modules should follow the current Perl policy
145        [12.9; perl-policy]
146
147
148 3.5.3.0                    Apr 01
149
150      - Build-Depends arch syntax has been changed to be less
151        ambiguous. This should not affect any current packages [7.1]
152      - Examples and templates files for use by scripts should now live
153        in /usr/share/&lt;package&gt; or /usr/lib/&lt;package&gt;, with
154        symbolic links from /usr/share/doc//&lt;package&gt;/examples as
155        needed [11.7.3]
156
157
158 3.5.2.0                    Feb 01
159
160      - X app-defaults directory has moved from
161        /usr/X11R6/lib/X11/app-defaults to /etc/X11/app-defaults [12.8.6]
162
163
164 3.5.1.0                    Feb 01
165
166      - dpkg-shlibdeps now uses objdump, so shared libraries have to be
167        run through dpkg-shlibdeps as well as executables [9.1]
168
169
170 3.5.0.0                    Jan 01
171
172      - Font packages for the X Window System must now declare a
173        dependency on xutils (>= 4.0.2) [12.8.5]
174
175
176 3.2.1.1                    Jan 01
177
178      - Daemon startup scripts in /etc/init.d/ should not contain
179        modifiable parameters; these should be moved to a file in
180        /etc/default/; see [10.3.2] for details
181      - Files in /usr/share/doc must not be referenced by any
182        program.  If such files are needed, they must be placed in
183        /usr/share/&lt;package&gt;/, and symbolic links created as required
184        in /usr/share/doc/&lt;package&gt;/ [13.3]
185      - Much of the packaging manual has now been imported into the
186        policy document
187
188
189 3.2.1.0                    Aug 00
190
191      - A package of priority standard or higher may provide two
192        binaries, one compiled with support for the X Window System,
193        and the other without [12.8.1]
194
195
196 3.2.0.0                    Aug 00
197
198      - By default executables should not be built with the debugging
199        option -g. Instead, it is recommended to support building the
200        package with debugging information optionally.  Details in [11.1]
201      - Policy for packages where the upstream uses HTML changelog
202        files has been expanded.  In short, a plain text changelog file
203        should always be generated for the upstream changes [13.8]
204      - Please note that the new release of the X window system (4.x)
205        shall probably need sweeping changes in policy
206      - Policy for packages providing the following X-based features
207        has been codified:
208        - X server (virtual package xserver) [12.8.2]
209        - X terminal emulator (virtual package x-terminal-emulator) [12.8.3]
210        - X window manager (virtual package x-window-manager, and
211          /usr/bin/x-window-manager alternative, with priority
212          calculation guidelines) [12.8.4]
213        - X fonts (this section has been written from scratch) [12.8.5]
214        - X application defaults [12.8.6]
215      - Policy for packages using the X Window System and FHS issues
216        has been clarified; see [12.8.7]
217      - No package may contain or make hard links to conffiles [11.7.3]
218      - Noted that newer dpkg versions do not require extreme care in
219        always creating the shared lib before the symlink, so the unpack
220        order be correct [9]
221
222
223 3.1.1.0                    Nov 99
224
225      - Correction to semantics of architecture lists in Build-Depends
226        etc.  Should not affect many packages [7.1]
227
228
229 3.1.0.0                    Oct 99
230
231      - /usr/doc/&lt;package&gt; has to be a symlink pointing to
232        /usr/share/doc/&lt;package&gt;, to be maintained by postinst
233        and prerm scripts.  Details are in [13.4]
234      - Introduced source dependencies (Build-Depends, etc.) [7.1, 7.6]
235      - /etc/rc.boot has been deprecated in favour of /etc/rcS.d.
236        (Packages should not be touching this directory, but should use
237        update-rc.d instead) [10.3.4]
238      - update-rc.d is now the *only* allowable way of accessing the
239        /etc/rc?.d/[SK]??* links.  Any scripts which manipulate them
240        directly must be changed to use update-rc.d instead.  (This is
241        because the file-rc package handles this information in an
242        incompatible way.) [10.3.3]
243      - Architecture-specific examples go in /usr/lib/&lt;package&gt;/examples
244        with symlinks from /usr/share/doc/&lt;package&gt;/examples/* or from
245        /usr/share/doc/&lt;package&gt;/examples itself [13.7]
246      - Updated FHS to a 2.1 draft; this reverts /var/state to
247        /var/lib [10.1.1]
248      - Added MIME sub-policy document [10.7; mime-policy]
249      - VISUAL is allowed as a (higher priority) alternative to EDITOR [12.4]
250      - Modified liblockfile description, which affects
251        mailbox-accessing programs.  Please see the policy document for
252        details [12.6]
253      - If a package provides a changelog in HTML format, a text-only
254        version should also be included.  (Such a version may be prepared
255        using lynx -dump -nolist.) [13.8]
256      - Description of how to handle version numbers based on dates
257        added [4.1]
258
259
260 3.0.1.0                    Jul 99
261
262     -  Added the clarification that the .la files are essential for the
263        packages using libtool's libltdl library, in which case the
264        .la files must go in the run-time library package [11.2]
265
266
267 3.0.0.0                    Jun 99
268
269     - Debian formally moves from the FSSTND to the FHS. This is a
270       major change, and the implications of this move are probably
271       not all known. [10.1]
272     - Only 3 digits of the Standards version need be included in
273       control files, though all four digits are still permitted. [2.4.1]
274     - The location of the GPL has changed to
275       /usr/share/common-licenses. This may require changing the
276       copyright files to point to the correct location of the GPL and
277       other major licenses [13.6]
278     - Packages that use libtool to create shared libraries must
279       include the .la files in the -dev packages [11.2]
280     - Use logrotate to rotate log files [11.8]
281     - section 5.8 has been rewritten (Programs for the X Window
282       System) [now 12.8]
283     - There is now an associated menu policy, in a separate document,
284       that carries the full weight of Debian policy [10.6; menu-policy]
285     - Programs which need to modify the files /var/run/utmp,
286       /var/log/wtmp and /var/log/lastlog must be installed setgid utmp [12.3]
287
288
289 2.5.0.0                         Oct 98
290
291   Policy Manual:
292     - Rearranged the manual to create a new Section 4, Files
293       + Section 3.3 ("Files") was moved to Section 4. The Sections
294         that  were Section 4 and Section 5 were  moved down to become
295         Section 5 and Section 6.
296       + What was Section 5.5 ("Log files") is now a subsection of the
297         new Section 4 ("Files"), becoming section 4.8, placed after
298         "Configuration files", moving the Section 4.8 ("Permissions
299         and owners") to Section 4.9.  All subsections of the old
300         Section 5 after 5.5  were moved down to fill in the number
301         gap.
302     - Modified the section about changelog files to accommodate
303       upstream changelogs which were formatted as HTML/ These
304       upstream changelog files should now be accessible as
305       /usr/doc/package/changelog.html.gz
306       + Symlinks are permissible to link the real, or upstream,
307         changelog name to the Debian mandated name.
308     - Clarified that HTML documentation should be present in some
309       package, though not necessarily the main binary package.
310     - Corrected all references to the location of the copyright
311       files. The correct location is /usr/doc/package/copyright
312     - Ratified the architecture specification strings to cater to the
313       HURD.
314
315 2.4.1.0                         Apr 98
316
317   Policy Manual:
318     - Updated section 3.3.5 Symbolic links:
319       + symbolic links within a toplevel directory should be relative,
320         symbolic links between toplevel directories should be absolute
321         (cf., Policy Weekly Issue#6, topic 2)
322
323     - Updated section 4.9 Games:
324       + manpages for games should be installed in /usr/man/man6
325         (cf., Policy Weekly Issue#6, topic 3)
326
327   Packaging Manual:
328     - Updated prefix of chapter 12, Shared Libraries:
329       ldconfig must be called in the postinst script if the package
330       installs shared libraries
331       (cf., Policy Weekly Issue #6, fixes:bug#20515)
332
333 2.4.0.0                         Jan 98
334
335     - Updated section 3.3.4 Scripts:
336       + /bin/sh may be any POSIX compatible shell
337       + scripts including bashisms have to specify /bin/bash as
338         interpreter
339       + scripts which create files in world-writable directories
340         (e.g., in /tmp) should use tempfile or mktemp for creating
341         the directory
342
343     - Updated section 3.3.5 Symbolic Links:
344       + symbolic links referencing compressed files must have the same
345         file extension as the referenced file
346
347     - Updated section 3.3.6 Device files:
348       + /dev/tty* serial devices should be used instead of /dev/cu*
349
350     - Updated section 3.4.2 Writing the scripts [in /etc/init.d]:
351       + all /etc/init.d scripts have to provide the following options:
352         start, stop, restart, force-reload
353       + the reload option is optional and must never stop and restart
354         the service
355
356     - Updated section 3.5 Cron jobs:
357       + cron jobs that need to be executed more often than daily should
358         be installed into /etc/cron.d
359
360     - Updated section 3.7 Menus:
361       + removed section about how to register HTML docs to `menu'
362         (the corresponding section in 4.4, Web servers and applications,
363         has been removed in policy 2.2.0.0 already, so this one was
364         obsolete)
365
366     - New section 3.8 Keyboard configuration:
367       + details about how the backspace and delete keys should be
368         handled
369
370     - New section 3.9 Environment variables:
371       + no program must depend on environment variables to get a
372         reasonable default configuration
373
374     - New section 4.6 News system configuration:
375       + /etc/news/organization and /etc/news/server should be supported
376         by all news servers and clients
377
378     - Updated section 4.7 Programs for the X Window System:
379       + programs requiring a non-free Motif library should be provided
380         as foo-smotif and foo-dmotif package
381       + if lesstif works reliably for such program, it should be linked
382         against lesstif and not against a non-free Motif library
383
384     - Updated section 4.9 Games:
385       + games for X Windows have to be installed in /usr/games, just as
386         non-X games
387
388 2.3.0.1, 2.3.0.0                Sep 97
389
390         * new section `4.2 Daemons' including rules for
391           /etc/services, /etc/protocols, /etc/rpc, and /etc/inetd.conf
392
393         * updated section about `Configuration files':
394           packages may not touch other packages' configuration files
395
396         * MUAs and MTAs have to use liblockfile
397
398 2.2.0.0                         Jul 97
399
400         * added section 4.1 `Architecture specification strings':
401           use
402                &lt;arch&gt;-linux
403           where &lt;arch&gt; is one of the following:
404                i386, alpha, arm, m68k, powerpc, sparc.
405
406         * detailed rules for /usr/local
407
408         * user ID's
409
410         * editor/pager policy
411
412         * cron jobs
413
414         * device files
415
416         * don't install shared libraries as executable
417
418         * app-defaults files may not be conffiles
419
420 2.1.3.2, 2.1.3.1, 2.1.3.0       Mar 97
421
422         * two programs with different functionality must not have the
423           same name
424
425         * "Webstandard 3.0"
426
427         * "Standard for Console Messages"
428
429         * Libraries should be compiled with `-D_REENTRANT'
430
431         * Libraries should be stripped with "strip --strip-unneeded"
432
433 2.1.2.2, 2.1.2.1, 2.1.2.0       Nov 96
434
435         * Some changes WRT shared libraries
436
437 2.1.1.0                         Sep 96
438
439         * No hard links in source packages
440
441         * Do not use dpkg-divert or update-alternatives without consultation
442
443         * Shared libraries must be installed stripped
444
445 2.1.0.0                         Aug 96
446
447         * Upstream changelog must be installed too
448 </pre>
449
450     <hr>
451
452   </body>
453 </html>
454
455 <!-- Keep this comment at the end of the file
456 Local variables:
457 mode: sgml
458 sgml-indent-data: t
459 sgml-live-element-indicator: t
460 sgml-set-face: t
461 End:
462 -->