On Fri, Feb 07, 2014 at 08:42:11PM +0100, Sven Joachim wrote: > Yes, use <!profile.stage1> in anything you don't need for a stage1 build. > See https://blog.mister-muffin.de/2014/02/06/botch-updates/ and > deb-src-control(5).
I worked out a patch that uses the build profile specification. With the software in sid (dpkg, apt, ...) this actually works. I renamed the profile from "stage1" to "nobiarch", because it is actually possible to bootstrap a multilib cross compiler (albeit non-trivial). On the other hand it might also be useful to do native builds without multilib packages. As is, the patch is rejected by the archive due to #744246. > It certainly won't be allowed in the archive before jessie is stable. > Also apt, sbuild and pbuilder don't currently understand this syntax. This is not so certain anymore. apt and sbuild do understand this syntax. pbuilder has a patch. We are working with ftp masters to update their copy of python-apt such that dak no longer rejects such uploads. You have two options if you wish to go forward with this patch: a) Wait for #744246 to be fixed and upload. In that case, please send block 737946 by 744246 to the bug tracking system. b) Remove the hunk changing Build-Depends and upload as is. Apart from warnings about unknown "Build-Profiles" fields, the package will continue to work on older systems and current dpkg is able to build the package with profiles enabled. All you loose is the ability to do apt-get build-dep -Pnobiarch ncurses or dpkg-checkbuilddeps -Pnobiarch Note that this patch is actively being tested at https://jenkins.debian.net/view/rebootstrap/. Thanks for considering Helmut
diff -Nru ncurses-5.9+20140118/debian/changelog ncurses-5.9+20140118/debian/changelog --- ncurses-5.9+20140118/debian/changelog 2014-01-20 18:31:56.000000000 +0100 +++ ncurses-5.9+20140118/debian/changelog 2014-04-26 06:34:12.000000000 +0200 @@ -1,3 +1,10 @@ +ncurses (5.9+20140118-1.1) UNRELEASED; urgency=low + + * Non-maintainer upload. + * Support the nobiarch build profile for avoiding multilib. (Closes: #737946) + + -- Helmut Grohne <[email protected]> Sat, 26 Apr 2014 06:33:24 +0200 + ncurses (5.9+20140118-1) unstable; urgency=low * New upstream patchlevel. diff -Nru ncurses-5.9+20140118/debian/control ncurses-5.9+20140118/debian/control --- ncurses-5.9+20140118/debian/control 2014-01-19 21:31:31.000000000 +0100 +++ ncurses-5.9+20140118/debian/control 2014-04-26 06:40:07.000000000 +0200 @@ -5,7 +5,7 @@ Uploaders: Sven Joachim <[email protected]> Build-Depends: debhelper (>= 8.1.3), dpkg-dev (>= 1.15.7), - g++-multilib [amd64 i386 powerpc ppc64 s390 sparc], + g++-multilib [amd64 i386 powerpc ppc64 s390 sparc] <!profile.nobiarch>, libgpm-dev [linux-any], pkg-config, Standards-Version: 3.9.5 @@ -158,6 +158,7 @@ Depends: lib64tinfo5 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} Replaces: amd64-libs (<= 1.2) +Build-Profiles: !nobiarch Description: shared libraries for terminal handling (64-bit) The ncurses library routines are a terminal-independent method of updating character screens with reasonable optimization. @@ -177,6 +178,7 @@ libncurses5-dev (= ${binary:Version}), lib64c-dev, ${misc:Depends} Suggests: ncurses-doc Replaces: amd64-libs-dev (<= 1.2), lib64tinfo5-dev +Build-Profiles: !nobiarch Description: developer's libraries for ncurses (64-bit) The ncurses library routines are a terminal-independent method of updating character screens with reasonable optimization. @@ -193,6 +195,7 @@ Depends: lib32tinfo5 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} Replaces: ia32-libs (<< 1.10) +Build-Profiles: !nobiarch Description: shared libraries for terminal handling (32-bit) The ncurses library routines are a terminal-independent method of updating character screens with reasonable optimization. @@ -211,6 +214,7 @@ lib32tinfo-dev (= ${binary:Version}), libncurses5-dev (= ${binary:Version}), lib32c-dev, ${misc:Depends} Suggests: ncurses-doc +Build-Profiles: !nobiarch Description: developer's libraries for ncurses (32-bit) The ncurses library routines are a terminal-independent method of updating character screens with reasonable optimization. @@ -226,6 +230,7 @@ Priority: optional Depends: lib32tinfo5 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Build-Profiles: !nobiarch Description: shared libraries for terminal handling (wide character support) (32-bit) The ncurses library routines are a terminal-independent method of updating character screens with reasonable optimization. @@ -244,6 +249,7 @@ lib32tinfo-dev (= ${binary:Version}), libncursesw5-dev (= ${binary:Version}), lib32c-dev, ${misc:Depends} Suggests: ncurses-doc +Build-Profiles: !nobiarch Description: developer's libraries for ncursesw (32-bit) The ncurses library routines are a terminal-independent method of updating character screens with reasonable optimization. @@ -261,6 +267,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends} Replaces: lib64ncurses5 (<< 5.9-3) Breaks: lib64ncurses5 (<< 5.9-3) +Build-Profiles: !nobiarch Description: shared low-level terminfo library for terminal handling (64-bit) The ncurses library routines are a terminal-independent method of updating character screens with reasonable optimization. @@ -275,6 +282,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends} Replaces: lib32ncurses5 (<< 5.9-3) Breaks: lib32ncurses5 (<< 5.9-3) +Build-Profiles: !nobiarch Description: shared low-level terminfo library for terminal handling (32-bit) The ncurses library routines are a terminal-independent method of updating character screens with reasonable optimization. @@ -291,6 +299,7 @@ lib32c-dev, ${misc:Depends} Replaces: lib32ncurses5-dev (<< 5.9-3), lib32tinfo5-dev Breaks: lib32ncurses5-dev (<< 5.9-3) +Build-Profiles: !nobiarch Description: developer's library for the low-level terminfo library (32-bit) The ncurses library routines are a terminal-independent method of updating character screens with reasonable optimization. diff -Nru ncurses-5.9+20140118/debian/rules ncurses-5.9+20140118/debian/rules --- ncurses-5.9+20140118/debian/rules 2014-01-19 21:31:31.000000000 +0100 +++ ncurses-5.9+20140118/debian/rules 2014-04-26 06:39:32.000000000 +0200 @@ -97,6 +97,11 @@ usr_lib32 = /usr/lib32 endif +ifneq (,$(filter nobiarch,$(DEB_BUILD_PROFILES))) +override build_32= +override build_64= +endif + ifneq ($(findstring linux,$(DEB_HOST_GNU_SYSTEM)),) with_gpm = --with-gpm endif

