[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#642988: [RFC/PATCH] leave out linux-headers packages by default in experimental



Ben Hutchings wrote:
> On Fri, 2011-09-30 at 21:31 -0500, Jonathan Nieder wrote:

>> # Summary: [experimental] linux-headers depends on linux-kbuild-3.1.0
>> #  which is not in the archive
>> # Workaround: build src:linux-tools from svn.debian.org.  Or don't use
>> #  out-of-tree modules.
>
> This keeps happening, because we can't really be bothered to support OOT
> crap in experimental.  I'm tempted to resolve this by not building the
> linux-headers packages in experimental.

That sounds like the right thing to do.  Could be as simple as this.
With this patch:

- An ordinary build of an experimental kernel with "debian/rules
  binary" does not build kernel-headers packages.

- However, the headers are still advertised in debian/control and one
  can force headers to be built with a command like

	fakeroot debian/rules DEBIAN_KERNEL_HEADERS=YesPlease

  or

	fakeroot make -f debian/rules.gen \
		binary-arch_amd64_none_real DEBIAN_KERNEL_HEADERS=Yep

Just a sketch, untested.  Sane?
---
 debian/bin/gencontrol.py |    1 +
 debian/rules.real        |   16 +++++++++++++---
 2 files changed, 14 insertions(+), 3 deletions(-)
 mode change 100644 => 100755 debian/bin/gencontrol.py

diff --git a/debian/bin/gencontrol.py b/debian/bin/gencontrol.py
old mode 100644
new mode 100755
index b25433fd..6ff37182
--- a/debian/bin/gencontrol.py
+++ b/debian/bin/gencontrol.py
@@ -26,6 +26,7 @@ class Gencontrol(Base):
             'UPSTREAMVERSION': self.version.linux_upstream,
             'ABINAME': self.abiname,
             'SOURCEVERSION': self.version.complete,
+            'HEADERS': (self.changelog[0].distribution != 'experimental')
         })
 
     def do_main_packages(self, packages, vars, makeflags, extra):
diff --git a/debian/rules.real b/debian/rules.real
index 649f10ad..c8c39910 100644
--- a/debian/rules.real
+++ b/debian/rules.real
@@ -26,6 +26,9 @@ endif
 ifdef DEBIAN_KERNEL_JOBS
   JOBS_ARG = -j$(DEBIAN_KERNEL_JOBS)
 endif
+ifdef DEBIAN_KERNEL_HEADERS
+  override HEADERS = True
+endif
 
 setup_env := env -u ABINAME -u ARCH -u FEATURESET -u FLAVOUR -u VERSION -u LOCALVERSION
 setup_env += DISTRIBUTION_OFFICIAL_BUILD=1 DISTRIBUTION_UPLOADER=$(UPLOADER) DISTRIBUTION_VERSION="$(SOURCEVERSION)"
@@ -38,18 +41,25 @@ MAKE_PERF_VARS = prefix=/usr perfexecdir=share/perf_$(VERSION)-core NO_PERL=1 V=
 #
 # Targets
 #
-binary-arch-arch: install-headers_$(ARCH)
 binary-arch-arch: install-libc-dev_$(ARCH)
+ifeq ($(HEADERS),True)
+  binary-arch-arch: install-headers_$(ARCH)
+endif
 ifneq ($(filter alpha amd64 armel armhf hppa i386 powerpc ppc64 s390 s390x sh4 sparc sparc64,$(ARCH)),)
   binary-arch-arch: install-tools_$(ARCH)
 endif
-binary-arch-featureset: install-headers_$(ARCH)_$(FEATURESET)
+binary-arch-featureset:
+ifeq ($(HEADERS),True)
+  binary-arch-featureset: install-headers_$(ARCH)_$(FEATURESET)
+endif
 binary-arch-flavour: install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_$(TYPE)
 ifeq ($(DEBUG),True)
   binary-arch-flavour: install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
 endif
 ifeq ($(MODULES),True)
-  binary-arch-flavour: install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
+  ifeq ($(HEADERS),True)
+    binary-arch-flavour: install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
+  endif
 endif
 
 binary-indep: install-doc
-- 
1.7.7.rc1




Reply to: