+++ Santiago Vila [2012-09-24 18:22 +0200]: > On Mon, 24 Sep 2012, Wookey wrote: > > >Santiago, have you reached an opinion on whether you'd prefer to > >1) split the gettext package into an MA:same libgettext-dev part and > >an MA:foreign gettext part (and change corresponding dependencies), or > >2) mark it MA:allowed and change all the dependencies that only need the > >build-tool part to 'gettext:any' ? > > I think splitting is probably the best option here, following Steve's advice: > > Steve Langasek wrote: > >You could split the packages and put the issue to bed once and for all > > > The thing I don't like about the proposed patch is that it creates > a single new package which is really the combination of two > different -dev packages. > > So my plan would be to split it "the right way", by creating two > additional packages: libasprintf-dev and libgettextpo-dev. > > We would then drop the "Provides:" in gettext, we would not have > to add them anywhere, and it would be clear that those names > are the right ones to be put in a build-depends.
OK. As I was getting very bored of marking Build-deps 'gettext:any' in Ubuntu (and they'd all have to be changed back eventually anyway), I've done the work to extend PJs patch to split into two libraries. Not yet very carefully checked or tested, but it looks OK. This patch also include the eglibc-2.16 fix from #693361 I can do one without that if you prefer. Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/
diff -Nru gettext-0.18.1.1/debian/changelog gettext-0.18.1.1/debian/changelog --- gettext-0.18.1.1/debian/changelog 2012-06-07 10:08:07.000000000 +0000 +++ gettext-0.18.1.1/debian/changelog 2012-11-15 18:44:38.000000000 +0000 @@ -1,3 +1,11 @@ +gettext (0.18.1.1-10) precise; urgency=low + + * Split out libgettextpo-dev and libasprintf-dev for multiarch + dependencies. Thanks to P.J McDermott for core patch. (Closes: #683751) + * Fix FTBFS on eglibc-2.16 (due to gets removal/outdated gnulib) + + -- Wookey <woo...@wookware.org> Thu, 15 Nov 2012 17:04:09 +0000 + gettext (0.18.1.1-9) unstable; urgency=low * Build with hardened build flags. diff -Nru gettext-0.18.1.1/debian/control gettext-0.18.1.1/debian/control --- gettext-0.18.1.1/debian/control 2012-06-07 10:00:00.000000000 +0000 +++ gettext-0.18.1.1/debian/control 2012-11-15 17:36:27.000000000 +0000 @@ -17,7 +17,8 @@ Package: gettext Architecture: any -Depends: ${shlibs:Depends}, libgettextpo0 (= ${binary:Version}), libasprintf0c2 (= ${binary:Version}), gettext-base, dpkg (>= 1.15.4) | install-info +Multi-Arch: foreign +Depends: ${shlibs:Depends}, gettext-base, dpkg (>= 1.15.4) | install-info Recommends: curl | wget | lynx-cur, autopoint Breaks: autopoint (<= 0.17-11) Suggests: gettext-doc @@ -81,3 +82,21 @@ This package contains the libasprintf shared library which makes the C formatted output routines (fprintf et al.) usable in C++ programs, for use with the <string> strings and the <iostream> streams. + +Package: libgettextpo-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Depends: libgettextpo0 (= ${binary:Version}) +Suggests: gettext-doc +Description: GNU Internationalization library development files + This package contains development files for the libgettextpo library. + +Package: libasprintf-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Depends: libasprintf0c2 (= ${binary:Version}) +Suggests: gettext-doc +Description: GNU Internationalization library development files + This package contains development files for the libasprintf library. diff -Nru gettext-0.18.1.1/debian/gettext.lintian-overrides gettext-0.18.1.1/debian/gettext.lintian-overrides --- gettext-0.18.1.1/debian/gettext.lintian-overrides 2012-04-28 14:45:44.000000000 +0000 +++ gettext-0.18.1.1/debian/gettext.lintian-overrides 2012-11-15 17:27:18.000000000 +0000 @@ -5,10 +5,6 @@ gettext: ldconfig-symlink-missing-for-shlib usr/lib/libgnuintl.so.8 usr/lib/preloadable_libintl.so libgnuintl.so.8 gettext: shlib-missing-in-control-file libgnuintl 8 for usr/lib/preloadable_libintl.so # -# gettext Provides libgettextpo-dev, so yes, it is a dev-pkg. -# -gettext: non-dev-pkg-with-shlib-symlink usr/lib/libgettextpo.so.0.5.1 usr/lib/libgettextpo.so -# # These libraries are for internal use only and should not be used by # other programs. # @@ -21,3 +17,4 @@ gettext: no-shlibs-control-file usr/lib/preloadable_libintl.so gettext: no-shlibs-control-file usr/lib/libgettextsrc-0.18.1.so gettext: no-shlibs-control-file usr/lib/libgettextlib-0.18.1.so +gettext: shlib-in-multi-arch-foreign-package usr/lib/preloadable_libintl.so \ No newline at end of file diff -Nru gettext-0.18.1.1/debian/patches/eglibc-21.6-ftbfs-nogets gettext-0.18.1.1/debian/patches/eglibc-21.6-ftbfs-nogets --- gettext-0.18.1.1/debian/patches/eglibc-21.6-ftbfs-nogets 1970-01-01 00:00:00.000000000 +0000 +++ gettext-0.18.1.1/debian/patches/eglibc-21.6-ftbfs-nogets 2012-11-15 19:14:59.000000000 +0000 @@ -0,0 +1,71 @@ +Description: Allow package to build with glibc-2.16 + 'gets' has been removed from glibc-2.16 but gnulib still refers to it + causing build failures. + The simple fix for now is just to put a check around the reference in + lib/stdio.in.h + A new release made with a new gnulib is a better fix. + . + gettext (0.18.1.1-10) precise; urgency=low + . + * Fix FTBFS on eglibc-2.16 (due to gets removal/outdated gnulib) +Author: Wookey <woo...@wookware.org> +Last-Update: 2012-11-5 +Bug : http://lists.gnu.org/archive/html/bug-gnulib/2012-03/msg00186.html +Bug-Debian: http://bugs.debian.org/687986 +Forwarded: no + +Index: gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h +=================================================================== +--- gettext-0.18.1.1.orig/gettext-tools/gnulib-lib/stdio.in.h 2012-11-15 18:46:24.000000000 +0000 ++++ gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h 2012-11-15 19:14:37.000000000 +0000 +@@ -138,10 +138,12 @@ + #endif + + /* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ ++ so any use of gets warrants an unconditional warning. */ + #undef gets ++#ifdef HAVE_RAW_DECL_GETS + _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); ++#endif ++#undef gets + + #if @GNULIB_FOPEN@ + # if @REPLACE_FOPEN@ +Index: gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h +=================================================================== +--- gettext-0.18.1.1.orig/gettext-runtime/gnulib-lib/stdio.in.h 2010-05-17 19:56:12.000000000 +0000 ++++ gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h 2012-11-15 19:11:15.000000000 +0000 +@@ -138,10 +138,11 @@ + #endif + + /* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ ++ so any use of gets warrants an unconditional warning. */ + #undef gets ++#ifdef HAVE_RAW_DECL_GETS + _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); ++#endif + + #if @GNULIB_FOPEN@ + # if @REPLACE_FOPEN@ +Index: gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h +=================================================================== +--- gettext-0.18.1.1.orig/gettext-tools/libgettextpo/stdio.in.h 2010-05-17 19:58:03.000000000 +0000 ++++ gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h 2012-11-15 19:11:53.000000000 +0000 +@@ -138,10 +138,11 @@ + #endif + + /* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ ++ so any use of gets warrants an unconditional warning. */ + #undef gets ++#ifdef HAVE_RAW_DECL_GETS + _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); ++#endif + + #if @GNULIB_FOPEN@ + # if @REPLACE_FOPEN@ diff -Nru gettext-0.18.1.1/debian/patches/series gettext-0.18.1.1/debian/patches/series --- gettext-0.18.1.1/debian/patches/series 2012-05-16 10:00:56.000000000 +0000 +++ gettext-0.18.1.1/debian/patches/series 2012-11-15 18:46:24.000000000 +0000 @@ -5,3 +5,4 @@ 05-quotes-around-pwd-in-project-id 06-msgfmt-default-little-endian 99-config-guess-config-sub +eglibc-21.6-ftbfs-nogets diff -Nru gettext-0.18.1.1/debian/rules gettext-0.18.1.1/debian/rules --- gettext-0.18.1.1/debian/rules 2012-06-07 10:07:34.000000000 +0000 +++ gettext-0.18.1.1/debian/rules 2012-11-18 02:48:35.000000000 +0000 @@ -56,13 +56,15 @@ rm -f `find . -name "*~"` rm -rf debian/tmp debian/files* core debian/substvars debian/a.out cd debian && rm -rf gettext-base gettext gettext-el gettext-doc \ - autopoint libgettextpo0 libasprintf0c2 + autopoint libgettextpo0 libasprintf0c2 libgettextpo-dev libasprintf-dev binary-arch: build debian/rules gettext-base debian/rules gettext debian/rules libgettextpo0 debian/rules libasprintf0c2 + debian/rules libgettextpo-dev + debian/rules libasprintf-dev binary-indep: build debian/rules gettext-el @@ -136,10 +138,14 @@ cd debian/$@/usr/share/doc/$@ && gzip -9n changelog changelog.Debian cp -a debian/tmp/usr/bin debian/$@/usr cp -a debian/tmp/usr/lib debian/$@/usr - cp -a debian/tmp/usr/include debian/$@/usr + rm -f debian/$@/usr/lib/libgettextsrc.so + rm -f debian/$@/usr/lib/libgettextlib.so cp -a debian/tmp/usr/share/info debian/$@/usr/share - cp -a debian/tmp/usr/share/aclocal debian/$@/usr/share + rm -f debian/$@/usr/share/info/autosprintf.info cp -a debian/tmp/usr/share/gettext debian/$@/usr/share + rm -rf debian/$@/usr/share/gettext/intl + rm -f debian/$@/usr/share/gettext/config.rpath + rm -f debian/$@/usr/share/gettext/gettext.h rm -f debian/$@/usr/share/gettext/libintl.jar ifeq (,$(findstring %$(DEB_HOST_ARCH)%,$(NOJAVA_ARCHS))) mv debian/$@/usr/share/gettext/gettext.jar debian/$@/usr/share/java @@ -149,18 +155,13 @@ cp -a debian/tmp/usr/share/locale debian/$@/usr/share find debian/$@/usr/share/locale | grep gettext-runtime | xargs rm cd debian/$@/usr/bin && rm -f gettext ngettext envsubst gettext.sh - cd debian/$@/usr/lib && rm -f libasprintf.so.* libgettextpo.so.* *.la - install -d debian/$@/usr/lib/$(DEB_HOST_MULTIARCH) - cd debian/$@/usr/lib && mv libgettextpo.so $(DEB_HOST_MULTIARCH) - cd debian/$@/usr/lib && mv libasprintf.so $(DEB_HOST_MULTIARCH) + cd debian/$@/usr/lib && rm -f libasprintf* libgettextpo* *.la cd debian/$@/usr/share/man/man1 && \ rm -f gettext.1 ngettext.1 envsubst.1 cd debian/$@/usr/lib && chmod 644 libgettextlib* libgettextsrc* $(STRIP) debian/$@/usr/lib/preloadable_libintl.so $(STRIP) debian/$@/usr/lib/libgettextlib*.so $(STRIP) debian/$@/usr/lib/libgettextsrc*.so - $(ATRIP) debian/$@/usr/lib/libasprintf.a - $(ATRIP) debian/$@/usr/lib/libgettextpo.a rm -f debian/$@/usr/bin/autopoint rm -f debian/$@/usr/share/man/man1/autopoint.1 rm -f debian/$@/usr/share/gettext/archive.git.tar.gz @@ -219,6 +220,53 @@ chmod -R u+w,go=rX debian/$@ dpkg --build debian/$@ .. +libgettextpo-dev: build + rm -rf debian/$@ + install -d debian/$@/DEBIAN debian/$@/usr/share/doc/$@ + cp -p debian/copyright debian/$@/usr/share/doc/$@ + cp -p ChangeLog debian/$@/usr/share/doc/$@/changelog + cp -p debian/changelog debian/$@/usr/share/doc/$@/changelog.Debian + cd debian/$@/usr/share/doc/$@ && gzip -9n changelog changelog.Debian + install -d debian/$@/usr/lib/$(DEB_HOST_MULTIARCH) + cp -a debian/tmp/usr/lib/libgettextpo.a debian/$@/usr/lib/$(DEB_HOST_MULTIARCH) + cp -a debian/tmp/usr/lib/libgettextpo.so debian/$@/usr/lib/$(DEB_HOST_MULTIARCH) + cp -a debian/tmp/usr/include debian/$@/usr + install -d debian/$@/usr/share/gettext + cp -a debian/tmp/usr/share/gettext/intl debian/$@/usr/share/gettext + cp -a debian/tmp/usr/share/gettext/config.rpath debian/$@/usr/share/gettext + cp -a debian/tmp/usr/share/gettext/gettext.h debian/$@/usr/share/gettext + $(ATRIP) debian/$@/usr/lib/$(DEB_HOST_MULTIARCH)/libgettextpo.a + dpkg-gencontrol -p$@ -Pdebian/$@ + cd debian/$@ && \ + md5sum `find * -type f ! -regex "DEBIAN/.*"` > DEBIAN/md5sums + chown -R 0:0 debian/$@ + chmod -R u+w,go=rX debian/$@ + dpkg --build debian/$@ .. + +libasprintf-dev: build + rm -rf debian/$@ + install -d debian/$@/DEBIAN debian/$@/usr/share/doc/$@ + cp -p debian/copyright debian/$@/usr/share/doc/$@ + cp -p ChangeLog debian/$@/usr/share/doc/$@/changelog + cp -p debian/changelog debian/$@/usr/share/doc/$@/changelog.Debian + cd debian/$@/usr/share/doc/$@ && gzip -9n changelog changelog.Debian + install -d debian/$@/usr/lib/$(DEB_HOST_MULTIARCH) + cp -a debian/tmp/usr/lib/libasprintf.a debian/$@/usr/lib/$(DEB_HOST_MULTIARCH) + cp -a debian/tmp/usr/lib/libasprintf.so debian/$@/usr/lib/$(DEB_HOST_MULTIARCH) + cp -a debian/tmp/usr/include debian/$@/usr + install -d debian/$@/usr/share/info + cp -a debian/tmp/usr/share/info/autosprintf.info debian/$@/usr/share/info + cp -a debian/tmp/usr/share/aclocal debian/$@/usr/share + $(ATRIP) debian/$@/usr/lib/$(DEB_HOST_MULTIARCH)/libasprintf.a + gzip -9n debian/$@/usr/share/info/* + dpkg-gencontrol -p$@ -Pdebian/$@ + cd debian/$@ && \ + md5sum `find * -type f ! -regex "DEBIAN/.*"` > DEBIAN/md5sums + chown -R 0:0 debian/$@ + chmod -R u+w,go=rX debian/$@ + dpkg --build debian/$@ .. + + gettext-el: build rm -rf debian/$@ install -d debian/$@/DEBIAN debian/$@/usr/share/doc/$@ @@ -298,4 +346,4 @@ build-indep: build .PHONY: binary binary-arch binary-indep build-arch build-indep clean -.PHONY: gettext-base gettext gettext-el gettext-doc autopoint libgettextpo0 libasprintf0c2 +.PHONY: gettext-base gettext gettext-el gettext-doc autopoint libgettextpo0 libasprintf0c2 libgettextpo-dev libasprintf-dev