[libmediaart] Add patches to avoid unnecessary linkage
Yanko Kaneti
yaneti at fedoraproject.org
Mon Feb 10 13:44:23 UTC 2014
commit aa3998c7725452b2700f1f7e031d442a2bf58b43
Author: Yanko Kaneti <yaneti at declera.com>
Date: Mon Feb 10 15:44:49 2014 +0200
Add patches to avoid unnecessary linkage
...on-t-link-to-both-Qt-and-gdk-pixbuf-if-bo.patch | 59 ++++++++++++++++++++
...ld-Remove-leftover-explicit-lm-lz-linkage.patch | 39 +++++++++++++
...e-automake-C-linkage-when-building-C-only.patch | 41 ++++++++++++++
libmediaart.spec | 24 +++++++-
4 files changed, 159 insertions(+), 4 deletions(-)
---
diff --git a/0001-configure-Don-t-link-to-both-Qt-and-gdk-pixbuf-if-bo.patch b/0001-configure-Don-t-link-to-both-Qt-and-gdk-pixbuf-if-bo.patch
new file mode 100644
index 0000000..7d5b5cf
--- /dev/null
+++ b/0001-configure-Don-t-link-to-both-Qt-and-gdk-pixbuf-if-bo.patch
@@ -0,0 +1,59 @@
+From 53381ada025b8fd0eabf1630cb00162496492e74 Mon Sep 17 00:00:00 2001
+From: Yanko Kaneti <yaneti at declera.com>
+Date: Fri, 7 Feb 2014 22:27:14 +0200
+Subject: [PATCH 1/3] configure: Don't link to both Qt and gdk-pixbuf if both
+ are autodetected
+
+---
+ configure.ac | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4d589a1..ddba936 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -228,8 +228,8 @@ if test "x$enable_qt" != "xno" && test "x$enable_gdkpixbuf" != "xyes"; then
+ [have_qt4=no])
+
+ if test "x$have_qt5" = "xyes"; then
+- LIBMEDIAART_CFLAGS="$LIBMEDIAART_CFLAGS $QT5_CFLAGS -fPIC"
+- LIBMEDIAART_LIBS="$LIBMEDIAART_LIBS $QT5_LIBS"
++ BACKEND_CFLAGS="$QT5_CFLAGS -fPIC"
++ BACKEND_LIBS="$QT5_LIBS"
+
+ AC_DEFINE(HAVE_QT5, [], [Define if we have Qt5])
+ AC_DEFINE(HAVE_QT, [], [Define if we have Qt])
+@@ -238,8 +238,8 @@ if test "x$enable_qt" != "xno" && test "x$enable_gdkpixbuf" != "xyes"; then
+ selected_for_media_art="yes (qt5)"
+ else
+ if test "x$have_qt4" = "xyes"; then
+- LIBMEDIAART_CFLAGS="$LIBMEDIAART_CFLAGS $QT4_CFLAGS -fPIC"
+- LIBMEDIAART_LIBS="$LIBMEDIAART_LIBS $QT4_LIBS"
++ BACKEND_CFLAGS="$QT4_CFLAGS -fPIC"
++ BACKEND_LIBS="$QT4_LIBS"
+
+ AC_DEFINE(HAVE_QT4, [], [Define if we have Qt4])
+ AC_DEFINE(HAVE_QT, [], [Define if we have Qt])
+@@ -270,8 +270,8 @@ if test "x$enable_gdkpixbuf" != "xno" && test "x$enable_qt" != "xyes"; then
+ [have_gdkpixbuf=yes],
+ [have_gdkpixbuf=no])
+
+- LIBMEDIAART_CFLAGS="$LIBMEDIAART_CFLAGS $GDKPIXBUF_CFLAGS"
+- LIBMEDIAART_LIBS="$LIBMEDIAART_LIBS $GDKPIXBUF_LIBS"
++ BACKEND_CFLAGS="$GDKPIXBUF_CFLAGS"
++ BACKEND_LIBS="$GDKPIXBUF_LIBS"
+
+ if test "x$have_gdkpixbuf" = "xyes"; then
+ AC_DEFINE(HAVE_GDKPIXBUF, [], [Define if we have GdkPixbuf])
+@@ -290,6 +290,8 @@ fi
+
+ AM_CONDITIONAL(HAVE_GDKPIXBUF, test "x$have_gdkpixbuf" = "xyes")
+
++LIBMEDIAART_CFLAGS="$LIBMEDIAART_CFLAGS $BACKEND_CFLAGS"
++LIBMEDIAART_LIBS="$LIBMEDIAART_LIBS $BACKEND_LIBS"
+ AC_SUBST(LIBMEDIAART_BACKEND)
+
+ #################################################################
+--
+1.8.5.3
+
diff --git a/0002-build-Remove-leftover-explicit-lm-lz-linkage.patch b/0002-build-Remove-leftover-explicit-lm-lz-linkage.patch
new file mode 100644
index 0000000..d752448
--- /dev/null
+++ b/0002-build-Remove-leftover-explicit-lm-lz-linkage.patch
@@ -0,0 +1,39 @@
+From 4f07de740e3d2ec3a4b6c063c48b21b405aff207 Mon Sep 17 00:00:00 2001
+From: Yanko Kaneti <yaneti at declera.com>
+Date: Mon, 10 Feb 2014 11:45:15 +0200
+Subject: [PATCH 2/3] build: Remove leftover explicit -lm -lz linkage
+
+https://bugzilla.gnome.org/show_bug.cgi?id=723877
+---
+ configure.ac | 2 --
+ libmediaart/Makefile.am | 1 -
+ 2 files changed, 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index ddba936..792cfd3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -151,8 +151,6 @@ PKG_CHECK_MODULES(LIBMEDIAART, [$LIBMEDIAART_REQUIRED])
+ GLIB_GENMARSHAL=`$PKG_CONFIG glib-2.0 --variable=glib_genmarshal`
+ AC_SUBST(GLIB_GENMARSHAL)
+
+-LIBMEDIAART_LIBS="$LIBMEDIAART_LIBS -lz -lm"
+-
+ ####################################################################
+ # General CFLAGS/LIBS
+ ####################################################################
+diff --git a/libmediaart/Makefile.am b/libmediaart/Makefile.am
+index 6d370f2..a7879e3 100644
+--- a/libmediaart/Makefile.am
++++ b/libmediaart/Makefile.am
+@@ -46,7 +46,6 @@ libmediaart_ at LIBMEDIAART_API_VERSION@_la_LDFLAGS = \
+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
+
+ libmediaart_ at LIBMEDIAART_API_VERSION@_la_LIBADD = \
+- -lm \
+ $(BUILD_LIBS) \
+ $(LIBMEDIAART_LIBS)
+
+--
+1.8.5.3
+
diff --git a/0003-build-Force-automake-C-linkage-when-building-C-only.patch b/0003-build-Force-automake-C-linkage-when-building-C-only.patch
new file mode 100644
index 0000000..440572b
--- /dev/null
+++ b/0003-build-Force-automake-C-linkage-when-building-C-only.patch
@@ -0,0 +1,41 @@
+From 4ae83f6699474f590927d2c4770806779703d75d Mon Sep 17 00:00:00 2001
+From: Yanko Kaneti <yaneti at declera.com>
+Date: Mon, 10 Feb 2014 11:49:22 +0200
+Subject: [PATCH 3/3] build: Force automake C linkage when building C only
+
+Automake chooses the linker to use by examining the _SOURCES.
+Unfortunately this includes all potential sources, even the ones excluded by
+CONDITIONALS, so it picks CXXLINK because of extractqt.cpp.
+
+Linking the library with CXXLINK brings with it a soname linkage with
+libstdc++.
+override _LINK for the library target to force automake
+to use the specific linker, C(LINK) or C++(CXXLINK)
+
+https://bugzilla.gnome.org/show_bug.cgi?id=723877
+---
+ libmediaart/Makefile.am | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/libmediaart/Makefile.am b/libmediaart/Makefile.am
+index a7879e3..8403d23 100644
+--- a/libmediaart/Makefile.am
++++ b/libmediaart/Makefile.am
+@@ -34,11 +34,14 @@ libmediaart_ at LIBMEDIAART_API_VERSION@_la_SOURCES = \
+
+ if HAVE_GDKPIXBUF
+ libmediaart_ at LIBMEDIAART_API_VERSION@_la_SOURCES += extractpixbuf.c
++libmediaart_ at LIBMEDIAART_API_VERSION@_la_LINK = $(LINK) $(libmediaart_ at LIBMEDIAART_API_VERSION@_la_LDFLAGS)
+ else
+ if HAVE_QT
+ libmediaart_ at LIBMEDIAART_API_VERSION@_la_SOURCES += extractqt.cpp
++libmediaart_ at LIBMEDIAART_API_VERSION@_la_LINK = $(CXXLINK) $(libmediaart_ at LIBMEDIAART_API_VERSION@_la_LDFLAGS)
+ else
+ libmediaart_ at LIBMEDIAART_API_VERSION@_la_SOURCES += extractdummy.c
++libmediaart_ at LIBMEDIAART_API_VERSION@_la_LINK = $(LINK) $(libmediaart_ at LIBMEDIAART_API_VERSION@_la_LDFLAGS)
+ endif
+ endif
+
+--
+1.8.5.3
+
diff --git a/libmediaart.spec b/libmediaart.spec
index b1a3140..3ea8d4f 100644
--- a/libmediaart.spec
+++ b/libmediaart.spec
@@ -1,15 +1,24 @@
Name: libmediaart
Version: 0.2.0
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Library for managing media art caches
License: LGPLv2+
URL: https://github.com/curlybeast/libmediaart
Source0: https://download.gnome.org/sources/%{name}/0.2/%{name}-%{version}.tar.xz
+# upstreamd patches to avoid unncesarry linkage
+# https://bugzilla.gnome.org/show_bug.cgi?id=723877
+Patch1: 0001-configure-Don-t-link-to-both-Qt-and-gdk-pixbuf-if-bo.patch
+Patch2: 0002-build-Remove-leftover-explicit-lm-lz-linkage.patch
+Patch3: 0003-build-Force-automake-C-linkage-when-building-C-only.patch
+
BuildRequires: pkgconfig(glib-2.0) pkgconfig(gio-2.0) pkgconfig(gio-unix-2.0)
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
BuildRequires: vala-tools vala-devel
+#for the autoreconf
+BuildRequires: automake autoconf libtool
+
%description
Library tasked with managing, extracting and handling media art caches.
@@ -26,18 +35,22 @@ developing applications that use %{name}.
%prep
%setup -q
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+autoreconf -fi
%build
%configure --disable-static \
- --enable-gdkpixbuf \
- --disable-qt
+ --enable-gdkpixbuf \
+ --disable-qt
make %{?_smp_mflags}
%install
%make_install
-find $RPM_BUILD_ROOT -name '*.la' -delete
+find $RPM_BUILD_ROOT -name '*.la' -delete -print
#check
# requires X
@@ -63,6 +76,9 @@ find $RPM_BUILD_ROOT -name '*.la' -delete
%changelog
+* Sat Feb 8 2014 Yanko Kaneti <yaneti at declera.com> - 0.2.0-4
+- Add patches to avoid unnecessary linkage
+
* Sat Feb 8 2014 Yanko Kaneti <yaneti at declera.com> - 0.2.0-3
- Incorporate most changes suggested in the review (#1062686)
More information about the scm-commits
mailing list