From aac20768739a6026960d18d7667408c64ae05bc0 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 3 Jun 2012 20:54:42 +0000 Subject: [PATCH] Remove support for per-architecture patches We have not used per-architecture patches for many years. This is a step toward using a more standard patch system. svn path=/dists/sid/linux/; revision=19070 --- debian/bin/gencontrol.py | 20 ++++++--- debian/lib/python/debian_linux/gencontrol.py | 2 +- debian/rules | 6 +-- debian/rules.real | 21 +++++---- debian/templates/patch.apply.in | 46 +++++--------------- 5 files changed, 38 insertions(+), 57 deletions(-) diff --git a/debian/bin/gencontrol.py b/debian/bin/gencontrol.py index 5e01ace1c..0b912553a 100755 --- a/debian/bin/gencontrol.py +++ b/debian/bin/gencontrol.py @@ -63,6 +63,20 @@ class Gencontrol(Base): def do_main_packages(self, packages, vars, makeflags, extra): packages.extend(self.process_packages(self.templates["control.main"], self.vars)) + def do_main_recurse(self, packages, makefile, vars, makeflags, extra): + # Add featureset source rules + for featureset in iter(self.config['base', ]['featuresets']): + makeflags_featureset = makeflags.copy() + makeflags_featureset['FEATURESET'] = featureset + cmds_source = ["$(MAKE) -f debian/rules.real source-featureset %s" + % makeflags_featureset] + makefile.add('source_%s_real' % featureset, cmds=cmds_source) + makefile.add('source_%s' % featureset, + ['source_%s_real' % featureset]) + makefile.add('source', ['source_%s' % featureset]) + + super(Gencontrol, self).do_main_recurse(packages, makefile, vars, makeflags, extra) + arch_makeflags = ( ('kernel-arch', 'KERNEL_ARCH', False), ) @@ -91,13 +105,11 @@ class Gencontrol(Base): self.merge_packages(packages, packages_headers_arch, arch) cmds_binary_arch = ["$(MAKE) -f debian/rules.real binary-arch-arch %s" % makeflags] - cmds_source = ["$(MAKE) -f debian/rules.real source-arch %s" % makeflags] makefile.add('binary-arch_%s_real' % arch, cmds=cmds_binary_arch) - makefile.add('source_%s_real' % arch, cmds=cmds_source) # Shortcut to aid architecture bootstrapping makefile.add('binary-libc-dev_%s' % arch, - ['source_%s_real' % arch], + ['source_none_real'], ["$(MAKE) -f debian/rules.real install-libc-dev_%s %s" % (arch, makeflags)]) @@ -141,9 +153,7 @@ class Gencontrol(Base): self.merge_packages(packages, (package_headers,), arch) cmds_binary_arch = ["$(MAKE) -f debian/rules.real binary-arch-featureset %s" % makeflags] - cmds_source = ["$(MAKE) -f debian/rules.real source-featureset %s" % makeflags] makefile.add('binary-arch_%s_%s_real' % (arch, featureset), cmds=cmds_binary_arch) - makefile.add('source_%s_%s_real' % (arch, featureset), cmds=cmds_source) flavour_makeflags_base = ( ('compiler', 'COMPILER', False), diff --git a/debian/lib/python/debian_linux/gencontrol.py b/debian/lib/python/debian_linux/gencontrol.py index 7c49f3a88..389af7027 100644 --- a/debian/lib/python/debian_linux/gencontrol.py +++ b/debian/lib/python/debian_linux/gencontrol.py @@ -77,7 +77,7 @@ class MakeFlags(dict): class Gencontrol(object): - makefile_targets = ('binary-arch', 'build', 'setup', 'source') + makefile_targets = ('binary-arch', 'build', 'setup') def __init__(self, config, templates, version=Version): self.config, self.templates = config, templates diff --git a/debian/rules b/debian/rules index 2fdade4e2..cb2f19c18 100755 --- a/debian/rules +++ b/debian/rules @@ -22,13 +22,9 @@ endif source: debian/control $(STAMPS_DIR)/source-base $(STAMPS_DIR)/source-base: - dh_testdir - $(MAKE) -f debian/rules.gen source_$(DEB_HOST_ARCH) - @$(stamp) - -source-all: debian/control dh_testdir $(MAKE) -f debian/rules.gen source + @$(stamp) setup: debian/control $(STAMPS_DIR)/setup-base $(STAMPS_DIR)/setup-base: $(STAMPS_DIR)/source-base diff --git a/debian/rules.real b/debian/rules.real index 6bf8d612b..14557b246 100644 --- a/debian/rules.real +++ b/debian/rules.real @@ -55,8 +55,7 @@ build: $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE) setup-flavour: $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR) -source-arch: $(STAMPS_DIR)/source -source-featureset: $(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET) +source-featureset: $(STAMPS_DIR)/source_$(FEATURESET) $(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(KCONFIG) python debian/bin/kconfig.py '$@' $(KCONFIG) $(KCONFIG_OPTIONS) @@ -83,18 +82,18 @@ $(STAMPS_DIR)/source: $(patch_cmd) @$(stamp) -$(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET): SOURCE_DIR=$(BUILD_DIR)/source -$(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET): DIR=$(BUILD_DIR)/source_$(ARCH)_$(FEATURESET) -$(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET): $(STAMPS_DIR)/source +$(STAMPS_DIR)/source_$(FEATURESET): SOURCE_DIR=$(BUILD_DIR)/source +$(STAMPS_DIR)/source_$(FEATURESET): DIR=$(BUILD_DIR)/source_$(FEATURESET) +$(STAMPS_DIR)/source_$(FEATURESET): $(STAMPS_DIR)/source rm -rf '$(DIR)' cp -al '$(SOURCE_DIR)' '$(DIR)' - $(patch_cmd) -a $(ARCH) -f $(FEATURESET) + $(patch_cmd) -f $(FEATURESET) @$(stamp) $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): CONFIG=$(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR) -$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SOURCE_DIR=$(BUILD_DIR)/source_$(ARCH)_$(FEATURESET) +$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SOURCE_DIR=$(BUILD_DIR)/source_$(FEATURESET) $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR=$(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) -$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET) $(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR) +$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/source_$(FEATURESET) $(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR) rm -rf '$(DIR)' mkdir '$(DIR)' cp '$(CONFIG)' '$(DIR)/.config' @@ -195,9 +194,9 @@ install-headers_$(ARCH)_$(FEATURESET): PACKAGE_NAME = linux-headers-$(ABINAME)-c install-headers_$(ARCH)_$(FEATURESET): PACKAGE_NAME_KBUILD = linux-kbuild-$(VERSION) install-headers_$(ARCH)_$(FEATURESET): DH_OPTIONS = -p$(PACKAGE_NAME) install-headers_$(ARCH)_$(FEATURESET): BASE_DIR = /usr/src/$(PACKAGE_NAME) -install-headers_$(ARCH)_$(FEATURESET): SOURCE_DIR = $(BUILD_DIR)/source_$(ARCH)_$(FEATURESET) +install-headers_$(ARCH)_$(FEATURESET): SOURCE_DIR = $(BUILD_DIR)/source_$(FEATURESET) install-headers_$(ARCH)_$(FEATURESET): DIR = debian/$(PACKAGE_NAME)/$(BASE_DIR) -install-headers_$(ARCH)_$(FEATURESET): $(STAMPS_DIR)/source_$(ARCH)_$(FEATURESET) +install-headers_$(ARCH)_$(FEATURESET): $(STAMPS_DIR)/source_$(FEATURESET) dh_testdir dh_testroot dh_prep @@ -226,7 +225,7 @@ install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME) install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): BASE_DIR = /usr/src/$(PACKAGE_NAME) install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): BASE_DIR_COMMON = /usr/src/$(PACKAGE_NAME_COMMON) install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SOURCE_DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) -install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REF_DIR = $(BUILD_DIR)/source_$(ARCH)_$(FEATURESET) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REF_DIR = $(BUILD_DIR)/source_$(FEATURESET) install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_DIR = debian/$(PACKAGE_NAME) install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR = $(PACKAGE_DIR)/$(BASE_DIR) install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE) diff --git a/debian/templates/patch.apply.in b/debian/templates/patch.apply.in index 10e0b78a8..45395f03d 100644 --- a/debian/templates/patch.apply.in +++ b/debian/templates/patch.apply.in @@ -12,10 +12,10 @@ revisions = "@revisions@".split() upstream = "@upstream@" class MatchExtra(object): - def __init__(self, arch, featureset): - self.arch, self.featureset = arch, featureset + def __init__(self, featureset): + self.featureset = featureset - self.matched_arch = self.matched_featureset = False + self.matched_featureset = False def __call__(self, obj): if not self: @@ -23,26 +23,14 @@ class MatchExtra(object): data = obj.data - match_arch = [] match_featureset = [] for i in data: - if i.startswith("arch="): - match_arch.append(i[5:]) - elif i.startswith("featureset="): + if i.startswith("featureset="): match_featureset.append(i[11:]) else: raise RuntimeError('Ignored unknown modifier: %s' % i) - ret_arch = ret_featureset = False - - if match_arch: - if self.arch is not None: - if self.arch in match_arch: - self.matched_arch = True - ret_arch = True - - else: - ret_arch = True + ret_featureset = False if match_featureset: if self.featureset is not None: @@ -53,15 +41,13 @@ class MatchExtra(object): else: ret_featureset = True - return ret_arch and ret_featureset + return ret_featureset def __nonzero__(self): - return self.arch is not None or self.featureset is not None + return self.featureset is not None def info(self): ret = [] - if self.matched_arch: - ret.append("arch=%s" % self.arch) if self.matched_featureset: ret.append("featureset=%s" % self.featureset) return ret @@ -98,15 +84,13 @@ class version_file(object): list = s.split() self.upstream, self.revision = list[0:2] - arch = featureset = None + featureset = None for i in list[2:]: - if i.startswith("arch="): - arch = i[5:] - elif i.startswith("featureset="): + if i.startswith("featureset="): featureset = i[11:] else: raise RuntimeError("Can't parse extra information") - self.extra = MatchExtra(arch, featureset) + self.extra = MatchExtra(featureset) def _write(self): if os.path.lexists(self._file): @@ -141,7 +125,7 @@ def main(): target_revision = args[0] else: target_revision = revisions[-1] - target_extra = MatchExtra(options.arch, options.featureset) + target_extra = MatchExtra(options.featureset) if vfile.upstream != upstream: raise RuntimeError("Upstream version differs between tree (%s) and package (%s)" % (vfile.upstream, upstream)) @@ -191,11 +175,6 @@ def parse_options(): parser = OptionParser( usage = "%prog [OPTION]... [TARGET]", ) - parser.add_option( - '-a', '--arch', - dest = 'arch', - help = "arch", - ) parser.add_option( '-f', '--featureset', dest = 'featureset', @@ -209,9 +188,6 @@ def parse_options(): options, args = parser.parse_args() - if options.arch is None and options.featureset is not None: - raise RuntimeError('You specified a featureset without an arch, this is not really working') - return options, args if __name__ == '__main__':