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:
commit
a9b7a77c51
@ -1,4 +1,4 @@
|
||||
libicu51
|
||||
libicu51_2
|
||||
libicu-devel
|
||||
requires -libicu-<targettype>
|
||||
requires "libicu51-<targettype> = <version>"
|
||||
requires "libicu51_2-<targettype> = <version>"
|
||||
|
116
icu-versioning.diff
Normal file
116
icu-versioning.diff
Normal 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]);
|
||||
|
@ -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
|
||||
|
||||
|
20
icu.spec
20
icu.spec
@ -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 @@ Source2: icu4c-%aversion-docs.tar.xz
|
||||
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 @@ the "%lname" package.
|
||||
|
||||
%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 @@ export CFLAGS="$CXXFLAGS"
|
||||
%configure --disable-static \
|
||||
--enable-shared \
|
||||
--disable-samples
|
||||
make %{?_smp_mflags}
|
||||
make %{?_smp_mflags} VERBOSE=1
|
||||
|
||||
%install
|
||||
b="%buildroot"
|
||||
@ -130,6 +131,17 @@ cd source
|
||||
|
||||
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 @@ cd source
|
||||
# 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 -
|
||||
|
Loading…
Reference in New Issue
Block a user