[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ A ] [ B ] [ C ] [ next ]
cdd-dev
If meta packages are builded using the tools inside the cdd-dev
package it can be ensured that the resulting meta packages will work nicely
with the same version of cdd-common
package. The goal is to keep
necessary changes for the source of the meta packages of a Custom Debian
Distribution as low as possible when the version of the cdd
source
package changes. Thus it is strongly recommended to use the tools described
below.
The usage of the tools in the cdd-dev
package might introduce a
versioned dependency in the <cdd>-common
package
from which all other meta packages of the CDD in question will
depend. This <cdd>-common
package instantiates
the CDD in the common registry for all CDDs in
/etc/cdd
.
The best idea to use the tools provided by the cdd-dev
is to put a
Makefile
into the build directory containig one single line
include /usr/share/cdd-dev/Makefile
(see /usr/share/doc/cdd-dev/examples/Makefile
). Using this
Makefile
all tools that were contained in cdd-dev
package versions before 0.4. These tools are moved to
/usr/share/cdd-dev/
because there is no need to call them
directly. Here is a list of the make
targets.
This target is the description file that is used in tasksel
to
enable selecting the tasks belonging to the CDD. The file will be moved to the
cdd-tasks
. All information is obtained from the single
task files in the tasks
directory of the CDD source.
The debian/control
file of a CDD meta package source archive is
auto generated out of dependencies that are specified in so called
tasks
files. The rationale behind this is to enhance flexibility
about changes inside the Debian package pool where new packages might appear
and others might be renamed. The tasks
just define which
dependencies the CDD maintainer group wants to be fulfilled and the script
cdd-gen-control
verifies whether these dependencies exist in the
specified package pool and create the debian/control
file
according to the available packages. This does not only work for the Debian
package pool containing the distributions stable, testing and unstable. You
can even build your meta packages against a different package pool of a Debian
based distribution. This is for instance used to create the SkoleLinux meta
packages.
The syntax of the tasks
files which serve as the central database
for the information in the debian/control
file is defined by
RFC822. Some of the tags were mentioned formerly in Existing and prospective packages,
Section 8.1 to explain how the tasks
files can be used to
create the web sentinel pages. Now the tags that influence the creation of the
debian/control
file are given.
Will be turned to "Recommends" in the resulting
debian/control
file. The rationale behind this is to enable
installing the meta-package even if a package belonging to this task is missing
for whatever reason. It also allows finally to remove the meta package. This
makes even more sense since apt-get
considers
"Recommends" as default installation targets.
The packages that are listed as "Recommends" in the tasks file should be installed on the machine where the meta package is installed and which are needed to work on a specific task.
Use "Suggests" for packages of lesser importance that might be possibly useful, or non-free packages.
If a package is not available in the package pool of the target distribution
when creating the debian/control
file inside the meta package
source archive any "Depends" or "Recommends" are turned
into "Suggests" to enable a flawless installation of the meta
package. Packages that are specified with "Suggests" will not be
taken over to the tasksel
control file
(CDD-tasks.desk
, see CDD-tasks.desk, Section A.1.1) but
only to the list of suggested packages of the according meta package.
The "Ignore" key can be used as kind of "Soft-Suggests" to
put a package on the radar of the CDD. Packages that are tagged with Ignore
will not be taken over into the list of dependencies inside the
debian/control
file of the resulting meta package neither to the
CDD-tasks.desk
control file for tasksel
but will be
taken over onto the installation medium of a CDD in case there is some space
left. This key becomes especially important for specifying not yet packaged
software that might be packaged in the future (prospective packages). This is
explained in detail in the paragraph about the web sentinel (see Existing and prospective packages,
Section 8.1).
The "Avoids" key specifies existing packages that will be listed in
the the debian/control
file as "Recommends" or
"Suggests" but, should not go to a installation medium (CD, DVD,
etc.) that might be produced by the CDD. A reason to avoid a package might be
that it belongs to the non-free section.
cdd-clean-helper
- cleans up debian directory in a meta package
building tree
cdd-clean-helper
This script can be used in debian/rules
file to revert the changes
which were done by cdd-install-helper(1)
to get a clean packaging
tree. Using this helper ensures that the debian/rules
file does
not needed to be changed if there are changes in the cdd-dev
package.
For the usage of this tool just have a look at the debian-med
source package.
Andreas Tille tille@debian.org
.
sources.list
files in /etc/cdd/
These files are used by cdd-gen-control(1)
to build valid
debian/control
files that contain only available packages in their
dependencies. This enables building meta packages for stable,
testing, unstable or even a completely different
distribution that has valid sources.list
entries. The file
/etc/cdd/control.list
is used as default for
cdd-gen-control(1)
and usually is a symbolic link (see
ln(1)
) to sources.list.
distribution. It
might be changed using the -sdist option of
cdd-gen-control(1)
.
TODO: Either parse the available
/etc/apt/sources.list
or use a sane debconf
question
to use the "nearest" mirror.
/usr/share/cdd/templates
The directory /usr/share/cdd/templates
contains templates that can
be used to build a <cdd>-common
, which uses the
tools that are contained in the cdd-common
package, and are useful
to manage <cdd> user groups (see User roles, Section 6.3).
cdd-common
This package creates a common registry for all CDDs in /etc/cdd
.
Each CDD should put the files that are used into a subdirectory named like the
CDD of /etc/cdd
. The cdd-common
package installs a
common configuration file /etc/cdd/cdd.conf
, which can be used to
influence the behaviour of the tools described below.
cdd-role
- add/remove roles in registered Custom Debian
Distribution
cdd-role
add|del CDD [Role]
Add/remove (register/unregister) Role for the specified CDD. If Role is not specified, it's assumed to be named like CDD.
A registered custom distribution in /etc/cdd, for example one of med, junior, desktop, edu or demudi
Andreas Tille tille@debian.org
, Cosimo Alfarano
kalfa@debian.org
.
cdd-update-menus
- add menu of meta package to all Custom Debian
Distribution users
cdd-update-menus
[--cdd CDD | --user user]
cdd-update-menus behaves differently depending on who run the command:
If it is called by a user, it adds, and keeps updated, menu entries for the user who runs it.
If it is called by root, it adds and keeps updated user's menu entries (see menu package for users' menus) for all users who belong to the group of the specified Custom Debian Distribution, or only for a specified user, depending on which parameter is passed to the script.
one of the installed CDDs, listed in /etc/cdd/, for example (if installed: med, junior, desktop, edu or demudi
system user
Andreas Tille tille@debian.org
, Cosimo Alfarano
kalfa@debian.org
.
cdd-user
- add/remove user to Role of a registered Custom Debian
Distribution
cdd-user
add|del CDD user
[Role]
Add/remove user to a Role of the specified CDD. If Role is not specified, it's assumed to be named like CDD
A registered custom distribution in /etc/cdd, for example one of med, junior, desktop, edu or demudi
user to add
the role in the CDD that user will assume
Andreas Tille tille@debian.org
, Cosimo Alfarano
kalfa@debian.org
.
cdd.conf
- configuration for Custom Debian Distribution registry
This file is sourced from shell scripts inside the Custom Debian Distribution
package cdd-common
and thus it has to follow shell syntax. The
variables that are set inside this configuration file can be overriden by
special CDD configration files
/etc/cdd/<>cdd>/<>cdd>.conf
for each single CDD.
The following variables can be set:
Set the backend for the user role management system. Currently the only implemented role management system is unixgroups but others might be implemented later. Unsetting this variable leads to use no roles at all.
If this is set to yes, the user menus of meta packages can be created automatically at install time of the package if the postinst script of the package allows this. It is suggested to use this option in the specific configuration files of a special Custom Debian Distribution that override the settings of the general configuration file.
Set the base directory for the user role management system. While this is more or less a feature for debugging this might be also used otherwise.
This variable can be set for debugging. Normally it should be left unset (NOT set to false or anything else!). If set to true a dry run of the tools is performed or echo DRYRUN: would print debugging information.
If set to 1 debugging mode is switched on.
cdd-role (8)
, cdd-update-menus (8)
, cdd-user
(8)
Andreas Tille tille@debian.org
, Cosimo Alfarano
kalfa@debian.org
.
svn
Sometimes it might be interesting for developers to check out the latest code
of the CDD tools or a special CDD code for the meta packages. In Establishing and using communication
platforms, Section 9.1 the directory layout of the
svn
-directory was described. How to derive the Debian packages
from this layout?
For the CDD tools
svn checkout svn+ssh://username@svn.debian.org/svn/cdd/cdd/trunk/cdd cdd
or for the Custom Debian Distribution cdd-name
svn checkout svn+ssh://username@svn.debian.org/svn/cdd/projects/cdd-name/trunk
Change into the created directory and type
make -f debian/rules get-orig-source
This creates a tar.gz
source archive of the packages you want to
build. For your personal comfort you can create a file Makefile
in your package source directory containing
#!/usr/bin/make -f include /usr/share/cdd-dev/Makefile
Which enables you to simply say
make dist
to create the source tarball.
Unpack the created source tarball and proceed like you build Debian packages normally.
The current Debian-Med packages provide a working example how to use the tools described below.
[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ A ] [ B ] [ C ] [ next ]
Custom Debian Distributions
4 July 2008tille@debian.org