summaryrefslogtreecommitdiffstats
path: root/meta/recipes-gnome
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-gnome')
-rw-r--r--meta/recipes-gnome/epiphany/epiphany_46.0.bb (renamed from meta/recipes-gnome/epiphany/epiphany_40.2.bb)34
-rw-r--r--meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch3
-rw-r--r--meta/recipes-gnome/epiphany/files/distributor.patch17
-rw-r--r--meta/recipes-gnome/epiphany/files/migrator.patch18
-rw-r--r--meta/recipes-gnome/gcr/gcr/0001-gcr-meson.build-fix-one-parallel-build-failure.patch37
-rw-r--r--meta/recipes-gnome/gcr/gcr_3.40.0.bb43
-rw-r--r--meta/recipes-gnome/gcr/gcr_4.3.0.bb58
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Add-use_prebuilt_tools-option.patch171
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-meson.build-allow-a-subset-of-tests-in-cross-compile.patch66
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch23
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.11.bb (renamed from meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb)55
-rw-r--r--meta/recipes-gnome/gi-docgen/gi-docgen_2023.3.bb (renamed from meta/recipes-gnome/gi-docgen/gi-docgen_git.bb)9
-rw-r--r--meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST-3.34.3.patch27
-rw-r--r--meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch27
-rw-r--r--meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch86
-rw-r--r--meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb43
-rw-r--r--meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb44
-rw-r--r--meta/recipes-gnome/gnome/adwaita-icon-theme_46.0.bb29
-rw-r--r--meta/recipes-gnome/gnome/gconf_3.2.6.bb17
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch6
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch28
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb (renamed from meta/recipes-gnome/gobject-introspection/gobject-introspection_1.68.0.bb)64
-rw-r--r--meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_46.0.bb (renamed from meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_40.0.bb)5
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3.inc89
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch47
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch57
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch872
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch19
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3/opengl.patch738
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3_3.24.41.bb (renamed from meta/recipes-gnome/gtk+/gtk+3_3.24.30.bb)9
-rw-r--r--meta/recipes-gnome/gtk+/gtk4_4.14.2.bb130
-rw-r--r--meta/recipes-gnome/gtk-doc/files/0001-Don-t-use-docdir-from-environment.patch24
-rw-r--r--meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb21
-rw-r--r--meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb4
-rw-r--r--meta/recipes-gnome/json-glib/json-glib_1.8.0.bb (renamed from meta/recipes-gnome/json-glib/json-glib_1.6.2.bb)16
-rw-r--r--meta/recipes-gnome/libadwaita/libadwaita_1.5.0.bb27
-rw-r--r--meta/recipes-gnome/libdazzle/libdazzle_3.44.0.bb (renamed from meta/recipes-gnome/libdazzle/libdazzle_3.40.0.bb)5
-rw-r--r--meta/recipes-gnome/libgudev/files/0001-gudevenumtypes-make-deterministic.patch44
-rw-r--r--meta/recipes-gnome/libgudev/libgudev/0001-meson-Pass-export-dynamic-option-to-linker.patch38
-rw-r--r--meta/recipes-gnome/libgudev/libgudev_238.bb (renamed from meta/recipes-gnome/libgudev/libgudev_236.bb)15
-rw-r--r--meta/recipes-gnome/libhandy/libhandy_1.8.3.bb (renamed from meta/recipes-gnome/libhandy/libhandy_1.2.3.bb)12
-rw-r--r--meta/recipes-gnome/libnotify/libnotify_0.8.3.bb (renamed from meta/recipes-gnome/libnotify/libnotify_0.7.9.bb)19
-rw-r--r--meta/recipes-gnome/libportal/libportal_0.4.bb17
-rw-r--r--meta/recipes-gnome/libportal/libportal_0.7.1.bb20
-rw-r--r--meta/recipes-gnome/librsvg/librsvg-crates.inc546
-rw-r--r--meta/recipes-gnome/librsvg/librsvg/0001-Auto-detect-Bsymbolic-fixes-configure-on-macOS.patch35
-rw-r--r--meta/recipes-gnome/librsvg/librsvg/0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch44
-rw-r--r--meta/recipes-gnome/librsvg/librsvg/0001-Remove-non-reproducible-SRCDIR.patch30
-rw-r--r--meta/recipes-gnome/librsvg/librsvg/gtk-option.patch60
-rw-r--r--meta/recipes-gnome/librsvg/librsvg_2.40.21.bb52
-rw-r--r--meta/recipes-gnome/librsvg/librsvg_2.57.1.bb79
-rw-r--r--meta/recipes-gnome/libsecret/libsecret/determinism.patch37
-rw-r--r--meta/recipes-gnome/libsecret/libsecret_0.21.4.bb (renamed from meta/recipes-gnome/libsecret/libsecret_0.20.4.bb)15
-rw-r--r--meta/recipes-gnome/libxmlb/libxmlb/0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch32
-rw-r--r--meta/recipes-gnome/libxmlb/libxmlb/run-ptest3
-rw-r--r--meta/recipes-gnome/libxmlb/libxmlb_0.3.18.bb25
56 files changed, 2080 insertions, 2011 deletions
diff --git a/meta/recipes-gnome/epiphany/epiphany_40.2.bb b/meta/recipes-gnome/epiphany/epiphany_46.0.bb
index abd4ad057c..9052fe170b 100644
--- a/meta/recipes-gnome/epiphany/epiphany_40.2.bb
+++ b/meta/recipes-gnome/epiphany/epiphany_46.0.bb
@@ -3,16 +3,27 @@ DESCRIPTION = "Epiphany is an open source web browser for the Linux desktop envi
3It provides a simple and easy-to-use internet browsing experience." 3It provides a simple and easy-to-use internet browsing experience."
4HOMEPAGE = "https://wiki.gnome.org/Apps/Web" 4HOMEPAGE = "https://wiki.gnome.org/Apps/Web"
5BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany" 5BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany"
6LICENSE = "GPLv3+" 6LICENSE = "GPL-3.0-or-later"
7LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" 7LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
8 8
9DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr gnutls \ 9DEPENDS = " \
10 gsettings-desktop-schemas libxml2-native \ 10 webkitgtk \
11 glib-2.0 glib-2.0-native json-glib libdazzle libhandy libportal \ 11 gcr \
12 libarchive" 12 gsettings-desktop-schemas \
13 nettle \
14 json-glib \
15 libadwaita \
16 libarchive \
17 libdazzle \
18 libhandy \
19 libportal \
20 libsoup \
21 glib-2.0-native \
22 coreutils-native \
23 desktop-file-utils-native \
24 "
13 25
14GNOMEBASEBUILDCLASS = "meson" 26inherit gnomebase gsettings features_check gettext mime-xdg gtk-icon-cache
15inherit gnomebase gsettings features_check gettext mime-xdg
16REQUIRED_DISTRO_FEATURES = "x11 opengl" 27REQUIRED_DISTRO_FEATURES = "x11 opengl"
17 28
18SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@oe.utils.trim_version("${PV}", 1)}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ 29SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@oe.utils.trim_version("${PV}", 1)}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
@@ -20,10 +31,13 @@ SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@oe.utils.trim_version("${PV}", 1)}/${GN
20 file://migrator.patch \ 31 file://migrator.patch \
21 file://distributor.patch \ 32 file://distributor.patch \
22 " 33 "
23SRC_URI[archive.sha256sum] = "75119e22065657cf70ef2b603d4f73835573bd034f1e618c0f662478fd6c6835" 34SRC_URI[archive.sha256sum] = "f4348f2cf51c07c0c106d130172d4d23f2cd4068771e1de007b758ca2ade5660"
24 35
25# Developer mode enables debugging 36# Developer mode enables debugging
26PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false" 37PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false"
27 38
28FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo" 39FILES:${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo"
29RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas" 40RDEPENDS:${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas"
41
42# ANGLE requires SSE support as of webkit 2.40.x on 32 bit x86
43COMPATIBLE_HOST:x86 = "${@bb.utils.contains_any('TUNE_FEATURES', 'core2 corei7', '.*', 'null', d)}"
diff --git a/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch b/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch
index a6c4f92c86..e505466764 100644
--- a/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch
+++ b/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch
@@ -1,4 +1,4 @@
1From 77c9f87dc2b3ad0854a678e234e22dfb31902b82 Mon Sep 17 00:00:00 2001 1From bd45c75fe691e275d7a7d7e641ac66b153369a1c Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Wed, 31 Jan 2018 15:50:38 +0200 3Date: Wed, 31 Jan 2018 15:50:38 +0200
4Subject: [PATCH] help/meson.build: disable the use of yelp 4Subject: [PATCH] help/meson.build: disable the use of yelp
@@ -7,7 +7,6 @@ In particular this avoids calling itstool which oe-core doesn't provide.
7 7
8Upstream-Status: Inappropriate [oe-core specific] 8Upstream-Status: Inappropriate [oe-core specific]
9Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 9Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
10
11--- 10---
12 help/meson.build | 8 ++++---- 11 help/meson.build | 8 ++++----
13 1 file changed, 4 insertions(+), 4 deletions(-) 12 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/meta/recipes-gnome/epiphany/files/distributor.patch b/meta/recipes-gnome/epiphany/files/distributor.patch
index b09c9b38d2..a2800eb62d 100644
--- a/meta/recipes-gnome/epiphany/files/distributor.patch
+++ b/meta/recipes-gnome/epiphany/files/distributor.patch
@@ -1,12 +1,19 @@
1Don't encode the distro from /etc/os-release into the binaries. 1From c297f5b89d7c8e98ac98e1d9a7506df6db6fc025 Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Fri, 26 Feb 2021 10:17:52 +0000
4Subject: [PATCH] Don't encode the distro from /etc/os-release into the
5 binaries.
2 6
3Upstream-Status: Pending 7Upstream-Status: Pending
4RP 2021/2/26 8RP 2021/2/26
9---
10 meson.build | 1 +
11 1 file changed, 1 insertion(+)
5 12
6Index: epiphany-3.38.2/meson.build 13diff --git a/meson.build b/meson.build
7=================================================================== 14index e416cc7..ee5f7b1 100644
8--- epiphany-3.38.2.orig/meson.build 15--- a/meson.build
9+++ epiphany-3.38.2/meson.build 16+++ b/meson.build
10@@ -15,6 +15,7 @@ if r.returncode() == 0 17@@ -15,6 +15,7 @@ if r.returncode() == 0
11 else 18 else
12 distributor_name = 'GNOME Web' 19 distributor_name = 'GNOME Web'
diff --git a/meta/recipes-gnome/epiphany/files/migrator.patch b/meta/recipes-gnome/epiphany/files/migrator.patch
index a9a650a64a..1b4404c8ca 100644
--- a/meta/recipes-gnome/epiphany/files/migrator.patch
+++ b/meta/recipes-gnome/epiphany/files/migrator.patch
@@ -1,15 +1,23 @@
1From b38a4ceaeec05efb1b822d52c43590e7fd518113 Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Thu, 25 Feb 2021 14:52:32 +0000
4Subject: [PATCH] epiphany: Fix reproducibility issue
5
1We don't want to encide BUILD_ROOT into target packages. This is used 6We don't want to encide BUILD_ROOT into target packages. This is used
2for build time tests but in our case those would be on target anyway 7for build time tests but in our case those would be on target anyway
3do use the target paths. 8do use the target paths.
4 9
5Upstream-Status: Pending 10Upstream-Status: Pending
6RP 2021/2/25 11RP 2021/2/25
12---
13 lib/ephy-profile-utils.c | 4 ++--
14 1 file changed, 2 insertions(+), 2 deletions(-)
7 15
8Index: epiphany-3.38.2/lib/ephy-profile-utils.c 16diff --git a/lib/ephy-profile-utils.c b/lib/ephy-profile-utils.c
9=================================================================== 17index a2f6181..5218077 100644
10--- epiphany-3.38.2.orig/lib/ephy-profile-utils.c 18--- a/lib/ephy-profile-utils.c
11+++ epiphany-3.38.2/lib/ephy-profile-utils.c 19+++ b/lib/ephy-profile-utils.c
12@@ -130,10 +130,10 @@ ephy_profile_utils_do_migration (const c 20@@ -130,10 +130,10 @@ ephy_profile_utils_do_migration (const char *profile_directory,
13 argv[i++] = NULL; 21 argv[i++] = NULL;
14 22
15 #if DEVELOPER_MODE 23 #if DEVELOPER_MODE
diff --git a/meta/recipes-gnome/gcr/gcr/0001-gcr-meson.build-fix-one-parallel-build-failure.patch b/meta/recipes-gnome/gcr/gcr/0001-gcr-meson.build-fix-one-parallel-build-failure.patch
deleted file mode 100644
index 81c4bdbbcc..0000000000
--- a/meta/recipes-gnome/gcr/gcr/0001-gcr-meson.build-fix-one-parallel-build-failure.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From cb3708bad88e713e4ccf705cb8c14c5996cd9d06 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Fri, 23 Apr 2021 16:32:38 +0800
4Subject: [PATCH] gcr/meson.build: fix one parallel build failure
5
6ui/gcr-live-search.c includes gcr/gcr-marshal.h. Because missing
7dependency, following error occurred intermittently during doing parallel
8build:
9
10 -o ui/libgcr-ui-3.so.1.0.0.p/gcr-live-search.c.o -c ../gcr-3.38.1/ui/gcr-live-search.c
11../gcr-3.38.1/ui/gcr-live-search.c:32:10: fatal error: gcr/gcr-marshal.h: No such file or directory
12 32 | #include "gcr/gcr-marshal.h"
13 | ^~~~~~~~~~~~~~~~~~~
14compilation terminated.
15
16Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/68/diffs]
17
18Signed-off-by: Changqing Li <changqing.li@windriver.com>
19---
20 gcr/meson.build | 1 +
21 1 file changed, 1 insertion(+)
22
23diff --git a/gcr/meson.build b/gcr/meson.build
24index 06c3a63..d9d4b8f 100644
25--- a/gcr/meson.build
26+++ b/gcr/meson.build
27@@ -181,6 +181,7 @@ gcr_base_dep = declare_dependency(
28 sources: [
29 gcr_enums_gen[1],
30 gcr_oids[1],
31+ gcr_marshal_gen[1],
32 ],
33 )
34
35--
362.17.1
37
diff --git a/meta/recipes-gnome/gcr/gcr_3.40.0.bb b/meta/recipes-gnome/gcr/gcr_3.40.0.bb
deleted file mode 100644
index 14072ef589..0000000000
--- a/meta/recipes-gnome/gcr/gcr_3.40.0.bb
+++ /dev/null
@@ -1,43 +0,0 @@
1SUMMARY = "A library for bits of crypto UI and parsing etc"
2DESCRIPTION = "GCR is a library for displaying certificates, and crypto UI, \
3accessing key stores. It also provides the viewer for crypto files on the \
4GNOME desktop."
5HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcr"
6BUGTRACKER = "https://gitlab.gnome.org/GNOME/gcr/issues"
7
8LICENSE = "GPLv2"
9LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
10
11DEPENDS = "p11-kit glib-2.0 libgcrypt gnupg-native \
12 ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}"
13
14CACHED_CONFIGUREVARS += "ac_cv_path_GPG='gpg2'"
15
16GNOMEBASEBUILDCLASS = "meson"
17GTKDOC_MESON_OPTION = "gtk_doc"
18inherit gnomebase gtk-icon-cache gtk-doc features_check upstream-version-is-even vala gobject-introspection gettext mime mime-xdg
19
20SRC_URI += "file://0001-gcr-meson.build-fix-one-parallel-build-failure.patch"
21
22SRC_URI[archive.sha256sum] = "b9d3645a5fd953a54285cc64d4fc046736463dbd4dcc25caf5c7b59bed3027f5"
23
24PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)}"
25PACKAGECONFIG[gtk] = "-Dgtk=true,-Dgtk=false,gtk+3"
26
27FILES_${PN} += " \
28 ${datadir}/dbus-1 \
29 ${datadir}/gcr-3 \
30"
31
32# http://errors.yoctoproject.org/Errors/Details/20229/
33ARM_INSTRUCTION_SET_armv4 = "arm"
34ARM_INSTRUCTION_SET_armv5 = "arm"
35ARM_INSTRUCTION_SET_armv6 = "arm"
36
37EXTRA_OEMESON += "--cross-file ${WORKDIR}/meson-${PN}.cross"
38do_write_config_append() {
39 cat >${WORKDIR}/meson-${PN}.cross <<EOF
40[binaries]
41gpg2 = '${bindir}/gpg2'
42EOF
43}
diff --git a/meta/recipes-gnome/gcr/gcr_4.3.0.bb b/meta/recipes-gnome/gcr/gcr_4.3.0.bb
new file mode 100644
index 0000000000..50c8cfe8d6
--- /dev/null
+++ b/meta/recipes-gnome/gcr/gcr_4.3.0.bb
@@ -0,0 +1,58 @@
1SUMMARY = "A library for bits of crypto UI and parsing etc"
2DESCRIPTION = "GCR is a library for displaying certificates, and crypto UI, \
3accessing key stores. It also provides the viewer for crypto files on the \
4GNOME desktop."
5HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcr"
6BUGTRACKER = "https://gitlab.gnome.org/GNOME/gcr/issues"
7
8LICENSE = "GPL-2.0-only"
9LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
10
11DEPENDS = "p11-kit glib-2.0 libgcrypt gnupg-native \
12 ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}"
13
14CACHED_CONFIGUREVARS += "ac_cv_path_GPG='gpg2'"
15
16CFLAGS += "-D_GNU_SOURCE"
17
18GTKDOC_MESON_OPTION = "gtk_doc"
19inherit gnomebase gtk-icon-cache gi-docgen features_check vala gobject-introspection gettext mime mime-xdg
20
21REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl', '', d)}"
22
23SRC_URI[archive.sha256sum] = "c3ee8728e4364b0397f435fa20f92f901ab139d2b264f4e059d67b3c0f43cd36"
24
25PACKAGECONFIG ??= " \
26 ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
27 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \
28 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gtk', '', d)} \
29 ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vapi', '', d)} \
30"
31PACKAGECONFIG[gtk] = "-Dgtk4=true,-Dgtk4=false,gtk4"
32PACKAGECONFIG[ssh_agent] = "-Dssh_agent=true,-Dssh_agent=false,libsecret,openssh"
33#'Use systemd socket activation for server programs'
34PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
35PACKAGECONFIG[vapi] = "-Dvapi=true,-Dvapi=false,"
36
37FILES:${PN} += " \
38 ${datadir}/dbus-1 \
39 ${datadir}/gcr-4 \
40 ${systemd_user_unitdir}/gcr-ssh-agent.socket \
41 ${systemd_user_unitdir}/gcr-ssh-agent.service \
42"
43
44# http://errors.yoctoproject.org/Errors/Details/20229/
45ARM_INSTRUCTION_SET:armv4 = "arm"
46ARM_INSTRUCTION_SET:armv5 = "arm"
47ARM_INSTRUCTION_SET:armv6 = "arm"
48
49EXTRA_OEMESON += "--cross-file=${WORKDIR}/meson-${PN}.cross"
50
51do_write_config:append() {
52 cat >${WORKDIR}/meson-${PN}.cross <<EOF
53[binaries]
54gpg2 = '${bindir}/gpg2'
55ssh-add = '${bindir}/ssh-add'
56ssh-agent = '${bindir}/ssh-agent'
57EOF
58}
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Add-use_prebuilt_tools-option.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Add-use_prebuilt_tools-option.patch
deleted file mode 100644
index a8206a4507..0000000000
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Add-use_prebuilt_tools-option.patch
+++ /dev/null
@@ -1,171 +0,0 @@
1From ba73bb0f3d2023839bc3b681c49b7ec1192cceb4 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Sat, 8 May 2021 21:58:54 +0200
4Subject: [PATCH] Add use_prebuilt_tools option
5
6This allows using the gdk-pixbuf tools from the host to
7build and install tests in a cross-compile scenarion.
8
9Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/merge_requests/119]
10Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11
12---
13 gdk-pixbuf/meson.build | 11 +++++++++--
14 meson.build | 6 +++---
15 meson_options.txt | 4 ++++
16 tests/meson.build | 16 ++++++++--------
17 thumbnailer/meson.build | 24 ++++++++++++++++++------
18 5 files changed, 42 insertions(+), 19 deletions(-)
19
20diff --git a/gdk-pixbuf/meson.build b/gdk-pixbuf/meson.build
21index 8b0590b..7331491 100644
22--- a/gdk-pixbuf/meson.build
23+++ b/gdk-pixbuf/meson.build
24@@ -342,13 +342,20 @@ foreach bin: gdkpixbuf_bin
25 include_directories: [ root_inc, gdk_pixbuf_inc ],
26 c_args: common_cflags + gdk_pixbuf_cflags,
27 install: true)
28- meson.override_find_program(bin_name, bin)
29+ if not get_option('use_prebuilt_tools')
30+ meson.override_find_program(bin_name, bin)
31+ endif
32
33 # Used in tests
34 set_variable(bin_name.underscorify(), bin)
35 endforeach
36
37-if not meson.is_cross_build()
38+if get_option('use_prebuilt_tools')
39+ gdk_pixbuf_query_loaders = find_program('gdk-pixbuf-query-loaders', required: true)
40+ gdk_pixbuf_pixdata = find_program('gdk-pixbuf-pixdata', required: true)
41+endif
42+
43+if not meson.is_cross_build() or get_option('use_prebuilt_tools')
44 # The 'loaders.cache' used for testing, so we don't accidentally
45 # load the installed cache; we always build it by default
46 loaders_cache = custom_target('loaders.cache',
47diff --git a/meson.build b/meson.build
48index 7a1409b..0bc73eb 100644
49--- a/meson.build
50+++ b/meson.build
51@@ -403,16 +403,16 @@ subdir('gdk-pixbuf')
52 # i18n
53 subdir('po')
54
55-if not meson.is_cross_build()
56+if not meson.is_cross_build() or get_option('use_prebuilt_tools')
57 subdir('tests')
58- subdir('thumbnailer')
59 endif
60+subdir('thumbnailer')
61
62 # Documentation
63 build_docs = get_option('gtk_doc') or get_option('docs')
64 subdir('docs')
65
66-if not meson.is_cross_build()
67+if not meson.is_cross_build() or get_option('use_prebuilt_tools')
68 meson.add_install_script('build-aux/post-install.py',
69 gdk_pixbuf_bindir,
70 gdk_pixbuf_libdir,
71diff --git a/meson_options.txt b/meson_options.txt
72index 0ee6718..cc29855 100644
73--- a/meson_options.txt
74+++ b/meson_options.txt
75@@ -49,4 +49,8 @@ option('gio_sniffing',
76 description: 'Perform file type detection using GIO (Unused on MacOS and Windows)',
77 type: 'boolean',
78 value: true)
79+option('use_prebuilt_tools',
80+ description: 'Use prebuilt gdk-pixbuf tools from the host for cross-compilation',
81+ type: 'boolean',
82+ value: false)
83
84diff --git a/tests/meson.build b/tests/meson.build
85index 7c6cb11..1029e6a 100644
86--- a/tests/meson.build
87+++ b/tests/meson.build
88@@ -5,6 +5,12 @@
89 # $PATH. Ideally we should use gnome.compile_resources() and let Meson deal with
90 # this problem: See https://github.com/mesonbuild/meson/issues/8266.
91 if enabled_loaders.contains('png') and host_system != 'windows'
92+
93+ resources_deps = [loaders_cache,]
94+ if not get_option('use_prebuilt_tools')
95+ resources_deps += [gdk_pixbuf_pixdata,]
96+ endif
97+
98 # Resources; we cannot use gnome.compile_resources() here, because we need to
99 # override the environment in order to use the utilities we just built instead
100 # of the system ones
101@@ -21,10 +27,7 @@ if enabled_loaders.contains('png') and host_system != 'windows'
102 '@INPUT@',
103 '@OUTPUT@',
104 ],
105- depends: [
106- gdk_pixbuf_pixdata,
107- loaders_cache,
108- ],
109+ depends: resources_deps,
110 )
111
112 resources_h = custom_target('resources.h',
113@@ -40,10 +43,7 @@ if enabled_loaders.contains('png') and host_system != 'windows'
114 '@INPUT@',
115 '@OUTPUT@',
116 ],
117- depends: [
118- gdk_pixbuf_pixdata,
119- loaders_cache,
120- ],
121+ depends: resources_deps,
122 )
123 no_resources = false
124 else
125diff --git a/thumbnailer/meson.build b/thumbnailer/meson.build
126index b6a206d..9336c21 100644
127--- a/thumbnailer/meson.build
128+++ b/thumbnailer/meson.build
129@@ -6,13 +6,29 @@ bin = executable('gdk-pixbuf-thumbnailer',
130 ],
131 dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ],
132 install: true)
133-meson.override_find_program('gdk-pixbuf-thumbnailer', bin)
134+if not get_option('use_prebuilt_tools')
135+ meson.override_find_program('gdk-pixbuf-thumbnailer', bin)
136+endif
137
138 gdk_pixbuf_print_mime_types = executable('gdk-pixbuf-print-mime-types',
139 'gdk-pixbuf-print-mime-types.c',
140+ install: true,
141 c_args: common_cflags,
142 dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ])
143
144+if get_option('use_prebuilt_tools')
145+ gdk_pixbuf_print_mime_types = find_program('gdk-pixbuf-print-mime-types', required: true)
146+endif
147+
148+thumbnailer_deps = [loaders_cache,]
149+
150+if not get_option('use_prebuilt_tools')
151+ thumbnailer_deps += [
152+ gdk_pixbuf_print_mime_types,
153+ gdk_pixbuf_pixdata,
154+ ]
155+endif
156+
157 custom_target('thumbnailer',
158 input: 'gdk-pixbuf-thumbnailer.thumbnailer.in',
159 output: 'gdk-pixbuf-thumbnailer.thumbnailer',
160@@ -25,10 +41,6 @@ custom_target('thumbnailer',
161 '@INPUT@',
162 '@OUTPUT@',
163 ],
164- depends: [
165- gdk_pixbuf_print_mime_types,
166- gdk_pixbuf_pixdata,
167- loaders_cache,
168- ],
169+ depends: thumbnailer_deps,
170 install: true,
171 install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers'))
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-meson.build-allow-a-subset-of-tests-in-cross-compile.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-meson.build-allow-a-subset-of-tests-in-cross-compile.patch
new file mode 100644
index 0000000000..3d685db774
--- /dev/null
+++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-meson.build-allow-a-subset-of-tests-in-cross-compile.patch
@@ -0,0 +1,66 @@
1From 4bfb696fd125f044e3df9f6983c4ad518d9552c7 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex@linutronix.de>
3Date: Thu, 26 Jan 2023 20:29:46 +0100
4Subject: [PATCH] meson.build: allow (a subset of) tests in cross compile
5 settings
6
7There is no need to completely disable tests: most of them
8do not require running target executables at build time,
9and so can be built and installed.
10
11This requires inserting a couple of specific guards around
12items that do require running target executables.
13
14Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/merge_requests/150]
15Signed-off-by: Alexander Kanavin <alex@linutronix.de>
16---
17 meson.build | 6 +++---
18 tests/meson.build | 10 ++++++----
19 2 files changed, 9 insertions(+), 7 deletions(-)
20
21diff --git a/meson.build b/meson.build
22index 78f3683..e0feaee 100644
23--- a/meson.build
24+++ b/meson.build
25@@ -390,10 +390,10 @@ subdir('gdk-pixbuf')
26 # i18n
27 subdir('po')
28
29+if get_option('tests')
30+ subdir('tests')
31+endif
32 if not meson.is_cross_build()
33- if get_option('tests')
34- subdir('tests')
35- endif
36 subdir('thumbnailer')
37 endif
38
39diff --git a/tests/meson.build b/tests/meson.build
40index 78d0ad9..0c9e64e 100644
41--- a/tests/meson.build
42+++ b/tests/meson.build
43@@ -4,7 +4,7 @@
44 # gdk-pixbuf-pixdata from build directory because it needs all DLL locations in
45 # $PATH. Ideally we should use gnome.compile_resources() and let Meson deal with
46 # this problem: See https://github.com/mesonbuild/meson/issues/8266.
47-if enabled_loaders.contains('png') and host_system != 'windows'
48+if enabled_loaders.contains('png') and host_system != 'windows' and not meson.is_cross_build()
49 # Resources; we cannot use gnome.compile_resources() here, because we need to
50 # override the environment in order to use the utilities we just built instead
51 # of the system ones
52@@ -172,9 +172,11 @@ endif
53 test_deps = gdk_pixbuf_deps + [ gdkpixbuf_dep, ]
54 test_args = [ '-k' ]
55 test_env = environment()
56-test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
57-test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
58-test_env.set('GDK_PIXBUF_MODULE_FILE', loaders_cache.full_path())
59+if not meson.is_cross_build()
60+ test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
61+ test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
62+ test_env.set('GDK_PIXBUF_MODULE_FILE', loaders_cache.full_path())
63+endif
64
65 foreach test_name, test_data: installed_tests
66 test_sources = [ test_name + '.c', 'test-common.c' ]
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch
index 25410b11ea..80c93e2166 100644
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch
+++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch
@@ -1,4 +1,4 @@
1From f00603d58d844422363b896ea7d07aaf48ddaa66 Mon Sep 17 00:00:00 2001 1From 9b4f5738f8ac30f393b6163dcc84757976683d9b Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@intel.com> 2From: Ross Burton <ross.burton@intel.com>
3Date: Tue, 1 Apr 2014 17:23:36 +0100 3Date: Tue, 1 Apr 2014 17:23:36 +0100
4Subject: [PATCH] gdk-pixbuf: add an option so that loader errors are fatal 4Subject: [PATCH] gdk-pixbuf: add an option so that loader errors are fatal
@@ -6,18 +6,17 @@ Subject: [PATCH] gdk-pixbuf: add an option so that loader errors are fatal
6If an environment variable is specified set the return value from main() to 6If an environment variable is specified set the return value from main() to
7non-zero if the loader had errors (missing libraries, generally). 7non-zero if the loader had errors (missing libraries, generally).
8 8
9Upstream-Status: Pending 9Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/merge_requests/144]
10Signed-off-by: Ross Burton <ross.burton@intel.com> 10Signed-off-by: Ross Burton <ross.burton@intel.com>
11
12--- 11---
13 gdk-pixbuf/queryloaders.c | 19 +++++++++++++++---- 12 gdk-pixbuf/queryloaders.c | 19 +++++++++++++++----
14 1 file changed, 15 insertions(+), 4 deletions(-) 13 1 file changed, 15 insertions(+), 4 deletions(-)
15 14
16diff --git a/gdk-pixbuf/queryloaders.c b/gdk-pixbuf/queryloaders.c 15diff --git a/gdk-pixbuf/queryloaders.c b/gdk-pixbuf/queryloaders.c
17index 312aa78..b813d99 100644 16index baa9a5c..9b6fa89 100644
18--- a/gdk-pixbuf/queryloaders.c 17--- a/gdk-pixbuf/queryloaders.c
19+++ b/gdk-pixbuf/queryloaders.c 18+++ b/gdk-pixbuf/queryloaders.c
20@@ -212,7 +212,7 @@ write_loader_info (GString *contents, const char *path, GdkPixbufFormat *info) 19@@ -216,7 +216,7 @@ write_loader_info (GString *contents, const char *path, GdkPixbufFormat *info)
21 g_string_append_c (contents, '\n'); 20 g_string_append_c (contents, '\n');
22 } 21 }
23 22
@@ -26,7 +25,7 @@ index 312aa78..b813d99 100644
26 query_module (GString *contents, const char *dir, const char *file) 25 query_module (GString *contents, const char *dir, const char *file)
27 { 26 {
28 char *path; 27 char *path;
29@@ -221,6 +221,7 @@ query_module (GString *contents, const char *dir, const char *file) 28@@ -225,6 +225,7 @@ query_module (GString *contents, const char *dir, const char *file)
30 void (*fill_vtable) (GdkPixbufModule *module); 29 void (*fill_vtable) (GdkPixbufModule *module);
31 gpointer fill_info_ptr; 30 gpointer fill_info_ptr;
32 gpointer fill_vtable_ptr; 31 gpointer fill_vtable_ptr;
@@ -34,7 +33,7 @@ index 312aa78..b813d99 100644
34 33
35 if (g_path_is_absolute (file)) 34 if (g_path_is_absolute (file))
36 path = g_strdup (file); 35 path = g_strdup (file);
37@@ -270,10 +271,13 @@ query_module (GString *contents, const char *dir, const char *file) 36@@ -274,10 +275,13 @@ query_module (GString *contents, const char *dir, const char *file)
38 g_module_error()); 37 g_module_error());
39 else 38 else
40 g_fprintf (stderr, "Cannot load loader %s\n", path); 39 g_fprintf (stderr, "Cannot load loader %s\n", path);
@@ -47,8 +46,8 @@ index 312aa78..b813d99 100644
47+ return ret; 46+ return ret;
48 } 47 }
49 48
50 #ifdef G_OS_WIN32 49 #if defined(G_OS_WIN32) && defined(GDK_PIXBUF_RELOCATABLE)
51@@ -314,6 +318,7 @@ int main (int argc, char **argv) 50@@ -318,6 +322,7 @@ int main (int argc, char **argv)
52 gint first_file = 1; 51 gint first_file = 1;
53 GFile *pixbuf_libdir_file; 52 GFile *pixbuf_libdir_file;
54 gchar *pixbuf_libdir; 53 gchar *pixbuf_libdir;
@@ -56,7 +55,7 @@ index 312aa78..b813d99 100644
56 55
57 #ifdef G_OS_WIN32 56 #ifdef G_OS_WIN32
58 gchar *libdir; 57 gchar *libdir;
59@@ -452,7 +457,9 @@ int main (int argc, char **argv) 58@@ -456,7 +461,9 @@ int main (int argc, char **argv)
60 } 59 }
61 modules = g_list_sort (modules, (GCompareFunc)strcmp); 60 modules = g_list_sort (modules, (GCompareFunc)strcmp);
62 for (l = modules; l != NULL; l = l->next) 61 for (l = modules; l != NULL; l = l->next)
@@ -67,7 +66,7 @@ index 312aa78..b813d99 100644
67 g_list_free_full (modules, g_free); 66 g_list_free_full (modules, g_free);
68 g_free (moduledir); 67 g_free (moduledir);
69 #else 68 #else
70@@ -468,7 +475,8 @@ int main (int argc, char **argv) 69@@ -472,7 +479,8 @@ int main (int argc, char **argv)
71 infilename = g_locale_to_utf8 (infilename, 70 infilename = g_locale_to_utf8 (infilename,
72 -1, NULL, NULL, NULL); 71 -1, NULL, NULL, NULL);
73 #endif 72 #endif
@@ -77,7 +76,7 @@ index 312aa78..b813d99 100644
77 } 76 }
78 g_free (cwd); 77 g_free (cwd);
79 } 78 }
80@@ -486,5 +494,8 @@ int main (int argc, char **argv) 79@@ -492,5 +500,8 @@ int main (int argc, char **argv)
81 80
82 g_free (pixbuf_libdir); 81 g_free (pixbuf_libdir);
83 82
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.11.bb
index 50d58ef807..ef0f23f8f7 100644
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb
+++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.11.bb
@@ -5,25 +5,24 @@ loading (ie. animated GIFs)"
5HOMEPAGE = "https://wiki.gnome.org/Projects/GdkPixbuf" 5HOMEPAGE = "https://wiki.gnome.org/Projects/GdkPixbuf"
6BUGTRACKER = "https://gitlab.gnome.org/GNOME/gdk-pixbuf/issues" 6BUGTRACKER = "https://gitlab.gnome.org/GNOME/gdk-pixbuf/issues"
7 7
8LICENSE = "LGPLv2.1+" 8LICENSE = "LGPL-2.1-or-later"
9LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ 9LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
10 file://gdk-pixbuf/gdk-pixbuf.h;endline=26;md5=72b39da7cbdde2e665329fef618e1d6b \ 10 file://gdk-pixbuf/gdk-pixbuf.h;endline=26;md5=72b39da7cbdde2e665329fef618e1d6b \
11 " 11 "
12 12
13SECTION = "libs" 13SECTION = "libs"
14 14
15DEPENDS = "glib-2.0 gdk-pixbuf-native shared-mime-info" 15DEPENDS = "glib-2.0 shared-mime-info"
16DEPENDS_remove_class-native = "gdk-pixbuf-native"
17 16
18MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" 17MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
19 18
20SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ 19SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
21 file://run-ptest \ 20 file://run-ptest \
22 file://fatal-loader.patch \ 21 file://fatal-loader.patch \
23 file://0001-Add-use_prebuilt_tools-option.patch \ 22 file://0001-meson.build-allow-a-subset-of-tests-in-cross-compile.patch \
24 " 23 "
25 24
26SRC_URI[sha256sum] = "c4a6b75b7ed8f58ca48da830b9fa00ed96d668d3ab4b1f723dcf902f78bde77f" 25SRC_URI[sha256sum] = "49dcb402388708647e8c321d56b6fb30f21e51e515d0c5a942268d23052a2f00"
27 26
28inherit meson pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gi-docgen lib_package 27inherit meson pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gi-docgen lib_package
29 28
@@ -37,34 +36,28 @@ GDK_PIXBUF_LOADERS ?= "png jpeg"
37 36
38PACKAGECONFIG = "${GDK_PIXBUF_LOADERS} \ 37PACKAGECONFIG = "${GDK_PIXBUF_LOADERS} \
39 ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" 38 ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
40PACKAGECONFIG_class-native = "${GDK_PIXBUF_LOADERS}" 39PACKAGECONFIG:class-native = "${GDK_PIXBUF_LOADERS}"
41 40
42PACKAGECONFIG[png] = "-Dpng=true,-Dpng=false,libpng" 41PACKAGECONFIG[png] = "-Dpng=enabled,-Dpng=disabled,libpng"
43PACKAGECONFIG[jpeg] = "-Djpeg=true,-Djpeg=false,jpeg" 42PACKAGECONFIG[jpeg] = "-Djpeg=enabled,-Djpeg=disabled,jpeg"
44PACKAGECONFIG[tiff] = "-Dtiff=true,-Dtiff=false,tiff" 43PACKAGECONFIG[tiff] = "-Dtiff=enabled,-Dtiff=disabled,tiff"
45PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false" 44PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false"
46 45
47EXTRA_OEMESON_class-target = " \ 46EXTRA_OEMESON = "-Dman=false"
48 -Duse_prebuilt_tools=true \
49"
50
51EXTRA_OEMESON_class-nativesdk = " \
52 -Duse_prebuilt_tools=true \
53"
54 47
55PACKAGES =+ "${PN}-xlib" 48PACKAGES =+ "${PN}-xlib"
56 49
57# For GIO image type sniffing 50# For GIO image type sniffing
58RDEPENDS_${PN} = "shared-mime-info" 51RDEPENDS:${PN} = "shared-mime-info"
59 52
60FILES_${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}" 53FILES:${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}"
61ALLOW_EMPTY_${PN}-xlib = "1" 54ALLOW_EMPTY:${PN}-xlib = "1"
62 55
63FILES_${PN} += "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" 56FILES:${PN} += "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
64 57
65FILES_${PN}-bin += "${datadir}/thumbnailers/gdk-pixbuf-thumbnailer.thumbnailer" 58FILES:${PN}-bin += "${datadir}/thumbnailers/gdk-pixbuf-thumbnailer.thumbnailer"
66 59
67FILES_${PN}-dev += " \ 60FILES:${PN}-dev += " \
68 ${bindir}/gdk-pixbuf-csource \ 61 ${bindir}/gdk-pixbuf-csource \
69 ${bindir}/gdk-pixbuf-pixdata \ 62 ${bindir}/gdk-pixbuf-pixdata \
70 ${bindir}/gdk-pixbuf-print-mime-types \ 63 ${bindir}/gdk-pixbuf-print-mime-types \
@@ -73,9 +66,9 @@ FILES_${PN}-dev += " \
73" 66"
74 67
75PACKAGES_DYNAMIC += "^gdk-pixbuf-loader-.*" 68PACKAGES_DYNAMIC += "^gdk-pixbuf-loader-.*"
76PACKAGES_DYNAMIC_class-native = "" 69PACKAGES_DYNAMIC:class-native = ""
77 70
78python populate_packages_prepend () { 71python populate_packages:prepend () {
79 postinst_pixbufloader = d.getVar("postinst_pixbufloader") 72 postinst_pixbufloader = d.getVar("postinst_pixbufloader")
80 73
81 loaders_root = d.expand('${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders') 74 loaders_root = d.expand('${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders')
@@ -85,22 +78,24 @@ python populate_packages_prepend () {
85 78
86 # The test suite exercises all the loaders, so ensure they are all 79 # The test suite exercises all the loaders, so ensure they are all
87 # dependencies of the ptest package. 80 # dependencies of the ptest package.
88 d.appendVar("RDEPENDS_%s-ptest" % d.getVar('PN'), " " + packages) 81 d.appendVar("RDEPENDS:%s-ptest" % d.getVar('PN'), " " + packages)
89} 82}
90 83
91do_install_append() { 84do_install:append() {
92 # Copy gdk-pixbuf-query-loaders into libdir so it is always available 85 # Copy gdk-pixbuf-query-loaders into libdir so it is always available
93 # in multilib builds. 86 # in multilib builds.
94 cp ${D}/${bindir}/gdk-pixbuf-query-loaders ${D}/${libdir}/gdk-pixbuf-2.0/ 87 cp ${D}/${bindir}/gdk-pixbuf-query-loaders ${D}/${libdir}/gdk-pixbuf-2.0/
95 88
96} 89}
97 90
98# Remove a bad fuzzing attempt that sporadically fails without a way to reproduce
99do_install_ptest() { 91do_install_ptest() {
92 # Remove a bad fuzzing attempt that sporadically fails without a way to reproduce
100 rm ${D}/${datadir}/installed-tests/gdk-pixbuf/pixbuf-randomly-modified.test 93 rm ${D}/${datadir}/installed-tests/gdk-pixbuf/pixbuf-randomly-modified.test
94 # https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/issues/215
95 rm ${D}/${datadir}/installed-tests/gdk-pixbuf/pixbuf-jpeg.test
101} 96}
102 97
103do_install_append_class-native() { 98do_install:append:class-native() {
104 find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \; 99 find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \;
105 100
106 create_wrapper ${D}/${bindir}/gdk-pixbuf-csource \ 101 create_wrapper ${D}/${bindir}/gdk-pixbuf-csource \
@@ -111,10 +106,6 @@ do_install_append_class-native() {
111 XDG_DATA_DIRS=${STAGING_DATADIR} \ 106 XDG_DATA_DIRS=${STAGING_DATADIR} \
112 GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache 107 GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache
113 108
114 create_wrapper ${D}/${bindir}/gdk-pixbuf-print-mime-types \
115 XDG_DATA_DIRS=${STAGING_DATADIR} \
116 GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache
117
118 create_wrapper ${D}/${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ 109 create_wrapper ${D}/${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \
119 XDG_DATA_DIRS=${STAGING_DATADIR} \ 110 XDG_DATA_DIRS=${STAGING_DATADIR} \
120 GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \ 111 GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \
diff --git a/meta/recipes-gnome/gi-docgen/gi-docgen_git.bb b/meta/recipes-gnome/gi-docgen/gi-docgen_2023.3.bb
index b6721dc4e0..54d7ef7513 100644
--- a/meta/recipes-gnome/gi-docgen/gi-docgen_git.bb
+++ b/meta/recipes-gnome/gi-docgen/gi-docgen_2023.3.bb
@@ -5,18 +5,17 @@ introspection data generated by GObject-based libraries to generate the API \
5reference of these libraries, as well as other ancillary documentation." 5reference of these libraries, as well as other ancillary documentation."
6HOMEPAGE = "https://gnome.pages.gitlab.gnome.org/gi-docgen/" 6HOMEPAGE = "https://gnome.pages.gitlab.gnome.org/gi-docgen/"
7 7
8LICENSE = "GPLv3+ & Apache-2.0" 8LICENSE = "GPL-3.0-or-later & Apache-2.0"
9LIC_FILES_CHKSUM = "file://gi-docgen.py;beginline=1;endline=5;md5=2dc0f1f01202478cfe813c0e7f80b326" 9LIC_FILES_CHKSUM = "file://gi-docgen.py;beginline=1;endline=5;md5=2dc0f1f01202478cfe813c0e7f80b326"
10 10
11SRC_URI = "git://gitlab.gnome.org/GNOME/gi-docgen.git;protocol=https;branch=main" 11SRC_URI = "git://gitlab.gnome.org/GNOME/gi-docgen.git;protocol=https;branch=main"
12 12
13PV = "2021.6" 13SRCREV = "96f2e9b93e1d8a5338eb05b87fd879856ab7b3cc"
14SRCREV = "cb76996ba9ef7a1634ab9bde30c77c3bbb47c8db"
15 14
16S = "${WORKDIR}/git" 15S = "${WORKDIR}/git"
17 16
18inherit setuptools3 17inherit setuptools3
19 18
20RDEPENDS_${PN} += "python3-asyncio python3-core python3-jinja2 python3-json python3-markdown python3-markupsafe python3-pygments python3-toml python3-typogrify python3-xml" 19RDEPENDS:${PN} += "python3-asyncio python3-core python3-jinja2 python3-json python3-markdown python3-markupsafe python3-pygments python3-toml python3-typogrify python3-xml"
21 20
22BBCLASSEXTEND = "native" 21BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST-3.34.3.patch b/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST-3.34.3.patch
deleted file mode 100644
index 4ed5e151ee..0000000000
--- a/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST-3.34.3.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From 8b3b153b6b95662316528ef083365b46cf5f7841 Mon Sep 17 00:00:00 2001
2From: Jussi Kukkonen <jussi.kukkonen@intel.com>
3Date: Tue, 30 May 2017 14:55:49 +0300
4Subject: [PATCH] Don't use AC_CANONICAL_HOST
5
6This won't work when building allarch (and is only used to find out if
7target is windows).
8
9Upstream-Status: Inappropriate [embedded specific]
10Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
11
12---
13 configure.ac | 1 -
14 1 file changed, 1 deletion(-)
15
16diff --git a/configure.ac b/configure.ac
17index 449865d..888649e 100644
18--- a/configure.ac
19+++ b/configure.ac
20@@ -3,7 +3,6 @@ AC_PREREQ(2.53)
21
22 AC_INIT([adwaita-icon-theme], [3.34.3],
23 [http://bugzilla.gnome.org/enter_bug.cgi?product=adwaita-icon-theme])
24-AC_CANONICAL_HOST
25 AC_CONFIG_MACRO_DIR([m4])
26 AC_CONFIG_SRCDIR([index.theme.in])
27
diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch b/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch
deleted file mode 100644
index c8c70c4b58..0000000000
--- a/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From 8b3b153b6b95662316528ef083365b46cf5f7841 Mon Sep 17 00:00:00 2001
2From: Jussi Kukkonen <jussi.kukkonen@intel.com>
3Date: Tue, 30 May 2017 14:55:49 +0300
4Subject: [PATCH] Don't use AC_CANONICAL_HOST
5
6This won't work when building allarch (and is only used to find out if
7target is windows).
8
9Upstream-Status: Inappropriate [embedded specific]
10Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
11
12---
13 configure.ac | 1 -
14 1 file changed, 1 deletion(-)
15
16diff --git a/configure.ac b/configure.ac
17index 449865d..888649e 100644
18--- a/configure.ac
19+++ b/configure.ac
20@@ -3,7 +3,6 @@ AC_PREREQ(2.53)
21
22 AC_INIT([adwaita-icon-theme], [3.38.0],
23 [http://bugzilla.gnome.org/enter_bug.cgi?product=adwaita-icon-theme])
24-AC_CANONICAL_HOST
25 AC_CONFIG_MACRO_DIR([m4])
26 AC_CONFIG_SRCDIR([index.theme.in])
27
diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch b/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch
deleted file mode 100644
index c4d7e2583b..0000000000
--- a/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch
+++ /dev/null
@@ -1,86 +0,0 @@
1From 8dcd73b45a660dbdc560676835ba46f495334f14 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Tue, 13 Jun 2017 18:10:06 +0300
4Subject: [PATCH] Run installation commands as shell jobs
5
6This greatly speeds up installation time on multi-core systems.
7
8Upstream-Status: Pending
9Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
10---
11 src/fullcolor/Makefile.am | 3 ++-
12 src/spinner/Makefile.am | 5 +++--
13 src/symbolic/Makefile.am | 7 ++++---
14 3 files changed, 9 insertions(+), 6 deletions(-)
15
16diff --git a/src/fullcolor/Makefile.am b/src/fullcolor/Makefile.am
17index 1c940a5..3998ee6 100644
18--- a/src/fullcolor/Makefile.am
19+++ b/src/fullcolor/Makefile.am
20@@ -9,9 +9,10 @@ install-data-local:
21 for file in `cd $(top_srcdir)/$(SVGOUTDIR)/$$size && find . -name "*.png"`; do \
22 context="`dirname $$file`"; \
23 $(mkdir_p) $(DESTDIR)$(themedir)/$$size/$$context; \
24- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \
25+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \
26 done; \
27- done;
28+ done; \
29+ wait
30
31 ## FIXME we should add a way to remove links generated by icon mapping
32 uninstall-local:
33diff --git a/src/spinner/Makefile.am b/src/spinner/Makefile.am
34index 86f4d7c..3fae8c1 100644
35--- a/src/spinner/Makefile.am
36+++ b/src/spinner/Makefile.am
37@@ -24,13 +24,14 @@ install-data-local:
38 for file in `cd $(top_srcdir)/$(SVGOUTDIR)/$$size; find . -name "*.png"`; do \
39 context="`dirname $$file`"; \
40 $(mkdir_p) $(DESTDIR)$(themedir)/$$size/$$context; \
41- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \
42+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \
43 done; \
44 for file in `cd $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32; find . -name "*.svg"`; do \
45 context="`dirname $$file`"; \
46 $(mkdir_p) $(DESTDIR)$(themedir)/scalable-up-to-32/$$context; \
47- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32/$$file $(DESTDIR)$(themedir)/scalable-up-to-32/$$file; \
48+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32/$$file $(DESTDIR)$(themedir)/scalable-up-to-32/$$file & \
49- done
50+ done; \
51+ wait
52
53 uninstall-local:
54 for file in `cd $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32; find . -name "*.svg"`; do \
55diff --git a/src/symbolic/Makefile.am b/src/symbolic/Makefile.am
56index 24aac9b..61ba071 100644
57--- a/src/symbolic/Makefile.am
58+++ b/src/symbolic/Makefile.am
59@@ -25,18 +25,19 @@ install-data-local:
60 for file in `cd $(top_srcdir)/$(SVGOUTDIR)/$$size; find . -name "*.png"`; do \
61 context="`dirname $$file`"; \
62 $(mkdir_p) $(DESTDIR)$(themedir)/$$size/$$context; \
63- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \
64+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \
65 done; \
66- done
67+ done; \
68 for file in `cd $(top_srcdir)/$(SVGOUTDIR)/scalable; find . -name "*.svg"`; do \
69 context="`dirname $$file`"; \
70 $(mkdir_p) $(DESTDIR)$(themedir)/scalable/$$context; \
71- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $(DESTDIR)$(themedir)/scalable/$$file; \
72+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $(DESTDIR)$(themedir)/scalable/$$file & \
73 for size in $(symbolic_encode_sizes); do \
74 $(mkdir_p) $(DESTDIR)$(themedir)/$$size/$$context; \
75- $(GTK_ENCODE_SYMBOLIC_SVG) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $$size -o $(DESTDIR)$(themedir)/$$size/$$context; \
76+ $(GTK_ENCODE_SYMBOLIC_SVG) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $$size -o $(DESTDIR)$(themedir)/$$size/$$context & \
77 done \
78- done
79+ done; \
80+ wait
81
82 uninstall-local:
83 for file in `cd $(top_srcdir)/$(SVGOUTDIR)/scalable; find . -name "*.svg"`; do \
84--
852.11.0
86
diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb
deleted file mode 100644
index 61927c0dd1..0000000000
--- a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb
+++ /dev/null
@@ -1,43 +0,0 @@
1SUMMARY = "GTK+ icon theme"
2HOMEPAGE = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme"
3BUGTRACKER = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues"
4SECTION = "x11/gnome"
5
6LICENSE = "LGPL-3.0 | CC-BY-SA-3.0"
7LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c \
8 file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \
9 file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02"
10
11inherit allarch autotools pkgconfig gettext gtk-icon-cache
12
13MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
14SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
15 file://0001-Don-t-use-AC_CANONICAL_HOST-3.34.3.patch \
16 file://0001-Run-installation-commands-as-shell-jobs.patch \
17 "
18
19SRC_URI[md5sum] = "9aea4ad9bc002aacad155ee0748b357f"
20SRC_URI[sha256sum] = "e7c2d8c259125d5f35ec09522b88c8fe7ecf625224ab0811213ef0a95d90b908"
21
22DEPENDS += "librsvg-native"
23
24PACKAGES = "${PN}-cursors ${PN}-symbolic-hires ${PN}-symbolic ${PN}-hires ${PN}"
25
26RREPLACES_${PN} = "gnome-icon-theme"
27RCONFLICTS_${PN} = "gnome-icon-theme"
28RPROVIDES_${PN} = "gnome-icon-theme"
29
30FILES_${PN}-cursors = "${prefix}/share/icons/Adwaita/cursors/"
31FILES_${PN}-symbolic-hires = "${prefix}/share/icons/Adwaita/96x96/*/*.symbolic.png \
32 ${prefix}/share/icons/Adwaita/64x64/*/*.symbolic.png \
33 ${prefix}/share/icons/Adwaita/48x48/*/*.symbolic.png \
34 ${prefix}/share/icons/Adwaita/32x32/*/*.symbolic.png"
35FILES_${PN}-symbolic = "${prefix}/share/icons/Adwaita/16x16/*/*.symbolic.png \
36 ${prefix}/share/icons/Adwaita/24x24/*/*.symbolic.png \
37 ${prefix}/share/icons/Adwaita/scalable/*/*-symbolic*.svg"
38FILES_${PN}-hires = "${prefix}/share/icons/Adwaita/256x256/ \
39 ${prefix}/share/icons/Adwaita/512x512/"
40FILES_${PN} = "${prefix}/share/icons/Adwaita/ \
41 ${prefix}/share/pkgconfig/adwaita-icon-theme.pc"
42
43BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb
deleted file mode 100644
index 672fbd2b07..0000000000
--- a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb
+++ /dev/null
@@ -1,44 +0,0 @@
1SUMMARY = "GTK+ icon theme"
2DESCRIPTION = "The Adwaita icon theme is the default icon theme of the GNOME desktop \
3This package package contains an icon theme for Gtk+ 3 applications."
4HOMEPAGE = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme"
5BUGTRACKER = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues"
6SECTION = "x11/gnome"
7
8LICENSE = "LGPL-3.0 | CC-BY-SA-3.0"
9LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c \
10 file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \
11 file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02"
12
13inherit allarch autotools pkgconfig gettext gtk-icon-cache
14
15MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
16SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
17 file://0001-Don-t-use-AC_CANONICAL_HOST.patch \
18 file://0001-Run-installation-commands-as-shell-jobs.patch \
19 "
20
21SRC_URI[sha256sum] = "6683a1aaf2430ccd9ea638dd4bfe1002bc92b412050c3dba20e480f979faaf97"
22
23DEPENDS += "librsvg-native"
24
25PACKAGES = "${PN}-cursors ${PN}-symbolic-hires ${PN}-symbolic ${PN}-hires ${PN}"
26
27RREPLACES_${PN} = "gnome-icon-theme"
28RCONFLICTS_${PN} = "gnome-icon-theme"
29RPROVIDES_${PN} = "gnome-icon-theme"
30
31FILES_${PN}-cursors = "${prefix}/share/icons/Adwaita/cursors/"
32FILES_${PN}-symbolic-hires = "${prefix}/share/icons/Adwaita/96x96/*/*.symbolic.png \
33 ${prefix}/share/icons/Adwaita/64x64/*/*.symbolic.png \
34 ${prefix}/share/icons/Adwaita/48x48/*/*.symbolic.png \
35 ${prefix}/share/icons/Adwaita/32x32/*/*.symbolic.png"
36FILES_${PN}-symbolic = "${prefix}/share/icons/Adwaita/16x16/*/*.symbolic.png \
37 ${prefix}/share/icons/Adwaita/24x24/*/*.symbolic.png \
38 ${prefix}/share/icons/Adwaita/scalable/*/*-symbolic*.svg"
39FILES_${PN}-hires = "${prefix}/share/icons/Adwaita/256x256/ \
40 ${prefix}/share/icons/Adwaita/512x512/"
41FILES_${PN} = "${prefix}/share/icons/Adwaita/ \
42 ${prefix}/share/pkgconfig/adwaita-icon-theme.pc"
43
44BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme_46.0.bb b/meta/recipes-gnome/gnome/adwaita-icon-theme_46.0.bb
new file mode 100644
index 0000000000..2f3e4e7b85
--- /dev/null
+++ b/meta/recipes-gnome/gnome/adwaita-icon-theme_46.0.bb
@@ -0,0 +1,29 @@
1SUMMARY = "GTK+ icon theme"
2DESCRIPTION = "The Adwaita icon theme is the default icon theme of the GNOME desktop \
3This package package contains an icon theme for Gtk+ 3 applications."
4HOMEPAGE = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme"
5BUGTRACKER = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues"
6SECTION = "x11/gnome"
7
8LICENSE = "LGPL-3.0-only | CC-BY-SA-3.0"
9LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c \
10 file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \
11 file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02"
12
13inherit gnomebase allarch gtk-icon-cache
14
15SRC_URI[archive.sha256sum] = "4bcb539bd75d64da385d6fa08cbaa9ddeaceb6ac8e82b85ba6c41117bf5ba64e"
16
17DEPENDS += "librsvg-native"
18
19PACKAGES =+ "${PN}-cursors ${PN}-symbolic"
20
21RREPLACES:${PN} = "gnome-icon-theme"
22RCONFLICTS:${PN} = "gnome-icon-theme"
23RPROVIDES:${PN} = "gnome-icon-theme"
24
25FILES:${PN}-cursors = "${datadir}/icons/Adwaita/cursors/"
26FILES:${PN}-symbolic = "${datadir}/icons/Adwaita/symbolic*/"
27FILES:${PN}-doc += "${datadir}/licenses/adwaita-icon-theme"
28
29BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-gnome/gnome/gconf_3.2.6.bb b/meta/recipes-gnome/gnome/gconf_3.2.6.bb
index ade93644ec..1e29bd9bb0 100644
--- a/meta/recipes-gnome/gnome/gconf_3.2.6.bb
+++ b/meta/recipes-gnome/gnome/gconf_3.2.6.bb
@@ -4,11 +4,12 @@ It is intended for user preferences; not configuration of something like \
4Apache, or arbitrary data storage." 4Apache, or arbitrary data storage."
5SECTION = "x11/gnome" 5SECTION = "x11/gnome"
6HOMEPAGE = "https://gitlab.gnome.org/Archive/gconf" 6HOMEPAGE = "https://gitlab.gnome.org/Archive/gconf"
7LICENSE = "LGPLv2+" 7LICENSE = "LGPL-2.0-or-later"
8LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" 8LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
9 9
10DEPENDS = "glib-2.0 dbus dbus-glib libxml2 intltool-native" 10DEPENDS = "glib-2.0 glib-2.0-native dbus dbus-glib libxml2 intltool-native"
11 11
12GNOMEBASEBUILDCLASS = "autotools"
12inherit gnomebase gtk-doc gettext gobject-introspection gio-module-cache 13inherit gnomebase gtk-doc gettext gobject-introspection gio-module-cache
13 14
14SRC_URI = "${GNOME_MIRROR}/GConf/${@gnome_verdir("${PV}")}/GConf-${PV}.tar.xz;name=archive \ 15SRC_URI = "${GNOME_MIRROR}/GConf/${@gnome_verdir("${PV}")}/GConf-${PV}.tar.xz;name=archive \
@@ -28,12 +29,12 @@ EXTRA_OECONF = "--enable-shared --disable-static \
28 29
29PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)}" 30PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)}"
30# We really don't want Polkit for native 31# We really don't want Polkit for native
31PACKAGECONFIG_class-native = "" 32PACKAGECONFIG:class-native = ""
32 33
33PACKAGECONFIG[polkit] = "--enable-defaults-service,--disable-defaults-service,polkit" 34PACKAGECONFIG[polkit] = "--enable-defaults-service,--disable-defaults-service,polkit"
34PACKAGECONFIG[debug] = "--enable-debug=yes, --enable-debug=minimum" 35PACKAGECONFIG[debug] = "--enable-debug=yes, --enable-debug=minimum"
35 36
36do_install_append() { 37do_install:append() {
37 # this directory need to be created to avoid an Error 256 at gdm launch 38 # this directory need to be created to avoid an Error 256 at gdm launch
38 install -d ${D}${sysconfdir}/gconf/gconf.xml.system 39 install -d ${D}${sysconfdir}/gconf/gconf.xml.system
39 40
@@ -42,19 +43,19 @@ do_install_append() {
42 rm -f ${D}${libdir}/gio/*/*.*a 43 rm -f ${D}${libdir}/gio/*/*.*a
43} 44}
44 45
45do_install_append_class-native() { 46do_install:append:class-native() {
46 create_wrapper ${D}/${bindir}/gconftool-2 \ 47 create_wrapper ${D}/${bindir}/gconftool-2 \
47 GCONF_BACKEND_DIR=${STAGING_LIBDIR_NATIVE}/GConf/2 48 GCONF_BACKEND_DIR=${STAGING_LIBDIR_NATIVE}/GConf/2
48} 49}
49 50
50FILES_${PN} += "${libdir}/GConf/* \ 51FILES:${PN} += "${libdir}/GConf/* \
51 ${libdir}/gio/*/*.so \ 52 ${libdir}/gio/*/*.so \
52 ${datadir}/polkit* \ 53 ${datadir}/polkit* \
53 ${datadir}/dbus-1/services/*.service \ 54 ${datadir}/dbus-1/services/*.service \
54 ${datadir}/dbus-1/system-services/*.service \ 55 ${datadir}/dbus-1/system-services/*.service \
55 " 56 "
56RDEPENDS_${PN} = "python3-xml" 57RDEPENDS:${PN} = "python3-xml"
57 58
58FILES_${PN}-dev += "${datadir}/sgml/gconf/gconf-1.0.dtd" 59FILES:${PN}-dev += "${datadir}/sgml/gconf/gconf-1.0.dtd"
59 60
60BBCLASSEXTEND = "native" 61BBCLASSEXTEND = "native"
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
index 9071245a84..c9e1afffd0 100644
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
@@ -1,4 +1,4 @@
1From 5c606356523431769dffb02fffd2fbca8fb20232 Mon Sep 17 00:00:00 2001 1From aeb5532f8be42d42f4e8725ca42e239b36983a4d Mon Sep 17 00:00:00 2001
2From: Sascha Silbe <x-yo17@se-silbe.de> 2From: Sascha Silbe <x-yo17@se-silbe.de>
3Date: Fri, 8 Jun 2018 13:55:10 +0200 3Date: Fri, 8 Jun 2018 13:55:10 +0200
4Subject: [PATCH] Relocate the repository directory for native builds 4Subject: [PATCH] Relocate the repository directory for native builds
@@ -21,7 +21,7 @@ Signed-off-by: Sascha Silbe <x-yo17@se-silbe.de>
21 2 files changed, 14 insertions(+), 3 deletions(-) 21 2 files changed, 14 insertions(+), 3 deletions(-)
22 22
23diff --git a/girepository/girepository.c b/girepository/girepository.c 23diff --git a/girepository/girepository.c b/girepository/girepository.c
24index 7d03485..20f4813 100644 24index a0754f4..2d456f9 100644
25--- a/girepository/girepository.c 25--- a/girepository/girepository.c
26+++ b/girepository/girepository.c 26+++ b/girepository/girepository.c
27@@ -21,6 +21,8 @@ 27@@ -21,6 +21,8 @@
@@ -62,7 +62,7 @@ index 7d03485..20f4813 100644
62 typelib_search_path = g_slist_prepend (typelib_search_path, typelib_dir); 62 typelib_search_path = g_slist_prepend (typelib_search_path, typelib_dir);
63 63
64diff --git a/girepository/meson.build b/girepository/meson.build 64diff --git a/girepository/meson.build b/girepository/meson.build
65index c8ef6aa..b85ff7f 100644 65index 786749a..15cf2a9 100644
66--- a/girepository/meson.build 66--- a/girepository/meson.build
67+++ b/girepository/meson.build 67+++ b/girepository/meson.build
68@@ -45,7 +45,7 @@ girepo_internals_lib = static_library('girepository-internals', 68@@ -45,7 +45,7 @@ girepo_internals_lib = static_library('girepository-internals',
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch
deleted file mode 100644
index b484b5e9e6..0000000000
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1From f742da8b3913f4818d3f419117076afe62f4dbf4 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Wed, 5 Sep 2018 16:46:52 +0200
4Subject: [PATCH] giscanner: ignore error return codes from ldd-wrapper
5
6prelink-rtld, which we use instead of ldd returns 127 when it can't find a library.
7It is not an error per se, but it breaks subprocess.check_output().
8
9Upstream-Status: Inappropriate [oe-core specific]
10Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11
12---
13 giscanner/shlibs.py | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py
17index d67df95..80352a6 100644
18--- a/giscanner/shlibs.py
19+++ b/giscanner/shlibs.py
20@@ -102,7 +102,7 @@ def _resolve_non_libtool(options, binary, libraries):
21 args.extend(['otool', '-L', binary.args[0]])
22 else:
23 args.extend(['ldd', binary.args[0]])
24- output = subprocess.check_output(args)
25+ output = subprocess.run(args, check=False, stdout=subprocess.PIPE).stdout
26 if isinstance(output, bytes):
27 output = output.decode("utf-8", "replace")
28
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.68.0.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb
index 048deabe64..05a08a50e0 100644
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.68.0.bb
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb
@@ -6,7 +6,7 @@ generation for bindings, API verification and documentation generation."
6HOMEPAGE = "https://wiki.gnome.org/action/show/Projects/GObjectIntrospection" 6HOMEPAGE = "https://wiki.gnome.org/action/show/Projects/GObjectIntrospection"
7BUGTRACKER = "https://gitlab.gnome.org/GNOME/gobject-introspection/issues" 7BUGTRACKER = "https://gitlab.gnome.org/GNOME/gobject-introspection/issues"
8SECTION = "libs" 8SECTION = "libs"
9LICENSE = "LGPLv2+ & GPLv2+ & MIT" 9LICENSE = "LGPL-2.0-or-later & GPL-2.0-or-later & MIT"
10LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \ 10LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \
11 file://tools/compiler.c;endline=20;md5=fc5007fc20022720e6c0b0cdde41fabd \ 11 file://tools/compiler.c;endline=20;md5=fc5007fc20022720e6c0b0cdde41fabd \
12 file://giscanner/sourcescanner.c;endline=22;md5=194d6e0c1d00662f32d030ce44de8d39 \ 12 file://giscanner/sourcescanner.c;endline=22;md5=194d6e0c1d00662f32d030ce44de8d39 \
@@ -14,27 +14,24 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \
14 " 14 "
15 15
16SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \ 16SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \
17 file://0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch \
18 " 17 "
19 18
20SRC_URI[sha256sum] = "d229242481a201b84a0c66716de1752bca41db4133672cfcfb37c93eb6e54a27" 19SRC_URI[sha256sum] = "bd7babd99af7258e76819e45ba4a6bc399608fe762d83fde3cac033c50841bb4"
21 20
22SRC_URI_append_class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch" 21SRC_URI:append:class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch"
23 22
24inherit meson pkgconfig gtk-doc python3native qemu gobject-introspection-data upstream-version-is-even multilib_script 23inherit meson pkgconfig gtk-doc python3targetconfig qemu gobject-introspection-data upstream-version-is-even multilib_script
25 24
26GTKDOC_MESON_OPTION = "gtk_doc" 25GTKDOC_MESON_OPTION = "gtk_doc"
27 26
28MULTILIB_SCRIPTS = "${PN}:${bindir}/g-ir-annotation-tool ${PN}:${bindir}/g-ir-scanner" 27MULTILIB_SCRIPTS = "${PN}:${bindir}/g-ir-annotation-tool ${PN}:${bindir}/g-ir-scanner"
29 28
30DEPENDS += " libffi zlib glib-2.0 python3 flex-native bison-native autoconf-archive" 29DEPENDS += " libffi zlib glib-2.0 python3 flex-native bison-native"
31 30
32# target build needs qemu to run temporary introspection binaries created 31# target build needs qemu to run temporary introspection binaries created
33# on the fly by g-ir-scanner and a native version of itself to run 32# on the fly by g-ir-scanner and a native version of itself to run
34# native versions of its own tools during build. 33# native versions of its own tools during build.
35# Also prelink-rtld is used to find out library dependencies of introspection binaries 34DEPENDS:append:class-target = " gobject-introspection-native qemu-native"
36# (standard ldd doesn't work when cross-compiling).
37DEPENDS_append_class-target = " gobject-introspection-native qemu-native prelink-native"
38 35
39# needed for writing out the qemu wrapper script 36# needed for writing out the qemu wrapper script
40export STAGING_DIR_HOST 37export STAGING_DIR_HOST
@@ -45,7 +42,7 @@ PACKAGECONFIG[doctool] = "-Ddoctool=enabled,-Ddoctool=disabled,python3-mako,"
45 42
46# Configure target build to use native tools of itself and to use a qemu wrapper 43# Configure target build to use native tools of itself and to use a qemu wrapper
47# and optionally to generate introspection data 44# and optionally to generate introspection data
48EXTRA_OEMESON_class-target = " \ 45EXTRA_OEMESON:class-target = " \
49 -Dgi_cross_use_prebuilt_gi=true \ 46 -Dgi_cross_use_prebuilt_gi=true \
50 -Dgi_cross_binary_wrapper=${B}/g-ir-scanner-qemuwrapper \ 47 -Dgi_cross_binary_wrapper=${B}/g-ir-scanner-qemuwrapper \
51 -Dgi_cross_ldd_wrapper=${B}/g-ir-scanner-lddwrapper \ 48 -Dgi_cross_ldd_wrapper=${B}/g-ir-scanner-lddwrapper \
@@ -54,21 +51,14 @@ EXTRA_OEMESON_class-target = " \
54 ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \ 51 ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \
55" 52"
56 53
57# Need to ensure ld.so.conf exists so prelink-native works 54do_configure:prepend:class-native() {
58# both before we build and if we install from sstate
59do_configure[prefuncs] += "gobject_introspection_preconfigure"
60python gobject_introspection_preconfigure () {
61 oe.utils.write_ld_so_conf(d)
62}
63
64do_configure_prepend_class-native() {
65 # Tweak the native python scripts so that they don't refer to the 55 # Tweak the native python scripts so that they don't refer to the
66 # full path of native python binary (the solution is taken from glib-2.0 recipe) 56 # full path of native python binary (the solution is taken from glib-2.0 recipe)
67 # This removes the risk of exceeding Linux kernel's shebang line limit (128 bytes) 57 # This removes the risk of exceeding Linux kernel's shebang line limit (128 bytes)
68 sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in 58 sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in
69} 59}
70 60
71do_configure_prepend_class-target() { 61do_configure:prepend:class-target() {
72 # Write out a qemu wrapper that will be given to gi-scanner so that it 62 # Write out a qemu wrapper that will be given to gi-scanner so that it
73 # can run target helper binaries through that. 63 # can run target helper binaries through that.
74 qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}" 64 qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}"
@@ -93,7 +83,7 @@ EOF
93 # from the target sysroot. 83 # from the target sysroot.
94 cat > ${B}/g-ir-scanner-wrapper << EOF 84 cat > ${B}/g-ir-scanner-wrapper << EOF
95#!/bin/sh 85#!/bin/sh
96# This prevents g-ir-scanner from writing cache data to $HOME 86# This prevents g-ir-scanner from writing cache data to user's HOME dir
97export GI_SCANNER_DISABLE_CACHE=1 87export GI_SCANNER_DISABLE_CACHE=1
98 88
99g-ir-scanner --lib-dirs-envvar=GIR_EXTRA_LIBS_PATH --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_DATADIR}/gir-1.0 --add-include-path=${STAGING_LIBDIR}/gir-1.0 "\$@" 89g-ir-scanner --lib-dirs-envvar=GIR_EXTRA_LIBS_PATH --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_DATADIR}/gir-1.0 --add-include-path=${STAGING_LIBDIR}/gir-1.0 "\$@"
@@ -112,7 +102,7 @@ EOF
112 # for a different architecture 102 # for a different architecture
113 cat > ${B}/g-ir-scanner-lddwrapper << EOF 103 cat > ${B}/g-ir-scanner-lddwrapper << EOF
114#!/bin/sh 104#!/bin/sh
115prelink-rtld --root=$STAGING_DIR_HOST "\$@" 105\$OBJDUMP -p "\$@"
116EOF 106EOF
117 chmod +x ${B}/g-ir-scanner-lddwrapper 107 chmod +x ${B}/g-ir-scanner-lddwrapper
118 108
@@ -121,22 +111,19 @@ EOF
121 sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in 111 sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in
122} 112}
123 113
124do_compile_prepend() { 114do_compile:prepend() {
125 # This prevents g-ir-scanner from writing cache data to $HOME
126 export GI_SCANNER_DISABLE_CACHE=1
127
128 # Needed to run g-ir unit tests, which won't be able to find the built libraries otherwise 115 # Needed to run g-ir unit tests, which won't be able to find the built libraries otherwise
129 export GIR_EXTRA_LIBS_PATH=$B/.libs 116 export GIR_EXTRA_LIBS_PATH=$B/.libs
130} 117}
131 118
132do_install_prepend() { 119do_install:prepend() {
133 # This prevents g-ir-scanner from writing cache data to $HOME 120 # This prevents g-ir-scanner from writing cache data to $HOME
134 export GI_SCANNER_DISABLE_CACHE=1 121 export GI_SCANNER_DISABLE_CACHE=1
135} 122}
136 123
137# Our wrappers need to be available system-wide, because they will be used 124# Our wrappers need to be available system-wide, because they will be used
138# to build introspection files for all other gobject-based packages 125# to build introspection files for all other gobject-based packages
139do_install_append_class-target() { 126do_install:append:class-target() {
140 install -d ${D}${bindir}/ 127 install -d ${D}${bindir}/
141 install ${B}/g-ir-scanner-qemuwrapper ${D}${bindir}/ 128 install ${B}/g-ir-scanner-qemuwrapper ${D}${bindir}/
142 install ${B}/g-ir-scanner-wrapper ${D}${bindir}/ 129 install ${B}/g-ir-scanner-wrapper ${D}${bindir}/
@@ -146,9 +133,9 @@ do_install_append_class-target() {
146 133
147# we need target versions of introspection tools in sysroot so that they can be run via qemu 134# we need target versions of introspection tools in sysroot so that they can be run via qemu
148# when building introspection files in other packages 135# when building introspection files in other packages
149SYSROOT_DIRS_append_class-target = " ${bindir}" 136SYSROOT_DIRS:append:class-target = " ${bindir}"
150 137
151SYSROOT_PREPROCESS_FUNCS_append_class-target = " gi_binaries_sysroot_preprocess" 138SYSROOT_PREPROCESS_FUNCS:append:class-target = " gi_binaries_sysroot_preprocess"
152gi_binaries_sysroot_preprocess() { 139gi_binaries_sysroot_preprocess() {
153 # Tweak the binary names in the introspection pkgconfig file, so that it 140 # Tweak the binary names in the introspection pkgconfig file, so that it
154 # picks up our wrappers which do the cross-compile and qemu magic. 141 # picks up our wrappers which do the cross-compile and qemu magic.
@@ -158,7 +145,7 @@ gi_binaries_sysroot_preprocess() {
158 ${SYSROOT_DESTDIR}${libdir}/pkgconfig/gobject-introspection-1.0.pc 145 ${SYSROOT_DESTDIR}${libdir}/pkgconfig/gobject-introspection-1.0.pc
159} 146}
160 147
161SYSROOT_PREPROCESS_FUNCS_append = " gi_ldsoconf_sysroot_preprocess" 148SYSROOT_PREPROCESS_FUNCS:append = " gi_ldsoconf_sysroot_preprocess"
162gi_ldsoconf_sysroot_preprocess () { 149gi_ldsoconf_sysroot_preprocess () {
163 mkdir -p ${SYSROOT_DESTDIR}${bindir} 150 mkdir -p ${SYSROOT_DESTDIR}${bindir}
164 dest=${SYSROOT_DESTDIR}${bindir}/postinst-ldsoconf-${PN} 151 dest=${SYSROOT_DESTDIR}${bindir}/postinst-ldsoconf-${PN}
@@ -181,26 +168,27 @@ gi_package_preprocess() {
181SSTATE_SCAN_FILES += "g-ir-scanner-qemuwrapper g-ir-scanner-wrapper g-ir-compiler-wrapper g-ir-scanner-lddwrapper Gio-2.0.gir postinst-ldsoconf-${PN}" 168SSTATE_SCAN_FILES += "g-ir-scanner-qemuwrapper g-ir-scanner-wrapper g-ir-compiler-wrapper g-ir-scanner-lddwrapper Gio-2.0.gir postinst-ldsoconf-${PN}"
182 169
183# .typelib files are needed at runtime and so they go to the main package 170# .typelib files are needed at runtime and so they go to the main package
184FILES_${PN}_append = " ${libdir}/girepository-*/*.typelib" 171FILES:${PN}:append = " ${libdir}/girepository-*/*.typelib"
185 172
186# .gir files go to dev package, as they're needed for developing (but not for running) 173# .gir files go to dev package, as they're needed for developing (but not for running)
187# things that depends on introspection. 174# things that depends on introspection.
188FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir" 175FILES:${PN}-dev:append = " ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir"
189FILES_${PN}-dev_append = " ${datadir}/gir-*/*.rnc" 176FILES:${PN}-dev:append = " ${datadir}/gir-*/*.rnc"
190 177
191# These are used by gobject-based packages 178# These are used by gobject-based packages
192# to generate transient introspection binaries 179# to generate transient introspection binaries
193FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/gdump.c \ 180FILES:${PN}-dev:append = " ${datadir}/gobject-introspection-1.0/gdump.c \
194 ${datadir}/gobject-introspection-1.0/Makefile.introspection" 181 ${datadir}/gobject-introspection-1.0/Makefile.introspection"
195 182
196# These are used by dependent packages (e.g. pygobject) to build their 183# These are used by dependent packages (e.g. pygobject) to build their
197# testsuites. 184# testsuites.
198FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/tests/*.c \ 185FILES:${PN}-dev:append = " ${datadir}/gobject-introspection-1.0/tests/*.c \
199 ${datadir}/gobject-introspection-1.0/tests/*.h" 186 ${datadir}/gobject-introspection-1.0/tests/*.h"
200 187
201FILES_${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/" 188FILES:${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/"
202FILES_${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a" 189FILES:${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a"
203 190
204RDEPENDS_${PN} = "python3-pickle python3-xml" 191# setuptools can be removed when upstream removes all uses of distutils
192RDEPENDS:${PN} = "python3-pickle python3-xml python3-setuptools"
205 193
206BBCLASSEXTEND = "native" 194BBCLASSEXTEND = "native"
diff --git a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_40.0.bb b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_46.0.bb
index 89751a8637..8260c3d357 100644
--- a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_40.0.bb
+++ b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_46.0.bb
@@ -4,13 +4,12 @@ GSettings schemas for settings shared by various components of a desktop."
4HOMEPAGE = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas" 4HOMEPAGE = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas"
5BUGTRACKER = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/issues" 5BUGTRACKER = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/issues"
6 6
7LICENSE = "LGPLv2.1" 7LICENSE = "LGPL-2.1-only"
8LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" 8LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
9 9
10DEPENDS = "glib-2.0" 10DEPENDS = "glib-2.0"
11 11
12GNOMEBASEBUILDCLASS = "meson"
13 12
14inherit gnomebase gsettings gobject-introspection gettext 13inherit gnomebase gsettings gobject-introspection gettext
15 14
16SRC_URI[archive.sha256sum] = "f1b83bf023c0261eacd0ed36066b76f4a520bbcb14bb69c402b7959257125685" 15SRC_URI[archive.sha256sum] = "493a46a1161b6388d57aa72f632a79ce96c42d5ffbd1d0b00f496ec5876f8575"
diff --git a/meta/recipes-gnome/gtk+/gtk+3.inc b/meta/recipes-gnome/gtk+/gtk+3.inc
index 1445c406d8..e1603b43fc 100644
--- a/meta/recipes-gnome/gtk+/gtk+3.inc
+++ b/meta/recipes-gnome/gtk+/gtk+3.inc
@@ -6,64 +6,48 @@ HOMEPAGE = "http://www.gtk.org"
6BUGTRACKER = "https://bugzilla.gnome.org/" 6BUGTRACKER = "https://bugzilla.gnome.org/"
7SECTION = "libs" 7SECTION = "libs"
8 8
9DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \ 9DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf gdk-pixbuf-native"
10 gdk-pixbuf-native"
11 10
12LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" 11LICENSE = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later"
13 12
14inherit autotools gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings features_check gobject-introspection 13inherit meson gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings features_check gobject-introspection
15 14
16BBCLASSEXTEND = "native nativesdk" 15BBCLASSEXTEND = "native nativesdk"
17 16
18GSETTINGS_PACKAGE_class-native = "" 17GSETTINGS_PACKAGE:class-native = ""
19 18
20# versions >= 3.90 are development versions, otherwise like upstream-version-is-even 19# versions >= 3.90 are development versions, otherwise like upstream-version-is-even
21UPSTREAM_CHECK_REGEX = "[^\d\.](?P<pver>3\.([1-8]?[02468])+(\.\d+)+)\.tar" 20UPSTREAM_CHECK_REGEX = "[^\d\.](?P<pver>3\.([1-8]?[02468])+(\.\d+)+)\.tar"
22 21
23ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 22ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
24 23
25# This should be in autotools.bbclass, but until something elses uses it putting 24do_configure:prepend() {
26# it here avoids rebuilding everything.
27export PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native"
28
29do_configure_prepend() {
30 # Do this because the configure script is running ./libtool directly
31 rm -f libtool
32 ln -s ${TARGET_PREFIX}libtool libtool
33 #delete a file that will get confused with generated one in ${B}
34 rm -f ${S}/gtk/gtktypefuncs.c
35
36 # These files are generated by wayland-scanner but will race over modification 25 # These files are generated by wayland-scanner but will race over modification
37 # time between the copies in the sysroot from wayland-protocols and the copy 26 # time between the copies in the sysroot from wayland-protocols and the copy
38 # in the source tree. Solve the race by deleting so they need to be regenerated. 27 # in the source tree. Solve the race by deleting so they need to be regenerated.
39 # 3.24.22 will not be shipping these files so this can be deleted then: 28 rm -f ${S}/modules/input/*-text-input-*.[ch]
40 # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2183
41 rm -f ${S}/modules/input/text-input-unstable-v3*.[ch]
42} 29}
43 30
44EXTRA_OECONF += " \ 31GTKDOC_MESON_OPTION = 'gtk_doc'
45 --disable-glibtest \
46 --disable-xinerama \
47 --enable-modules \
48 ${@bb.utils.contains("DISTRO_FEATURES", "x11", "", "--disable-gtk-doc", d)} \
49 "
50 32
51do_compile_prepend() { 33EXTRA_OEMESON = "-Dxinerama=no -Dtests=false"
52 export GIR_EXTRA_LIBS_PATH="${B}/gdk/.libs" 34EXTRA_OEMESON:append:class-native = " -Ddemos=false -Dexamples=false"
53}
54 35
55PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl wayland x11', d)} \ 36PACKAGECONFIG ??= " \
56 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'glx', '', d)}" 37 ${@bb.utils.filter('DISTRO_FEATURES', 'opengl x11', d)} \
57PACKAGECONFIG_class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" 38 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'wayland', '', d)} \
58PACKAGECONFIG_class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" 39"
40PACKAGECONFIG:class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
41PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
59 42
60PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes" 43PACKAGECONFIG[x11] = "-Dx11_backend=true,-Dx11_backend=false,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes"
61# this is provided by oe-core patch that removes epoxy/gl dependency from a X11 build 44# this is provided by oe-core patch that removes epoxy/gl dependency from a X11 build
62PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,libepoxy" 45PACKAGECONFIG[opengl] = "-Dopengl=true,-Dopengl=false,libepoxy"
63PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,,libgl" 46PACKAGECONFIG[wayland] = "-Dwayland_backend=true,-Dwayland_backend=false,wayland wayland-protocols libxkbcommon virtual/egl virtual/libgles2 wayland-native"
64PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland wayland-protocols libxkbcommon virtual/egl virtual/libgles2 wayland-native" 47PACKAGECONFIG[cups] = ",,cups,cups gtk3-printbackend-cups"
65PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups" 48PACKAGECONFIG[colord] = "-Dcolord=yes,-Dcolord=no,colord"
66PACKAGECONFIG[colord] = "--enable-colord,--disable-colord,colord" 49PACKAGECONFIG[cloudproviders] = "-Dcloudproviders=true,-Dcloudproviders=false,libcloudproviders"
50PACKAGECONFIG[tracker3] = "-Dtracker3=true,-Dtracker3=false,tracker,tracker-miners"
67 51
68prepare_gtk_scripts() { 52prepare_gtk_scripts() {
69 mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0 53 mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0
@@ -73,15 +57,15 @@ prepare_gtk_scripts() {
73 ln ${D}${bindir}/gtk-query-immodules-3.0 ${D}${libexecdir}/${MLPREFIX}gtk-query-immodules-3.0 57 ln ${D}${bindir}/gtk-query-immodules-3.0 ${D}${libexecdir}/${MLPREFIX}gtk-query-immodules-3.0
74} 58}
75 59
76do_install_append_class-target() { 60do_install:append:class-target() {
77 prepare_gtk_scripts 61 prepare_gtk_scripts
78} 62}
79 63
80do_install_append_class-nativesdk() { 64do_install:append:class-nativesdk() {
81 prepare_gtk_scripts 65 prepare_gtk_scripts
82} 66}
83 67
84do_install_append_class-native() { 68do_install:append:class-native() {
85 create_wrapper ${D}/${bindir}/gtk-update-icon-cache \ 69 create_wrapper ${D}/${bindir}/gtk-update-icon-cache \
86 GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache 70 GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache
87 create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \ 71 create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \
@@ -92,7 +76,7 @@ PROVIDES += "gtk-icon-utils"
92PACKAGES =+ "${PN}-demo" 76PACKAGES =+ "${PN}-demo"
93LIBV = "3.0.0" 77LIBV = "3.0.0"
94 78
95FILES_${PN}-demo = "${bindir}/gtk3-demo \ 79FILES:${PN}-demo = "${bindir}/gtk3-demo \
96 ${bindir}/gtk3-demo-application \ 80 ${bindir}/gtk3-demo-application \
97 ${bindir}/gtk3-icon-browser \ 81 ${bindir}/gtk3-icon-browser \
98 ${bindir}/gtk3-widget-factory \ 82 ${bindir}/gtk3-widget-factory \
@@ -103,14 +87,15 @@ FILES_${PN}-demo = "${bindir}/gtk3-demo \
103 ${datadir}/icons/hicolor/*/apps/gtk3-demo*.png \ 87 ${datadir}/icons/hicolor/*/apps/gtk3-demo*.png \
104 ${datadir}/icons/hicolor/*/apps/gtk3-widget-factory*.png" 88 ${datadir}/icons/hicolor/*/apps/gtk3-widget-factory*.png"
105 89
106FILES_${PN}_append = " ${bindir}/gtk-update-icon-cache-3.0 \ 90FILES:${PN}:append = " ${bindir}/gtk-update-icon-cache-3.0 \
107 ${bindir}/gtk-query-immodules-3.0 \ 91 ${bindir}/gtk-query-immodules-3.0 \
108 ${bindir}/gtk-launch \ 92 ${bindir}/gtk-launch \
109 ${datadir}/themes ${sysconfdir} ${datadir}/glib-2.0/schemas/ \ 93 ${datadir}/themes ${datadir}/gtk-3.0/emoji \
94 ${sysconfdir} ${datadir}/glib-2.0/schemas/ \
110 ${libdir}/gtk-3.0/${LIBV}/engines/libpixmap.so \ 95 ${libdir}/gtk-3.0/${LIBV}/engines/libpixmap.so \
111 ${libdir}/gtk-3.0/modules/*.so" 96 ${libdir}/gtk-3.0/modules/*.so"
112 97
113FILES_${PN}-dev += " \ 98FILES:${PN}-dev += " \
114 ${datadir}/gtk-3.0/gtkbuilder.rng \ 99 ${datadir}/gtk-3.0/gtkbuilder.rng \
115 ${datadir}/gtk-3.0/include \ 100 ${datadir}/gtk-3.0/include \
116 ${datadir}/gtk-3.0/valgrind \ 101 ${datadir}/gtk-3.0/valgrind \
@@ -136,22 +121,22 @@ GTKBASE_RRECOMMENDS ?= "liberation-fonts \
136 adwaita-icon-theme-symbolic \ 121 adwaita-icon-theme-symbolic \
137 " 122 "
138 123
139GTKBASE_RRECOMMENDS_class-native ?= "\ 124GTKBASE_RRECOMMENDS:class-native ?= "\
140 " 125 "
141 126
142GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1" 127GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1"
143 128
144RRECOMMENDS_${PN} = "${GTKBASE_RRECOMMENDS}" 129RRECOMMENDS:${PN} = "${GTKBASE_RRECOMMENDS}"
145RRECOMMENDS_${PN}_libc-glibc = "${GTKGLIBC_RRECOMMENDS}" 130RRECOMMENDS:${PN}:libc-glibc = "${GTKGLIBC_RRECOMMENDS}"
146RDEPENDS_${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}" 131RDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}"
147 132
148PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*" 133PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*"
149 134
150ALTERNATIVE_${PN} = "gtk-update-icon-cache" 135ALTERNATIVE:${PN} = "gtk-update-icon-cache"
151ALTERNATIVE_TARGET[gtk-update-icon-cache] = "${bindir}/gtk-update-icon-cache-3.0" 136ALTERNATIVE_TARGET[gtk-update-icon-cache] = "${bindir}/gtk-update-icon-cache-3.0"
152ALTERNATIVE_PRIORITY = "30" 137ALTERNATIVE_PRIORITY = "30"
153 138
154python populate_packages_prepend () { 139python populate_packages:prepend () {
155 import os.path 140 import os.path
156 141
157 gtk_libdir = d.expand('${libdir}/gtk-3.0/${LIBV}') 142 gtk_libdir = d.expand('${libdir}/gtk-3.0/${LIBV}')
@@ -165,5 +150,5 @@ python populate_packages_prepend () {
165 do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk3-printbackend-%s', 'GTK printbackend module for %s') 150 do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk3-printbackend-%s', 'GTK printbackend module for %s')
166 151
167 if (d.getVar('DEBIAN_NAMES')): 152 if (d.getVar('DEBIAN_NAMES')):
168 d.setVar(d.expand('PKG_${PN}'), '${MLPREFIX}libgtk-3.0') 153 d.setVar(d.expand('PKG:${PN}'), '${MLPREFIX}libgtk-3.0')
169} 154}
diff --git a/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch b/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch
deleted file mode 100644
index c210bbc7d5..0000000000
--- a/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch
+++ /dev/null
@@ -1,47 +0,0 @@
1From 0ecaa5bab162abf0cb2057d77beeb7b89d5873b4 Mon Sep 17 00:00:00 2001
2From: Jussi Kukkonen <jussi.kukkonen@intel.com>
3Date: Tue, 21 Jun 2016 14:53:56 +0300
4Subject: [PATCH 1/4] Hardcoded libtool
5
6Upstream-Status: Inappropriate [embedded specific]
7
8Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
9Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
10---
11 configure.ac | 6 +++---
12 1 file changed, 3 insertions(+), 3 deletions(-)
13
14diff --git a/configure.ac b/configure.ac
15index 6628e21..f43ac09 100644
16--- a/configure.ac
17+++ b/configure.ac
18@@ -617,7 +617,7 @@ AC_MSG_CHECKING([whether to write dependencies into .pc files])
19 case $enable_explicit_deps in
20 auto)
21 export SED
22- deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
23+ deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
24 if test "x$deplibs_check_method" != xpass_all || test "x$enable_static" = xyes ; then
25 enable_explicit_deps=yes
26 else
27@@ -895,7 +895,7 @@ else
28 dnl Now we check to see if our libtool supports shared lib deps
29 dnl (in a rather ugly way even)
30 if $dynworks; then
31- module_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
32+ module_libtool_config="${CONFIG_SHELL-/bin/sh} ./$host_alias-libtool --config"
33 module_deplibs_check=`$module_libtool_config | \
34 grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
35 sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
36@@ -1649,7 +1649,7 @@ AC_SUBST(GTK_PRINT_BACKENDS)
37 # We are using gmodule-no-export now, but I'm leaving the stripping
38 # code in place for now, since pango and atk still require gmodule.
39 export SED
40-export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
41+export_dynamic=`(./$host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
42 if test -n "$export_dynamic"; then
43 GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
44 GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
45--
462.12.0
47
diff --git a/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch b/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch
deleted file mode 100644
index 80dc2d7a05..0000000000
--- a/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch
+++ /dev/null
@@ -1,57 +0,0 @@
1From 6575ab0f0e8c1bba033ad1616511e37a2ec995ff Mon Sep 17 00:00:00 2001
2From: Jussi Kukkonen <jussi.kukkonen@intel.com>
3Date: Fri, 16 Oct 2015 16:35:16 +0300
4Subject: [PATCH] Do not try to initialize GL without libGL
5
6_gdk_x11_screen_update_visuals_for_gl() will end up calling epoxys
7GLX api which will exit() if libGL.so.1 is not present. We do not
8want that to happen and we don't want every app to have to set
9"GDK_GL=disabled" environment variable: so use #ifdef set based on
10opengl distro feature.
11
12Upstream is not interested in the fix as it is: Either epoxy should be
13fixed (to not exit) or GTK+ possibly could do some additional probing
14before calling epoxy APIs.
15
16Upstream-Status: Denied
17Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
18
19---
20 configure.ac | 6 ++++++
21 gdk/x11/gdkvisual-x11.c | 5 +++++
22 2 files changed, 11 insertions(+)
23
24diff --git a/configure.ac b/configure.ac
25index e9f5583..bd651bb 100644
26--- a/configure.ac
27+++ b/configure.ac
28@@ -346,6 +346,12 @@ AC_ARG_ENABLE(cloudproviders,
29 [AS_HELP_STRING([--enable-cloudproviders],
30 [enable libcloudproviders integration])],
31 [cloudproviders_set=yes])
32+AC_ARG_ENABLE(glx,
33+ [AS_HELP_STRING([--enable-glx],
34+ [When enabled Gdk will try to initialize GLX])])
35+AS_IF([test "x$enable_glx" != "xno"], [
36+ AC_DEFINE([HAVE_GLX], [], [GLX will be available at runtime])
37+])
38
39 AC_ARG_ENABLE(profiler,
40 [AS_HELP_STRING([--enable-profiler],
41diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c
42index 81479d8..3c8c5c0 100644
43--- a/gdk/x11/gdkvisual-x11.c
44+++ b/gdk/x11/gdkvisual-x11.c
45@@ -306,7 +306,12 @@ _gdk_x11_screen_init_visuals (GdkScreen *screen)
46 /* If GL is available we want to pick better default/rgba visuals,
47 as we care about glx details such as alpha/depth/stencil depth,
48 stereo and double buffering */
49+ /* update_visuals_for_gl() will end up calling epoxy GLX api which
50+ will exit if libgl is not there: so only do this if we know GL
51+ is available */
52+#ifdef HAVE_GLX
53 _gdk_x11_screen_update_visuals_for_gl (screen);
54+#endif
55 }
56
57 gint
diff --git a/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch b/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch
deleted file mode 100644
index 35cbab8761..0000000000
--- a/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch
+++ /dev/null
@@ -1,872 +0,0 @@
1From eef50c94587fc30cd624adb5eb213eb9fa663dc1 Mon Sep 17 00:00:00 2001
2From: Jussi Kukkonen <jussi.kukkonen@intel.com>
3Date: Tue, 21 Jun 2016 15:11:39 +0300
4Subject: [PATCH] Add --disable-opengl configure option
5
6--disable-opengl will remove the dependency on libepoxy and on the
7OpenGL APIs. This is useful for those who want to keep using gtk+3
8without the "opengl" distro feature.
9
10GtkGLArea is still part of the API (it just doesn't work) even when
11OpenGL is disabled. GdkX11GLContext was removed from the Gtk API
12completely: that object exposes GL API elements so it had to be at
13the very least modified.
14
15The patch is _not_ great from a maintenance point of view and
16modifying the library API is also a fairly nasty thing to do.
17Next long term release (4.0) will require alternative solutions
18as it actually will depend on OpenGL.
19
20Upstream-Status: Inappropriate [Evil eye expected from upstream]
21Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
22
23---
24 configure.ac | 13 ++++-
25 demos/gtk-demo/glarea.c | 14 ++++++
26 docs/tools/Makefile.am | 9 +++-
27 docs/tools/widgets.c | 4 +-
28 gdk/Makefile.am | 8 ++-
29 gdk/gdkdisplay.c | 4 +-
30 gdk/gdkgl.c | 10 ++++
31 gdk/gdkglcontext.c | 6 +++
32 gdk/gdkwindow.c | 13 +++++
33 gdk/x11/Makefile.am | 30 +++++++++--
34 gdk/x11/gdkdisplay-x11.c | 6 ++-
35 gdk/x11/gdkscreen-x11.c | 5 ++
36 gdk/x11/gdkwindow-x11.c | 4 ++
37 gdk/x11/gdkx-autocleanups.h | 2 +
38 gdk/x11/{gdkx.h => gdkx-with-gl-context.h} | 1 -
39 gdk/x11/gdkx-without-gl-context.h | 58 ++++++++++++++++++++++
40 gtk/Makefile.am | 2 +-
41 gtk/gtkglarea.c | 20 +++++++-
42 gtk/inspector/general.c | 6 +++
43 tests/Makefile.am | 10 ++--
44 testsuite/gtk/objects-finalize.c | 2 +
45 21 files changed, 208 insertions(+), 19 deletions(-)
46 rename gdk/x11/{gdkx.h => gdkx-with-gl-context.h} (98%)
47 create mode 100644 gdk/x11/gdkx-without-gl-context.h
48
49diff --git a/configure.ac b/configure.ac
50index 851bcbf..6cbf6a2 100644
51--- a/configure.ac
52+++ b/configure.ac
53@@ -346,6 +346,15 @@ AC_ARG_ENABLE(cloudproviders,
54 [AS_HELP_STRING([--enable-cloudproviders],
55 [enable libcloudproviders integration])],
56 [cloudproviders_set=yes])
57+AC_ARG_ENABLE(opengl,
58+ [AS_HELP_STRING([--enable-opengl],
59+ [When enabled, Gtk+ will use libepoxy and exposes GtkGLArea widget ])])
60+AS_IF([test "x$enable_opengl" != "xno"], [
61+ AC_DEFINE([HAVE_OPENGL], [1], [libepoxy and opengl APIs are available at buildtime])
62+ EPOXY_PACKAGES="epoxy >= epoxy_required_version"
63+])
64+AM_CONDITIONAL([HAVE_OPENGL],[test "x$enable_opengl" != "xno"])
65+
66 AC_ARG_ENABLE(glx,
67 [AS_HELP_STRING([--enable-glx],
68 [When enabled Gdk will try to initialize GLX])])
69@@ -1345,7 +1354,7 @@ CFLAGS="$saved_cflags"
70 LDFLAGS="$saved_ldflags"
71
72 GDK_PACKAGES="$PANGO_PACKAGES gdk-pixbuf-2.0 >= gdk_pixbuf_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version"
73-GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $cairo_backends epoxy >= epoxy_required_version $CLOUDPROVIDER_PACKAGES $PROFILER_PACKAGES fribidi >= fribidi_required_version"
74+GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $cairo_backends $EPOXY_PACKAGES $CLOUDPROVIDER_PACKAGES $PROFILER_PACKAGES fribidi >= fribidi_required_version"
75
76 PKG_CHECK_MODULES(GDK_DEP, $GDK_PACKAGES $GDK_PRIVATE_PACKAGES)
77 GDK_DEP_LIBS="$GDK_EXTRA_LIBS $GDK_DEP_LIBS $MATH_LIB"
78@@ -1379,7 +1388,7 @@ fi
79 PKG_CHECK_MODULES(ATK, $ATK_PACKAGES)
80
81 GTK_PACKAGES="atk >= atk_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version gdk-pixbuf-2.0 >= gdk_pixbuf_required_version gio-2.0 >= glib_required_version"
82-GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES epoxy >= epoxy_required_version fribidi >= fribidi_required_version"
83+GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $EPOXY_PACKAGES fribidi >= fribidi_required_version"
84 if test "x$enable_x11_backend" = xyes -o "x$enable_wayland_backend" = xyes; then
85 GTK_PRIVATE_PACKAGES="$GTK_PRIVATE_PACKAGES pangoft2"
86 fi
87diff --git a/demos/gtk-demo/glarea.c b/demos/gtk-demo/glarea.c
88index b51e4ae..82409c7 100644
89--- a/demos/gtk-demo/glarea.c
90+++ b/demos/gtk-demo/glarea.c
91@@ -3,9 +3,12 @@
92 * GtkGLArea is a widget that allows custom drawing using OpenGL calls.
93 */
94
95+#include "config.h"
96 #include <math.h>
97 #include <gtk/gtk.h>
98+#if HAVE_OPENGL
99 #include <epoxy/gl.h>
100+#endif
101
102 static GtkWidget *demo_window = NULL;
103
104@@ -23,6 +26,8 @@ enum {
105 /* Rotation angles on each axis */
106 static float rotation_angles[N_AXIS] = { 0.0 };
107
108+#ifdef HAVE_OPENGL
109+
110 /* The object we are drawing */
111 static const GLfloat vertex_data[] = {
112 0.f, 0.5f, 0.f, 1.f,
113@@ -215,6 +220,7 @@ compute_mvp (float *res,
114 static GLuint position_buffer;
115 static GLuint program;
116 static GLuint mvp_location;
117+#endif
118
119 /* We need to set up our state when we realize the GtkGLArea widget */
120 static void
121@@ -241,8 +247,10 @@ realize (GtkWidget *widget)
122 fragment_path = "/glarea/glarea-gl.fs.glsl";
123 }
124
125+#ifdef HAVE_OPENGL
126 init_buffers (&position_buffer, NULL);
127 init_shaders (vertex_path, fragment_path, &program, &mvp_location);
128+#endif
129 }
130
131 /* We should tear down the state when unrealizing */
132@@ -254,10 +262,13 @@ unrealize (GtkWidget *widget)
133 if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL)
134 return;
135
136+#ifdef HAVE_OPENGL
137 glDeleteBuffers (1, &position_buffer);
138 glDeleteProgram (program);
139+#endif
140 }
141
142+#ifdef HAVE_OPENGL
143 static void
144 draw_triangle (void)
145 {
146@@ -290,6 +301,7 @@ draw_triangle (void)
147 glBindBuffer (GL_ARRAY_BUFFER, 0);
148 glUseProgram (0);
149 }
150+#endif
151
152 static gboolean
153 render (GtkGLArea *area,
154@@ -298,6 +310,7 @@ render (GtkGLArea *area,
155 if (gtk_gl_area_get_error (area) != NULL)
156 return FALSE;
157
158+#ifdef HAVE_OPENGL
159 /* Clear the viewport */
160 glClearColor (0.5, 0.5, 0.5, 1.0);
161 glClear (GL_COLOR_BUFFER_BIT);
162@@ -307,6 +320,7 @@ render (GtkGLArea *area,
163
164 /* Flush the contents of the pipeline */
165 glFlush ();
166+#endif
167
168 return TRUE;
169 }
170diff --git a/docs/tools/Makefile.am b/docs/tools/Makefile.am
171index bec43e3..189e8fc 100644
172--- a/docs/tools/Makefile.am
173+++ b/docs/tools/Makefile.am
174@@ -9,13 +9,18 @@ AM_CPPFLAGS = \
175 $(GTK_DEBUG_FLAGS) \
176 $(GTK_DEP_CFLAGS)
177
178+if HAVE_OPENGL
179+GEARS_LDADD = $(top_builddir)/tests/gtkgears.o
180+endif
181+
182 DEPS = \
183- $(top_builddir)/gtk/libgtk-3.la
184+ $(top_builddir)/gtk/libgtk-3.la \
185+ $(GEARS_LDADD)
186
187 LDADDS = \
188 $(top_builddir)/gtk/libgtk-3.la \
189 $(top_builddir)/gdk/libgdk-3.la \
190- $(top_builddir)/tests/gtkgears.o \
191+ $(GEARS_LDADD) \
192 $(GTK_DEP_LIBS) \
193 $(GDK_DEP_LIBS) \
194 -lm
195diff --git a/docs/tools/widgets.c b/docs/tools/widgets.c
196index 932daf1..54239d6 100644
197--- a/docs/tools/widgets.c
198+++ b/docs/tools/widgets.c
199@@ -1526,9 +1526,11 @@ create_gl_area (void)
200 widget = gtk_frame_new (NULL);
201 gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
202
203+#ifdef HAVE_OPENGL
204 gears = gtk_gears_new ();
205 gtk_container_add (GTK_CONTAINER (widget), gears);
206-
207+#endif
208+
209 info = new_widget_info ("glarea", widget, MEDIUM);
210
211 return info;
212diff --git a/gdk/Makefile.am b/gdk/Makefile.am
213index 710a548..b45f631 100644
214--- a/gdk/Makefile.am
215+++ b/gdk/Makefile.am
216@@ -274,7 +274,6 @@ x11_introspection_files = \
217 x11/gdkeventsource.c \
218 x11/gdkeventtranslator.c \
219 x11/gdkgeometry-x11.c \
220- x11/gdkglcontext-x11.c \
221 x11/gdkkeys-x11.c \
222 x11/gdkmain-x11.c \
223 x11/gdkmonitor-x11.c \
224@@ -300,7 +299,6 @@ x11_introspection_files = \
225 x11/gdkx11display.h \
226 x11/gdkx11displaymanager.h \
227 x11/gdkx11dnd.h \
228- x11/gdkx11glcontext.h \
229 x11/gdkx11keys.h \
230 x11/gdkx11monitor.h \
231 x11/gdkx11property.h \
232@@ -310,6 +308,12 @@ x11_introspection_files = \
233 x11/gdkx11visual.h \
234 x11/gdkx11window.h
235
236+if HAVE_OPENGL
237+x11_introspection_files += \
238+ x11/gdkglcontext-x11.c \
239+ x11/gdkx11glcontext.h
240+endif
241+
242 GdkX11-3.0.gir: libgdk-3.la Gdk-3.0.gir Makefile
243 GdkX11_3_0_gir_SCANNERFLAGS = \
244 --identifier-prefix=Gdk \
245diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
246index 748f548..911ab2a 100644
247--- a/gdk/gdkdisplay.c
248+++ b/gdk/gdkdisplay.c
249@@ -2420,7 +2420,9 @@ gboolean
250 gdk_display_make_gl_context_current (GdkDisplay *display,
251 GdkGLContext *context)
252 {
253- return GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current (display, context);
254+ if (GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current)
255+ return GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current (display, context);
256+ return FALSE;
257 }
258
259 GdkRenderingMode
260diff --git a/gdk/gdkgl.c b/gdk/gdkgl.c
261index 9690077..55f85ef 100644
262--- a/gdk/gdkgl.c
263+++ b/gdk/gdkgl.c
264@@ -26,7 +26,9 @@
265 # include "win32/gdkwin32.h"
266 #endif
267
268+#ifdef HAVE_OPENGL
269 #include <epoxy/gl.h>
270+#endif
271 #include <math.h>
272 #include <string.h>
273
274@@ -40,6 +42,7 @@ gdk_cairo_surface_mark_as_direct (cairo_surface_t *surface,
275 g_object_ref (window), g_object_unref);
276 }
277
278+#ifdef HAVE_OPENGL
279 static const char *
280 get_vertex_type_name (int type)
281 {
282@@ -212,6 +215,7 @@ use_texture_rect_program (GdkGLContextPaintData *paint_data)
283 glUseProgram (paint_data->current_program->program);
284 }
285 }
286+#endif
287
288 void
289 gdk_gl_texture_quads (GdkGLContext *paint_context,
290@@ -220,6 +224,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context,
291 GdkTexturedQuad *quads,
292 gboolean flip_colors)
293 {
294+#ifdef HAVE_OPENGL
295 GdkGLContextPaintData *paint_data = gdk_gl_context_get_paint_data (paint_context);
296 GdkGLContextProgram *program;
297 GdkWindow *window = gdk_gl_context_get_window (paint_context);
298@@ -293,6 +298,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context,
299
300 glDisableVertexAttribArray (program->position_location);
301 glDisableVertexAttribArray (program->uv_location);
302+#endif
303 }
304
305 /* x,y,width,height describes a rectangle in the gl render buffer
306@@ -341,6 +347,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
307 int width,
308 int height)
309 {
310+#ifdef HAVE_OPENGL
311 GdkGLContext *paint_context;
312 cairo_surface_t *image;
313 cairo_matrix_t matrix;
314@@ -718,6 +725,7 @@ out:
315 if (clip_region)
316 cairo_region_destroy (clip_region);
317
318+#endif
319 }
320
321 /* This is always called with the paint context current */
322@@ -725,6 +733,7 @@ void
323 gdk_gl_texture_from_surface (cairo_surface_t *surface,
324 cairo_region_t *region)
325 {
326+#ifdef HAVE_OPENGL
327 GdkGLContext *paint_context;
328 cairo_surface_t *image;
329 double device_x_offset, device_y_offset;
330@@ -825,4 +834,5 @@ gdk_gl_texture_from_surface (cairo_surface_t *surface,
331
332 glDisable (GL_SCISSOR_TEST);
333 glDeleteTextures (1, &texture_id);
334+#endif
335 }
336diff --git a/gdk/gdkglcontext.c b/gdk/gdkglcontext.c
337index 3b23639..1f04f8e 100644
338--- a/gdk/gdkglcontext.c
339+++ b/gdk/gdkglcontext.c
340@@ -85,7 +85,9 @@
341 #include "gdkintl.h"
342 #include "gdk-private.h"
343
344+#ifdef HAVE_OPENGL
345 #include <epoxy/gl.h>
346+#endif
347
348 typedef struct {
349 GdkDisplay *display;
350@@ -243,6 +245,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context,
351 int height,
352 guint texture_target)
353 {
354+#ifdef HAVE_OPENGL
355 GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
356
357 g_return_if_fail (GDK_IS_GL_CONTEXT (context));
358@@ -286,6 +289,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context,
359 glTexSubImage2D (texture_target, 0, 0, i, width, 1, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, (unsigned char*) data + (i * stride));
360 }
361 }
362+#endif
363 }
364
365 static gboolean
366@@ -774,6 +778,7 @@ gdk_gl_context_realize (GdkGLContext *context,
367 static void
368 gdk_gl_context_check_extensions (GdkGLContext *context)
369 {
370+#ifdef HAVE_OPENGL
371 GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
372 gboolean has_npot, has_texture_rectangle;
373
374@@ -853,6 +858,7 @@ gdk_gl_context_check_extensions (GdkGLContext *context)
375 priv->use_texture_rectangle ? "yes" : "no"));
376
377 priv->extensions_checked = TRUE;
378+#endif
379 }
380
381 /**
382diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
383index 2de8ba4..1883a79 100644
384--- a/gdk/gdkwindow.c
385+++ b/gdk/gdkwindow.c
386@@ -45,7 +45,9 @@
387
388 #include <math.h>
389
390+#ifdef HAVE_OPENGL
391 #include <epoxy/gl.h>
392+#endif
393
394 /* for the use of round() */
395 #include "fallback-c89.c"
396@@ -2844,6 +2846,13 @@ gdk_window_get_paint_gl_context (GdkWindow *window,
397 {
398 GError *internal_error = NULL;
399
400+#ifndef HAVE_OPENGL
401+ g_set_error_literal (error, GDK_GL_ERROR,
402+ GDK_GL_ERROR_NOT_AVAILABLE,
403+ _("GL support disabled with --disable-opengl"));
404+ return NULL;
405+#endif
406+
407 if (_gdk_gl_flags & GDK_GL_DISABLE)
408 {
409 g_set_error_literal (error, GDK_GL_ERROR,
410@@ -2979,6 +2988,7 @@ gdk_window_begin_paint_internal (GdkWindow *window,
411 }
412 else
413 {
414+#ifdef HAVE_OPENGL
415 gdk_gl_context_make_current (context);
416 /* With gl we always need a surface to combine the gl
417 drawing with the native drawing. */
418@@ -2993,6 +3003,7 @@ gdk_window_begin_paint_internal (GdkWindow *window,
419 glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
420
421 glViewport (0, 0, ww, wh);
422+#endif
423 }
424 }
425
426@@ -3056,6 +3067,7 @@ gdk_window_end_paint_internal (GdkWindow *window)
427
428 gdk_gl_context_make_current (window->gl_paint_context);
429
430+#ifdef HAVE_OPENGL
431 if (!cairo_region_is_empty (opaque_region))
432 gdk_gl_texture_from_surface (window->current_paint.surface,
433 opaque_region);
434@@ -3066,6 +3078,7 @@ gdk_window_end_paint_internal (GdkWindow *window)
435 window->current_paint.need_blend_region);
436 glDisable(GL_BLEND);
437 }
438+#endif
439
440 cairo_region_destroy (opaque_region);
441
442diff --git a/gdk/x11/Makefile.am b/gdk/x11/Makefile.am
443index 32b1f24..6352313 100644
444--- a/gdk/x11/Makefile.am
445+++ b/gdk/x11/Makefile.am
446@@ -40,8 +40,6 @@ libgdk_x11_la_SOURCES = \
447 gdkeventtranslator.c \
448 gdkeventtranslator.h \
449 gdkgeometry-x11.c \
450- gdkglcontext-x11.c \
451- gdkglcontext-x11.h \
452 gdkkeys-x11.c \
453 gdkmain-x11.c \
454 gdkmonitor-x11.c \
455@@ -56,14 +54,32 @@ libgdk_x11_la_SOURCES = \
456 gdkwindow-x11.h \
457 gdkxftdefaults.c \
458 gdkxid.c \
459- gdkx.h \
460 gdkprivate-x11.h \
461 xsettings-client.h \
462 xsettings-client.c
463
464+if HAVE_OPENGL
465+libgdk_x11_la_SOURCES += \
466+ gdkglcontext-x11.c \
467+ gdkglcontext-x11.h
468+endif
469+
470 libgdkinclude_HEADERS = \
471 gdkx.h
472
473+if HAVE_OPENGL
474+GDKX_HEADER = gdkx-with-gl-context.h
475+else
476+GDKX_HEADER = gdkx-without-gl-context.h
477+endif
478+
479+BUILT_SOURCES = gdkx.h
480+
481+.PHONY: gdkx.h
482+gdkx.h:
483+ $(AM_V_GEN) cd $(srcdir) \
484+ && (cmp -s $(GDKX_HEADER) gdkx.h || cp $(GDKX_HEADER) gdkx.h )
485+
486 libgdkx11include_HEADERS = \
487 gdkx-autocleanups.h \
488 gdkx11applaunchcontext.h \
489@@ -77,7 +93,6 @@ libgdkx11include_HEADERS = \
490 gdkx11display.h \
491 gdkx11displaymanager.h \
492 gdkx11dnd.h \
493- gdkx11glcontext.h \
494 gdkx11keys.h \
495 gdkx11monitor.h \
496 gdkx11property.h \
497@@ -87,10 +102,17 @@ libgdkx11include_HEADERS = \
498 gdkx11visual.h \
499 gdkx11window.h
500
501+if HAVE_OPENGL
502+libgdkx11include_HEADERS += gdkx11glcontext.h
503+endif
504+
505 # We need to include all these C files here since the conditionals
506 # don't seem to be correctly expanded for the dist files.
507 EXTRA_DIST += \
508+ gdkx.h \
509 gdksettings.c \
510 meson.build
511
512+MAINTAINERCLEANFILES = gdkx.h
513+
514 -include $(top_srcdir)/git.mk
515diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
516index 7e08f47..30fd7b6 100644
517--- a/gdk/x11/gdkdisplay-x11.c
518+++ b/gdk/x11/gdkdisplay-x11.c
519@@ -37,7 +37,9 @@
520 #include "gdkdisplay-x11.h"
521 #include "gdkprivate-x11.h"
522 #include "gdkscreen-x11.h"
523+#ifdef HAVE_OPENGL
524 #include "gdkglcontext-x11.h"
525+#endif
526 #include "gdk-private.h"
527 #include "gdkprofilerprivate.h"
528
529@@ -3191,7 +3193,9 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
530 display_class->text_property_to_utf8_list = _gdk_x11_display_text_property_to_utf8_list;
531 display_class->utf8_to_string_target = _gdk_x11_display_utf8_to_string_target;
532
533- display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current;
534+#ifdef HAVE_OPENGL
535+ display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current;
536+#endif
537
538 display_class->get_default_seat = gdk_x11_display_get_default_seat;
539
540diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c
541index bb4df05..46f5349 100644
542--- a/gdk/x11/gdkscreen-x11.c
543+++ b/gdk/x11/gdkscreen-x11.c
544@@ -1827,3 +1827,8 @@ gdk_x11_screen_get_current_desktop (GdkScreen *screen)
545 {
546 return get_netwm_cardinal_property (screen, "_NET_CURRENT_DESKTOP");
547 }
548+
549+#ifndef HAVE_OPENGL
550+/* Function from in gdk/x11/gdkglcontext-x11.c */
551+void _gdk_x11_screen_update_visuals_for_gl (GdkScreen *screen) {}
552+#endif
553diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
554index 721d9bb..8e87acc 100644
555--- a/gdk/x11/gdkwindow-x11.c
556+++ b/gdk/x11/gdkwindow-x11.c
557@@ -36,7 +36,9 @@
558 #include "gdkasync.h"
559 #include "gdkeventsource.h"
560 #include "gdkdisplay-x11.h"
561+#ifdef HAVE_OPENGL
562 #include "gdkglcontext-x11.h"
563+#endif
564 #include "gdkprivate-x11.h"
565 #include "gdk-private.h"
566
567@@ -5881,7 +5883,9 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass)
568 impl_class->set_opaque_region = gdk_x11_window_set_opaque_region;
569 impl_class->set_shadow_width = gdk_x11_window_set_shadow_width;
570 impl_class->show_window_menu = gdk_x11_window_show_window_menu;
571+#ifdef HAVE_OPENGL
572 impl_class->create_gl_context = gdk_x11_window_create_gl_context;
573 impl_class->invalidate_for_new_frame = gdk_x11_window_invalidate_for_new_frame;
574+#endif
575 impl_class->get_unscaled_size = gdk_x11_window_get_unscaled_size;
576 }
577diff --git a/gdk/x11/gdkx-autocleanups.h b/gdk/x11/gdkx-autocleanups.h
578index edb0ea7..a317d61 100644
579--- a/gdk/x11/gdkx-autocleanups.h
580+++ b/gdk/x11/gdkx-autocleanups.h
581@@ -30,7 +30,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DeviceXI2, g_object_unref)
582 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Display, g_object_unref)
583 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DisplayManager, g_object_unref)
584 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DragContext, g_object_unref)
585+#ifdef HAVE_OPENGL
586 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11GLContext, g_object_unref)
587+#endif
588 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Keymap, g_object_unref)
589 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Screen, g_object_unref)
590 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Visual, g_object_unref)
591diff --git a/gdk/x11/gdkx.h b/gdk/x11/gdkx-with-gl-context.h
592similarity index 98%
593rename from gdk/x11/gdkx.h
594rename to gdk/x11/gdkx-with-gl-context.h
595index 1f64bcc..ae05fa6 100644
596--- a/gdk/x11/gdkx.h
597+++ b/gdk/x11/gdkx-with-gl-context.h
598@@ -45,7 +45,6 @@
599 #include <gdk/x11/gdkx11dnd.h>
600 #include <gdk/x11/gdkx11glcontext.h>
601 #include <gdk/x11/gdkx11keys.h>
602-#include <gdk/x11/gdkx11monitor.h>
603 #include <gdk/x11/gdkx11property.h>
604 #include <gdk/x11/gdkx11screen.h>
605 #include <gdk/x11/gdkx11selection.h>
606diff --git a/gdk/x11/gdkx-without-gl-context.h b/gdk/x11/gdkx-without-gl-context.h
607new file mode 100644
608index 0000000..c9e2617
609--- /dev/null
610+++ b/gdk/x11/gdkx-without-gl-context.h
611@@ -0,0 +1,58 @@
612+/* GDK - The GIMP Drawing Kit
613+ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
614+ *
615+ * This library is free software; you can redistribute it and/or
616+ * modify it under the terms of the GNU Lesser General Public
617+ * License as published by the Free Software Foundation; either
618+ * version 2 of the License, or (at your option) any later version.
619+ *
620+ * This library is distributed in the hope that it will be useful,
621+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
622+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
623+ * Lesser General Public License for more details.
624+ *
625+ * You should have received a copy of the GNU Lesser General Public
626+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
627+ */
628+
629+/*
630+ * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
631+ * file for a list of people on the GTK+ Team. See the ChangeLog
632+ * files for a list of changes. These files are distributed with
633+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
634+ */
635+
636+#ifndef __GDK_X_H__
637+#define __GDK_X_H__
638+
639+#include <gdk/gdk.h>
640+
641+#include <X11/Xlib.h>
642+#include <X11/Xutil.h>
643+
644+#define __GDKX_H_INSIDE__
645+
646+#include <gdk/x11/gdkx11applaunchcontext.h>
647+#include <gdk/x11/gdkx11cursor.h>
648+#include <gdk/x11/gdkx11device.h>
649+#include <gdk/x11/gdkx11device-core.h>
650+#include <gdk/x11/gdkx11device-xi2.h>
651+#include <gdk/x11/gdkx11devicemanager.h>
652+#include <gdk/x11/gdkx11devicemanager-core.h>
653+#include <gdk/x11/gdkx11devicemanager-xi2.h>
654+#include <gdk/x11/gdkx11display.h>
655+#include <gdk/x11/gdkx11displaymanager.h>
656+#include <gdk/x11/gdkx11dnd.h>
657+#include <gdk/x11/gdkx11keys.h>
658+#include <gdk/x11/gdkx11property.h>
659+#include <gdk/x11/gdkx11screen.h>
660+#include <gdk/x11/gdkx11selection.h>
661+#include <gdk/x11/gdkx11utils.h>
662+#include <gdk/x11/gdkx11visual.h>
663+#include <gdk/x11/gdkx11window.h>
664+
665+#include <gdk/x11/gdkx-autocleanups.h>
666+
667+#undef __GDKX_H_INSIDE__
668+
669+#endif /* __GDK_X_H__ */
670diff --git a/gtk/Makefile.am b/gtk/Makefile.am
671index 074fb35..4fa9eb6 100644
672--- a/gtk/Makefile.am
673+++ b/gtk/Makefile.am
674@@ -1457,7 +1457,7 @@ gtktypefuncs.inc: stamp-gtktypebuiltins.h stamp-gtkprivatetypebuiltins.h $(top_s
675 ${CPP} $(DEFS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) xgen-gtfsrc.c | \
676 $(GREP) -o '\bg[td]k_[a-zA-Z0-9_]*_get_type\b' | \
677 sort | uniq | \
678- $(SED) '{ s/^/*tp++ = /; s/$$/();/; s/^.*\(gdk_x11\|gtk_plug_\|gtk_socket_\).*$$/#ifdef GDK_WINDOWING_X11\n&\n#endif/; }' >> xgen-gtf \
679+ $(SED) '{ s/^/*tp++ = /; s/$$/();/; s/^.*\(gdk_x11\|gtk_plug_\|gtk_socket_\).*$$/#ifdef GDK_WINDOWING_X11\n&\n#endif/; s/^.*gdk_x11_gl.*$$/#ifdef HAVE_OPENGL\n&\n#endif/; }' >> xgen-gtf \
680 && cp xgen-gtf $@ && rm -f xgen-gtf
681 $(srcdir)/gtktestutils.c: gtktypefuncs.inc
682
683diff --git a/gtk/gtkglarea.c b/gtk/gtkglarea.c
684index 802303e..33001cf 100644
685--- a/gtk/gtkglarea.c
686+++ b/gtk/gtkglarea.c
687@@ -29,7 +29,9 @@
688 #include "gtkprivate.h"
689 #include "gtkrender.h"
690
691+#ifdef HAVE_OPENGL
692 #include <epoxy/gl.h>
693+#endif
694
695 /**
696 * SECTION:gtkglarea
697@@ -369,9 +371,12 @@ gtk_gl_area_real_create_context (GtkGLArea *area)
698 static void
699 gtk_gl_area_resize (GtkGLArea *area, int width, int height)
700 {
701+#ifdef HAVE_OPENGL
702 glViewport (0, 0, width, height);
703+#endif
704 }
705
706+#ifdef HAVE_OPENGL
707 /*
708 * Creates all the buffer objects needed for rendering the scene
709 */
710@@ -483,6 +488,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area)
711
712 priv->needs_render = TRUE;
713 }
714+#endif
715
716 /**
717 * gtk_gl_area_attach_buffers:
718@@ -501,6 +507,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area)
719 void
720 gtk_gl_area_attach_buffers (GtkGLArea *area)
721 {
722+#ifdef HAVE_OPENGL
723 GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area);
724
725 g_return_if_fail (GTK_IS_GL_AREA (area));
726@@ -533,11 +540,13 @@ gtk_gl_area_attach_buffers (GtkGLArea *area)
727 glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT,
728 GL_RENDERBUFFER, priv->depth_stencil_buffer);
729 }
730+#endif
731 }
732
733 static void
734 gtk_gl_area_delete_buffers (GtkGLArea *area)
735 {
736+#ifdef HAVE_OPENGL
737 GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area);
738
739 if (priv->context == NULL)
740@@ -569,6 +578,7 @@ gtk_gl_area_delete_buffers (GtkGLArea *area)
741 glDeleteFramebuffers (1, &priv->frame_buffer);
742 priv->frame_buffer = 0;
743 }
744+#endif
745 }
746
747 static void
748@@ -679,6 +689,7 @@ gtk_gl_area_draw (GtkWidget *widget,
749 GtkGLArea *area = GTK_GL_AREA (widget);
750 GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area);
751 gboolean unused;
752+#ifdef HAVE_OPENGL
753 int w, h, scale;
754 GLenum status;
755
756@@ -690,7 +701,6 @@ gtk_gl_area_draw (GtkWidget *widget,
757 gtk_widget_get_allocated_height (widget));
758 return FALSE;
759 }
760-
761 if (priv->context == NULL)
762 return FALSE;
763
764@@ -736,6 +746,14 @@ gtk_gl_area_draw (GtkWidget *widget,
765 }
766
767 return TRUE;
768+#else
769+ if (priv->error != NULL)
770+ gtk_gl_area_draw_error_screen (area,
771+ cr,
772+ gtk_widget_get_allocated_width (widget),
773+ gtk_widget_get_allocated_height (widget));
774+ return FALSE;
775+#endif
776 }
777
778 static gboolean
779diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c
780index 48237d1..1f9b9be 100644
781--- a/gtk/inspector/general.c
782+++ b/gtk/inspector/general.c
783@@ -33,8 +33,10 @@
784
785 #ifdef GDK_WINDOWING_X11
786 #include "x11/gdkx.h"
787+#ifdef HAVE_OPENGL
788 #include <epoxy/glx.h>
789 #endif
790+#endif
791
792 #ifdef GDK_WINDOWING_WIN32
793 #include "win32/gdkwin32.h"
794@@ -196,6 +198,7 @@ add_label_row (GtkInspectorGeneral *gen,
795 gtk_size_group_add_widget (GTK_SIZE_GROUP (gen->priv->labels), label);
796 }
797
798+#ifdef HAVE_OPENGL
799 #ifdef GDK_WINDOWING_X11
800 static void
801 append_glx_extension_row (GtkInspectorGeneral *gen,
802@@ -205,6 +208,7 @@ append_glx_extension_row (GtkInspectorGeneral *gen,
803 add_check_row (gen, GTK_LIST_BOX (gen->priv->gl_box), ext, epoxy_has_glx_extension (dpy, 0, ext), 0);
804 }
805 #endif
806+#endif
807
808 #ifdef GDK_WINDOWING_WAYLAND
809 static void
810@@ -254,6 +258,7 @@ wayland_get_display (struct wl_display *wl_display)
811 static void
812 init_gl (GtkInspectorGeneral *gen)
813 {
814+#ifdef HAVE_OPENGL
815 #ifdef GDK_WINDOWING_X11
816 if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
817 {
818@@ -280,6 +285,7 @@ init_gl (GtkInspectorGeneral *gen)
819 }
820 else
821 #endif
822+#endif
823 #ifdef GDK_WINDOWING_WAYLAND
824 if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ()))
825 {
826diff --git a/tests/Makefile.am b/tests/Makefile.am
827index f283e89..5e7180e 100644
828--- a/tests/Makefile.am
829+++ b/tests/Makefile.am
830@@ -80,8 +80,6 @@ noinst_PROGRAMS = $(TEST_PROGS) \
831 testfullscreen \
832 testgeometry \
833 testgiconpixbuf \
834- testglarea \
835- testglblending \
836 testgrid \
837 testgtk \
838 testheaderbar \
839@@ -172,12 +170,18 @@ noinst_PROGRAMS = $(TEST_PROGS) \
840 testactionbar \
841 testwindowsize \
842 testpopover \
843- gdkgears \
844 listmodel \
845 testpopup \
846 testpopupat \
847 $(NULL)
848
849+if HAVE_OPENGL
850+noinst_PROGRAMS +=
851+ testglarea \
852+ testglblending \
853+ gdkgears
854+endif
855+
856 if USE_WAYLAND
857 noinst_PROGRAMS += testforeign
858 endif
859diff --git a/testsuite/gtk/objects-finalize.c b/testsuite/gtk/objects-finalize.c
860index 24540e3..e0f863a 100644
861--- a/testsuite/gtk/objects-finalize.c
862+++ b/testsuite/gtk/objects-finalize.c
863@@ -116,7 +116,9 @@ main (int argc, char **argv)
864 all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_CORE &&
865 all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_XI2 &&
866 all_types[i] != GDK_TYPE_X11_DISPLAY_MANAGER &&
867+#ifdef HAVE_OPENGL
868 all_types[i] != GDK_TYPE_X11_GL_CONTEXT &&
869+#endif
870 #endif
871 /* Not allowed to finalize a GdkPixbufLoader without calling gdk_pixbuf_loader_close() */
872 all_types[i] != GDK_TYPE_PIXBUF_LOADER &&
diff --git a/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch b/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch
deleted file mode 100644
index e4bbd799f1..0000000000
--- a/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch
+++ /dev/null
@@ -1,19 +0,0 @@
1Link with libfribidi, this is to avoid under linking where these functions are
2used but the library is not linked in, and they are marked undefined by BFD linker
3but gold linker refuses to link
4
5| ./.libs/libgdk-3.so: error: undefined reference to 'fribidi_get_bidi_type'
6
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8Upstream-Status: Pending
9
10--- a/gdk/Makefile.am
11+++ b/gdk/Makefile.am
12@@ -55,6 +55,7 @@ LDADD = \
13 -version-info $(LT_VERSION_INFO) \
14 -export-dynamic \
15 -rpath $(libdir) \
16+ -lfribidi \
17 $(no_undefined)
18
19 #
diff --git a/meta/recipes-gnome/gtk+/gtk+3/opengl.patch b/meta/recipes-gnome/gtk+/gtk+3/opengl.patch
new file mode 100644
index 0000000000..8f2feb0ee7
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk+3/opengl.patch
@@ -0,0 +1,738 @@
1From 4a0716f04fb25b51b08e994bd5a900b2e7f7fed5 Mon Sep 17 00:00:00 2001
2From: Jussi Kukkonen <jussi.kukkonen@intel.com>
3Date: Fri, 16 Oct 2015 16:35:16 +0300
4Subject: [PATCH] Do not try to initialize GL without libGL
5
6_gdk_x11_screen_update_visuals_for_gl() will end up calling epoxys
7GLX api which will exit() if libGL.so.1 is not present. We do not
8want that to happen and we don't want every app to have to set
9"GDK_GL=disabled" environment variable: so use #ifdef set based on
10opengl distro feature.
11
12Upstream is not interested in the fix as it is: Either epoxy should be
13fixed (to not exit) or GTK+ possibly could do some additional probing
14before calling epoxy APIs.
15
16Upstream-Status: Denied
17Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
18---
19 demos/gtk-demo/meson.build | 5 ++++-
20 docs/tools/meson.build | 7 +++++--
21 docs/tools/widgets.c | 6 +++++-
22 gdk/gdkconfig.h.meson | 1 +
23 gdk/gdkdisplay.c | 4 ++++
24 gdk/gdkgl.c | 10 ++++++++++
25 gdk/gdkglcontext.c | 6 ++++++
26 gdk/gdkwindow.c | 13 +++++++++++++
27 gdk/meson.build | 8 +++++++-
28 gdk/x11/gdkdisplay-x11.c | 6 +++++-
29 gdk/x11/gdkvisual-x11.c | 5 +++++
30 gdk/x11/gdkwindow-x11.c | 4 ++++
31 gdk/x11/gdkx-autocleanups.h | 2 ++
32 gdk/x11/gdkx.h | 2 ++
33 gdk/x11/meson.build | 7 +++++--
34 gtk/gtkglarea.c | 19 +++++++++++++++++++
35 gtk/inspector/general.c | 6 ++++++
36 meson.build | 17 ++++++++++++++---
37 meson_options.txt | 2 ++
38 tests/meson.build | 9 +++++++--
39 testsuite/gtk/objects-finalize.c | 2 ++
40 21 files changed, 128 insertions(+), 13 deletions(-)
41
42diff --git a/demos/gtk-demo/meson.build b/demos/gtk-demo/meson.build
43index 252da16d05..4b57cff6ac 100644
44--- a/demos/gtk-demo/meson.build
45+++ b/demos/gtk-demo/meson.build
46@@ -28,7 +28,6 @@ demos = files([
47 'fishbowl.c',
48 'foreigndrawing.c',
49 'gestures.c',
50- 'glarea.c',
51 'headerbar.c',
52 'hypertext.c',
53 'iconview.c',
54@@ -87,6 +86,10 @@ elif harfbuzz_dep.found() and pangoft_dep.found()
55 gtkdemo_deps += [harfbuzz_dep, pangoft_dep]
56 endif
57
58+if opengl_enabled
59+ demos += files('glarea.c')
60+endif
61+
62 if os_unix
63 demos += files('pagesetup.c')
64 endif
65diff --git a/docs/tools/meson.build b/docs/tools/meson.build
66index 05621ee7ed..3d0a333b32 100644
67--- a/docs/tools/meson.build
68+++ b/docs/tools/meson.build
69@@ -2,10 +2,13 @@ if x11_enabled
70 doc_shooter_sources = [
71 'shadow.c',
72 'shooter.c',
73- 'widgets.c',
74- '../../tests/gtkgears.c',
75+ 'widgets.c'
76 ]
77
78+ if opengl_enabled
79+ doc_shooter_sources += ['../../tests/gtkgears.c']
80+ endif
81+
82 doc_shooter = executable('doc-shooter', doc_shooter_sources,
83 include_directories: [ confinc, gdkinc, gtkinc, testinc, ],
84 dependencies: libgtk_dep)
85diff --git a/docs/tools/widgets.c b/docs/tools/widgets.c
86index 932daf1746..348807e133 100644
87--- a/docs/tools/widgets.c
88+++ b/docs/tools/widgets.c
89@@ -8,7 +8,9 @@
90 #include <X11/Xatom.h>
91 #include <gdkx.h>
92 #include "widgets.h"
93+#ifdef HAVE_OPENGL
94 #include "gtkgears.h"
95+#endif
96
97 #define SMALL_WIDTH 240
98 #define SMALL_HEIGHT 75
99@@ -1526,9 +1528,11 @@ create_gl_area (void)
100 widget = gtk_frame_new (NULL);
101 gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
102
103+#ifdef HAVE_OPENGL
104 gears = gtk_gears_new ();
105 gtk_container_add (GTK_CONTAINER (widget), gears);
106-
107+#endif
108+
109 info = new_widget_info ("glarea", widget, MEDIUM);
110
111 return info;
112diff --git a/gdk/gdkconfig.h.meson b/gdk/gdkconfig.h.meson
113index 7db19e0470..088651bafa 100644
114--- a/gdk/gdkconfig.h.meson
115+++ b/gdk/gdkconfig.h.meson
116@@ -15,6 +15,7 @@ G_BEGIN_DECLS
117 #mesondefine GDK_WINDOWING_WAYLAND
118 #mesondefine GDK_WINDOWING_WIN32
119 #mesondefine GDK_WINDOWING_QUARTZ
120+#mesondefine GDK_WITH_OPENGL
121
122 G_END_DECLS
123
124diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
125index 748f54860c..04ef2c09d4 100644
126--- a/gdk/gdkdisplay.c
127+++ b/gdk/gdkdisplay.c
128@@ -2420,7 +2420,11 @@ gboolean
129 gdk_display_make_gl_context_current (GdkDisplay *display,
130 GdkGLContext *context)
131 {
132+#ifdef HAVE_OPENGL
133 return GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current (display, context);
134+#else
135+ return FALSE;
136+#endif
137 }
138
139 GdkRenderingMode
140diff --git a/gdk/gdkgl.c b/gdk/gdkgl.c
141index 9690077cc2..55f85ef605 100644
142--- a/gdk/gdkgl.c
143+++ b/gdk/gdkgl.c
144@@ -21,8 +21,9 @@
145 #include "gdkglcontextprivate.h"
146
147 #include "gdkinternals.h"
148-
149+#ifdef HAVE_OPENGL
150 #include <epoxy/gl.h>
151+#endif
152 #include <math.h>
153 #include <string.h>
154
155@@ -36,6 +37,7 @@
156 g_object_ref (window), g_object_unref);
157 }
158
159+#ifdef HAVE_OPENGL
160 static const char *
161 get_vertex_type_name (int type)
162 {
163@@ -208,6 +210,7 @@
164 glUseProgram (paint_data->current_program->program);
165 }
166 }
167+#endif
168
169 void
170 gdk_gl_texture_quads (GdkGLContext *paint_context,
171@@ -216,6 +219,7 @@
172 GdkTexturedQuad *quads,
173 gboolean flip_colors)
174 {
175+#ifdef HAVE_OPENGL
176 GdkGLContextPaintData *paint_data = gdk_gl_context_get_paint_data (paint_context);
177 GdkGLContextProgram *program;
178 GdkWindow *window = gdk_gl_context_get_window (paint_context);
179@@ -289,6 +293,7 @@
180
181 glDisableVertexAttribArray (program->position_location);
182 glDisableVertexAttribArray (program->uv_location);
183+#endif
184 }
185
186 /* x,y,width,height describes a rectangle in the gl render buffer
187@@ -337,6 +342,7 @@
188 int width,
189 int height)
190 {
191+#ifdef HAVE_OPENGL
192 GdkGLContext *paint_context, *current_context;
193 cairo_surface_t *image;
194 cairo_matrix_t matrix;
195@@ -703,6 +709,7 @@
196 if (clip_region)
197 cairo_region_destroy (clip_region);
198
199+#endif
200 }
201
202 /* This is always called with the paint context current */
203@@ -710,6 +717,7 @@
204 gdk_gl_texture_from_surface (cairo_surface_t *surface,
205 cairo_region_t *region)
206 {
207+#ifdef HAVE_OPENGL
208 GdkGLContext *paint_context;
209 cairo_surface_t *image;
210 double device_x_offset, device_y_offset;
211@@ -810,4 +818,5 @@
212
213 glDisable (GL_SCISSOR_TEST);
214 glDeleteTextures (1, &texture_id);
215+#endif
216 }
217diff --git a/gdk/gdkglcontext.c b/gdk/gdkglcontext.c
218index 3b23639e1c..1f04f8e0b2 100644
219--- a/gdk/gdkglcontext.c
220+++ b/gdk/gdkglcontext.c
221@@ -85,7 +85,9 @@
222 #include "gdkintl.h"
223 #include "gdk-private.h"
224
225+#ifdef HAVE_OPENGL
226 #include <epoxy/gl.h>
227+#endif
228
229 typedef struct {
230 GdkDisplay *display;
231@@ -243,6 +245,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context,
232 int height,
233 guint texture_target)
234 {
235+#ifdef HAVE_OPENGL
236 GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
237
238 g_return_if_fail (GDK_IS_GL_CONTEXT (context));
239@@ -286,6 +289,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context,
240 glTexSubImage2D (texture_target, 0, 0, i, width, 1, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, (unsigned char*) data + (i * stride));
241 }
242 }
243+#endif
244 }
245
246 static gboolean
247@@ -774,6 +778,7 @@ gdk_gl_context_realize (GdkGLContext *context,
248 static void
249 gdk_gl_context_check_extensions (GdkGLContext *context)
250 {
251+#ifdef HAVE_OPENGL
252 GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
253 gboolean has_npot, has_texture_rectangle;
254
255@@ -853,6 +858,7 @@ gdk_gl_context_check_extensions (GdkGLContext *context)
256 priv->use_texture_rectangle ? "yes" : "no"));
257
258 priv->extensions_checked = TRUE;
259+#endif
260 }
261
262 /**
263diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
264index 727b0cf1f4..d4d91b0d16 100644
265--- a/gdk/gdkwindow.c
266+++ b/gdk/gdkwindow.c
267@@ -45,7 +45,9 @@
268
269 #include <math.h>
270
271+#ifdef HAVE_OPENGL
272 #include <epoxy/gl.h>
273+#endif
274
275 /* for the use of round() */
276 #include "fallback-c89.c"
277@@ -2844,6 +2846,13 @@ gdk_window_get_paint_gl_context (GdkWindow *window,
278 {
279 GError *internal_error = NULL;
280
281+#ifndef HAVE_OPENGL
282+ g_set_error_literal (error, GDK_GL_ERROR,
283+ GDK_GL_ERROR_NOT_AVAILABLE,
284+ _("GL support disabled with --disable-opengl"));
285+ return NULL;
286+#endif
287+
288 if (_gdk_gl_flags & GDK_GL_DISABLE)
289 {
290 g_set_error_literal (error, GDK_GL_ERROR,
291@@ -2979,6 +2988,7 @@ gdk_window_begin_paint_internal (GdkWindow *window,
292 }
293 else
294 {
295+#ifdef HAVE_OPENGL
296 gdk_gl_context_make_current (context);
297 /* With gl we always need a surface to combine the gl
298 drawing with the native drawing. */
299@@ -2993,6 +3003,7 @@ gdk_window_begin_paint_internal (GdkWindow *window,
300 glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
301
302 glViewport (0, 0, ww, wh);
303+#endif
304 }
305 }
306
307@@ -3056,6 +3067,7 @@ gdk_window_end_paint_internal (GdkWindow *window)
308
309 gdk_gl_context_make_current (window->gl_paint_context);
310
311+#ifdef HAVE_OPENGL
312 if (!cairo_region_is_empty (opaque_region))
313 gdk_gl_texture_from_surface (window->current_paint.surface,
314 opaque_region);
315@@ -3066,6 +3078,7 @@ gdk_window_end_paint_internal (GdkWindow *window)
316 window->current_paint.need_blend_region);
317 glDisable(GL_BLEND);
318 }
319+#endif
320
321 cairo_region_destroy (opaque_region);
322
323diff --git a/gdk/meson.build b/gdk/meson.build
324index 4bb1bf2b6c..64172b8d3e 100644
325--- a/gdk/meson.build
326+++ b/gdk/meson.build
327@@ -56,7 +56,6 @@ gdk_gir_public_headers = files(
328 'gdkdrawingcontext.h',
329 'gdkevents.h',
330 'gdkframetimings.h',
331- 'gdkglcontext.h',
332 'gdkkeys.h',
333 'gdkkeysyms.h',
334 'gdkmain.h',
335@@ -78,6 +77,12 @@ gdk_gir_public_headers = files(
336 'gdkwindow.h',
337 )
338 gdk_nogir_public_headers = [files('gdkkeysyms-compat.h')]
339+if opengl_enabled
340+gdk_gir_public_headers += files('gdkglcontext.h')
341+else
342+gdk_nogir_public_headers += files('gdkglcontext.h')
343+endif
344+
345 gdk_public_headers = gdk_gir_public_headers + gdk_nogir_public_headers
346 install_headers(gdk_public_headers, subdir : 'gtk-3.0/gdk')
347
348@@ -166,6 +171,7 @@ gdkconfig_cdata.set('GDK_WINDOWING_WAYLAND', wayland_enabled)
349 gdkconfig_cdata.set('GDK_WINDOWING_WIN32', win32_enabled)
350 gdkconfig_cdata.set('GDK_WINDOWING_BROADWAY', broadway_enabled)
351 gdkconfig_cdata.set('GDK_WINDOWING_QUARTZ', quartz_enabled)
352+gdkconfig_cdata.set('GDK_WITH_OPENGL', opengl_enabled)
353
354 gdkconfig = configure_file(
355 input : 'gdkconfig.h.meson',
356diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
357index 7e08f472cc..30fd7b6089 100644
358--- a/gdk/x11/gdkdisplay-x11.c
359+++ b/gdk/x11/gdkdisplay-x11.c
360@@ -37,7 +37,9 @@
361 #include "gdkdisplay-x11.h"
362 #include "gdkprivate-x11.h"
363 #include "gdkscreen-x11.h"
364+#ifdef HAVE_OPENGL
365 #include "gdkglcontext-x11.h"
366+#endif
367 #include "gdk-private.h"
368 #include "gdkprofilerprivate.h"
369
370@@ -3191,7 +3193,9 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
371 display_class->text_property_to_utf8_list = _gdk_x11_display_text_property_to_utf8_list;
372 display_class->utf8_to_string_target = _gdk_x11_display_utf8_to_string_target;
373
374- display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current;
375+#ifdef HAVE_OPENGL
376+ display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current;
377+#endif
378
379 display_class->get_default_seat = gdk_x11_display_get_default_seat;
380
381diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c
382index 81479d81f4..3c8c5c02ff 100644
383--- a/gdk/x11/gdkvisual-x11.c
384+++ b/gdk/x11/gdkvisual-x11.c
385@@ -306,7 +306,12 @@ _gdk_x11_screen_init_visuals (GdkScreen *screen)
386 /* If GL is available we want to pick better default/rgba visuals,
387 as we care about glx details such as alpha/depth/stencil depth,
388 stereo and double buffering */
389+ /* update_visuals_for_gl() will end up calling epoxy GLX api which
390+ will exit if libgl is not there: so only do this if we know GL
391+ is available */
392+#ifdef HAVE_GLX
393 _gdk_x11_screen_update_visuals_for_gl (screen);
394+#endif
395 }
396
397 gint
398diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
399index 194bc82e29..0302bb68d4 100644
400--- a/gdk/x11/gdkwindow-x11.c
401+++ b/gdk/x11/gdkwindow-x11.c
402@@ -36,7 +36,9 @@
403 #include "gdkasync.h"
404 #include "gdkeventsource.h"
405 #include "gdkdisplay-x11.h"
406+#ifdef HAVE_OPENGL
407 #include "gdkglcontext-x11.h"
408+#endif
409 #include "gdkprivate-x11.h"
410 #include "gdk-private.h"
411
412@@ -5888,7 +5890,9 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass)
413 impl_class->set_opaque_region = gdk_x11_window_set_opaque_region;
414 impl_class->set_shadow_width = gdk_x11_window_set_shadow_width;
415 impl_class->show_window_menu = gdk_x11_window_show_window_menu;
416+#ifdef HAVE_OPENGL
417 impl_class->create_gl_context = gdk_x11_window_create_gl_context;
418 impl_class->invalidate_for_new_frame = gdk_x11_window_invalidate_for_new_frame;
419+#endif
420 impl_class->get_unscaled_size = gdk_x11_window_get_unscaled_size;
421 }
422diff --git a/gdk/x11/gdkx-autocleanups.h b/gdk/x11/gdkx-autocleanups.h
423index edb0ea7dbf..a317d61cca 100644
424--- a/gdk/x11/gdkx-autocleanups.h
425+++ b/gdk/x11/gdkx-autocleanups.h
426@@ -30,7 +30,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DeviceXI2, g_object_unref)
427 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Display, g_object_unref)
428 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DisplayManager, g_object_unref)
429 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DragContext, g_object_unref)
430+#ifdef HAVE_OPENGL
431 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11GLContext, g_object_unref)
432+#endif
433 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Keymap, g_object_unref)
434 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Screen, g_object_unref)
435 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Visual, g_object_unref)
436diff --git a/gdk/x11/gdkx.h b/gdk/x11/gdkx.h
437index 1f64bccb6d..4db6c18351 100644
438--- a/gdk/x11/gdkx.h
439+++ b/gdk/x11/gdkx.h
440@@ -43,7 +43,9 @@
441 #include <gdk/x11/gdkx11display.h>
442 #include <gdk/x11/gdkx11displaymanager.h>
443 #include <gdk/x11/gdkx11dnd.h>
444+#ifdef GDK_WITH_OPENGL
445 #include <gdk/x11/gdkx11glcontext.h>
446+#endif
447 #include <gdk/x11/gdkx11keys.h>
448 #include <gdk/x11/gdkx11monitor.h>
449 #include <gdk/x11/gdkx11property.h>
450diff --git a/gdk/x11/meson.build b/gdk/x11/meson.build
451index 754ae0a615..0318c83877 100644
452--- a/gdk/x11/meson.build
453+++ b/gdk/x11/meson.build
454@@ -14,7 +14,6 @@ gdk_x11_sources = files(
455 'gdkeventsource.c',
456 'gdkeventtranslator.c',
457 'gdkgeometry-x11.c',
458- 'gdkglcontext-x11.c',
459 'gdkkeys-x11.c',
460 'gdkmain-x11.c',
461 'gdkproperty-x11.c',
462@@ -42,7 +41,6 @@ gdk_x11_public_headers = files(
463 'gdkx11display.h',
464 'gdkx11displaymanager.h',
465 'gdkx11dnd.h',
466- 'gdkx11glcontext.h',
467 'gdkx11keys.h',
468 'gdkx11monitor.h',
469 'gdkx11property.h',
470@@ -53,6 +51,11 @@ gdk_x11_public_headers = files(
471 'gdkx11window.h',
472 )
473
474+if opengl_enabled
475+ gdk_x11_sources += files('gdkglcontext-x11.c')
476+ gdk_x11_public_headers += files('gdkx11glcontext.h')
477+endif
478+
479 install_headers(gdk_x11_public_headers, subdir: 'gtk-3.0/gdk/x11/')
480 install_headers('gdkx.h', subdir: 'gtk-3.0/gdk/')
481
482diff --git a/gtk/gtkglarea.c b/gtk/gtkglarea.c
483index 802303ea9f..6439d7745d 100644
484--- a/gtk/gtkglarea.c
485+++ b/gtk/gtkglarea.c
486@@ -29,7 +29,9 @@
487 #include "gtkprivate.h"
488 #include "gtkrender.h"
489
490+#ifdef HAVE_OPENGL
491 #include <epoxy/gl.h>
492+#endif
493
494 /**
495 * SECTION:gtkglarea
496@@ -369,9 +371,12 @@ gtk_gl_area_real_create_context (GtkGLArea *area)
497 static void
498 gtk_gl_area_resize (GtkGLArea *area, int width, int height)
499 {
500+#ifdef HAVE_OPENGL
501 glViewport (0, 0, width, height);
502+#endif
503 }
504
505+#ifdef HAVE_OPENGL
506 /*
507 * Creates all the buffer objects needed for rendering the scene
508 */
509@@ -483,6 +488,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area)
510
511 priv->needs_render = TRUE;
512 }
513+#endif
514
515 /**
516 * gtk_gl_area_attach_buffers:
517@@ -501,6 +507,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area)
518 void
519 gtk_gl_area_attach_buffers (GtkGLArea *area)
520 {
521+#ifdef HAVE_OPENGL
522 GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area);
523
524 g_return_if_fail (GTK_IS_GL_AREA (area));
525@@ -533,11 +540,13 @@ gtk_gl_area_attach_buffers (GtkGLArea *area)
526 glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT,
527 GL_RENDERBUFFER, priv->depth_stencil_buffer);
528 }
529+#endif
530 }
531
532 static void
533 gtk_gl_area_delete_buffers (GtkGLArea *area)
534 {
535+#ifdef HAVE_OPENGL
536 GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area);
537
538 if (priv->context == NULL)
539@@ -569,6 +578,7 @@ gtk_gl_area_delete_buffers (GtkGLArea *area)
540 glDeleteFramebuffers (1, &priv->frame_buffer);
541 priv->frame_buffer = 0;
542 }
543+#endif
544 }
545
546 static void
547@@ -679,6 +689,7 @@ gtk_gl_area_draw (GtkWidget *widget,
548 GtkGLArea *area = GTK_GL_AREA (widget);
549 GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area);
550 gboolean unused;
551+#ifdef HAVE_OPENGL
552 int w, h, scale;
553 GLenum status;
554
555@@ -736,6 +747,14 @@ gtk_gl_area_draw (GtkWidget *widget,
556 }
557
558 return TRUE;
559+#else
560+ if (priv->error != NULL)
561+ gtk_gl_area_draw_error_screen (area,
562+ cr,
563+ gtk_widget_get_allocated_width (widget),
564+ gtk_widget_get_allocated_height (widget));
565+ return FALSE;
566+#endif
567 }
568
569 static gboolean
570diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c
571index 4fd0c3039c..a8e59ed077 100644
572--- a/gtk/inspector/general.c
573+++ b/gtk/inspector/general.c
574@@ -33,8 +33,10 @@
575
576 #ifdef GDK_WINDOWING_X11
577 #include "x11/gdkx.h"
578+#ifdef HAVE_OPENGL
579 #include <epoxy/glx.h>
580 #endif
581+#endif
582
583 #ifdef GDK_WINDOWING_WIN32
584 #include "win32/gdkwin32.h"
585@@ -217,6 +219,7 @@ add_label_row (GtkInspectorGeneral *gen,
586 gtk_size_group_add_widget (GTK_SIZE_GROUP (gen->priv->labels), label);
587 }
588
589+#ifdef HAVE_OPENGL
590 #ifdef GDK_WINDOWING_X11
591 static void
592 append_glx_extension_row (GtkInspectorGeneral *gen,
593@@ -226,6 +229,7 @@ append_glx_extension_row (GtkInspectorGeneral *gen,
594 add_check_row (gen, GTK_LIST_BOX (gen->priv->gl_box), ext, epoxy_has_glx_extension (dpy, 0, ext), 0);
595 }
596 #endif
597+#endif
598
599 #ifdef GDK_WINDOWING_WAYLAND
600 static void
601@@ -275,6 +279,7 @@ wayland_get_display (struct wl_display *wl_display)
602 static void
603 init_gl (GtkInspectorGeneral *gen)
604 {
605+#ifdef HAVE_OPENGL
606 #ifdef GDK_WINDOWING_X11
607 if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
608 {
609@@ -301,6 +306,7 @@ init_gl (GtkInspectorGeneral *gen)
610 }
611 else
612 #endif
613+#endif
614 #ifdef GDK_WINDOWING_WAYLAND
615 if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ()))
616 {
617diff --git a/meson.build b/meson.build
618index aed48fc3f6..bfc33af0f6 100644
619--- a/meson.build
620+++ b/meson.build
621@@ -137,6 +137,7 @@ wayland_enabled = get_option('wayland_backend')
622 broadway_enabled = get_option('broadway_backend')
623 quartz_enabled = get_option('quartz_backend')
624 win32_enabled = get_option('win32_backend')
625+opengl_enabled = get_option('opengl')
626
627 os_unix = false
628 os_linux = false
629@@ -430,7 +431,7 @@ pangocairo_dep = dependency('pangocairo', version: cairo_req,
630 fallback : ['pango', 'libpangocairo_dep'])
631 pixbuf_dep = dependency('gdk-pixbuf-2.0', version: gdk_pixbuf_req,
632 fallback : ['gdk-pixbuf', 'gdkpixbuf_dep'])
633-epoxy_dep = dependency('epoxy', version: epoxy_req,
634+epoxy_dep = dependency('epoxy', version: epoxy_req, required: opengl_enabled,
635 fallback: ['libepoxy', 'libepoxy_dep'])
636 atk_dep = dependency('atk', version: atk_req,
637 fallback : ['atk', 'libatk_dep'])
638@@ -476,6 +477,10 @@ if tracker3_enabled
639 endif
640 endif
641
642+if opengl_enabled
643+ cdata.set('HAVE_OPENGL', 1)
644+endif
645+
646 if iso_codes_dep.found()
647 cdata.set_quoted('ISO_CODES_PREFIX', iso_codes_dep.get_variable(pkgconfig: 'prefix'))
648 else
649@@ -912,9 +917,15 @@ else
650 gio_packages = ['gio-2.0', glib_req]
651 endif
652
653+if opengl_enabled
654+ epoxy_packages = ['epoxy', epoxy_req]
655+else
656+ epoxy_packages = []
657+endif
658+
659 pkgconf.set('GDK_PRIVATE_PACKAGES',
660 ' '.join(gio_packages + x11_pkgs + wayland_pkgs + cairo_backends +
661- ['epoxy', epoxy_req] + cloudproviders_packages +
662+ epoxy_packages + cloudproviders_packages +
663 ['fribidi', fribidi_req]))
664
665 gtk_packages = ' '.join([
666@@ -928,7 +939,7 @@ pkgconf.set('GTK_PACKAGES', gtk_packages)
667 # Requires.private
668 pc_gdk_extra_libs += cairo_libs
669
670-gtk_private_packages = atk_pkgs + wayland_pkgs + ['epoxy', epoxy_req, 'fribidi', fribidi_req]
671+gtk_private_packages = atk_pkgs + wayland_pkgs + epoxy_packages + ['fribidi', fribidi_req]
672 if wayland_enabled or x11_enabled
673 gtk_private_packages += ['pangoft2']
674 endif
675diff --git a/meson_options.txt b/meson_options.txt
676index 94099aa01e..8bd096896d 100644
677--- a/meson_options.txt
678+++ b/meson_options.txt
679@@ -19,6 +19,8 @@ option('profiler', type: 'boolean', value: false,
680 description : 'Enable profiler support')
681 option('tracker3', type: 'boolean', value: false,
682 description : 'Enable Tracker3 filechooser search')
683+option('opengl', type: 'boolean', value: true,
684+ description : 'Enable use of GL')
685
686 # Print backends
687 option('print_backends', type : 'string', value : 'auto',
688diff --git a/tests/meson.build b/tests/meson.build
689index 586fe2f45e..6ecf317dde 100644
690--- a/tests/meson.build
691+++ b/tests/meson.build
692@@ -5,7 +5,6 @@ gtk_tests = [
693 ['scrolling-performance', ['frame-stats.c', 'variable.c']],
694 ['blur-performance', ['../gtk/gtkcairoblur.c']],
695 ['flicker'],
696- ['gdkgears', ['gtkgears.c']],
697 ['listmodel'],
698 ['motion-compression'],
699 ['styleexamples'],
700@@ -54,7 +53,6 @@ gtk_tests = [
701 ['testfullscreen'],
702 ['testgeometry'],
703 ['testgiconpixbuf'],
704- ['testglblending', ['gtkgears.c']],
705 ['testgmenu'],
706 ['testgrid'],
707 ['testgrouping'],
708@@ -137,6 +135,13 @@ if x11_enabled
709 ]
710 endif
711
712+if opengl_enabled
713+ gtk_tests += [
714+ ['gdkgears', ['gtkgears.c']],
715+ ['testglblending', ['gtkgears.c']],
716+ ]
717+endif
718+
719 if os_linux
720 gtk_tests += [['testfontchooserdialog']]
721 endif
722diff --git a/testsuite/gtk/objects-finalize.c b/testsuite/gtk/objects-finalize.c
723index 24540e313f..e0f863ab6a 100644
724--- a/testsuite/gtk/objects-finalize.c
725+++ b/testsuite/gtk/objects-finalize.c
726@@ -116,7 +116,9 @@ main (int argc, char **argv)
727 all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_CORE &&
728 all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_XI2 &&
729 all_types[i] != GDK_TYPE_X11_DISPLAY_MANAGER &&
730+#ifdef HAVE_OPENGL
731 all_types[i] != GDK_TYPE_X11_GL_CONTEXT &&
732+#endif
733 #endif
734 /* Not allowed to finalize a GdkPixbufLoader without calling gdk_pixbuf_loader_close() */
735 all_types[i] != GDK_TYPE_PIXBUF_LOADER &&
736--
7372.30.2
738
diff --git a/meta/recipes-gnome/gtk+/gtk+3_3.24.30.bb b/meta/recipes-gnome/gtk+/gtk+3_3.24.41.bb
index 7e7566f9af..17e90c59f0 100644
--- a/meta/recipes-gnome/gtk+/gtk+3_3.24.30.bb
+++ b/meta/recipes-gnome/gtk+/gtk+3_3.24.41.bb
@@ -3,12 +3,9 @@ require gtk+3.inc
3MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" 3MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
4 4
5SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ 5SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \
6 file://0001-Hardcoded-libtool.patch \ 6 file://opengl.patch \
7 file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \
8 file://0003-Add-disable-opengl-configure-option.patch \
9 file://link_fribidi.patch \
10 " 7 "
11SRC_URI[sha256sum] = "ba75bfff320ad1f4cfbee92ba813ec336322cc3c660d406aad014b07087a3ba9" 8SRC_URI[sha256sum] = "47da61487af3087a94bc49296fd025ca0bc02f96ef06c556e7c8988bd651b6fa"
12 9
13S = "${WORKDIR}/gtk+-${PV}" 10S = "${WORKDIR}/gtk+-${PV}"
14 11
@@ -16,3 +13,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
16 file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ 13 file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \
17 file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ 14 file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \
18 file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1" 15 file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1"
16
17CVE_PRODUCT = "gnome:gtk"
diff --git a/meta/recipes-gnome/gtk+/gtk4_4.14.2.bb b/meta/recipes-gnome/gtk+/gtk4_4.14.2.bb
new file mode 100644
index 0000000000..282e81f048
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk4_4.14.2.bb
@@ -0,0 +1,130 @@
1SUMMARY = "Multi-platform toolkit for creating GUIs"
2DESCRIPTION = "GTK is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \
3set of widgets, GTK is suitable for projects ranging from small one-off projects to complete application suites."
4HOMEPAGE = "http://www.gtk.org"
5BUGTRACKER = "https://bugzilla.gnome.org/"
6SECTION = "libs"
7
8DEPENDS = " \
9 atk \
10 cairo \
11 fribidi \
12 gdk-pixbuf \
13 gdk-pixbuf-native \
14 gi-docgen \
15 glib-2.0 \
16 graphene \
17 harfbuzz \
18 jpeg \
19 libepoxy \
20 libpng \
21 librsvg \
22 libxkbcommon \
23 pango \
24 tiff \
25"
26
27LICENSE = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later"
28LIC_FILES_CHKSUM = " \
29 file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
30 file://gtk/gtk.h;endline=25;md5=61900d77e8d5bc67cf15ad93de9a3490 \
31 file://gdk/gdk.h;endline=25;md5=a0fb26c1f6b94e66d148279e192c333f \
32 file://tests/testgtk.c;endline=25;md5=49d06770681b8322466b52ed19d29fb2 \
33"
34
35MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
36
37UPSTREAM_CHECK_REGEX = "gtk-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)\.tar.xz"
38
39SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk/${MAJ_VER}/gtk-${PV}.tar.xz"
40SRC_URI[sha256sum] = "22604cef2898a79e5f2143bb7aee2b7d1fa2eb946989a9d1338ecf9c8ae0e072"
41
42S = "${WORKDIR}/gtk-${PV}"
43
44CVE_PRODUCT = "gnome:gtk"
45
46inherit meson gettext pkgconfig gi-docgen update-alternatives gsettings features_check gobject-introspection
47
48# TBD: nativesdk
49# gobject-introspection.bbclass pins introspection off for nativesk. As long as
50# we do not remove this wisdom or hack gtk4, it is not possible to build
51# nativesdk-gtk4
52BBCLASSEXTEND = "native"
53
54GSETTINGS_PACKAGE:class-native = ""
55
56ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
57REQUIRED_DISTRO_FEATURES = "opengl"
58GTKDOC_MESON_OPTION = "documentation"
59GIR_MESON_ENABLE_FLAG = 'enabled'
60GIR_MESON_DISABLE_FLAG = 'disabled'
61
62EXTRA_OEMESON = " -Dbuild-tests=false -Dbuild-testsuite=false -Dbuild-demos=false"
63
64PACKAGECONFIG ??= "gstreamer ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11 vulkan', d)}"
65PACKAGECONFIG:class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
66PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
67
68PACKAGECONFIG[x11] = "-Dx11-backend=true,-Dx11-backend=false,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes xinerama"
69PACKAGECONFIG[wayland] = "-Dwayland-backend=true,-Dwayland-backend=false,wayland wayland-protocols virtual/egl virtual/libgles2 wayland-native"
70PACKAGECONFIG[cloudproviders] = "-Dcloudproviders=enabled,-Dcloudproviders=disabled,libcloudproviders"
71PACKAGECONFIG[cups] = "-Dprint-cups=enabled,-Dprint-cups=disabled,cups,cups gtk4-printbackend-cups"
72PACKAGECONFIG[colord] = "-Dcolord=enabled,-Dcolord=disabled,colord"
73PACKAGECONFIG[iso-codes] = ",,iso-codes,iso-codes"
74# gtk4 wants gstreamer-player-1.0 -> gstreamer1.0-plugins-bad
75PACKAGECONFIG[gstreamer] = "-Dmedia-gstreamer=enabled,-Dmedia-gstreamer=disabled,gstreamer1.0-plugins-bad"
76PACKAGECONFIG[tracker] = "-Dtracker=enabled,-Dtracker=disabled,tracker,tracker-miners"
77PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled, vulkan-loader vulkan-headers shaderc-native"
78
79LIBV = "4.0.0"
80
81FILES:${PN}:append = " \
82 ${datadir}/glib-2.0/schemas/ \
83 ${datadir}/gtk-4.0/emoji/ \
84 ${datadir}/metainfo/ \
85 ${datadir}/icons/hicolor/*/apps/org.gtk.PrintEditor4*.* \
86 ${libdir}/gtk-4.0/${LIBV}/media \
87 ${bindir}/gtk4-update-icon-cache \
88 ${bindir}/gtk4-launch \
89"
90
91FILES:${PN}-dev += " \
92 ${datadir}/gtk-4.0/gtk4builder.rng \
93 ${datadir}/gtk-4.0/include \
94 ${datadir}/gtk-4.0/valgrind \
95 ${datadir}/gettext/its \
96 ${bindir}/gtk4-builder-tool \
97 ${bindir}/gtk4-encode-symbolic-svg \
98 ${bindir}/gtk4-query-settings \
99"
100
101GTKBASE_RRECOMMENDS ?= " \
102 liberation-fonts \
103 gdk-pixbuf-loader-png \
104 gdk-pixbuf-loader-jpeg \
105 gdk-pixbuf-loader-gif \
106 gdk-pixbuf-loader-xpm \
107 shared-mime-info \
108 adwaita-icon-theme-symbolic \
109"
110
111GTKBASE_RRECOMMENDS:class-native ?= ""
112
113GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1"
114
115RRECOMMENDS:${PN} = "${GTKBASE_RRECOMMENDS}"
116RRECOMMENDS:${PN}:libc-glibc = "${GTKGLIBC_RRECOMMENDS}"
117RDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}"
118
119PACKAGES_DYNAMIC += "^gtk4-printbackend-.*"
120python populate_packages:prepend () {
121 import os.path
122
123 gtk_libdir = d.expand('${libdir}/gtk-4.0/${LIBV}')
124 printmodules_root = os.path.join(gtk_libdir, 'printbackends');
125
126 do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk4-printbackend-%s', 'GTK printbackend module for %s')
127
128 if (d.getVar('DEBIAN_NAMES')):
129 d.setVar(d.expand('PKG:${PN}'), '${MLPREFIX}libgtk-4.0')
130}
diff --git a/meta/recipes-gnome/gtk-doc/files/0001-Don-t-use-docdir-from-environment.patch b/meta/recipes-gnome/gtk-doc/files/0001-Don-t-use-docdir-from-environment.patch
new file mode 100644
index 0000000000..f40124877c
--- /dev/null
+++ b/meta/recipes-gnome/gtk-doc/files/0001-Don-t-use-docdir-from-environment.patch
@@ -0,0 +1,24 @@
1From 72dfeec0e49478b0bfb471c4155044391bad8e6c Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@arm.com>
3Date: Fri, 8 Dec 2023 10:35:25 +0000
4Subject: [PATCH] Don't use docdir from environment
5
6Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gtk-doc/-/merge_requests/73]
7Signed-off-by: Ross Burton <ross.burton@arm.com>
8---
9 buildsystems/autotools/gtkdocize.in | 2 +-
10 1 file changed, 1 insertion(+), 1 deletion(-)
11
12diff --git a/buildsystems/autotools/gtkdocize.in b/buildsystems/autotools/gtkdocize.in
13index 83127bf..76dcbfd 100755
14--- a/buildsystems/autotools/gtkdocize.in
15+++ b/buildsystems/autotools/gtkdocize.in
16@@ -39,7 +39,7 @@ set - $args
17
18 # assume working directory if srcdir is not set
19 test "$srcdir" || srcdir=.
20-test "$docdir" || docdir="$srcdir"
21+docdir="$srcdir"
22
23 # detect configure script
24 no_configure_found=0
diff --git a/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb b/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb
index 23cd25986e..4fd5a6e925 100644
--- a/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb
+++ b/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb
@@ -2,9 +2,10 @@ SUMMARY = "Documentation generator for glib-based software"
2DESCRIPTION = "Gtk-doc is a set of scripts that extract specially formatted comments \ 2DESCRIPTION = "Gtk-doc is a set of scripts that extract specially formatted comments \
3 from glib-based software and produce a set of html documentation files from them" 3 from glib-based software and produce a set of html documentation files from them"
4HOMEPAGE = "https://www.gtk.org/docs/" 4HOMEPAGE = "https://www.gtk.org/docs/"
5LICENSE = "GPLv2" 5LICENSE = "GPL-2.0-only"
6LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" 6LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
7 7
8GNOMEBASEBUILDCLASS = "autotools"
8inherit gnomebase 9inherit gnomebase
9 10
10# Configure the scripts correctly (and build their dependencies) only if they are actually 11# Configure the scripts correctly (and build their dependencies) only if they are actually
@@ -15,27 +16,30 @@ PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "api-documentation",
15# into its scripts. This means that target gtk-doc package is broken; 16# into its scripts. This means that target gtk-doc package is broken;
16# hopefully no one minds because its scripts are not used for anything during build 17# hopefully no one minds because its scripts are not used for anything during build
17# and shouldn't be used on targets. 18# and shouldn't be used on targets.
18PACKAGECONFIG[working-scripts] = ",,libxslt-native xmlto-native python3-six python3-pygments" 19PACKAGECONFIG[working-scripts] = ",,libxslt-native docbook-xml-dtd4-native docbook-xsl-stylesheets python3-pygments"
19PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,glib-2.0" 20PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,glib-2.0"
20 21
22CACHED_CONFIGUREVARS += "ac_cv_path_XSLTPROC=xsltproc"
23
21SRC_URI[archive.sha256sum] = "cc1b709a20eb030a278a1f9842a362e00402b7f834ae1df4c1998a723152bf43" 24SRC_URI[archive.sha256sum] = "cc1b709a20eb030a278a1f9842a362e00402b7f834ae1df4c1998a723152bf43"
22SRC_URI += "file://0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch \ 25SRC_URI += "file://0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch \
23 file://0001-Do-not-error-out-if-xsltproc-is-not-found.patch \ 26 file://0001-Do-not-error-out-if-xsltproc-is-not-found.patch \
24 file://conditionaltests.patch \ 27 file://conditionaltests.patch \
25 file://no-clobber.patch \ 28 file://no-clobber.patch \
29 file://0001-Don-t-use-docdir-from-environment.patch \
26 " 30 "
27SRC_URI_append_class-native = " file://pkg-config-native.patch" 31SRC_URI:append:class-native = " file://pkg-config-native.patch"
28 32
29BBCLASSEXTEND = "native nativesdk" 33BBCLASSEXTEND = "native nativesdk"
30 34
31# Do not check for XML catalogs when building because that 35# Do not check for XML catalogs when building because that
32# information is not used for anything during build. Recipe 36# information is not used for anything during build. Recipe
33# dependencies make sure we have all the right bits. 37# dependencies make sure we have all the right bits.
34do_configure_prepend() { 38do_configure:prepend() {
35 sed -i -e 's,^JH_CHECK_XML_CATALOG.*,,' ${S}/configure.ac 39 sed -i -e 's,^JH_CHECK_XML_CATALOG.*,,' ${S}/configure.ac
36} 40}
37 41
38do_install_append () { 42do_install:append () {
39 # configure values for python3 and pkg-config encoded in scripts 43 # configure values for python3 and pkg-config encoded in scripts
40 for fn in ${bindir}/gtkdoc-depscan \ 44 for fn in ${bindir}/gtkdoc-depscan \
41 ${bindir}/gtkdoc-mkhtml2 \ 45 ${bindir}/gtkdoc-mkhtml2 \
@@ -43,14 +47,15 @@ do_install_append () {
43 ${datadir}/gtk-doc/python/gtkdoc/config.py; do 47 ${datadir}/gtk-doc/python/gtkdoc/config.py; do
44 sed -e 's,${RECIPE_SYSROOT_NATIVE}/usr/bin/pkg-config,${bindir}/pkg-config,' \ 48 sed -e 's,${RECIPE_SYSROOT_NATIVE}/usr/bin/pkg-config,${bindir}/pkg-config,' \
45 -e 's,${HOSTTOOLS_DIR}/python3,${bindir}/python3,' \ 49 -e 's,${HOSTTOOLS_DIR}/python3,${bindir}/python3,' \
50 -e '1s|^#!.*|#!/usr/bin/env python3|' \
46 -i ${D}$fn 51 -i ${D}$fn
47 done 52 done
48} 53}
49 54
50FILES_${PN} += "${datadir}/sgml" 55FILES:${PN} += "${datadir}/sgml"
51FILES_${PN}-doc = "" 56FILES:${PN}-doc = ""
52 57
53SYSROOT_PREPROCESS_FUNCS_append_class-native = " gtkdoc_makefiles_sysroot_preprocess" 58SYSROOT_PREPROCESS_FUNCS:append:class-native = " gtkdoc_makefiles_sysroot_preprocess"
54gtkdoc_makefiles_sysroot_preprocess() { 59gtkdoc_makefiles_sysroot_preprocess() {
55 # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries 60 # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries
56 # instead of libtool wrapper or running them directly 61 # instead of libtool wrapper or running them directly
diff --git a/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb b/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb
index 74e3430528..bb6cb000ab 100644
--- a/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb
+++ b/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb
@@ -4,7 +4,7 @@ theme for implementations of the icon theme specification."
4HOMEPAGE = "https://www.freedesktop.org/wiki/Software/icon-theme" 4HOMEPAGE = "https://www.freedesktop.org/wiki/Software/icon-theme"
5BUGTRACKER = "https://bugs.freedesktop.org/" 5BUGTRACKER = "https://bugs.freedesktop.org/"
6 6
7LICENSE = "GPLv2" 7LICENSE = "GPL-2.0-only"
8LIC_FILES_CHKSUM = "file://COPYING;md5=f08a446809913fc9b3c718f0eaea0426" 8LIC_FILES_CHKSUM = "file://COPYING;md5=f08a446809913fc9b3c718f0eaea0426"
9 9
10SRC_URI = "https://icon-theme.freedesktop.org/releases/${BPN}-${PV}.tar.xz" 10SRC_URI = "https://icon-theme.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
@@ -13,6 +13,6 @@ SRC_URI[sha256sum] = "317484352271d18cbbcfac3868eab798d67fff1b8402e740baa6ff41d5
13 13
14inherit allarch autotools 14inherit allarch autotools
15 15
16FILES_${PN} += "${datadir}/icons" 16FILES:${PN} += "${datadir}/icons"
17 17
18BBCLASSEXTEND = "native nativesdk" 18BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-gnome/json-glib/json-glib_1.6.2.bb b/meta/recipes-gnome/json-glib/json-glib_1.8.0.bb
index fdf3b245e8..2094ebe3e7 100644
--- a/meta/recipes-gnome/json-glib/json-glib_1.6.2.bb
+++ b/meta/recipes-gnome/json-glib/json-glib_1.8.0.bb
@@ -6,21 +6,19 @@ instances to and from JSON data types."
6HOMEPAGE = "https://wiki.gnome.org/Projects/JsonGlib" 6HOMEPAGE = "https://wiki.gnome.org/Projects/JsonGlib"
7BUGTRACKER = "https://gitlab.gnome.org/GNOME/json-glib/issues" 7BUGTRACKER = "https://gitlab.gnome.org/GNOME/json-glib/issues"
8 8
9LICENSE = "LGPLv2.1" 9LICENSE = "LGPL-2.1-only"
10LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" 10LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
11 11
12DEPENDS = "glib-2.0" 12DEPENDS = "glib-2.0 glib-2.0-native"
13 13
14GNOMEBASEBUILDCLASS = "meson" 14inherit gnomebase lib_package gobject-introspection gi-docgen gettext ptest-gnome manpages upstream-version-is-even
15inherit gnomebase lib_package gobject-introspection gtk-doc gettext ptest-gnome manpages upstream-version-is-even
16GIR_MESON_ENABLE_FLAG = 'enabled' 15GIR_MESON_ENABLE_FLAG = 'enabled'
17GIR_MESON_DISABLE_FLAG = 'disabled' 16GIR_MESON_DISABLE_FLAG = 'disabled'
18GTKDOC_MESON_OPTION = "gtk_doc" 17GIDOCGEN_MESON_ENABLE_FLAG = 'enabled'
19GTKDOC_MESON_ENABLE_FLAG = 'enabled' 18GIDOCGEN_MESON_DISABLE_FLAG = 'disabled'
20GTKDOC_MESON_DISABLE_FLAG = 'disabled'
21 19
22SRC_URI += " file://run-ptest" 20SRC_URI += " file://run-ptest"
23SRC_URI[archive.sha256sum] = "a33d66c6d038bda46b910c6c6d59c4e15db014e363dc997a0414c2e07d134f24" 21SRC_URI[archive.sha256sum] = "97ef5eb92ca811039ad50a65f06633f1aae64792789307be7170795d8b319454"
24 22
25PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" 23PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
26PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native" 24PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native"
@@ -30,4 +28,4 @@ BBCLASSEXTEND = "native nativesdk"
30 28
31# Currently it's not possible to disable gettext in Meson, so we need to force 29# Currently it's not possible to disable gettext in Meson, so we need to force
32# this back on. 30# this back on.
33USE_NLS_class-native = "yes" 31USE_NLS:class-native = "yes"
diff --git a/meta/recipes-gnome/libadwaita/libadwaita_1.5.0.bb b/meta/recipes-gnome/libadwaita/libadwaita_1.5.0.bb
new file mode 100644
index 0000000000..b0b1e4502a
--- /dev/null
+++ b/meta/recipes-gnome/libadwaita/libadwaita_1.5.0.bb
@@ -0,0 +1,27 @@
1SUMMARY = "Building blocks for modern GNOME applications"
2HOMEPAGE = "https://gitlab.gnome.org/GNOME/libadwaita"
3LICENSE="LGPL-2.1-or-later"
4LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
5
6
7DEPENDS = " \
8 gtk4 \
9 appstream \
10"
11
12inherit gnomebase gobject-introspection gi-docgen vala features_check
13
14SRC_URI[archive.sha256sum] = "fd92287df9bb95c963654fb6e70d3e082e2bcb37b147e0e3c905567167993783"
15
16ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
17REQUIRED_DISTRO_FEATURES = "opengl"
18
19GIR_MESON_ENABLE_FLAG = 'enabled'
20GIR_MESON_DISABLE_FLAG = 'disabled'
21GTKDOC_MESON_OPTION = 'gtk_doc'
22
23PACKAGECONFIG[examples] = "-Dexamples=true,-Dexamples=false"
24
25FILES:${PN} += "${datadir}/metainfo"
26
27EXTRA_OEMESON += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)}"
diff --git a/meta/recipes-gnome/libdazzle/libdazzle_3.40.0.bb b/meta/recipes-gnome/libdazzle/libdazzle_3.44.0.bb
index ff9088a62f..9bca7e9dce 100644
--- a/meta/recipes-gnome/libdazzle/libdazzle_3.40.0.bb
+++ b/meta/recipes-gnome/libdazzle/libdazzle_3.44.0.bb
@@ -2,17 +2,16 @@ SUMMARY = "The libdazzle library is a companion library to GObject and Gtk+."
2DESCRIPTION = "A wide range of components from utilities for GIO, widgets for \ 2DESCRIPTION = "A wide range of components from utilities for GIO, widgets for \
3GTK+, an animation framework, state machines, paneling and high-performance \ 3GTK+, an animation framework, state machines, paneling and high-performance \
4counters are included." 4counters are included."
5LICENSE = "GPLv3+" 5LICENSE = "GPL-3.0-or-later"
6HOMEPAGE = "https://gitlab.gnome.org/GNOME/libdazzle" 6HOMEPAGE = "https://gitlab.gnome.org/GNOME/libdazzle"
7BUGTRACKER = "https://gitlab.gnome.org/GNOME/libdazzle/issues" 7BUGTRACKER = "https://gitlab.gnome.org/GNOME/libdazzle/issues"
8LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a" 8LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a"
9 9
10GNOMEBASEBUILDCLASS = "meson"
11inherit gnomebase upstream-version-is-even vala features_check gobject-introspection 10inherit gnomebase upstream-version-is-even vala features_check gobject-introspection
12 11
13DEPENDS = "glib-2.0-native glib-2.0 gtk+3" 12DEPENDS = "glib-2.0-native glib-2.0 gtk+3"
14 13
15SRC_URI[archive.sha256sum] = "dba99a7e65fa6662c012b306e5d0f99ff3b466a46059ea7aa0104aaf65ce4ba5" 14SRC_URI[archive.sha256sum] = "3cd3e45eb6e2680cb05d52e1e80dd8f9d59d4765212f0e28f78e6c1783d18eae"
16 15
17GIR_MESON_OPTION = 'with_introspection' 16GIR_MESON_OPTION = 'with_introspection'
18 17
diff --git a/meta/recipes-gnome/libgudev/files/0001-gudevenumtypes-make-deterministic.patch b/meta/recipes-gnome/libgudev/files/0001-gudevenumtypes-make-deterministic.patch
deleted file mode 100644
index aaec9cd20d..0000000000
--- a/meta/recipes-gnome/libgudev/files/0001-gudevenumtypes-make-deterministic.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1From 078c0db2bc3adf7c665190ee7a9263d7fd1ec618 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Thu, 29 Apr 2021 13:06:12 +0200
4Subject: [PATCH] gudevenumtypes: make deterministic
5
6@filename@ writes the full path to the generated file,
7which can vary in CI systems and make outputs non-reproducible.
8
9Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libgudev/-/merge_requests/15]
10Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11---
12 gudev/gudevenumtypes.c.template | 2 +-
13 gudev/gudevenumtypes.h.template | 2 +-
14 2 files changed, 2 insertions(+), 2 deletions(-)
15
16diff --git a/gudev/gudevenumtypes.c.template b/gudev/gudevenumtypes.c.template
17index fc30b39..4918f7e 100644
18--- a/gudev/gudevenumtypes.c.template
19+++ b/gudev/gudevenumtypes.c.template
20@@ -4,7 +4,7 @@
21 /*** END file-header ***/
22
23 /*** BEGIN file-production ***/
24-/* enumerations from "@filename@" */
25+/* enumerations from "@basename@" */
26 /*** END file-production ***/
27
28 /*** BEGIN value-header ***/
29diff --git a/gudev/gudevenumtypes.h.template b/gudev/gudevenumtypes.h.template
30index d0ab339..79bf7c4 100644
31--- a/gudev/gudevenumtypes.h.template
32+++ b/gudev/gudevenumtypes.h.template
33@@ -9,7 +9,7 @@ G_BEGIN_DECLS
34
35 /*** BEGIN file-production ***/
36
37-/* enumerations from "@filename@" */
38+/* enumerations from "@basename@" */
39 /*** END file-production ***/
40
41 /*** BEGIN value-header ***/
42--
432.30.2
44
diff --git a/meta/recipes-gnome/libgudev/libgudev/0001-meson-Pass-export-dynamic-option-to-linker.patch b/meta/recipes-gnome/libgudev/libgudev/0001-meson-Pass-export-dynamic-option-to-linker.patch
new file mode 100644
index 0000000000..8a06d244e4
--- /dev/null
+++ b/meta/recipes-gnome/libgudev/libgudev/0001-meson-Pass-export-dynamic-option-to-linker.patch
@@ -0,0 +1,38 @@
1From dc4fcfb1e1e2326a412b252314af3e9424a31457 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 16 Jan 2024 12:02:46 -0800
4Subject: [PATCH] meson: Pass --export-dynamic option to linker
5
6Bypass the compiler driver trying to comprehend and translate it for
7linker, since its not clear what the right behavior should be, gcc seems
8to translate it into --export-dynamic but clang 18+ rejects it
9
10| x86_64-yoe-linux-clang: error: unknown argument: '-export-dynamic'
11
12also see [1]
13
14This makes it work as intended across gcc and clang
15
16Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libgudev/-/merge_requests/30]
17[1] https://discourse.llvm.org/t/clang-option-export-dynamic-parse-to-e-xport-dynamic-error/72454
18Signed-off-by: Khem Raj <raj.khem@gmail.com>
19---
20 gudev/meson.build | 2 +-
21 1 file changed, 1 insertion(+), 1 deletion(-)
22
23diff --git a/gudev/meson.build b/gudev/meson.build
24index e904203..3ed580b 100644
25--- a/gudev/meson.build
26+++ b/gudev/meson.build
27@@ -33,7 +33,7 @@ libgudev_c_args = [
28 ]
29
30 libgudev_link_args = [
31- '-export-dynamic',
32+ '-Wl,--export-dynamic',
33 '-Wl,--version-script,@0@/libgudev-1.0.sym'.format(top_srcdir),
34 ]
35
36--
372.43.0
38
diff --git a/meta/recipes-gnome/libgudev/libgudev_236.bb b/meta/recipes-gnome/libgudev/libgudev_238.bb
index 5d1d2d782b..f197f6421d 100644
--- a/meta/recipes-gnome/libgudev/libgudev_236.bb
+++ b/meta/recipes-gnome/libgudev/libgudev_238.bb
@@ -5,20 +5,19 @@ other programming languages, such as Javascript, because of GObject \
5introspection support." 5introspection support."
6HOMEPAGE = "https://wiki.gnome.org/Projects/libgudev" 6HOMEPAGE = "https://wiki.gnome.org/Projects/libgudev"
7BUGTRACKER = "https://gitlab.gnome.org/GNOME/libgudev/issues" 7BUGTRACKER = "https://gitlab.gnome.org/GNOME/libgudev/issues"
8SRC_URI[archive.sha256sum] = "e50369d06d594bae615eb7aeb787de304ebaad07a26d1043cef8e9c7ab7c9524" 8SRC_URI[archive.sha256sum] = "61266ab1afc9d73dbc60a8b2af73e99d2fdff47d99544d085760e4fa667b5dd1"
9 9
10SRC_URI_append = " file://0001-gudevenumtypes-make-deterministic.patch" 10DEPENDS = "glib-2.0 glib-2.0-native udev"
11 11
12DEPENDS = "glib-2.0 udev" 12RCONFLICTS:${PN} = "systemd (<= 220)"
13 13
14RCONFLICTS_${PN} = "systemd (<= 220)" 14LICENSE = "LGPL-2.1-only"
15
16LICENSE = "LGPLv2.1"
17LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" 15LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
18 16
19GNOMEBASEBUILDCLASS = "meson"
20inherit gnomebase gobject-introspection gtk-doc 17inherit gnomebase gobject-introspection gtk-doc
21 18
19SRC_URI += "file://0001-meson-Pass-export-dynamic-option-to-linker.patch"
20
22GIR_MESON_ENABLE_FLAG = 'enabled' 21GIR_MESON_ENABLE_FLAG = 'enabled'
23GIR_MESON_DISABLE_FLAG = 'disabled' 22GIR_MESON_DISABLE_FLAG = 'disabled'
24 23
@@ -27,6 +26,8 @@ GTKDOC_MESON_OPTION = "gtk_doc"
27UPSTREAM_CHECK_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgudev/" 26UPSTREAM_CHECK_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgudev/"
28UPSTREAM_CHECK_REGEX = "(?P<pver>(\d+))" 27UPSTREAM_CHECK_REGEX = "(?P<pver>(\d+))"
29 28
29EXTRA_OEMESON += "-Dtests=disabled -Dvapi=disabled"
30
30# This isn't a GNOME-style version do gnome_verdir fails. Just return the 31# This isn't a GNOME-style version do gnome_verdir fails. Just return the
31# version as that is how the directory is structured. 32# version as that is how the directory is structured.
32def gnome_verdir(v): 33def gnome_verdir(v):
diff --git a/meta/recipes-gnome/libhandy/libhandy_1.2.3.bb b/meta/recipes-gnome/libhandy/libhandy_1.8.3.bb
index acb6e53b72..7f5f02a7ba 100644
--- a/meta/recipes-gnome/libhandy/libhandy_1.2.3.bb
+++ b/meta/recipes-gnome/libhandy/libhandy_1.8.3.bb
@@ -6,22 +6,22 @@ to extend Gtk by providing mobile-friendly widgets and make the creation of \
6responsive apps easier." 6responsive apps easier."
7HOMEPAGE = "https://gitlab.gnome.org/GNOME/libhandy" 7HOMEPAGE = "https://gitlab.gnome.org/GNOME/libhandy"
8BUGTRACKER = "https://gitlab.gnome.org/GNOME/libhandy/-/issues" 8BUGTRACKER = "https://gitlab.gnome.org/GNOME/libhandy/-/issues"
9LICENSE = "LGPLv2.1" 9LICENSE = "LGPL-2.1-only"
10LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" 10LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
11 11
12SRC_URI = "git://gitlab.gnome.org/GNOME/libhandy.git;protocol=https;branch=libhandy-1-2" 12SRC_URI = "git://gitlab.gnome.org/GNOME/libhandy.git;protocol=https;branch=libhandy-1-8"
13SRCREV = "e9ca4ac4b134bbd6ab91b6f916a915192fd3a465" 13SRCREV = "9b0071408ce86a3ef843806fddd723a85f6f2416"
14S = "${WORKDIR}/git" 14S = "${WORKDIR}/git"
15 15
16UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+))"
16GIR_MESON_ENABLE_FLAG = 'enabled' 17GIR_MESON_ENABLE_FLAG = 'enabled'
17GIR_MESON_DISABLE_FLAG = 'disabled' 18GIR_MESON_DISABLE_FLAG = 'disabled'
18GTKDOC_MESON_OPTION = 'gtk_doc'
19 19
20inherit meson gobject-introspection vala gettext gtk-doc features_check 20inherit meson gobject-introspection vala gettext gi-docgen features_check pkgconfig
21 21
22ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 22ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
23 23
24DEPENDS += "gtk+3" 24DEPENDS += "gtk+3"
25 25
26PACKAGES =+ "${PN}-examples" 26PACKAGES =+ "${PN}-examples"
27FILES_${PN}-examples = "${bindir}" 27FILES:${PN}-examples = "${bindir}"
diff --git a/meta/recipes-gnome/libnotify/libnotify_0.7.9.bb b/meta/recipes-gnome/libnotify/libnotify_0.8.3.bb
index d2be715ce5..1e606b84b2 100644
--- a/meta/recipes-gnome/libnotify/libnotify_0.7.9.bb
+++ b/meta/recipes-gnome/libnotify/libnotify_0.8.3.bb
@@ -6,33 +6,30 @@ in the user's way."
6HOMEPAGE = "https://gitlab.gnome.org/GNOME/libnotify" 6HOMEPAGE = "https://gitlab.gnome.org/GNOME/libnotify"
7BUGTRACKER = "https://gitlab.gnome.org/GNOME/libnotify/issues" 7BUGTRACKER = "https://gitlab.gnome.org/GNOME/libnotify/issues"
8SECTION = "libs" 8SECTION = "libs"
9LICENSE = "LGPLv2.1" 9LICENSE = "LGPL-2.1-only"
10LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" 10LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
11 11
12DEPENDS = "dbus glib-2.0 gdk-pixbuf" 12DEPENDS = "glib-2.0 glib-2.0-native gdk-pixbuf"
13 13
14PACKAGECONFIG ?= "" 14PACKAGECONFIG ?= ""
15PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,gtk+3" 15PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,gtk+3"
16 16
17GNOMEBASEBUILDCLASS = "meson"
18GTKDOC_MESON_OPTION = "gtk_doc"
19GIR_MESON_ENABLE_FLAG = "enabled" 17GIR_MESON_ENABLE_FLAG = "enabled"
20GIR_MESON_DISABLE_FLAG = "disabled" 18GIR_MESON_DISABLE_FLAG = "disabled"
21inherit gnomebase gtk-doc features_check gobject-introspection 19inherit gnomebase gi-docgen features_check gobject-introspection
22# depends on gtk+3 if tests are enabled 20# depends on gtk+3 if tests are enabled
23ANY_OF_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'tests', '${GTK3DISTROFEATURES}', '', d)}" 21ANY_OF_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'tests', '${GTK3DISTROFEATURES}', '', d)}"
24 22
25SRC_URI[archive.md5sum] = "ccd9c53364174cc8d13e18a1988faa76" 23SRC_URI[archive.sha256sum] = "ee8f3ef946156ad3406fdf45feedbdcd932dbd211ab4f16f75eba4f36fb2f6c0"
26SRC_URI[archive.sha256sum] = "66c0517ed16df7af258e83208faaf5069727dfd66995c4bbc51c16954d674761"
27 24
28EXTRA_OEMESON = "-Dman=false" 25EXTRA_OEMESON = "-Dman=false"
29 26
30# there were times, we had two versions of libnotify (oe-core libnotify:0.6.x / 27# there were times, we had two versions of libnotify (oe-core libnotify:0.6.x /
31# meta-gnome libnotify3: 0.7.x) 28# meta-gnome libnotify3: 0.7.x)
32PROVIDES += "libnotify3" 29PROVIDES += "libnotify3"
33RPROVIDES_${PN} += "libnotify3" 30RPROVIDES:${PN} += "libnotify3"
34RCONFLICTS_${PN} += "libnotify3" 31RCONFLICTS:${PN} += "libnotify3"
35RREPLACES_${PN} += "libnotify3" 32RREPLACES:${PN} += "libnotify3"
36 33
37# -7381 is specific to the NodeJS bindings 34# -7381 is specific to the NodeJS bindings
38CVE_CHECK_WHITELIST += "CVE-2013-7381" 35CVE_STATUS[CVE-2013-7381] = "cpe-incorrect: The issue is specific to the NodeJS bindings"
diff --git a/meta/recipes-gnome/libportal/libportal_0.4.bb b/meta/recipes-gnome/libportal/libportal_0.4.bb
deleted file mode 100644
index 03e681f58c..0000000000
--- a/meta/recipes-gnome/libportal/libportal_0.4.bb
+++ /dev/null
@@ -1,17 +0,0 @@
1SUMMARY = "libportal provides GIO-style async APIs for most Flatpak portals."
2DESCRIPTION = "It provides simple asynchronous wrappers for most Flatpak portals \
3with a familiar GObject API along side the D-Bus API"
4HOMEPAGE = "https://github.com/flatpak/libportal"
5BUGTRACKER = "https://github.com/flatpak/libportal/issues"
6LICENSE = "LGPLv2.1"
7LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
8
9SRC_URI = "git://github.com/flatpak/${BPN}.git;protocol=https"
10SRCREV = "f68764e288ede516d902b131cc4fadded3804059"
11S = "${WORKDIR}/git"
12
13GTKDOC_MESON_OPTION = 'gtk_doc'
14
15inherit meson gtk-doc
16
17DEPENDS += "glib-2.0 glib-2.0-native"
diff --git a/meta/recipes-gnome/libportal/libportal_0.7.1.bb b/meta/recipes-gnome/libportal/libportal_0.7.1.bb
new file mode 100644
index 0000000000..22e45559c9
--- /dev/null
+++ b/meta/recipes-gnome/libportal/libportal_0.7.1.bb
@@ -0,0 +1,20 @@
1SUMMARY = "libportal provides GIO-style async APIs for most Flatpak portals."
2DESCRIPTION = "It provides simple asynchronous wrappers for most Flatpak portals \
3with a familiar GObject API along side the D-Bus API"
4HOMEPAGE = "https://github.com/flatpak/libportal"
5BUGTRACKER = "https://github.com/flatpak/libportal/issues"
6LICENSE = "LGPL-3.0-only"
7LIC_FILES_CHKSUM = "file://COPYING;md5=3000208d539ec061b899bce1d9ce9404"
8
9SRC_URI = "git://github.com/flatpak/${BPN}.git;protocol=https;branch=main"
10SRCREV = "e9ed3a50cdde321eaf42361212480a66eb94a57a"
11S = "${WORKDIR}/git"
12
13inherit meson gi-docgen gobject-introspection vala features_check pkgconfig
14GIDOCGEN_MESON_OPTION = 'docs'
15
16ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
17
18DEPENDS += "glib-2.0 glib-2.0-native gtk+3 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gtk4', '', d)}"
19
20EXTRA_OEMESON = "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)} -Dbackend-qt5=disabled"
diff --git a/meta/recipes-gnome/librsvg/librsvg-crates.inc b/meta/recipes-gnome/librsvg/librsvg-crates.inc
new file mode 100644
index 0000000000..94eba30948
--- /dev/null
+++ b/meta/recipes-gnome/librsvg/librsvg-crates.inc
@@ -0,0 +1,546 @@
1# Autogenerated with 'bitbake -c update_crates librsvg'
2
3# from Cargo.lock
4SRC_URI += " \
5 crate://crates.io/adler/1.0.2 \
6 crate://crates.io/aho-corasick/1.1.2 \
7 crate://crates.io/android-tzdata/0.1.1 \
8 crate://crates.io/android_system_properties/0.1.5 \
9 crate://crates.io/anes/0.1.6 \
10 crate://crates.io/anstream/0.6.5 \
11 crate://crates.io/anstyle/1.0.4 \
12 crate://crates.io/anstyle-parse/0.2.3 \
13 crate://crates.io/anstyle-query/1.0.2 \
14 crate://crates.io/anstyle-wincon/3.0.2 \
15 crate://crates.io/anyhow/1.0.75 \
16 crate://crates.io/approx/0.5.1 \
17 crate://crates.io/assert_cmd/2.0.12 \
18 crate://crates.io/autocfg/1.1.0 \
19 crate://crates.io/bit-set/0.5.3 \
20 crate://crates.io/bit-vec/0.6.3 \
21 crate://crates.io/bitflags/1.3.2 \
22 crate://crates.io/bitflags/2.4.1 \
23 crate://crates.io/block/0.1.6 \
24 crate://crates.io/bstr/1.8.0 \
25 crate://crates.io/bumpalo/3.14.0 \
26 crate://crates.io/bytemuck/1.14.0 \
27 crate://crates.io/byteorder/1.5.0 \
28 crate://crates.io/cairo-rs/0.18.3 \
29 crate://crates.io/cairo-sys-rs/0.18.2 \
30 crate://crates.io/cast/0.3.0 \
31 crate://crates.io/cc/1.0.83 \
32 crate://crates.io/cfg-expr/0.15.5 \
33 crate://crates.io/cfg-if/1.0.0 \
34 crate://crates.io/chrono/0.4.31 \
35 crate://crates.io/ciborium/0.2.1 \
36 crate://crates.io/ciborium-io/0.2.1 \
37 crate://crates.io/ciborium-ll/0.2.1 \
38 crate://crates.io/clap/4.4.11 \
39 crate://crates.io/clap_builder/4.4.11 \
40 crate://crates.io/clap_complete/4.4.4 \
41 crate://crates.io/clap_derive/4.4.7 \
42 crate://crates.io/clap_lex/0.6.0 \
43 crate://crates.io/colorchoice/1.0.0 \
44 crate://crates.io/const-cstr/0.3.0 \
45 crate://crates.io/core-foundation-sys/0.8.6 \
46 crate://crates.io/crc32fast/1.3.2 \
47 crate://crates.io/criterion/0.5.1 \
48 crate://crates.io/criterion-plot/0.5.0 \
49 crate://crates.io/crossbeam-deque/0.8.4 \
50 crate://crates.io/crossbeam-epoch/0.9.16 \
51 crate://crates.io/crossbeam-utils/0.8.17 \
52 crate://crates.io/cssparser/0.31.2 \
53 crate://crates.io/cssparser-macros/0.6.1 \
54 crate://crates.io/cstr/0.2.11 \
55 crate://crates.io/data-url/0.3.1 \
56 crate://crates.io/deranged/0.3.10 \
57 crate://crates.io/derive_more/0.99.17 \
58 crate://crates.io/difflib/0.4.0 \
59 crate://crates.io/dlib/0.5.2 \
60 crate://crates.io/doc-comment/0.3.3 \
61 crate://crates.io/dtoa/1.0.9 \
62 crate://crates.io/dtoa-short/0.3.4 \
63 crate://crates.io/either/1.9.0 \
64 crate://crates.io/encoding_rs/0.8.33 \
65 crate://crates.io/equivalent/1.0.1 \
66 crate://crates.io/errno/0.3.8 \
67 crate://crates.io/fastrand/2.0.1 \
68 crate://crates.io/fdeflate/0.3.1 \
69 crate://crates.io/flate2/1.0.28 \
70 crate://crates.io/float-cmp/0.9.0 \
71 crate://crates.io/fnv/1.0.7 \
72 crate://crates.io/form_urlencoded/1.2.1 \
73 crate://crates.io/futf/0.1.5 \
74 crate://crates.io/futures-channel/0.3.29 \
75 crate://crates.io/futures-core/0.3.29 \
76 crate://crates.io/futures-executor/0.3.29 \
77 crate://crates.io/futures-io/0.3.29 \
78 crate://crates.io/futures-macro/0.3.29 \
79 crate://crates.io/futures-task/0.3.29 \
80 crate://crates.io/futures-util/0.3.29 \
81 crate://crates.io/fxhash/0.2.1 \
82 crate://crates.io/gdk-pixbuf/0.18.3 \
83 crate://crates.io/gdk-pixbuf-sys/0.18.0 \
84 crate://crates.io/getrandom/0.2.11 \
85 crate://crates.io/gio/0.18.4 \
86 crate://crates.io/gio-sys/0.18.1 \
87 crate://crates.io/glib/0.18.4 \
88 crate://crates.io/glib-macros/0.18.3 \
89 crate://crates.io/glib-sys/0.18.1 \
90 crate://crates.io/gobject-sys/0.18.0 \
91 crate://crates.io/half/1.8.2 \
92 crate://crates.io/hashbrown/0.14.3 \
93 crate://crates.io/heck/0.4.1 \
94 crate://crates.io/hermit-abi/0.3.3 \
95 crate://crates.io/iana-time-zone/0.1.58 \
96 crate://crates.io/iana-time-zone-haiku/0.1.2 \
97 crate://crates.io/idna/0.5.0 \
98 crate://crates.io/indexmap/2.1.0 \
99 crate://crates.io/is-terminal/0.4.9 \
100 crate://crates.io/itertools/0.10.5 \
101 crate://crates.io/itertools/0.11.0 \
102 crate://crates.io/itoa/1.0.10 \
103 crate://crates.io/js-sys/0.3.66 \
104 crate://crates.io/language-tags/0.3.2 \
105 crate://crates.io/lazy_static/1.4.0 \
106 crate://crates.io/libc/0.2.151 \
107 crate://crates.io/libloading/0.8.1 \
108 crate://crates.io/libm/0.2.8 \
109 crate://crates.io/linked-hash-map/0.5.6 \
110 crate://crates.io/linux-raw-sys/0.4.12 \
111 crate://crates.io/locale_config/0.3.0 \
112 crate://crates.io/lock_api/0.4.11 \
113 crate://crates.io/log/0.4.20 \
114 crate://crates.io/lopdf/0.31.0 \
115 crate://crates.io/mac/0.1.1 \
116 crate://crates.io/malloc_buf/0.0.6 \
117 crate://crates.io/markup5ever/0.11.0 \
118 crate://crates.io/matches/0.1.10 \
119 crate://crates.io/matrixmultiply/0.3.8 \
120 crate://crates.io/md5/0.7.0 \
121 crate://crates.io/memchr/2.6.4 \
122 crate://crates.io/memoffset/0.9.0 \
123 crate://crates.io/minimal-lexical/0.2.1 \
124 crate://crates.io/miniz_oxide/0.7.1 \
125 crate://crates.io/nalgebra/0.32.3 \
126 crate://crates.io/nalgebra-macros/0.2.1 \
127 crate://crates.io/new_debug_unreachable/1.0.4 \
128 crate://crates.io/nom/7.1.3 \
129 crate://crates.io/normalize-line-endings/0.3.0 \
130 crate://crates.io/num-complex/0.4.4 \
131 crate://crates.io/num-integer/0.1.45 \
132 crate://crates.io/num-rational/0.4.1 \
133 crate://crates.io/num-traits/0.2.17 \
134 crate://crates.io/objc/0.2.7 \
135 crate://crates.io/objc-foundation/0.1.1 \
136 crate://crates.io/objc_id/0.1.1 \
137 crate://crates.io/once_cell/1.19.0 \
138 crate://crates.io/oorandom/11.1.3 \
139 crate://crates.io/pango/0.18.3 \
140 crate://crates.io/pango-sys/0.18.0 \
141 crate://crates.io/pangocairo/0.18.0 \
142 crate://crates.io/pangocairo-sys/0.18.0 \
143 crate://crates.io/parking_lot/0.12.1 \
144 crate://crates.io/parking_lot_core/0.9.9 \
145 crate://crates.io/paste/1.0.14 \
146 crate://crates.io/percent-encoding/2.3.1 \
147 crate://crates.io/phf/0.10.1 \
148 crate://crates.io/phf/0.11.2 \
149 crate://crates.io/phf_codegen/0.10.0 \
150 crate://crates.io/phf_generator/0.10.0 \
151 crate://crates.io/phf_generator/0.11.2 \
152 crate://crates.io/phf_macros/0.11.2 \
153 crate://crates.io/phf_shared/0.10.0 \
154 crate://crates.io/phf_shared/0.11.2 \
155 crate://crates.io/pin-project-lite/0.2.13 \
156 crate://crates.io/pin-utils/0.1.0 \
157 crate://crates.io/pkg-config/0.3.27 \
158 crate://crates.io/plotters/0.3.5 \
159 crate://crates.io/plotters-backend/0.3.5 \
160 crate://crates.io/plotters-svg/0.3.5 \
161 crate://crates.io/png/0.17.10 \
162 crate://crates.io/powerfmt/0.2.0 \
163 crate://crates.io/ppv-lite86/0.2.17 \
164 crate://crates.io/precomputed-hash/0.1.1 \
165 crate://crates.io/predicates/3.0.4 \
166 crate://crates.io/predicates-core/1.0.6 \
167 crate://crates.io/predicates-tree/1.0.9 \
168 crate://crates.io/proc-macro-crate/2.0.1 \
169 crate://crates.io/proc-macro-error/1.0.4 \
170 crate://crates.io/proc-macro-error-attr/1.0.4 \
171 crate://crates.io/proc-macro2/1.0.70 \
172 crate://crates.io/proptest/1.4.0 \
173 crate://crates.io/quick-error/1.2.3 \
174 crate://crates.io/quick-error/2.0.1 \
175 crate://crates.io/quote/1.0.33 \
176 crate://crates.io/rand/0.8.5 \
177 crate://crates.io/rand_chacha/0.3.1 \
178 crate://crates.io/rand_core/0.6.4 \
179 crate://crates.io/rand_xorshift/0.3.0 \
180 crate://crates.io/rawpointer/0.2.1 \
181 crate://crates.io/rayon/1.8.0 \
182 crate://crates.io/rayon-core/1.12.0 \
183 crate://crates.io/rctree/0.5.0 \
184 crate://crates.io/redox_syscall/0.4.1 \
185 crate://crates.io/regex/1.10.2 \
186 crate://crates.io/regex-automata/0.4.3 \
187 crate://crates.io/regex-syntax/0.8.2 \
188 crate://crates.io/rgb/0.8.37 \
189 crate://crates.io/rustix/0.38.28 \
190 crate://crates.io/rusty-fork/0.3.0 \
191 crate://crates.io/ryu/1.0.16 \
192 crate://crates.io/safe_arch/0.7.1 \
193 crate://crates.io/same-file/1.0.6 \
194 crate://crates.io/scopeguard/1.2.0 \
195 crate://crates.io/selectors/0.25.0 \
196 crate://crates.io/serde/1.0.193 \
197 crate://crates.io/serde_derive/1.0.193 \
198 crate://crates.io/serde_json/1.0.108 \
199 crate://crates.io/serde_spanned/0.6.4 \
200 crate://crates.io/servo_arc/0.3.0 \
201 crate://crates.io/simba/0.8.1 \
202 crate://crates.io/simd-adler32/0.3.7 \
203 crate://crates.io/siphasher/0.3.11 \
204 crate://crates.io/slab/0.4.9 \
205 crate://crates.io/smallvec/1.11.2 \
206 crate://crates.io/stable_deref_trait/1.2.0 \
207 crate://crates.io/string_cache/0.8.7 \
208 crate://crates.io/string_cache_codegen/0.5.2 \
209 crate://crates.io/strsim/0.10.0 \
210 crate://crates.io/syn/1.0.109 \
211 crate://crates.io/syn/2.0.41 \
212 crate://crates.io/system-deps/6.2.0 \
213 crate://crates.io/target-lexicon/0.12.12 \
214 crate://crates.io/tempfile/3.8.1 \
215 crate://crates.io/tendril/0.4.3 \
216 crate://crates.io/termtree/0.4.1 \
217 crate://crates.io/thiserror/1.0.50 \
218 crate://crates.io/thiserror-impl/1.0.50 \
219 crate://crates.io/time/0.3.30 \
220 crate://crates.io/time-core/0.1.2 \
221 crate://crates.io/time-macros/0.2.15 \
222 crate://crates.io/tinytemplate/1.2.1 \
223 crate://crates.io/tinyvec/1.6.0 \
224 crate://crates.io/tinyvec_macros/0.1.1 \
225 crate://crates.io/toml/0.8.2 \
226 crate://crates.io/toml_datetime/0.6.3 \
227 crate://crates.io/toml_edit/0.20.2 \
228 crate://crates.io/typenum/1.17.0 \
229 crate://crates.io/unarray/0.1.4 \
230 crate://crates.io/unicode-bidi/0.3.14 \
231 crate://crates.io/unicode-ident/1.0.12 \
232 crate://crates.io/unicode-normalization/0.1.22 \
233 crate://crates.io/url/2.5.0 \
234 crate://crates.io/utf-8/0.7.6 \
235 crate://crates.io/utf8parse/0.2.1 \
236 crate://crates.io/version-compare/0.1.1 \
237 crate://crates.io/version_check/0.9.4 \
238 crate://crates.io/wait-timeout/0.2.0 \
239 crate://crates.io/walkdir/2.4.0 \
240 crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
241 crate://crates.io/wasm-bindgen/0.2.89 \
242 crate://crates.io/wasm-bindgen-backend/0.2.89 \
243 crate://crates.io/wasm-bindgen-macro/0.2.89 \
244 crate://crates.io/wasm-bindgen-macro-support/0.2.89 \
245 crate://crates.io/wasm-bindgen-shared/0.2.89 \
246 crate://crates.io/web-sys/0.3.66 \
247 crate://crates.io/weezl/0.1.7 \
248 crate://crates.io/wide/0.7.13 \
249 crate://crates.io/winapi/0.3.9 \
250 crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
251 crate://crates.io/winapi-util/0.1.6 \
252 crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
253 crate://crates.io/windows-core/0.51.1 \
254 crate://crates.io/windows-sys/0.48.0 \
255 crate://crates.io/windows-sys/0.52.0 \
256 crate://crates.io/windows-targets/0.48.5 \
257 crate://crates.io/windows-targets/0.52.0 \
258 crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
259 crate://crates.io/windows_aarch64_gnullvm/0.52.0 \
260 crate://crates.io/windows_aarch64_msvc/0.48.5 \
261 crate://crates.io/windows_aarch64_msvc/0.52.0 \
262 crate://crates.io/windows_i686_gnu/0.48.5 \
263 crate://crates.io/windows_i686_gnu/0.52.0 \
264 crate://crates.io/windows_i686_msvc/0.48.5 \
265 crate://crates.io/windows_i686_msvc/0.52.0 \
266 crate://crates.io/windows_x86_64_gnu/0.48.5 \
267 crate://crates.io/windows_x86_64_gnu/0.52.0 \
268 crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
269 crate://crates.io/windows_x86_64_gnullvm/0.52.0 \
270 crate://crates.io/windows_x86_64_msvc/0.48.5 \
271 crate://crates.io/windows_x86_64_msvc/0.52.0 \
272 crate://crates.io/winnow/0.5.28 \
273 crate://crates.io/xml5ever/0.17.0 \
274 crate://crates.io/yeslogic-fontconfig-sys/4.0.1 \
275"
276
277SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
278SRC_URI[aho-corasick-1.1.2.sha256sum] = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
279SRC_URI[android-tzdata-0.1.1.sha256sum] = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
280SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
281SRC_URI[anes-0.1.6.sha256sum] = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
282SRC_URI[anstream-0.6.5.sha256sum] = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6"
283SRC_URI[anstyle-1.0.4.sha256sum] = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
284SRC_URI[anstyle-parse-0.2.3.sha256sum] = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
285SRC_URI[anstyle-query-1.0.2.sha256sum] = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
286SRC_URI[anstyle-wincon-3.0.2.sha256sum] = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
287SRC_URI[anyhow-1.0.75.sha256sum] = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
288SRC_URI[approx-0.5.1.sha256sum] = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
289SRC_URI[assert_cmd-2.0.12.sha256sum] = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6"
290SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
291SRC_URI[bit-set-0.5.3.sha256sum] = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
292SRC_URI[bit-vec-0.6.3.sha256sum] = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
293SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
294SRC_URI[bitflags-2.4.1.sha256sum] = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
295SRC_URI[block-0.1.6.sha256sum] = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
296SRC_URI[bstr-1.8.0.sha256sum] = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
297SRC_URI[bumpalo-3.14.0.sha256sum] = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
298SRC_URI[bytemuck-1.14.0.sha256sum] = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
299SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
300SRC_URI[cairo-rs-0.18.3.sha256sum] = "f33613627f0dea6a731b0605101fad59ba4f193a52c96c4687728d822605a8a1"
301SRC_URI[cairo-sys-rs-0.18.2.sha256sum] = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
302SRC_URI[cast-0.3.0.sha256sum] = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
303SRC_URI[cc-1.0.83.sha256sum] = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
304SRC_URI[cfg-expr-0.15.5.sha256sum] = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3"
305SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
306SRC_URI[chrono-0.4.31.sha256sum] = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
307SRC_URI[ciborium-0.2.1.sha256sum] = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
308SRC_URI[ciborium-io-0.2.1.sha256sum] = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
309SRC_URI[ciborium-ll-0.2.1.sha256sum] = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
310SRC_URI[clap-4.4.11.sha256sum] = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2"
311SRC_URI[clap_builder-4.4.11.sha256sum] = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb"
312SRC_URI[clap_complete-4.4.4.sha256sum] = "bffe91f06a11b4b9420f62103854e90867812cd5d01557f853c5ee8e791b12ae"
313SRC_URI[clap_derive-4.4.7.sha256sum] = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
314SRC_URI[clap_lex-0.6.0.sha256sum] = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
315SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
316SRC_URI[const-cstr-0.3.0.sha256sum] = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6"
317SRC_URI[core-foundation-sys-0.8.6.sha256sum] = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
318SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
319SRC_URI[criterion-0.5.1.sha256sum] = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
320SRC_URI[criterion-plot-0.5.0.sha256sum] = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
321SRC_URI[crossbeam-deque-0.8.4.sha256sum] = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751"
322SRC_URI[crossbeam-epoch-0.9.16.sha256sum] = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa"
323SRC_URI[crossbeam-utils-0.8.17.sha256sum] = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f"
324SRC_URI[cssparser-0.31.2.sha256sum] = "5b3df4f93e5fbbe73ec01ec8d3f68bba73107993a5b1e7519273c32db9b0d5be"
325SRC_URI[cssparser-macros-0.6.1.sha256sum] = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
326SRC_URI[cstr-0.2.11.sha256sum] = "8aa998c33a6d3271e3678950a22134cd7dd27cef86dee1b611b5b14207d1d90b"
327SRC_URI[data-url-0.3.1.sha256sum] = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a"
328SRC_URI[deranged-0.3.10.sha256sum] = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc"
329SRC_URI[derive_more-0.99.17.sha256sum] = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
330SRC_URI[difflib-0.4.0.sha256sum] = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
331SRC_URI[dlib-0.5.2.sha256sum] = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
332SRC_URI[doc-comment-0.3.3.sha256sum] = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
333SRC_URI[dtoa-1.0.9.sha256sum] = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
334SRC_URI[dtoa-short-0.3.4.sha256sum] = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74"
335SRC_URI[either-1.9.0.sha256sum] = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
336SRC_URI[encoding_rs-0.8.33.sha256sum] = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
337SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
338SRC_URI[errno-0.3.8.sha256sum] = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
339SRC_URI[fastrand-2.0.1.sha256sum] = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
340SRC_URI[fdeflate-0.3.1.sha256sum] = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868"
341SRC_URI[flate2-1.0.28.sha256sum] = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
342SRC_URI[float-cmp-0.9.0.sha256sum] = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
343SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
344SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
345SRC_URI[futf-0.1.5.sha256sum] = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
346SRC_URI[futures-channel-0.3.29.sha256sum] = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
347SRC_URI[futures-core-0.3.29.sha256sum] = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
348SRC_URI[futures-executor-0.3.29.sha256sum] = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
349SRC_URI[futures-io-0.3.29.sha256sum] = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
350SRC_URI[futures-macro-0.3.29.sha256sum] = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
351SRC_URI[futures-task-0.3.29.sha256sum] = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
352SRC_URI[futures-util-0.3.29.sha256sum] = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
353SRC_URI[fxhash-0.2.1.sha256sum] = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
354SRC_URI[gdk-pixbuf-0.18.3.sha256sum] = "446f32b74d22c33b7b258d4af4ffde53c2bf96ca2e29abdf1a785fe59bd6c82c"
355SRC_URI[gdk-pixbuf-sys-0.18.0.sha256sum] = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
356SRC_URI[getrandom-0.2.11.sha256sum] = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
357SRC_URI[gio-0.18.4.sha256sum] = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
358SRC_URI[gio-sys-0.18.1.sha256sum] = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
359SRC_URI[glib-0.18.4.sha256sum] = "951bbd7fdc5c044ede9f05170f05a3ae9479239c3afdfe2d22d537a3add15c4e"
360SRC_URI[glib-macros-0.18.3.sha256sum] = "72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5"
361SRC_URI[glib-sys-0.18.1.sha256sum] = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
362SRC_URI[gobject-sys-0.18.0.sha256sum] = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
363SRC_URI[half-1.8.2.sha256sum] = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
364SRC_URI[hashbrown-0.14.3.sha256sum] = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
365SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
366SRC_URI[hermit-abi-0.3.3.sha256sum] = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
367SRC_URI[iana-time-zone-0.1.58.sha256sum] = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
368SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
369SRC_URI[idna-0.5.0.sha256sum] = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
370SRC_URI[indexmap-2.1.0.sha256sum] = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
371SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
372SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
373SRC_URI[itertools-0.11.0.sha256sum] = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
374SRC_URI[itoa-1.0.10.sha256sum] = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
375SRC_URI[js-sys-0.3.66.sha256sum] = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
376SRC_URI[language-tags-0.3.2.sha256sum] = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
377SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
378SRC_URI[libc-0.2.151.sha256sum] = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
379SRC_URI[libloading-0.8.1.sha256sum] = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
380SRC_URI[libm-0.2.8.sha256sum] = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
381SRC_URI[linked-hash-map-0.5.6.sha256sum] = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
382SRC_URI[linux-raw-sys-0.4.12.sha256sum] = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
383SRC_URI[locale_config-0.3.0.sha256sum] = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
384SRC_URI[lock_api-0.4.11.sha256sum] = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
385SRC_URI[log-0.4.20.sha256sum] = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
386SRC_URI[lopdf-0.31.0.sha256sum] = "07c8e1b6184b1b32ea5f72f572ebdc40e5da1d2921fa469947ff7c480ad1f85a"
387SRC_URI[mac-0.1.1.sha256sum] = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
388SRC_URI[malloc_buf-0.0.6.sha256sum] = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
389SRC_URI[markup5ever-0.11.0.sha256sum] = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
390SRC_URI[matches-0.1.10.sha256sum] = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
391SRC_URI[matrixmultiply-0.3.8.sha256sum] = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2"
392SRC_URI[md5-0.7.0.sha256sum] = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
393SRC_URI[memchr-2.6.4.sha256sum] = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
394SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
395SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
396SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
397SRC_URI[nalgebra-0.32.3.sha256sum] = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa"
398SRC_URI[nalgebra-macros-0.2.1.sha256sum] = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998"
399SRC_URI[new_debug_unreachable-1.0.4.sha256sum] = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
400SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
401SRC_URI[normalize-line-endings-0.3.0.sha256sum] = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
402SRC_URI[num-complex-0.4.4.sha256sum] = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
403SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
404SRC_URI[num-rational-0.4.1.sha256sum] = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
405SRC_URI[num-traits-0.2.17.sha256sum] = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
406SRC_URI[objc-0.2.7.sha256sum] = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
407SRC_URI[objc-foundation-0.1.1.sha256sum] = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
408SRC_URI[objc_id-0.1.1.sha256sum] = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
409SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
410SRC_URI[oorandom-11.1.3.sha256sum] = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
411SRC_URI[pango-0.18.3.sha256sum] = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
412SRC_URI[pango-sys-0.18.0.sha256sum] = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
413SRC_URI[pangocairo-0.18.0.sha256sum] = "57036589a9cfcacf83f9e606d15813fc6bf03f0e9e69aa2b5e3bb85af86b38a5"
414SRC_URI[pangocairo-sys-0.18.0.sha256sum] = "fc3c8ff676a37e7a72ec1d5fc029f91c407278083d2752784ff9f5188c108833"
415SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
416SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
417SRC_URI[paste-1.0.14.sha256sum] = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
418SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
419SRC_URI[phf-0.10.1.sha256sum] = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
420SRC_URI[phf-0.11.2.sha256sum] = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
421SRC_URI[phf_codegen-0.10.0.sha256sum] = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
422SRC_URI[phf_generator-0.10.0.sha256sum] = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
423SRC_URI[phf_generator-0.11.2.sha256sum] = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
424SRC_URI[phf_macros-0.11.2.sha256sum] = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
425SRC_URI[phf_shared-0.10.0.sha256sum] = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
426SRC_URI[phf_shared-0.11.2.sha256sum] = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
427SRC_URI[pin-project-lite-0.2.13.sha256sum] = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
428SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
429SRC_URI[pkg-config-0.3.27.sha256sum] = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
430SRC_URI[plotters-0.3.5.sha256sum] = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
431SRC_URI[plotters-backend-0.3.5.sha256sum] = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609"
432SRC_URI[plotters-svg-0.3.5.sha256sum] = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab"
433SRC_URI[png-0.17.10.sha256sum] = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
434SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
435SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
436SRC_URI[precomputed-hash-0.1.1.sha256sum] = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
437SRC_URI[predicates-3.0.4.sha256sum] = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0"
438SRC_URI[predicates-core-1.0.6.sha256sum] = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
439SRC_URI[predicates-tree-1.0.9.sha256sum] = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
440SRC_URI[proc-macro-crate-2.0.1.sha256sum] = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a"
441SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
442SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
443SRC_URI[proc-macro2-1.0.70.sha256sum] = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
444SRC_URI[proptest-1.4.0.sha256sum] = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
445SRC_URI[quick-error-1.2.3.sha256sum] = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
446SRC_URI[quick-error-2.0.1.sha256sum] = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
447SRC_URI[quote-1.0.33.sha256sum] = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
448SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
449SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
450SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
451SRC_URI[rand_xorshift-0.3.0.sha256sum] = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
452SRC_URI[rawpointer-0.2.1.sha256sum] = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
453SRC_URI[rayon-1.8.0.sha256sum] = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
454SRC_URI[rayon-core-1.12.0.sha256sum] = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
455SRC_URI[rctree-0.5.0.sha256sum] = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
456SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
457SRC_URI[regex-1.10.2.sha256sum] = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
458SRC_URI[regex-automata-0.4.3.sha256sum] = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
459SRC_URI[regex-syntax-0.8.2.sha256sum] = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
460SRC_URI[rgb-0.8.37.sha256sum] = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8"
461SRC_URI[rustix-0.38.28.sha256sum] = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
462SRC_URI[rusty-fork-0.3.0.sha256sum] = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f"
463SRC_URI[ryu-1.0.16.sha256sum] = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
464SRC_URI[safe_arch-0.7.1.sha256sum] = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354"
465SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
466SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
467SRC_URI[selectors-0.25.0.sha256sum] = "4eb30575f3638fc8f6815f448d50cb1a2e255b0897985c8c59f4d37b72a07b06"
468SRC_URI[serde-1.0.193.sha256sum] = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
469SRC_URI[serde_derive-1.0.193.sha256sum] = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
470SRC_URI[serde_json-1.0.108.sha256sum] = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
471SRC_URI[serde_spanned-0.6.4.sha256sum] = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
472SRC_URI[servo_arc-0.3.0.sha256sum] = "d036d71a959e00c77a63538b90a6c2390969f9772b096ea837205c6bd0491a44"
473SRC_URI[simba-0.8.1.sha256sum] = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae"
474SRC_URI[simd-adler32-0.3.7.sha256sum] = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
475SRC_URI[siphasher-0.3.11.sha256sum] = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
476SRC_URI[slab-0.4.9.sha256sum] = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
477SRC_URI[smallvec-1.11.2.sha256sum] = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
478SRC_URI[stable_deref_trait-1.2.0.sha256sum] = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
479SRC_URI[string_cache-0.8.7.sha256sum] = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
480SRC_URI[string_cache_codegen-0.5.2.sha256sum] = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
481SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
482SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
483SRC_URI[syn-2.0.41.sha256sum] = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269"
484SRC_URI[system-deps-6.2.0.sha256sum] = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
485SRC_URI[target-lexicon-0.12.12.sha256sum] = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
486SRC_URI[tempfile-3.8.1.sha256sum] = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
487SRC_URI[tendril-0.4.3.sha256sum] = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
488SRC_URI[termtree-0.4.1.sha256sum] = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
489SRC_URI[thiserror-1.0.50.sha256sum] = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
490SRC_URI[thiserror-impl-1.0.50.sha256sum] = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
491SRC_URI[time-0.3.30.sha256sum] = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
492SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
493SRC_URI[time-macros-0.2.15.sha256sum] = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
494SRC_URI[tinytemplate-1.2.1.sha256sum] = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
495SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
496SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
497SRC_URI[toml-0.8.2.sha256sum] = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
498SRC_URI[toml_datetime-0.6.3.sha256sum] = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
499SRC_URI[toml_edit-0.20.2.sha256sum] = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
500SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
501SRC_URI[unarray-0.1.4.sha256sum] = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
502SRC_URI[unicode-bidi-0.3.14.sha256sum] = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
503SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
504SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
505SRC_URI[url-2.5.0.sha256sum] = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
506SRC_URI[utf-8-0.7.6.sha256sum] = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
507SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
508SRC_URI[version-compare-0.1.1.sha256sum] = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
509SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
510SRC_URI[wait-timeout-0.2.0.sha256sum] = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
511SRC_URI[walkdir-2.4.0.sha256sum] = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
512SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
513SRC_URI[wasm-bindgen-0.2.89.sha256sum] = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
514SRC_URI[wasm-bindgen-backend-0.2.89.sha256sum] = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
515SRC_URI[wasm-bindgen-macro-0.2.89.sha256sum] = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
516SRC_URI[wasm-bindgen-macro-support-0.2.89.sha256sum] = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
517SRC_URI[wasm-bindgen-shared-0.2.89.sha256sum] = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
518SRC_URI[web-sys-0.3.66.sha256sum] = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
519SRC_URI[weezl-0.1.7.sha256sum] = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
520SRC_URI[wide-0.7.13.sha256sum] = "c68938b57b33da363195412cfc5fc37c9ed49aa9cfe2156fde64b8d2c9498242"
521SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
522SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
523SRC_URI[winapi-util-0.1.6.sha256sum] = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
524SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
525SRC_URI[windows-core-0.51.1.sha256sum] = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
526SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
527SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
528SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
529SRC_URI[windows-targets-0.52.0.sha256sum] = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
530SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
531SRC_URI[windows_aarch64_gnullvm-0.52.0.sha256sum] = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
532SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
533SRC_URI[windows_aarch64_msvc-0.52.0.sha256sum] = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
534SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
535SRC_URI[windows_i686_gnu-0.52.0.sha256sum] = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
536SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
537SRC_URI[windows_i686_msvc-0.52.0.sha256sum] = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
538SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
539SRC_URI[windows_x86_64_gnu-0.52.0.sha256sum] = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
540SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
541SRC_URI[windows_x86_64_gnullvm-0.52.0.sha256sum] = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
542SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
543SRC_URI[windows_x86_64_msvc-0.52.0.sha256sum] = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
544SRC_URI[winnow-0.5.28.sha256sum] = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2"
545SRC_URI[xml5ever-0.17.0.sha256sum] = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650"
546SRC_URI[yeslogic-fontconfig-sys-4.0.1.sha256sum] = "ec657fd32bbcbeaef5c7bc8e10b3db95b143fab8db0a50079773dbf936fd4f73"
diff --git a/meta/recipes-gnome/librsvg/librsvg/0001-Auto-detect-Bsymbolic-fixes-configure-on-macOS.patch b/meta/recipes-gnome/librsvg/librsvg/0001-Auto-detect-Bsymbolic-fixes-configure-on-macOS.patch
deleted file mode 100644
index 954bb60880..0000000000
--- a/meta/recipes-gnome/librsvg/librsvg/0001-Auto-detect-Bsymbolic-fixes-configure-on-macOS.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From b99891e31eb6ce550e7e1cb2ca592095b3050a93 Mon Sep 17 00:00:00 2001
2From: Brion Vibber <brion@pobox.com>
3Date: Sun, 25 Feb 2018 18:42:36 -0800
4Subject: Auto-detect -Bsymbolic, fixes configure on macOS
5
6The -Bsymbolic linker option is ELF-specific, and was breaking
7configure on macOS unless --disable-Bsymbolic was explicitly passed.
8
9Switching the behavior from requiring -Bsymbolic to be available
10by default to just warning and continuing on without.
11
12Fixes https://gitlab.gnome.org/GNOME/librsvg/issues/211
13
14Upstream-Status: Backport
15Signed-off-by: Adrian Bunk <bunk@stusta.de>
16---
17 configure.ac | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-)
19
20diff --git a/configure.ac b/configure.ac
21index 15b26b2d..9f8dce29 100644
22--- a/configure.ac
23+++ b/configure.ac
24@@ -216,7 +216,7 @@ AM_CONDITIONAL([ENABLE_PIXBUF_LOADER],[test "$enable_pixbuf_loader" = "yes"])
25 AC_ARG_ENABLE([Bsymbolic],
26 [AS_HELP_STRING([--disable-Bsymbolic],
27 [disable linking with -Bsymbolic])],
28- [],[enable_Bsymbolic=yes])
29+ [enable_Bsymbolic=no],[enable_Bsymbolic=auto])
30
31 BSYMBOLIC_LDFLAG=
32 if test "$enable_Bsymbolic" != "no"; then
33--
342.20.1
35
diff --git a/meta/recipes-gnome/librsvg/librsvg/0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch b/meta/recipes-gnome/librsvg/librsvg/0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch
new file mode 100644
index 0000000000..c34a610522
--- /dev/null
+++ b/meta/recipes-gnome/librsvg/librsvg/0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch
@@ -0,0 +1,44 @@
1From d0f4f5b3ae900b9d092407e29b5372d93910c18c Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex@linutronix.de>
3Date: Tue, 21 Sep 2021 16:27:14 +0200
4Subject: [PATCH] Makefile.am: pass rust target to cargo also when not cross
5 compiling
6
7Otherwise oe-core's native build doesn't work either.
8
9Upstream-Status: Inappropriate [oe-core specific]
10Signed-off-by: Alexander Kanavin <alex@linutronix.de>
11---
12 Makefile.am | 2 --
13 configure.ac | 4 +---
14 2 files changed, 1 insertion(+), 5 deletions(-)
15
16diff --git a/Makefile.am b/Makefile.am
17index 2a89954..4e296d3 100644
18--- a/Makefile.am
19+++ b/Makefile.am
20@@ -173,9 +173,7 @@ else
21 CARGO_RELEASE_ARGS=--release
22 endif
23
24-if CROSS_COMPILING
25 CARGO_TARGET_ARGS=--target=$(RUST_TARGET)
26-endif
27
28 CARGO_VERBOSE = $(cargo_verbose_$(V))
29 cargo_verbose_ = $(cargo_verbose_$(AM_DEFAULT_VERBOSITY))
30diff --git a/configure.ac b/configure.ac
31index 42215cf..2499c96 100644
32--- a/configure.ac
33+++ b/configure.ac
34@@ -292,9 +292,7 @@ AC_ARG_VAR(RUST_TARGET, [Set rust target (default=$host)])
35 : ${RUST_TARGET:=$host}
36
37 AM_CONDITIONAL([CROSS_COMPILING], [test "x$cross_compiling" = xyes])
38-AS_IF([test "x$cross_compiling" = "xyes"], [
39- RUST_TARGET_SUBDIR="$RUST_TARGET/$RUST_TARGET_SUBDIR"
40-])
41+RUST_TARGET_SUBDIR="$RUST_TARGET/$RUST_TARGET_SUBDIR"
42 AC_SUBST([RUST_TARGET_SUBDIR])
43
44 dnl ===========================================================================
diff --git a/meta/recipes-gnome/librsvg/librsvg/0001-Remove-non-reproducible-SRCDIR.patch b/meta/recipes-gnome/librsvg/librsvg/0001-Remove-non-reproducible-SRCDIR.patch
deleted file mode 100644
index 75fc7f9d0b..0000000000
--- a/meta/recipes-gnome/librsvg/librsvg/0001-Remove-non-reproducible-SRCDIR.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From bea5156cd7e7122715b26c769c35928141a1da2c Mon Sep 17 00:00:00 2001
2From: Joshua Watt <JPEWhacker@gmail.com>
3Date: Mon, 18 Nov 2019 14:46:34 -0600
4Subject: [PATCH] Remove non-reproducible SRCDIR
5
6Removes SRCDIR as the prefix for finding the test font. This wouldn't
7work anyway, since that path is not present on the target.
8
9This patch is specific to OE, since it appears that this entire method
10of testing was removed when upstream was re-written in rust
11
12Upstream-Status: Inappropriate [OE-specific, no longer present upstream]
13Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
14---
15 rsvg-cairo-draw.c | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/rsvg-cairo-draw.c b/rsvg-cairo-draw.c
19index caa9104..cfb7ed2 100644
20--- a/rsvg-cairo-draw.c
21+++ b/rsvg-cairo-draw.c
22@@ -398,7 +398,7 @@ set_font_options_for_testing (PangoContext *context)
23 static void
24 create_font_config_for_testing (RsvgCairoRender *render)
25 {
26- const char *font_path = SRCDIR "/tests/resources/LiberationSans-Regular.ttf";
27+ const char *font_path = "/tests/resources/LiberationSans-Regular.ttf";
28
29 if (render->font_config_for_testing != NULL)
30 return;
diff --git a/meta/recipes-gnome/librsvg/librsvg/gtk-option.patch b/meta/recipes-gnome/librsvg/librsvg/gtk-option.patch
deleted file mode 100644
index 6c23071cd3..0000000000
--- a/meta/recipes-gnome/librsvg/librsvg/gtk-option.patch
+++ /dev/null
@@ -1,60 +0,0 @@
1From 4e0ce3f22d45033a108cbacca3e5ec6728bd44f3 Mon Sep 17 00:00:00 2001
2From: Jussi Kukkonen <jussi.kukkonen@intel.com>
3Date: Tue, 11 Aug 2015 16:25:38 +0300
4Subject: [PATCH] configure: add option to enable/disable use of GTK+
5
6Distro packagers like predictability and automatically detected optional
7dependencies are not predicable. Add a --with-gtk3 option (default to "auto")
8for forcibly controlling whether GTK+ will be used or not.
9
10Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=712693]
11
12Signed-off-by: Ross Burton <ross.burton@intel.com>
13Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
14---
15 configure.ac | 17 +++++++++++------
16 1 file changed, 11 insertions(+), 6 deletions(-)
17
18diff --git a/configure.ac b/configure.ac
19index e61a952..c3aae84 100644
20--- a/configure.ac
21+++ b/configure.ac
22@@ -130,17 +130,22 @@ AC_CHECK_FUNCS(strtok_r)
23 # GTK
24 # ===========================================================================
25
26-PKG_CHECK_MODULES([GTK3],[gtk+-3.0 >= $GTK3_REQUIRED],[have_gtk_3=yes],[have_gtk_3=no])
27-
28 GTK3_BINARY_VERSION=
29
30-if test "$have_gtk_3" = "yes"; then
31- GTK3_BINARY_VERSION="`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`"
32+AC_MSG_CHECKING([whether to use GTK+ 3])
33+AC_ARG_WITH([gtk3],
34+ [AS_HELP_STRING([--without-gtk3],[Don't build GTK+3 tools (default=auto)])],
35+ [],[PKG_CHECK_EXISTS([gtk+-3.0 >= $GTK3_REQUIRED],[with_gtk3=yes],[with_gtk3=no])])
36+AC_MSG_RESULT([$with_gtk3])
37+
38+if test "$with_gtk3" = "yes"; then
39+ PKG_CHECK_MODULES(GTK3, [gtk+-3.0 >= $GTK3_REQUIRED])
40+ GTK3_BINARY_VERSION="`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`"
41 fi
42
43 AC_SUBST([GTK3_BINARY_VERSION])
44
45-AM_CONDITIONAL([HAVE_GTK_3],[test "$have_gtk_3" = "yes"])
46+AM_CONDITIONAL([HAVE_GTK_3],[test "$with_gtk3" = "yes"])
47
48 dnl ===========================================================================
49 dnl GDK-Pixbuf SVG loader
50@@ -298,6 +303,6 @@ librsvg-$VERSION
51 Build introspectable bindings: ${found_introspection}
52 Build Vala bindings: ${enable_vala}
53 Build GdkPixbuf loader: ${enable_pixbuf_loader}
54- GTK+ $GTK3_REQUIRED or later: ${have_gtk_3}
55+ GTK+ $GTK3_REQUIRED or later: ${with_gtk_3}
56 Build miscellaneous tools: ${build_misc_tools}
57 "
58--
592.1.4
60
diff --git a/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb b/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb
deleted file mode 100644
index 59de80a691..0000000000
--- a/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb
+++ /dev/null
@@ -1,52 +0,0 @@
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
9RECIPE_NO_UPDATE_REASON = "Versions from 2.41.0 requires Rust compiler to build it"
10
11LICENSE = "LGPLv2+"
12LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
13 file://rsvg.h;beginline=3;endline=24;md5=20b4113c4909bbf0d67e006778302bc6"
14
15SECTION = "x11/utils"
16DEPENDS = "cairo gdk-pixbuf glib-2.0 libcroco libxml2 pango"
17BBCLASSEXTEND = "native nativesdk"
18
19inherit gnomebase gtk-doc pixbufcache upstream-version-is-even gobject-introspection
20
21SRC_URI += "file://gtk-option.patch \
22 file://0001-Auto-detect-Bsymbolic-fixes-configure-on-macOS.patch \
23 file://0001-Remove-non-reproducible-SRCDIR.patch \
24"
25
26SRC_URI[archive.sha256sum] = "f7628905f1cada84e87e2b14883ed57d8094dca3281d5bcb24ece4279e9a92ba"
27
28# Issue only on windows
29CVE_CHECK_WHITELIST += "CVE-2018-1000041"
30
31CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
32
33PACKAGECONFIG ??= "gdkpixbuf"
34# The gdk-pixbuf loader
35PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native"
36# GTK+ test application (rsvg-view)
37PACKAGECONFIG[gtk] = "--with-gtk3,--without-gtk3,gtk+3"
38
39do_install_append() {
40 # Loadable modules don't need .a or .la on Linux
41 rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la
42}
43
44PACKAGES =+ "librsvg-gtk rsvg"
45FILES_rsvg = "${bindir}/rsvg* \
46 ${datadir}/pixmaps/svg-viewer.svg \
47 ${datadir}/themes"
48FILES_librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so \
49 ${datadir}/thumbnailers/librsvg.thumbnailer"
50RRECOMMENDS_librsvg-gtk = "gdk-pixbuf-bin"
51
52PIXBUF_PACKAGES = "librsvg-gtk"
diff --git a/meta/recipes-gnome/librsvg/librsvg_2.57.1.bb b/meta/recipes-gnome/librsvg/librsvg_2.57.1.bb
new file mode 100644
index 0000000000..4b52d4062b
--- /dev/null
+++ b/meta/recipes-gnome/librsvg/librsvg_2.57.1.bb
@@ -0,0 +1,79 @@
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 libxml2 pango python3-docutils-native"
15BBCLASSEXTEND = "native nativesdk"
16
17GNOMEBASEBUILDCLASS = "autotools"
18inherit cargo_common gnomebase pixbufcache gobject-introspection rust vala gi-docgen cargo-update-recipe-crates
19
20require ${BPN}-crates.inc
21
22SRC_URI += " \
23 file://0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch \
24 "
25
26SRC_URI[archive.sha256sum] = "074671a3ed6fbcd67cae2a40e539107f4f097ca8a4ab1a894c05e2524ff340ef"
27
28UPSTREAM_CHECK_REGEX = "librsvg-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
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
33BASEDEPENDS:append = " cargo-native"
34
35export RUST_BACKTRACE = "full"
36export RUSTFLAGS
37
38export RUST_TARGET = "${RUST_HOST_SYS}"
39
40RUSTFLAGS:append:mips = " --cfg crossbeam_no_atomic_64"
41RUSTFLAGS:append:mipsel = " --cfg crossbeam_no_atomic_64"
42RUSTFLAGS:append:powerpc = " --cfg crossbeam_no_atomic_64"
43
44do_configure[postfuncs] += "cargo_common_do_configure"
45
46inherit rust-target-config
47
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.
52do_compile:prepend() {
53 sed -ie 's,"linker": ".*","linker": "${RUST_TARGET_CC}",g' ${RUST_TARGETS_DIR}/${RUST_HOST_SYS}.json
54}
55
56CVE_STATUS[CVE-2018-1000041] = "not-applicable-platform: Issue only applies on Windows"
57
58CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
59
60PACKAGECONFIG ??= "gdkpixbuf"
61PACKAGECONFIG:append:class-target = " ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vala', '', d)}"
62# The gdk-pixbuf loader
63PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native"
64PACKAGECONFIG[vala] = "--enable-vala,--disable-vala"
65
66do_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
71PACKAGES =+ "librsvg-gtk rsvg"
72FILES:rsvg = "${bindir}/rsvg* \
73 ${datadir}/pixmaps/svg-viewer.svg \
74 ${datadir}/themes"
75FILES:librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so \
76 ${datadir}/thumbnailers/librsvg.thumbnailer"
77RRECOMMENDS:librsvg-gtk = "gdk-pixbuf-bin"
78
79PIXBUF_PACKAGES = "librsvg-gtk"
diff --git a/meta/recipes-gnome/libsecret/libsecret/determinism.patch b/meta/recipes-gnome/libsecret/libsecret/determinism.patch
deleted file mode 100644
index ad96e8f59b..0000000000
--- a/meta/recipes-gnome/libsecret/libsecret/determinism.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1secret-enum-types.c/h.template: Fix reproducibility issue
2
3When full filenames are used in generated sources it makes the resulting
4debug packages non-reproducible. Best practise is to use basename in
5comments instead.
6
7Signed-off-by: Richard Purdie richard.purdie@linuxfoundation.org
8Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libsecret/-/merge_requests/68]
9
10Index: libsecret-0.20.4/libsecret/secret-enum-types.c.template
11===================================================================
12--- libsecret-0.20.4.orig/libsecret/secret-enum-types.c.template
13+++ libsecret-0.20.4/libsecret/secret-enum-types.c.template
14@@ -23,8 +23,8 @@
15 /*** END file-header ***/
16
17 /*** BEGIN file-production ***/
18-#include "@filename@"
19-/* enumerations from "@filename@" */
20+#include "@basename@"
21+/* enumerations from "@basename@" */
22 /*** END file-production ***/
23
24 /*** BEGIN value-header ***/
25Index: libsecret-0.20.4/libsecret/secret-enum-types.h.template
26===================================================================
27--- libsecret-0.20.4.orig/libsecret/secret-enum-types.h.template
28+++ libsecret-0.20.4/libsecret/secret-enum-types.h.template
29@@ -27,7 +27,7 @@ G_BEGIN_DECLS
30
31 /*** BEGIN file-production ***/
32
33-/* enumerations from "@filename@" */
34+/* enumerations from "@basename@" */
35 /*** END file-production ***/
36
37 /*** BEGIN value-header ***/
diff --git a/meta/recipes-gnome/libsecret/libsecret_0.20.4.bb b/meta/recipes-gnome/libsecret/libsecret_0.21.4.bb
index 287ac70f1e..88c3c73510 100644
--- a/meta/recipes-gnome/libsecret/libsecret_0.20.4.bb
+++ b/meta/recipes-gnome/libsecret/libsecret_0.21.4.bb
@@ -3,26 +3,23 @@ DESCRIPTION = "A GObject-based library for accessing the Secret Service API of \
3the freedesktop.org project, a cross-desktop effort to access passwords, \ 3the freedesktop.org project, a cross-desktop effort to access passwords, \
4tokens and other types of secrets. libsecret provides a convenient wrapper \ 4tokens and other types of secrets. libsecret provides a convenient wrapper \
5for these methods so consumers do not have to call the low-level DBus methods." 5for these methods so consumers do not have to call the low-level DBus methods."
6LICENSE = "LGPLv2.1" 6LICENSE = "LGPL-2.1-only"
7HOMEPAGE = "https://github.com/GNOME/libsecret" 7HOMEPAGE = "https://github.com/GNOME/libsecret"
8BUGTRACKER = "https://gitlab.gnome.org/GNOME/libsecret/issues" 8BUGTRACKER = "https://gitlab.gnome.org/GNOME/libsecret/issues"
9LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6" 9LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6"
10 10
11GNOMEBASEBUILDCLASS = "meson"
12 11
13inherit gnomebase gtk-doc vala gobject-introspection manpages 12inherit gnomebase gi-docgen vala gobject-introspection manpages
14 13
15DEPENDS += "glib-2.0 libgcrypt gettext-native" 14DEPENDS += "glib-2.0 libgcrypt gettext-native"
16 15
17SRC_URI += " file://determinism.patch" 16SRC_URI[archive.sha256sum] = "163d08d783be6d4ab9a979ceb5a4fecbc1d9660d3c34168c581301cd53912b20"
18
19SRC_URI[archive.sha256sum] = "325a4c54db320c406711bf2b55e5cb5b6c29823426aa82596a907595abb39d28"
20 17
21GTKDOC_MESON_OPTION = 'gtk_doc' 18GTKDOC_MESON_OPTION = 'gtk_doc'
22 19
23PACKAGECONFIG[manpages] = "-Dmanpage=true,-Dmanpage=false,libxslt-native xmlto-native" 20PACKAGECONFIG[manpages] = "-Dmanpage=true,-Dmanpage=false,libxslt-native xmlto-native"
24 21
25# http://errors.yoctoproject.org/Errors/Details/20228/ 22# http://errors.yoctoproject.org/Errors/Details/20228/
26ARM_INSTRUCTION_SET_armv4 = "arm" 23ARM_INSTRUCTION_SET:armv4 = "arm"
27ARM_INSTRUCTION_SET_armv5 = "arm" 24ARM_INSTRUCTION_SET:armv5 = "arm"
28ARM_INSTRUCTION_SET_armv6 = "arm" 25ARM_INSTRUCTION_SET:armv6 = "arm"
diff --git a/meta/recipes-gnome/libxmlb/libxmlb/0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch b/meta/recipes-gnome/libxmlb/libxmlb/0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch
new file mode 100644
index 0000000000..27081d8749
--- /dev/null
+++ b/meta/recipes-gnome/libxmlb/libxmlb/0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch
@@ -0,0 +1,32 @@
1From 8a1aa4c318b8dbe4c0c2b1c4968f867ea6641b32 Mon Sep 17 00:00:00 2001
2From: Markus Volk <f_l_k@t-online.de>
3Date: Sat, 16 Sep 2023 14:02:57 +0200
4Subject: [PATCH] xb-self-test.c: hardcode G_TEST_SRCDIR
5
6This avoids:
7 libxmlb-0.3.14-r0 do_package_qa: QA Issue: File
8 /usr/libexec/installed-tests/libxmlb/xb-self-test in package libxmlb-ptest
9 contains reference to TMPDIR [buildpaths]
10
11and also fixes the runtime for the ptest.
12
13Upstream-Status: Inappropriate [oe-specific]
14
15Signed-off-by: Markus Volk <f_l_k@t-online.de>
16---
17 src/xb-self-test.c | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-)
19
20diff --git a/src/xb-self-test.c b/src/xb-self-test.c
21index 1daca18..2e5b251 100644
22--- a/src/xb-self-test.c
23+++ b/src/xb-self-test.c
24@@ -2876,7 +2876,7 @@ xb_speed_func(void)
25 int
26 main(int argc, char **argv)
27 {
28- g_setenv("G_TEST_SRCDIR", SRCDIR, FALSE);
29+ g_setenv("G_TEST_SRCDIR", "/usr/libexec/installed-tests/libxmlb", FALSE);
30
31 g_test_init(&argc, &argv, NULL);
32
diff --git a/meta/recipes-gnome/libxmlb/libxmlb/run-ptest b/meta/recipes-gnome/libxmlb/libxmlb/run-ptest
new file mode 100644
index 0000000000..6d0bb95d3a
--- /dev/null
+++ b/meta/recipes-gnome/libxmlb/libxmlb/run-ptest
@@ -0,0 +1,3 @@
1#! /bin/sh
2
3gnome-desktop-testing-runner libxmlb
diff --git a/meta/recipes-gnome/libxmlb/libxmlb_0.3.18.bb b/meta/recipes-gnome/libxmlb/libxmlb_0.3.18.bb
new file mode 100644
index 0000000000..10ceab0721
--- /dev/null
+++ b/meta/recipes-gnome/libxmlb/libxmlb_0.3.18.bb
@@ -0,0 +1,25 @@
1SUMMARY = "A library to help create and query binary XML blobs"
2HOMEPAGE = "https://github.com/hughsie/libxmlb"
3LICENSE = "LGPL-2.1-only"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
5
6SRC_URI = " \
7 git://github.com/hughsie/libxmlb.git;branch=main;protocol=https \
8 file://0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch \
9 file://run-ptest \
10"
11SRCREV = "59cf2e0bf3c4d0905a32e32828d6100784993621"
12S = "${WORKDIR}/git"
13
14DEPENDS = "glib-2.0 xz zstd"
15
16inherit gobject-introspection gtk-doc meson ptest-gnome lib_package pkgconfig
17
18PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
19PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false"
20
21GTKDOC_MESON_OPTION = "gtkdoc"
22
23FILES:${PN} += "${datadir}"
24
25BBCLASSEXTEND = "native"