From: Ian Jackson Date: Sat, 31 Aug 1996 19:08:18 +0000 (+0100) Subject: dpkg (1.3.13) unstable; urgency=low (HIGH for building new src X programs) X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6705db97f75e7ade2ae46c0f9ce5c2b847c67a60;p=dpkg dpkg (1.3.13) unstable; urgency=low (HIGH for building new src X programs) * X shared libraries added to shlibs.default (=> `elf-x11r6lib'). * dpkg-source tar invocation fixed so that TAPE env var doesn't break it. * dpkg-source copes better with missing final newline messages from diff. * dpkg-buildpackage usage message fixed: -si is the default. (Bug#4350.) * dpkg-source error message about src dir mismatch typo fixed. (Bug#4349.) * dpkg-source(1) has suggestions for dpkg-buildpackage -r option. * dpkg-source change date fixed. (Bug#4351.) * More developers' keys. * Manual updates, own Standards-Version updated. -- Ian Jackson Sat, 31 Aug 1996 20:08:18 +0100 --- diff --git a/debian/changelog b/debian/changelog index 5b75c0ca..7cb1247c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,27 @@ +dpkg (1.3.13) unstable; urgency=low (HIGH for building new src X programs) + + * X shared libraries added to shlibs.default (=> `elf-x11r6lib'). + * dpkg-source tar invocation fixed so that TAPE env var doesn't break it. + * dpkg-source copes better with missing final newline messages from diff. + + * dpkg-buildpackage usage message fixed: -si is the default. (Bug#4350.) + * dpkg-source error message about src dir mismatch typo fixed. (Bug#4349.) + + * dpkg-source(1) has suggestions for dpkg-buildpackage -r option. + * dpkg-source change date fixed. (Bug#4351.) + * More developers' keys. + * Manual updates, own Standards-Version updated. + + -- Ian Jackson Sat, 31 Aug 1996 20:08:18 +0100 + dpkg (1.3.12) unstable; urgency=medium - * dpkg prints old version number when upgrading. + * dpkg prints old version number when upgrading. (Bug#4340.) * dpkg-deb tries to detect and flag corruption by ASCII download. * dpkg-genchanges and dpkg-buildpackage say what source is included. - * dpkg-buildpackage passes +clearsig=on to PGP (or pgpcommand). + * dpkg-buildpackage passes +clearsig=on to PGP (or pgpcommand). (Bug#4342.) * dpkg-source prints better error for cpio not honouring -0t. * control file Suggests cpio >= 2.4.2, rather than just cpio. diff --git a/debian/control b/debian/control index ee23d843..e6da27bc 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: dpkg Section: base Priority: required Maintainer: Ian Jackson -Standards-Version: 0.2.1.1 +Standards-Version: 2.0.1.0 Package: dpkg Architecture: any diff --git a/debian/shlibs.default.i386 b/debian/shlibs.default.i386 index 602cb89b..ab18adb8 100644 --- a/debian/shlibs.default.i386 +++ b/debian/shlibs.default.i386 @@ -1,2 +1,13 @@ libc 5 libc5 (>= 5.2.18) libncurses 3.0 ncurses3.0 +libICE 6 elf-x11r6lib +libPEX5 6 elf-x11r6lib +libSM 6 elf-x11r6lib +libX11 6 elf-x11r6lib +libXIE 6 elf-x11r6lib +libXaw 6 elf-x11r6lib +libXext 6 elf-x11r6lib +libXi 6 elf-x11r6lib +libXmu 6 elf-x11r6lib +libXt 6 elf-x11r6lib +libXtst 6 elf-x11r6lib diff --git a/debian/shlibs.default.m68k b/debian/shlibs.default.m68k deleted file mode 100644 index 602cb89b..00000000 --- a/debian/shlibs.default.m68k +++ /dev/null @@ -1,2 +0,0 @@ -libc 5 libc5 (>= 5.2.18) -libncurses 3.0 ncurses3.0 diff --git a/debian/shlibs.default.m68k b/debian/shlibs.default.m68k new file mode 120000 index 00000000..bd1befd6 --- /dev/null +++ b/debian/shlibs.default.m68k @@ -0,0 +1 @@ +shlibs.default.i386 \ No newline at end of file diff --git a/doc/changelog b/doc/changelog index 8b618e2c..f66df9ab 100644 --- a/doc/changelog +++ b/doc/changelog @@ -1,3 +1,16 @@ +debian-manuals (2.0.1.0) unstable; + + * varargs.h and libtermcap are obsolete - use stdarg.h and ncurses. + * Shared library link/library ordering corrected (aargh). + * When to byte-compile Elisp files. + * Missing final newlines not represented by dpkg-source. + + * Must post upload announcements to debian-changes. + * Moved some sections into new `configuring and building' chapter. + * Typo fixes. + + -- Ian Jackson Sat, 31 Aug 1996 20:07:22 +0100 + debian-manuals (2.0.0.0) unstable; * Footnote added OK'ing copyrights which require name changes. diff --git a/doc/developer-keys.pgp b/doc/developer-keys.pgp index 4449844e..84587e74 100644 Binary files a/doc/developer-keys.pgp and b/doc/developer-keys.pgp differ diff --git a/doc/policy.sgml b/doc/policy.sgml index b98e11dc..5af5e4ec 100644 --- a/doc/policy.sgml +++ b/doc/policy.sgml @@ -456,12 +456,12 @@ install-info --quiet --section Development Development \ It is a good idea to specify a section for the location of your program; this is done with the /usr/info/dir on -your system and choose the most relevant (or create a new section if -none of the current sections are relevant). Note that the -/usr/info/dir on your +system and choose the most relevant (or create a new section if none +of the current sections are relevant). Note that the You must remove the entries in the pre-removal script: @@ -611,8 +611,8 @@ or need a separate directory for permissions reasons create a directory named /var/log/.

-Make sure that any logfiles are rotated occasionally using so that -they don't grow indefinitely; the best way to do this is to use +Make sure that any logfiles are rotated occasionally so that they +don't grow indefinitely; the best way to do this is to use /etc/cron.daily, /etc/cron.weekly or /etc/cron.monthly script.

@@ -792,51 +792,6 @@ sure that they start with #!/bin/csh and make your package depend on -Compilation options -

- -Generally the following compilation parameters should be used: - -CC = gcc -CFLAGS = -O2 -g -Wall # sane warning options vary between programs -LDFLAGS = # none -install -s # (or use strip on the files in debian/tmp) - -

- -Note that all installed binaries should be stripped, either by using -the debian/tmp but -before the tree is made into a package. -

- -Make sure that you do not link with - -The - -It is up to the package maintainer to decide what compilation options -are best for the package. Certain binaries (such as -computationally-intensive programs) may function better with certain -flags ( - -Please make sure that you use only released versions of shared -libraries to build your packages; otherwise other users will not be -able to run your binaries properly. Producing source packages that -depend on unreleased compilers is also usually a bad idea. - Shared library packages

@@ -854,10 +809,10 @@ is the major number of the library. and -If you prefer only to support one development version time you may -name the development package Games +

+ +The permissions on /var/lib/games are 755 + +Each game decides on its own security policy. +

+ +Games which require protected, privileged access to high-score files, +savegames, &c, must be made set-If an attacker can subvert any set-user-id game +they can overwrite the executable of any other, causing other players +of these cames to run a trojan. With a set-group-id game the attacker +only gets access to less important game data, and if they can get at +the other players' accounts at all it will take considerably more +effort. +

+ +Some packages, for example some fortune cookie programs, are +configured by the upstream authors to install with their data files or +other static information made unreadable so that they can only be +accessed through set-id programs provided. Do not do this in a Debian +package: anyone can download the Allocating package-specific users and groups +

+ +If you need to create a new user or group for your package there are +two possibilities. Firstly, you may need to make some files in the +binary package be owned by this user or group, or you may need to +compile the user or group id (rather than just the name) into the +binary (though this latter should be avoided if possible). In this +case you need a statically allocated id. +

+ +You must ask for a user or group id from the base system maintainer, +and must not release the package until you have been allocated one. +Once you have been allocated one you must make the package depend +on a version of the base system with the id present in +/etc/passwd or /etc/group, or alternatively arrange +for your package to create the user or group itself with the correct +id (using + +On the other hand, the program may able to determine the uid or gid +from the group name at runtime, so that a dynamic id can be used. In +this case you must choose an appropriate user or group name, +discussing this on + +Note that changing the numeric value of an id associated with a name +is very difficult, and involves searching the filesystem for all +appropriate files. You need to think carefully whether a static or +dynamic id is required, since changing your mind later will cause +problems. + + +Installation of Emacs-lisp files +

+ +Generally, if a package includes an elisp helper file, it probably +doesn't need to be byte-compiled. If the package is Configuring and building the programs in the package + +Compilation options +

+ +Generally the following compilation parameters should be used: + +CC = gcc +CFLAGS = -O2 -g -Wall # sane warning options vary between programs +LDFLAGS = # none +install -s # (or use strip on the files in debian/tmp) + +

+ +Note that all installed binaries should be stripped, either by using +the debian/tmp but +before the tree is made into a package. +

+ +Make sure that you do not link with + +The + +It is up to the package maintainer to decide what compilation options +are best for the package. Certain binaries (such as +computationally-intensive programs) may function better with certain +flags ( + +Please make sure that you use only released versions of shared +libraries to build your packages; otherwise other users will not be +able to run your binaries properly. Producing source packages that +depend on unreleased compilers is also usually a bad idea. + + +Packages which can use the X shared libraries +

+ +Some programs can be configured with or without support for X Windows. +Typically these binaries produced when configured for X will need the +X shared libraries to run. +

+ +Such programs should be configured + +Do not create two versions (one with X support and one without) of +your package. + + Mail processing on Debian systems

@@ -1004,94 +1105,20 @@ Mail name [`Packages which can use the X shared libraries -

- -Some programs can be configured with or without support for X Windows. -Typically these binaries produced when configured for X will need the -X shared libraries to run. +Obsolete constructs and libraries: varargs and libtermcap

-Such programs should be configured -Do not create two versions (one with X support and one without) of -your package. +Debian packages should be ported to Games -

- -The permissions on /var/lib/games are 755 - -Each game decides on its own security policy. -

- -Games which require protected, privileged access to high-score files, -savegames, &c, must be made set-If an attacker can subvert any set-user-id game -they can overwrite the executable of any other, causing other players -of these cames to run a trojan. With a set-group-id game the attacker -only gets access to less important game data, and if they can get at -the other players' accounts at all it will take considerably more -effort. -

- -Some packages, for example some fortune cookie programs, are -configured by the upstream authors to install with their data files or -other static information made unreadable so that they can only be -accessed through set-id programs provided. Do not do this in a Debian -package: anyone can download the Allocating package-specific users and groups -

- -If you need to create a new user or group for your package there are -two possibilities. Firstly, you may need to make some files in the -binary package be owned by this user or group, or you may need to -compile the user or group id (rather than just the name) into the -binary (though this latter should be avoided if possible). In this -case you need a statically allocated id. -

- -You must ask for a user or group id from the base system maintainer, -and must not release the package until you have been allocated one. -Once you have been allocated one you must make the package depend -on a version of the base system with the id present in -/etc/passwd or /etc/group, or alternatively arrange -for your package to create the user or group itself with the correct -id (using - -On the other hand, the program may able to determine the uid or gid -from the group name at runtime, so that a dynamic id can be used. In -this case you must choose an appropriate user or group name, -discussing this on - -Note that changing the numeric value of an id associated with a name -is very difficult, and involves searching the filesystem for all -appropriate files. You need to think carefully whether a static or -dynamic id is required, since changing your mind later will cause -problems. - -Source package +Source packaging, changelogs, etc. Releases of packages by other than the usual Debian maintainer

@@ -1266,6 +1293,7 @@ forbidden then please contact us so we can make special arrangements. This does not apply in France, where I believe only encryption and not signing is forbidden. + When you have a package to upload

@@ -1294,6 +1322,7 @@ upload queue in Europe on /pub/debian/private/project/README.how-to-upload. + Upload handling - @@ -1345,6 +1374,22 @@ identical with the one already in the archive. If there is some reason why this is not the case then the new version of the original source should be uploaded, possibly by using the Upload handling - announcements +

+ +When a package is uploaded an announcement should be posted to + + +If a package is released with The Debian mailing lists

diff --git a/doc/policy.text b/doc/policy.text index e28c5076..a52d99b2 100644 --- a/doc/policy.text +++ b/doc/policy.text @@ -2,7 +2,7 @@ Debian policy manual -------------------- Ian Jackson - version 0.2.1.1 (dpkg 1.3.10), 25 August 1996 + version 2.0.0.0 (dpkg 1.3.12), 31 August 1996 0.1 Abstract ------------ @@ -27,29 +27,34 @@ 3.4. Configuration files 3.5. Maintainer scripts 3.6. Scripts in general - 3.7. Compilation options - 3.8. Shared library packages - 3.9. Application configuration files, dotfiles and `/etc/skel' - 3.10. Mail processing on Debian systems - 3.11. Packages which can use the X shared libraries - 3.12. Games - 3.13. Allocating package-specific users and groups - - 4. Source package - 4.1. Releases of packages by other than the usual Debian + 3.7. Shared library packages + 3.8. Application configuration files, dotfiles and `/etc/skel' + 3.9. Games + 3.10. Allocating package-specific users and groups + 3.11. Installation of Emacs-lisp files + + 4. Configuring and building the programs in the package + 4.1. Compilation options + 4.2. Packages which can use the X shared libraries + 4.3. Mail processing on Debian systems + 4.4. Obsolete constructs and libraries: varargs and libtermcap + + 5. Source packaging, changelogs, etc. + 5.1. Releases of packages by other than the usual Debian maintainer - 4.2. Standards conformance and `Standards-Version' - 4.3. Documentation and the `changelog' - 4.4. Changes to the upstream sources - 4.5. Error trapping in makefiles + 5.2. Standards conformance and `Standards-Version' + 5.3. Documentation and the `changelog' + 5.4. Changes to the upstream sources + 5.5. Error trapping in makefiles - 5. Procedure - how to participate in the Debian project - 5.1. Before you start work on a package - 5.2. When you have a package to upload - 5.3. Upload handling - `.changes' files - 5.4. The Debian mailing lists + 6. Procedure - how to participate in the Debian project + 6.1. Before you start work on a package + 6.2. When you have a package to upload + 6.3. Upload handling - `.changes' files + 6.4. Upload handling - announcements + 6.5. The Debian mailing lists - 6. Conversion procedure from old source packages + 7. Conversion procedure from old source packages 0.3. Copyright Notice @@ -101,8 +106,8 @@ All packages in the Debian distribution proper must be freely useable, modifiable and redistributable in both source and binary form.[1] It must be possible for anyone to distribute and use modified source code - and their own own compiled binaries, at least when they do so as part - of a Debian distribution. + and their own compiled binaries, at least when they do so as part of a + Debian distribution. [1] It is OK for there to be a requirement that modified versions carry a warning, or that they be released with a different name @@ -414,8 +419,8 @@ It is a good idea to specify a section for the location of your program; this is done with the `--section' switch. To determine which - section to use, you should use look at `/usr/info/dir' on your system - and choose the most relevant (or create a new section if none of the + section to use, you should look at `/usr/info/dir' on your system and + choose the most relevant (or create a new section if none of the current sections are relevant). Note that the `--section' flag takes two arguments; the first is a regular expression to match (case-insensitively) against an existing section, the second is used @@ -543,9 +548,9 @@ (`/var/log' is writeable only by `root'), you should usually create a directory named `/var/log/'. - Make sure that any logfiles are rotated occasionally using so that - they don't grow indefinitely; the best way to do this is to use - savelog program in an `/etc/cron.daily', `/etc/cron.weekly' or + Make sure that any logfiles are rotated occasionally so that they + don't grow indefinitely; the best way to do this is to use savelog + program in an `/etc/cron.daily', `/etc/cron.weekly' or `/etc/cron.monthly' script. Make sure that any logfiles are removed when the package is purged @@ -701,46 +706,7 @@ -3.7. Compilation options ------------------------- - - Generally the following compilation parameters should be used: - CC = gcc - CFLAGS = -O2 -g -Wall # sane warning options vary between programs - LDFLAGS = # none - install -s # (or use strip on the files in debian/tmp) - - Note that all installed binaries should be stripped, either by using - the `-s' flag to install, or by calling strip on the binaries after - they have been copied into `debian/tmp' but before the tree is made - into a package. - - Make sure that you do not link with `-g', as this makes a.out - compilers produce huge statically linked binaries. The `-g' flag is - useful on compilation so that you have available a full set of - debugging symbols in your built source tree, in case anyone should - file a bug report involving (for example) a core dump. - - The `-N' flag should not be used. On a.out systems it may have been - useful for some very small binaries, but for ELF it has no good - effect. - - It is up to the package maintainer to decide what compilation options - are best for the package. Certain binaries (such as - computationally-intensive programs) may function better with certain - flags (`-O3', for example); feel free to use them. Please use good - judgment here. Don't use flags for the sake of it; only use them if - there is good reason to do so. Feel free to override the upstream - author's ideas about which compilation options are best - they are - often inappropriate for our environment. - - Please make sure that you use only released versions of shared - libraries to build your packages; otherwise other users will not be - able to run your binaries properly. Producing source packages that - depend on unreleased compilers is also usually a bad idea. - - -3.8. Shared library packages +3.7. Shared library packages ---------------------------- Packages involving shared libraries should be split up into several @@ -756,10 +722,10 @@ the program. Usually the is the major number of the library. - If you prefer only to support one development version time you may - name the development package `-dev'; otherwise you may - wish to use dpkg's conflicts mechanism to ensure that the user only - installs one development version at a time (after all, different + If you prefer only to support one development version at a time you + may name the development package `-dev'; otherwise you + may wish to use dpkg's conflicts mechanism to ensure that the user + only installs one development version at a time (after all, different development versions are likely to have the same header files in them, causing a filename clash if both are installed). Typically the development version will also need an exact version dependency on the @@ -792,7 +758,7 @@ use the library. -3.9. Application configuration files, dotfiles and `/etc/skel' +3.8. Application configuration files, dotfiles and `/etc/skel' -------------------------------------------------------------- Files in `/etc/skel' will automatically be copied into new user @@ -825,8 +791,145 @@ other than that done (semi-)automatically by the postinst script. -3.10. Mail processing on Debian systems ---------------------------------------- +3.9. Games +---------- + + The permissions on /var/lib/games are 755 `root.root'. + + Each game decides on its own security policy. + + Games which require protected, privileged access to high-score files, + savegames, &c, must be made set-*group*-id (mode 2755) and owned by + `root.games', and use files and directories with appropriate + permissions (770 `root.games', for example). They must *not* be made + set-*user*-id, as this causes security problems.[1] + + [1] If an attacker can subvert any set-user-id game they can + overwrite the executable of any other, causing other players of + these cames to run a trojan. With a set-group-id game the + attacker only gets access to less important game data, and if + they can get at the other players' accounts at all it will take + considerably more effort. + + Some packages, for example some fortune cookie programs, are + configured by the upstream authors to install with their data files or + other static information made unreadable so that they can only be + accessed through set-id programs provided. Do not do this in a Debian + package: anyone can download the `.deb' file and read the data from + it, so there is no point making the files unreadable. Not making the + files unreadable also means that you don't have to make so many + programs set-id, which reduces the risk of a security hole. + + +3.10. Allocating package-specific users and groups +-------------------------------------------------- + + If you need to create a new user or group for your package there are + two possibilities. Firstly, you may need to make some files in the + binary package be owned by this user or group, or you may need to + compile the user or group id (rather than just the name) into the + binary (though this latter should be avoided if possible). In this + case you need a statically allocated id. + + You must ask for a user or group id from the base system maintainer, + and must not release the package until you have been allocated one. + Once you have been allocated one you must make the package depend on a + version of the base system with the id present in `/etc/passwd' or + `/etc/group', or alternatively arrange for your package to create the + user or group itself with the correct id (using `adduser') in its pre- + or post-installation script (the latter is to be preferred if it is + possible). + + On the other hand, the program may able to determine the uid or gid + from the group name at runtime, so that a dynamic id can be used. In + this case you must choose an appropriate user or group name, + discussing this on debian-devel and checking with the base system + maintainer that it is unique and that they do not wish you to use a + statically allocated id instead. When this has been checked you must + arrange for your package to create the user or group if necessary + using adduser in the pre- or post-installation script (again, the + latter is to be preferred if it is possible). + + Note that changing the numeric value of an id associated with a name + is very difficult, and involves searching the filesystem for all + appropriate files. You need to think carefully whether a static or + dynamic id is required, since changing your mind later will cause + problems. + + +3.11. Installation of Emacs-lisp files +-------------------------------------- + + Generally, if a package includes an elisp helper file, it probably + doesn't need to be byte-compiled. If the package is *written* + primarily in emacs, it is probably complex enough that speed is an + issue and should be byte compiled. + + +------------------------------------------------------------------------------- + + +4. Configuring and building the programs in the package +-------------------------------------------------------- + + +4.1. Compilation options +------------------------ + + Generally the following compilation parameters should be used: + CC = gcc + CFLAGS = -O2 -g -Wall # sane warning options vary between programs + LDFLAGS = # none + install -s # (or use strip on the files in debian/tmp) + + Note that all installed binaries should be stripped, either by using + the `-s' flag to install, or by calling strip on the binaries after + they have been copied into `debian/tmp' but before the tree is made + into a package. + + Make sure that you do not link with `-g', as this makes a.out + compilers produce huge statically linked binaries. The `-g' flag is + useful on compilation so that you have available a full set of + debugging symbols in your built source tree, in case anyone should + file a bug report involving (for example) a core dump. + + The `-N' flag should not be used. On a.out systems it may have been + useful for some very small binaries, but for ELF it has no good + effect. + + It is up to the package maintainer to decide what compilation options + are best for the package. Certain binaries (such as + computationally-intensive programs) may function better with certain + flags (`-O3', for example); feel free to use them. Please use good + judgment here. Don't use flags for the sake of it; only use them if + there is good reason to do so. Feel free to override the upstream + author's ideas about which compilation options are best - they are + often inappropriate for our environment. + + Please make sure that you use only released versions of shared + libraries to build your packages; otherwise other users will not be + able to run your binaries properly. Producing source packages that + depend on unreleased compilers is also usually a bad idea. + + +4.2. Packages which can use the X shared libraries +-------------------------------------------------- + + Some programs can be configured with or without support for X Windows. + Typically these binaries produced when configured for X will need the + X shared libraries to run. + + Such programs should be configured *with* X support, and should + declare a dependency on `elf-x11r6lib' (for the X11R6 libraries). + Users who wish to use the program can install just the relatively + small `xlib' package, and do not need to install the whole of X. + + Do not create two versions (one with X support and one without) of + your package. + + +4.3. Mail processing on Debian systems +-------------------------------------- Debian packages which process electronic mail, whether mail-user-agents (MUAs) or mail-transport-agents (MTAs), *must* make @@ -887,96 +990,26 @@ Mail name [`']: user even if it finds this file exists. -3.11. Packages which can use the X shared libraries ---------------------------------------------------- - - Some programs can be configured with or without support for X Windows. - Typically these binaries produced when configured for X will need the - X shared libraries to run. - - Such programs should be configured *with* X support, and should - declare a dependency on `elf-x11r6lib' (for the X11R6 libraries). - Users who wish to use the program can install just the relatively - small `xlib' package, and do not need to install the whole of X. - - Do not create two versions (one with X support and one without) of - your package. - - -3.12. Games ------------ - - The permissions on /var/lib/games are 755 `root.root'. - - Each game decides on its own security policy. - - Games which require protected, privileged access to high-score files, - savegames, &c, must be made set-*group*-id (mode 2755) and owned by - `root.games', and use files and directories with appropriate - permissions (770 `root.games', for example). They must *not* be made - set-*user*-id, as this causes security problems.[1] - - [1] If an attacker can subvert any set-user-id game they can - overwrite the executable of any other, causing other players of - these cames to run a trojan. With a set-group-id game the - attacker only gets access to less important game data, and if - they can get at the other players' accounts at all it will take - considerably more effort. - - Some packages, for example some fortune cookie programs, are - configured by the upstream authors to install with their data files or - other static information made unreadable so that they can only be - accessed through set-id programs provided. Do not do this in a Debian - package: anyone can download the `.deb' file and read the data from - it, so there is no point making the files unreadable. Not making the - files unreadable also means that you don't have to make so many - programs set-id, which reduces the risk of a security hole. - - -3.13. Allocating package-specific users and groups --------------------------------------------------- - - If you need to create a new user or group for your package there are - two possibilities. Firstly, you may need to make some files in the - binary package be owned by this user or group, or you may need to - compile the user or group id (rather than just the name) into the - binary (though this latter should be avoided if possible). In this - case you need a statically allocated id. - - You must ask for a user or group id from the base system maintainer, - and must not release the package until you have been allocated one. - Once you have been allocated one you must make the package depend on a - version of the base system with the id present in `/etc/passwd' or - `/etc/group', or alternatively arrange for your package to create the - user or group itself with the correct id (using `adduser') in its pre- - or post-installation script (the latter is to be preferred if it is - possible). +4.4. Obsolete constructs and libraries: varargs and libtermcap +-------------------------------------------------------------- - On the other hand, the program may able to determine the uid or gid - from the group name at runtime, so that a dynamic id can be used. In - this case you must choose an appropriate user or group name, - discussing this on debian-devel and checking with the base system - maintainer that it is unique and that they do not wish you to use a - statically allocated id instead. When this has been checked you must - arrange for your package to create the user or group if necessary - using adduser in the pre- or post-installation script (again, the - latter is to be preferred if it is possible). + is provided to support end-users compiling very old + software; libtermcap is provided to support the execution of software + which has been linked against it (either old programs or those such as + Netscape which are only available in binary form). - Note that changing the numeric value of an id associated with a name - is very difficult, and involves searching the filesystem for all - appropriate files. You need to think carefully whether a static or - dynamic id is required, since changing your mind later will cause - problems. + Debian packages should be ported to and ncurses when they + are built. ------------------------------------------------------------------------------- -4. Source package ------------------- +5. Source packaging, changelogs, etc. +-------------------------------------- -4.1. Releases of packages by other than the usual Debian maintainer +5.1. Releases of packages by other than the usual Debian maintainer ------------------------------------------------------------------- Under certain circumstances it is necessary for someone other than the @@ -1008,7 +1041,7 @@ Mail name [`']: numbering at `1'. -4.2. Standards conformance and `Standards-Version' +5.2. Standards conformance and `Standards-Version' -------------------------------------------------- You should specify the most recent version of the packaging standards @@ -1021,7 +1054,7 @@ Mail name [`']: The value corresponds to a version of the Debian manuals, as can be found on the title page or page headers and footers (depending on the format). The value for this version of the manuals and packaging - standards is `0.2.1.1'. + standards is `2.0.0.0'. The version number has four components - major and minor number and major and minor patchlevel. When the standards change in a way that @@ -1042,7 +1075,7 @@ Mail name [`']: `Standards-Version' source package field and release it. -4.3. Documentation and the `changelog' +5.3. Documentation and the `changelog' -------------------------------------- Document your changes and updates to the source package properly in @@ -1061,7 +1094,7 @@ Mail name [`']: distributed under the GNU GPL, just as the rest of dpkg is. -4.4. Changes to the upstream sources +5.4. Changes to the upstream sources ------------------------------------ If you need to edit a Makefile where GNU-style configure scripts are @@ -1085,7 +1118,7 @@ Mail name [`']: wherever is appropriate. -4.5. Error trapping in makefiles +5.5. Error trapping in makefiles -------------------------------- When make invokes a command in a makefile (including your package's @@ -1108,11 +1141,11 @@ Mail name [`']: ------------------------------------------------------------------------------- -5. Procedure - how to participate in the Debian project +6. Procedure - how to participate in the Debian project -------------------------------------------------------- -5.1. Before you start work on a package +6.1. Before you start work on a package --------------------------------------- So, you've read all the documentation, you understand what everything @@ -1140,7 +1173,7 @@ Mail name [`']: signing is forbidden. -5.2. When you have a package to upload +6.2. When you have a package to upload -------------------------------------- When you have your package ready to be uploaded you must send a @@ -1164,7 +1197,7 @@ Mail name [`']: /pub/debian/private/project/README.how-to-upload. -5.3. Upload handling - `.changes' files +6.3. Upload handling - `.changes' files --------------------------------------- When a package is uploaded to the Debian FTP archive, it must be @@ -1209,7 +1242,21 @@ Mail name [`']: possibly by using the `-sa' flag. -5.4. The Debian mailing lists +6.4. Upload handling - announcements +------------------------------------ + + When a package is uploaded an announcement should be posted to + `debian-changes'. The announcement should give the (source) package + name and version number, and a very short summary of the changes, in + the Subject field, and should contain the PGP-signed `.changes' file. + Some additional explanatory text may be added before the start of the + `.changes' file. + + If a package is released with `Distribution: experimental' the + announcement should be posted to `debian-devel' instead. + + +6.5. The Debian mailing lists ----------------------------- The mailing list server is at `lists.debian.org'. Mail @@ -1231,7 +1278,7 @@ Mail name [`']: ------------------------------------------------------------------------------- -6. Conversion procedure from old source packages +7. Conversion procedure from old source packages ------------------------------------------------ This is a brief summary of the procedure for converting a @@ -1270,7 +1317,7 @@ Mail name [`']: package fields. * Add the `Source' field. * Add the `Standards-Version' field. The current value is - `0.2.1.1'. + `2.0.0.0'. * Change the `Architecture' field for each package to `any', `all' or whatever. If there isn't an `Architecture' field add one. @@ -1371,6 +1418,6 @@ Mail name [`']: Debian policy manual - Ian Jackson - version 0.2.1.1 (dpkg 1.3.10), - 25 August 1996 + Ian Jackson - version 2.0.0.0 (dpkg 1.3.12), + 31 August 1996 diff --git a/doc/programmer.sgml b/doc/programmer.sgml index dd87689f..8489307e 100644 --- a/doc/programmer.sgml +++ b/doc/programmer.sgml @@ -1177,6 +1177,8 @@ anyway are: file is not treated specially - it is seen as the removal of the old file (which generates a warning, but is otherwise ignored), and the creation of the new one. +Changed text files which are missing the usual final newline +(either in the original or the modified source tree). Changes which are not represented, but which are not detected by Secondly, your package should include the symlink that /usr/lib/libgdbm.so.1 -to debian/tmp/.../lib directory before installing the library -when you build the package. +would create for the shared libraries. For example, the +/usr/lib/libgdbm.so.1 to debian/tmp/.../lib +directory before creating the symlink, by putting the commands in the +debian/rules in the appropriate order.

If you do the above your package does not need to call -m maintainer for release is } only passed -C changes are described in } to dpkg- -si (default) src includes orig for rev. 0 or 1 } genchanges - -sa uploaded src includes orig (default) } + -sa uploaded src always includes orig } -sd uploaded src is diff and .dsc only } -h print this message END diff --git a/scripts/dpkg-source.1 b/scripts/dpkg-source.1 index 67f140c9..0ff11270 100644 --- a/scripts/dpkg-source.1 +++ b/scripts/dpkg-source.1 @@ -1,6 +1,6 @@ .\" Hey, Emacs! This is an -*- nroff -*- source file. .\" Authors: Ian Jackson -.TH DPKG\-SOURCE 1 "7th Auguest" "Debian Project" "Debian GNU/Linux manual" +.TH DPKG\-SOURCE 1 "7th August" "Debian Project" "Debian GNU/Linux manual" .SH NAME dpkg\-source, dpkg\-gencontrol, dpkg\-shlibdeps, dpkg\-genchanges, dpkg\-buildpackage, dpkg\-distaddfile, dpkg\-parsechangelog @@ -499,6 +499,16 @@ and will get as arguments the name of the real command to run and the arguments it should take. .I gain-root-command should not contain spaces or any other shell metacharacters. +.I gain-root-command +might typically be +.BR sudo ", " super " or " really . +.B su +is not suitable, since it requires a +.B -c +option to run a command and even then it can only invoke the user's +shell with +.B -c +instead of passing arguments individually to the command to be run. .TP .BI -p pgp-command When @@ -678,6 +688,10 @@ file will be passed through variable substitution twice. This should not matter, since .BR $ ", " { " and " } are not legal in package names or version numbers. + +It should be possible to specify spaces and shell metacharacters in +and initial arguments for +.IR gain-root-command " and " pgp-command . .SH SEE ALSO .IR "dpkg programmers' manual" , .br diff --git a/scripts/dpkg-source.pl b/scripts/dpkg-source.pl index 5246a224..09f42c91 100644 --- a/scripts/dpkg-source.pl +++ b/scripts/dpkg-source.pl @@ -242,7 +242,7 @@ if ($opmode eq 'build') { $tarname= $origtargz; $tarname eq "$basename.orig.tar.gz" || - &warn(".orig.tar.gz name $tarname is not -". + &warn(".orig.tar.gz name $tarname is not _". ".orig.tar.gz (wanted $basename.orig.tar.gz)"); } else { $tardirbase= $dirbase; $tardirname= $dirname; @@ -272,7 +272,7 @@ if ($opmode eq 'build') { #system('pwd && ls'); open(STDOUT,">&GZIP") || &syserr("reopen gzip for tar"); # FIXME: put `--' argument back when tar is fixed - exec('tar','-cO',$tardirname); &syserr("exec tar"); + exec('tar','-cf','-',$tardirname); &syserr("exec tar"); } close(GZIP); &reapgzip; @@ -366,9 +366,12 @@ if ($opmode eq 'build') { next file; } elsif (m/^[-+\@ ]/) { $difflinefound=1; + } elsif (m/^\\ No newline at end of file/) { + &warn("file $fn has no final newline ". + "(either original or modified version)"); } else { s/\n$//; - &internerr("unknown line from diff -u on $dir/$fn: \`$_'"); + &internerr("unknown line from diff -u on $fn: \`$_'"); } print(GZIP $_) || &syserr("failed to write to gzip"); }