aboutsummaryrefslogtreecommitdiffstats
path: root/debian/bin
diff options
context:
space:
mode:
authorBen Hutchings <ben@decadent.org.uk>2019-09-27 02:42:51 +0200
committerBen Hutchings <ben@decadent.org.uk>2019-09-28 02:36:56 +0100
commit009860e7c695507d28782c10253d9fd5ca01c78d (patch)
tree28bb26b7590f4d25314af155eef76f88c02c8058 /debian/bin
parent0eeb8e44a9f7fa4334da19b82f961a44ed4a8a40 (diff)
downloadkernel_replicant_linux-009860e7c695507d28782c10253d9fd5ca01c78d.tar.gz
kernel_replicant_linux-009860e7c695507d28782c10253d9fd5ca01c78d.tar.bz2
kernel_replicant_linux-009860e7c695507d28782c10253d9fd5ca01c78d.zip
Build the metapackages by default (Closes: #583849, #941042)
debian/{,signing_templates/}rules.real: Add targets for building metapackages debian/rules.real: Make metapackage targets dependencies of binary-arch-arch or binary-indep, as appropriate debian/bin/gencontrol{,_signed}.py: * Expand control file templates for metapackages along with the corresponding "real" package templates * Implement a "meta" config option under [packages] to allow suppressing them * Define the additional variables that these templates use * Expand the bug-presubj template for linux-image metapackages debian/bin/gencontrol_signed.py: Add invocation of the install-meta rule to debian/rules.gen
Diffstat (limited to 'debian/bin')
-rwxr-xr-xdebian/bin/gencontrol.py44
-rwxr-xr-xdebian/bin/gencontrol_signed.py40
2 files changed, 78 insertions, 6 deletions
diff --git a/debian/bin/gencontrol.py b/debian/bin/gencontrol.py
index 747c8b7ea24a..a8167d9f8db7 100755
--- a/debian/bin/gencontrol.py
+++ b/debian/bin/gencontrol.py
@@ -52,6 +52,7 @@ class Gencontrol(Base):
'headers-all': config.SchemaItemBoolean(),
'installer': config.SchemaItemBoolean(),
'libc-dev': config.SchemaItemBoolean(),
+ 'meta': config.SchemaItemBoolean(),
'tools-unversioned': config.SchemaItemBoolean(),
'tools-versioned': config.SchemaItemBoolean(),
'source': config.SchemaItemBoolean(),
@@ -85,6 +86,7 @@ class Gencontrol(Base):
'SOURCEVERSION': self.version.complete,
})
makeflags['SOURCE_BASENAME'] = self.vars['source_basename']
+ makeflags['SOURCE_SUFFIX'] = self.vars['source_suffix']
# Prepare to generate debian/tests/control
self.tests_control = self.process_packages(
@@ -171,18 +173,33 @@ class Gencontrol(Base):
def do_main_packages(self, packages, vars, makeflags, extra):
packages.extend(self.process_packages(
self.templates["control.main"], self.vars))
+
+ # Only build the metapackages if their names won't exactly match
+ # the packages they depend on
+ do_meta = self.config.merge('packages').get('meta', True) \
+ and vars['source_suffix'] != '-' + vars['version']
+
if self.config.merge('packages').get('docs', True):
packages.extend(self.process_packages(
self.templates["control.docs"], self.vars))
+ if do_meta:
+ packages.extend(self.process_packages(
+ self.templates["control.docs.meta"], vars))
if self.config.merge('packages').get('tools-unversioned', True):
packages.extend(self.process_packages(
self.templates["control.tools-unversioned"], self.vars))
if self.config.merge('packages').get('tools-versioned', True):
packages.extend(self.process_packages(
self.templates["control.tools-versioned"], self.vars))
+ if do_meta:
+ packages.extend(self.process_packages(
+ self.templates["control.tools-versioned.meta"], vars))
if self.config.merge('packages').get('source', True):
packages.extend(self.process_packages(
self.templates["control.sourcebin"], self.vars))
+ if do_meta:
+ packages.extend(self.process_packages(
+ self.templates["control.sourcebin.meta"], vars))
self._substitute_file('perf.lintian-overrides', self.vars,
'debian/linux-perf-%s.lintian-overrides' %
@@ -347,6 +364,7 @@ class Gencontrol(Base):
flavour)
config_image = self.config.merge('image', arch, featureset, flavour)
+ vars['flavour'] = vars['localversion'][1:]
vars['class'] = config_description['hardware']
vars['longclass'] = (config_description.get('hardware-long')
or vars['class'])
@@ -371,6 +389,7 @@ class Gencontrol(Base):
headers = self.templates["control.headers"]
assert len(headers) == 1
+ do_meta = self.config.merge('packages').get('meta', True)
config_entry_base = self.config.merge('base', arch, featureset,
flavour)
config_entry_build = self.config.merge('build', arch, featureset,
@@ -469,12 +488,28 @@ class Gencontrol(Base):
packages_own.append(image_main)
makeflags['IMAGE_PACKAGE_NAME'] = image_main['Package']
+ # The image meta-packages will depend on signed linux-image
+ # packages where applicable, so should be built from the
+ # signed source packages
+ if do_meta and not build_signed:
+ packages_own.extend(self.process_packages(
+ self.templates["control.image.meta"], vars))
+
+ # Include a bug presubj message directing reporters to the real
+ # image package.
+ self._substitute_file(
+ "image.meta.bug-presubj", vars,
+ "debian/linux-image%s.bug-presubj" % vars['localversion'])
+
package_headers = self.process_package(headers[0], vars)
package_headers['Depends'].extend(relations_compiler_headers)
packages_own.append(package_headers)
if extra.get('headers_arch_depends'):
extra['headers_arch_depends'].append('%s (= ${binary:Version})' %
packages_own[-1]['Package'])
+ if do_meta:
+ packages_own.extend(self.process_packages(
+ self.templates["control.headers.meta"], vars))
if config_entry_build.get('vdso', False):
makeflags['VDSO'] = True
@@ -496,6 +531,13 @@ class Gencontrol(Base):
makeflags['DEBUG'] = True
packages_own.extend(self.process_packages(
self.templates['control.image-dbg'], vars))
+ if do_meta:
+ packages_own.extend(self.process_packages(
+ self.templates["control.image-dbg.meta"], vars))
+ self._substitute_file(
+ 'image-dbg.meta.lintian-overrides', vars,
+ 'debian/linux-image%s-dbg.lintian-overrides' %
+ vars['localversion'])
merge_packages(packages, packages_own, arch)
@@ -626,6 +668,8 @@ class Gencontrol(Base):
'source_package': self.changelog[0].source,
'abiname': self.abiname_version + self.abiname_part,
}
+ self.vars['source_suffix'] = \
+ self.changelog[0].source[len(self.vars['source_basename']):]
self.config['version', ] = {'source': self.version.complete,
'upstream': self.version.linux_upstream,
'abiname_base': self.abiname_version,
diff --git a/debian/bin/gencontrol_signed.py b/debian/bin/gencontrol_signed.py
index d8b0c531a467..7b534043d35f 100755
--- a/debian/bin/gencontrol_signed.py
+++ b/debian/bin/gencontrol_signed.py
@@ -36,6 +36,7 @@ class Gencontrol(Base):
'template': 'linux-image-%s-signed-template' % arch,
'upstreamversion': self.version.linux_upstream,
'version': self.version.linux_version,
+ 'source_suffix': '',
'source_upstream': self.version.upstream,
'abiname': self.abiname,
'imagebinaryversion': image_binary_version,
@@ -147,7 +148,15 @@ class Gencontrol(Base):
super(Gencontrol, self).do_flavour_setup(vars, makeflags, arch,
featureset, flavour, extra)
+ config_description = self.config.merge('description', arch, featureset,
+ flavour)
config_image = self.config.merge('image', arch, featureset, flavour)
+
+ vars['flavour'] = vars['localversion'][1:]
+ vars['class'] = config_description['hardware']
+ vars['longclass'] = (config_description.get('hardware-long')
+ or vars['class'])
+
vars['image-stem'] = config_image.get('install-stem')
makeflags['IMAGE_INSTALL_STEM'] = vars['image-stem']
@@ -187,15 +196,34 @@ class Gencontrol(Base):
image_package_name
+ ' (= %(imagebinaryversion)s) [%(arch)s]' % vars)
- packages_signed = self.process_packages(
+ packages_own = self.process_packages(
self.templates['control.image'], vars)
- merge_packages(packages, packages_signed, arch)
+ assert len(packages_own) == 1
+ cmds_binary_arch = ["$(MAKE) -f debian/rules.real install-signed "
+ "PACKAGE_NAME='%s' %s" %
+ (packages_own[0]['Package'], makeflags)]
+
+ if self.config.merge('packages').get('meta', True):
+ packages_meta = self.process_packages(
+ self.templates['control.image.meta'], vars)
+ assert len(packages_meta) == 1
- cmds_binary_arch = []
- for i in packages_signed:
- cmds_binary_arch += ["$(MAKE) -f debian/rules.real install-signed "
+ # Don't pretend to support build-profiles
+ del packages_meta[0]['Build-Profiles']
+
+ packages_own.extend(packages_meta)
+ cmds_binary_arch += ["$(MAKE) -f debian/rules.real install-meta "
"PACKAGE_NAME='%s' %s" %
- (i['Package'], makeflags)]
+ (packages_meta[0]['Package'], makeflags)]
+
+ # Include a bug presubj message directing reporters to the real
+ # image package.
+ self._substitute_file(
+ "image.meta.bug-presubj", vars,
+ self.template_debian_dir +
+ "/linux-image%s.bug-presubj" % vars['localversion'])
+
+ merge_packages(packages, packages_own, arch)
makefile.add('binary-arch_%s_%s_%s_real' % (arch, featureset, flavour),
cmds=cmds_binary_arch)