Implemented arch/subarch-specific patches and

updated README and TODO files accordingly.

svn path=/branches/kernel-image-2.6.11/; revision=3204
This commit is contained in:
Jurij Smakov 2005-05-21 01:32:51 +00:00
parent e11de50bef
commit c0665811a3
4 changed files with 45 additions and 10 deletions

33
README
View File

@ -8,6 +8,14 @@ configuration files. 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
'patches' subdirectory of arch/<arch> or arch/<arch>/<subarch>. This
directory is expected to contain the patch files and a file 'list'
with list of patches to apply.
Config files
------------
Configuration files are constructed dynamically by concatenating a number
@ -167,3 +175,28 @@ initrd_modules
be give, no quoting is necessary. Typical usage:
initrd_modules := kernel/drivers/video/vesafb.ko kernel/security/capability.ko
image_postproc [NOT IMPLEMENTED YET]
A command to be run on the kernel image after it's built. Location of
the image will be appended to this command as the last argument. One
usage is stripping the image on sparc, otherwise it is too big to be
booted:
image_postproc := strip -R .comment -R .note -K sun4u_init -K _end -K _start
Note that for cross-compiling a proper strip command should be used
(such as sparc-linux-strip, or something like this).
image_prefix [NOT IMPLEMENTED YET]
This variable may contain an expression, which will be used as a wrapper
for the make-kpkg when its target is kernel_image. This option is a kludge,
needed for sparc, which has to prepend this call with either 'sparc32' or
'sparc64', depending on the flavour being built (otherwise depmod breaks
when building sparc32 kernels on sparc64). For this obscure case it may
be used like that (very evil):
image_prefix := $${i%-smp}
The shell variable ${i} will contain the current flavour in the rules file.

8
TODO
View File

@ -1,18 +1,10 @@
Major TODO items remaining:
* Patching mechanism: where are the debian and subarch-specific patches
going to be available and how they are going to be applied.
* Naming of the subarch-specific header packages. For that some magic
should be done in post-install.
* Looks like it would be optimal to have a common kernel-headers package
which would contain common headers for all arches without unmerged patches.
* Various remaining kludges (stripping and sparc32/sparc64 stuff on sparc,
for example).
* Get rid of the /lib/modules/<version>/source symlink.
* Generate the control file for individual files dynamically, so that we
do not have that ridiculous master control file.

3
debian/rules vendored
View File

@ -21,7 +21,8 @@ karch := $(shell dpkg-architecture -qDEB_HOST_ARCH)
ifndef subarchs
subarchs := $(shell find arch/$(karch) \
-type d -mindepth 1 -maxdepth 1 \
! -name '.svn' -printf '%f\n')
! -name '.svn' ! -name 'patches' \
-printf '%f\n')
endif
ifeq (,$(subarchs))
subarchs := none

11
debian/rules.subarch vendored
View File

@ -12,6 +12,8 @@ debver := $(version)-$(abiname)
uver := $(subst .,_,$(version))
debnum := -$(abiname)
kbpkg := kernel-kbuild-$(version)-$(abiname)
# This will eventually have to be changed to a command, applying
# the debian's patches from the local tree (arch/patches?)
kpatch := /usr/src/kernel-patches/all/$(version)/apply/debian $(version)-$(ktver)
DEBIAN_UPSTREAM_VERSION := $(version)
ifeq (,$(DEB_HOST_ARCH))
@ -182,7 +184,14 @@ $(kdir): post-install-$(subarch)
touch $(tkdir)/debian/official
install post-install-$(subarch) $(tkdir)/debian/post-install
cd $(tkdir) && $(kpatch)
# Here we need to do the subarch-specific patching
# Arch/subarch-specific patches
if [ -d $(basedir)/patches ] && \
[ -s $(basedir)/patches/list ]; then \
cd $(tkdir); \
for i in $$(cat ../$(basedir)/patches/list); do \
patch -p1 < ../$(basedir)/patches/$${i}; \
done; \
fi
mv $(tkdir) $@
build-%: $(kdir)