From aa3998c7725452b2700f1f7e031d442a2bf58b43 Mon Sep 17 00:00:00 2001 From: Yanko Kaneti Date: Feb 10 2014 13:44:49 +0000 Subject: Add patches to avoid unnecessary linkage --- 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 +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 +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_@LIBMEDIAART_API_VERSION@_la_LDFLAGS = \ + -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) + + libmediaart_@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 +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_@LIBMEDIAART_API_VERSION@_la_SOURCES = \ + + if HAVE_GDKPIXBUF + libmediaart_@LIBMEDIAART_API_VERSION@_la_SOURCES += extractpixbuf.c ++libmediaart_@LIBMEDIAART_API_VERSION@_la_LINK = $(LINK) $(libmediaart_@LIBMEDIAART_API_VERSION@_la_LDFLAGS) + else + if HAVE_QT + libmediaart_@LIBMEDIAART_API_VERSION@_la_SOURCES += extractqt.cpp ++libmediaart_@LIBMEDIAART_API_VERSION@_la_LINK = $(CXXLINK) $(libmediaart_@LIBMEDIAART_API_VERSION@_la_LDFLAGS) + else + libmediaart_@LIBMEDIAART_API_VERSION@_la_SOURCES += extractdummy.c ++libmediaart_@LIBMEDIAART_API_VERSION@_la_LINK = $(LINK) $(libmediaart_@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 - 0.2.0-4 +- Add patches to avoid unnecessary linkage + * Sat Feb 8 2014 Yanko Kaneti - 0.2.0-3 - Incorporate most changes suggested in the review (#1062686)