NAME¶
kernel-pkg.conf - configuration file for make-kpkg
SYNOPSIS¶
/etc/kernel-pkg.conf or
~/.kernel-pkg.conf
DESCRIPTION¶
The file
/etc/kernel-pkg.conf or
~/.kernel-pkg.conf is actually a
Makefile snippet included during the kernel packages build process, and
hence you may put any legal Makefile directive in that file (just make very
sure you know what you are doing). If the per user configuration file
~/.kernel-pkg.conf exists, it is loaded in favor of the system wide
configuration file
/etc/kernel-pkg.conf.
All the variables have reasonable default values, and maybe overridden on a per
run or a per individual basis by using environment variables. Some of the
variables can further be overridden by options to
make-kpkg.
At the moment, the user modifiable variables supported are:
- maintainer
- Local kernel (image, header, doc, etc.) package maintainer. Set up at
package installation by the postinst. Can be overridden by the
environment variable KPKG_MAINTAINER. Please note that any
apostrophes "'" shall have to be quoted like so: maintainer =
John O'\''Brien. Yes, this is ugly, but this works.
- email
- The email address of that person. Set up at package installation by the
postinst. Can be overridden by the environment variable
KPKG_EMAIL.
- pgp
- A key-ID to use when signing packages. Usually passed along to
dpkg-buildpackage using the -k option, and also third party
modules in the KMAINT environment variable, if separate modules
(like pcmcia, etc.) are being built in $MODULE_PATH. Can be
overridden by the environment variable PGP_SIGNATURE, and is
overridden (again) by the --pgpsign option of make-kpkg.
Defaults to maintainer. (Optional)
- debian
- The version of the kernel packages, includes both the upstream version and
the Debian revision. Can be overridden by the environment variable
DEBIAN_REVISION, and is overridden (again) by the --revision
option of make-kpkg. Defaults to
<VERSION>-10.0.0.Custom (Optional)
- debian_revision_mandatory
- Normally unset. If this, or the environment variable
DEBIAN_REVISION_MANDATORY are set, then not providing a Debian
revision results in an error (and make-kpkg shall not provide a
default value of 10.0.0.Custom)
- kimage
- The kernel image type (i.e. zImage or bzImage). Can be overridden from the
environment variable IMAGE_TYPE, and is overridden (again) by the
options --zimage or --bzimage of make-kpkg. Defaults
to bzImage. (Optional)
- config_target
- What type of configure step to do. Defaults to oldconfig, which is good
for non-interactive (or minimally interactive) runs. (ENV variable
CONFIG_TARGET overrides this setting.) If the value of
config_target is not recognized, then it is reset to oldconfig.
- use_saved_config
- This is an experts only variable. If set to NO (ENV variable
USE_SAVED_CONFIG overrides this), the file .config.save in the top
level directory is ignored.
- root_cmd
- This is a variable meant to be passed on to dpkg-buildpackage in
the buildpackage target. This should be set to a means of gaining
superuser access (for example, `sudo' or `fakeroot') as
needed by dpkg-buildpackages' -r option. The environment variable
ROOT_CMD overrides this. Use the environment variable
UNSIGN_SOURCE to pass an option to dpkg-buildpackage to not sign
the source; similarly, use the environment variable
UNSIGN_CHANGELOG to pass an option to dpkg-buildpackage to not sign
the changelog. Again, this variable is only useful for the
buildpackage target. Set the environment variable ROOT_CMD
if you just wish to build the kernel image, for instance.
- delete_build_link
- If set to YES, the symbolic link /lib/modules/$VERSION/build shall
be removed from the resulting .deb package. The environment variable
DELETE_BUILD_LINK overrides this. The default is unset. Note that
this is case sensitive, yes shall not work.
- do_clean
- Set to YES, this causes a make clean to be run in the kernel source tree
after building the kernel image package. The environment variable
CLEAN_SOURCE overrides this. The default is unset. Note that this
is case sensitive, yes shall not work.
- install_vmlinux
- Set to YES to install the uncompressed kernel ELF image along with the
bootable compressed kernel image (vmlinuz). The default is unset. Note
that this is case sensitive, yes shall not work.
- image_clean_hook
- Set to point to an executable, this shall cause that executable to run
from the top level of the (temporary) kernel image tree before the kernel
image is packaged. This has no effect on anything other than the image
that is being packaged -- if the script operates on the current directory
and its children, the original source tree should remain intact. This is
to facilitate messaging of the kernel image that is packaged.
- source_clean_hook
- Set to point to an executable, this shall cause that executable to run
from the top level of the (temporary) kernel source tree before the
sources are packaged,
./debian/tmp-source/usr/src/kernel-source-X.X.XX. This has no
effect on anything other than the sources that are being packaged -- if
the script operates on the current directory and its children, the
original source tree should remain intact. This is to facilitate messaging
of the kernel sources that are packaged (for example, to remove version
control directories, or to prune away unwanted architectures).
- header_clean_hook
- Set to point to an executable, this shall cause that executable to run
from the top level of the kernel headers before the headers are packaged.
This has no effect on anything other than the sources that are being
packaged -- if the script operates on the current directory and its
children, the original source tree should remain intact. This is to
facilitate messaging of the kernel headers that are packaged (for example,
to remove version control directories, or to prune away unwanted
architectures).
- doc_clean_hook
- Set to point to an executable, this shall cause that executable to run
from the top of the documentation tree before kernel documentation is
packaged. This has no effect on anything other than the documentation that
is being packaged -- if the script operates on the current directory and
its children, the original source tree should remain intact. This is to
facilitate messaging of the kernel documentation that is packaged (for
example, to remove version control directories, or to prune away unwanted
architectures).
- extra_docs
- This variable should be set to the path of any extra documentation that
should be installed in /usr/share/doc/kernel-image-X.X.XX/
directory. There is no checking for name conflicts, and the files are not
compressed. Hence, if you want the files to be compressed, please
precompress it and provide the path of the compressed file. The
environment variable EXTRA_DOCS overrides this, and would most
likely be how extra documentation is specified.
- kpkg_follow_symlinks_in_src
- This option is especially useful for people who use symlink farms to
compile kernels. With this option, kernel-source and kernel-header
packages shall not be just full of dangling symlinks, instead, the
symbolic links shall be followed. Please note that any symbolic links in
the kernel sources would be flattened as well. The environment variable
KPKG_FOLLOW_SYMLINKS_IN_SRC overrides this. The default is
unset.
- make_libc_headers
- This is meant to be used by the libc6 maintainer, when he compiles
libc6, to also package up the corresponding headers. DO NOT SET
THIS unless you know what you are doing, since a mismatch between the
headers you package and libc6 may well create a subtle instability
in all code compiled on your machine. You have been warned. The
environment variable MAKE_LIBC_HEADERS overrides this. The default
is unset.
- CONCURRENCY_LEVEL
- If defined, this variable sets the concurrency level of make used to
compile the kernel and the modules set using -j flags to the sub
make in the build target of make-kpkg. Should be a (small)
integer, if used.
- ARCH_IN_NAME
- If defined, this variable causes make-kpkg to use an extended name
for the kernel image package by embedding the subarchitecture in the image
name, so one could write a script to create multiple subarchitectures one
after the other. Please note that only the package name is
affected, not module locations etc.
- CONFDIR
- Set this variable, either in the environment or in the config file, to
point to the location where the kernel config files are located. These are
architecture specific .config files (look at
/usr/share/kernel-package/Config for examples). This is useful for
people who need to compile for several architectures. Defaults to
/usr/share/kernel-package/Config
- IMAGEDIR
- If you want the image to be stored elsewhere than /boot set this
variable to the dir where you want the image. This may be of help to
loadlin users. Defaults to /boot.
- MODULE_LOC
- Set this variable, either in the environment or in the config file, to
point to the location where the add-on modules are located. Defaults to
/usr/src/modules
The value of a variable can be set so:
- a)
- Defaults exist in the rules file. These are the values used if no
customization is done.
- b)
- Variables can be set in the config file /etc/kernel-pkg.conf. These
values override the defaults.
- c)
- Variables can also be set by setting a corresponding environment variable.
These values override the config file and the defaults.
- d)
- Using make-kpkg options, or, if using the rules file directly, on
command line
# xxx/rules DEBIAN_REVISION=2.0a kernel_image
This overrides all the above methods.
FILES¶
The file described here is
/etc/kernel-pkg.conf or
~/.kernel-pkg.conf.
SEE ALSO¶
make(1),
make-kpkg(1),
kernel-img.conf(5),
The GNU Make
manual
BUGS¶
There are no bugs. Any resemblance thereof is delirium. Really.
AUTHOR¶
This manual page was written by Manoj Srivastava <srivasta@debian.org>,
for the Debian GNU/Linux system.