dpkg
is targetted primarily at Debian
GNU/Linux, but may work on or be ported to other
systems.
That means that if it runs successfully or fails and then you call it again it doesn't bomb out, but just ensures that everything is the way it ought to be.
This field should appear in all packages, though
dpkg
doesn't require it yet so that
old packages can still be installed.
The rationale is that there is some information conveyed by knowing the age of the file, for example, you could recognize that some documentation is very old by looking at the modification time, so it would be nice if the modification time of the upstream source would be preserved.
This is so that the control file which is produced has the right permissions
They may be specified either in the locations in the source tree where they are created or in the locations in the temporary build tree where they are installed prior to binary package creation.
Though there is nothing stopping an author who is also the Debian maintainer from using it for all their changes, it will have to be renamed if the Debian and upstream maintainers become different people.
This is generated by the 822-date
program.
files.new is used as a temporary file by
dpkg-gencontrol
and
dpkg-distaddfile
- they write a new
version of files here before renaming it,
to avoid leaving a corrupted copy if an error
occurs
This is not currently detected when building source packages, but only when extracting them.
Hard links may be permitted at some point in the future, but would require a fair amount of work.
Setgid directories are allowed.
Renaming a 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.
The characters @ : = tt> _ (at, colon, equals, percent and underscore) used to be legal and are still accepted when found in a package file, but may not be used in new packages
This is a bug.
This actually invokes
gcc --print-libgcc-file-nameand parses and decomposes the output and looks the CPU type from the GCC configuration in a table in
dpkg
. This is so that it will
work if you're cross-compiling.
It is usual to leave a space after the package name if a version number is specified.
A space after each comma is conventional.
That is, the parts which are not the .dsc.
Part of the problem is due to what is arguably a
bug in dpkg
.
Version 0.93.23 or later.
Current versions (1.2.4) of dpkg
have
a bug in this area which will cause some of these
problems to be ignored.