librsvg: upgrade to 2.40.0

Add local-m4.patch and install a local vapigen.m4 so that we can autoreconf
without needing Vala installed.

Refresh build dependencies removing stale recipes and adding libcroco as it's a mandatory dependency now.

Explicitly disable Vala, with a patch from upstream until 2.40.1.

The GTK+ 2 theme engine has been removed, delete all traces of it.

Add a patch to make GTK+ use deterministic, and a disabled PACKAGECONFIG for it.

Enable parallel make, as some testing shows that it works fine.

Drop librsvg-CVE-2011-3146, merged upstream.  Drop doc_Makefile.patch, our
gtk-doc.mk isn't buggy and this isn't needed anymore.

Merge multiple -dev and -dbg packages into ${PN}-dev and -dbg, and remove the
loader module .a and .la files as they are pointless.

(From OE-Core rev: ee3e2e5ce15a3bf78c7e9d76d7bf68131f2d3ef7)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton 2013-11-19 17:02:30 +00:00 committed by Richard Purdie
parent b60666e3a9
commit 852ba6c72f
7 changed files with 243 additions and 1165 deletions

View File

@ -1,19 +0,0 @@
Upstream-Status: Inappropriate [configuration]
Automake complains about using += before setting with =
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Index: librsvg-2.32.0/doc/Makefile.am
===================================================================
--- librsvg-2.32.0.orig/doc/Makefile.am 2010-11-24 13:13:28.000000000 -0800
+++ librsvg-2.32.0/doc/Makefile.am 2010-11-24 13:13:46.161312119 -0800
@@ -133,7 +133,7 @@
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
-EXTRA_DIST += \
+EXTRA_DIST = \
version.xml.in
# Files not to distribute

View File

