Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 1 | SUMMARY = "Library for rendering SVG files" |
| 2 | DESCRIPTION = "A small library to render Scalable Vector Graphics (SVG), \ |
| 3 | associated with the GNOME Project. It renders SVG files to Cairo surfaces. \ |
| 4 | Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to \ |
| 5 | the screen or to generate output for printing." |
| 6 | HOMEPAGE = "https://gitlab.gnome.org/GNOME/librsvg" |
| 7 | BUGTRACKER = "https://gitlab.gnome.org/GNOME/librsvg/issues" |
| 8 | |
| 9 | LICENSE = "LGPL-2.1-or-later" |
| 10 | LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ |
| 11 | " |
| 12 | |
| 13 | SECTION = "x11/utils" |
| 14 | DEPENDS = "cairo gdk-pixbuf glib-2.0 libxml2 pango python3-docutils-native" |
| 15 | BBCLASSEXTEND = "native nativesdk" |
| 16 | |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 17 | GNOMEBASEBUILDCLASS = "autotools" |
Patrick Williams | 2a25492 | 2023-08-11 09:48:11 -0500 | [diff] [blame] | 18 | inherit cargo_common gnomebase pixbufcache gobject-introspection rust vala gi-docgen cargo-update-recipe-crates |
Patrick Williams | e760df8 | 2023-05-26 11:10:49 -0500 | [diff] [blame] | 19 | |
| 20 | require ${BPN}-crates.inc |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 21 | |
| 22 | SRC_URI += "file://0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch \ |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 23 | file://0001-Add-riscv32-support.patch;patchdir=../cargo_home/bitbake/linux-raw-sys-0.4.3 \ |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 24 | " |
| 25 | |
Patrick Williams | 2a25492 | 2023-08-11 09:48:11 -0500 | [diff] [blame] | 26 | SRC_URI[archive.sha256sum] = "5a328048a02d014645cd27f61140f4e0b11280fb2c7f2a21864fe0c59ac1ce88" |
| 27 | |
| 28 | UPSTREAM_CHECK_REGEX = "librsvg-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)" |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 29 | |
| 30 | # librsvg is still autotools-based, but is calling cargo from its automake-driven makefiles |
| 31 | # so we cannot use cargo class directly, but still need bits and pieces from it |
| 32 | # for cargo to be happy |
| 33 | BASEDEPENDS:append = " cargo-native" |
| 34 | |
| 35 | export RUST_BACKTRACE = "full" |
| 36 | export RUSTFLAGS |
| 37 | |
| 38 | export RUST_TARGET = "${RUST_HOST_SYS}" |
| 39 | |
| 40 | RUSTFLAGS:append:mips = " --cfg crossbeam_no_atomic_64" |
| 41 | RUSTFLAGS:append:mipsel = " --cfg crossbeam_no_atomic_64" |
| 42 | RUSTFLAGS:append:powerpc = " --cfg crossbeam_no_atomic_64" |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 43 | |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 44 | do_configure[postfuncs] += "cargo_common_do_configure" |
| 45 | |
| 46 | inherit rust-target-config |
| 47 | |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 48 | # rust-cross writes the target linker binary into target json definition without any flags. |
| 49 | # This breaks here because the linker isn't going to work without at least knowing where |
| 50 | # the sysroot is. So copy the json to workdir, and patch in the path to wrapper from rust class |
| 51 | # which supplies the needed flags. |
| 52 | do_compile:prepend() { |
| 53 | sed -ie 's,"linker": ".*","linker": "${RUST_TARGET_CC}",g' ${RUST_TARGETS_DIR}/${RUST_HOST_SYS}.json |
| 54 | } |
| 55 | |
Andrew Geissler | 8f84068 | 2023-07-21 09:09:43 -0500 | [diff] [blame] | 56 | CVE_STATUS[CVE-2018-1000041] = "not-applicable-platform: Issue only applies on Windows" |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 57 | |
| 58 | CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" |
| 59 | |
| 60 | PACKAGECONFIG ??= "gdkpixbuf" |
Andrew Geissler | c5535c9 | 2023-01-27 16:10:19 -0600 | [diff] [blame] | 61 | PACKAGECONFIG:append:class-target = " ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vala', '', d)}" |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 62 | # The gdk-pixbuf loader |
| 63 | PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native" |
Andrew Geissler | c5535c9 | 2023-01-27 16:10:19 -0600 | [diff] [blame] | 64 | PACKAGECONFIG[vala] = "--enable-vala,--disable-vala" |
Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 65 | |
| 66 | do_install:append() { |
| 67 | # Loadable modules don't need .a or .la on Linux |
| 68 | rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la |
| 69 | } |
| 70 | |
| 71 | PACKAGES =+ "librsvg-gtk rsvg" |
| 72 | FILES:rsvg = "${bindir}/rsvg* \ |
| 73 | ${datadir}/pixmaps/svg-viewer.svg \ |
| 74 | ${datadir}/themes" |
| 75 | FILES:librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so \ |
| 76 | ${datadir}/thumbnailers/librsvg.thumbnailer" |
| 77 | RRECOMMENDS:librsvg-gtk = "gdk-pixbuf-bin" |
| 78 | |
| 79 | PIXBUF_PACKAGES = "librsvg-gtk" |