1SUMMARY = "Library for rendering SVG files" 2DESCRIPTION = "A small library to render Scalable Vector Graphics (SVG), \ 3associated with the GNOME Project. It renders SVG files to Cairo surfaces. \ 4Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to \ 5the screen or to generate output for printing." 6HOMEPAGE = "https://gitlab.gnome.org/GNOME/librsvg" 7BUGTRACKER = "https://gitlab.gnome.org/GNOME/librsvg/issues" 8 9LICENSE = "LGPL-2.1-or-later" 10LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ 11 " 12 13SECTION = "x11/utils" 14DEPENDS = "cairo gdk-pixbuf glib-2.0 libcroco libxml2 pango" 15BBCLASSEXTEND = "native nativesdk" 16 17inherit gnomebase gtk-doc pixbufcache upstream-version-is-even gobject-introspection rust vala 18 19SRC_URI += "file://0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch \ 20 file://0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch \ 21 " 22 23SRC_URI[archive.sha256sum] = "057c1eeeaf85c84e254bdb707459207f5840da5b4d52b4711c03140ed09e6887" 24 25# librsvg is still autotools-based, but is calling cargo from its automake-driven makefiles 26# so we cannot use cargo class directly, but still need bits and pieces from it 27# for cargo to be happy 28BASEDEPENDS:append = " cargo-native" 29 30export RUST_BACKTRACE = "full" 31export RUSTFLAGS 32export RUST_TARGET_PATH 33 34export RUST_TARGET = "${HOST_SYS}" 35 36RUSTFLAGS:append:mips = " --cfg crossbeam_no_atomic_64" 37RUSTFLAGS:append:mipsel = " --cfg crossbeam_no_atomic_64" 38RUSTFLAGS:append:powerpc = " --cfg crossbeam_no_atomic_64" 39RUSTFLAGS:append:riscv32 = " --cfg crossbeam_no_atomic_64" 40 41# rust-cross writes the target linker binary into target json definition without any flags. 42# This breaks here because the linker isn't going to work without at least knowing where 43# the sysroot is. So copy the json to workdir, and patch in the path to wrapper from rust class 44# which supplies the needed flags. 45do_compile:prepend() { 46 cp ${STAGING_LIBDIR_NATIVE}/rustlib/${HOST_SYS}.json ${WORKDIR} 47 cp ${STAGING_LIBDIR_NATIVE}/rustlib/${BUILD_SYS}.json ${WORKDIR} 48 sed -ie 's,"linker": ".*","linker": "${RUST_TARGET_CC}",g' ${WORKDIR}/${HOST_SYS}.json 49 RUST_TARGET_PATH="${WORKDIR}" 50 export RUST_TARGET_PATH 51} 52 53# Issue only on windows 54CVE_CHECK_IGNORE += "CVE-2018-1000041" 55 56CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" 57 58PACKAGECONFIG ??= "gdkpixbuf" 59# The gdk-pixbuf loader 60PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native" 61 62do_install:append() { 63 # Loadable modules don't need .a or .la on Linux 64 rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la 65} 66 67PACKAGES =+ "librsvg-gtk rsvg" 68FILES:rsvg = "${bindir}/rsvg* \ 69 ${datadir}/pixmaps/svg-viewer.svg \ 70 ${datadir}/themes" 71FILES:librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so \ 72 ${datadir}/thumbnailers/librsvg.thumbnailer" 73RRECOMMENDS:librsvg-gtk = "gdk-pixbuf-bin" 74 75PIXBUF_PACKAGES = "librsvg-gtk" 76