@ -0,0 +1,59 @@
From 18917f7fd3160afe06019f4b6234aeb78a3fdb4e Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Tue, 19 Nov 2013 16:00:29 +0000
Subject: [PATCH] configure: add option to enable/disable use of GTK+
Distro packagers like predictability and automatically detected optional
dependencies are not predicable. Add a --with-gtk3 option (default to "auto")
for forcibly controlling whether GTK+ will be used or not.
Signed-off-by: Ross Burton <ross.burton@intel.com>
https://bugzilla.gnome.org/show_bug.cgi?id=712693
---
configure.in | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/configure.in b/configure.in
index f7a89dc..1498f72 100644
--- a/configure.in
+++ b/configure.in
@@ -119,17 +119,22 @@ AC_CHECK_FUNCS(strtok_r)
# GTK
# ===========================================================================
-PKG_CHECK_MODULES([GTK3],[gtk+-3.0 >= $GTK3_REQUIRED],[have_gtk_3=yes],[have_gtk_3=no])
-
GTK3_BINARY_VERSION=
-if test "$have_gtk_3" = "yes"; then
- GTK3_BINARY_VERSION="`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`"
+AC_MSG_CHECKING([whether to use GTK+ 3])
+AC_ARG_WITH([gtk3],
+ [AS_HELP_STRING([--without-gtk3],[Don't build GTK+3 tools (default=auto)])],
+ [],[PKG_CHECK_EXISTS([gtk+-3.0 >= $GTK3_REQUIRED],[with_gtk3=yes],[with_gtk3=no])])
+AC_MSG_RESULT([$with_gtk3])
+
+if test "$with_gtk3" = "yes"; then
+ PKG_CHECK_MODULES(GTK3, [gtk+-3.0 >= $GTK3_REQUIRED])
+ GTK3_BINARY_VERSION="`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`"
fi
AC_SUBST([GTK3_BINARY_VERSION])
-AM_CONDITIONAL([HAVE_GTK_3],[test "$have_gtk_3" = "yes"])
+AM_CONDITIONAL([HAVE_GTK_3],[test "$with_gtk3" = "yes"])
dnl ===========================================================================
dnl GDK-Pixbuf SVG loader
@@ -305,6 +310,6 @@ librsvg-$VERSION
Build introspectable bindings: ${found_introspection}
Build Vala bindings: ${enable_vala}
Build GdkPixbuf loader: ${enable_pixbuf_loader}
- GTK 3.0: ${have_gtk_3}
+ GTK 3.0: ${with_gtk3}
Build miscellaenous tools: ${build_misc_tools}
"
--
1.7.10.4

View File

@ -0,0 +1,32 @@
This patch is required to make autoreconf use the local macros (so that it can
autoreconf without vala being installed).
Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@intel.com>
From 6c3b8eee243204678574e162b7d480f6f83b71e6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Germ=C3=A1n=20Poo-Caama=C3=B1o?= <gpoo@gnome.org>
Date: Tue, 29 Oct 2013 13:05:39 -0700
Subject: [PATCH] build: Use local macros to detect vala
Fixes build when vala < 0.19 is present.
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index d95f008..e881100 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3,7 +3,7 @@ SUBDIRS = . gdk-pixbuf-loader tests tools doc
NULL =
BUILT_SOURCES =
-ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS}
+ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4
lib_LTLIBRARIES = librsvg-@RSVG_API_MAJOR_VERSION@.la
--
1.7.10.4

View File

@ -0,0 +1,96 @@
dnl vapigen.m4
dnl
dnl Copyright 2012 Evan Nemerson
dnl
dnl This library is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Lesser General Public
dnl License as published by the Free Software Foundation; either
dnl version 2.1 of the License, or (at your option) any later version.
dnl
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Lesser General Public License for more details.
dnl
dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library; if not, write to the Free Software
dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND-INTROSPECTION], [DEFAULT])
# --------------------------------------
# Check vapigen existence and version
#
# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation
AC_DEFUN([VAPIGEN_CHECK],
[
AC_BEFORE([GOBJECT_INTROSPECTION_CHECK],[$0])
AC_BEFORE([GOBJECT_INTROSPECTION_REQUIRE],[$0])
AC_ARG_ENABLE([vala],
[AS_HELP_STRING([--enable-vala[=@<:@no/auto/yes@:>@]],[build Vala bindings @<:@default=]ifelse($4,,auto,$4)[@:>@])],,[
AS_IF([test "x$4" = "x"], [
enable_vala=auto
], [
enable_vala=$4
])
])
AS_CASE([$enable_vala], [no], [enable_vala=no],
[yes], [
AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
AC_MSG_ERROR([Vala bindings require GObject Introspection])
])
], [auto], [
AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
enable_vala=no
])
], [
AC_MSG_ERROR([Invalid argument passed to --enable-vala, should be one of @<:@no/auto/yes@:>@])
])
AS_IF([test "x$2" = "x"], [
vapigen_pkg_name=vapigen
], [
vapigen_pkg_name=vapigen-$2
])
AS_IF([test "x$1" = "x"], [
vapigen_pkg="$vapigen_pkg_name"
], [
vapigen_pkg="$vapigen_pkg_name >= $1"
])
PKG_PROG_PKG_CONFIG
PKG_CHECK_EXISTS([$vapigen_pkg], [
AS_IF([test "$enable_vala" = "auto"], [
enable_vala=yes
])
], [
AS_CASE([$enable_vala], [yes], [
AC_MSG_ERROR([$vapigen_pkg not found])
], [auto], [
enable_vala=no
])
])
AC_MSG_CHECKING([for vala])
AS_CASE([$enable_vala],
[yes], [
VAPIGEN=`$PKG_CONFIG --variable=vapigen vapigen`
VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir vapigen`/vala/Makefile.vapigen
AS_IF([test "x$2" = "x"], [
VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir vapigen`
], [
VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned vapigen`
])
])
AC_MSG_RESULT([$enable_vala])
AC_SUBST([VAPIGEN])
AC_SUBST([VAPIGEN_VAPIDIR])
AC_SUBST([VAPIGEN_MAKEFILE])
AM_CONDITIONAL(ENABLE_VAPIGEN, test "x$enable_vala" = "xyes")
])

View File

@ -1,58 +0,0 @@
DESCRIPTION = "Library for rendering SVG files"
HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/librsvg/"
BUGTRACKER = "https://bugzilla.gnome.org/"
LICENSE = "LGPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://rsvg.h;beginline=3;endline=24;md5=20b4113c4909bbf0d67e006778302bc6"
SECTION = "x11/utils"
DEPENDS = "cairo glib-2.0 gdk-pixbuf fontconfig freetype libxml2 pango"
DEPENDS += "gdk-pixbuf-native"
BBCLASSEXTEND = "native"
PR = "r12"
inherit autotools pkgconfig gnomebase gtk-doc pixbufcache
SRC_URI += "file://doc_Makefile.patch \
file://librsvg-CVE-2011-3146.patch \
"
SRC_URI[archive.md5sum] = "4b00d0fee130c936644892c152f42db7"
SRC_URI[archive.sha256sum] = "91b98051f352fab8a6257688d6b2fd665b4648ed66144861f2f853ccf876d334"
EXTRA_OECONF = "--without-svgz"
PACKAGECONFIG ??= "croco gdkpixbuf"
# Support embedded CSS stylesheets (recommended upstream)
PACKAGECONFIG[croco] = "--with-croco,--without-croco,libcroco"
# gdk-pixbuf loader
PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader"
# GTK+ 2 theme engine
PACKAGECONFIG[gtk] = "--enable-gtk-theme,--disable-gtk-theme,gtk+"
PACKAGES =+ "librsvg-gtk librsvg-gtk-dbg librsvg-gtk-dev rsvg"
FILES_${PN} = "${libdir}/*.so.*"
FILES_${PN}-staticdev += "${libdir}/gdk-pixbuf-2.0/*.a ${libdir}/gdk-pixbuf-2.0/*/*/*.a \
${libdir}/gtk-2.0/*.a ${libdir}/gtk-2.0/*/*/*.a"
FILES_rsvg = "${bindir}/rsvg \
${bindir}/rsvg-view \
${bindir}/rsvg-convert \
${datadir}/pixmaps/svg-viewer.svg \
${datadir}/themes"
FILES_librsvg-gtk = "${libdir}/gtk-2.0/*/*/*.so ${libdir}/gdk-pixbuf-2.0/*/*/*.so"
FILES_librsvg-gtk-dev += "${libdir}/gtk-2.0/*.la \
${libdir}/gtk-2.0/*/*/*.la \
${libdir}/gdk-pixbuf-2.0/*.la \
${libdir}/gdk-pixbuf-2.0/*/*/*.la"
FILES_librsvg-gtk-dbg += "${libdir}/gdk-pixbuf-2.0/.debug \
${libdir}/gdk-pixbuf-2.0/*/*/.debug \
${libdir}/gtk-2.0/.debug \
${libdir}/gtk-2.0/*/*/.debug"
PIXBUF_PACKAGES = "librsvg-gtk"
PARALLEL_MAKE = ""
PIXBUFCACHE_SYSROOT_DEPS_append_class-native = " harfbuzz-native:do_populate_sysroot_setscene pango-native:do_populate_sysroot_setscene icu-native:do_populate_sysroot_setscene"

View File

@ -0,0 +1,56 @@
DESCRIPTION = "Library for rendering SVG files"
HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/librsvg/"
BUGTRACKER = "https://bugzilla.gnome.org/"
LICENSE = "LGPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://rsvg.h;beginline=3;endline=24;md5=20b4113c4909bbf0d67e006778302bc6"
SECTION = "x11/utils"
DEPENDS = "gdk-pixbuf-native cairo gdk-pixbuf glib-2.0 libcroco libxml2 pango"
BBCLASSEXTEND = "native"
inherit autotools pkgconfig gnomebase gtk-doc pixbufcache
GNOME_COMPRESS_TYPE = "xz"
SRC_URI += "file://gtk-option.patch \
file://local-m4.patch \
file://vapigen.m4"
SRC_URI[archive.md5sum] = "e16a84e9a86a18e5ca6ba95c512db6c6"
SRC_URI[archive.sha256sum] = "8f7db31df235813dbd035888035cf862d682e7cc5706c4e7ec05750d3f64a2f9"
EXTRA_OECONF = "--disable-introspection --disable-vala"
PACKAGECONFIG ??= "gdkpixbuf"
# The gdk-pixbuf loader
PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader"
# GTK+ test application (rsvg-view)
PACKAGECONFIG[gtk] = "--with-gtk3,--without-gtk3,gtk+3"
# 2.40.1 should ship the tarball with local m4 macros, but until then drop a
# vapigen in there so we don't need to build vala to configure.
do_configure_prepend() {
if test ! -e ${S}/m4/vapigen.m4; then
mkdir --parents ${S}/m4
mv ${WORKDIR}/vapigen.m4 ${S}/m4/
fi
}
do_install_append() {
# Loadable modules don't need .a or .la on Linux
rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la
}
PACKAGES =+ "librsvg-gtk rsvg"
FILES_${PN} = "${libdir}/*.so.*"
FILES_${PN}-dbg += "${libdir}/gdk-pixbuf-2.0/*/loaders/.debug"
FILES_rsvg = "${bindir}/rsvg* \
${datadir}/pixmaps/svg-viewer.svg \
${datadir}/themes"
FILES_librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so"
PIXBUF_PACKAGES = "librsvg-gtk"
PIXBUFCACHE_SYSROOT_DEPS_append_class-native = " harfbuzz-native:do_populate_sysroot_setscene pango-native:do_populate_sysroot_setscene icu-native:do_populate_sysroot_setscene"