Chapter 4. Source packages
23
4.6 Time Stamps
Maintainers should preserve the modification times of the upstream source files in a package,
as far as is reasonably possible.
10
4.7 Restrictions on objects in source packages
The source package may not contain any hard links
11
, device special files, sockets or setuid or
setgid files.
12
4.8 Main building script:
debian/rules
This file must be an executable makefile, and contains the package specific recipes for compil
ing the package and building binary package(s) from the source.
It must start with the line
#!/usr/bin/make f
, so that it can be invoked by saying its name
rather than invoking
make
explicitly.
Since an interactive
debian/rules
script makes it impossible to auto compile that pack
age and also makes it hard for other people to reproduce the same binary package, all re
quired targets MUST be non interactive. At a minimum, required targets are the ones called by
dpkg buildpackage
, namely, clean, binary, binary arch, binary indep, and build. It also follows
that any target that these targets depend on must also be non interactive.
The targets are as follows (required unless stated otherwise):
build
The
build
target should perform all the configuration and compilation of the package.
If a package has an interactive pre build configuration routine, the Debianized source
package must either be built after this has taken place (so that the binary package can
be built without rerunning the configuration) or the configuration routine modified to
become non interactive. (The latter is preferable if there are architecture specific features
detected by the configuration routine.)
For some packages, notably ones where the same source tree is compiled in different
ways to produce two binary packages, the
build
target does not make much sense.
For these packages it is good enough to provide two (or more) targets (
build a
and
build b
or whatever) for each of the ways of building the package, and a
build
target
that does nothing. The
binary
target will have to build the package in each of the
possible ways and make the binary package out of each.
10
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.
11
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.
12
Setgid directories are allowed.
footer
Our partners:
PHP: Hypertext Preprocessor Best Web Hosting
Java Web Hosting
Inexpensive Web Hosting
Jsp Web Hosting
Cheapest Web Hosting
Jsp Hosting
Cheap Hosting
Visionwebhosting.net Business web hosting division of Web
Design Plus. All rights reserved