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)

Reply via email to