Hello community,

here is the log from the commit of package icu for openSUSE:Factory checked in 
at 2013-06-18 15:14:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/icu (Old)
 and      /work/SRC/openSUSE:Factory/.icu.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "icu"

Changes:
--------
--- /work/SRC/openSUSE:Factory/icu/icu.changes  2013-06-06 14:55:47.000000000 
+0200
+++ /work/SRC/openSUSE:Factory/.icu.new/icu.changes     2013-06-18 
15:14:09.000000000 +0200
@@ -1,0 +2,6 @@
+Sat Jun 15 20:05:05 UTC 2013 - jeng...@inai.de
+
+- Add icu-versioning.diff:
+  Treat each minor release as a new SONAME (bnc#824262)
+
+-------------------------------------------------------------------

New:
----
  icu-versioning.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ icu.spec ++++++
--- /var/tmp/diff_new_pack.0Gjcdg/_old  2013-06-18 15:14:10.000000000 +0200
+++ /var/tmp/diff_new_pack.0Gjcdg/_new  2013-06-18 15:14:10.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           icu
-%define lname  libicu51
+%define lname  libicu51_2
 Version:        51.2
 Release:        0
 %define aversion 51_2
@@ -32,6 +32,7 @@
 Source3:        sanitize_docs.sh
 Patch1:         icu-rpmlint.diff
 Patch2:         icu-remove-datetime.patch
+Patch3:         icu-versioning.diff
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
 BuildRequires:  pkg-config
@@ -108,7 +109,7 @@
 
 %prep
 %setup -qn icu -a2
-%patch -P 1 -P 2 -p1
+%patch -P 1 -P 2 -P 3 -p1
 
 %build
 cd source
@@ -117,7 +118,7 @@
 %configure --disable-static \
     --enable-shared \
     --disable-samples
-make %{?_smp_mflags}
+make %{?_smp_mflags} VERBOSE=1
 
 %install
 b="%buildroot"
@@ -130,6 +131,17 @@
 
 make install DESTDIR="$b";
 
+#
+# ICU's "pkgdata" utility is really fragile, so icu-versioning.diff
+# does as few as possible, but that means we need some additional
+# cleanup in the spec file now.
+#
+for i in "$b/%_libdir"/*.so.[0-9]*; do
+       if [ "${i##*.so.}" != "%version" ]; then
+               rm -fv "$i";
+       fi
+done
+
 # /usr/lib/rpm/elfdeps requires +x bit and not all had it at one point
 chmod a+rx "$b/%_libdir"/lib*.so.*
 
@@ -149,7 +161,7 @@
 # Checks disabled in qemu because of races happening when we emulate
 # multi-threaded programs, and some check tests atomic instructions in
 # multi-threaded icu invocations
-make check
+make check VERBOSE=1
 %endif
 
 # This should be run by whatever owns /usr/lib64/icu -

++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.0Gjcdg/_old  2013-06-18 15:14:10.000000000 +0200
+++ /var/tmp/diff_new_pack.0Gjcdg/_new  2013-06-18 15:14:10.000000000 +0200
@@ -1,4 +1,4 @@
-libicu51
+libicu51_2
 libicu-devel
        requires -libicu-<targettype>
-       requires "libicu51-<targettype> = <version>"
+       requires "libicu51_2-<targettype> = <version>"

++++++ icu-versioning.diff ++++++
From: Jan Engelhardt <jeng...@inai.de>
Date: 2013-06-11 03:36:48.480850779 +0200
References: http://bugzilla.novell.com/824262

I've had it with ICU always changing their ABI without updating the
SO numbers. They did that before, and they have done it with
51.1->51.2 again. !@#
(Will icu-project ever get their act together?)

Thus, we will use the full version as the SO identifier in openSUSE.

---
 source/config/mh-linux                  |    2 +-
 source/config/pkgdataMakefile.in        |    1 +
 source/data/pkgdataMakefile.in          |    1 +
 source/extra/uconv/pkgdataMakefile.in   |    1 +
 source/icudefs.mk.in                    |    1 +
 source/test/testdata/pkgdataMakefile.in |    1 +
 source/tools/pkgdata/pkgdata.cpp        |    4 ++--
 7 files changed, 8 insertions(+), 3 deletions(-)

Index: icu/source/config/mh-linux
===================================================================
--- icu.orig/source/config/mh-linux
+++ icu/source/config/mh-linux
@@ -25,7 +25,7 @@ LDFLAGSICUDT=-nodefaultlibs -nostdlib
 
 ## Compiler switch to embed a library name
 # The initial tab in the next line is to prevent icu-config from reading it.
-       LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET))
+       LD_SONAME = -Wl,-soname -Wl,$(notdir $(FULL_SO_TARGET))
 #SH# # We can't depend on MIDDLE_SO_TARGET being set.
 #SH# LD_SONAME=
 
Index: icu/source/config/pkgdataMakefile.in
===================================================================
--- icu.orig/source/config/pkgdataMakefile.in
+++ icu/source/config/pkgdataMakefile.in
@@ -14,6 +14,7 @@ include $(top_builddir)/icudefs.mk
 
 OUTPUTFILE=pkgdata.inc
 MIDDLE_SO_TARGET=
+FULL_SO_TARGET=
 
 all : clean 
        @echo GENCCODE_ASSEMBLY_TYPE=$(GENCCODE_ASSEMBLY) >> $(OUTPUTFILE)
Index: icu/source/data/pkgdataMakefile.in
===================================================================
--- icu.orig/source/data/pkgdataMakefile.in
+++ icu/source/data/pkgdataMakefile.in
@@ -14,6 +14,7 @@ include $(top_builddir)/icudefs.mk
 
 OUTPUTFILE=icupkg.inc
 MIDDLE_SO_TARGET=
+FULL_SO_TARGET=
 
 all : clean 
        @echo GENCCODE_ASSEMBLY_TYPE=$(GENCCODE_ASSEMBLY) >> $(OUTPUTFILE)
Index: icu/source/extra/uconv/pkgdataMakefile.in
===================================================================
--- icu.orig/source/extra/uconv/pkgdataMakefile.in
+++ icu/source/extra/uconv/pkgdataMakefile.in
@@ -13,6 +13,7 @@ top_builddir = ../..
 include $(top_builddir)/icudefs.mk
 
 MIDDLE_SO_TARGET=
+FULL_SO_TARGET=
 
 OUTPUTFILE=pkgdata.inc
 
Index: icu/source/icudefs.mk.in
===================================================================
--- icu.orig/source/icudefs.mk.in
+++ icu/source/icudefs.mk.in
@@ -196,6 +196,7 @@ LDLIBRARYPATH_ENVVAR = LD_LIBRARY_PATH
 
 # Versioned target for a shared library.
 FINAL_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION)
+FULL_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION)
 MIDDLE_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION_MAJOR)
 SHARED_OBJECT = $(FINAL_SO_TARGET)
 
Index: icu/source/test/testdata/pkgdataMakefile.in
===================================================================
--- icu.orig/source/test/testdata/pkgdataMakefile.in
+++ icu/source/test/testdata/pkgdataMakefile.in
@@ -13,6 +13,7 @@ top_builddir = ../..
 include $(top_builddir)/icudefs.mk
 
 MIDDLE_SO_TARGET=
+FULL_SO_TARGET=
 
 OUTPUTFILE=pkgdata.inc
 
Index: icu/source/tools/pkgdata/pkgdata.cpp
===================================================================
--- icu.orig/source/tools/pkgdata/pkgdata.cpp
+++ icu/source/tools/pkgdata/pkgdata.cpp
@@ -1273,7 +1273,7 @@ static int32_t pkg_generateLibraryFile(c
             length = uprv_strlen(pkgDataFlags[GENLIB]) + 
uprv_strlen(pkgDataFlags[LDICUDTFLAGS]) +
                      ((uprv_strlen(targetDir) + 
uprv_strlen(libFileNames[LIB_FILE_VERSION_TMP])) * 2) +
                      uprv_strlen(objectFile) + 
uprv_strlen(pkgDataFlags[LD_SONAME]) +
-                     uprv_strlen(pkgDataFlags[LD_SONAME][0] == 0 ? "" : 
libFileNames[LIB_FILE_VERSION_MAJOR]) +
+                     uprv_strlen(pkgDataFlags[LD_SONAME][0] == 0 ? "" : 
libFileNames[LIB_FILE_VERSION]) +
                      uprv_strlen(pkgDataFlags[RPATH_FLAGS]) + 
uprv_strlen(pkgDataFlags[BIR_FLAGS]) + BUFFER_PADDING_SIZE;
 #if U_PLATFORM == U_PF_CYGWIN
             length += uprv_strlen(targetDir) + 
uprv_strlen(libFileNames[LIB_FILE_CYGWIN_VERSION]);
@@ -1320,7 +1320,7 @@ static int32_t pkg_generateLibraryFile(c
 #endif
                 objectFile,
                 pkgDataFlags[LD_SONAME],
-                pkgDataFlags[LD_SONAME][0] == 0 ? "" : 
libFileNames[LIB_FILE_VERSION_MAJOR],
+                pkgDataFlags[LD_SONAME][0] == 0 ? "" : 
libFileNames[LIB_FILE_VERSION],
                 pkgDataFlags[RPATH_FLAGS],
                 pkgDataFlags[BIR_FLAGS]);
 
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to