[kernel] r14208 - in dists/sid: firmware-nonfree linux-latest-2.6/debian linux-latest-2.6/debian/bin linux-latest-2.6/debian/modules linux-latest-2.6/debian/modules/templates linux-latest-2.6/debian/templates
Ben Hutchings
benh at alioth.debian.org
Sun Sep 6 18:08:52 UTC 2009
Author: benh
Date: Sun Sep 6 18:08:50 2009
New Revision: 14208
Log:
Remove unneeded branch of firmware-nonfree
Added:
dists/sid/linux-latest-2.6/debian/modules/
dists/sid/linux-latest-2.6/debian/modules/gencontrol.py (contents, props changed)
dists/sid/linux-latest-2.6/debian/modules/rules.defs
dists/sid/linux-latest-2.6/debian/modules/rules.include
dists/sid/linux-latest-2.6/debian/modules/rules.real
dists/sid/linux-latest-2.6/debian/modules/templates/
dists/sid/linux-latest-2.6/debian/modules/templates/control.modules.in
dists/sid/linux-latest-2.6/debian/modules/templates/control.modules.latest.in
dists/sid/linux-latest-2.6/debian/templates/control.support.all.in
Deleted:
dists/sid/firmware-nonfree/
Modified:
dists/sid/linux-latest-2.6/debian/bin/gencontrol.py
dists/sid/linux-latest-2.6/debian/changelog
dists/sid/linux-latest-2.6/debian/rules
dists/sid/linux-latest-2.6/debian/rules.defs
dists/sid/linux-latest-2.6/debian/rules.real
Modified: dists/sid/linux-latest-2.6/debian/bin/gencontrol.py
==============================================================================
--- dists/sid/linux-latest-2.6/debian/bin/gencontrol.py Sun Sep 6 11:36:05 2009 (r14207)
+++ dists/sid/linux-latest-2.6/debian/bin/gencontrol.py Sun Sep 6 18:08:50 2009 (r14208)
@@ -1,6 +1,6 @@
#!/usr/bin/python
-import sys
+import os, sys
sys.path.append(sys.argv[1] + "/lib/python")
from debian_linux.config import ConfigCoreDump
@@ -21,6 +21,10 @@
'source_upstream': self.version.upstream,
'major': self.version.linux_major,
'abiname': self.abiname,
+ 'linuxsupport_allversions':
+ ', '.join('linux-support-' + version
+ for version
+ in os.environ['ALL_KERNELVERSIONS'].split())
}
changelog_version = Changelog()[0].version
@@ -97,6 +101,14 @@
makefile.add('binary-arch_%s' % arch, ['binary-arch_%s_extra' % arch])
makefile.add("binary-arch_%s_extra" % arch, cmds = cmds)
+ packages.extend(
+ self.process_packages(self.templates['control.support.all'],
+ self.vars))
+
+ cmds = ["$(MAKE) -f debian/rules.real install-support-all DH_OPTIONS='-plinux-support-all' GENCONTROL_ARGS='-v%s'" % self.package_version]
+ makefile.add('binary-support-all', cmds = cmds)
+ makefile.add('binary-indep', ['binary-support-all'])
+
def process_real_image(self, entry, fields, vars):
entry = self.process_package(entry, vars)
for key, value in fields.iteritems():
Modified: dists/sid/linux-latest-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-latest-2.6/debian/changelog Sun Sep 6 11:36:05 2009 (r14207)
+++ dists/sid/linux-latest-2.6/debian/changelog Sun Sep 6 18:08:50 2009 (r14208)
@@ -1,3 +1,9 @@
+linux-latest-2.6 (21) UNRELEASED; urgency=low
+
+ * Add linux-support-all package to suport out-of-tree module building.
+
+ -- Ben Hutchings <ben at decadent.org.uk> Sun, 30 Aug 2009 15:08:48 +0100
+
linux-latest-2.6 (20) unstable; urgency=low
* Move into kernel section.
Added: dists/sid/linux-latest-2.6/debian/modules/gencontrol.py
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-latest-2.6/debian/modules/gencontrol.py Sun Sep 6 18:08:50 2009 (r14208)
@@ -0,0 +1,176 @@
+#!/usr/bin/env python
+
+import sys
+sys.path.append(sys.argv[1] + "/lib/python")
+
+from debian_linux.config import ConfigCoreDump, ConfigParser, SchemaItemList
+from debian_linux.debian import *
+from debian_linux.gencontrol import Gencontrol as Base, Makefile, PackagesList
+from debian_linux.utils import Templates
+
+class Gencontrol(Base):
+ def __init__(self, config):
+ super(Gencontrol, self).__init__(
+ Config(config),
+ Templates(["debian/templates",
+ "/usr/src/linux-support-all/modules/templates"]))
+ self.process_changelog()
+
+ def __call__(self):
+ packages = PackagesList()
+ makefile = Makefile()
+
+ self.vars = {}
+ self.do_source(packages)
+
+ self.select_version(self.config['version',]['source'],
+ self.config['version',]['abiname'],
+ True)
+ self.do_main(packages, makefile)
+ self.do_extra(packages, makefile)
+
+ for version in argv[2:]:
+ self.select_version(version, version[version.rindex('-'):], False)
+ self.do_main(packages, makefile)
+ self.do_extra(packages, makefile)
+
+ self.write(packages, makefile)
+
+ def do_main_setup(self, vars, makeflags, extra):
+ super(Gencontrol, self).do_main_setup(vars, makeflags, extra)
+ makeflags.update({
+ 'VERSION_SOURCE': self.package_version.upstream,
+ 'VERSION_REVISION': self.package_version.revision,
+ 'MAJOR': self.version.linux_major,
+ 'UPSTREAMVERSION': self.version.linux_upstream,
+ 'ABINAME': self.abiname,
+ })
+
+ def do_main_makefile(self, makefile, makeflags, extra):
+ makefile.add("binary-indep")
+
+ def do_main_packages(self, packages, vars, makeflags, extra):
+ packages['source']['Build-Depends'].extend(
+ ['linux-headers-%s%s-all-%s [%s]' % (self.version.linux_upstream, self.abiname, arch, arch)
+ for arch in self.config['base',]['arches']],
+ )
+
+ def do_flavour(self, packages, makefile, arch, featureset, flavour, vars, makeflags, extra):
+ config_entry = self.config['module', 'base']
+
+ config_base = self.config.merge('base', arch, featureset, flavour)
+ if not config_base.get('modules', True):
+ return
+
+ super(Gencontrol, self).do_flavour(packages, makefile, arch, featureset, flavour, vars, makeflags, extra)
+
+ for module in iter(config_entry['modules']):
+ self.do_module(module, packages, makefile, arch, featureset, flavour, vars.copy(), makeflags.copy(), extra)
+
+ def do_module(self, module, packages, makefile, arch, featureset, flavour, vars, makeflags, extra):
+ config_entry = self.config['module', 'base', module]
+ vars.update(config_entry)
+ vars['module'] = module
+ makeflags['MODULE'] = module
+
+ if not vars.get('longdesc', None):
+ vars['longdesc'] = ''
+
+ if arch not in config_entry.get('arches', [arch]):
+ return
+ if arch in config_entry.get('not-arches', []):
+ return
+ if featureset not in config_entry.get('featuresets', [featureset]):
+ return
+ if featureset in config_entry.get('not-featuresets', []):
+ return
+ if flavour not in config_entry.get('flavours', [flavour]):
+ return
+ if flavour in config_entry.get('not-flavours', []):
+ return
+
+ modules = self.templates["control.modules"]
+ if self.is_latest:
+ # Do not use += as that will modify control.modules
+ modules = modules + self.templates["control.modules.latest"]
+ modules = self.process_packages(modules, vars)
+
+ for package in modules:
+ name = package['Package']
+ if packages.has_key(name):
+ package = packages.get(name)
+ package['Architecture'].append(arch)
+ else:
+ package['Architecture'] = [arch]
+ packages.append(package)
+
+ abi_version = self.version.linux_upstream + self.abiname
+
+ for i in self.makefile_targets:
+ target1 = '_'.join((i, abi_version, arch, featureset, flavour))
+ target2 = '_'.join((target1, module))
+ makefile.add(target1, [target2])
+
+ cmds_binary_arch = ["$(MAKE) -f /usr/src/linux-support-all/modules/rules.real binary-arch %s" % makeflags]
+ cmds_build = ["$(MAKE) -f /usr/src/linux-support-all/modules/rules.real build %s" % makeflags]
+ cmds_setup = ["$(MAKE) -f /usr/src/linux-support-all/modules/rules.real setup %s" % makeflags]
+ makefile.add("binary-arch_%s_%s_%s_%s_%s" % (abi_version, arch, featureset, flavour, module), cmds = cmds_binary_arch)
+ makefile.add("build_%s_%s_%s_%s_%s" % (abi_version, arch, featureset, flavour, module), cmds = cmds_build)
+ makefile.add("setup_%s_%s_%s_%s_%s" % (abi_version, arch, featureset, flavour, module), cmds = cmds_setup)
+
+ def process_changelog(self):
+ self.package_version = self.changelog[0].version
+
+ def select_version(self, version, abiname, is_latest):
+ self.version = VersionLinux(version)
+ self.abiname = abiname
+ self.is_latest = is_latest
+ self.vars = {
+ 'upstreamversion': self.version.linux_upstream,
+ 'version': self.version.linux_version,
+ 'source_upstream': self.version.upstream,
+ 'major': self.version.linux_major,
+ 'abiname': self.abiname,
+ }
+ # TODO: select flavours & featuresets for this version
+
+class Config(ConfigCoreDump):
+ config_suffix = '.linux-support'
+
+ schemas_module = {
+ 'base': {
+ 'arches': SchemaItemList(),
+ 'flavours': SchemaItemList(),
+ 'not-arches': SchemaItemList(),
+ 'not-flavours': SchemaItemList(),
+ 'not-featuresets': SchemaItemList(),
+ 'featuresets': SchemaItemList(),
+ }
+ }
+
+ def __init__(self, config):
+ super(Config, self).__init__(fp = file(config))
+
+ self._read_modules()
+
+ def _read_modules(self):
+ modules = [name[:-len(self.config_suffix)]
+ for name in os.listdir('debian')
+ if name.endswith(self.config_suffix)]
+ self[('module', 'base')] = {'modules': modules}
+
+ for module in modules:
+ self._read_module(module)
+
+ def _read_module(self, module):
+ config = ConfigParser(self.schemas_module)
+ config.read('debian/%s%s' % (module, self.config_suffix))
+
+ for section in iter(config):
+ real = ('module', section[-1], module) + section[1:]
+ s = self.get(real, {})
+ s.update(config[section])
+ self[real] = s
+
+if __name__ == '__main__':
+ Gencontrol(sys.argv[1] + "/config.defines.dump")()
Added: dists/sid/linux-latest-2.6/debian/modules/rules.defs
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-latest-2.6/debian/modules/rules.defs Sun Sep 6 18:08:50 2009 (r14208)
@@ -0,0 +1,3 @@
+MODULES_BUILD_DIR := debian/modules-build
+MODULES_STAMPS_DIR := debian/modules-stamps
+MODULES_TEMPLATES_DIR := debian/templates
Added: dists/sid/linux-latest-2.6/debian/modules/rules.include
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-latest-2.6/debian/modules/rules.include Sun Sep 6 18:08:50 2009 (r14208)
@@ -0,0 +1,67 @@
+MODULES_SUPPORT_DIR := /usr/src/linux-support-all/modules
+include $(MODULES_SUPPORT_DIR)/rules.defs
+
+MODULES_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
+
+MODULES_BINNMU := $(shell dpkg-parsechangelog | sed -ne 's,^Version: .*\+b\(.*\)$$,\1,p')
+
+MODULES_BUILD_STAMP = $(MODULES_STAMPS_DIR)/modules-build
+MODULES_SETUP_STAMP = $(MODULES_STAMPS_DIR)/modules-setup
+
+modules-build: $(MODULES_BUILD_STAMP)
+$(MODULES_BUILD_STAMP): $(MODULES_SETUP_STAMP)
+ dh_testdir
+ $(MAKE) -f debian/rules.gen build_$(MODULES_ARCH)
+ touch $@
+
+$(MODULES_BUILD_DIR) $(MODULES_STAMPS_DIR):
+ @[ -d $@ ] || mkdir $@
+
+modules-clean: debian/control
+ dh_testdir
+ rm -rf $(MODULES_BUILD_DIR) $(MODULES_STAMPS_DIR)
+
+modules-binary-indep:
+ dh_testdir
+ $(MAKE) -f debian/rules.gen binary-indep
+
+modules-binary-arch:
+ dh_testdir
+ $(MAKE) -f debian/rules.gen binary-arch_$(MODULES_ARCH)
+
+MODULES_CONTROL_FILES += debian/changelog $(wildcard debian/templates/control.*)
+MODULES_CONTROL_FILES += $(wildcard debian/*.linux-support)
+debian/control debian/rules.gen: $(MODULES_CONTROL_FILES)
+ifeq ($(wildcard debian/control.md5sum),)
+ $(MAKE) -f debian/rules debian/control-real
+else ifeq ($(MODULES_BINNMU),)
+ md5sum --check debian/control.md5sum --status || \
+ $(MAKE) -f debian/rules debian/control-real
+else
+ grep -v debian/changelog debian/control.md5sum | md5sum --check - --status || \
+ $(MAKE) -f debian/rules debian/control-real
+endif
+
+debian/control-real: $(MODULES_CONTROL_FILES)
+ $(MODULES_SUPPORT_DIR)/gencontrol.py \
+ /usr/src/linux-support-$(KERNELVERSION)/.. \
+ $(EXTRA_KERNELVERSIONS)
+ md5sum $^ > debian/control.md5sum
+ @echo
+ @echo This target is made to fail intentionally, to make sure
+ @echo that it is NEVER run during the automated build. Please
+ @echo ignore the following error, the debian/control file has
+ @echo been generated SUCCESSFULLY.
+ @echo
+ exit 1
+
+modules-setup: $(MODULES_SETUP_STAMP)
+$(MODULES_SETUP_STAMPS): debian/control debian/rules.gen $(MODULES_BUILD_DIR) $(MODULES_STAMPS_DIR)
+ dh_testdir
+ $(MAKE) -f debian/rules.gen setup_$(MODULES_ARCH)
+ touch $@
+
+modules-maintainerclean:
+ -rm debian/control debian/control.md5sum debian/rules.gen
+
+.PHONY: modules-build modules-clean modules-binary-indep modules-binary-arch modules-setup modules-maintainerclean
Added: dists/sid/linux-latest-2.6/debian/modules/rules.real
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-latest-2.6/debian/modules/rules.real Sun Sep 6 18:08:50 2009 (r14208)
@@ -0,0 +1,93 @@
+SHELL := sh -e
+
+export DH_OPTIONS
+
+__MODULES_DIR := /usr/src/linux-support-all/modules/
+
+HEADERS_DIR = /usr/src/linux-headers-$(UPSTREAMVERSION)$(ABINAME)$(LOCALVERSION)
+
+include $(__MODULES_DIR)rules.defs
+
+ifdef DEBIAN_KERNEL_JOBS
+ JOBS_ARG = -j$(DEBIAN_KERNEL_JOBS)
+endif
+
+BUILD_STAMP = $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(MODULE)
+SETUP_STAMP = $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(MODULE)
+SOURCE_STAMP = $(STAMPS_DIR)/source_$(MODULE)
+
+setup_env := env -u ABINAME -u ARCH -u FEATURESET -u FLAVOUR -u VERSION -u LOCALVERSION -u MAKEFLAGS
+
+MAKE_CLEAN := $(setup_env) $(MAKE)
+MAKE_SELF := $(MAKE) -f debian/rules.real
+
+MODULEVERSION = $(shell dpkg -s $(MODULESOURCE) | perl -ne 'print $$2 if m/^Version: (\d+:)?(.*?)(-[^-]+)?$$/;')
+ifeq (,$(MODULEVERSION))
+$(error Was not able to retreive version of $(MODULESOURCE))
+endif
+
+#
+# Targets
+#
+binary-arch: install-real
+build: $(BUILD_STAMP)
+setup: $(SETUP_STAMP)
+
+$(SETUP_STAMP) $(BUILD_STAMP) install: DIR=$(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(MODULE)
+$(SOURCE_STAMP) $(SETUP_STAMP): SOURCE_DIR=$(BUILD_DIR)/source_$(MODULE)
+
+$(SOURCE_STAMP): TAR = /usr/src/$(MODULE).tar.bz2
+$(SOURCE_STAMP): TMP_DIR = $(BUILD_DIR)/tmp
+$(SOURCE_STAMP):
+ @rm -rf $(TMP_DIR) $(SOURCE_DIR)
+ mkdir -p $(TMP_DIR)
+ tar -C $(TMP_DIR) -xjf $(TAR)
+ mv $(TMP_DIR)/modules/$(MODULE) $(SOURCE_DIR)
+ rm -rf $(TMP_DIR)
+ touch $@
+
+$(SETUP_STAMP): $(SOURCE_STAMP)
+$(SETUP_STAMP):
+ @rm -rf $(DIR)
+ cp -al $(SOURCE_DIR) $(DIR)
+ touch $@
+
+$(BUILD_STAMP): $(SETUP_STAMP)
+$(BUILD_STAMP):
+ +$(MAKE_CLEAN) -C $(HEADERS_DIR) M=$(CURDIR)/$(DIR) $(JOBS_ARG)
+ touch $@
+
+install-base: DH_OPTIONS = -p$(PACKAGE)
+install-base:
+ dh_installchangelogs
+ dh_installdocs
+ install -D -m 644 $(MODULE)/copyright debian/$(PACKAGE)/usr/share/doc/$(PACKAGE)/copyright
+ dh_installmodules
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_gencontrol -- $(GENCONTROL_ARGS)
+ dh_md5sums
+ dh_builddeb
+
+install install-real: REAL_VERSION = $(UPSTREAMVERSION)$(ABINAME)$(LOCALVERSION)
+install install-real: PACKAGE_NAME = $(MODULE)-modules-$(REAL_VERSION)
+
+install: PACKAGE_DIR = $(CURDIR)/debian/$(PACKAGE_NAME)
+
+install-real: PACKAGE_LATEST_NAME = $(MODULE)-modules-$(MAJOR)$(LOCALVERSION)
+
+install: $(BUILD_STAMP)
+install:
+ +$(MAKE_CLEAN) -C $(HEADERS_DIR) M=$(CURDIR)/$(DIR) modules_install INSTALL_MOD_PATH=$(PACKAGE_DIR) INSTALL_MOD_DIR=extra/$(MODULE)
+
+install-real:
+ +$(MAKE_SELF) install
+ +$(MAKE_SELF) install-base \
+ GENCONTROL_ARGS="-v$(VERSION_SOURCE)+$(MODULEVERSION)-$(VERSION_REVISION)" \
+ PACKAGE="$(PACKAGE_NAME)"
+ +$(MAKE_SELF) install-base \
+ GENCONTROL_ARGS="-v2:$(VERSION_SOURCE)-$(VERSION_REVISION)" \
+ PACKAGE="$(PACKAGE_LATEST_NAME)"
+
+-include $(MODULE)/rules
Added: dists/sid/linux-latest-2.6/debian/modules/templates/control.modules.in
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-latest-2.6/debian/modules/templates/control.modules.in Sun Sep 6 18:08:50 2009 (r14208)
@@ -0,0 +1,10 @@
+Package: @module at -modules-@upstreamversion@@abiname@@localversion@
+Section: kernel
+Priority: optional
+Depends: linux-modules- at upstreamversion@@abiname@@localversion@
+Provides: @module at -modules
+Description: @desc@ for Linux @upstreamversion@ on @class@
+ This package provides the @desc@ modules for the Linux kernel version
+ @upstreamversion@ on @longclass@ machines.
+ .
+ @longdesc@
Added: dists/sid/linux-latest-2.6/debian/modules/templates/control.modules.latest.in
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-latest-2.6/debian/modules/templates/control.modules.latest.in Sun Sep 6 18:08:50 2009 (r14208)
@@ -0,0 +1,9 @@
+Package: @module at -modules-@major@@localversion@
+Section: kernel
+Priority: optional
+Depends: @module at -modules-@upstreamversion@@abiname@@localversion@, linux-latest-modules- at upstreamversion@@abiname@@localversion@
+Description: @desc@ for Linux @major@ on @class@
+ This package depends on the @desc@ modules for latest Linux kernel @major@ on
+ @longclass@ machines.
+ .
+ @longdesc@
Modified: dists/sid/linux-latest-2.6/debian/rules
==============================================================================
--- dists/sid/linux-latest-2.6/debian/rules Sun Sep 6 11:36:05 2009 (r14207)
+++ dists/sid/linux-latest-2.6/debian/rules Sun Sep 6 18:08:50 2009 (r14208)
@@ -4,7 +4,7 @@
include debian/rules.defs
include /usr/src/linux-support-$(KERNELVERSION)/modules/rules.include
-GENCONTROL = debian/bin/gencontrol.py
+GENCONTROL = ALL_KERNELVERSIONS=$(ALL_KERNELVERSIONS) debian/bin/gencontrol.py
ifdef DEBIAN_KERNEL_BUILD_ANY
binary-arch: binary-arch-all
Modified: dists/sid/linux-latest-2.6/debian/rules.defs
==============================================================================
--- dists/sid/linux-latest-2.6/debian/rules.defs Sun Sep 6 11:36:05 2009 (r14207)
+++ dists/sid/linux-latest-2.6/debian/rules.defs Sun Sep 6 18:08:50 2009 (r14208)
@@ -1 +1,2 @@
KERNELVERSION := 2.6.30-1
+EXTRA_KERNELVERSIONS := 2.6.29-1
Modified: dists/sid/linux-latest-2.6/debian/rules.real
==============================================================================
--- dists/sid/linux-latest-2.6/debian/rules.real Sun Sep 6 11:36:05 2009 (r14207)
+++ dists/sid/linux-latest-2.6/debian/rules.real Sun Sep 6 18:08:50 2009 (r14208)
@@ -25,3 +25,17 @@
dh_testroot
dh_prep
$(MAKE) -f debian/rules.real install-base
+
+install-support-all:
+ dh_testdir
+ dh_testroot
+ dh_prep
+ dh_installdirs usr/src/linux-support-all/modules
+ dh_install debian/modules/gencontrol.py debian/modules/rules.* \
+ usr/src/linux-support-all/modules
+ cat debian/rules.defs \
+ >> debian/install-support-all/debian/modules/rules.defs
+ dh_installdirs usr/src/linux-support-all/modules/templates
+ dh_install debian/modules/templates/*.in \
+ usr/src/linux-support-all/modules/templates
+ $(MAKE) -f debian/rules.real install-base
Added: dists/sid/linux-latest-2.6/debian/templates/control.support.all.in
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-latest-2.6/debian/templates/control.support.all.in Sun Sep 6 18:08:50 2009 (r14208)
@@ -0,0 +1,6 @@
+Package: linux-support-all
+Architecture: all
+Depends: @linuxsupport_allversions@
+Description: Linux module building support package
+ This package supports building modules for all Linux kernel versions in
+ a Debian release.
More information about the Kernel-svn-changes
mailing list