On Fri, Feb 06, 2015 at 10:32:15AM +0000, Dimitri John Ledkov wrote: > I thing ultimately we do want to drop icu-config. That would have to > be a mass-bugfile "icu-config is to be dropped, which will make your > package FTBFS", followed on by patches / MUs / NMUs, followed by > dropping icu-config -> RC bugs, migration complete.
Yeah, we observed that we agree on the long term vision already. > An interim solution could be to split icu-config binary into it's own > M-A:nothing package, but imho that's too late for jessie, and makes > not much sense for jessie+1 given that we would drop that. Well, let me further that thought a bit. Packages that use icu-config, do so by Build-Depending on libicu-dev, so libicu-dev would have to depend on the that new package. Since that new package is M-A:no (it's neither "none" nor "nothing" but "no"), libicu-dev would effectively become M-A:no as its dependencies cannot be satisfied for multiple architectures simultaneously. At that point we can merge the new package into libicu-dev dropping M-A:same. So the actual implementation of this sketch would be: * Move icu-config from icu-devtools to libicu-dev. * Turn libicu-dev M-A:no. * Add relevant Replaces. > > Can you elaborate what is broken by dropping M-A:same? Most of the time, > well one needs icu-devtools for build architecture, and icu-dev for > host architecture. However, the full combination of tools used during > compilation inside Ubuntu touch SDK need to compile native tools which > happen to link against icu-dev, thus the enablement of making icu-dev > to be M-A:same. In this case, I suggest to keep Ubuntu independent of Debian. The removal of M-A:same is meant to be temporary. Ubuntu doesn't have to follow. I think that removing M-A:same from libicu-dev is a fair compromise between ensuring that nothing breaks natively and enabling some cross-compilation. I prepared a patch, but it is yet untested due to -ENOSPC here. > Maybe we can be pragmatic and fix icu-config script to call into > pkg-config and make it multiarch aware without changing any binary > packages (that is not move things between binary packages, nor > introduce new packages nor change the M-A headers on existing > packages)? As much as I'd like this to be possible: It isn't. In order for pkg-config to work with cross-building properly it must be called via the cross-wrapper i.e. as $(DEB_HOST_GNU_TYPE)-pkg-config. When icu-config is invoked, we already no longer know which architecture is destined to be the host architecture, so we do not know how we would have to call pkg-config. Helmut
diff -Nru icu-52.1/debian/changelog icu-52.1/debian/changelog --- icu-52.1/debian/changelog 2015-01-22 03:47:39.000000000 +0100 +++ icu-52.1/debian/changelog 2015-02-06 19:39:01.000000000 +0100 @@ -1,3 +1,13 @@ +icu (52.1-7.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Move icu-config to a M-A:no package. (Closes: #776821) + + Move icu-config from icu-devtools to libicu-dev. + + Declare relevant Breaks and Replaces. + + Remove Multi-Arch:same from libicu-dev. + + -- Helmut Grohne <hel...@subdivi.de> Fri, 06 Feb 2015 19:29:44 +0100 + icu (52.1-7) unstable; urgency=high * Patch to CVE-2014-6591, CVE-2014-6585 a font parsing bug. diff -Nru icu-52.1/debian/control icu-52.1/debian/control --- icu-52.1/debian/control 2015-01-22 03:47:39.000000000 +0100 +++ icu-52.1/debian/control 2015-02-06 19:32:19.000000000 +0100 @@ -32,9 +32,10 @@ Package: libicu-dev Section: libdevel Architecture: any -Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${shlibs:Depends}, libicu52 (= ${binary:Version}), icu-devtools (>= ${binary:Version}), libc6-dev | libc-dev +Replaces: icu-devtools (<< 52.1-7.1~) +Breaks: icu-devtools (<< 52.1-7.1~) Suggests: icu-doc Description: Development files for International Components for Unicode ICU is a C++ and C library that provides robust and full-featured diff -Nru icu-52.1/debian/icu-devtools.install icu-52.1/debian/icu-devtools.install --- icu-52.1/debian/icu-devtools.install 2015-01-22 03:47:39.000000000 +0100 +++ icu-52.1/debian/icu-devtools.install 2015-02-06 19:30:38.000000000 +0100 @@ -1,3 +1,12 @@ -usr/bin +usr/bin/derb +usr/bin/genbrk +usr/bin/gencfu +usr/bin/gencnval +usr/bin/gendict +usr/bin/genrb +usr/bin/icuinfo +usr/bin/makeconv +usr/bin/pkgdata +usr/bin/uconv usr/sbin usr/share/man diff -Nru icu-52.1/debian/libicu-dev.install icu-52.1/debian/libicu-dev.install --- icu-52.1/debian/libicu-dev.install 2015-01-22 03:47:39.000000000 +0100 +++ icu-52.1/debian/libicu-dev.install 2015-02-06 19:30:52.000000000 +0100 @@ -1,3 +1,4 @@ +usr/bin/icu-config usr/lib/*/lib*.so usr/lib/*/lib*.a usr/lib/*/icu