From: Manoj Srivastava
The material presented represents an interface to
the packaging system that is mandated for use, and
is used by, a significant number of packages, and
@@ -90,16 +89,13 @@
compatibility with these interface
definitions. (Control file and changelog file
formats are examples.)
-
If there are a number of technically viable choices
that can be made, but one needs to select one of
these options for inter-operability. The version
number format is one example.
-
The Debian GNU/Linux system is maintained and distributed as a collection of packages. Since there are so many of @@ -240,6 +239,7 @@ sections and given priorities to simplify the handling of them.
+
The effort of the Debian project is to build a free operating
system, but not every package we want to make accessible is
@@ -271,17 +271,15 @@
to allow us to make as much software available as we
- can, to allow us to encourage everyone to write free
- software, and to allow us to make it easy for people to produce
+ to allow us to make it easy for people to produce
CD-ROMs of our system without violating any licenses,
- import/export restrictions, or any other laws.
The license of a Debian component may not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license may not require a royalty or other fee for such sale. -
The program must include source code, and must allow distribution in source code as well as compiled form. -
The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software. -
The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" @@ -335,41 +326,33 @@ original software. (This is a compromise. The Debian Project encourages all authors to not restrict any files, source or binary, from being modified.) -
The license must not discriminate against any person or group of persons. -
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research. -
The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties. -
The rights attached to the program must not depend on the program's being part of a Debian system. If the program is extracted from Debian and used or @@ -378,26 +361,21 @@ the program is redistributed must have the same rights as those that are granted in conjunction with the Debian system. -
The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be free software. -
The "GPL," "BSD," and "Artistic" licenses are examples of licenses that we consider free. -
Every package in main and non-US/main must comply with the DFSG (Debian Free Software - Guidelines).
+ Guidelines). +
In addition, the packages in main
must not require a package outside of main
for compilation or execution (thus, the package must
not declare a "Depends", "Recommends", or
"Build-Depends" relationship on a non-main
package),
-
must not be so buggy that we refuse to support them,
and
-
must meet all policy requirements presented in this
manual.
-
Similarly, the packages in non-US/main
must not require a package outside of main
or non-US/main for compilation or
execution,
-
must not be so buggy that we refuse to support them,
-
must meet all policy requirements presented in this
manual.
-
Every package in contrib and
non-US/contrib must comply with the DFSG.
@@ -471,16 +442,12 @@
non-US/contrib
must not be so buggy that we refuse to support them,
and
-
must meet all policy requirements presented in this
manual.
-
free packages which require contrib, non-free packages or packages which are not in our archive at all for compilation or execution, and -
wrapper packages or other sorts of free accessories for non-free programs. -
Packages must be placed in non-free or non-US/non-free if they are not compliant with the DFSG or are encumbered by patents or other legal issues that make their distribution problematic.
+
In addition, the packages in non-free and
non-US/non-free
must not be so buggy that we refuse to support them,
and
-
must meet all policy requirements presented in this
- manual that it is possible for them to meet.
+ manual that it is possible for them to meet.
+
Non-free programs with cryptographic program code need to be stored on the non-us server because of export restrictions of the U.S.
+Programs which use patented algorithms that have a restrictied license also need to be stored on "non-us", since that is located in a country where it is not allowed to patent algorithms.
+
A package depends on another package which is distributed
via the non-us server has to be stored on the non-us
@@ -580,26 +544,18 @@
anywhere in our archives if
their use or distribution would break a law,
-
there is an ethical conflict in their distribution or
use,
-
we would have to sign a license for them, or
-
their distribution would conflict with other project
policies.
-
subsection if the package is in the main section, -
section/subsection if the package is in the contrib or non-free section, and -
non-US, non-US/contrib or non-US/non-free if the package is in non-US/main, non-US/contrib or non-US/non-free respectively. -
Packages which are necessary for the proper functioning of the system. You must not remove these packages or your system may become totally broken and @@ -728,22 +677,19 @@ put things back. Systems with only the required packages are probably unusable, but they do have enough functionality to allow the - sysadmin to boot and install more software.
+ sysadmin to boot and install more software.
Important programs, including those which one would
expect to find on any Unix-like system. If the
expectation is that an experienced Unix person who
found it missing would say "What on earth is going on,
where is
This is an important criterion because we are
trying to produce, amongst other things, a free
Unix.
-
These packages provide a reasonably small but not too limited character-mode system. This is what will be installed by default if the user doesn't select anything - else. It doesn't include many large applications.
+ else. It doesn't include many large applications.(In a sense everything that isn't required is optional, but that's not what is meant here.) This is all the software that you might reasonably want to @@ -772,19 +716,17 @@ and includes the X Window System, a full TeX distribution, and many applications. Note that optional packages should not conflict with each other. -
This contains all packages that conflict with others with required, important, standard or optional priorities, or are only likely to be useful if you already know what they are or have specialised requirements. -
Packages must not depend on packages with lower priority @@ -1137,6 +1079,7 @@ installation, elimination of redundant prompting, consistency of user interface, etc.
+
With this increasing number of packages using
Rationale:
This allows maintaining the list separately
+ This allows maintaining the list separately
from the policy documents (the list does not
need the kind of control that the policy
documents do).
-
Having a separate package allows one to install
the build-essential packages on a machine, as
well as allowing other packages such as tasks to
require installation of the build-essential
packages using the depends relation.
-
The separate package allows bug reports against
the list to be categorized separately from
the policy management process in the BTS.
-
This is the current "released" version of Debian GNU/Linux. Once the distribution is stable only security fixes and other @@ -1606,24 +1543,20 @@ Package: libc6 made to this distribution, the release number is increased (for example: 2.2r1 becomes 2.2r2 then 2.2r3, etc). -
This distribution value refers to the developmental part of the Debian distribution tree. New packages, new upstream versions of packages and bug fixes go into the unstable directory tree. Download from this distribution at your own risk. -
This distribution value refers to the testing part of the Debian distribution tree. It receives its packages from the @@ -1633,12 +1566,10 @@ Package: libc6 than unstable, but still risky. It is not possible to upload packages directly to testing. -
From time to time, the testing distribution enters a state of "code-freeze" in anticipation of release as a stable @@ -1646,12 +1577,10 @@ Package: libc6 fixes for existing or newly-discovered bugs will be allowed. The exact details of this stage are determined by the Release Manager. -
The packages with this distribution value are deemed by their maintainers to be high risk. Oftentimes they represent early beta or @@ -1660,7 +1589,6 @@ Package: libc6 ready to be a part of the other parts of the Debian distribution tree. Download at your own risk. -
@@ -2114,7 +2043,8 @@ Package: libc6
The architectures we build on and build for are determined
by DEB_*_ARCH (the Debian architecture) DEB_*_GNU_TYPE (the GNU style architecture
- specification string) DEB_*_GNU_CPU (the CPU part of
- DEB_*_GNU_TYPE) DEB_*_GNU_SYSTEM (the System part of
- DEB_*_GNU_TYPE)
where * is either BUILD for specification of
the build machine or HOST for specification of the
@@ -2654,118 +2584,109 @@ Package: libc6
new-preinst install new-preinst install
- old-version new-preinst upgrade
- old-version old-preinst abort-upgrade
+ old-preinst abort-upgrade
new-version
-
postinst configure
- most-recently-configured-version old-postinst abort-upgrade
- new-version conflictor's-postinst abort-remove
+ conflictor's-postinst abort-remove
in-favour package
- new-version
deconfigured's-postinst
abort-deconfigure in-favour
failed-install-package version
removing conflicting-package
version
-
prerm remove old-prerm upgrade
- new-version new-prerm failed-upgrade
- old-version conflictor's-prerm remove
+ conflictor's-prerm remove
in-favour package
- new-version
deconfigured's-prerm deconfigure
in-favour package-being-installed
version removing
conflicting-package
version
-
postrm remove postrm purge
old-postrm upgrade
- new-version new-postrm failed-upgrade
- old-version new-postrm abort-install new-postrm abort-install
- old-version new-postrm abort-upgrade
- old-version
disappearer's-postrm disappear
overwriter
- overwriter-version
The procedure on installation/upgrade/overwrite/disappear
@@ -2779,17 +2700,14 @@ Package: libc6
If a version of the package is already
- installed, call
+ If a version of the package is already installed, call
If the script runs but exits with a non-zero
exit status, If a "conflicting" package is being removed at the same time:
+ If a "conflicting" package is being removed at the same time:
If any packages depended on that conflicting
package and --auto-deconfigure is
specified, call, for each such package:
@@ -2826,10 +2742,10 @@ Package: libc6
The deconfigured packages are marked as
requiring configuration, so that if
--install is used they will be
- configured again if possible. To prepare for removal of the conflicting package, call:
+ To prepare for removal of the conflicting package, call:
If the package is being upgraded, call:
+ If the package is being upgraded, call:
Otherwise, if the package had some configuration
files from a previous version installed (i.e., it
is in the "configuration files only" state):
Otherwise (i.e., the package was completely purged):
+ Otherwise (i.e., the package was completely purged):
The new package's files are unpacked, overwriting any
@@ -2918,10 +2830,8 @@ Package: libc6
lead to "missing" programs if, for example, a package
is installed which overwrites a file from another
package, and is then removed again.
Part of the problem is due to what is arguably a
bug in
If the package is being upgraded, call
+ If the package is being upgraded, call
If this fails,
This is the point of no return - if
Any files which were in the old version of the package - but not in the new are removed.
+ but not in the new are removed.The new file list replaces the old.
+ The new file list replaces the old.The new maintainer scripts replace the old.
+ The new maintainer scripts replace the old.Any packages all of whose files have been overwritten during the
- installation, and which aren't required for
+ Any packages all of whose files have been overwritten
+ during the installation, and which aren't required for
dependencies, are considered to have been removed.
For each such package
The package's maintainer scripts are removed.
-
It is noted in the status database as being in a
sane state, namely not installed (any conffiles
it may have are ignored, rather than being
@@ -3006,24 +2915,20 @@ Package: libc6
called, because
Any files in the package we're unpacking that are also listed in the file lists of other packages are removed from those lists. (This will lobotomize the file list of the "conflicting" package if there is one.) -
The backup files made during installation, above, are deleted. -
If there was a conflicting package we go and do the removal actions (described below), starting with the removal of the conflicting package's files (any that are also in the package being installed have already been removed from the conflicting package's file list, and so do not get removed now). -
The package's files are removed (except conffiles).
-
@@ -3114,26 +3011,25 @@ Package: libc6
that packages which have no
The conffiles and any backup files (~-files, #*# files, %-files, .dpkg-{old,new,tmp}, etc.) - are removed.
+ are removed.
The package's file list is removed.
+ The package's file list is removed.These fields all have a uniform syntax. They are a list of @@ -3321,6 +3217,7 @@ Build-Depends: kernel-headers-2.2.10 [!hurd-i386], package to provide a significant amount of functionality.
+
The Depends field should also be used if the
This declares a strong, but not absolute, dependency.
+
+ This declares a strong, but not absolute, dependency.
The Recommends field should list packages
that would be found together with this one in all but
- unusual installations.
This is used to declare that one package may be more useful with one or more others. Using this field tells the packaging system and the user that the listed packages are related to this one and can perhaps enhance its usefulness, but that installing this one without them is perfectly reasonable. -
This field is similar to Suggests but works in the opposite direction. It is used to declare that a package can enhance the functionality of another package. -
When selecting which level of dependency to use you should consider how important the depended-on package is to the @@ -3423,10 +3320,10 @@ Build-Depends: kernel-headers-2.2.10 [!hurd-i386], Recommendations, as appropriate to the components' relative importance.
+
When one binary package declares a conflict with another
@@ -3694,41 +3591,39 @@ Replaces: mail-transport-agent
The Build-Depends and
Build-Conflicts fields must be satisfied when
any of the following targets is invoked:
build, clean, binary,
binary-arch, build-arch,
build-indep and binary-indep.
-
The Build-Depends-Indep and
Build-Conflicts-Indep fields must be
satisfied when any of the following targets is
invoked: build, clean,
build-indep, binary and
binary-indep.
-
This chapter has been superseded by .
+
- Any package installing shared libraries in one of the default
- library directories of the dynamic linker (which are currently
-
+
+ Any package installing shared libraries in one of the default
+ library directories of the dynamic linker (which are currently
+ /usr/X11R6/lib/Xaw3d /usr/local/lib /usr/lib/libc5-compat /lib/libc5-compat /usr/X11R6/lib
-
-
- The package must call During install or upgrade, the preinst is called before
- the new files are installed, so calling "ldconfig" is
- pointless. The preinst of an existing package can also be
- called if an upgrade fails. However, this happens during
- the critical time when a shared libs may exist on-disk
- under a temporary name. Thus, it is dangerous and
- forbidden by current policy to call "ldconfig" at this
- time.
- When a package is installed or upgraded, "postinst
- configure" runs after the new files are safely on-disk.
- Since it is perfectly safe to invoke ldconfig
- unconditionally in a postinst, it is OK for a package to
- simply put ldconfig in its postinst without checking the
- argument. The postinst can also be called to recover from
- a failed upgrade. This happens before any new files are
- unpacked, so there is no reason to call "ldconfig" at this
- point.
- For a package that is being removed, prerm is
- called with all the files intact, so calling ldconfig is
- useless. The other calls to "prerm" happen in the case of
- upgrade at a time when all the files of the old package
- are on-disk, so again calling "ldconfig" is pointless.
- postrm, on the other hand, is called with the "remove"
- argument just after the files are removed, so this is the
- proper time to call "ldconfig" to notify the system of the
- fact shared libraries from the package are removed.
- The postrm can be called at several other times. At the
- time of "postrm purge", "postrm abort-install", or "postrm
- abort-upgrade", calling "ldconfig" is useless because the
- shared lib files are not on-disk. However, when "postrm"
- is invoked with arguments "upgrade", "failed-upgrade", or
- "disappear", a shared lib may exist on-disk under a
- temporary filename.
-
+ The package must call
+ During install or upgrade, the preinst is called before
+ the new files are installed, so calling "ldconfig" is
+ pointless. The preinst of an existing package can also be
+ called if an upgrade fails. However, this happens during
+ the critical time when a shared libs may exist on-disk
+ under a temporary name. Thus, it is dangerous and
+ forbidden by current policy to call "ldconfig" at this
+ time.
+
+ When a package is installed or upgraded, "postinst
+ configure" runs after the new files are safely on-disk.
+ Since it is perfectly safe to invoke ldconfig
+ unconditionally in a postinst, it is OK for a package to
+ simply put ldconfig in its postinst without checking the
+ argument. The postinst can also be called to recover from
+ a failed upgrade. This happens before any new files are
+ unpacked, so there is no reason to call "ldconfig" at this
+ point.
+
+ For a package that is being removed, prerm is
+ called with all the files intact, so calling ldconfig is
+ useless. The other calls to "prerm" happen in the case of
+ upgrade at a time when all the files of the old package
+ are on-disk, so again calling "ldconfig" is pointless.
+
+ postrm, on the other hand, is called with the "remove"
+ argument just after the files are removed, so this is the
+ proper time to call "ldconfig" to notify the system of the
+ fact shared libraries from the package are removed.
+ The postrm can be called at several other times. At the
+ time of "postrm purge", "postrm abort-install", or "postrm
+ abort-upgrade", calling "ldconfig" is useless because the
+ shared lib files are not on-disk. However, when "postrm"
+ is invoked with arguments "upgrade", "failed-upgrade", or
+ "disappear", a shared lib may exist on-disk under a
+ temporary filename.
+
If a service reloads its configuration automatically (as
in the case of
The
Directly managing the /etc/rc?.d links and directly
invoking the
You must not include any
This will use a default sequence number of 20. If it does @@ -4991,15 +4901,15 @@ test -f program-executed-later-in-script || exit 0 stop and otherwise manage services. This program may be used by maintainers in their packages' scripts.
+
The use of
In the future, the use of invoke-rc.d to invoke
initscripts shall be made mandatory. Maintainers are
advised to switch to invoke-rc.d as soon as
- possible.
Most packages will simply need to change:
A package should register its initscript services using
For more information about using
Every message should fit in one line (fewer than 80
characters), start with a capital letter and end with
a period (.) and line feed ("\n").
-
If you want to express that the computer is working on
something (that is, performing a specific task, not
starting or stopping a program), we use an "ellipsis"
(three dots: ...). Note that we don't insert
spaces before or after the dots. If the task has been
completed we write done. and a line feed.
-
Design your messages as if the computer is telling you
what he is doing (let him be polite :-), but don't
mention "him" directly. For example, if you think of
@@ -5214,7 +5124,6 @@ I'm starting network daemons: nfsd mountd.
delete the character to the left of the cursor
delete the character to the right of the cursor
emacs: the help prefix
<-- generates KB_BackSpace
- in X. Delete generates KB_Delete in
- X.
X translations are set up to make
KB_Backspace generate ASCII DEL, and to make
KB_Delete generate ESC [ 3 ~ (this
@@ -5550,43 +5460,46 @@ Reloading description configuration...done.
using
-
The Linux console is configured to make <-- generate DEL, and Delete - generate ESC [ 3 ~.
X applications are configured so that < deletes left, and Delete deletes right. Motif - applications already work like this.
Terminals should have stty erase ^? .
The xterm terminfo entry should have ESC [ 3 ~ for kdch1, just as for - TERM=linux and TERM=vt220.
Emacs is programmed to map KB_Backspace or the stty erase character to delete-backward-char, and KB_Delete or kdch1 to delete-forward-char, and - ^H to help as always.
Other applications use the stty erase character and kdch1 for the two delete keys, with ASCII DEL being "delete previous character" and kdch1 being "delete character under - cursor".
Some terminals have a <-- key that cannot
be made to produce anything except ^H. On
these terminals Emacs help will be unavailable on
^H (assuming that the stty erase
character takes precedence in Emacs, and has been set
correctly). M-x help or F1 (if
- available) can be used instead.
Some operating systems use ^H for stty
erase. However, modern telnet versions and all
rlogin versions propagate stty settings, and
almost all UNIX versions honour stty erase.
Where the stty settings are not propagated
correctly, things can be made to work by using
- stty manually.
Some systems (including previous Debian versions) use
Some operating systems have different kdch1
settings in their terminfo database for
xterm and others. On these systems the
Delete key will not work correctly when you
log in from a system conforming to our policy, but
- <-- will.
If a program usually depends on environment variables for its @@ -5661,7 +5575,8 @@ Reloading description configuration...done. (e.g., if the source code of a non-free program is not available), the program must be replaced by a small "wrapper" shell script which sets the environment variables - if they are not already defined, and calls the original program.
+ if they are not already defined, and calls the original program. +
Here is an example of a wrapper script for this purpose:
@@ -5678,10 +5593,13 @@ exec /usr/lib/foo/foo "$@"
Furthermore, as
Although binaries in the build tree should be compiled with @@ -5737,11 +5656,11 @@ install -s # (or use strip on the files in debian/tmp) contain several flags to change how a package is compiled and built.
+
The presence of this string means that the package
should be complied with a minimum of optimization.
For C programs, it is best to add -O0
@@ -5749,18 +5668,16 @@ install -s # (or use strip on the files in debian/tmp)
default). Some programs might fail to build or run at
this level of optimization; it may be necessary to
use -O1, for example.
-
This string means that the debugging symbols should
not be stripped from the binary during installation,
so that debugging information may be included in the package.
-
The following makefile snippet is an example of how one may implement the build options; you will probably have to @@ -5810,7 +5727,6 @@ endif will need to be compiled twice.
-
You must specify the gcc option -D_REENTRANT
when building a library (either static or shared) to make
@@ -5828,13 +5744,11 @@ strip --strip-unneeded your-lib
function perfectly well when stripped, since the symbols for
dynamic linking are in a separate part of the ELF object
file.
You might also want to use the options
--remove-section=.comment and
--remove-section=.note on both shared libraries
and executables, and --strip-debug on static
libraries.
-
A common example are the so-called "plug-ins",
internal shared objects that are dynamically loaded by
programs using
Although
In the case of Perl scripts this should be - #!/usr/bin/perl.
+ #!/usr/bin/perl. +
Shell scripts (
The standard shell interpreter
Debian policy specifies POSIX behavior for
It can also be found on
The Debian base system provides the
In addition, symbolic links should be specified as short as
possible, i.e., link targets like
Note that when creating a relative link using
@@ -6045,7 +5959,8 @@ strip --strip-unneeded your-lib
Simply include the string that should appear as the target
of the link (this will be a pathname relative to the
directory in which the link resides) as the first argument
- to
For example, in your
A symbolic link pointing to a compressed file should always @@ -6071,41 +5987,43 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
Packages must not include device files in the package file - tree.
+ tree. +
If a package needs any special device files that are not
included in the base system, it must call
This notification could be done via a (low-priority)
debconf message, or an echo (printf) statement.
-
Packages must not remove any device files in the
Debian uses the serial devices
A file that affects the operation of a program, or
provides site- or host-specific information, or
otherwise customizes the behavior of a program.
@@ -6113,16 +6031,13 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
modified by the system administrator (if needed or
desired) to conform to local policy or to provide
more useful site-specific behavior.
-
A file listed in a package's conffiles
file, and is treated specially by
Any configuration files created or used by your package
must reside in
If your package creates or uses configuration files
outside of
Configuration file handling must conform to the following
behavior:
local changes must be preserved during a package
upgrade, and
-
configuration files must be preserved when the
package is removed, and only deleted when the
package is purged.
-
Rationale: There are two problems with hard links.
The first is that some editors break the link while
editing one of the files, so that the two files may
unwittingly become unlinked and different. The second
is that
+
The other way to do it is via the maintainer scripts. In
this case, the configuration file must not be listed as a
conffile and must not be part of the package
@@ -6263,6 +6176,7 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
Packages which specify the same file as a
conffile must be tagged as conflicting
@@ -6289,7 +6203,8 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
depend on the owning package if they require the
configuration file to operate. If the other package will
use the configuration file if present, but is capable of
- operating without it, no dependency need be declared.
If it is desirable for two or more related packages to
@@ -6298,21 +6213,16 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
file, then the following should be done:
One of the related packages (the "owning" package)
will manage the configuration file with maintainer
scripts as described in the previous section.
-
The owning package should also provide a program
that the other packages may use to modify the
configuration file.
-
The related packages must use the provided program
to make any desired modifications to the
configuration file. They should either depend on
@@ -6322,7 +6232,6 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
is not. (This is in addition to the fact that the
configuration file may not even be present in the
latter scenario.)
-
Cgi-bin executable files are installed in the
directory
Access to HTML documents Access to HTML documents
HTML documents for a package are stored in
@@ -6824,7 +6732,8 @@ http://localhost/cgi-bin/cgi-bin-name
http://localhost/doc/package/filename
+
+
The web server should restrict access to the document
tree so that only clients on the same host can read
the documents. If the web server does not support such
@@ -6833,7 +6742,8 @@ http://localhost/doc/package/filename
Web Document Root Web Document Root
Web Applications should try to avoid storing files in
@@ -6851,8 +6761,9 @@ http://localhost/doc/package/filename
A string which should appear as the
+
Contains the FQDN of the upstream NNTP
+
This implements current practice, and provides an actual policy for usage of the xserver virtual package which appears in the virtual packages @@ -7041,7 +6957,6 @@ name ["syshostname"]: another subsystem (e.g., GGI) should provide xserver. Things like Xvfb, Xnest, and Xprt should not. -
To be an x-terminal-emulator, a program must:
+
+
"New terminal window" does not necessarily mean
a new top-level X window directly parented by
the window manager; it could, if the terminal
emulator application were so coded, be a new
"view" in a multiple-document interface (MDI).
-
+
-
Start with a priority of 20.
If the window manager supports the Debian menu system, add 20 points if this support is available in the package's default configuration (i.e., no @@ -7116,25 +7030,21 @@ name ["syshostname"]: have to be edited to activate the feature); if configuration files must be modified, add only 10 points. -
If the window manager complies with
If the window manager permits the X session to be restarted using a different window manager (without killing the X server) in its default configuration, add 10 points; otherwise add none. -
Packages that provide fonts for the X Window
System
For the purposes of Debian Policy, a "font for the X
Window System" is one which is accessed via X protocol
requests. Fonts for the Linux console, for PostScript
@@ -7154,7 +7063,6 @@ name ["syshostname"]:
definition. Any tool which makes such fonts available
to the X Window System, however, must abide by this
font policy.
-
Fonts of any type supported by the X Window System
must be in a separate binary package from any
executables, libraries, or documentation (except
@@ -7175,110 +7082,95 @@ name ["syshostname"]:
provide an enhancement, a Suggests relationship may
be used. Packages must not Depend on font
packages.
This is because the X server may retrieve fonts
from the local filesystem or over the network
from an X font server; the Debian package system
is empowered to deal only with the local
filesystem.
-
BDF fonts must be converted to PCF fonts with the
+
+
+
-
+
+
Subdirectories of
Font packages may, instead of placing files directly in the X font directories listed above, provide symbolic links in that font directory pointing to the files' actual location in the filesystem. Such a location must comply with the FHS. -
Font packages should not contain both 75dpi and 100dpi versions of a font. If both are available, they should be provided in separate binary packages with -75dpi or -100dpi appended to the names of the packages containing the corresponding fonts. -
Fonts destined for the
Font packages must not provide the files
+
-
Font packages must declare a dependency on xutils (>> 4.0.3) in their control data. -
Font packages that provide one or more
Font packages that provide one or more
Font packages must invoke
Font packages must not provide alias names for the fonts they include which collide with alias names already in use by fonts already packaged. -
Font packages must not provide fonts with the same XLFD registry name as another font already packaged. -
Note that this mechanism is not the same as using app-defaults; app-defaults are tied to the client binary on the local filesystem, whereas X resources are stored in the X server and affect all connecting clients. -
Programs that use GNU
+ The installation of files into subdirectories
of
+ Packages must not provide or install files into the directories
Programs that require the non-DFSG-compliant OSF/Motif or
OpenMotif libraries
OSF/Motif and OpenMotif are collectively referred to as
"Motif" in this policy document.
-
+ Both Motif-linked versions are dependent upon non-DFSG-compliant software and thus cannot be uploaded to the main distribution; if the software is itself DFSG-compliant it may be uploaded to @@ -10385,11 +10270,12 @@ install-info --quiet --remove /usr/share/info/foobar.info distribution directories, relative to the root of the Debian hierarchy. If the package has been split into several parts the parts are all listed in order, separated - by spaces.
+ by spaces. + -
These fields in
This field in
If a package is not installed or not configured, this
field in
This field in
These are still recognised by
The Debian revision part of the package version was
at one point in a separate control file field. This
- field went through several names. Old name for Recommends Old name for Suggests. Old name for Priority.