Package: linux Version: linux-3.6.4-1~experimental.1 Severity: wishlist Tags: experimental patch
In order to bootstrap a new architecture, a cross-toolchain must be built. A suitable linux-libc-dev_$arch package is needed for this. In order to make this (and cross-toolchain builds in general) automatable, the packaging needs to be able to build just this package. The attached patch provides this functionality. It also includes notation for the corresponding reduction in needed build-dependencies which is an important part of the automation. However this part of the patch cannot be applied until dpkg build-dep parsing is updated to not choke on this. Action on this is pending further discussion of #661538 In the meantime the packaging changes in the rules file are worth having on their own as they allow the staged build functionality (just using dpkg-buildpackage -d to ignore the missing build-deps) -- System Information: Debian Release: 6.0.6 APT prefers stable APT policy: (990, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.32.33-kvm-i386-20111128-dirty (SMP w/1 CPU core) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash
\ No newline at end of file --- linux-3.6.4/debian/control 2012-11-15 11:56:31.000000000 +0000 +++ linux-3.6.4/debian/control 2012-12-04 02:23:27.000000000 +0000 @@ -4,7 +4,7 @@ Maintainer: Debian Kernel Team <debian-ker...@lists.debian.org> Uploaders: Bastian Blank <wa...@debian.org>, Frederik Schüler <f...@debian.org>, maximilian attems <m...@debian.org>, Ben Hutchings <b...@decadent.org.uk> Standards-Version: 3.9.2 -Build-Depends: debhelper (>> 7), cpio, kmod | module-init-tools, python (>= 2.6.6-3~), lzma [armel], kernel-wedge (>= 2.84), quilt, patchutils, gcc-4.6 [alpha amd64 armel armhf i386 ia64 m68k mips mipsel powerpc ppc64 s390 s390x sh4 sparc sparc64], gcc-4.4 [hppa], binutils-hppa64 [hppa], gcc-4.4-hppa64 [hppa] +Build-Depends: debhelper (>> 7), cpio <!stage1>, kmod <!stage1> | module-init-tools <!stage1>, python (>= 2.6.6-3~), lzma [armel], kernel-wedge (>= 2.84) <!stage1>, quilt, patchutils, gcc-4.7 [arm64] <!stage1>, gcc-4.6 [alpha amd64 armel armhf i386 ia64 m68k mips mipsel powerpc ppc64 s390 s390x sh4 sparc sparc64], gcc-4.4 [hppa], binutils-hppa64 [hppa], gcc-4.4-hppa64 [hppa] Build-Depends-Indep: bzip2, xmlto Vcs-Svn: svn://svn.debian.org/svn/kernel/dists/trunk/linux/ Vcs-Browser: http://anonscm.debian.org/viewvc/kernel/dists/trunk/linux/ --- linux-3.6.4/debian/rules 2012-11-15 11:56:30.000000000 +0000 +++ linux-3.6.4/debian/rules 2012-12-04 02:13:41.000000000 +0000 @@ -34,18 +34,30 @@ build: build-arch build-indep +#for stage1 don't try to do base setup - just build the libc-headers +ifneq (,$(filter stage1,$(DEB_BUILD_PROFILE))) + +build-arch: debian/control + +build-indep: debian/control + +else + build-arch: debian/control $(STAMPS_DIR)/build-arch-base -$(STAMPS_DIR)/build-arch-base: $(STAMPS_DIR)/setup-base +$(STAMPS_DIR)/build-arch-base: $(STAMPS_DIR)/setup-base dh_testdir $(MAKE) -f debian/rules.gen build-arch_$(DEB_HOST_ARCH) @$(stamp) + build-indep: debian/control $(STAMPS_DIR)/build-indep-base $(STAMPS_DIR)/build-indep-base: $(STAMPS_DIR)/setup-base dh_testdir $(MAKE) -f debian/rules.gen build-indep @$(stamp) +endif + DIR_ORIG = ../orig/$(SOURCE)-$(VERSION_UPSTREAM) TAR_ORIG_NAME = $(SOURCE)_$(VERSION_UPSTREAM).orig.tar.xz TAR_ORIG = $(firstword $(wildcard ../$(TAR_ORIG_NAME)) $(wildcard ../orig/$(TAR_ORIG_NAME))) @@ -75,10 +87,20 @@ dh_testdir $(MAKE) -f debian/rules.gen binary-indep +#for stage1 don't try to do base setup - just build the libc-headers +ifneq (,$(filter stage1,$(DEB_BUILD_PROFILE))) +binary-arch: + dh_testdir + $(MAKE) -f debian/rules.gen binary-libc-dev_$(DEB_HOST_ARCH) + +else + binary-arch: $(STAMPS_DIR)/build-arch-base dh_testdir $(MAKE) -f debian/rules.gen binary-arch_$(DEB_HOST_ARCH) +endif + binary: binary-indep binary-arch CONTROL_FILES = debian/changelog $(wildcard debian/templates/*.in)