tags 454605 patch thanks On Sun, Dec 16, 2007 at 01:45:45PM -0500, Jay Berkenbilt wrote: > I hadn't looked carefully at the packages yet. Now that I am looking > at it, I see clearly from the changelog that 1.34.1-3 was an ABI > change, so you're right -- I definitely don't want to upload it. > (Though I'm surprised that going from gcc 4.1 to 4.2 is really an ABI > change.)
It's not, except that the boost Debian packages are encoding the gcc version in the soname by hand. This is wrong, but needs to be addressed in order to get icu through in a timely fashion. The attached patch looks to me like it does the necessary handling of switching to gcc-4.2 without breaking the ABI. I'm still going through the QA on it, but so far it looks sane; if anyone notices a problem with it, please let me know, otherwise I'll plan to NMU once I have a good build and am happy that I haven't broken anything. In the future, it might be a good idea to switch away from "g++-4.2" to just "g++"; the -3 upload in experimental actually has a latent RC bug, because it invokes g++-4.2 but doesn't build-depend on it, so that package will break suddenly the next time the default g++ version changes. > In any case, I wouldn't have uploaded without testing carefully. I > have software that uses some of the boost libraries. I would at least > have locally installed boost and checked my software, openoffice, and > perhaps some other reverse dependencies. My initial comments were > based on my memory of earlier conversations, not a careful analysis. > But you're right, this is not to be taken lightly. > In any case, I can either do an NMU based on 1.34.1-2 (which really > should be safe since 1.34.1-2 is already in testing), or I can just > drop it and let someone else take care of it. Unless someone says to > go ahead with 1.34.1-2.1, I'll just leave it alone. If it is not > resolved by the time I'm back from vacation, I probably will upload > 1.34.1-2.1 though. Given that this fixes a 10-day-old RC bug, anyone > could do an NMU at this point anyway. Jay, if you have time to check on your side that this patch gives a useful set of packages, that would certainly be helpful; I don't have anything than uses boost, so I'm really checking that the packages look right on paper after the change, not confirming that the libs still work the same at runtime. This /shouldn't/ be an issue given that there's no magic in -3 to make the packages work, but the extra assurance wouldn't hurt either. And maybe you'd have a working package sooner than I at the rate I'm currently going, and could feel free to upload it before me. :) -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer http://www.debian.org/ [EMAIL PROTECTED] [EMAIL PROTECTED]
diff -u boost-1.34.1/debian/control boost-1.34.1/debian/control --- boost-1.34.1/debian/control +++ boost-1.34.1/debian/control @@ -3,7 +3,7 @@ Priority: optional Maintainer: Debian Boost Team <[EMAIL PROTECTED]> Uploaders: Steve M. Robbins <[EMAIL PROTECTED]>, Domenico Andreoli <[EMAIL PROTECTED]>, Christophe Prud'homme <[EMAIL PROTECTED]> -Build-Depends: debhelper (>= 4), bison, flex, docbook-to-man, xsltproc, doxygen, zlib1g-dev, libbz2-dev, libicu36-dev, python-dev | python-all-dev, python2.4-dev, python-support (>= 0.3), g++-4.1 +Build-Depends: debhelper (>= 4), bison, flex, docbook-to-man, xsltproc, doxygen, zlib1g-dev, libbz2-dev, libicu-dev, python-dev | python-all-dev, python2.4-dev, python-support (>= 0.3), g++-4.2 Standards-Version: 3.7.2 Package: bcp diff -u boost-1.34.1/debian/changelog boost-1.34.1/debian/changelog --- boost-1.34.1/debian/changelog +++ boost-1.34.1/debian/changelog @@ -1,3 +1,15 @@ +boost (1.34.1-2.1) unstable; urgency=low + + * Non-maintainer upload. + * Build-depend on libicu-dev instead of libicu36-dev for the icu library + transition. Closes: #454605. + * Drop the gcc version out of the library soname since it's no longer part + of what determines the ABI, and add backwards-compatibility "-gcc41" + symlinks for all libraries to avoid gratuitous ABI breakage when + rebuilding with gcc 4.2. Bump the shlibs to match. + + -- Steve Langasek <[EMAIL PROTECTED]> Sun, 16 Dec 2007 13:59:29 -0800 + boost (1.34.1-2) unstable; urgency=low [ Steve Robbins ] diff -u boost-1.34.1/debian/rules boost-1.34.1/debian/rules --- boost-1.34.1/debian/rules +++ boost-1.34.1/debian/rules @@ -10,12 +10,12 @@ # Boost does not guarantee any ABI, it uses the full version in SONAME SOVERSION = 1.34.1 -SHLIBS_VERSION = +SHLIBS_VERSION = (>= 1.34.1-2.1) DEBIAN_SUFFIX = # tags for library name decoration boost_version = $(subst .,_,$(SOVERSION)) -gcc_version = gcc41 +gcc_version = gcc42 # Boost libraries for which we want separate packages boost_libs := date-time filesystem graph iostreams program-options python regex serialization signals test thread wave @@ -35,7 +35,8 @@ # helpers to make basic and decorated library names mk_base_name = usr/lib/libboost_$(subst -,_,$(1))$(2) -mk_full_name = usr/lib/libboost_$(subst -,_,$(1))-$(gcc_version)$(2)-$(boost_version) +mk_full_name = usr/lib/libboost_$(subst -,_,$(1))$(2)-$(boost_version) +mk_compat_name = usr/lib/libboost_$(subst -,_,$(1))-$(gcc_version)$(2)-$(boost_version) # helpers to make proper release/debug package names mk_pkg_lib = libboost-$(if $(findstring -d,$(2)),dbg,$(1)$(SOVERSION)$(DEBIAN_SUFFIX)) @@ -49,7 +50,8 @@ mk_ln_files = $(shell echo $(call mk_full_name,$(2),$(3)).so.$(SOVERSION) $(call mk_full_name,$(2),$(3)).so >> $(call mk_deb_dev,$(1),$(3)).links) mk_ln2_files = $(shell echo $(call mk_full_name,$(2),$(3)).so $(call mk_base_name,$(2),$(3)).so >> $(call mk_deb_dev,$(1),$(3)).links) mk_ln3_files = $(shell echo $(call mk_full_name,$(2),$(3)).a $(call mk_base_name,$(2),$(3)).a >> $(call mk_deb_dev,$(1),$(3)).links) -mk_files = $(foreach fn,a so ln ln2 ln3,$(call mk_$(fn)_files,$(1),$(2),$(3))) +mk_ln4_files = $(shell echo $(call mk_full_name,$(2),$(3)).so.$(SOVERSION) $(call mk_compat_name,$(2),$(3)).so >> $(call mk_deb_dev,$(1),$(3)).links) +mk_files = $(foreach fn,a so ln ln2 ln3 ln4,$(call mk_$(fn)_files,$(1),$(2),$(3))) # invokes mk_files of every variant of every shared library of every Boost library mk_debhelper_files = \ @@ -62,9 +64,9 @@ ) \ ) -TOOLSET_CONFIG="using gcc : 4.1 : g++-4.1 : <define>_REENTRANT ;" +TOOLSET_CONFIG="using gcc : 4.2 : g++-4.2 : <define>_REENTRANT ;" ifeq ($(DEB_BUILD_ARCH), hppa) -TOOLSET_CONFIG="using gcc : 4.1 : g++-4.1 : <define>_REENTRANT <compileflags>-mlong-calls ;" +TOOLSET_CONFIG="using gcc : 4.2 : g++-4.2 : <define>_REENTRANT <compileflags>-mlong-calls ;" endif PYTHON_CONFIG="using python : 2.4 : /usr ;"