SHA256
1
0
forked from pool/icu

Accepting request 179164 from X11:common:Factory

- baselibs update that goes with the SONAME change

OBS-URL: https://build.opensuse.org/request/show/179164
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/icu?expand=0&rev=40
This commit is contained in:
Stephan Kulow 2013-06-18 13:14:08 +00:00 committed by Git OBS Bridge
commit a9b7a77c51
4 changed files with 140 additions and 6 deletions

View File

@ -1,4 +1,4 @@
libicu51 libicu51_2
libicu-devel libicu-devel
requires -libicu-<targettype> requires -libicu-<targettype>
requires "libicu51-<targettype> = <version>" requires "libicu51_2-<targettype> = <version>"

116
icu-versioning.diff Normal file
View File

@ -0,0 +1,116 @@
From: Jan Engelhardt <jengelh@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]);

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Sat Jun 15 20:05:05 UTC 2013 - jengelh@inai.de
- Add icu-versioning.diff:
Treat each minor release as a new SONAME (bnc#824262)
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Jun 5 17:19:12 UTC 2013 - jengelh@inai.de Wed Jun 5 17:19:12 UTC 2013 - jengelh@inai.de

View File

@ -17,7 +17,7 @@
Name: icu Name: icu
%define lname libicu51 %define lname libicu51_2
Version: 51.2 Version: 51.2
Release: 0 Release: 0
%define aversion 51_2 %define aversion 51_2
@ -32,6 +32,7 @@ Source2: icu4c-%aversion-docs.tar.xz
Source3: sanitize_docs.sh Source3: sanitize_docs.sh
Patch1: icu-rpmlint.diff Patch1: icu-rpmlint.diff
Patch2: icu-remove-datetime.patch Patch2: icu-remove-datetime.patch
Patch3: icu-versioning.diff
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: pkg-config BuildRequires: pkg-config
@ -108,7 +109,7 @@ the "%lname" package.
%prep %prep
%setup -qn icu -a2 %setup -qn icu -a2
%patch -P 1 -P 2 -p1 %patch -P 1 -P 2 -P 3 -p1
%build %build
cd source cd source
@ -117,7 +118,7 @@ export CFLAGS="$CXXFLAGS"
%configure --disable-static \ %configure --disable-static \
--enable-shared \ --enable-shared \
--disable-samples --disable-samples
make %{?_smp_mflags} make %{?_smp_mflags} VERBOSE=1
%install %install
b="%buildroot" b="%buildroot"
@ -130,6 +131,17 @@ cd source
make install DESTDIR="$b"; 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 # /usr/lib/rpm/elfdeps requires +x bit and not all had it at one point
chmod a+rx "$b/%_libdir"/lib*.so.* chmod a+rx "$b/%_libdir"/lib*.so.*
@ -149,7 +161,7 @@ cd source
# Checks disabled in qemu because of races happening when we emulate # Checks disabled in qemu because of races happening when we emulate
# multi-threaded programs, and some check tests atomic instructions in # multi-threaded programs, and some check tests atomic instructions in
# multi-threaded icu invocations # multi-threaded icu invocations
make check make check VERBOSE=1
%endif %endif
# This should be run by whatever owns /usr/lib64/icu - # This should be run by whatever owns /usr/lib64/icu -