On Fri, Oct 25, 2013 at 10:11:24PM +0100, Ben Hutchings wrote:
> The meta-packages do not exist and cross-architecture dependencies are
> not supported by dak or britney. So for now, introduce our own
> meta-packages where we need them.
Okay as a workaround, but your solution is a bit overengineered.
I would do it this way:
- Add linux-compiler-@version@-x86/linux-compiler-@version@-s390 to
linux-tools:template/config.extra.in (not sure if support is currently
in there or if it needs to be copied from linux-latest) and don't try
to auto-generate them, it is a workaround, no solution.
- Add some sort of override to the relations:
[relations]
headers%gcc-4.8: linux-compiler-@version@-x86
> + 'base': {
> + 'compiler-multilib-names': config.SchemaItemList(),
> + },
"base" looks wrong as you introduce a new compiler-section.
> cmds_binary_arch = ["$(MAKE) -f debian/rules.real binary-arch-arch %s" % makeflags]
> + for compiler_multilib in self.config['base',]['compiler-multilib-names']:
> + if arch in self.config['base', 'compiler', compiler_multilib]['arches']:
> + cmds_binary_arch.append(
> + "$(MAKE) -f debian/rules.real install-dummy"
> + " DH_OPTIONS='-plinux-compiler-%s-%s' %s" %
> + (self.version.linux_version, compiler_multilib, makeflags))
This is the wrong direction. The real arch needs to specify what
compiler it needs, not the compiler which arch.
> + if compiler_multilib:
> + # We cannot directly depend on all valid compilers
> + # without specifying package:arch, which is not
> + # supported by dak. Use an intermediate meta-package.
> + package_headers['Depends'].extend(
> + PackageRelation('linux-compiler-%s-%s' %
> + (self.version.linux_version,
> + compiler_multilib)))
Needs to be specified as relation in the config, not hardcoded.
> + for compiler_multilib in self.config['base',]['compiler-multilib-names']:
> + if arch in self.config['base', 'compiler', compiler_multilib]['arches']:
> + vars['compiler-multilib'] = compiler_multilib
> + vars['compiler-arches'] = ' '.join(
> + self.config['base', 'compiler', compiler_multilib]['arches'])
> + vars['compiler-desc'] = \
> + self.config['base', 'compiler', compiler_multilib]['description']
> + package_compiler_meta, = \
> + self.process_packages(self.templates["control.compiler"],
> + vars)
> + # XXX: Should check that the compiler is the same for
> + # all arches building this meta-package.
> + package_compiler_meta['Depends'].extend(relations_compiler)
> + packages.append(package_compiler_meta)
Urgs.
> + [ Ben Hutchings ]
> + * [x86,s390,s390x] Introduce linux-compiler meta-packages to allow use of
> + foreign linux-headers packages with a native compiler
You miss arm. Or is armel and armhf not compatible?
Bastian
--
Where there's no emotion, there's no motive for violence.
-- Spock, "Dagger of the Mind", stardate 2715.1
Attachment:
signature.asc
Description: Digital signature