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
|
libicu-devel
|
||||||
requires -libicu-<targettype>
|
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
|
Wed Jun 5 17:19:12 UTC 2013 - jengelh@inai.de
|
||||||
|
|
||||||
|
20
icu.spec
20
icu.spec
@ -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 -
|
||||||
|
Loading…
Reference in New Issue
Block a user