[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