f5ea6ce508
* Implement subarch. * Rewrite patch handling to integrate arch and subarch specific patches. r4300: waldi | 2005-10-03 22:23:02 +0200 debian/rules.real: Remove old definitions. r4304: waldi | 2005-10-03 23:02:13 +0200 Move template reading to lib. * debian/bin/gencontrol.py - Remove RFC822 routines. - Use templates class. * debian/lib/python/debian_linux.py: Add templates class. r4738: waldi | 2005-11-07 15:51:30 +0100 debian/bin/gencontrol.py: Set TYPE. r4796: waldi | 2005-11-13 15:09:40 +0100 * debian/bin/gencontrol.py: Use config_reader. * debian/lib/python/debian_linux: Add directory. * debian/lib/python/debian_linux/__init__.py: Move from debian/lib/python/python/debian_linux.py. * debian/lib/python/debian_linux/config.py: Add config_reader and config_parser. r4797: waldi | 2005-11-13 15:45:12 +0100 * debian/bin/gencontrol.py: Move code away. For now only use imported code. * debian/lib/python/debian_linux/__init__.py: Remove utils. * debian/lib/python/debian_linux/config.py: Update. * debian/lib/python/debian_linux/debian.py: Add debian packaging specific code. * debian/lib/python/debian_linux/gencontrol.py: Add code. * debian/lib/python/debian_linux/utils.py: Add utils. r4798: waldi | 2005-11-13 15:56:37 +0100 debian/lib/python/debian_linux/gencontrol.py: Don't try to generation extra packages if the template does not exist. r4799: waldi | 2005-11-13 16:04:25 +0100 debian/lib/python/debian_linux/gencontrol.py: Begin to split methods in smaller pieces. r4800: waldi | 2005-11-13 16:26:03 +0100 debian/lib/python/debian_linux/gencontrol.py: Split more code. r4802: waldi | 2005-11-13 16:40:08 +0100 debian/lib/python/debian_linux/gencontrol.py: Also allow strings in makefile write list. r4806: waldi | 2005-11-13 16:55:48 +0100 debian/bin/gencontrol.py: Move linux-2.6 specific code from debian/lib/python/debian_linux/gencontrol.py. r4807: waldi | 2005-11-13 17:07:26 +0100 debian/bin/gencontrol.py, debian/lib/python/debian_linux/gencontrol.py: Update. r4808: waldi | 2005-11-13 17:08:53 +0100 debian/bin/gencontrol.py: Move code from debian/lib/python/debian_linux/gencontrol.py. r4810: waldi | 2005-11-13 17:10:30 +0100 debian/bin/gencontrol.py - Move code from debian/lib/python/debian_linux/gencontrol.py. - Update. r4811: waldi | 2005-11-13 17:33:47 +0100 debian/bin/gencontrol.py: Move code from debian/lib/python/debian_linux/gencontrol.py. r4812: waldi | 2005-11-13 17:36:38 +0100 debian/bin/gencontrol.py: Update. r4813: waldi | 2005-11-13 18:36:28 +0100 debian/lib/python/debian_linux/config.py: Remove old code. r4814: waldi | 2005-11-13 18:38:50 +0100 * debian/bin/gencontrol.py, debian/lib/python/debian_linux/gencontrol.py, debian/lib/python/debian_linux/utils.py: Teach package object how to work with list attributes. * debian/lib/python/debian_linux/debian.py: Don't use utils.entry. r4815: waldi | 2005-11-13 18:41:55 +0100 * debian/lib/python/debian_linux/gencontrol.py - Use utils.package. - Remove debugging code. * debian/lib/python/debian_linux/utils.py - Use utils.package. - Remove utils.entry. r4816: waldi | 2005-11-13 18:47:46 +0100 debian/lib/python/debian_linux/utils.py: Don't output empty fields. r4965: waldi | 2005-12-04 12:36:20 +0100 Rewrite config reader to support more than one section per (arch, subarch, flavour). * debian/bin/gencontrol.py, debian/lib/python/debian_linux/gencontrol.py: Explicitely Use base entries. * debian/lib/python/debian_linux/config.py - Rewrite. - Loose support for entry merging for now. r5175: waldi | 2006-01-02 20:46:46 +0100 debian/bin/gencontrol.py: Fix. r5176: waldi | 2006-01-02 21:09:17 +0100 * debian/bin/apply: Don't expect upstream version in series file names. * debian/patches-debian/series/0experimental.1: Move from debian/patches-debian/series/2.6.14+2.6.15-rc7-0experimental.1. * debian/patches-debian/series/0experimental.2: Move from debian/patches-debian/series/2.6.14+2.6.15-rc7-0experimental.2. r5177: waldi | 2006-01-02 22:31:28 +0100 First prototype of improved patch util. debian/bin/apply.py: Add. r5178: waldi | 2006-01-02 23:40:11 +0100 * debian/bin/apply.py: Finish implementation. * debian/rules.real: Use apply.py. r5179: waldi | 2006-01-03 00:15:05 +0100 * debian/bin/apply.py: Implement arch and subarch specific patches. * debian/bin/unpatch: Remove old code. * debian/rules.real: Fix patch package installation. r5180: waldi | 2006-01-03 00:16:05 +0100 debian/bin/apply: Remove. r5181: waldi | 2006-01-03 00:16:56 +0100 * debian/bin/gencontrol.py: Readd missing build target. * debian/lib/python/debian_linux/debian.py: Raise if version is not parsable. r5192: waldi | 2006-01-03 15:32:43 +0100 debian/bin/apply.py - Add version_file class. - Use correct series for deapply. r5193: waldi | 2006-01-03 15:41:53 +0100 debian/bin/apply.py - Remove extra version handling from series class. - Add check for extra version in patch setup. r5194: waldi | 2006-01-03 15:45:49 +0100 debian/bin/apply.py: Move complete reverse logic into series class. r5195: waldi | 2006-01-03 16:14:33 +0100 debian/bin/apply.py: Implement patch per arch and subarch. It is currently done by completely deapply the arch specific patches if it needs to change set of general patches. r5196: waldi | 2006-01-03 16:18:55 +0100 debian/bin/apply.py: Don't record extra version without patch. r5197: waldi | 2006-01-03 16:25:03 +0100 debian/bin/apply.py: Record shortest possible extra version in version file. r5198: waldi | 2006-01-03 16:28:00 +0100 * debian/patches-debian/series/0experimental.3-extra: Add. * debian/patches-debian/hppa-incompatible.patch: Move from debian/patches-arch/hppa.diff. * debian/patches-debian/m68k-incompatible.patch Move from debian/patches-arch/m68k.diff. * debian/patches-arch: Remove. r5200: waldi | 2006-01-03 16:30:03 +0100 debian/rules.real: Use new apply script for arch and subarch patches. r5207: waldi | 2006-01-03 17:12:52 +0100 * debian/rules.real: Remove old arch patches installation. * debian/templates/control.source.in: Remove dh-kpatches from Buld-Depends-Indep. r5208: waldi | 2006-01-03 17:21:21 +0100 debian/lib/python/debian_linux: Set svn:ignore property. r5210: waldi | 2006-01-03 17:24:09 +0100 debian/templates/control.main.in: Fix depends of patch package. r5212: waldi | 2006-01-03 17:54:18 +0100 * debian/rules: Fix clean. * debian/rules.real - Remove definition of old arch patches. - Use a variable for patch command. r5213: waldi | 2006-01-03 20:45:41 +0100 * debian/templates: Move subarch part in package names in front of flavour. * debian/lib/python/debian_linux/gencontrol.py: Fix subarch text setting. r5214: waldi | 2006-01-03 20:46:05 +0100 debian/lib/python/debian_linux/config.py: Support subarches. r5215: waldi | 2006-01-04 00:51:46 +0100 Update svn:ignore property. r5216: waldi | 2006-01-04 00:53:20 +0100 debian/bin/apply.py - Use correct length in extra check. - Check for correct length of extra entries. r5217: waldi | 2006-01-04 00:54:38 +0100 debian/rules.real - Append subarch to kernel version. - Fix base of kconfig.ml call. r5234: waldi | 2006-01-04 15:34:59 +0100 * debian/bin/gencontrol.py: Use config entry merging when needed. * lib/python/debian_linux/config.py: Readd config entry merging. r5235: waldi | 2006-01-04 16:00:38 +0100 * debian/bin/install-image: Use DEBIAN_LOCALVERSION and DEBIAN_LOCALVERSION_HEADERS. * debian/rules.real: Set LOCALVERSION for scripts. r5240: waldi | 2006-01-04 17:50:12 +0100 debian/rules.real: Fix version of subarch headers package. svn path=/dists/trunk/linux-2.6/; revision=5242 |
||
---|---|---|
.. | ||
arch | ||
bin | ||
lib/python/debian_linux | ||
patches-debian | ||
templates | ||
README | ||
README.Debian | ||
README.build | ||
TODO.patches | ||
changelog | ||
compat | ||
copyright | ||
rules | ||
rules.defs | ||
rules.real |
README
Migrating to the common kernel-image package -------------------------------------------- Files for architecture <arch> should be placed into arch/<arch>. This directory normally contains a common config file for this architecture ('config'), flavour-specific config files, Makefile.inc file, controlling the build for this arch, and the defines file, containing the machine descriptions for various flavours. For arches with subarches the subdirectory arch/<arch>/<subarch> with the same file structure must be created for each subarch. Support for arch/subarch-specific patches ----------------------------------------- Patches specific to a particular architecture or subarchitecture and not included into the debian patch set should be placed in the debian/patches-arch subdirectory. Patch must be named <arch>.diff or <subarch>.diff. If such patch is present, it will be automatically applied during the unpacking of the build tree for a particular (sub)architecture. Patches present in the debian/patches-arch will also be included in the kernel-patch-debian package, suitable for building kernels with make-kpkg. Config files ------------ Configuration files are constructed dynamically by concatenating a number of config files as described below. For architecture without subarches: Configuration file for kernel-image: arch/config arch/<arch>/config arch/<arch>/config.<flavour> For architecture with subarches: arch/config arch/<arch>/config arch/<arch>/<subarch>/config arch/<arch>/<subarch>/config.<flavour> Control file ------------ The master control file debian/control must be generated before the package is uploaded. debian/rules contains the debian/control target, which generates the control file by invoking the debian/bin/gencontrol.py script, which combines the templates from the templates directory and arch/subarch specific defines file to produce the debian/control file. Note that this target is intentionally made to fail with a non-zero exit code to make sure that it is never run during an automatic build. The following variables are substituted into the templates: @version@ Upstream kernel version, for example 2.6.11. @major@ The major version, for example 2.6 @arch@ The Debian arch name, such as powerpc or i386. @subarch@ The subarch - only used by powerpc right now. @flavour@ The build flavour, such as 686 or k7-smp. @class@ The CPU/architecture class; displayed in synopsis. It should be fairly short, as the synopsis is supposed to be <80 chars. It should be in the form "foo class", and will show up in the description as "foo class machines". @longclass@ The CPU/architecture class; displayed in the extended description. The same rules apply as in @class@. If this is unset, it will default to @class@. @desc@ (Potentially) multi-line verbiage that's appended to -image descriptions. @ltver@ linux-tree version, a single digit. @srcver@ Source version, extracted from the changelog. This is normally @version@-@ltver@. @lt_depends@ The Depends field for the linux-tree package. @lt_provides@ The Provides field for the linux-tree package. @abiname@ Current abiname, a single digit. @allheaders@ Given the arch, a list of all the linux-headers packages for the arch - used for kernel-headers-x.y.z-n-arch. Normally, the arch-specific contents should be controlled by adjusting the corresponding defines file. Makefile.inc ------------ Each architecture subdirectory in arch may contain a Makefile.inc file, which is included by debian/rules after definining all the variables. It may be used to override the standard variables on per-architecture basis and other evil things. So far the valid uses of this file include the setting of the following variables: headers_dirs This variable is substituted into the headers-install script, controlling which asm-* directories are included into the kernel-headers package. By default it is set to karch (see above). See header-install.in file for detail. Typical usage: headers_dirs := sparc | sparc64 headers_subarch The subarch to pass to the --subarch option for the make-kpkg call to build the kernel-headers. Typical usage: headers_subarch := sparc64 build_subarch Setting this variable to non-empty value will cause an option --subarch $(build_subarch) added to 'build' and 'kernel-image' make-kpkg calls. If a substring @flavour@ is present in the definition of this variable, it will be expanded to the current flavour during build time. In general, if you wish to add subarch support for your architecture, you should contact kernel-package maintainer to ensure that the flavour name correctly maps onto a kernel subarch name. Typical usage: build_subarch := pmac or build_subarch := @flavour@ build_makeflags This variable may contain the make flags settings for the make-kpkg invocation in the 'build' target. Currently it is only used by amd64, where it should be set to something like build_makeflags := 'CC=amd64-linux-gcc V=1' The value of the variable must be properly quoted. initrd_modules This variable may contain a space-separated list of modules which should be hard-linked into the /lib/modules/<version>/initrd directory, so that they will be included by mkinitrd. Full pathname relative to the /lib/modules/<version> directory should be give, no quoting is necessary. Typical usage: initrd_modules := kernel/drivers/video/vesafb.ko kernel/security/capability.ko image_postproc A command to be run after the kernel image is built. As far as I know, it only required on sparc for stripping of the kernel which is too big to be booted otherwise. Typical use is too ugly to be presented here. image_prefix_flavours image_prefix These variables allow to prepend the 'make-kpkg kernel_image' call with an arbitrary prefix for selected flavours. Some architectures have a 32- and 64-bit versions. If kernels are built on the 64-bit hardware, then building a 32-bit kernel usually requires using a wrapper which sets the correct execution domain (such as sparc32 or linux32). If the variable image_prefix_flavours is non-empty and contains a space-separated list if flavours, then make-kpkg invocation to create a kernel_image target will be prepended with contents of the image_prefix variable. Typical usage: image_prefix_flavours := sparc32 sparc32-smp image_prefix := sparc32 extra_postinstall_command This variable, if defined, is executed at the end of the post-install script, which is used by kernel-package to add or modify the files going into the kernel image package. It can use these variables (but see templates/post-install.in for details): $(subarch), $(flavour), $(version) and $(abiname). Since Makefile.inc is a Makefile, the leading $ need to be escaped as double $$.