diff --git a/debian/bin/gencontrol.py b/debian/bin/gencontrol.py index a7dea7d92..e1881d08d 100755 --- a/debian/bin/gencontrol.py +++ b/debian/bin/gencontrol.py @@ -154,7 +154,7 @@ class Gencontrol(Base): cmds_binary_arch = ["$(MAKE) -f debian/rules.real binary-arch-arch %s" % makeflags] makefile.add('binary-arch_%s_real' % arch, cmds=cmds_binary_arch) - # Shortcut to aid architecture bootstrapping + # For stage1 build profile makefile.add('binary-libc-dev_%s' % arch, ['source_none_real'], ["$(MAKE) -f debian/rules.real install-libc-dev_%s %s" % @@ -187,6 +187,10 @@ class Gencontrol(Base): raise RuntimeError('kernel-wedge exited with code %d' % kw_proc.returncode) + # kernel-wedge currently chokes on Build-Profiles so add it now + for package in udeb_packages: + package['Build-Profiles'] = '' + self.merge_packages(packages, udeb_packages, arch) # These packages must be built after the per-flavour/ @@ -265,9 +269,14 @@ class Gencontrol(Base): compiler = config_entry_base.get('compiler', 'gcc') + # Work out dependency from linux-headers to compiler. Strip + # restrictions, as they don't apply to binary Depends. relations_compiler_headers = PackageRelation( config_entry_relations.get('headers%' + compiler) or config_entry_relations.get(compiler)) + for group in relations_compiler_headers: + for entry in group: + entry.restrictions = [] relations_compiler_build_dep = PackageRelation(config_entry_relations[compiler]) for group in relations_compiler_build_dep: diff --git a/debian/changelog b/debian/changelog index 04cfc83ec..1ee103257 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,8 @@ linux (4.3-1~exp2) UNRELEASED; urgency=medium * mv643xx_eth: Re-enable TSO, fixed upstream in 4.3 * debian/control: Move patchutils from Build-Depends to Build-Depends-Indep, as we only use filterdiff when building linux-source- + * debian/control,debian/rules: Support a 'stage1' build profile which + builds only linux-libc-dev (Closes: #695243) -- Ben Hutchings Sat, 07 Nov 2015 14:18:48 +0000 diff --git a/debian/config/defines b/debian/config/defines index 9944def96..d16b107d2 100644 --- a/debian/config/defines +++ b/debian/config/defines @@ -46,11 +46,11 @@ type: plain [relations] # compilers -gcc-4.6: gcc-4.6 -gcc-4.7: gcc-4.7 -gcc-4.8: gcc-4.8 -gcc-4.9: gcc-4.9 -gcc-5: gcc-5 +gcc-4.6: gcc-4.6 +gcc-4.7: gcc-4.7 +gcc-4.8: gcc-4.8 +gcc-4.9: gcc-4.9 +gcc-5: gcc-5 # initramfs-generators initramfs-fallback: linux-initramfs-tool diff --git a/debian/config/hppa/defines b/debian/config/hppa/defines index 48991891e..b8572021c 100644 --- a/debian/config/hppa/defines +++ b/debian/config/hppa/defines @@ -22,5 +22,5 @@ hardware: multiprocessor 64-bit PA-RISC hardware-long: HP PA-RISC 64-bit SMP systems with support for more than 4 GB RAM [relations] -gcc-4.9: gcc-4.9, binutils-hppa64, gcc-4.9-hppa64 +gcc-4.9: gcc-4.9 , binutils-hppa64 , gcc-4.9-hppa64 diff --git a/debian/rules b/debian/rules index d0f9a0a8b..87713ec16 100755 --- a/debian/rules +++ b/debian/rules @@ -15,6 +15,7 @@ endif ifdef DEBIAN_KERNEL_JOBS MAKEFLAGS += -j$(DEBIAN_KERNEL_JOBS) endif +BUILD_STAGE1 := $(filter stage1,$(DEB_BUILD_PROFILES)) .NOTPARALLEL: @@ -30,21 +31,31 @@ build: build-arch build-indep build-arch: debian/control dh_testdir +ifndef BUILD_STAGE1 $(MAKE) -f debian/rules.gen build-arch_$(DEB_HOST_ARCH) +endif build-indep: debian/control dh_testdir +ifndef BUILD_STAGE1 $(MAKE) -f debian/rules.gen build-indep +endif binary: binary-indep binary-arch binary-arch: dh_testdir +ifdef BUILD_STAGE1 + $(MAKE) -f debian/rules.gen binary-libc-dev_$(DEB_HOST_ARCH) +else $(MAKE) -f debian/rules.gen binary-arch_$(DEB_HOST_ARCH) +endif binary-indep: dh_testdir +ifndef BUILD_STAGE1 $(MAKE) -f debian/rules.gen binary-indep +endif DIR_ORIG = ../orig/$(SOURCE)-$(VERSION_UPSTREAM) TAR_ORIG_NAME = $(SOURCE)_$(VERSION_UPSTREAM).orig.tar.xz diff --git a/debian/templates/control.extra.in b/debian/templates/control.extra.in index 8841020f2..db857b4e2 100644 --- a/debian/templates/control.extra.in +++ b/debian/templates/control.extra.in @@ -1,4 +1,5 @@ Package: linux-compiler-gcc-4.9-arm +Build-Profiles: Depends: gcc-4.9, ${misc:Depends} Architecture: armel armhf Multi-Arch: foreign @@ -7,6 +8,7 @@ Description: Compiler for Linux on ARM (meta-package) Linux on armel and armhf. Package: linux-compiler-gcc-4.8-s390 +Build-Profiles: Depends: gcc-4.8, ${misc:Depends} Architecture: s390 s390x Multi-Arch: foreign @@ -15,6 +17,7 @@ Description: Compiler for Linux on IBM zSeries (meta-package) Linux on s390 and s390x. Package: linux-compiler-gcc-5-x86 +Build-Profiles: Depends: gcc-5, ${misc:Depends} Architecture: amd64 i386 x32 Multi-Arch: foreign diff --git a/debian/templates/control.headers.arch.in b/debian/templates/control.headers.arch.in index d209d9611..75bfd50e5 100644 --- a/debian/templates/control.headers.arch.in +++ b/debian/templates/control.headers.arch.in @@ -1,4 +1,5 @@ Package: linux-headers-@abiname@-all +Build-Profiles: Depends: linux-headers-@abiname@-all-${kernel:Arch} (= ${binary:Version}), ${misc:Depends} Description: All header files for Linux @version@ (meta-package) This package depends against all architecture-specific kernel header files @@ -6,6 +7,7 @@ Description: All header files for Linux @version@ (meta-package) kernel modules. Package: linux-headers-@abiname@-all-@arch@ +Build-Profiles: Depends: ${misc:Depends} Description: All header files for Linux @version@ (meta-package) This package depends against all architecture-specific kernel header files diff --git a/debian/templates/control.headers.featureset.in b/debian/templates/control.headers.featureset.in index d3f9dfd63..f185e77ec 100644 --- a/debian/templates/control.headers.featureset.in +++ b/debian/templates/control.headers.featureset.in @@ -1,4 +1,5 @@ Package: linux-headers-@abiname@-common@localversion_headers@ +Build-Profiles: Depends: ${misc:Depends} Description: Common header files for Linux @abiname@@localversion_headers@ This package provides the architecture-specific common kernel header files diff --git a/debian/templates/control.headers.in b/debian/templates/control.headers.in index 060faff90..e399b8ff5 100644 --- a/debian/templates/control.headers.in +++ b/debian/templates/control.headers.in @@ -1,4 +1,5 @@ Package: linux-headers-@abiname@@localversion@ +Build-Profiles: Depends: linux-headers-@abiname@-common@localversion_headers@ (= ${binary:Version}), linux-kbuild-@version@, ${misc:Depends} Description: Header files for Linux @abiname@@localversion@ This package provides the architecture-specific kernel header files diff --git a/debian/templates/control.image-dbg.in b/debian/templates/control.image-dbg.in index 1c067f6f4..39cbe9c86 100644 --- a/debian/templates/control.image-dbg.in +++ b/debian/templates/control.image-dbg.in @@ -1,4 +1,5 @@ Package: linux-image-@abiname@@localversion@-dbg +Build-Profiles: Depends: ${misc:Depends} Section: debug Priority: extra diff --git a/debian/templates/control.image.type-plain.in b/debian/templates/control.image.type-plain.in index d8213bf4b..38f576973 100644 --- a/debian/templates/control.image.type-plain.in +++ b/debian/templates/control.image.type-plain.in @@ -1,4 +1,5 @@ Package: linux-image-@abiname@@localversion@ +Build-Profiles: Provides: linux-modules-@abiname@@localversion@ Pre-Depends: debconf | debconf-2.0 Depends: kmod, linux-base (>= 3~), ${misc:Depends} diff --git a/debian/templates/control.image.type-standalone.in b/debian/templates/control.image.type-standalone.in index 1c99d6e00..8e132b65c 100644 --- a/debian/templates/control.image.type-standalone.in +++ b/debian/templates/control.image.type-standalone.in @@ -1,4 +1,5 @@ Package: linux-image-@abiname@@localversion@ +Build-Profiles: Provides: linux-image Suggests: linux-doc-@version@ Depends: ${misc:Depends} diff --git a/debian/templates/control.main.in b/debian/templates/control.main.in index 545617d96..a2c28ba8e 100644 --- a/debian/templates/control.main.in +++ b/debian/templates/control.main.in @@ -1,4 +1,5 @@ Package: linux-source-@version@ +Build-Profiles: Architecture: all Section: kernel Depends: binutils, xz-utils, ${misc:Depends} @@ -13,6 +14,7 @@ Description: Linux kernel source for version @version@ with Debian patches upstream maintainers. Package: linux-doc-@version@ +Build-Profiles: Architecture: all Depends: ${misc:Depends} Section: doc @@ -26,6 +28,7 @@ Description: Linux kernel specific documentation for version @version@ for the detailed description of the contents. Package: linux-manual-@version@ +Build-Profiles: Architecture: all Depends: ${misc:Depends} Section: doc @@ -44,6 +47,7 @@ Description: Linux kernel API manual pages for version @version@ documentation in other formats is free from such restriction. Package: linux-support-@abiname@ +Build-Profiles: Architecture: all Section: devel Depends: ${python3:Depends}, ${misc:Depends} diff --git a/debian/templates/control.source.in b/debian/templates/control.source.in index c791bb04a..6152aed10 100644 --- a/debian/templates/control.source.in +++ b/debian/templates/control.source.in @@ -3,8 +3,9 @@ Priority: optional Maintainer: Debian Kernel Team Uploaders: Bastian Blank , maximilian attems , Ben Hutchings Standards-Version: 3.9.5 -Build-Depends: debhelper, cpio, kmod, python3, xz-utils, kernel-wedge, quilt, bc -Build-Depends-Indep: patchutils, xmlto +Build-Depends: debhelper, python3, quilt, + cpio , kmod , xz-utils , kernel-wedge , bc +Build-Depends-Indep: patchutils , xmlto Vcs-Git: https://anonscm.debian.org/git/kernel/linux.git Vcs-Browser: https://anonscm.debian.org/cgit/kernel/linux.git Homepage: https://www.kernel.org/ diff --git a/debian/templates/control.xen-linux-system.in b/debian/templates/control.xen-linux-system.in index d60a2ee11..c30da13d1 100644 --- a/debian/templates/control.xen-linux-system.in +++ b/debian/templates/control.xen-linux-system.in @@ -1,4 +1,5 @@ Package: xen-linux-system-@abiname@@localversion@ +Build-Profiles: Section: metapackages Depends: linux-image-@abiname@@localversion@ (= ${binary:Version}), ${misc:Depends} Description: Xen system with Linux @upstreamversion@ on @class@ (meta-package)