Package: src:glibc
Version: 2.19-7
Severity: wishlist
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

Even if one manages to build glibc with profiles stage1 or stage2, the
results are not installable due to unmet dependencies. The following
issues occur:

 * stage1 libc6-dev Depends on libc6 which is not built in stage1
 * stage2 libc6 Depends on libgcc1 which is not built by gcc stage2

This bug shall only cover the second (easier) part and I shall report a
different bug for the first issue at a later time.

When we briefly discussed this issue, there was consensus that substvars
would be the tool to address it. So the attached patch turns those
libgcc dependencies into ${libgcc:Depends} and suppresses them for
stage2. It's a bit unfortunate that dependency information keeps
scattering over control and rules.d/debhelper.mk, but I didn't find a
better way.

Helmut
diff -Nru glibc-2.19/debian/changelog glibc-2.19/debian/changelog
--- glibc-2.19/debian/changelog 2014-07-13 01:31:22.000000000 +0200
+++ glibc-2.19/debian/changelog 2014-07-20 22:07:19.000000000 +0200
@@ -1,3 +1,10 @@
+glibc (2.19-7.1) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * Don't emit dependencies on libgcc when building stage2. (Closes: #-1)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Sun, 20 Jul 2014 22:06:57 +0200
+
 glibc (2.19-7) unstable; urgency=high
 
   * debian/patches/localedata/unsubmitted-tst-setlocale3-ENV.diff: Apply
diff -Nru glibc-2.19/debian/control.in/libc glibc-2.19/debian/control.in/libc
--- glibc-2.19/debian/control.in/libc   2014-06-27 04:28:51.000000000 +0200
+++ glibc-2.19/debian/control.in/libc   2014-07-20 22:09:20.000000000 +0200
@@ -3,7 +3,7 @@
 Section: libs
 Priority: required
 Multi-Arch: same
-Depends: ${shlibs:Depends}, libgcc1 [!hppa !m68k], libgcc2 [m68k], libgcc4 
[hppa]
+Depends: ${shlibs:Depends}, ${libgcc:Depends}
 Recommends: libc6-i686 [i386], libc0.1-i686 [kfreebsd-i386], libc0.3-i686 
[hurd-i386] 
 Suggests: glibc-doc, debconf | debconf-2.0, locales [!hurd-i386]
 Provides: ${locale-compat:Depends}, libc6-sparcv9b [sparc sparc64]
diff -Nru glibc-2.19/debian/rules.d/debhelper.mk 
glibc-2.19/debian/rules.d/debhelper.mk
--- glibc-2.19/debian/rules.d/debhelper.mk      2014-07-10 21:49:24.000000000 
+0200
+++ glibc-2.19/debian/rules.d/debhelper.mk      2014-07-20 22:08:45.000000000 
+0200
@@ -180,6 +180,9 @@
        # Generate common substvars files.
        echo "locale:Depends=$(shell perl debian/debver2localesdep.pl 
$(LOCALES_DEP_VER))" > tmp.substvars
        echo "locale-compat:Depends=$(shell perl debian/debver2localesdep.pl 
$(LOCALES_COMPAT_VER))" >> tmp.substvars
+ifeq ($(filter stage2,$(DEB_BUILD_PROFILES)),)
+       echo 'libgcc:Depends=libgcc1 [!hppa !m68k], libgcc2 [m68k], libgcc4 
[hppa]' >> tmp.substvars
+endif
 
        for pkg in $(DEB_ARCH_REGULAR_PACKAGES) $(DEB_INDEP_REGULAR_PACKAGES) 
$(DEB_UDEB_PACKAGES); do \
          cp tmp.substvars debian/$$pkg.substvars; \

Reply via email to