Change a soname because recode-3.7 changed an ABI

This commit is contained in:
Petr Písař 2019-08-20 08:50:32 +02:00
parent 5569d5db25
commit c8e18b9682
3 changed files with 111 additions and 3 deletions

View File

@ -0,0 +1,33 @@
From 0293ff45a5ca60574ed0434fd4eba8d9fd5c7c0e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Tue, 20 Aug 2019 09:19:41 +0200
Subject: [PATCH] Fix regenerating recode.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
libtool complained that merged.a la archive is not an object file.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
src/Makefile.am | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 5821f94..cb0abd6 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -96,9 +96,8 @@ merged.c: mergelex.py $(L_STEPS)
grep -av '^# *line [0-9]' merged.tm2 >> merged.c
rm merged.tm1 merged.tm2
-recode.1: main.c $(top_srcdir)/configure.ac
+recode.1: main.c $(top_srcdir)/configure.ac recode$(EXEEXT)
## Exit gracefully if recode.1 is not writeable, such as during distcheck!
- $(MAKE) $(AM_MAKEFLAGS) recode$(EXEEXT)
$(AM_V_GEN)if ( touch $@.w && rm -f $@.w; ) >/dev/null 2>&1; then \
$(top_srcdir)/build-aux/missing --run $(HELP2MAN) --locale=C \
--name="converts files between character sets" \
--
2.21.0

View File

@ -0,0 +1,64 @@
From 5d1be02360cf2dc3b8b1c74eb629d50497ecd0dc Mon Sep 17 00:00:00 2001
From: Reuben Thomas <rrt@sc3d.org>
Date: Mon, 19 Aug 2019 19:54:17 +0100
Subject: [PATCH] Version the shared library (fix #22)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
configure.ac | 23 +++++++++++++++++++++++
src/Makefile.am | 2 +-
2 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 5385584..b0415c9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,6 +10,29 @@ AM_INIT_AUTOMAKE
AC_CONFIG_MACRO_DIR(m4)
AC_CANONICAL_HOST
+dnl Release number rules:
+dnl This is derived from "Versioning" chapter of info libtool documentation.
+dnl Format is MAJOR:MINOR:MICRO
+dnl 4a) Increment major when removing or changing interfaces.
+dnl 4a) 5) Increment minor when adding interfaces.
+dnl 6) Set minor to zero when removing or changing interfaces.
+dnl 3) Increment micro when interfaces not changed at all,
+dnl only bug fixes or internal changes made.
+dnl 4b) Set micro to zero when adding, removing or changing interfaces.
+
+dnl First extract pieces from the version number string
+RECODE_MAJOR_VERSION=`echo $VERSION | awk -F. '{print $1}'`
+RECODE_MINOR_VERSION=`echo $VERSION | awk -F. '{print $2}'`
+RECODE_MICRO_VERSION=`echo $VERSION | awk -F. '{print $3}'`
+
+dnl Version info for libraries = CURRENT:REVISION:AGE
+RECODE_SONUM=$RECODE_MAJOR_VERSION
+AGE=$RECODE_MINOR_VERSION
+REVISION=$RECODE_MICRO_VERSION
+CURRENT=`expr $RECODE_SONUM + $AGE`
+VERSION_INFO=$CURRENT:$REVISION:$AGE
+AC_SUBST(VERSION_INFO)
+
AC_PROG_CC_C99
gl_EARLY
LT_INIT
diff --git a/src/Makefile.am b/src/Makefile.am
index 20b66c1..5821f94 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -54,7 +54,7 @@ recode_LDADD = librecode.la
librecode_la_SOURCES = charname.c combine.c fr-charname.c iconv.c \
names.c outer.c recode.c request.c strip-pool.c task.c $(ALL_STEPS) \
$(include_HEADERS) $(noinst_HEADERS) $(H_STEPS)
-librecode_la_LDFLAGS = -version-info 0:0:0
+librecode_la_LDFLAGS = -version-info $(VERSION_INFO)
librecode_la_LIBADD = ../lib/libgnu.la libmerged.la
libmerged_la_SOURCES = merged.c
--
2.21.0

View File

@ -65,12 +65,19 @@ Patch1: recode-3.7.1-python-3-compatibility.patch
# 2/2 Adapt tests to Python3, unfinished,
# <https://github.com/rrthomas/recode/issues/15>
Patch2: recode-3.7.1-Port-other-tests-to-Python-3.patch
# Change a soname because recode-3.7 changed an ABI,
# <https://github.com/rrthomas/recode/issues/22>
Patch3: recode-3.7.2-Version-the-shared-library-fix-22.patch
# Needed for Version-the-shared-library-fix-22.patch
Patch4: recode-3.7.2-Fix-regenerating-recode.1.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: coreutils
BuildRequires: gcc
BuildRequires: gettext-devel
# help2man not used
# help2man needed because Version-the-shared-library-fix-22.patch patches
# configure.ac
BuildRequires: help2man
BuildRequires: make
BuildRequires: libtool
BuildRequires: texinfo
@ -108,6 +115,8 @@ This package provides deader files for recode library.
%patch1 -p1
%patch2 -p1
%endif
%patch3 -p1
%patch4 -p1
autoreconf -fi
%build
@ -151,8 +160,8 @@ rm $RPM_BUILD_ROOT%{_libdir}/*.la
%{_mandir}/*/*
%{_infodir}/recode.info*
%{_bindir}/*
%{_libdir}/librecode.so.0
%{_libdir}/librecode.so.0.*
%{_libdir}/librecode.so.3
%{_libdir}/librecode.so.3.*
%files devel
%{_libdir}/*.so
@ -161,6 +170,8 @@ rm $RPM_BUILD_ROOT%{_libdir}/*.la
%changelog
* Tue Aug 20 2019 Petr Pisar <ppisar@redhat.com> - 3.7.2-1
- 3.7.2 bump
- Change a soname because recode-3.7 changed an ABI
(https://github.com/rrthomas/recode/issues/22)
* Fri Aug 16 2019 Petr Pisar <ppisar@redhat.com> - 3.7.1-1
- 3.7.1 bump (bug #1379055)