SHA256
1
0
forked from pool/libcdio

Accepting request 539026 from home:AndreasSchwab:f

- 0001-Fix-symbol-versioning-for-exported-symbols.patch: Remove broken
  patch
- 0001-Savannah-Bug-49907.patch: Fix symbol versioning for real

OBS-URL: https://build.opensuse.org/request/show/539026
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/libcdio?expand=0&rev=51
This commit is contained in:
Tomáš Chvátal 2017-11-04 21:22:31 +00:00 committed by Git OBS Bridge
parent d22d502fcf
commit 6e59da37a3
4 changed files with 112 additions and 50 deletions

View File

@ -1,48 +0,0 @@
From 967d2af5df3b0caea09fdfbfc2c97047168cd746 Mon Sep 17 00:00:00 2001
From: Stefan Bruens <stefan.bruens@rwth-aachen.de>
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 <stefan.bruens@rwth-aachen.de>
---
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

View File

@ -0,0 +1,103 @@
From ddd984854b09c1a8203867534c087c0d83ff8622 Mon Sep 17 00:00:00 2001
From: "R. Bernstein" <rocky@gnu.org>
Date: Mon, 9 Oct 2017 12:35:54 -0400
Subject: [PATCH] Savannah Bug #49907
subdir-objects breaks symbol versioning. See https://savannah.gnu.org/bugs/?49907
---
lib/driver/Makefile.am | 11 +++++------
lib/iso9660/Makefile.am | 11 +++++------
2 files changed, 10 insertions(+), 12 deletions(-)
Index: libcdio-0.94/lib/driver/Makefile.am
===================================================================
--- libcdio-0.94.orig/lib/driver/Makefile.am
+++ libcdio-0.94/lib/driver/Makefile.am
@@ -176,13 +176,12 @@ if BUILD_VERSIONED_LIBS
libcdio_la_LDFLAGS = $(libcdio_la_ldflags) -Wl,--version-script=libcdio.la.ver
libcdio_la_DEPENDENCIES = libcdio.la.ver
-libcdio.la.ver: $(libcdio_la_OBJECTS) $(srcdir)/libcdio.sym
+libcdio.la.ver: $(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`; \
- 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; } >> $@; \
- fi
+ @echo ' global:' >> $@
+ @sed 's/^/ /;s/$$/;/' $< >> $@
+ @echo ' local:' >> $@
+ @echo ' *;' >> $@
@echo '};' >> $@
else
libcdio_la_LDFLAGS = $(libcdio_la_ldflags)
Index: libcdio-0.94/lib/driver/Makefile.in
===================================================================
--- libcdio-0.94.orig/lib/driver/Makefile.in
+++ libcdio-0.94/lib/driver/Makefile.in
@@ -981,13 +981,12 @@ uninstall-am: uninstall-libLTLIBRARIES
.PRECIOUS: Makefile
-@BUILD_VERSIONED_LIBS_TRUE@libcdio.la.ver: $(libcdio_la_OBJECTS) $(srcdir)/libcdio.sym
+@BUILD_VERSIONED_LIBS_TRUE@libcdio.la.ver: $(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@ 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; } >> $@; \
-@BUILD_VERSIONED_LIBS_TRUE@ fi
+@BUILD_VERSIONED_LIBS_TRUE@ @echo ' global:' >> $@
+@BUILD_VERSIONED_LIBS_TRUE@ @sed 's/^/ /;s/$$/;/' $< >> $@
+@BUILD_VERSIONED_LIBS_TRUE@ @echo ' local:' >> $@
+@BUILD_VERSIONED_LIBS_TRUE@ @echo ' *;' >> $@
@BUILD_VERSIONED_LIBS_TRUE@ @echo '};' >> $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
Index: libcdio-0.94/lib/iso9660/Makefile.am
===================================================================
--- libcdio-0.94.orig/lib/iso9660/Makefile.am
+++ libcdio-0.94/lib/iso9660/Makefile.am
@@ -132,13 +132,12 @@ if BUILD_VERSIONED_LIBS
libiso9660_la_LDFLAGS = $(libiso9660_la_ldflags) -Wl,--version-script=libiso9660.la.ver
libiso9660_la_DEPENDENCIES = $(libcdio9660_la_dependencies) libiso9660.la.ver
-libiso9660.la.ver: $(libiso9660_la_OBJECTS) $(srcdir)/libiso9660.sym
+libiso9660.la.ver: $(srcdir)/libiso9660.sym
@echo 'ISO9660_$(libiso9660_la_MAJOR) {' > $@
- @objs=`for obj in $(libiso9660_la_OBJECTS); do 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)/libiso9660.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)/libiso9660.sym; then :; else if test $$first = true; then echo " local:"; first=false; fi; echo " $${symbol};"; fi; done; } >> $@; \
- fi
+ @echo ' global:' >> $@
+ @sed 's/^/ /;s/$$/;/' $< >> $@
+ @echo ' local:' >> $@
+ @echo ' *;' >> $@
@echo '};' >> $@
MOSTLYCLEANFILES = libiso9660.la.ver
Index: libcdio-0.94/lib/iso9660/Makefile.in
===================================================================
--- libcdio-0.94.orig/lib/iso9660/Makefile.in
+++ libcdio-0.94/lib/iso9660/Makefile.in
@@ -824,13 +824,12 @@ uninstall-am: uninstall-libLTLIBRARIES
.PRECIOUS: Makefile
-@BUILD_VERSIONED_LIBS_TRUE@libiso9660.la.ver: $(libiso9660_la_OBJECTS) $(srcdir)/libiso9660.sym
+@BUILD_VERSIONED_LIBS_TRUE@libiso9660.la.ver: $(srcdir)/libiso9660.sym
@BUILD_VERSIONED_LIBS_TRUE@ @echo 'ISO9660_$(libiso9660_la_MAJOR) {' > $@
-@BUILD_VERSIONED_LIBS_TRUE@ @objs=`for obj in $(libiso9660_la_OBJECTS); 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)/libiso9660.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)/libiso9660.sym; then :; else if test $$first = true; then echo " local:"; first=false; fi; echo " $${symbol};"; fi; done; } >> $@; \
-@BUILD_VERSIONED_LIBS_TRUE@ fi
+@BUILD_VERSIONED_LIBS_TRUE@ @echo ' global:' >> $@
+@BUILD_VERSIONED_LIBS_TRUE@ @sed 's/^/ /;s/$$/;/' $< >> $@
+@BUILD_VERSIONED_LIBS_TRUE@ @echo ' local:' >> $@
+@BUILD_VERSIONED_LIBS_TRUE@ @echo ' *;' >> $@
@BUILD_VERSIONED_LIBS_TRUE@ @echo '};' >> $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Sat Nov 4 20:38:28 UTC 2017 - schwab@linux-m68k.org
- 0001-Fix-symbol-versioning-for-exported-symbols.patch: Remove broken
patch
- 0001-Savannah-Bug-49907.patch: Fix symbol versioning for real
-------------------------------------------------------------------
Thu Oct 5 03:52:34 UTC 2017 - stefan.bruens@rwth-aachen.de

View File

@ -29,8 +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
# PATCH-FIX-UPSTREAM 0001-Savannah-Bug-49907.patch https://savannah.gnu.org/bugs/index.php?49907
Patch0: 0001-Savannah-Bug-49907.patch
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: help2man