From d22d502fcf1a63154fdbdd7180c797542707154e6c773b387acf7691707a2515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Thu, 5 Oct 2017 07:14:28 +0000 Subject: [PATCH] Accepting request 531498 from home:StefanBruens:branches:multimedia:libs - Fix symbol versioning, some symbols where no longer exported with a version, thus the library inadvertently broke ABI between version 0.93 and 0.94. Fixes https://savannah.gnu.org/bugs/index.php?49907 * add 0001-Fix-symbol-versioning-for-exported-symbols.patch OBS-URL: https://build.opensuse.org/request/show/531498 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/libcdio?expand=0&rev=49 --- ...mbol-versioning-for-exported-symbols.patch | 48 +++++++++++++++++++ libcdio.changes | 8 ++++ libcdio.spec | 3 ++ 3 files changed, 59 insertions(+) create mode 100644 0001-Fix-symbol-versioning-for-exported-symbols.patch diff --git a/0001-Fix-symbol-versioning-for-exported-symbols.patch b/0001-Fix-symbol-versioning-for-exported-symbols.patch new file mode 100644 index 0000000..492c1d0 --- /dev/null +++ b/0001-Fix-symbol-versioning-for-exported-symbols.patch @@ -0,0 +1,48 @@ +From 967d2af5df3b0caea09fdfbfc2c97047168cd746 Mon Sep 17 00:00:00 2001 +From: Stefan Bruens +Date: Thu, 5 Oct 2017 05:48:28 +0200 +Subject: [PATCH] Fix symbol versioning for exported symbols +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +libcdio 0.94 moved some sources into a subdirectory and no longer +picked up these files when creating the list of exported symbols. + +Upstream bug: https://savannah.gnu.org/bugs/index.php?49907 + +Signed-off: Stefan BrĂ¼ns +--- + lib/driver/Makefile.am | 2 +- + lib/driver/Makefile.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/driver/Makefile.am b/lib/driver/Makefile.am +index f853d0f..d379a30 100644 +--- a/lib/driver/Makefile.am ++++ b/lib/driver/Makefile.am +@@ -178,7 +178,7 @@ libcdio_la_DEPENDENCIES = libcdio.la.ver + + libcdio.la.ver: $(libcdio_la_OBJECTS) $(srcdir)/libcdio.sym + @echo 'CDIO_$(libcdio_la_MAJOR) { ' > $@ +- @objs=`for obj in $(libcdio_la_OBJECTS); do sed -ne "s/^pic_object='\(.*\)'$$/\1/p" $$obj; done`; \ ++ @objs=`for obj in $(libcdio_la_OBJECTS); do echo -n "$(dirname $obj)/"; sed -ne "s/^pic_object='\(.*\)'$$/\1/p" $$obj; done`; \ + if test -n "$${objs}" ; then \ + nm $${objs} | sed -n -e 's/^.*[ ][ABCDGIRSTW][ABCDGIRSTW]*[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$$/\1/p' | sort -u | { first=true; while read symbol; do if grep -q "^$${symbol}\$$" $(srcdir)/libcdio.sym; then if test $$first = true; then echo " global:"; first=false; fi; echo " $${symbol};"; fi; done; } >> $@; \ + nm $${objs} | sed -n -e 's/^.*[ ][ABCDGIRSTW][ABCDGIRSTW]*[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$$/\1/p' | sort -u | { first=true; while read symbol; do if grep -q "^$${symbol}\$$" $(srcdir)/libcdio.sym; then :; else if test $$first = true; then echo " local:"; first=false; fi; echo " $${symbol};"; fi; done; } >> $@; \ +diff --git a/lib/driver/Makefile.in b/lib/driver/Makefile.in +index 2f5af82..ea1406e 100644 +--- a/lib/driver/Makefile.in ++++ b/lib/driver/Makefile.in +@@ -983,7 +983,7 @@ uninstall-am: uninstall-libLTLIBRARIES + + @BUILD_VERSIONED_LIBS_TRUE@libcdio.la.ver: $(libcdio_la_OBJECTS) $(srcdir)/libcdio.sym + @BUILD_VERSIONED_LIBS_TRUE@ @echo 'CDIO_$(libcdio_la_MAJOR) { ' > $@ +-@BUILD_VERSIONED_LIBS_TRUE@ @objs=`for obj in $(libcdio_la_OBJECTS); do sed -ne "s/^pic_object='\(.*\)'$$/\1/p" $$obj; done`; \ ++@BUILD_VERSIONED_LIBS_TRUE@ @objs=`for obj in $(libcdio_la_OBJECTS); echo -n "$(dirname $obj)/"; do sed -ne "s/^pic_object='\(.*\)'$$/\1/p" $$obj; done`; \ + @BUILD_VERSIONED_LIBS_TRUE@ if test -n "$${objs}" ; then \ + @BUILD_VERSIONED_LIBS_TRUE@ nm $${objs} | sed -n -e 's/^.*[ ][ABCDGIRSTW][ABCDGIRSTW]*[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$$/\1/p' | sort -u | { first=true; while read symbol; do if grep -q "^$${symbol}\$$" $(srcdir)/libcdio.sym; then if test $$first = true; then echo " global:"; first=false; fi; echo " $${symbol};"; fi; done; } >> $@; \ + @BUILD_VERSIONED_LIBS_TRUE@ nm $${objs} | sed -n -e 's/^.*[ ][ABCDGIRSTW][ABCDGIRSTW]*[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$$/\1/p' | sort -u | { first=true; while read symbol; do if grep -q "^$${symbol}\$$" $(srcdir)/libcdio.sym; then :; else if test $$first = true; then echo " local:"; first=false; fi; echo " $${symbol};"; fi; done; } >> $@; \ +-- +2.14.1 + diff --git a/libcdio.changes b/libcdio.changes index 2a0befe..78e9545 100644 --- a/libcdio.changes +++ b/libcdio.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Thu Oct 5 03:52:34 UTC 2017 - stefan.bruens@rwth-aachen.de + +- Fix symbol versioning, some symbols where no longer exported with a + version, thus the library inadvertently broke ABI between version + 0.93 and 0.94. Fixes https://savannah.gnu.org/bugs/index.php?49907 + * add 0001-Fix-symbol-versioning-for-exported-symbols.patch + ------------------------------------------------------------------- Tue Sep 5 12:02:14 UTC 2017 - jengelh@inai.de diff --git a/libcdio.spec b/libcdio.spec index d5fa419..54a5d58 100644 --- a/libcdio.spec +++ b/libcdio.spec @@ -29,6 +29,8 @@ Source0: https://ftp.gnu.org/gnu/libcdio/%{name}-%{version}.tar.gz Source1: https://ftp.gnu.org/gnu/libcdio/%{name}-%{version}.tar.gz.sig Source2: %{name}.keyring Source3: baselibs.conf +# PATCH-FIX-OPENSUSE 0001-Fix-symbol-versioning-for-exported-symbols.patch https://savannah.gnu.org/bugs/index.php?49907 +Patch0: 0001-Fix-symbol-versioning-for-exported-symbols.patch BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: help2man @@ -107,6 +109,7 @@ applications that want to make use of the cdio libraries. %prep %setup -q +%patch0 -p1 %define buildir ${PWD}