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_3.38.2.bb20
-rw-r--r--meta/recipes-gnome/epiphany/epiphany_46.0.bb43
-rw-r--r--meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch9
-rw-r--r--meta/recipes-gnome/epiphany/files/distributor.patch24
-rw-r--r--meta/recipes-gnome/epiphany/files/migrator.patch32
-rw-r--r--meta/recipes-gnome/gcr/gcr_3.38.0.bb30
-rw-r--r--meta/recipes-gnome/gcr/gcr_4.2.1.bb58
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-a-couple-of-decisions-around-cross-compilation.patch38
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch28
-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/0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch94
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0004-Do-not-run-tests-when-building.patch39
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch28
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2020-29385.patch55
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch22
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/missing-test-data.patch30
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.10.bb (renamed from meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb)70
-rw-r--r--meta/recipes-gnome/gi-docgen/gi-docgen_2023.3.bb21
-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.38.0.bb42
-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/0001-meson.build-exclude-girepo_dep-if-introspection-data.patch25
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb (renamed from meta/recipes-gnome/gobject-introspection/gobject-introspection_1.66.1.bb)65
-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_3.38.0.bb)7
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3.inc90
-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.24.bb)9
-rw-r--r--meta/recipes-gnome/gtk+/gtk4_4.14.1.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.bb (renamed from meta/recipes-gnome/gtk-doc/gtk-doc_1.33.1.bb)25
-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/0001-json-glib-json-enum-types.c.in-fix-build-reproducibi.patch30
-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.0.bb)19
-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.38.0.bb)5
-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_234.bb)24
-rw-r--r--meta/recipes-gnome/libhandy/libhandy_1.0.2.bb20
-rw-r--r--meta/recipes-gnome/libhandy/libhandy_1.8.3.bb27
-rw-r--r--meta/recipes-gnome/libnotify/libnotify_0.7.9.bb28
-rw-r--r--meta/recipes-gnome/libnotify/libnotify_0.8.3.bb35
-rw-r--r--meta/recipes-gnome/libportal/libportal_0.3.bb13
-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.bb49
-rw-r--r--meta/recipes-gnome/librsvg/librsvg_2.57.1.bb79
-rw-r--r--meta/recipes-gnome/libsecret/libsecret_0.21.4.bb (renamed from meta/recipes-gnome/libsecret/libsecret_0.20.4.bb)14
-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.17.bb25
62 files changed, 2218 insertions, 2039 deletions
diff --git a/meta/recipes-gnome/epiphany/epiphany_3.38.2.bb b/meta/recipes-gnome/epiphany/epiphany_3.38.2.bb
deleted file mode 100644
index 70148c96d8..0000000000
--- a/meta/recipes-gnome/epiphany/epiphany_3.38.2.bb
+++ /dev/null
@@ -1,20 +0,0 @@
1SUMMARY = "WebKit based web browser for GNOME"
2BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany"
3LICENSE = "GPLv3+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
5
6DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr \
7 gsettings-desktop-schemas libxml2-native \
8 glib-2.0 glib-2.0-native json-glib libdazzle libhandy libportal"
9
10GNOMEBASEBUILDCLASS = "meson"
11inherit gnomebase gsettings features_check upstream-version-is-even gettext mime-xdg
12REQUIRED_DISTRO_FEATURES = "x11 opengl"
13
14SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
15 file://0002-help-meson.build-disable-the-use-of-yelp.patch \
16 "
17SRC_URI[archive.sha256sum] = "8b05f2bcc1e80ecf4a10f6f01b3285087eb4cbdf5741dffb8c0355715ef5116d"
18
19FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo"
20RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas"
diff --git a/meta/recipes-gnome/epiphany/epiphany_46.0.bb b/meta/recipes-gnome/epiphany/epiphany_46.0.bb
new file mode 100644
index 0000000000..9052fe170b
--- /dev/null
+++ b/meta/recipes-gnome/epiphany/epiphany_46.0.bb
@@ -0,0 +1,43 @@
1SUMMARY = "WebKit based web browser for GNOME"
2DESCRIPTION = "Epiphany is an open source web browser for the Linux desktop environment. \
3It provides a simple and easy-to-use internet browsing experience."
4HOMEPAGE = "https://wiki.gnome.org/Apps/Web"
5BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany"
6LICENSE = "GPL-3.0-or-later"
7LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
8
9DEPENDS = " \
10 webkitgtk \
11 gcr \
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 "
25
26inherit gnomebase gsettings features_check gettext mime-xdg gtk-icon-cache
27REQUIRED_DISTRO_FEATURES = "x11 opengl"
28
29SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@oe.utils.trim_version("${PV}", 1)}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
30 file://0002-help-meson.build-disable-the-use-of-yelp.patch \
31 file://migrator.patch \
32 file://distributor.patch \
33 "
34SRC_URI[archive.sha256sum] = "f4348f2cf51c07c0c106d130172d4d23f2cd4068771e1de007b758ca2ade5660"
35
36# Developer mode enables debugging
37PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false"
38
39FILES:${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo"
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 118b5d1825..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 3725c254f1d1d8204fa299e71c1e2bfd0ff6a634 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,17 +7,16 @@ 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(-)
14 13
15diff --git a/help/meson.build b/help/meson.build 14diff --git a/help/meson.build b/help/meson.build
16index 484860c..d9b2e80 100644 15index ff324dd..f5e421d 100644
17--- a/help/meson.build 16--- a/help/meson.build
18+++ b/help/meson.build 17+++ b/help/meson.build
19@@ -32,7 +32,7 @@ help_media = [ 18@@ -31,7 +31,7 @@ help_media = [
20 'media/epiphany-private-3-36.png' 19 'media/org.gnome.Epiphany.svg'
21 ] 20 ]
22 21
23-gnome.yelp(meson.project_name(), 22-gnome.yelp(meson.project_name(),
diff --git a/meta/recipes-gnome/epiphany/files/distributor.patch b/meta/recipes-gnome/epiphany/files/distributor.patch
new file mode 100644
index 0000000000..a2800eb62d
--- /dev/null
+++ b/meta/recipes-gnome/epiphany/files/distributor.patch
@@ -0,0 +1,24 @@
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.
6
7Upstream-Status: Pending
8RP 2021/2/26
9---
10 meson.build | 1 +
11 1 file changed, 1 insertion(+)
12
13diff --git a/meson.build b/meson.build
14index e416cc7..ee5f7b1 100644
15--- a/meson.build
16+++ b/meson.build
17@@ -15,6 +15,7 @@ if r.returncode() == 0
18 else
19 distributor_name = 'GNOME Web'
20 endif
21+distributor_name = 'OpenEmbedded'
22
23 prefix = get_option('prefix')
24 datadir = join_paths(prefix, get_option('datadir'))
diff --git a/meta/recipes-gnome/epiphany/files/migrator.patch b/meta/recipes-gnome/epiphany/files/migrator.patch
new file mode 100644
index 0000000000..1b4404c8ca
--- /dev/null
+++ b/meta/recipes-gnome/epiphany/files/migrator.patch
@@ -0,0 +1,32 @@
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
6We don't want to encide BUILD_ROOT into target packages. This is used
7for build time tests but in our case those would be on target anyway
8do use the target paths.
9
10Upstream-Status: Pending
11RP 2021/2/25
12---
13 lib/ephy-profile-utils.c | 4 ++--
14 1 file changed, 2 insertions(+), 2 deletions(-)
15
16diff --git a/lib/ephy-profile-utils.c b/lib/ephy-profile-utils.c
17index a2f6181..5218077 100644
18--- a/lib/ephy-profile-utils.c
19+++ b/lib/ephy-profile-utils.c
20@@ -130,10 +130,10 @@ ephy_profile_utils_do_migration (const char *profile_directory,
21 argv[i++] = NULL;
22
23 #if DEVELOPER_MODE
24- argv[0] = BUILD_ROOT "/src/" EPHY_PROFILE_MIGRATOR;
25+ argv[0] = PKGLIBEXECDIR "/" EPHY_PROFILE_MIGRATOR;
26 #else
27 if (debug)
28- argv[0] = BUILD_ROOT "/src/" EPHY_PROFILE_MIGRATOR;
29+ argv[0] = PKGLIBEXECDIR "/" EPHY_PROFILE_MIGRATOR;
30 #endif
31
32 g_spawn_sync (NULL, (char **)argv, envp, G_SPAWN_SEARCH_PATH,
diff --git a/meta/recipes-gnome/gcr/gcr_3.38.0.bb b/meta/recipes-gnome/gcr/gcr_3.38.0.bb
deleted file mode 100644
index 49e8f1848b..0000000000
--- a/meta/recipes-gnome/gcr/gcr_3.38.0.bb
+++ /dev/null
@@ -1,30 +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 = "gtk+3 p11-kit glib-2.0 libgcrypt gnupg-native \
12 ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}"
13
14GNOMEBASEBUILDCLASS = "meson"
15GTKDOC_MESON_OPTION = "gtk_doc"
16inherit gnomebase gtk-icon-cache gtk-doc features_check upstream-version-is-even vala gobject-introspection gettext mime mime-xdg
17# depends on gtk+3, but also x11 through gtk+-x11
18REQUIRED_DISTRO_FEATURES = "x11"
19
20SRC_URI[archive.sha256sum] = "a64cc7b65757fc2cd16de1708d132a16d05cd1f62c6eba436d56fe45d4ba27e1"
21
22FILES_${PN} += " \
23 ${datadir}/dbus-1 \
24 ${datadir}/gcr-3 \
25"
26
27# http://errors.yoctoproject.org/Errors/Details/20229/
28ARM_INSTRUCTION_SET_armv4 = "arm"
29ARM_INSTRUCTION_SET_armv5 = "arm"
30ARM_INSTRUCTION_SET_armv6 = "arm"
diff --git a/meta/recipes-gnome/gcr/gcr_4.2.1.bb b/meta/recipes-gnome/gcr/gcr_4.2.1.bb
new file mode 100644
index 0000000000..26dc1d1bc6
--- /dev/null
+++ b/meta/recipes-gnome/gcr/gcr_4.2.1.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] = "ed783b5c80373cd058c02ea9e3e2a64e558599ca190a5abd598122e479967de5"
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-Fix-a-couple-of-decisions-around-cross-compilation.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-a-couple-of-decisions-around-cross-compilation.patch
deleted file mode 100644
index e461404918..0000000000
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-a-couple-of-decisions-around-cross-compilation.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1From be8a47e0c21e5577d4f5669d339dfec6299b25be Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Thu, 14 Feb 2019 18:06:25 +0100
4Subject: [PATCH] Generate loaders.cache using a native tool when
5 cross-compiling
6
7Otherwise meson would attempt to run a target binary.
8
9Upstream-Status: Pending
10Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11
12---
13 gdk-pixbuf/meson.build | 12 ++++++++++--
14 1 file changed, 10 insertions(+), 2 deletions(-)
15
16diff --git a/gdk-pixbuf/meson.build b/gdk-pixbuf/meson.build
17index 5cddbec..78c8bd3 100644
18--- a/gdk-pixbuf/meson.build
19+++ b/gdk-pixbuf/meson.build
20@@ -324,8 +324,16 @@ if not meson.is_cross_build()
21 build_by_default: true)
22 loaders_dep = declare_dependency(sources: [ loaders_cache ])
23 else
24- loaders_cache = []
25- loaders_dep = declare_dependency()
26+ loaders_cache = custom_target('loaders.cache',
27+ output: 'loaders.cache',
28+ capture: true,
29+ command: [
30+ 'gdk-pixbuf-query-loaders',
31+ dynamic_loaders,
32+ ],
33+ depends: dynamic_loaders_dep,
34+ build_by_default: true)
35+ loaders_dep = declare_dependency(sources: [ loaders_cache ])
36 endif
37
38 pkgconfig = import('pkgconfig')
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch
deleted file mode 100644
index 110b32a490..0000000000
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1From 8c7ced988def52654946458a3779e383b27f14f7 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Thu, 14 Feb 2019 17:56:10 +0100
4Subject: [PATCH] Work-around thumbnailer cross-compile failure
5
6Install gdk-pixbuf-print-mime-types that's needed for thumbnail
7metadata generation.
8
9The upstream issue is https://bugzilla.gnome.org/show_bug.cgi?id=779057
10
11Upstream-Status: Inappropriate [workaround]
12Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
13---
14 thumbnailer/meson.build | 1 +
15 1 file changed, 1 insertion(+)
16
17diff --git a/thumbnailer/meson.build b/thumbnailer/meson.build
18index e801144..aaafec8 100644
19--- a/thumbnailer/meson.build
20+++ b/thumbnailer/meson.build
21@@ -10,6 +10,7 @@ executable('gdk-pixbuf-thumbnailer',
22 gdk_pixbuf_print_mime_types = executable('gdk-pixbuf-print-mime-types',
23 'gdk-pixbuf-print-mime-types.c',
24 c_args: common_cflags,
25+ install: true,
26 dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ])
27
28 custom_target('thumbnailer',
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..7250fa3f62
--- /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 9d3b374e75692da3d1d05344a1693c85a3098f47 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 8a16c8f..7c8b20f 100644
23--- a/meson.build
24+++ b/meson.build
25@@ -369,10 +369,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 28c2525..c45e765 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@@ -166,9 +166,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/0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch
deleted file mode 100644
index a9c7600eb3..0000000000
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch
+++ /dev/null
@@ -1,94 +0,0 @@
1From 2d1b65bd1272ad63b7fbd4babd9a8e8c296d15b5 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 22 Feb 2019 13:22:06 +0100
4Subject: [PATCH] (target only) Work-around thumbnailer and pixdata
5 cross-compile failure
6
7Use native gdk-pixbuf-print-mime-types and gdk-pixbuf-pixdata
8when generating the thumbnail metadata and resources.
9
10This works but the mime types will come from native
11loader.cache (which will only contain in-tree loaders), not from the
12target loader.cache.
13
14The upstream issue is https://bugzilla.gnome.org/show_bug.cgi?id=779057
15
16Upstream-Status: Inappropriate [workaround]
17Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
18
19---
20 build-aux/gen-thumbnailer.py | 2 --
21 tests/meson.build | 11 +++++++++--
22 thumbnailer/meson.build | 5 +----
23 3 files changed, 10 insertions(+), 8 deletions(-)
24
25diff --git a/build-aux/gen-thumbnailer.py b/build-aux/gen-thumbnailer.py
26index 05ac821..c5b99ab 100644
27--- a/build-aux/gen-thumbnailer.py
28+++ b/build-aux/gen-thumbnailer.py
29@@ -20,8 +20,6 @@ argparser.add_argument('output', help='Output file')
30 args = argparser.parse_args()
31
32 newenv = os.environ.copy()
33-newenv['GDK_PIXBUF_PIXDATA'] = args.pixdata
34-newenv['GDK_PIXBUF_MODULE_FILE'] = args.loaders
35 # 'nt': NT-based Windows, see https://docs.python.org/3/library/os.html
36 if os.name == 'nt':
37 gdk_pixbuf_dll_buildpath = os.path.dirname(args.pixdata)
38diff --git a/tests/meson.build b/tests/meson.build
39index 8ed7cc1..e011b77 100644
40--- a/tests/meson.build
41+++ b/tests/meson.build
42@@ -1,12 +1,19 @@
43 # Resources; we cannot use gnome.compile_resources() here, because we need to
44 # override the environment in order to use the utilities we just built instead
45 # of the system ones
46+
47+if not meson.is_cross_build()
48+pixdata_binary = gdk_pixbuf_pixdata.full_path()
49+else
50+pixdata_binary = 'gdk-pixbuf-pixdata'
51+endif
52+
53 resources_c = custom_target('resources.c',
54 input: 'resources.gresource.xml',
55 output: 'resources.c',
56 command: [
57 gen_resources,
58- '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
59+ '--pixdata=@0@'.format(pixdata_binary),
60 '--loaders=@0@'.format(loaders_cache.full_path()),
61 '--sourcedir=@0@'.format(meson.current_source_dir()),
62 '--source',
63@@ -24,7 +31,7 @@ resources_h = custom_target('resources.h',
64 output: 'resources.h',
65 command: [
66 gen_resources,
67- '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
68+ '--pixdata=@0@'.format(pixdata_binary),
69 '--loaders=@0@'.format(loaders_cache.full_path()),
70 '--sourcedir=@0@'.format(meson.current_source_dir()),
71 '--header',
72diff --git a/thumbnailer/meson.build b/thumbnailer/meson.build
73index aaafec8..71bd61b 100644
74--- a/thumbnailer/meson.build
75+++ b/thumbnailer/meson.build
76@@ -18,9 +18,7 @@ custom_target('thumbnailer',
77 output: 'gdk-pixbuf-thumbnailer.thumbnailer',
78 command: [
79 gen_thumbnailer,
80- '--printer=@0@'.format(gdk_pixbuf_print_mime_types.full_path()),
81- '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
82- '--loaders=@0@'.format(loaders_cache.full_path()),
83+ '--printer=gdk-pixbuf-print-mime-types',
84 '--bindir=@0@'.format(gdk_pixbuf_bindir),
85 '@INPUT@',
86 '@OUTPUT@',
87@@ -28,7 +26,6 @@ custom_target('thumbnailer',
88 depends: [
89 gdk_pixbuf_print_mime_types,
90 gdk_pixbuf_pixdata,
91- loaders_cache,
92 ],
93 install: true,
94 install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers'))
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0004-Do-not-run-tests-when-building.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0004-Do-not-run-tests-when-building.patch
deleted file mode 100644
index 96c546f271..0000000000
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0004-Do-not-run-tests-when-building.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From 3c4a6c147ae8a0962ba9194373d8a41d14eed44f Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 22 Feb 2019 13:23:55 +0100
4Subject: [PATCH] Do not run tests when building
5
6Upstream-Status: Inappropriate [cross-compile specific]
7Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
8---
9 tests/meson.build | 17 -----------------
10 1 file changed, 17 deletions(-)
11
12diff --git a/tests/meson.build b/tests/meson.build
13index 4fa3fbc..6ef7884 100644
14--- a/tests/meson.build
15+++ b/tests/meson.build
16@@ -138,23 +138,6 @@ foreach t: installed_tests
17 install_dir: installed_test_bindir,
18 )
19
20- # Two particularly slow tests
21- if test_suites.contains('slow')
22- timeout = 300
23- else
24- timeout = 30
25- endif
26-
27- test(test_name, test_bin,
28- suite: test_suites,
29- args: [ '-k', '--tap' ],
30- env: [
31- 'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
32- 'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
33- 'GDK_PIXBUF_MODULE_FILE=@0@'.format(loaders_cache.full_path()),
34- ],
35- timeout: timeout,
36- )
37 endforeach
38
39 executable('pixbuf-read',
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch
deleted file mode 100644
index 0fe13a387a..0000000000
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1From 1a532e090c558a830de9503f56e23414e880bb95 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Wed, 5 Jun 2019 14:17:55 +0200
4Subject: [PATCH] Build thumbnailer and tests also in cross builds.
5
6Upstream-Status: Inappropriate [relies on oe-core specific hacks]
7Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
8---
9 meson.build | 6 ++----
10 1 file changed, 2 insertions(+), 4 deletions(-)
11
12diff --git a/meson.build b/meson.build
13index d104cea..7acb88a 100644
14--- a/meson.build
15+++ b/meson.build
16@@ -397,10 +397,8 @@ endif
17 # i18n
18 subdir('po')
19
20-if not meson.is_cross_build()
21- subdir('tests')
22- subdir('thumbnailer')
23-endif
24+subdir('tests')
25+subdir('thumbnailer')
26
27 # Documentation
28 subdir('docs')
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2020-29385.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2020-29385.patch
deleted file mode 100644
index 3fef2bc1eb..0000000000
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2020-29385.patch
+++ /dev/null
@@ -1,55 +0,0 @@
1From bdd3acbd48a575d418ba6bf1b32d7bda2fae1c81 Mon Sep 17 00:00:00 2001
2From: Robert Ancell <robert.ancell@canonical.com>
3Date: Mon, 30 Nov 2020 12:26:12 +1300
4Subject: [PATCH 02/13] gif: Fix LZW decoder accepting invalid LZW code.
5
6The code value after a reset wasn't being validated, which means we would
7accept invalid codes. This could cause an infinite loop in the decoder.
8
9Fixes CVE-2020-29385
10
11Fixes https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/issues/164
12
13Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/commit/bdd3acbd48a575d418ba6bf1b32d7bda2fae1c81]
14CVE: CVE-2020-29385
15Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
16
17---
18 gdk-pixbuf/lzw.c | 13 +++++++------
19 1 files changed, 7 insertions(+), 6 deletions(-)
20 create mode 100644 tests/test-images/fail/hang_114.gif
21
22diff --git a/gdk-pixbuf/lzw.c b/gdk-pixbuf/lzw.c
23index 9e052a6f7..105daf2b1 100644
24--- a/gdk-pixbuf/lzw.c
25+++ b/gdk-pixbuf/lzw.c
26@@ -195,19 +195,20 @@ lzw_decoder_feed (LZWDecoder *self,
27 if (self->last_code != self->clear_code && self->code_table_size < MAX_CODES) {
28 if (self->code < self->code_table_size)
29 add_code (self, self->code);
30- else if (self->code == self->code_table_size)
31+ else
32 add_code (self, self->last_code);
33- else {
34- /* Invalid code received - just stop here */
35- self->last_code = self->eoi_code;
36- return output_length;
37- }
38
39 /* When table is full increase code size */
40 if (self->code_table_size == (1 << self->code_size) && self->code_size < LZW_CODE_MAX)
41 self->code_size++;
42 }
43
44+ /* Invalid code received - just stop here */
45+ if (self->code >= self->code_table_size) {
46+ self->last_code = self->eoi_code;
47+ return output_length;
48+ }
49+
50 /* Convert codeword into indexes */
51 n_written += write_indexes (self, output + n_written, output_length - n_written);
52 }
53--
542.25.1
55
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..23c68a0923 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 b511bd1efb43ffc49c753e309717a242ec686ef1 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,7 +6,7 @@ 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 11
12--- 12---
@@ -14,10 +14,10 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
14 1 file changed, 15 insertions(+), 4 deletions(-) 14 1 file changed, 15 insertions(+), 4 deletions(-)
15 15
16diff --git a/gdk-pixbuf/queryloaders.c b/gdk-pixbuf/queryloaders.c 16diff --git a/gdk-pixbuf/queryloaders.c b/gdk-pixbuf/queryloaders.c
17index 312aa78..b813d99 100644 17index 1d39b44..2b00815 100644
18--- a/gdk-pixbuf/queryloaders.c 18--- a/gdk-pixbuf/queryloaders.c
19+++ b/gdk-pixbuf/queryloaders.c 19+++ b/gdk-pixbuf/queryloaders.c
20@@ -212,7 +212,7 @@ write_loader_info (GString *contents, const char *path, GdkPixbufFormat *info) 20@@ -216,7 +216,7 @@ write_loader_info (GString *contents, const char *path, GdkPixbufFormat *info)
21 g_string_append_c (contents, '\n'); 21 g_string_append_c (contents, '\n');
22 } 22 }
23 23
@@ -26,7 +26,7 @@ index 312aa78..b813d99 100644
26 query_module (GString *contents, const char *dir, const char *file) 26 query_module (GString *contents, const char *dir, const char *file)
27 { 27 {
28 char *path; 28 char *path;
29@@ -221,6 +221,7 @@ query_module (GString *contents, const char *dir, const char *file) 29@@ -225,6 +225,7 @@ query_module (GString *contents, const char *dir, const char *file)
30 void (*fill_vtable) (GdkPixbufModule *module); 30 void (*fill_vtable) (GdkPixbufModule *module);
31 gpointer fill_info_ptr; 31 gpointer fill_info_ptr;
32 gpointer fill_vtable_ptr; 32 gpointer fill_vtable_ptr;
@@ -34,7 +34,7 @@ index 312aa78..b813d99 100644
34 34
35 if (g_path_is_absolute (file)) 35 if (g_path_is_absolute (file))
36 path = g_strdup (file); 36 path = g_strdup (file);
37@@ -270,10 +271,13 @@ query_module (GString *contents, const char *dir, const char *file) 37@@ -274,10 +275,13 @@ query_module (GString *contents, const char *dir, const char *file)
38 g_module_error()); 38 g_module_error());
39 else 39 else
40 g_fprintf (stderr, "Cannot load loader %s\n", path); 40 g_fprintf (stderr, "Cannot load loader %s\n", path);
@@ -47,8 +47,8 @@ index 312aa78..b813d99 100644
47+ return ret; 47+ return ret;
48 } 48 }
49 49
50 #ifdef G_OS_WIN32 50 #if defined(G_OS_WIN32) && defined(GDK_PIXBUF_RELOCATABLE)
51@@ -314,6 +318,7 @@ int main (int argc, char **argv) 51@@ -318,6 +322,7 @@ int main (int argc, char **argv)
52 gint first_file = 1; 52 gint first_file = 1;
53 GFile *pixbuf_libdir_file; 53 GFile *pixbuf_libdir_file;
54 gchar *pixbuf_libdir; 54 gchar *pixbuf_libdir;
@@ -56,7 +56,7 @@ index 312aa78..b813d99 100644
56 56
57 #ifdef G_OS_WIN32 57 #ifdef G_OS_WIN32
58 gchar *libdir; 58 gchar *libdir;
59@@ -452,7 +457,9 @@ int main (int argc, char **argv) 59@@ -456,7 +461,9 @@ int main (int argc, char **argv)
60 } 60 }
61 modules = g_list_sort (modules, (GCompareFunc)strcmp); 61 modules = g_list_sort (modules, (GCompareFunc)strcmp);
62 for (l = modules; l != NULL; l = l->next) 62 for (l = modules; l != NULL; l = l->next)
@@ -67,7 +67,7 @@ index 312aa78..b813d99 100644
67 g_list_free_full (modules, g_free); 67 g_list_free_full (modules, g_free);
68 g_free (moduledir); 68 g_free (moduledir);
69 #else 69 #else
70@@ -468,7 +475,8 @@ int main (int argc, char **argv) 70@@ -472,7 +479,8 @@ int main (int argc, char **argv)
71 infilename = g_locale_to_utf8 (infilename, 71 infilename = g_locale_to_utf8 (infilename,
72 -1, NULL, NULL, NULL); 72 -1, NULL, NULL, NULL);
73 #endif 73 #endif
@@ -77,7 +77,7 @@ index 312aa78..b813d99 100644
77 } 77 }
78 g_free (cwd); 78 g_free (cwd);
79 } 79 }
80@@ -486,5 +494,8 @@ int main (int argc, char **argv) 80@@ -490,5 +498,8 @@ int main (int argc, char **argv)
81 81
82 g_free (pixbuf_libdir); 82 g_free (pixbuf_libdir);
83 83
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/missing-test-data.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/missing-test-data.patch
deleted file mode 100644
index 6c758fd61c..0000000000
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/missing-test-data.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1Upstream-Status: Backport
2Signed-off-by: Ross Burton <ross.burton@intel.com>
3
4From d8d231c01ef2e59856da8a5c26ace955e5f29370 Mon Sep 17 00:00:00 2001
5From: Ross Burton <ross.burton@intel.com>
6Date: Mon, 25 Nov 2019 17:05:46 +0000
7Subject: [PATCH] tests: install circular-table.gif
8
9This test data was added for the pixbuf-gif-circular-table test (added October
102018 in 0b9d004) but because the file was never actually installed the installed
11test suite never passes.
12---
13 tests/meson.build | 1 +
14 1 file changed, 1 insertion(+)
15
16diff --git a/tests/meson.build b/tests/meson.build
17index 5116fc2b9..80ed3e8b2 100644
18--- a/tests/meson.build
19+++ b/tests/meson.build
20@@ -97,6 +97,7 @@ test_data = [
21 'bug775693.pixdata',
22 'bug775229.pixdata',
23 'aero.gif',
24+ 'circular-table.gif'
25 ]
26
27 installed_test_bindir = join_paths(gdk_pixbuf_libexecdir, 'installed-tests', meson.project_name())
28--
292.20.1
30
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.10.bb
index 16708fd581..cca89a9059 100644
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb
+++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.10.bb
@@ -5,71 +5,59 @@ 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"
16 16
17MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" 17MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
18 18
19SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ 19SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
20 file://run-ptest \ 20 file://run-ptest \
21 file://fatal-loader.patch \ 21 file://fatal-loader.patch \
22 file://0001-Work-around-thumbnailer-cross-compile-failure.patch \ 22 file://0001-meson.build-allow-a-subset-of-tests-in-cross-compile.patch \
23 file://0001-Fix-a-couple-of-decisions-around-cross-compilation.patch \
24 file://0004-Do-not-run-tests-when-building.patch \
25 file://0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch \
26 file://missing-test-data.patch \
27 file://CVE-2020-29385.patch \
28 " 23 "
29 24
30SRC_URI_append_class-target = " \ 25SRC_URI[sha256sum] = "ee9b6c75d13ba096907a2e3c6b27b61bcd17f5c7ebeab5a5b439d2f2e39fe44b"
31 file://0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch \
32 "
33SRC_URI_append_class-nativesdk = " \
34 file://0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch \
35 "
36 26
37SRC_URI[md5sum] = "05eb1ebc258ba905f1c8644ef49de064" 27inherit meson pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gi-docgen lib_package
38SRC_URI[sha256sum] = "1582595099537ca8ff3b99c6804350b4c058bb8ad67411bbaae024ee7cead4e6"
39 28
40inherit meson pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gtk-doc lib_package 29GIR_MESON_OPTION = 'introspection'
41 30GIR_MESON_ENABLE_FLAG = "enabled"
42GIR_MESON_OPTION = 'gir' 31GIR_MESON_DISABLE_FLAG = "disabled"
43 32
44LIBV = "2.10.0" 33LIBV = "2.10.0"
45 34
46GDK_PIXBUF_LOADERS ?= "png jpeg" 35GDK_PIXBUF_LOADERS ?= "png jpeg"
47 36
48PACKAGECONFIG = "${GDK_PIXBUF_LOADERS} \ 37PACKAGECONFIG = "${GDK_PIXBUF_LOADERS} \
49 ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
50 ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" 38 ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
51PACKAGECONFIG_class-native = "${GDK_PIXBUF_LOADERS}" 39PACKAGECONFIG:class-native = "${GDK_PIXBUF_LOADERS}"
52 40
53PACKAGECONFIG[png] = "-Dpng=true,-Dpng=false,libpng" 41PACKAGECONFIG[png] = "-Dpng=enabled,-Dpng=disabled,libpng"
54PACKAGECONFIG[jpeg] = "-Djpeg=true,-Djpeg=false,jpeg" 42PACKAGECONFIG[jpeg] = "-Djpeg=enabled,-Djpeg=disabled,jpeg"
55PACKAGECONFIG[tiff] = "-Dtiff=true,-Dtiff=false,tiff" 43PACKAGECONFIG[tiff] = "-Dtiff=enabled,-Dtiff=disabled,tiff"
56PACKAGECONFIG[jpeg2000] = "-Djasper=true,-Djasper=false,jasper"
57PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false" 44PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false"
58PACKAGECONFIG[x11] = "-Dx11=true,-Dx11=false,virtual/libx11" 45
46EXTRA_OEMESON = "-Dman=false"
59 47
60PACKAGES =+ "${PN}-xlib" 48PACKAGES =+ "${PN}-xlib"
61 49
62# For GIO image type sniffing 50# For GIO image type sniffing
63RDEPENDS_${PN} = "shared-mime-info" 51RDEPENDS:${PN} = "shared-mime-info"
64 52
65FILES_${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}" 53FILES:${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}"
66ALLOW_EMPTY_${PN}-xlib = "1" 54ALLOW_EMPTY:${PN}-xlib = "1"
67 55
68FILES_${PN} += "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" 56FILES:${PN} += "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
69 57
70FILES_${PN}-bin += "${datadir}/thumbnailers/gdk-pixbuf-thumbnailer.thumbnailer" 58FILES:${PN}-bin += "${datadir}/thumbnailers/gdk-pixbuf-thumbnailer.thumbnailer"
71 59
72FILES_${PN}-dev += " \ 60FILES:${PN}-dev += " \
73 ${bindir}/gdk-pixbuf-csource \ 61 ${bindir}/gdk-pixbuf-csource \
74 ${bindir}/gdk-pixbuf-pixdata \ 62 ${bindir}/gdk-pixbuf-pixdata \
75 ${bindir}/gdk-pixbuf-print-mime-types \ 63 ${bindir}/gdk-pixbuf-print-mime-types \
@@ -78,9 +66,9 @@ FILES_${PN}-dev += " \
78" 66"
79 67
80PACKAGES_DYNAMIC += "^gdk-pixbuf-loader-.*" 68PACKAGES_DYNAMIC += "^gdk-pixbuf-loader-.*"
81PACKAGES_DYNAMIC_class-native = "" 69PACKAGES_DYNAMIC:class-native = ""
82 70
83python populate_packages_prepend () { 71python populate_packages:prepend () {
84 postinst_pixbufloader = d.getVar("postinst_pixbufloader") 72 postinst_pixbufloader = d.getVar("postinst_pixbufloader")
85 73
86 loaders_root = d.expand('${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders') 74 loaders_root = d.expand('${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders')
@@ -90,22 +78,24 @@ python populate_packages_prepend () {
90 78
91 # 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
92 # dependencies of the ptest package. 80 # dependencies of the ptest package.
93 d.appendVar("RDEPENDS_%s-ptest" % d.getVar('PN'), " " + packages) 81 d.appendVar("RDEPENDS:%s-ptest" % d.getVar('PN'), " " + packages)
94} 82}
95 83
96do_install_append() { 84do_install:append() {
97 # 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
98 # in multilib builds. 86 # in multilib builds.
99 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/
100 88
101} 89}
102 90
103# Remove a bad fuzzing attempt that sporadically fails without a way to reproduce
104do_install_ptest() { 91do_install_ptest() {
92 # Remove a bad fuzzing attempt that sporadically fails without a way to reproduce
105 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
106} 96}
107 97
108do_install_append_class-native() { 98do_install:append:class-native() {
109 find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \; 99 find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \;
110 100
111 create_wrapper ${D}/${bindir}/gdk-pixbuf-csource \ 101 create_wrapper ${D}/${bindir}/gdk-pixbuf-csource \
@@ -116,10 +106,6 @@ do_install_append_class-native() {
116 XDG_DATA_DIRS=${STAGING_DATADIR} \ 106 XDG_DATA_DIRS=${STAGING_DATADIR} \
117 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
118 108
119 create_wrapper ${D}/${bindir}/gdk-pixbuf-print-mime-types \
120 XDG_DATA_DIRS=${STAGING_DATADIR} \
121 GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache
122
123 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 \
124 XDG_DATA_DIRS=${STAGING_DATADIR} \ 110 XDG_DATA_DIRS=${STAGING_DATADIR} \
125 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_2023.3.bb b/meta/recipes-gnome/gi-docgen/gi-docgen_2023.3.bb
new file mode 100644
index 0000000000..54d7ef7513
--- /dev/null
+++ b/meta/recipes-gnome/gi-docgen/gi-docgen_2023.3.bb
@@ -0,0 +1,21 @@
1SUMMARY = "Documentation tool for GObject-based libraries"
2DESCRIPTION = "GI-DocGen is a document generator for GObject-based libraries. GObject is \
3the base type system of the GNOME project. GI-Docgen reuses the \
4introspection data generated by GObject-based libraries to generate the API \
5reference of these libraries, as well as other ancillary documentation."
6HOMEPAGE = "https://gnome.pages.gitlab.gnome.org/gi-docgen/"
7
8LICENSE = "GPL-3.0-or-later & Apache-2.0"
9LIC_FILES_CHKSUM = "file://gi-docgen.py;beginline=1;endline=5;md5=2dc0f1f01202478cfe813c0e7f80b326"
10
11SRC_URI = "git://gitlab.gnome.org/GNOME/gi-docgen.git;protocol=https;branch=main"
12
13SRCREV = "96f2e9b93e1d8a5338eb05b87fd879856ab7b3cc"
14
15S = "${WORKDIR}/git"
16
17inherit setuptools3
18
19RDEPENDS:${PN} += "python3-asyncio python3-core python3-jinja2 python3-json python3-markdown python3-markupsafe python3-pygments python3-toml python3-typogrify python3-xml"
20
21BBCLASSEXTEND = "native nativesdk"
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.38.0.bb b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb
deleted file mode 100644
index ff557978dc..0000000000
--- a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb
+++ /dev/null
@@ -1,42 +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 upstream-version-is-even
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.patch \
16 file://0001-Run-installation-commands-as-shell-jobs.patch \
17 "
18
19SRC_URI[sha256sum] = "6683a1aaf2430ccd9ea638dd4bfe1002bc92b412050c3dba20e480f979faaf97"
20
21DEPENDS += "librsvg-native"
22
23PACKAGES = "${PN}-cursors ${PN}-symbolic-hires ${PN}-symbolic ${PN}-hires ${PN}"
24
25RREPLACES_${PN} = "gnome-icon-theme"
26RCONFLICTS_${PN} = "gnome-icon-theme"
27RPROVIDES_${PN} = "gnome-icon-theme"
28
29FILES_${PN}-cursors = "${prefix}/share/icons/Adwaita/cursors/"
30FILES_${PN}-symbolic-hires = "${prefix}/share/icons/Adwaita/96x96/*/*.symbolic.png \
31 ${prefix}/share/icons/Adwaita/64x64/*/*.symbolic.png \
32 ${prefix}/share/icons/Adwaita/48x48/*/*.symbolic.png \
33 ${prefix}/share/icons/Adwaita/32x32/*/*.symbolic.png"
34FILES_${PN}-symbolic = "${prefix}/share/icons/Adwaita/16x16/*/*.symbolic.png \
35 ${prefix}/share/icons/Adwaita/24x24/*/*.symbolic.png \
36 ${prefix}/share/icons/Adwaita/scalable/*/*-symbolic*.svg"
37FILES_${PN}-hires = "${prefix}/share/icons/Adwaita/256x256/ \
38 ${prefix}/share/icons/Adwaita/512x512/"
39FILES_${PN} = "${prefix}/share/icons/Adwaita/ \
40 ${prefix}/share/pkgconfig/adwaita-icon-theme.pc"
41
42BBCLASSEXTEND = "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 185ebc154a..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 41c3ee549787333a073a3ce6303efef625c74dce 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/0001-meson.build-exclude-girepo_dep-if-introspection-data.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-meson.build-exclude-girepo_dep-if-introspection-data.patch
deleted file mode 100644
index 8fba0124cf..0000000000
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-meson.build-exclude-girepo_dep-if-introspection-data.patch
+++ /dev/null
@@ -1,25 +0,0 @@
1From ef5446af0ddad6a341b47957097ac40c6cb5e6d3 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Tue, 20 Oct 2020 22:40:14 +0200
4Subject: [PATCH] meson.build: exclude girepo_dep if introspection data is
5 disabled
6
7Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/248]
8Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
9---
10 meson.build | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/meson.build b/meson.build
14index 14af2b1..a3c27c3 100644
15--- a/meson.build
16+++ b/meson.build
17@@ -283,7 +283,7 @@ pkg.generate(
18 # FIXME: meson.override_dependency() and declare_dependency()'s variable arguments
19 # are new in Meson 0.54.0, older versions of Meson won't be able to use g-i as
20 # subproject anyway
21-if meson.version().version_compare('>=0.54.0')
22+if meson.version().version_compare('>=0.54.0') and get_option('build_introspection_data') == true
23 girepo_dep = declare_dependency(
24 sources: typelibs,
25 dependencies: girepo_dep,
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.66.1.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb
index ee0ab2866b..05a08a50e0 100644
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.66.1.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+" 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,28 +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 file://0001-meson.build-exclude-girepo_dep-if-introspection-data.patch \
19 " 17 "
20 18
21SRC_URI[sha256sum] = "dd44a55ee5f426ea22b6b89624708f9e8d53f5cc94e5485c15c87cb30e06161d" 19SRC_URI[sha256sum] = "bd7babd99af7258e76819e45ba4a6bc399608fe762d83fde3cac033c50841bb4"
22 20
23SRC_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"
24 22
25inherit 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
26 24
27GTKDOC_MESON_OPTION = "gtk_doc" 25GTKDOC_MESON_OPTION = "gtk_doc"
28 26
29MULTILIB_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"
30 28
31DEPENDS_append = " libffi zlib glib-2.0 python3 flex-native bison-native autoconf-archive" 29DEPENDS += " libffi zlib glib-2.0 python3 flex-native bison-native"
32 30
33# target build needs qemu to run temporary introspection binaries created 31# target build needs qemu to run temporary introspection binaries created
34# 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
35# native versions of its own tools during build. 33# native versions of its own tools during build.
36# Also prelink-rtld is used to find out library dependencies of introspection binaries 34DEPENDS:append:class-target = " gobject-introspection-native qemu-native"
37# (standard ldd doesn't work when cross-compiling).
38DEPENDS_class-target_append = " gobject-introspection-native qemu-native prelink-native"
39 35
40# needed for writing out the qemu wrapper script 36# needed for writing out the qemu wrapper script
41export STAGING_DIR_HOST 37export STAGING_DIR_HOST
@@ -46,7 +42,7 @@ PACKAGECONFIG[doctool] = "-Ddoctool=enabled,-Ddoctool=disabled,python3-mako,"
46 42
47# 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
48# and optionally to generate introspection data 44# and optionally to generate introspection data
49EXTRA_OEMESON_class-target = " \ 45EXTRA_OEMESON:class-target = " \
50 -Dgi_cross_use_prebuilt_gi=true \ 46 -Dgi_cross_use_prebuilt_gi=true \
51 -Dgi_cross_binary_wrapper=${B}/g-ir-scanner-qemuwrapper \ 47 -Dgi_cross_binary_wrapper=${B}/g-ir-scanner-qemuwrapper \
52 -Dgi_cross_ldd_wrapper=${B}/g-ir-scanner-lddwrapper \ 48 -Dgi_cross_ldd_wrapper=${B}/g-ir-scanner-lddwrapper \
@@ -55,21 +51,14 @@ EXTRA_OEMESON_class-target = " \
55 ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \ 51 ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \
56" 52"
57 53
58# Need to ensure ld.so.conf exists so prelink-native works 54do_configure:prepend:class-native() {
59# both before we build and if we install from sstate
60do_configure[prefuncs] += "gobject_introspection_preconfigure"
61python gobject_introspection_preconfigure () {
62 oe.utils.write_ld_so_conf(d)
63}
64
65do_configure_prepend_class-native() {
66 # 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
67 # 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)
68 # 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)
69 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
70} 59}
71 60
72do_configure_prepend_class-target() { 61do_configure:prepend:class-target() {
73 # 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
74 # can run target helper binaries through that. 63 # can run target helper binaries through that.
75 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}'])}"
@@ -94,7 +83,7 @@ EOF
94 # from the target sysroot. 83 # from the target sysroot.
95 cat > ${B}/g-ir-scanner-wrapper << EOF 84 cat > ${B}/g-ir-scanner-wrapper << EOF
96#!/bin/sh 85#!/bin/sh
97# 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
98export GI_SCANNER_DISABLE_CACHE=1 87export GI_SCANNER_DISABLE_CACHE=1
99 88
100g-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 "\$@"
@@ -113,7 +102,7 @@ EOF
113 # for a different architecture 102 # for a different architecture
114 cat > ${B}/g-ir-scanner-lddwrapper << EOF 103 cat > ${B}/g-ir-scanner-lddwrapper << EOF
115#!/bin/sh 104#!/bin/sh
116prelink-rtld --root=$STAGING_DIR_HOST "\$@" 105\$OBJDUMP -p "\$@"
117EOF 106EOF
118 chmod +x ${B}/g-ir-scanner-lddwrapper 107 chmod +x ${B}/g-ir-scanner-lddwrapper
119 108
@@ -122,22 +111,19 @@ EOF
122 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
123} 112}
124 113
125do_compile_prepend() { 114do_compile:prepend() {
126 # This prevents g-ir-scanner from writing cache data to $HOME
127 export GI_SCANNER_DISABLE_CACHE=1
128
129 # 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
130 export GIR_EXTRA_LIBS_PATH=$B/.libs 116 export GIR_EXTRA_LIBS_PATH=$B/.libs
131} 117}
132 118
133do_install_prepend() { 119do_install:prepend() {
134 # This prevents g-ir-scanner from writing cache data to $HOME 120 # This prevents g-ir-scanner from writing cache data to $HOME
135 export GI_SCANNER_DISABLE_CACHE=1 121 export GI_SCANNER_DISABLE_CACHE=1
136} 122}
137 123
138# 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
139# to build introspection files for all other gobject-based packages 125# to build introspection files for all other gobject-based packages
140do_install_append_class-target() { 126do_install:append:class-target() {
141 install -d ${D}${bindir}/ 127 install -d ${D}${bindir}/
142 install ${B}/g-ir-scanner-qemuwrapper ${D}${bindir}/ 128 install ${B}/g-ir-scanner-qemuwrapper ${D}${bindir}/
143 install ${B}/g-ir-scanner-wrapper ${D}${bindir}/ 129 install ${B}/g-ir-scanner-wrapper ${D}${bindir}/
@@ -147,9 +133,9 @@ do_install_append_class-target() {
147 133
148# 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
149# when building introspection files in other packages 135# when building introspection files in other packages
150SYSROOT_DIRS_append_class-target = " ${bindir}" 136SYSROOT_DIRS:append:class-target = " ${bindir}"
151 137
152SYSROOT_PREPROCESS_FUNCS_append_class-target = " gi_binaries_sysroot_preprocess" 138SYSROOT_PREPROCESS_FUNCS:append:class-target = " gi_binaries_sysroot_preprocess"
153gi_binaries_sysroot_preprocess() { 139gi_binaries_sysroot_preprocess() {
154 # 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
155 # 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.
@@ -159,7 +145,7 @@ gi_binaries_sysroot_preprocess() {
159 ${SYSROOT_DESTDIR}${libdir}/pkgconfig/gobject-introspection-1.0.pc 145 ${SYSROOT_DESTDIR}${libdir}/pkgconfig/gobject-introspection-1.0.pc
160} 146}
161 147
162SYSROOT_PREPROCESS_FUNCS_append = " gi_ldsoconf_sysroot_preprocess" 148SYSROOT_PREPROCESS_FUNCS:append = " gi_ldsoconf_sysroot_preprocess"
163gi_ldsoconf_sysroot_preprocess () { 149gi_ldsoconf_sysroot_preprocess () {
164 mkdir -p ${SYSROOT_DESTDIR}${bindir} 150 mkdir -p ${SYSROOT_DESTDIR}${bindir}
165 dest=${SYSROOT_DESTDIR}${bindir}/postinst-ldsoconf-${PN} 151 dest=${SYSROOT_DESTDIR}${bindir}/postinst-ldsoconf-${PN}
@@ -182,26 +168,27 @@ gi_package_preprocess() {
182SSTATE_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}"
183 169
184# .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
185FILES_${PN}_append = " ${libdir}/girepository-*/*.typelib" 171FILES:${PN}:append = " ${libdir}/girepository-*/*.typelib"
186 172
187# .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)
188# things that depends on introspection. 174# things that depends on introspection.
189FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir" 175FILES:${PN}-dev:append = " ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir"
190FILES_${PN}-dev_append = " ${datadir}/gir-*/*.rnc" 176FILES:${PN}-dev:append = " ${datadir}/gir-*/*.rnc"
191 177
192# These are used by gobject-based packages 178# These are used by gobject-based packages
193# to generate transient introspection binaries 179# to generate transient introspection binaries
194FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/gdump.c \ 180FILES:${PN}-dev:append = " ${datadir}/gobject-introspection-1.0/gdump.c \
195 ${datadir}/gobject-introspection-1.0/Makefile.introspection" 181 ${datadir}/gobject-introspection-1.0/Makefile.introspection"
196 182
197# 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
198# testsuites. 184# testsuites.
199FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/tests/*.c \ 185FILES:${PN}-dev:append = " ${datadir}/gobject-introspection-1.0/tests/*.c \
200 ${datadir}/gobject-introspection-1.0/tests/*.h" 186 ${datadir}/gobject-introspection-1.0/tests/*.h"
201 187
202FILES_${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/" 188FILES:${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/"
203FILES_${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a" 189FILES:${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a"
204 190
205RDEPENDS_${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"
206 193
207BBCLASSEXTEND = "native" 194BBCLASSEXTEND = "native"
diff --git a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.38.0.bb b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_46.0.bb
index 34681197d8..8260c3d357 100644
--- a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.38.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 upstream-version-is-even 13inherit gnomebase gsettings gobject-introspection gettext
15 14
16SRC_URI[archive.sha256sum] = "5704c8266004b296036671f223c705dc046aa694a1b1abb87c67e7d2747a8c67" 15SRC_URI[archive.sha256sum] = "493a46a1161b6388d57aa72f632a79ce96c42d5ffbd1d0b00f496ec5876f8575"
diff --git a/meta/recipes-gnome/gtk+/gtk+3.inc b/meta/recipes-gnome/gtk+/gtk+3.inc
index 8d5edb7ee8..e1603b43fc 100644
--- a/meta/recipes-gnome/gtk+/gtk+3.inc
+++ b/meta/recipes-gnome/gtk+/gtk+3.inc
@@ -6,65 +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[cloudprint] = "--enable-cloudprint,--disable-cloudprint,rest json-glib" 49PACKAGECONFIG[cloudproviders] = "-Dcloudproviders=true,-Dcloudproviders=false,libcloudproviders"
67PACKAGECONFIG[colord] = "--enable-colord,--disable-colord,colord" 50PACKAGECONFIG[tracker3] = "-Dtracker3=true,-Dtracker3=false,tracker,tracker-miners"
68 51
69prepare_gtk_scripts() { 52prepare_gtk_scripts() {
70 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
@@ -74,15 +57,15 @@ prepare_gtk_scripts() {
74 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
75} 58}
76 59
77do_install_append_class-target() { 60do_install:append:class-target() {
78 prepare_gtk_scripts 61 prepare_gtk_scripts
79} 62}
80 63
81do_install_append_class-nativesdk() { 64do_install:append:class-nativesdk() {
82 prepare_gtk_scripts 65 prepare_gtk_scripts
83} 66}
84 67
85do_install_append_class-native() { 68do_install:append:class-native() {
86 create_wrapper ${D}/${bindir}/gtk-update-icon-cache \ 69 create_wrapper ${D}/${bindir}/gtk-update-icon-cache \
87 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
88 create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \ 71 create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \
@@ -93,7 +76,7 @@ PROVIDES += "gtk-icon-utils"
93PACKAGES =+ "${PN}-demo" 76PACKAGES =+ "${PN}-demo"
94LIBV = "3.0.0" 77LIBV = "3.0.0"
95 78
96FILES_${PN}-demo = "${bindir}/gtk3-demo \ 79FILES:${PN}-demo = "${bindir}/gtk3-demo \
97 ${bindir}/gtk3-demo-application \ 80 ${bindir}/gtk3-demo-application \
98 ${bindir}/gtk3-icon-browser \ 81 ${bindir}/gtk3-icon-browser \
99 ${bindir}/gtk3-widget-factory \ 82 ${bindir}/gtk3-widget-factory \
@@ -104,14 +87,15 @@ FILES_${PN}-demo = "${bindir}/gtk3-demo \
104 ${datadir}/icons/hicolor/*/apps/gtk3-demo*.png \ 87 ${datadir}/icons/hicolor/*/apps/gtk3-demo*.png \
105 ${datadir}/icons/hicolor/*/apps/gtk3-widget-factory*.png" 88 ${datadir}/icons/hicolor/*/apps/gtk3-widget-factory*.png"
106 89
107FILES_${PN}_append = " ${bindir}/gtk-update-icon-cache-3.0 \ 90FILES:${PN}:append = " ${bindir}/gtk-update-icon-cache-3.0 \
108 ${bindir}/gtk-query-immodules-3.0 \ 91 ${bindir}/gtk-query-immodules-3.0 \
109 ${bindir}/gtk-launch \ 92 ${bindir}/gtk-launch \
110 ${datadir}/themes ${sysconfdir} ${datadir}/glib-2.0/schemas/ \ 93 ${datadir}/themes ${datadir}/gtk-3.0/emoji \
94 ${sysconfdir} ${datadir}/glib-2.0/schemas/ \
111 ${libdir}/gtk-3.0/${LIBV}/engines/libpixmap.so \ 95 ${libdir}/gtk-3.0/${LIBV}/engines/libpixmap.so \
112 ${libdir}/gtk-3.0/modules/*.so" 96 ${libdir}/gtk-3.0/modules/*.so"
113 97
114FILES_${PN}-dev += " \ 98FILES:${PN}-dev += " \
115 ${datadir}/gtk-3.0/gtkbuilder.rng \ 99 ${datadir}/gtk-3.0/gtkbuilder.rng \
116 ${datadir}/gtk-3.0/include \ 100 ${datadir}/gtk-3.0/include \
117 ${datadir}/gtk-3.0/valgrind \ 101 ${datadir}/gtk-3.0/valgrind \
@@ -137,22 +121,22 @@ GTKBASE_RRECOMMENDS ?= "liberation-fonts \
137 adwaita-icon-theme-symbolic \ 121 adwaita-icon-theme-symbolic \
138 " 122 "
139 123
140GTKBASE_RRECOMMENDS_class-native ?= "\ 124GTKBASE_RRECOMMENDS:class-native ?= "\
141 " 125 "
142 126
143GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1" 127GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1"
144 128
145RRECOMMENDS_${PN} = "${GTKBASE_RRECOMMENDS}" 129RRECOMMENDS:${PN} = "${GTKBASE_RRECOMMENDS}"
146RRECOMMENDS_${PN}_libc-glibc = "${GTKGLIBC_RRECOMMENDS}" 130RRECOMMENDS:${PN}:libc-glibc = "${GTKGLIBC_RRECOMMENDS}"
147RDEPENDS_${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}" 131RDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}"
148 132
149PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*" 133PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*"
150 134
151ALTERNATIVE_${PN} = "gtk-update-icon-cache" 135ALTERNATIVE:${PN} = "gtk-update-icon-cache"
152ALTERNATIVE_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"
153ALTERNATIVE_PRIORITY = "30" 137ALTERNATIVE_PRIORITY = "30"
154 138
155python populate_packages_prepend () { 139python populate_packages:prepend () {
156 import os.path 140 import os.path
157 141
158 gtk_libdir = d.expand('${libdir}/gtk-3.0/${LIBV}') 142 gtk_libdir = d.expand('${libdir}/gtk-3.0/${LIBV}')
@@ -166,5 +150,5 @@ python populate_packages_prepend () {
166 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')
167 151
168 if (d.getVar('DEBIAN_NAMES')): 152 if (d.getVar('DEBIAN_NAMES')):
169 d.setVar(d.expand('PKG_${PN}'), '${MLPREFIX}libgtk-3.0') 153 d.setVar(d.expand('PKG:${PN}'), '${MLPREFIX}libgtk-3.0')
170} 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 398c9bc36a..0000000000
--- a/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch
+++ /dev/null
@@ -1,872 +0,0 @@
1From f83fcf1991afad6d9c15546b2ccd775dad4e314c 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 bd651bb..b4c061f 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 479d6a1..7edbee8 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 240c99f..9eb49bf 100644
247--- a/gdk/gdkdisplay.c
248+++ b/gdk/gdkdisplay.c
249@@ -2419,7 +2419,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 933e204..1767508 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 dfbed63..556f0a3 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 6ae0f86..4e48a2a 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 817944e..e7a2947 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@@ -3188,7 +3190,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 8939ae9..931bff9 100644
542--- a/gdk/x11/gdkscreen-x11.c
543+++ b/gdk/x11/gdkscreen-x11.c
544@@ -1723,3 +1723,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 1fe7b90..d23a347 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@@ -5861,7 +5863,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 eaca473..99352d1 100644
672--- a/gtk/Makefile.am
673+++ b/gtk/Makefile.am
674@@ -1449,7 +1449,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 9a56443..7de0db2 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 glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT,
728 GL_RENDERBUFFER_EXT, 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 glDeleteFramebuffersEXT (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 c241ec8..24576dd 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 ee1e8b5..e6c6502 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.24.bb b/meta/recipes-gnome/gtk+/gtk+3_3.24.41.bb
index 01a2a94ce3..17e90c59f0 100644
--- a/meta/recipes-gnome/gtk+/gtk+3_3.24.24.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] = "cc9d4367c55b724832f6b09ab85481738ea456871f0381768a6a99335a98378a" 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.1.bb b/meta/recipes-gnome/gtk+/gtk4_4.14.1.bb
new file mode 100644
index 0000000000..ce733769a5
--- /dev/null
+++ b/meta/recipes-gnome/gtk+/gtk4_4.14.1.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] = "fcefb3f132f8cc4711a9efa5b353c9ae9bb5eeff0246fa74dbc2f2f839b9e308"
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.1.bb b/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb
index 5f9fe0a91d..4fd5a6e925 100644
--- a/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.1.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,42 +16,46 @@ 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
21SRC_URI[archive.sha256sum] = "a5cfed2a0b73a09b796fff80ad6d8f040ab2b2655bdc941ac207ffe6d9c10f10" 22CACHED_CONFIGUREVARS += "ac_cv_path_XSLTPROC=xsltproc"
23
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 \
46 ${datadir}/gtk-doc/python/gtkdoc/config_data.py \
42 ${datadir}/gtk-doc/python/gtkdoc/config.py; do 47 ${datadir}/gtk-doc/python/gtkdoc/config.py; do
43 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,' \
44 -e 's,${HOSTTOOLS_DIR}/python3,${bindir}/python3,' \ 49 -e 's,${HOSTTOOLS_DIR}/python3,${bindir}/python3,' \
50 -e '1s|^#!.*|#!/usr/bin/env python3|' \
45 -i ${D}$fn 51 -i ${D}$fn
46 done 52 done
47} 53}
48 54
49FILES_${PN} += "${datadir}/sgml" 55FILES:${PN} += "${datadir}/sgml"
50FILES_${PN}-dev += "${libdir}/cmake" 56FILES:${PN}-doc = ""
51FILES_${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/0001-json-glib-json-enum-types.c.in-fix-build-reproducibi.patch b/meta/recipes-gnome/json-glib/json-glib/0001-json-glib-json-enum-types.c.in-fix-build-reproducibi.patch
deleted file mode 100644
index 0eb7244186..0000000000
--- a/meta/recipes-gnome/json-glib/json-glib/0001-json-glib-json-enum-types.c.in-fix-build-reproducibi.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From 0f06c4cb4a57083c08312144b03c8346cf620be6 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 30 Oct 2020 22:15:29 +0000
4Subject: [PATCH] json-glib/json-enum-types.c.in: fix build reproducibility
5
6Changes the comment and include to reference the file basename
7instead of the full path. This ensures that the generated file is
8reproducible when it is included in source packages meant for debugging.
9
10Upstream-Status: Backport [6f3842abd5dff68b6ee5f2ef48a4ebf1cbebf434]
11Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
12---
13 json-glib/json-enum-types.c.in | 4 ++--
14 1 file changed, 2 insertions(+), 2 deletions(-)
15
16diff --git a/json-glib/json-enum-types.c.in b/json-glib/json-enum-types.c.in
17index da07c46..7b39290 100644
18--- a/json-glib/json-enum-types.c.in
19+++ b/json-glib/json-enum-types.c.in
20@@ -9,8 +9,8 @@
21
22 /*** BEGIN file-production ***/
23
24-/* enumerations from "@filename@" */
25-#include "@filename@"
26+/* enumerations from "@basename@" */
27+#include "@basename@"
28
29 /*** END file-production ***/
30
diff --git a/meta/recipes-gnome/json-glib/json-glib_1.6.0.bb b/meta/recipes-gnome/json-glib/json-glib_1.8.0.bb
index 59b0609900..2094ebe3e7 100644
--- a/meta/recipes-gnome/json-glib/json-glib_1.6.0.bb
+++ b/meta/recipes-gnome/json-glib/json-glib_1.8.0.bb
@@ -6,22 +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"
23 file://0001-json-glib-json-enum-types.c.in-fix-build-reproducibi.patch" 21SRC_URI[archive.sha256sum] = "97ef5eb92ca811039ad50a65f06633f1aae64792789307be7170795d8b319454"
24SRC_URI[archive.sha256sum] = "0d7c67602c4161ea7070fab6c5823afd9bd7f7bc955f652a50d3753b08494e73"
25 22
26PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" 23PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
27PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native" 24PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native"
@@ -31,4 +28,4 @@ BBCLASSEXTEND = "native nativesdk"
31 28
32# 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
33# this back on. 30# this back on.
34USE_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.38.0.bb b/meta/recipes-gnome/libdazzle/libdazzle_3.44.0.bb
index a2a1aed7bc..9bca7e9dce 100644
--- a/meta/recipes-gnome/libdazzle/libdazzle_3.38.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] = "e18af28217943bcec106585298a91ec3da48aa3ad62fd0992f23f0c70cd1678f" 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/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_234.bb b/meta/recipes-gnome/libgudev/libgudev_238.bb
index 9cea36df5b..f197f6421d 100644
--- a/meta/recipes-gnome/libgudev/libgudev_234.bb
+++ b/meta/recipes-gnome/libgudev/libgudev_238.bb
@@ -5,18 +5,30 @@ 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] = "1baeacacf0db42fa073ad5183d1decce9317857416a2b0f82ce3370d711a2e37" 8SRC_URI[archive.sha256sum] = "61266ab1afc9d73dbc60a8b2af73e99d2fdff47d99544d085760e4fa667b5dd1"
9 9
10DEPENDS = "glib-2.0 udev" 10DEPENDS = "glib-2.0 glib-2.0-native udev"
11 11
12EXTRA_OECONF = "--disable-umockdev" 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
19inherit gnomebase gobject-introspection gtk-doc 17inherit gnomebase gobject-introspection gtk-doc
20 18
19SRC_URI += "file://0001-meson-Pass-export-dynamic-option-to-linker.patch"
20
21GIR_MESON_ENABLE_FLAG = 'enabled'
22GIR_MESON_DISABLE_FLAG = 'disabled'
23
24GTKDOC_MESON_OPTION = "gtk_doc"
25
21UPSTREAM_CHECK_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgudev/" 26UPSTREAM_CHECK_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgudev/"
22UPSTREAM_CHECK_REGEX = "(?P<pver>(\d+))" 27UPSTREAM_CHECK_REGEX = "(?P<pver>(\d+))"
28
29EXTRA_OEMESON += "-Dtests=disabled -Dvapi=disabled"
30
31# This isn't a GNOME-style version do gnome_verdir fails. Just return the
32# version as that is how the directory is structured.
33def gnome_verdir(v):
34 return v
diff --git a/meta/recipes-gnome/libhandy/libhandy_1.0.2.bb b/meta/recipes-gnome/libhandy/libhandy_1.0.2.bb
deleted file mode 100644
index 4daa3c1a54..0000000000
--- a/meta/recipes-gnome/libhandy/libhandy_1.0.2.bb
+++ /dev/null
@@ -1,20 +0,0 @@
1SUMMARY = "A library full of GTK+ widgets for mobile phones"
2LICENSE = "LGPLv2.1"
3LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
4
5SRC_URI = "git://gitlab.gnome.org/GNOME/${BPN}.git;protocol=https"
6SRCREV = "465c00f8f80c27330be494ed7c0ba2ffe26321c4"
7S = "${WORKDIR}/git"
8
9GIR_MESON_ENABLE_FLAG = 'enabled'
10GIR_MESON_DISABLE_FLAG = 'disabled'
11GTKDOC_MESON_OPTION = 'gtk_doc'
12
13inherit meson gobject-introspection vala gettext gtk-doc features_check
14
15ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
16
17DEPENDS += "gtk+3"
18
19PACKAGES =+ "${PN}-examples"
20FILES_${PN}-examples = "${bindir}"
diff --git a/meta/recipes-gnome/libhandy/libhandy_1.8.3.bb b/meta/recipes-gnome/libhandy/libhandy_1.8.3.bb
new file mode 100644
index 0000000000..7f5f02a7ba
--- /dev/null
+++ b/meta/recipes-gnome/libhandy/libhandy_1.8.3.bb
@@ -0,0 +1,27 @@
1SUMMARY = "A library full of GTK+ widgets for mobile phones"
2DESCRIPTION = "Library with GTK widgets for mobile phones. Libhandy provides \
3GTK widgets and GObjects to ease developing applications for mobile phones. \
4It was developed by Purism (and used by several official GNOME projects) \
5to extend Gtk by providing mobile-friendly widgets and make the creation of \
6responsive apps easier."
7HOMEPAGE = "https://gitlab.gnome.org/GNOME/libhandy"
8BUGTRACKER = "https://gitlab.gnome.org/GNOME/libhandy/-/issues"
9LICENSE = "LGPL-2.1-only"
10LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
11
12SRC_URI = "git://gitlab.gnome.org/GNOME/libhandy.git;protocol=https;branch=libhandy-1-8"
13SRCREV = "9b0071408ce86a3ef843806fddd723a85f6f2416"
14S = "${WORKDIR}/git"
15
16UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+))"
17GIR_MESON_ENABLE_FLAG = 'enabled'
18GIR_MESON_DISABLE_FLAG = 'disabled'
19
20inherit meson gobject-introspection vala gettext gi-docgen features_check pkgconfig
21
22ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
23
24DEPENDS += "gtk+3"
25
26PACKAGES =+ "${PN}-examples"
27FILES:${PN}-examples = "${bindir}"
diff --git a/meta/recipes-gnome/libnotify/libnotify_0.7.9.bb b/meta/recipes-gnome/libnotify/libnotify_0.7.9.bb
deleted file mode 100644
index 29a28272e1..0000000000
--- a/meta/recipes-gnome/libnotify/libnotify_0.7.9.bb
+++ /dev/null
@@ -1,28 +0,0 @@
1SUMMARY = "Library for sending desktop notifications to a notification daemon"
2HOMEPAGE = "https://gitlab.gnome.org/GNOME/libnotify"
3BUGTRACKER = "https://gitlab.gnome.org/GNOME/libnotify/issues"
4SECTION = "libs"
5LICENSE = "LGPLv2.1"
6LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
7
8DEPENDS = "dbus gtk+3 glib-2.0"
9
10GNOMEBASEBUILDCLASS = "meson"
11GTKDOC_MESON_OPTION = "gtk_doc"
12GIR_MESON_ENABLE_FLAG = "enabled"
13GIR_MESON_DISABLE_FLAG = "disabled"
14inherit gnomebase gtk-doc features_check gobject-introspection
15# depends on gtk+3
16ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
17
18SRC_URI[archive.md5sum] = "ccd9c53364174cc8d13e18a1988faa76"
19SRC_URI[archive.sha256sum] = "66c0517ed16df7af258e83208faaf5069727dfd66995c4bbc51c16954d674761"
20
21EXTRA_OEMESON = "-Dman=false"
22
23# there were times, we had two versions of libnotify (oe-core libnotify:0.6.x /
24# meta-gnome libnotify3: 0.7.x)
25PROVIDES += "libnotify3"
26RPROVIDES_${PN} += "libnotify3"
27RCONFLICTS_${PN} += "libnotify3"
28RREPLACES_${PN} += "libnotify3"
diff --git a/meta/recipes-gnome/libnotify/libnotify_0.8.3.bb b/meta/recipes-gnome/libnotify/libnotify_0.8.3.bb
new file mode 100644
index 0000000000..1e606b84b2
--- /dev/null
+++ b/meta/recipes-gnome/libnotify/libnotify_0.8.3.bb
@@ -0,0 +1,35 @@
1SUMMARY = "Library for sending desktop notifications to a notification daemon"
2DESCRIPTION = "It sends desktop notifications to a notification daemon, as defined \
3in the Desktop Notifications spec. These notifications can be used to inform \
4the user about an event or display some form of information without getting \
5in the user's way."
6HOMEPAGE = "https://gitlab.gnome.org/GNOME/libnotify"
7BUGTRACKER = "https://gitlab.gnome.org/GNOME/libnotify/issues"
8SECTION = "libs"
9LICENSE = "LGPL-2.1-only"
10LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
11
12DEPENDS = "glib-2.0 glib-2.0-native gdk-pixbuf"
13
14PACKAGECONFIG ?= ""
15PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,gtk+3"
16
17GIR_MESON_ENABLE_FLAG = "enabled"
18GIR_MESON_DISABLE_FLAG = "disabled"
19inherit gnomebase gi-docgen features_check gobject-introspection
20# depends on gtk+3 if tests are enabled
21ANY_OF_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'tests', '${GTK3DISTROFEATURES}', '', d)}"
22
23SRC_URI[archive.sha256sum] = "ee8f3ef946156ad3406fdf45feedbdcd932dbd211ab4f16f75eba4f36fb2f6c0"
24
25EXTRA_OEMESON = "-Dman=false"
26
27# there were times, we had two versions of libnotify (oe-core libnotify:0.6.x /
28# meta-gnome libnotify3: 0.7.x)
29PROVIDES += "libnotify3"
30RPROVIDES:${PN} += "libnotify3"
31RCONFLICTS:${PN} += "libnotify3"
32RREPLACES:${PN} += "libnotify3"
33
34# -7381 is specific to the NodeJS bindings
35CVE_STATUS[CVE-2013-7381] = "cpe-incorrect: The issue is specific to the NodeJS bindings"
diff --git a/meta/recipes-gnome/libportal/libportal_0.3.bb b/meta/recipes-gnome/libportal/libportal_0.3.bb
deleted file mode 100644
index 022628b1ac..0000000000
--- a/meta/recipes-gnome/libportal/libportal_0.3.bb
+++ /dev/null
@@ -1,13 +0,0 @@
1SUMMARY = "libportal provides GIO-style async APIs for most Flatpak portals."
2LICENSE = "LGPLv2.1"
3LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
4
5SRC_URI = "git://github.com/flatpak/${BPN}.git;protocol=https"
6SRCREV = "a609e06d0c4adc5c510cf9ac7b060db3d368e78f"
7S = "${WORKDIR}/git"
8
9GTKDOC_MESON_OPTION = 'gtk_doc'
10
11inherit meson gtk-doc
12
13DEPENDS += "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 acdbc1f1b3..0000000000
--- a/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb
+++ /dev/null
@@ -1,49 +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
28CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
29
30PACKAGECONFIG ??= "gdkpixbuf"
31# The gdk-pixbuf loader
32PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native"
33# GTK+ test application (rsvg-view)
34PACKAGECONFIG[gtk] = "--with-gtk3,--without-gtk3,gtk+3"
35
36do_install_append() {
37 # Loadable modules don't need .a or .la on Linux
38 rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la
39}
40
41PACKAGES =+ "librsvg-gtk rsvg"
42FILES_rsvg = "${bindir}/rsvg* \
43 ${datadir}/pixmaps/svg-viewer.svg \
44 ${datadir}/themes"
45FILES_librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so \
46 ${datadir}/thumbnailers/librsvg.thumbnailer"
47RRECOMMENDS_librsvg-gtk = "gdk-pixbuf-bin"
48
49PIXBUF_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_0.20.4.bb b/meta/recipes-gnome/libsecret/libsecret_0.21.4.bb
index 96f6460181..88c3c73510 100644
--- a/meta/recipes-gnome/libsecret/libsecret_0.20.4.bb
+++ b/meta/recipes-gnome/libsecret/libsecret_0.21.4.bb
@@ -3,23 +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"
7BUGTRACKER = "https://gitlab.gnome.org/GNOME/libsecret/issues" 8BUGTRACKER = "https://gitlab.gnome.org/GNOME/libsecret/issues"
8LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6" 9LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6"
9 10
10GNOMEBASEBUILDCLASS = "meson"
11 11
12inherit gnomebase gtk-doc vala gobject-introspection manpages 12inherit gnomebase gi-docgen vala gobject-introspection manpages
13 13
14DEPENDS += "glib-2.0 libgcrypt gettext-native" 14DEPENDS += "glib-2.0 libgcrypt gettext-native"
15 15
16SRC_URI[archive.sha256sum] = "325a4c54db320c406711bf2b55e5cb5b6c29823426aa82596a907595abb39d28" 16SRC_URI[archive.sha256sum] = "163d08d783be6d4ab9a979ceb5a4fecbc1d9660d3c34168c581301cd53912b20"
17 17
18GTKDOC_MESON_OPTION = 'gtk_doc' 18GTKDOC_MESON_OPTION = 'gtk_doc'
19 19
20PACKAGECONFIG[manpages] = "-Dmanpage=true,-Dmanpage=false,libxslt-native xmlto-native" 20PACKAGECONFIG[manpages] = "-Dmanpage=true,-Dmanpage=false,libxslt-native xmlto-native"
21 21
22# http://errors.yoctoproject.org/Errors/Details/20228/ 22# http://errors.yoctoproject.org/Errors/Details/20228/
23ARM_INSTRUCTION_SET_armv4 = "arm" 23ARM_INSTRUCTION_SET:armv4 = "arm"
24ARM_INSTRUCTION_SET_armv5 = "arm" 24ARM_INSTRUCTION_SET:armv5 = "arm"
25ARM_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.17.bb b/meta/recipes-gnome/libxmlb/libxmlb_0.3.17.bb
new file mode 100644
index 0000000000..f403857fea
--- /dev/null
+++ b/meta/recipes-gnome/libxmlb/libxmlb_0.3.17.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 = "db54f1b3254334e59b29b01b6cb666f444746594"
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"