diff options
Diffstat (limited to 'meta/recipes-gnome')
90 files changed, 2675 insertions, 3965 deletions
diff --git a/meta/recipes-gnome/epiphany/epiphany_3.20.3.bb b/meta/recipes-gnome/epiphany/epiphany_3.20.3.bb deleted file mode 100644 index eba480b2f6..0000000000 --- a/meta/recipes-gnome/epiphany/epiphany_3.20.3.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "WebKit based web browser for GNOME" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes ca-certificates avahi libnotify gcr libwnck3 \ - gsettings-desktop-schemas gnome-desktop3 libxml2-native intltool-native" - -inherit gnomebase gsettings distro_features_check upstream-version-is-even -# libwnck3 is x11 only -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI += "file://0001-yelp.m4-drop-the-check-for-itstool.patch" -SRC_URI[archive.md5sum] = "31822b6b199f724f212ae9200bc055f1" -SRC_URI[archive.sha256sum] = "4d9de1bdb44c14adf25aa6dc02ea3de60925cff5eb01fe89545e6032c9b424a2" - -EXTRA_OECONF += " --disable-nss --with-distributor-name=${DISTRO}" - -do_configure_prepend() { - sed -i -e s:help::g ${S}/Makefile.am -} - -FILES_${PN} += "${datadir}/appdata ${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers" -RDEPENDS_${PN} = "iso-codes adwaita-icon-theme" -RRECOMMENDS_${PN} = "ca-certificates" - diff --git a/meta/recipes-gnome/epiphany/epiphany_43.0.bb b/meta/recipes-gnome/epiphany/epiphany_43.0.bb new file mode 100644 index 0000000000..4a6007b0df --- /dev/null +++ b/meta/recipes-gnome/epiphany/epiphany_43.0.bb @@ -0,0 +1,40 @@ +SUMMARY = "WebKit based web browser for GNOME" +DESCRIPTION = "Epiphany is an open source web browser for the Linux desktop environment. \ +It provides a simple and easy-to-use internet browsing experience." +HOMEPAGE = "https://wiki.gnome.org/Apps/Web" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany" +LICENSE = "GPL-3.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = " \ + webkitgtk \ + gcr3 \ + gsettings-desktop-schemas \ + nettle \ + json-glib \ + libarchive \ + libdazzle \ + libhandy \ + libportal \ + libsoup \ + glib-2.0-native \ + coreutils-native \ + desktop-file-utils-native \ + " + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase gsettings features_check gettext mime-xdg gtk-icon-cache +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@oe.utils.trim_version("${PV}", 1)}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ + file://0002-help-meson.build-disable-the-use-of-yelp.patch \ + file://migrator.patch \ + file://distributor.patch \ + " +SRC_URI[archive.sha256sum] = "b66d499f9ee72696d83cf844125377181a954554a4bb3785b73293380ac0c227" + +# Developer mode enables debugging +PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false" + +FILES:${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo" +RDEPENDS:${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas" diff --git a/meta/recipes-gnome/epiphany/files/0001-yelp.m4-drop-the-check-for-itstool.patch b/meta/recipes-gnome/epiphany/files/0001-yelp.m4-drop-the-check-for-itstool.patch deleted file mode 100644 index 2585d7f741..0000000000 --- a/meta/recipes-gnome/epiphany/files/0001-yelp.m4-drop-the-check-for-itstool.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 30f03a256efe375a4d5c3a24bf4168ebf380e3ab Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Thu, 30 Jul 2015 15:13:23 +0300 -Subject: [PATCH] yelp.m4: drop the check for itstool - -It isn't used for anything during build, so there's no need to provide -it as a recipe. - -Upstream-Status: Inappropriate [tarball-specific issue] ---- - m4/yelp.m4 | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/m4/yelp.m4 b/m4/yelp.m4 -index 5db847f..1b6ede4 100644 ---- a/m4/yelp.m4 -+++ b/m4/yelp.m4 -@@ -27,12 +27,6 @@ AC_ARG_WITH([help-dir], - HELP_DIR="$with_help_dir" - AC_SUBST(HELP_DIR) - --AC_ARG_VAR([ITSTOOL], [Path to the `itstool` command]) --AC_CHECK_PROG([ITSTOOL], [itstool], [itstool]) --if test x"$ITSTOOL" = x; then -- AC_MSG_ERROR([itstool not found]) --fi -- - AC_ARG_VAR([XMLLINT], [Path to the `xmllint` command]) - AC_CHECK_PROG([XMLLINT], [xmllint], [xmllint]) - if test x"$XMLLINT" = x; then --- -2.1.4 - 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 new file mode 100644 index 0000000000..a6c4f92c86 --- /dev/null +++ b/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch @@ -0,0 +1,30 @@ +From 77c9f87dc2b3ad0854a678e234e22dfb31902b82 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Wed, 31 Jan 2018 15:50:38 +0200 +Subject: [PATCH] help/meson.build: disable the use of yelp + +In particular this avoids calling itstool which oe-core doesn't provide. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +--- + help/meson.build | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/help/meson.build b/help/meson.build +index ff324dd..f5e421d 100644 +--- a/help/meson.build ++++ b/help/meson.build +@@ -31,7 +31,7 @@ help_media = [ + 'media/org.gnome.Epiphany.svg' + ] + +-gnome.yelp(meson.project_name(), +- sources: help_files, +- media: help_media, +-) ++#gnome.yelp(meson.project_name(), ++# sources: help_files, ++# media: help_media, ++#) diff --git a/meta/recipes-gnome/epiphany/files/distributor.patch b/meta/recipes-gnome/epiphany/files/distributor.patch new file mode 100644 index 0000000000..b09c9b38d2 --- /dev/null +++ b/meta/recipes-gnome/epiphany/files/distributor.patch @@ -0,0 +1,17 @@ +Don't encode the distro from /etc/os-release into the binaries. + +Upstream-Status: Pending +RP 2021/2/26 + +Index: epiphany-3.38.2/meson.build +=================================================================== +--- epiphany-3.38.2.orig/meson.build ++++ epiphany-3.38.2/meson.build +@@ -15,6 +15,7 @@ if r.returncode() == 0 + else + distributor_name = 'GNOME Web' + endif ++distributor_name = 'OpenEmbedded' + + prefix = get_option('prefix') + 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..a9a650a64a --- /dev/null +++ b/meta/recipes-gnome/epiphany/files/migrator.patch @@ -0,0 +1,24 @@ +We don't want to encide BUILD_ROOT into target packages. This is used +for build time tests but in our case those would be on target anyway +do use the target paths. + +Upstream-Status: Pending +RP 2021/2/25 + +Index: epiphany-3.38.2/lib/ephy-profile-utils.c +=================================================================== +--- epiphany-3.38.2.orig/lib/ephy-profile-utils.c ++++ epiphany-3.38.2/lib/ephy-profile-utils.c +@@ -130,10 +130,10 @@ ephy_profile_utils_do_migration (const c + argv[i++] = NULL; + + #if DEVELOPER_MODE +- argv[0] = BUILD_ROOT "/src/" EPHY_PROFILE_MIGRATOR; ++ argv[0] = PKGLIBEXECDIR "/" EPHY_PROFILE_MIGRATOR; + #else + if (debug) +- argv[0] = BUILD_ROOT "/src/" EPHY_PROFILE_MIGRATOR; ++ argv[0] = PKGLIBEXECDIR "/" EPHY_PROFILE_MIGRATOR; + #endif + + g_spawn_sync (NULL, (char **)argv, envp, G_SPAWN_SEARCH_PATH, diff --git a/meta/recipes-gnome/gcr/gcr/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch b/meta/recipes-gnome/gcr/gcr/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch new file mode 100644 index 0000000000..940f78ebab --- /dev/null +++ b/meta/recipes-gnome/gcr/gcr/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch @@ -0,0 +1,49 @@ +From 9b67bb18d8409e0e693cc6000507acbd73a30eab Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Wed, 16 Nov 2022 11:27:24 +0100 +Subject: [PATCH 1/2] meson.build: correctly handle disabled ssh_agent option + +Existing code produces these errors: +| gcr/meson.build:61:0: ERROR: Unable to get the path of a not-found external program +| gcr/meson.build:101:5: ERROR: Unknown variable "ssh_add_path". + +Signed-off-by: Alexander Kanavin <alex@linutronix.de> + +Upstream-Status: Backport [ https://gitlab.gnome.org/GNOME/gcr/-/commit/9b67bb18d8409e0e693cc6000507acbd73a30eab ] +--- + meson.build | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/meson.build b/meson.build +index 3f35173..11d7fa7 100644 +--- a/meson.build ++++ b/meson.build +@@ -58,8 +58,10 @@ if p11_system_config_modules == '' + error('Couldn\'t find location for pkcs11 module config') + endif + libsecret_dep = dependency('libsecret-1', version: '>= 0.20', required: get_option('ssh_agent')) +-ssh_add_path = find_program('ssh-add', required: get_option('ssh_agent')).full_path() +-ssh_agent_path = find_program('ssh-agent', required: get_option('ssh_agent')).full_path() ++if get_option('ssh_agent') ++ ssh_add_path = find_program('ssh-add').full_path() ++ ssh_agent_path = find_program('ssh-agent').full_path() ++endif + + with_systemd = false + libsystemd_deps = [] +@@ -96,8 +98,10 @@ conf.set('HAVE_TIMEGM', cc.has_function('timegm')) + conf.set('HAVE_MLOCK', cc.has_function('mlock')) + conf.set_quoted('GPG_EXECUTABLE', gpg_path) + conf.set_quoted('LIBGCRYPT_VERSION', libgcrypt_dep.version()) +-conf.set_quoted('SSH_ADD_EXECUTABLE', ssh_add_path) +-conf.set_quoted('SSH_AGENT_EXECUTABLE', ssh_agent_path) ++if get_option('ssh_agent') ++ conf.set_quoted('SSH_ADD_EXECUTABLE', ssh_add_path) ++ conf.set_quoted('SSH_AGENT_EXECUTABLE', ssh_agent_path) ++endif + conf.set10('WITH_SYSTEMD', with_systemd) + config_file = configure_file( + output: 'config.h', +-- +2.34.1 + diff --git a/meta/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch b/meta/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch new file mode 100644 index 0000000000..d3c26d97ae --- /dev/null +++ b/meta/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch @@ -0,0 +1,36 @@ +From 9b67bb18d8409e0e693cc6000507acbd73a30eab Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Wed, 16 Nov 2022 11:27:24 +0100 +Subject: [PATCH 1/2] meson.build: correctly handle disabled ssh_agent option + +Existing code produces these errors: +| gcr/meson.build:61:0: ERROR: Unable to get the path of a not-found external program +| gcr/meson.build:101:5: ERROR: Unknown variable "ssh_add_path". + +Signed-off-by: Alexander Kanavin <alex@linutronix.de> + +Upstream-Status: Backport [ https://gitlab.gnome.org/GNOME/gcr/-/commit/9b67bb18d8409e0e693cc6000507acbd73a30eab ] +--- + meson.build | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/meson.build b/meson.build +index 3f35173..11d7fa7 100644 +--- a/meson.build ++++ b/meson.build +@@ -96,8 +98,10 @@ conf.set('HAVE_TIMEGM', cc.has_function('timegm')) + conf.set('HAVE_MLOCK', cc.has_function('mlock')) + conf.set_quoted('GPG_EXECUTABLE', gpg_path) + conf.set_quoted('LIBGCRYPT_VERSION', libgcrypt_dep.version()) +-conf.set_quoted('SSH_ADD_EXECUTABLE', ssh_add_path) +-conf.set_quoted('SSH_AGENT_EXECUTABLE', ssh_agent_path) ++if get_option('ssh_agent') ++ conf.set_quoted('SSH_ADD_EXECUTABLE', ssh_add_path) ++ conf.set_quoted('SSH_AGENT_EXECUTABLE', ssh_agent_path) ++endif + conf.set10('WITH_SYSTEMD', with_systemd) + config_file = configure_file( + output: 'config.h', +-- +2.34.1 + diff --git a/meta/recipes-gnome/gcr/gcr3_3.41.1.bb b/meta/recipes-gnome/gcr/gcr3_3.41.1.bb new file mode 100644 index 0000000000..ba5660a5ed --- /dev/null +++ b/meta/recipes-gnome/gcr/gcr3_3.41.1.bb @@ -0,0 +1,59 @@ +SUMMARY = "A library for bits of crypto UI and parsing etc" +DESCRIPTION = "GCR is a library for displaying certificates, and crypto UI, \ +accessing key stores. It also provides the viewer for crypto files on the \ +GNOME desktop." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcr" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/gcr/issues" + +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +DEPENDS = "p11-kit glib-2.0 libgcrypt gnupg-native \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}" + +CACHED_CONFIGUREVARS += "ac_cv_path_GPG='gpg2'" + +CFLAGS += "-D_GNU_SOURCE" + +GNOMEBASEBUILDCLASS = "meson" +GTKDOC_MESON_OPTION = "gtk_doc" +inherit gnomebase gtk-icon-cache gi-docgen features_check upstream-version-is-even vala gobject-introspection gettext mime mime-xdg +UPSTREAM_CHECK_REGEX = "[^\d\.](?P<pver>3.(?!9\d+)\d+(\.\d+)+)\.tar" + +SRC_URI = "https://download.gnome.org/sources/gcr/3.41/gcr-${PV}.tar.xz;name=archive" +SRC_URI += "file://0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch" +SRC_URI[archive.sha256sum] = "bb7128a3c2febbfee9c03b90d77d498d0ceb237b0789802d60185c71c4bea24f" + +S = "${WORKDIR}/gcr-${PV}" + +PACKAGECONFIG ??= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gtk', '', d)} \ +" +PACKAGECONFIG[gtk] = "-Dgtk=true,-Dgtk=false,gtk+3" +PACKAGECONFIG[ssh_agent] = "-Dssh_agent=true,-Dssh_agent=false,libsecret,openssh" +#'Use systemd socket activation for server programs' +PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd" + +FILES:${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/gcr-3 \ + ${systemd_user_unitdir}/gcr-ssh-agent.socket \ + ${systemd_user_unitdir}/gcr-ssh-agent.service \ +" + +# http://errors.yoctoproject.org/Errors/Details/20229/ +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" +ARM_INSTRUCTION_SET:armv6 = "arm" + +EXTRA_OEMESON += "--cross-file ${WORKDIR}/meson-${PN}.cross" +do_write_config:append() { + cat >${WORKDIR}/meson-${PN}.cross <<EOF +[binaries] +gpg2 = '${bindir}/gpg2' +ssh-add = '${bindir}/ssh-add' +ssh-agent = '${bindir}/ssh-agent' +EOF +} diff --git a/meta/recipes-gnome/gcr/gcr_3.20.0.bb b/meta/recipes-gnome/gcr/gcr_3.20.0.bb deleted file mode 100644 index bcce57d586..0000000000 --- a/meta/recipes-gnome/gcr/gcr_3.20.0.bb +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "A library for bits of crypto UI and parsing etc" -HOMEPAGE = "http://www.gnome.org/" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" - -DEPENDS = "intltool-native gtk+3 p11-kit glib-2.0 libgcrypt" - -inherit autotools gnomebase gtk-icon-cache gtk-doc distro_features_check upstream-version-is-even vala gobject-introspection -# depends on gtk+3, but also x11 through gtk+-x11 -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI[archive.md5sum] = "4314bf89eac293dd0a9d806593ff1b35" -SRC_URI[archive.sha256sum] = "90572c626d8a708225560c42b4421f7941315247fa1679d4ef569bde7f4bb379" - -FILES_${PN} += " \ - ${datadir}/dbus-1 \ - ${datadir}/gcr-3 \ -" - -# http://errors.yoctoproject.org/Errors/Details/20229/ -ARM_INSTRUCTION_SET = "arm" - -# on x86-64 the introspection binary goes into -# an infinite loop under qemu during compilation, -# printing the following: -# -# gcrypt-Message: select() error: Bad address -# -# gcrypt-Message: select() error: Bad address -# -# gcrypt-Message: select() error: Bad address -# -# This will be investigated later. -EXTRA_OECONF_append_x86-64 = " --disable-introspection" - -# Gcr-3.broken: poky/build-mips64/tmp/work/mips64-poky-linux/libgpg-error/1.19-r0/libgpg-error-1.19/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed. -# qemu: uncaught target signal 6 (Aborted) - core dumped -EXTRA_OECONF_append_mips64 = " --disable-introspection" diff --git a/meta/recipes-gnome/gcr/gcr_4.0.0.bb b/meta/recipes-gnome/gcr/gcr_4.0.0.bb new file mode 100644 index 0000000000..22edd386fc --- /dev/null +++ b/meta/recipes-gnome/gcr/gcr_4.0.0.bb @@ -0,0 +1,59 @@ +SUMMARY = "A library for bits of crypto UI and parsing etc" +DESCRIPTION = "GCR is a library for displaying certificates, and crypto UI, \ +accessing key stores. It also provides the viewer for crypto files on the \ +GNOME desktop." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcr" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/gcr/issues" + +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +DEPENDS = "p11-kit glib-2.0 libgcrypt gnupg-native \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}" + +CACHED_CONFIGUREVARS += "ac_cv_path_GPG='gpg2'" + +CFLAGS += "-D_GNU_SOURCE" + +GNOMEBASEBUILDCLASS = "meson" +GTKDOC_MESON_OPTION = "gtk_doc" +inherit gnomebase gtk-icon-cache gi-docgen features_check upstream-version-is-even vala gobject-introspection gettext mime mime-xdg +UPSTREAM_CHECK_REGEX = "gcr-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)\.tar.xz" + +REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl', '', d)}" + +SRC_URI += "file://0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch" +SRC_URI[archive.sha256sum] = "c45855924f0ee7bab43e2dd38bfafd2ac815c6e9864341c0161e171173dcec7c" + +PACKAGECONFIG ??= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gtk', '', d)} \ +" +PACKAGECONFIG[gtk] = "-Dgtk4=true,-Dgtk4=false,gtk4" +PACKAGECONFIG[ssh_agent] = "-Dssh_agent=true,-Dssh_agent=false,libsecret,openssh" +#'Use systemd socket activation for server programs' +PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd" + +FILES:${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/gcr-4 \ + ${systemd_user_unitdir}/gcr-ssh-agent.socket \ + ${systemd_user_unitdir}/gcr-ssh-agent.service \ +" + +# http://errors.yoctoproject.org/Errors/Details/20229/ +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" +ARM_INSTRUCTION_SET:armv6 = "arm" + +EXTRA_OEMESON += "--cross-file=${WORKDIR}/meson-${PN}.cross" + +do_write_config:append() { + cat >${WORKDIR}/meson-${PN}.cross <<EOF +[binaries] +gpg2 = '${bindir}/gpg2' +ssh-add = '${bindir}/ssh-add' +ssh-agent = '${bindir}/ssh-agent' +EOF +} 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 @@ +From 9d3b374e75692da3d1d05344a1693c85a3098f47 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Thu, 26 Jan 2023 20:29:46 +0100 +Subject: [PATCH] meson.build: allow (a subset of) tests in cross compile + settings + +There is no need to completely disable tests: most of them +do not require running target executables at build time, +and so can be built and installed. + +This requires inserting a couple of specific guards around +items that do require running target executables. + +Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/merge_requests/150] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + meson.build | 6 +++--- + tests/meson.build | 10 ++++++---- + 2 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/meson.build b/meson.build +index 8a16c8f..7c8b20f 100644 +--- a/meson.build ++++ b/meson.build +@@ -369,10 +369,10 @@ subdir('gdk-pixbuf') + # i18n + subdir('po') + ++if get_option('tests') ++ subdir('tests') ++endif + if not meson.is_cross_build() +- if get_option('tests') +- subdir('tests') +- endif + subdir('thumbnailer') + endif + +diff --git a/tests/meson.build b/tests/meson.build +index 28c2525..c45e765 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -4,7 +4,7 @@ + # gdk-pixbuf-pixdata from build directory because it needs all DLL locations in + # $PATH. Ideally we should use gnome.compile_resources() and let Meson deal with + # this problem: See https://github.com/mesonbuild/meson/issues/8266. +-if enabled_loaders.contains('png') and host_system != 'windows' ++if enabled_loaders.contains('png') and host_system != 'windows' and not meson.is_cross_build() + # Resources; we cannot use gnome.compile_resources() here, because we need to + # override the environment in order to use the utilities we just built instead + # of the system ones +@@ -166,9 +166,11 @@ endif + test_deps = gdk_pixbuf_deps + [ gdkpixbuf_dep, ] + test_args = [ '-k' ] + test_env = environment() +-test_env.set('G_TEST_SRCDIR', meson.current_source_dir()) +-test_env.set('G_TEST_BUILDDIR', meson.current_build_dir()) +-test_env.set('GDK_PIXBUF_MODULE_FILE', loaders_cache.full_path()) ++if not meson.is_cross_build() ++ test_env.set('G_TEST_SRCDIR', meson.current_source_dir()) ++ test_env.set('G_TEST_BUILDDIR', meson.current_build_dir()) ++ test_env.set('GDK_PIXBUF_MODULE_FILE', loaders_cache.full_path()) ++endif + + foreach test_name, test_data: installed_tests + test_sources = [ test_name + '.c', 'test-common.c' ] diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch deleted file mode 100644 index edbdced43a..0000000000 --- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch +++ /dev/null @@ -1,42 +0,0 @@ -Upstream-Status: Pending - -This patch fixes parallel install issue that lib libpixbufloader-png.la -depends on libgdk_pixbuf-2.0.la which will be regenerated during insta- -llation, if libgdk_pixbuf-2.0.la is regenerating and at the same time -libpixbufloader-png.la links it, the error will happen. - -Error message is: -* usr/bin/ld: cannot find -lgdk_pixbuf-2.0 -* collect2: ld returned 1 exit status - -Make an explicit dependency to the libs install targets would fix this -issue. - -Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> ---- - gdk-pixbuf/Makefile.am | 1 + - libdeps.mk | 3 +++ - 2 files changed, 4 insertions(+), 0 deletions(-) - create mode 100644 libdeps.mk - -diff --git a/gdk-pixbuf/Makefile.am b/gdk-pixbuf/Makefile.am -index 95a93a8..db44cae 100644 ---- a/gdk-pixbuf/Makefile.am -+++ b/gdk-pixbuf/Makefile.am -@@ -783,3 +783,4 @@ loaders.cache: - endif - - -include $(top_srcdir)/git.mk -+-include $(top_srcdir)/libdeps.mk -diff --git a/libdeps.mk b/libdeps.mk -new file mode 100644 -index 0000000..d7a10a8 ---- /dev/null -+++ b/libdeps.mk -@@ -0,0 +1,3 @@ -+# Extending dependencies of install-loaderLTLIBRARIES: -+# The $(lib-LTLIBRARIES) is needed by relinking $(loader_LTLIBRARIES) -+install-loaderLTLIBRARIES: install-libLTLIBRARIES --- -1.7.6.1 - 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 70146c6181..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,14 +1,23 @@ +From b511bd1efb43ffc49c753e309717a242ec686ef1 Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@intel.com> +Date: Tue, 1 Apr 2014 17:23:36 +0100 +Subject: [PATCH] gdk-pixbuf: add an option so that loader errors are fatal + If an environment variable is specified set the return value from main() to non-zero if the loader had errors (missing libraries, generally). -Upstream-Status: Pending +Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/merge_requests/144] Signed-off-by: Ross Burton <ross.burton@intel.com> +--- + gdk-pixbuf/queryloaders.c | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + diff --git a/gdk-pixbuf/queryloaders.c b/gdk-pixbuf/queryloaders.c -index a9ca015..395674a 100644 +index 1d39b44..2b00815 100644 --- a/gdk-pixbuf/queryloaders.c +++ b/gdk-pixbuf/queryloaders.c -@@ -146,7 +146,7 @@ write_loader_info (GString *contents, const char *path, GdkPixbufFormat *info) +@@ -216,7 +216,7 @@ write_loader_info (GString *contents, const char *path, GdkPixbufFormat *info) g_string_append_c (contents, '\n'); } @@ -17,7 +26,7 @@ index a9ca015..395674a 100644 query_module (GString *contents, const char *dir, const char *file) { char *path; -@@ -155,6 +155,7 @@ query_module (GString *contents, const char *dir, const char *file) +@@ -225,6 +225,7 @@ query_module (GString *contents, const char *dir, const char *file) void (*fill_vtable) (GdkPixbufModule *module); gpointer fill_info_ptr; gpointer fill_vtable_ptr; @@ -25,7 +34,7 @@ index a9ca015..395674a 100644 if (g_path_is_absolute (file)) path = g_strdup (file); -@@ -204,10 +205,13 @@ query_module (GString *contents, const char *dir, const char *file) +@@ -274,10 +275,13 @@ query_module (GString *contents, const char *dir, const char *file) g_module_error()); else g_fprintf (stderr, "Cannot load loader %s\n", path); @@ -38,26 +47,27 @@ index a9ca015..395674a 100644 + return ret; } - #ifdef G_OS_WIN32 -@@ -257,6 +261,7 @@ int main (int argc, char **argv) - GString *contents; - gchar *cache_file = NULL; + #if defined(G_OS_WIN32) && defined(GDK_PIXBUF_RELOCATABLE) +@@ -318,6 +322,7 @@ int main (int argc, char **argv) gint first_file = 1; + GFile *pixbuf_libdir_file; + gchar *pixbuf_libdir; + gboolean success = TRUE; #ifdef G_OS_WIN32 gchar *libdir; -@@ -360,7 +365,8 @@ int main (int argc, char **argv) - gint len = strlen (dent); - if (len > SOEXT_LEN && - strcmp (dent + len - SOEXT_LEN, SOEXT) == 0) { -- query_module (contents, path, dent); -+ if (!query_module (contents, path, dent)) -+ success = FALSE; - } - } - g_dir_close (dir); -@@ -378,7 +384,8 @@ int main (int argc, char **argv) +@@ -456,7 +461,9 @@ int main (int argc, char **argv) + } + modules = g_list_sort (modules, (GCompareFunc)strcmp); + for (l = modules; l != NULL; l = l->next) +- query_module (contents, moduledir, l->data); ++ if (!query_module (contents, moduledir, l->data)) ++ success = FALSE; ++ + g_list_free_full (modules, g_free); + g_free (moduledir); + #else +@@ -472,7 +479,8 @@ int main (int argc, char **argv) infilename = g_locale_to_utf8 (infilename, -1, NULL, NULL, NULL); #endif @@ -67,9 +77,9 @@ index a9ca015..395674a 100644 } g_free (cwd); } -@@ -394,5 +401,8 @@ int main (int argc, char **argv) - else - g_print ("%s\n", contents->str); +@@ -490,5 +498,8 @@ int main (int argc, char **argv) + + g_free (pixbuf_libdir); - return 0; + if (g_getenv ("GDK_PIXBUF_FATAL_LOADER")) diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch deleted file mode 100644 index ecca62a712..0000000000 --- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch +++ /dev/null @@ -1,33 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -Index: gdk-pixbuf-2.22.1/configure.ac -=================================================================== ---- gdk-pixbuf-2.22.1.orig/configure.ac 2010-11-26 09:06:34.000000000 +0800 -+++ gdk-pixbuf-2.22.1/configure.ac 2010-11-26 09:07:33.000000000 +0800 -@@ -287,7 +287,7 @@ - case $enable_explicit_deps in - auto) - export SED -- deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` -+ deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` - if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then - enable_explicit_deps=yes - else -@@ -484,7 +484,7 @@ - dnl Now we check to see if our libtool supports shared lib deps - dnl (in a rather ugly way even) - if $dynworks; then -- pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config" -+ pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./$host_alias-libtool --config" - pixbuf_deplibs_check=`$pixbuf_libtool_config | \ - grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \ - sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'` -@@ -957,7 +957,7 @@ - # We are using gmodule-no-export now, but I'm leaving the stripping - # code in place for now, since pango and atk still require gmodule. - export SED --export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` -+export_dynamic=`(./$host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` - if test -n "$export_dynamic"; then - GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"` - fi diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.34.0.bb b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.34.0.bb deleted file mode 100644 index c24ec128d3..0000000000 --- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.34.0.bb +++ /dev/null @@ -1,102 +0,0 @@ -SUMMARY = "Image loading library for GTK+" -HOMEPAGE = "http://www.gtk.org/" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ - file://gdk-pixbuf/gdk-pixbuf.h;endline=26;md5=72b39da7cbdde2e665329fef618e1d6b" - -SECTION = "libs" - -DEPENDS = "glib-2.0" - -MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" - -SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ - file://hardcoded_libtool.patch \ - file://extending-libinstall-dependencies.patch \ - file://run-ptest \ - file://fatal-loader.patch \ - " - -SRC_URI[md5sum] = "63cb19f92cf7709ccf44bbb6fe1ff70c" -SRC_URI[sha256sum] = "d55e5b383ee219bd0e23bf6ed4427d56a7db5379729a6e3e0a0e0eba9a8d8879" - -inherit autotools pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection - -LIBV = "2.10.0" - -GDK_PIXBUF_LOADERS ?= "png jpeg" - -PACKAGECONFIG ??= "${GDK_PIXBUF_LOADERS}" -PACKAGECONFIG_linuxstdbase = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} ${GDK_PIXBUF_LOADERS}" -PACKAGECONFIG_class-native = "${GDK_PIXBUF_LOADERS}" - -PACKAGECONFIG[png] = "--with-libpng,--without-libpng,libpng" -PACKAGECONFIG[jpeg] = "--with-libjpeg,--without-libjpeg,jpeg" -PACKAGECONFIG[tiff] = "--with-libtiff,--without-libtiff,tiff" -PACKAGECONFIG[jpeg2000] = "--with-libjasper,--without-libjasper,jasper" - -# Use GIO to sniff image format instead of trying all loaders -PACKAGECONFIG[gio-sniff] = "--enable-gio-sniffing,--disable-gio-sniffing,,shared-mime-info" -PACKAGECONFIG[x11] = "--with-x11,--without-x11,virtual/libx11" - -PACKAGES =+ "${PN}-xlib" - -FILES_${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}" -ALLOW_EMPTY_${PN}-xlib = "1" - -FILES_${PN} += "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" - -FILES_${PN}-dev += " \ - ${bindir}/gdk-pixbuf-csource \ - ${bindir}/gdk-pixbuf-pixdata \ - ${includedir}/* \ - ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/*.la \ -" - -PACKAGES_DYNAMIC += "^gdk-pixbuf-loader-.*" -PACKAGES_DYNAMIC_class-native = "" - -python populate_packages_prepend () { - postinst_pixbufloader = d.getVar("postinst_pixbufloader", True) - - loaders_root = d.expand('${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders') - - packages = ' '.join(do_split_packages(d, loaders_root, '^libpixbufloader-(.*)\.so$', 'gdk-pixbuf-loader-%s', 'GDK pixbuf loader for %s')) - d.setVar('PIXBUF_PACKAGES', packages) - - # The test suite exercises all the loaders, so ensure they are all - # dependencies of the ptest package. - d.appendVar("RDEPENDS_gdk-pixbuf-ptest", " " + packages) -} - -do_install_append() { - # Move gdk-pixbuf-query-loaders into libdir so it is always available - # in multilib builds. - mv ${D}/${bindir}/gdk-pixbuf-query-loaders ${D}/${libdir}/gdk-pixbuf-2.0/ -} - -do_install_append_class-native() { - find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \; - - create_wrapper ${D}/${bindir}/gdk-pixbuf-csource \ - GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache - - create_wrapper ${D}/${bindir}/gdk-pixbuf-pixdata \ - GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache - - create_wrapper ${D}/${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ - GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \ - GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders -} -BBCLASSEXTEND = "native" - -SSTATEPREINSTFUNCS_append_class-native = " gdkpixbuf_sstate_preinst" -SYSROOT_PREPROCESS_FUNCS_append_class-native = " gdkpixbuf_sstate_preinst" - -gdkpixbuf_sstate_preinst() { - if [ "${BB_CURRENTTASK}" = "populate_sysroot" ]; then - rm -rf ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/* - fi -} diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.10.bb b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.10.bb new file mode 100644 index 0000000000..cca89a9059 --- /dev/null +++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.10.bb @@ -0,0 +1,119 @@ +SUMMARY = "Image loading library for GTK+" +DESCRIPTION = "The GDK Pixbuf library provides: Image loading and saving \ +facilities, fast scaling and compositing of pixbufs and Simple animation \ +loading (ie. animated GIFs)" +HOMEPAGE = "https://wiki.gnome.org/Projects/GdkPixbuf" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/gdk-pixbuf/issues" + +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://gdk-pixbuf/gdk-pixbuf.h;endline=26;md5=72b39da7cbdde2e665329fef618e1d6b \ + " + +SECTION = "libs" + +DEPENDS = "glib-2.0 shared-mime-info" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ + file://run-ptest \ + file://fatal-loader.patch \ + file://0001-meson.build-allow-a-subset-of-tests-in-cross-compile.patch \ + " + +SRC_URI[sha256sum] = "ee9b6c75d13ba096907a2e3c6b27b61bcd17f5c7ebeab5a5b439d2f2e39fe44b" + +inherit meson pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gi-docgen lib_package + +GIR_MESON_OPTION = 'introspection' +GIR_MESON_ENABLE_FLAG = "enabled" +GIR_MESON_DISABLE_FLAG = "disabled" + +LIBV = "2.10.0" + +GDK_PIXBUF_LOADERS ?= "png jpeg" + +PACKAGECONFIG = "${GDK_PIXBUF_LOADERS} \ + ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" +PACKAGECONFIG:class-native = "${GDK_PIXBUF_LOADERS}" + +PACKAGECONFIG[png] = "-Dpng=enabled,-Dpng=disabled,libpng" +PACKAGECONFIG[jpeg] = "-Djpeg=enabled,-Djpeg=disabled,jpeg" +PACKAGECONFIG[tiff] = "-Dtiff=enabled,-Dtiff=disabled,tiff" +PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false" + +EXTRA_OEMESON = "-Dman=false" + +PACKAGES =+ "${PN}-xlib" + +# For GIO image type sniffing +RDEPENDS:${PN} = "shared-mime-info" + +FILES:${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}" +ALLOW_EMPTY:${PN}-xlib = "1" + +FILES:${PN} += "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" + +FILES:${PN}-bin += "${datadir}/thumbnailers/gdk-pixbuf-thumbnailer.thumbnailer" + +FILES:${PN}-dev += " \ + ${bindir}/gdk-pixbuf-csource \ + ${bindir}/gdk-pixbuf-pixdata \ + ${bindir}/gdk-pixbuf-print-mime-types \ + ${includedir}/* \ + ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/*.la \ +" + +PACKAGES_DYNAMIC += "^gdk-pixbuf-loader-.*" +PACKAGES_DYNAMIC:class-native = "" + +python populate_packages:prepend () { + postinst_pixbufloader = d.getVar("postinst_pixbufloader") + + loaders_root = d.expand('${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders') + + packages = ' '.join(do_split_packages(d, loaders_root, r'^libpixbufloader-(.*)\.so$', 'gdk-pixbuf-loader-%s', 'GDK pixbuf loader for %s')) + d.setVar('PIXBUF_PACKAGES', packages) + + # The test suite exercises all the loaders, so ensure they are all + # dependencies of the ptest package. + d.appendVar("RDEPENDS:%s-ptest" % d.getVar('PN'), " " + packages) +} + +do_install:append() { + # Copy gdk-pixbuf-query-loaders into libdir so it is always available + # in multilib builds. + cp ${D}/${bindir}/gdk-pixbuf-query-loaders ${D}/${libdir}/gdk-pixbuf-2.0/ + +} + +do_install_ptest() { + # Remove a bad fuzzing attempt that sporadically fails without a way to reproduce + rm ${D}/${datadir}/installed-tests/gdk-pixbuf/pixbuf-randomly-modified.test + # https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/issues/215 + rm ${D}/${datadir}/installed-tests/gdk-pixbuf/pixbuf-jpeg.test +} + +do_install:append:class-native() { + find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \; + + create_wrapper ${D}/${bindir}/gdk-pixbuf-csource \ + XDG_DATA_DIRS=${STAGING_DATADIR} \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache + + create_wrapper ${D}/${bindir}/gdk-pixbuf-pixdata \ + XDG_DATA_DIRS=${STAGING_DATADIR} \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache + + create_wrapper ${D}/${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ + XDG_DATA_DIRS=${STAGING_DATADIR} \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \ + GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders + + create_wrapper ${D}/${bindir}/gdk-pixbuf-query-loaders \ + XDG_DATA_DIRS=${STAGING_DATADIR} \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \ + GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders +} +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-gnome/gi-docgen/gi-docgen_2023.1.bb b/meta/recipes-gnome/gi-docgen/gi-docgen_2023.1.bb new file mode 100644 index 0000000000..7722ebda8f --- /dev/null +++ b/meta/recipes-gnome/gi-docgen/gi-docgen_2023.1.bb @@ -0,0 +1,21 @@ +SUMMARY = "Documentation tool for GObject-based libraries" +DESCRIPTION = "GI-DocGen is a document generator for GObject-based libraries. GObject is \ +the base type system of the GNOME project. GI-Docgen reuses the \ +introspection data generated by GObject-based libraries to generate the API \ +reference of these libraries, as well as other ancillary documentation." +HOMEPAGE = "https://gnome.pages.gitlab.gnome.org/gi-docgen/" + +LICENSE = "GPL-3.0-or-later & Apache-2.0" +LIC_FILES_CHKSUM = "file://gi-docgen.py;beginline=1;endline=5;md5=2dc0f1f01202478cfe813c0e7f80b326" + +SRC_URI = "git://gitlab.gnome.org/GNOME/gi-docgen.git;protocol=https;branch=main" + +SRCREV = "63b4fad4181e793f34b7777a89e5cb58fe8ac7e6" + +S = "${WORKDIR}/git" + +inherit setuptools3 + +RDEPENDS:${PN} += "python3-asyncio python3-core python3-jinja2 python3-json python3-markdown python3-markupsafe python3-pygments python3-toml python3-typogrify python3-xml" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.20.2.bb b/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.20.2.bb deleted file mode 100644 index a58585bfa9..0000000000 --- a/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.20.2.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "GNOME library for reading .desktop files" -SECTION = "x11/gnome" -LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -BPN = "gnome-desktop" - -inherit gnome pkgconfig upstream-version-is-even gobject-introspection -SRC_URI[archive.md5sum] = "8354ed38624f5eb6b5d34267b658a9c9" -SRC_URI[archive.sha256sum] = "492c2da7aa8c3a8b65796e8171fc8f0dfb5d322dd2799c0d76392e1fb061e2b2" - -DEPENDS += "intltool-native gsettings-desktop-schemas gconf libxrandr virtual/libx11 gtk+3 glib-2.0 startup-notification xkeyboard-config iso-codes" - -inherit distro_features_check -REQUIRED_DISTRO_FEATURES = "x11" - -EXTRA_OECONF = "--disable-desktop-docs" - -PACKAGES =+ "libgnome-desktop3" -FILES_libgnome-desktop3 = "${libdir}/lib*${SOLIBS} ${datadir}/libgnome-desktop*/pnp.ids ${datadir}/gnome/*xml" - -RRECOMMENDS_libgnome-desktop3 += "gsettings-desktop-schemas" 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 new file mode 100644 index 0000000000..0a1487f8e3 --- /dev/null +++ b/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch @@ -0,0 +1,27 @@ +From e1a12b73c25d1ad0f267b22ac5d799bc1fbd0fa4 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen <jussi.kukkonen@intel.com> +Date: Tue, 30 May 2017 14:55:49 +0300 +Subject: [PATCH] Don't use AC_CANONICAL_HOST + +This won't work when building allarch (and is only used to find out if +target is windows). + +Upstream-Status: Inappropriate [embedded specific] +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> + +--- + configure.ac | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 6ddc49b..39752bb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3,7 +3,6 @@ AC_PREREQ(2.53) + + AC_INIT([adwaita-icon-theme], [43], + [http://bugzilla.gnome.org/enter_bug.cgi?product=adwaita-icon-theme]) +-AC_CANONICAL_HOST + AC_CONFIG_MACRO_DIR([m4]) + AC_CONFIG_SRCDIR([index.theme.in]) + diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.18.0.bb b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.18.0.bb deleted file mode 100644 index 34b82b7e74..0000000000 --- a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.18.0.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "GTK+ icon theme" -HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/adwaita-icon-theme/" -BUGTRACKER = "https://bugzilla.gnome.org/" -SECTION = "x11/gnome" - -LICENSE = "LGPL-3.0 | CC-BY-SA-3.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c" - -inherit allarch autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even - -DEPENDS += "intltool-native" - -MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" -SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ - " - -SRC_URI[md5sum] = "ec1fa3fde83ad166ae7075a97dc1ec4b" -SRC_URI[sha256sum] = "5e9ce726001fdd8ee93c394fdc3cdb9e1603bbed5b7c62df453ccf521ec50e58" - -do_install_append() { - # Build uses gtk-encode-symbolic-svg to create png versions: - # no need to store the svgs anymore. - rm -f ${D}${prefix}/share/icons/Adwaita/scalable/*/*-symbolic.svg \ - ${D}${prefix}/share/icons/Adwaita/scalable/*/*-symbolic-rtl.svg -} - -PACKAGES = "${PN}-cursors ${PN}-symbolic-hires ${PN}-symbolic ${PN}-hires ${PN}" - -RREPLACES_${PN} = "gnome-icon-theme" -RCONFLICTS_${PN} = "gnome-icon-theme" -RPROVIDES_${PN} = "gnome-icon-theme" - -FILES_${PN}-cursors = "${prefix}/share/icons/Adwaita/cursors/" -FILES_${PN}-symbolic-hires = "${prefix}/share/icons/Adwaita/96x96/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/64x64/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/48x48/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/32x32/*/*.symbolic.png" -FILES_${PN}-symbolic = "${prefix}/share/icons/Adwaita/16x16/*/*.symbolic.png \ - ${prefix}/share/icons/Adwaita/24x24/*/*.symbolic.png" -FILES_${PN}-hires = "${prefix}/share/icons/Adwaita/256x256/" -FILES_${PN} = "${prefix}/share/icons/Adwaita/ \ - ${prefix}/share/pkgconfig/adwaita-icon-theme.pc" diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme_43.bb b/meta/recipes-gnome/gnome/adwaita-icon-theme_43.bb new file mode 100644 index 0000000000..8cb4d147f1 --- /dev/null +++ b/meta/recipes-gnome/gnome/adwaita-icon-theme_43.bb @@ -0,0 +1,40 @@ +SUMMARY = "GTK+ icon theme" +DESCRIPTION = "The Adwaita icon theme is the default icon theme of the GNOME desktop \ +This package package contains an icon theme for Gtk+ 3 applications." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues" +SECTION = "x11/gnome" + +LICENSE = "LGPL-3.0-only | CC-BY-SA-3.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c \ + file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \ + file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02" + +inherit allarch autotools pkgconfig gettext gtk-icon-cache gnomebase + +SRC_URI += " file://0001-Don-t-use-AC_CANONICAL_HOST.patch" + +SRC_URI[archive.sha256sum] = "2e3ac77d32a6aa5554155df37e8f0a0dd54fc5a65fd721e88d505f970da32ec6" + +DEPENDS += "librsvg-native" + +PACKAGES = "${PN}-cursors ${PN}-symbolic-hires ${PN}-symbolic ${PN}-hires ${PN}" + +RREPLACES:${PN} = "gnome-icon-theme" +RCONFLICTS:${PN} = "gnome-icon-theme" +RPROVIDES:${PN} = "gnome-icon-theme" + +FILES:${PN}-cursors = "${prefix}/share/icons/Adwaita/cursors/" +FILES:${PN}-symbolic-hires = "${prefix}/share/icons/Adwaita/96x96/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/64x64/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/48x48/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/32x32/*/*.symbolic.png" +FILES:${PN}-symbolic = "${prefix}/share/icons/Adwaita/16x16/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/24x24/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/scalable/*/*-symbolic*.svg" +FILES:${PN}-hires = "${prefix}/share/icons/Adwaita/256x256/ \ + ${prefix}/share/icons/Adwaita/512x512/" +FILES:${PN} = "${prefix}/share/icons/Adwaita/ \ + ${prefix}/share/pkgconfig/adwaita-icon-theme.pc" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-gnome/gnome/gconf/create_config_directory.patch b/meta/recipes-gnome/gnome/gconf/create_config_directory.patch new file mode 100644 index 0000000000..cd72e739b0 --- /dev/null +++ b/meta/recipes-gnome/gnome/gconf/create_config_directory.patch @@ -0,0 +1,28 @@ +Upstream-Status: Pending + +In some circumstances, gconf isn't able to save configurations +because ~/.config folder aka root_dir doesn't exist. +This issue was not seen before because ~/.config directory is shared +between several packages and one of those packages usually creates it +by the time gconf wants to use it. + +This patch makes sure that gconf creates the .config directory if it +doesn't exist, along with the gconf directory inside it. + +Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com> +Signed-off-by: Alejandro Hernandez <alejandr@xilinx.com> + + +Index: GConf-3.2.6/backends/markup-backend.c +=================================================================== +--- GConf-3.2.6.orig/backends/markup-backend.c ++++ GConf-3.2.6/backends/markup-backend.c +@@ -276,7 +276,7 @@ resolve_address (const char *address, + /* dir_mode without search bits */ + file_mode = dir_mode & (~0111); + } +- else if (g_mkdir (root_dir, dir_mode) < 0) ++ else if (g_mkdir_with_parents (root_dir, dir_mode) < 0) + { + /* Error out even on EEXIST - shouldn't happen anyway */ + gconf_set_error (err, GCONF_ERROR_FAILED, diff --git a/meta/recipes-gnome/gnome/gconf/python3.patch b/meta/recipes-gnome/gnome/gconf/python3.patch new file mode 100644 index 0000000000..7c022a2e1b --- /dev/null +++ b/meta/recipes-gnome/gnome/gconf/python3.patch @@ -0,0 +1,60 @@ +gconf: use python3 + +Convert gsettings-schema-convert to use python3. + +Upstream-Status: Inappropriate [gconf is deprecated] + +Signed-off-by: Joe Slater <joe.slater@windriver.com> + + +--- a/gsettings/gsettings-schema-convert ++++ b/gsettings/gsettings-schema-convert +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # vim: set ts=4 sw=4 et: coding=UTF-8 + # + # Copyright (c) 2010, Novell, Inc. +@@ -603,7 +603,7 @@ class SimpleSchemaParser: + for line in lines: + current_line_nb += 1 + self.parse_line(line) +- except GSettingsSchemaConvertException, e: ++ except GSettingsSchemaConvertException as e: + raise GSettingsSchemaConvertException('%s:%s: %s' % (os.path.basename(self.file), current_line_nb, e)) + + return self.root +@@ -1095,7 +1095,7 @@ def main(args): + try: + parser = GConfSchemaParser(argfile, options.gettext_domain, options.schema_id, options.keep_underscores) + schema_root = parser.parse() +- except SyntaxError, e: ++ except SyntaxError as e: + raise GSettingsSchemaConvertException('\'%s\' does not look like a valid gconf schema file: %s' % (argfile, e)) + else: + # autodetect if file is XML or not +@@ -1104,7 +1104,7 @@ def main(args): + schema_root = parser.parse() + if not options.simple and not options.xml: + options.simple = True +- except SyntaxError, e: ++ except SyntaxError as e: + parser = SimpleSchemaParser(argfile) + schema_root = parser.parse() + if not options.simple and not options.xml: +@@ -1127,13 +1127,13 @@ def main(args): + fout = open(options.output, 'w') + fout.write(output) + fout.close() +- except GSettingsSchemaConvertException, e: ++ except GSettingsSchemaConvertException as e: + fout.close() + if os.path.exists(options.output): + os.unlink(options.output) + raise e + +- except GSettingsSchemaConvertException, e: ++ except GSettingsSchemaConvertException as e: + print >> sys.stderr, '%s' % e + return 1 + diff --git a/meta/recipes-gnome/gnome/gconf_3.2.6.bb b/meta/recipes-gnome/gnome/gconf_3.2.6.bb index 9e9f714282..776f6091aa 100644 --- a/meta/recipes-gnome/gnome/gconf_3.2.6.bb +++ b/meta/recipes-gnome/gnome/gconf_3.2.6.bb @@ -1,6 +1,10 @@ SUMMARY = "GNOME configuration system" +DESCRIPTION = "GConf is a system for storing application preferences. \ +It is intended for user preferences; not configuration of something like \ +Apache, or arbitrary data storage." SECTION = "x11/gnome" -LICENSE = "LGPLv2+" +HOMEPAGE = "https://gitlab.gnome.org/Archive/gconf" +LICENSE = "LGPL-2.0-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" DEPENDS = "glib-2.0 dbus dbus-glib libxml2 intltool-native" @@ -10,6 +14,8 @@ inherit gnomebase gtk-doc gettext gobject-introspection gio-module-cache SRC_URI = "${GNOME_MIRROR}/GConf/${@gnome_verdir("${PV}")}/GConf-${PV}.tar.xz;name=archive \ file://remove_plus_from_invalid_characters_list.patch \ file://unable-connect-dbus.patch \ + file://create_config_directory.patch \ + file://python3.patch \ " SRC_URI[archive.md5sum] = "2b16996d0e4b112856ee5c59130e822c" @@ -20,16 +26,14 @@ S = "${WORKDIR}/GConf-${PV}" EXTRA_OECONF = "--enable-shared --disable-static \ --disable-orbit --with-openldap=no --disable-gtk" -# Disable PolicyKit by default -PACKAGECONFIG ??= "" -# We really don't want PolicyKit for native or uclibc -PACKAGECONFIG_class-native = "" -PACKAGECONFIG_libc-uclibc = "" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)}" +# We really don't want Polkit for native +PACKAGECONFIG:class-native = "" -PACKAGECONFIG[policykit] = "--enable-defaults-service,--disable-defaults-service,polkit" +PACKAGECONFIG[polkit] = "--enable-defaults-service,--disable-defaults-service,polkit" PACKAGECONFIG[debug] = "--enable-debug=yes, --enable-debug=minimum" -do_install_append() { +do_install:append() { # this directory need to be created to avoid an Error 256 at gdm launch install -d ${D}${sysconfdir}/gconf/gconf.xml.system @@ -38,17 +42,19 @@ do_install_append() { rm -f ${D}${libdir}/gio/*/*.*a } -do_install_append_class-native() { +do_install:append:class-native() { create_wrapper ${D}/${bindir}/gconftool-2 \ GCONF_BACKEND_DIR=${STAGING_LIBDIR_NATIVE}/GConf/2 } -FILES_${PN} += "${libdir}/GConf/* \ +FILES:${PN} += "${libdir}/GConf/* \ ${libdir}/gio/*/*.so \ ${datadir}/polkit* \ ${datadir}/dbus-1/services/*.service \ ${datadir}/dbus-1/system-services/*.service \ " -FILES_${PN}-dev += "${datadir}/sgml/gconf/gconf-1.0.dtd" +RDEPENDS:${PN} = "python3-xml" + +FILES:${PN}-dev += "${datadir}/sgml/gconf/gconf-1.0.dtd" BBCLASSEXTEND = "native" diff --git a/meta/recipes-gnome/gnome/gnome-common_3.18.0.bb b/meta/recipes-gnome/gnome/gnome-common_3.18.0.bb deleted file mode 100644 index 06f3bb34cf..0000000000 --- a/meta/recipes-gnome/gnome/gnome-common_3.18.0.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Common macros for building GNOME applications" -HOMEPAGE = "http://www.gnome.org/" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SECTION = "x11/gnome" -inherit gnomebase allarch - -SRC_URI[archive.md5sum] = "933258d9c23e218eb6eec9cc1951b053" -SRC_URI[archive.sha256sum] = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf" - -EXTRA_AUTORECONF = "" -DEPENDS = "" - -FILES_${PN} += "${datadir}/aclocal" -FILES_${PN}-dev = "" - -BBCLASSEXTEND = "native" diff --git a/meta/recipes-gnome/gnome/gnome-doc-utils/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch b/meta/recipes-gnome/gnome/gnome-doc-utils/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch deleted file mode 100644 index 4cfcabd385..0000000000 --- a/meta/recipes-gnome/gnome/gnome-doc-utils/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 426e38468463a4abb495cf6a269b9635b2107519 Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen <jussi.kukkonen@intel.com> -Date: Tue, 17 May 2016 13:51:24 +0300 -Subject: [PATCH] glib-gettext.m4: Update AM_GLIB_GNU_GETTEXT to match glib - -This avoids - error: m4_copy: won't overwrite defined macro: glib_DEFUN - -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> -Upstream-Status: Inappropriate [No upstream] ---- - m4/glib-gettext.m4 | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/m4/glib-gettext.m4 b/m4/glib-gettext.m4 -index 81f8fd2..e2b142b 100644 ---- a/m4/glib-gettext.m4 -+++ b/m4/glib-gettext.m4 -@@ -310,7 +310,7 @@ msgstr "" - # on various variables needed by the Makefile.in.in installed by - # glib-gettextize. - dnl --glib_DEFUN([GLIB_GNU_GETTEXT], -+AU_DEFUN([GLIB_GNU_GETTEXT], - [AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - -@@ -381,7 +381,8 @@ glib_DEFUN([GLIB_GNU_GETTEXT], - rm -f po/POTFILES - sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ - < $srcdir/po/POTFILES.in > po/POTFILES -- ]) -+ ] -+ [[$0: This macro is deprecated. You should use upstream gettext instead.]]) - - # AX_GLIB_DEFINE_LOCALEDIR(VARIABLE) - # ------------------------------- --- -2.1.4 - diff --git a/meta/recipes-gnome/gnome/gnome-themes-standard_3.18.0.bb b/meta/recipes-gnome/gnome/gnome-themes-standard_3.18.0.bb deleted file mode 100644 index 523253e4cd..0000000000 --- a/meta/recipes-gnome/gnome/gnome-themes-standard_3.18.0.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "GTK+2 standard themes" -HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/gnome-themes-standard/" -BUGTRACKER = "https://bugzilla.gnome.org/" -SECTION = "x11/gnome" - -LICENSE = "LGPL-2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" - -inherit autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even distro_features_check - -ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" - -DEPENDS += "intltool-native gtk+" - -MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" -SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ - " - -SRC_URI[md5sum] = "4d17bc62e4d0c5440fc4eda3d9271367" -SRC_URI[sha256sum] = "e646eb04c225282b7df7fff65741adaad4cf9ed2c12616b7310e7edd27d2bacb" - -EXTRA_OECONF = "--disable-gtk3-engine" - -do_install_append() { - # Only building Adwaita, remove highcontrast files - rm -rf ${D}${prefix}/share/themes/HighContrast \ - ${D}${prefix}/share/icons -} - -# There could be gnome-theme-highcontrast as well but that requires -# gtk+3 and includes lots of icons (is also broken with B != S). -PACKAGES += "gnome-theme-adwaita \ - gnome-theme-adwaita-dbg \ - gnome-theme-adwaita-dev" - -FILES_gnome-theme-adwaita = "${prefix}/share/themes/Adwaita \ - ${libdir}/gtk-2.0/2.10.0/engines/libadwaita.so" -FILES_gnome-theme-adwaita-dev = "${libdir}/gtk-2.0/2.10.0/engines/libadwaita.la" -FILES_gnome-theme-adwaita-dbg = "${libdir}/gtk-2.0/2.10.0/engines/.debug/libadwaita.so" diff --git a/meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch b/meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch deleted file mode 100644 index 0261f58c90..0000000000 --- a/meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch +++ /dev/null @@ -1,84 +0,0 @@ -Taken from portage - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -From e1443c945a4cf67096d8c27721aadd7368382b3f Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <eva@gentoo.org> -Date: Tue, 6 Apr 2010 15:22:25 +0200 -Subject: [PATCH 2/2] gentoo: use ISO types for fixed type size - ---- - Makefile.am | 11 ++--------- - art_config.h | 5 +++++ - configure.in | 10 ---------- - 3 files changed, 7 insertions(+), 19 deletions(-) - create mode 100644 art_config.h - -diff --git a/Makefile.am b/Makefile.am -index 95952da..6aa2fe3 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -2,13 +2,6 @@ check_PROGRAMS = testart testuta - - bin_SCRIPTS = \ - libart2-config -- --noinst_SCRIPTS = gen_art_config.sh -- --BUILT_SOURCES = art_config.h -- --art_config.h: -- ./gen_art_config.sh > art_config.h - - EXTRA_DIST = \ - libart.def \ -@@ -173,5 +166,5 @@ install-data-local: install-ms-lib install-libtool-import-lib - - uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib - --CLEANFILES = $(BUILT_SOURCES) $(bin_SCRIPTS) --DISTCLEANFILES = $(BUILT_SOURCES) $(bin_SCRIPTS) -+CLEANFILES = $(bin_SCRIPTS) -+DISTCLEANFILES = $(bin_SCRIPTS) -diff --git a/art_config.h b/art_config.h -new file mode 100644 -index 0000000..5985f1f ---- a/art_config.h -+++ b/art_config.h -@@ -0,0 +1,5 @@ -+#include <stdint.h> -+ -+typedef uint8_t art_u8; -+typedef uint16_t art_u16; -+typedef uint32_t art_u32; -diff --git a/configure.in b/configure.in -index e4804f7..ddcac4f 100644 ---- a/configure.in -+++ b/configure.in -@@ -92,15 +92,6 @@ AC_FUNC_ALLOCA - - AC_C_BIGENDIAN - --AC_CHECK_SIZEOF(char) --AC_SUBST(ART_SIZEOF_CHAR, $ac_cv_sizeof_char) --AC_CHECK_SIZEOF(short) --AC_SUBST(ART_SIZEOF_SHORT, $ac_cv_sizeof_short) --AC_CHECK_SIZEOF(int) --AC_SUBST(ART_SIZEOF_INT, $ac_cv_sizeof_int) --AC_CHECK_SIZEOF(long) --AC_SUBST(ART_SIZEOF_LONG, $ac_cv_sizeof_long) -- - AC_CONFIG_FILES([ - libart-features.h - Makefile -@@ -109,6 +100,5 @@ libart-2.0-uninstalled.pc - libart-zip]) - - AC_CONFIG_FILES([libart-config],[chmod +x libart-config]) --AC_CONFIG_FILES([gen_art_config.sh],[chmod +x gen_art_config.sh]) - - AC_OUTPUT --- -1.7.0.4 - diff --git a/meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb b/meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb deleted file mode 100644 index 95581b297c..0000000000 --- a/meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Library of functions for 2D graphics" -SECTION = "x11/gnome" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" -PR = "r2" - -# can't use gnome.oeclass due to _ in filename -SRC_URI = "${GNOME_MIRROR}/libart_lgpl/2.3/libart_lgpl-${PV}.tar.bz2 \ - file://libart_lgpl-2.3.21-crosscompile.patch \ - " - -SRC_URI[md5sum] = "08559ff3c67fd95d57b0c5e91a6b4302" -SRC_URI[sha256sum] = "fdc11e74c10fc9ffe4188537e2b370c0abacca7d89021d4d303afdf7fd7476fa" - -inherit autotools pkgconfig - -DEPENDS = "" - -FILES_${PN} = "${libdir}/*.so.*" -FILES_${PN}-dev += "${bindir}/libart2-config" - -S = "${WORKDIR}/libart_lgpl-${PV}" 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 new file mode 100644 index 0000000000..030ff17601 --- /dev/null +++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch @@ -0,0 +1,76 @@ +From d396e5126461631e2c73ce98ba034f1e44598f6a Mon Sep 17 00:00:00 2001 +From: Sascha Silbe <x-yo17@se-silbe.de> +Date: Fri, 8 Jun 2018 13:55:10 +0200 +Subject: [PATCH] Relocate the repository directory for native builds + +Instead of hard-coding GOBJECT_INTROSPECTION_LIBDIR when +gobject-introspection is built, use dladdr() to determine where +GOBJECT_INTROSPECTION_LIBDIR is and use that path to calculate the +repository directory. + +This fixes gobject-introspection-native accessing paths across build +directories (e.g. if the build directories use the same shared state +cache or sstate mirror). + +Upstream-Status: Inappropriate +Signed-off-by: Sascha Silbe <x-yo17@se-silbe.de> + +--- + girepository/girepository.c | 15 +++++++++++++-- + girepository/meson.build | 2 +- + 2 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/girepository/girepository.c b/girepository/girepository.c +index a0754f4..2d456f9 100644 +--- a/girepository/girepository.c ++++ b/girepository/girepository.c +@@ -21,6 +21,8 @@ + * Boston, MA 02111-1307, USA. + */ + ++#define _GNU_SOURCE ++ + #include "config.h" + + #include <stdio.h> +@@ -34,6 +36,8 @@ + #include "gitypelib-internal.h" + #include "girepository-private.h" + ++#include <dlfcn.h> ++ + /** + * SECTION:girepository + * @short_description: GObject Introspection repository manager +@@ -215,9 +219,16 @@ init_globals (void) + g_free (custom_dirs); + } + +- libdir = GOBJECT_INTROSPECTION_LIBDIR; ++ Dl_info gi_lib_info; + +- typelib_dir = g_build_filename (libdir, "girepository-1.0", NULL); ++ if (dladdr (g_irepository_get_default, &gi_lib_info)) { ++ char *libdir = g_path_get_dirname (gi_lib_info.dli_fname); ++ typelib_dir = g_build_filename (libdir, "girepository-1.0", NULL); ++ g_free (libdir); ++ } else { ++ libdir = GOBJECT_INTROSPECTION_LIBDIR; ++ typelib_dir = g_build_filename (libdir, "girepository-1.0", NULL); ++ } + + typelib_search_path = g_slist_prepend (typelib_search_path, typelib_dir); + +diff --git a/girepository/meson.build b/girepository/meson.build +index 786749a..15cf2a9 100644 +--- a/girepository/meson.build ++++ b/girepository/meson.build +@@ -45,7 +45,7 @@ girepo_internals_lib = static_library('girepository-internals', + ], + c_args: gi_hidden_visibility_cflags + custom_c_args, + include_directories : configinc, +- dependencies: [girepo_gthash_dep, libffi_dep], ++ dependencies: [girepo_gthash_dep, libffi_dep, cc.find_library('dl')], + ) + + girepo_internals_dep = declare_dependency( diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch deleted file mode 100644 index 9abaea7e7f..0000000000 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 3a9d1e5ee0aae56fafec0beba2014c19e4ff310c Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Wed, 23 Mar 2016 17:07:28 +0200 -Subject: [PATCH 1/5] Revert an incomplete upstream attempt at cross-compile - support - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - common.mk | 4 ---- - giscanner/gdumpparser.py | 6 ------ - 2 files changed, 10 deletions(-) - -diff --git a/common.mk b/common.mk -index b778f7a..e26c637 100644 ---- a/common.mk -+++ b/common.mk -@@ -24,12 +24,8 @@ INTROSPECTION_SCANNER_ARGS = \ - --add-include-path=$(top_builddir) \ - --add-include-path=$(top_builddir)/gir - --# GI_CROSS_LAUNCHER is the command to use for executing g-ir-compiler. --# Normally will be undefined but can be set (e.g. to wine or qemu) --# when cross-compiling - INTROSPECTION_COMPILER = \ - env PATH=".libs:$(PATH)" \ -- $(GI_CROSS_LAUNCHER) \ - $(top_builddir)/g-ir-compiler$(EXEEXT) - - INTROSPECTION_COMPILER_ARGS = \ -diff --git a/giscanner/gdumpparser.py b/giscanner/gdumpparser.py -index 1134f33..9bdc2bc 100644 ---- a/giscanner/gdumpparser.py -+++ b/giscanner/gdumpparser.py -@@ -162,12 +162,6 @@ blob containing data gleaned from GObject's primitive introspection.""" - out_path = os.path.join(self._binary.tmpdir, 'dump.xml') - - args = [] -- -- # Prepend the launcher command and arguments, if defined -- launcher = os.environ.get('GI_CROSS_LAUNCHER') -- if launcher: -- args.extend(launcher.split()) -- - args.extend(self._binary.args) - args.append('--introspect-dump=%s,%s' % (in_path, out_path)) - --- -2.7.0 - diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-g-ir-tool-template.in-fix-girdir-path.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-g-ir-tool-template.in-fix-girdir-path.patch new file mode 100644 index 0000000000..5c78649de4 --- /dev/null +++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-g-ir-tool-template.in-fix-girdir-path.patch @@ -0,0 +1,33 @@ +From b01b448613b76f9acefdfd89ee01686dc7a67df4 Mon Sep 17 00:00:00 2001 +From: Chen Qi <Qi.Chen@windriver.com> +Date: Tue, 13 Jul 2021 02:05:11 -0700 +Subject: [PATCH] g-ir-tool-template.in: fix girdir path + +In case gir_dir_prefix is set, it's possible that g-ir-scanner +cannot find the .gir files. This is because that the girdir +is set to gir_dir_prefix, which is wrong. It's not a prefix, +it the actual gir dir. + +Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/329] + +Signed-off-by: Chen Qi <Qi.Chen@windriver.com> +--- + tools/g-ir-tool-template.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/g-ir-tool-template.in b/tools/g-ir-tool-template.in +index 6e98f52e..62c07c31 100755 +--- a/tools/g-ir-tool-template.in ++++ b/tools/g-ir-tool-template.in +@@ -55,7 +55,7 @@ builtins.__dict__['DATADIR'] = datadir + + # Respect gir_dir_prefix + girdir = '' +-girdir = os.path.abspath(os.path.join(filedir, '..', '@gir_dir_prefix@')) ++girdir = os.path.abspath(os.path.join(filedir, '..', '@gir_dir_prefix@', 'gir-1.0')) + builtins.__dict__['GIRDIR'] = [girdir] + + # Again, relative paths first so that the installation prefix is relocatable +-- +2.30.2 + diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch deleted file mode 100644 index 48a0c85f02..0000000000 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch +++ /dev/null @@ -1,203 +0,0 @@ -From b1503fe2693d602b3e24e4b832dc0934960d5d22 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Mon, 19 Oct 2015 18:29:21 +0300 -Subject: [PATCH 2/5] configure.ac: add host-gi, gi-cross-wrapper, - gi-ldd-wrapper and introspection-data options - -With the first option, gobject-introspection tools (g-ir-doc-tool and g-ir-scanner) -that are already installed in the host system will be used for building the source tree. - -With the second option, g-ir-scanner will be instructed to use an executable -wrapper to run binaries it's producing, and g-ir-compiler will be run -through the same wrapper (host system's g-ir-compiler cannot be used because -it's producing architecture-specific output). - -With the third option, giscanner will be instructed to use a special ldd -command instead of system's ldd (which does not work when the binary to inspect -is compiled for a different architecture). - -With the fourth option, it is possible to disable building of introspection data -(.gir and .typelib files), which may be difficult or impossible in cross-compilation -environments, because of lack of emulation (or native hardware) for the target architecture -on which the target binaries can be run. - -These options are useful when cross-compiling for a different target architecture. - -Upstream-Status: Pending [review on oe-core list] -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - Makefile.am | 2 ++ - common.mk | 39 +++++++++++++++++++++++++++++++++++++++ - configure.ac | 42 ++++++++++++++++++++++++++++++++++++++++++ - tests/Makefile.am | 5 ++++- - 4 files changed, 87 insertions(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index b080a89..ce8d29b 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -21,7 +21,9 @@ include Makefile-cmph.am - include Makefile-girepository.am - include Makefile-giscanner.am - include Makefile-examples.am -+if BUILD_INTROSPECTION_DATA - include Makefile-gir.am -+endif - include Makefile-tools.am - include Makefile-msvcproj.am - -diff --git a/common.mk b/common.mk -index e26c637..9f3a65f 100644 ---- a/common.mk -+++ b/common.mk -@@ -6,6 +6,15 @@ - # module itself. - # - -+if USE_HOST_GI -+INTROSPECTION_SCANNER = \ -+ env PATH="$(PATH)" \ -+ LPATH=.libs \ -+ CC="$(CC)" \ -+ PYTHONPATH=$(top_builddir):$(top_srcdir) \ -+ UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \ -+ g-ir-scanner -+else - INTROSPECTION_SCANNER = \ - env PATH=".libs:$(PATH)" \ - LPATH=.libs \ -@@ -14,9 +23,24 @@ INTROSPECTION_SCANNER = \ - UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \ - UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \ - $(top_builddir)/g-ir-scanner -+endif -+ -+if USE_CROSS_WRAPPER -+CROSS_WRAPPER_ARG = --use-binary-wrapper=$(GI_CROSS_WRAPPER) -+else -+CROSS_WRAPPER_ARG = -+endif -+ -+if USE_LDD_WRAPPER -+LDD_WRAPPER_ARG = --use-ldd-wrapper=$(GI_LDD_WRAPPER) -+else -+LDD_WRAPPER_ARG = -+endif - - INTROSPECTION_SCANNER_ARGS = \ - --verbose \ -+ $(CROSS_WRAPPER_ARG) \ -+ $(LDD_WRAPPER_ARG) \ - -I$(top_srcdir) \ - --add-include-path=$(srcdir) \ - --add-include-path=$(top_srcdir)/gir \ -@@ -24,9 +48,15 @@ INTROSPECTION_SCANNER_ARGS = \ - --add-include-path=$(top_builddir) \ - --add-include-path=$(top_builddir)/gir - -+if USE_CROSS_WRAPPER -+INTROSPECTION_COMPILER = \ -+ env PATH=".libs:$(PATH)" \ -+ $(GI_CROSS_WRAPPER) $(top_builddir)/.libs/g-ir-compiler$(EXEEXT) -+else - INTROSPECTION_COMPILER = \ - env PATH=".libs:$(PATH)" \ - $(top_builddir)/g-ir-compiler$(EXEEXT) -+endif - - INTROSPECTION_COMPILER_ARGS = \ - --includedir=$(srcdir) \ -@@ -35,6 +65,14 @@ INTROSPECTION_COMPILER_ARGS = \ - --includedir=$(top_builddir) \ - --includedir=$(top_builddir)/gir - -+if USE_HOST_GI -+INTROSPECTION_DOCTOOL = \ -+ env PATH="$(PATH)" \ -+ LPATH=.libs \ -+ PYTHONPATH=$(top_builddir):$(top_srcdir) \ -+ UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \ -+ g-ir-doc-tool -+else - INTROSPECTION_DOCTOOL = \ - env PATH=".libs:$(PATH)" \ - LPATH=.libs \ -@@ -42,6 +80,7 @@ INTROSPECTION_DOCTOOL = \ - UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \ - UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \ - $(top_builddir)/g-ir-doc-tool -+endif - - INTROSPECTION_DOCTOOL_ARGS = \ - --add-include-path=$(srcdir) \ -diff --git a/configure.ac b/configure.ac -index 6c91fa5..21340a5 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -360,6 +360,48 @@ fi - - AC_SUBST(EXTRA_LINK_FLAGS) - -+AC_ARG_ENABLE([host-gi], -+[AS_HELP_STRING([--enable-host-gi],[Use gobject introspection tools installed in the host system (useful when cross-compiling)])], -+[case "${enableval}" in -+ yes) host_gi=true ;; -+ no) host_gi=false ;; -+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-host-gi]) ;; -+esac],[host_gi=false]) -+AM_CONDITIONAL([USE_HOST_GI], [test x$host_gi = xtrue]) -+ -+AC_ARG_ENABLE([gi-cross-wrapper], -+[AS_HELP_STRING([--enable-gi-cross-wrapper=path],[Use a wrapper to run gicompiler and binaries produced by giscanner (useful when cross-compiling)])], -+[ -+GI_CROSS_WRAPPER="${enableval}" -+use_wrapper=true -+],[ -+GI_CROSS_WRAPPER="" -+use_wrapper=false -+]) -+AC_SUBST(GI_CROSS_WRAPPER) -+AM_CONDITIONAL([USE_CROSS_WRAPPER], [test x$use_wrapper = xtrue]) -+ -+AC_ARG_ENABLE([gi-ldd-wrapper], -+[AS_HELP_STRING([--enable-gi-ldd-wrapper=path],[Use a ldd wrapper instead of system's ldd command in giscanner (useful when cross-compiling)])], -+[ -+GI_LDD_WRAPPER="${enableval}" -+use_ldd_wrapper=true -+],[ -+GI_LDD_WRAPPER="" -+use_ldd_wrapper=false -+]) -+AC_SUBST(GI_LDD_WRAPPER) -+AM_CONDITIONAL([USE_LDD_WRAPPER], [test x$use_ldd_wrapper = xtrue]) -+ -+AC_ARG_ENABLE([introspection-data], -+[AS_HELP_STRING([--enable-introspection-data],[Build introspection data (.gir and .typelib files) in addition to library and tools])], -+[case "${enableval}" in -+ yes) introspection_data=true ;; -+ no) introspection_data=false ;; -+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-introspection-data]) ;; -+esac],[introspection_data=true]) -+AM_CONDITIONAL([BUILD_INTROSPECTION_DATA], [test x$introspection_data = xtrue]) -+ - AC_CONFIG_FILES([ - Makefile - tests/Makefile -diff --git a/tests/Makefile.am b/tests/Makefile.am -index bdd0fa7..75dd3c9 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -1,6 +1,9 @@ - include $(top_srcdir)/common.mk - --SUBDIRS = . scanner repository offsets warn -+SUBDIRS = . scanner repository warn -+if BUILD_INTROSPECTION_DATA -+SUBDIRS += offsets -+endif - - EXTRA_DIST= - BUILT_SOURCES= --- -2.7.0 - diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch deleted file mode 100644 index f21eaca855..0000000000 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 704b888d0abfb01067352c40156f49f655691c7c Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Mon, 19 Oct 2015 18:26:40 +0300 -Subject: [PATCH 3/5] giscanner: add --use-binary-wrapper option - -With this option, giscanner will use a wrapper executable to run -binaries it's producing, instead of running them directly. This -is useful when binaries are cross-compiled and cannot be run directly, -but they can be run using for example QEMU emulation. - -Upstream-Status: Pending [review on oe-core list] -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - giscanner/scannermain.py | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py -index 633496f..d684cd0 100755 ---- a/giscanner/scannermain.py -+++ b/giscanner/scannermain.py -@@ -124,6 +124,9 @@ def _get_option_parser(): - parser.add_option("", "--program", - action="store", dest="program", default=None, - help="program to execute") -+ parser.add_option("", "--use-binary-wrapper", -+ action="store", dest="wrapper", default=None, -+ help="wrapper to use for running programs (useful when cross-compiling)") - parser.add_option("", "--program-arg", - action="append", dest="program_args", default=[], - help="extra arguments to program") -@@ -419,6 +422,17 @@ def create_binary(transformer, options, args): - gdump_parser.get_error_quark_functions()) - - shlibs = resolve_shlibs(options, binary, options.libraries) -+ if options.wrapper: -+ # The wrapper needs the binary itself, not the libtool wrapper script, -+ # so we check if libtool has sneaked the binary into .libs subdirectory -+ # and adjust the path accordingly -+ import os.path -+ dir_name, binary_name = os.path.split(binary.args[0]) -+ libtool_binary = os.path.join(dir_name, '.libs', binary_name) -+ if os.path.exists(libtool_binary): -+ binary.args[0] = libtool_binary -+ # Then prepend the wrapper to the command line to execute -+ binary.args = [options.wrapper] + binary.args - gdump_parser.set_introspection_binary(binary) - gdump_parser.parse() - return shlibs --- -2.7.0 - diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch deleted file mode 100644 index afb71e767e..0000000000 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch +++ /dev/null @@ -1,47 +0,0 @@ -From d4ad57fd4a32c4f0d2f0522a3090ef940746431b Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Fri, 30 Oct 2015 16:28:46 +0200 -Subject: [PATCH 4/5] giscanner: add a --use-ldd-wrapper option - -This is useful in cross-compile environments where system's ldd -command does not work on binaries built for a different architecture - -Upstream-Status: Pending [review in oe-core] -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - giscanner/scannermain.py | 3 +++ - giscanner/shlibs.py | 4 +++- - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py -index d684cd0..1b3b369 100755 ---- a/giscanner/scannermain.py -+++ b/giscanner/scannermain.py -@@ -127,6 +127,9 @@ def _get_option_parser(): - parser.add_option("", "--use-binary-wrapper", - action="store", dest="wrapper", default=None, - help="wrapper to use for running programs (useful when cross-compiling)") -+ parser.add_option("", "--use-ldd-wrapper", -+ action="store", dest="ldd_wrapper", default=None, -+ help="wrapper to use instead of ldd (useful when cross-compiling)") - parser.add_option("", "--program-arg", - action="append", dest="program_args", default=[], - help="extra arguments to program") -diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py -index c93d20c..c5b5942 100644 ---- a/giscanner/shlibs.py -+++ b/giscanner/shlibs.py -@@ -105,7 +105,9 @@ def _resolve_non_libtool(options, binary, libraries): - args.extend(libtool) - args.append('--mode=execute') - platform_system = platform.system() -- if platform_system == 'Darwin': -+ if options.ldd_wrapper: -+ args.extend([options.ldd_wrapper, binary.args[0]]) -+ elif platform_system == 'Darwin': - args.extend(['otool', '-L', binary.args[0]]) - else: - args.extend(['ldd', binary.args[0]]) --- -2.7.0 - diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch deleted file mode 100644 index 47a18ec844..0000000000 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch +++ /dev/null @@ -1,96 +0,0 @@ -From e08b3677dd04d6ec407ba8f74f601b2d51310eff Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Thu, 8 Oct 2015 18:30:35 +0300 -Subject: [PATCH 5/5] Prefix pkg-config paths with PKG_CONFIG_SYSROOT_DIR - environment variable - -This environment variable sets the location of sysroot directory in cross-compilation -environments; if the variable is not set, the prefix will be empty. - -Upstream-Status: Pending [review on oe-core list] -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - Makefile-gir.am | 18 +++++++++--------- - m4/introspection.m4 | 8 ++++---- - 2 files changed, 13 insertions(+), 13 deletions(-) - -diff --git a/Makefile-gir.am b/Makefile-gir.am -index a09260a..ba6e89e 100644 ---- a/Makefile-gir.am -+++ b/Makefile-gir.am -@@ -55,8 +55,8 @@ else - endif - - # glib --GLIB_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir glib-2.0)/glib-2.0 --GLIB_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir glib-2.0) -+GLIB_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir glib-2.0)/glib-2.0 -+GLIB_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir glib-2.0) - - GLIB_LIBRARY=glib-2.0 - -@@ -92,8 +92,8 @@ GLib-2.0.gir: g-ir-scanner g-ir-compiler$(EXEEXT) - gir/DBusGLib-1.0.typelib: GObject-2.0.gir - - # gobject --GOBJECT_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gobject-2.0)/glib-2.0 --GOBJECT_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gobject-2.0) -+GOBJECT_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gobject-2.0)/glib-2.0 -+GOBJECT_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gobject-2.0) - - GOBJECT_LIBRARY=gobject-2.0 - -@@ -120,8 +120,8 @@ GObject_2_0_gir_FILES = \ - BUILT_GIRSOURCES += GObject-2.0.gir - - # gmodule --GMODULE_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gmodule-2.0)/glib-2.0 --GMODULE_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gmodule-2.0) -+GMODULE_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gmodule-2.0)/glib-2.0 -+GMODULE_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gmodule-2.0) - - GMODULE_LIBRARY=gmodule-2.0 - -@@ -146,13 +146,13 @@ GModule_2_0_gir_FILES = $(GLIB_INCLUDEDIR)/gmodule.h \ - BUILT_GIRSOURCES += GModule-2.0.gir - - # gio --GIO_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gio-2.0)/glib-2.0 --GIO_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gio-2.0) -+GIO_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gio-2.0)/glib-2.0 -+GIO_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gio-2.0) - - GIO_LIBRARY=gio-2.0 - - if HAVE_GIO_UNIX --GIO_UNIX_INCLUDEDIR = $(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0 -+GIO_UNIX_INCLUDEDIR = $(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0 - GIO_UNIX_HDRS = $(GIO_UNIX_INCLUDEDIR)/gio/*.h - GIO_UNIX_PACKAGES = gio-unix-2.0 - else -diff --git a/m4/introspection.m4 b/m4/introspection.m4 -index d89c3d9..b562266 100644 ---- a/m4/introspection.m4 -+++ b/m4/introspection.m4 -@@ -56,14 +56,14 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], - INTROSPECTION_GIRDIR= - INTROSPECTION_TYPELIBDIR= - if test "x$found_introspection" = "xyes"; then -- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` -- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` -- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` -+ INTROSPECTION_SCANNER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` -+ INTROSPECTION_COMPILER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` -+ INTROSPECTION_GENERATE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` - INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` - INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" - INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` - INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` -- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection -+ INTROSPECTION_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection - fi - AC_SUBST(INTROSPECTION_SCANNER) - AC_SUBST(INTROSPECTION_COMPILER) --- -2.7.0 - diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.48.0.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.74.0.bb index 6948aff2fa..ab9d2d35d9 100644 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.48.0.bb +++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.74.0.bb @@ -1,52 +1,68 @@ SUMMARY = "Middleware layer between GObject-using C libraries and language bindings" +DESCRIPTION = "GObject Introspection is a project for providing machine \ +readable introspection data of the API of C libraries. This introspection \ +data can be used in several different use cases, for example automatic code \ +generation for bindings, API verification and documentation generation." HOMEPAGE = "https://wiki.gnome.org/action/show/Projects/GObjectIntrospection" -BUGTRACKER = "https://bugzilla.gnome.org/" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/gobject-introspection/issues" SECTION = "libs" -LICENSE = "LGPLv2+ & GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=90d577535a3898e1ae5dbf0ae3509a8c \ +LICENSE = "LGPL-2.0-or-later & GPL-2.0-or-later & MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \ file://tools/compiler.c;endline=20;md5=fc5007fc20022720e6c0b0cdde41fabd \ file://giscanner/sourcescanner.c;endline=22;md5=194d6e0c1d00662f32d030ce44de8d39 \ - file://girepository/giregisteredtypeinfo.c;endline=21;md5=661847611ae6979465415f31a759ba27" - -SRC_URI = "${GNOME_MIRROR}/${BPN}/1.48/${BPN}-${PV}.tar.xz \ - file://0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch \ - file://0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch \ - file://0003-giscanner-add-use-binary-wrapper-option.patch \ - file://0004-giscanner-add-a-use-ldd-wrapper-option.patch \ - file://0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch \ + file://girepository/giregisteredtypeinfo.c;endline=21;md5=661847611ae6979465415f31a759ba27 \ + " + +SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \ + file://0001-g-ir-tool-template.in-fix-girdir-path.patch \ " -SRC_URI[md5sum] = "01301fa9019667d48e927353e08bc218" -SRC_URI[sha256sum] = "fa275aaccdbfc91ec0bc9a6fd0562051acdba731e7d584b64a277fec60e75877" -inherit autotools pkgconfig gtk-doc python3native qemu gobject-introspection-data -BBCLASSEXTEND = "native" +SRC_URI[sha256sum] = "347b3a719e68ba4c69ff2d57ee2689233ea8c07fc492205e573386779e42d653" -# needed for writing out the qemu wrapper script -export STAGING_DIR_HOST -export B +SRC_URI:append:class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch" + +inherit meson pkgconfig gtk-doc python3native qemu gobject-introspection-data upstream-version-is-even multilib_script + +GTKDOC_MESON_OPTION = "gtk_doc" -DEPENDS_append = " libffi zlib glib-2.0 python3 flex-native bison-native" +MULTILIB_SCRIPTS = "${PN}:${bindir}/g-ir-annotation-tool ${PN}:${bindir}/g-ir-scanner" + +DEPENDS += " libffi zlib glib-2.0 python3 flex-native bison-native autoconf-archive" # target build needs qemu to run temporary introspection binaries created # on the fly by g-ir-scanner and a native version of itself to run # native versions of its own tools during build. -# Also prelink-rtld is used to find out library dependencies of introspection binaries -# (standard ldd doesn't work when cross-compiling). -DEPENDS_class-target_append = " gobject-introspection-native qemu-native prelink-native" +DEPENDS:append:class-target = " gobject-introspection-native qemu-native" -SSTATE_SCAN_FILES += "g-ir-scanner-qemuwrapper g-ir-scanner-wrapper g-ir-compiler-wrapper g-ir-scanner-lddwrapper Gio-2.0.gir" +# needed for writing out the qemu wrapper script +export STAGING_DIR_HOST +export B -do_configure_prepend_class-native() { +PACKAGECONFIG ?= "" +PACKAGECONFIG[doctool] = "-Ddoctool=enabled,-Ddoctool=disabled,python3-mako," + +# Configure target build to use native tools of itself and to use a qemu wrapper +# and optionally to generate introspection data +EXTRA_OEMESON:class-target = " \ + -Dgi_cross_use_prebuilt_gi=true \ + -Dgi_cross_binary_wrapper=${B}/g-ir-scanner-qemuwrapper \ + -Dgi_cross_ldd_wrapper=${B}/g-ir-scanner-lddwrapper \ + -Dgi_cross_pkgconfig_sysroot_path=${PKG_CONFIG_SYSROOT_DIR} \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dbuild_introspection_data=true', '-Dbuild_introspection_data=false', d)} \ + ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \ +" + +do_configure:prepend:class-native() { # Tweak the native python scripts so that they don't refer to the # full path of native python binary (the solution is taken from glib-2.0 recipe) # This removes the risk of exceeding Linux kernel's shebang line limit (128 bytes) sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in } -do_configure_prepend_class-target() { +do_configure:prepend:class-target() { # Write out a qemu wrapper that will be given to gi-scanner so that it # can run target helper binaries through that. - qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}" + qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}" cat > ${B}/g-ir-scanner-qemuwrapper << EOF #!/bin/sh # Use a modules directory which doesn't exist so we don't load random things @@ -64,14 +80,14 @@ EOF # Write out a wrapper for g-ir-scanner itself, which will be used when building introspection files # for glib-based packages. This wrapper calls the native version of the scanner, and tells it to use - # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory + # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory # from the target sysroot. cat > ${B}/g-ir-scanner-wrapper << EOF #!/bin/sh -# This prevents g-ir-scanner from writing cache data to $HOME +# This prevents g-ir-scanner from writing cache data to user's HOME dir export GI_SCANNER_DISABLE_CACHE=1 -g-ir-scanner --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 "\$@" +g-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 "\$@" EOF chmod +x ${B}/g-ir-scanner-wrapper @@ -87,7 +103,7 @@ EOF # for a different architecture cat > ${B}/g-ir-scanner-lddwrapper << EOF #!/bin/sh -prelink-rtld --root=$STAGING_DIR_HOST "\$@" +\$OBJDUMP -p "\$@" EOF chmod +x ${B}/g-ir-scanner-lddwrapper @@ -96,28 +112,19 @@ EOF sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in } -# Configure target build to use native tools of itself and to use a qemu wrapper -# and optionally to generate introspection data -EXTRA_OECONF_class-target += "--enable-host-gi \ - --enable-gi-cross-wrapper=${B}/g-ir-scanner-qemuwrapper \ - --enable-gi-ldd-wrapper=${B}/g-ir-scanner-lddwrapper \ - ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '--enable-introspection-data', '--disable-introspection-data', d)} \ - " - -PACKAGECONFIG ?= "" -PACKAGECONFIG[doctool] = "--enable-doctool,--disable-doctool,python3-mako," +do_compile:prepend() { + # Needed to run g-ir unit tests, which won't be able to find the built libraries otherwise + export GIR_EXTRA_LIBS_PATH=$B/.libs +} -do_compile_prepend_class-target() { +do_install:prepend() { # This prevents g-ir-scanner from writing cache data to $HOME export GI_SCANNER_DISABLE_CACHE=1 - - # Needed to run g-ir unit tests, which won't be able to find the built libraries otherwise - export GIR_EXTRA_LIBS_PATH=$B/.libs } -# Our wrappers need to be available system-wide, because they will be used +# Our wrappers need to be available system-wide, because they will be used # to build introspection files for all other gobject-based packages -do_install_append_class-target() { +do_install:append:class-target() { install -d ${D}${bindir}/ install ${B}/g-ir-scanner-qemuwrapper ${D}${bindir}/ install ${B}/g-ir-scanner-wrapper ${D}${bindir}/ @@ -125,36 +132,63 @@ do_install_append_class-target() { install ${B}/g-ir-scanner-lddwrapper ${D}${bindir}/ } +# we need target versions of introspection tools in sysroot so that they can be run via qemu +# when building introspection files in other packages +SYSROOT_DIRS:append:class-target = " ${bindir}" + +SYSROOT_PREPROCESS_FUNCS:append:class-target = " gi_binaries_sysroot_preprocess" +gi_binaries_sysroot_preprocess() { + # Tweak the binary names in the introspection pkgconfig file, so that it + # picks up our wrappers which do the cross-compile and qemu magic. + sed -i \ + -e "s|g_ir_scanner=.*|g_ir_scanner=${bindir}/g-ir-scanner-wrapper|" \ + -e "s|g_ir_compiler=.*|g_ir_compiler=${bindir}/g-ir-compiler-wrapper|" \ + ${SYSROOT_DESTDIR}${libdir}/pkgconfig/gobject-introspection-1.0.pc +} + +SYSROOT_PREPROCESS_FUNCS:append = " gi_ldsoconf_sysroot_preprocess" +gi_ldsoconf_sysroot_preprocess () { + mkdir -p ${SYSROOT_DESTDIR}${bindir} + dest=${SYSROOT_DESTDIR}${bindir}/postinst-ldsoconf-${PN} + echo "#!/bin/sh" > $dest + echo "mkdir -p ${STAGING_DIR_TARGET}${sysconfdir}" >> $dest + echo "echo ${base_libdir} >> ${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf" >> $dest + echo "echo ${libdir} >> ${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf" >> $dest + chmod 755 $dest +} + +# Remove wrapper files from the package, only used for cross-compiling +PACKAGE_PREPROCESS_FUNCS += "gi_package_preprocess" +gi_package_preprocess() { + rm -f ${PKGD}${bindir}/g-ir-scanner-qemuwrapper + rm -f ${PKGD}${bindir}/g-ir-scanner-wrapper + rm -f ${PKGD}${bindir}/g-ir-compiler-wrapper + rm -f ${PKGD}${bindir}/g-ir-scanner-lddwrapper +} + +SSTATE_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}" + # .typelib files are needed at runtime and so they go to the main package -FILES_${PN}_append = " ${libdir}/girepository-*/*.typelib" +FILES:${PN}:append = " ${libdir}/girepository-*/*.typelib" # .gir files go to dev package, as they're needed for developing (but not for running) # things that depends on introspection. -FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir" +FILES:${PN}-dev:append = " ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir" +FILES:${PN}-dev:append = " ${datadir}/gir-*/*.rnc" # These are used by gobject-based packages # to generate transient introspection binaries -FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/gdump.c \ - ${datadir}/gobject-introspection-1.0/Makefile.introspection" +FILES:${PN}-dev:append = " ${datadir}/gobject-introspection-1.0/gdump.c \ + ${datadir}/gobject-introspection-1.0/Makefile.introspection" # These are used by dependent packages (e.g. pygobject) to build their # testsuites. -FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/tests/*.c \ - ${datadir}/gobject-introspection-1.0/tests/*.h" +FILES:${PN}-dev:append = " ${datadir}/gobject-introspection-1.0/tests/*.c \ + ${datadir}/gobject-introspection-1.0/tests/*.h" -FILES_${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/" -FILES_${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a" +FILES:${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/" +FILES:${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a" -# we need target versions of introspection tools in sysroot so that they can be run via qemu -# when building introspection files in other packages -SYSROOT_DIRS_append_class-target = " ${bindir}" +RDEPENDS:${PN} = "python3-pickle python3-xml" -SYSROOT_PREPROCESS_FUNCS_append_class-target = " gi_binaries_sysroot_preprocess" -gi_binaries_sysroot_preprocess() { - # Tweak the binary names in the introspection pkgconfig file, so that it - # picks up our wrappers which do the cross-compile and qemu magic. - sed -i \ - -e "s|g_ir_scanner=.*|g_ir_scanner=${bindir}/g-ir-scanner-wrapper|" \ - -e "s|g_ir_compiler=.*|g_ir_compiler=${bindir}/g-ir-compiler-wrapper|" \ - ${SYSROOT_DESTDIR}${libdir}/pkgconfig/gobject-introspection-1.0.pc -} +BBCLASSEXTEND = "native" diff --git a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.20.0.bb b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.20.0.bb deleted file mode 100644 index bb924ce74f..0000000000 --- a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.20.0.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "GNOME desktop-wide GSettings schemas" -HOMEPAGE = "http://live.gnome.org/gsettings-desktop-schemas" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -DEPENDS = "glib-2.0 intltool-native" - -inherit gnomebase gsettings gettext gobject-introspection upstream-version-is-even - -SRC_URI[archive.md5sum] = "c5d87ea480aa9bf66b134ddb5b8ea0f8" -SRC_URI[archive.sha256sum] = "55a41b533c0ab955e0a36a84d73829451c88b027d8d719955d8f695c35c6d9c1" diff --git a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_43.0.bb b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_43.0.bb new file mode 100644 index 0000000000..966a67fead --- /dev/null +++ b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_43.0.bb @@ -0,0 +1,16 @@ +SUMMARY = "GNOME desktop-wide GSettings schemas" +DESCRIPTION = "GSettings desktop-wide schemas contains a collection of \ +GSettings schemas for settings shared by various components of a desktop." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/issues" + +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "glib-2.0" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gsettings gobject-introspection gettext + +SRC_URI[archive.sha256sum] = "5d5568282ab38b95759d425401f7476e56f8cbf2629885587439f43bd0b84bbe" diff --git a/meta/recipes-gnome/gtk+/gtk+.inc b/meta/recipes-gnome/gtk+/gtk+.inc deleted file mode 100644 index c240baa2cd..0000000000 --- a/meta/recipes-gnome/gtk+/gtk+.inc +++ /dev/null @@ -1,104 +0,0 @@ -SUMMARY = "Multi-platform toolkit for creating GUIs" -DESCRIPTION = "GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \ -set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites." -HOMEPAGE = "http://www.gtk.org" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" - -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" - -SECTION = "libs" - -inherit distro_features_check -ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" - -# This picks stable releases in the 2.x series (but not 2.90 onwards, -# which were GNOME 3 betas). -UPSTREAM_CHECK_REGEX = "(?P<pver>2\.([0-8]*[02468])+(\.\d+)+)" - -X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite" -DEPENDS = "glib-2.0 pango atk jpeg libpng gdk-pixbuf-native docbook-utils-native \ - cairo gdk-pixbuf" - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \ -" - -PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS}" -# without --with-gdktarget=directfb it will check for cairo-xlib which isn't available without X11 DISTRO_FEATURE -PACKAGECONFIG[directfb] = "--with-gdktarget=directfb,,directfb" - -inherit autotools gtk-doc pkgconfig update-alternatives gtk-immodules-cache gobject-introspection - -PACKAGES += "libgail gtk-demo" - -FILES_${PN} += "${bindir}/gtk-update-icon-cache-2.0 \ - ${bindir}/gtk-query-immodules-2.0 \ - ${datadir}/themes ${sysconfdir} \ - ${libdir}/gtk-2.0/${LIBV}/engines/libpixmap.so" - -FILES_${PN}-dev += " \ - ${datadir}/gtk-2.0/include \ - ${libdir}/gtk-2.0/include \ - ${libdir}/gtk-2.0/modules/*.la \ - ${libdir}/gtk-2.0/${LIBV}/loaders/*.la \ - ${libdir}/gtk-2.0/${LIBV}/immodules/*.la \ - ${libdir}/gtk-2.0/${LIBV}/printbackends/*.la \ - ${libdir}/gtk-2.0/${LIBV}/engines/*.la \ - ${bindir}/gtk-builder-convert" - -FILES_gtk-demo = " \ - ${datadir}/gtk-2.0/demo/* \ - ${bindir}/gtk-demo \ - " - -FILES_libgail = " \ - ${libdir}/gtk-2.0/modules/libgail.so \ - ${libdir}/gtk-2.0/modules/libferret.so \ - " - -GTKBASE_RRECOMMENDS ?= "liberation-fonts \ - gdk-pixbuf-loader-png \ - gdk-pixbuf-loader-jpeg \ - gdk-pixbuf-loader-gif \ - gdk-pixbuf-loader-xpm \ - shared-mime-info \ - gnome-theme-adwaita \ - " -GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1" - -RRECOMMENDS_${PN} = "${GTKBASE_RRECOMMENDS}" -RRECOMMENDS_${PN}_libc-glibc = "${GTKGLIBC_RRECOMMENDS}" - -ALTERNATIVE_${PN} = "gtk-update-icon-cache" -ALTERNATIVE_TARGET[gtk-update-icon-cache] = "${bindir}/gtk-update-icon-cache-2.0" - -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/gdk/.libs" -} - -do_install () { - autotools_do_install - - install -d ${D}${sysconfdir}/gtk-2.0 - - mkdir -p ${D}${libdir}/gtk-2.0/include - install -m 0644 gdk/gdkconfig.h ${D}${libdir}/gtk-2.0/include/gdkconfig.h - - install -m 0644 ${S}/gtk/gtkfilechooserprivate.h ${D}${includedir}/gtk-2.0/gtk/ - install -m 0644 ${S}/gtk/gtkfilechooserutils.h ${D}${includedir}/gtk-2.0/gtk/ - install -m 0644 ${S}/gtk/gtkfilesystemmodel.h ${D}${includedir}/gtk-2.0/gtk/ - - mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-2.0 -} - -SYSROOT_PREPROCESS_FUNCS += "gtk_sysroot_preprocess" - -gtk_sysroot_preprocess () { - if [ -e ${D}${bindir}/gtk-builder-convert ]; then - install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - install -m 755 ${D}${bindir}/gtk-builder-convert ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - fi -} - diff --git a/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch b/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch deleted file mode 100644 index 74e479fd1b..0000000000 --- a/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch +++ /dev/null @@ -1,22 +0,0 @@ -There are issues building the gtk+ tutorial and faq documentation. -Since they were removed in gtk+ upstream and are superfluous in -embedded applications, just don't build them. - -Thanks to Joshua Lock for suggesting this approach. - -Signed-off-by: Scott Garman <scott.a.garman@intel.com> - -Upstream-Status: Inappropriate [embedded specific] - -diff -urN gtk+-2.22.1.orig/docs/Makefile.am gtk+-2.22.1/docs/Makefile.am ---- gtk+-2.22.1.orig/docs/Makefile.am 2010-11-15 04:13:09.000000000 -0800 -+++ gtk+-2.22.1/docs/Makefile.am 2011-02-23 19:25:16.914815097 -0800 -@@ -1,7 +1,7 @@ - ## Process this file with automake to produce Makefile.in - include $(top_srcdir)/Makefile.decl - --SUBDIRS = tutorial faq reference tools -+SUBDIRS = reference tools - - EXTRA_DIST += \ - defsformat.txt \ diff --git a/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch b/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch deleted file mode 100644 index 1ae728e70d..0000000000 --- a/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch +++ /dev/null @@ -1,35 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -Updated to apply to gtk+-2.24.15 - -Signed-off-by: Marko Lindqvist <cazfi74@gmail.com> -diff -Nurd gtk+-2.24.15/configure.ac gtk+-2.24.15/configure.ac ---- gtk+-2.24.15/configure.ac 2013-01-12 20:52:54.000000000 +0200 -+++ gtk+-2.24.15/configure.ac 2013-02-12 21:33:30.689925967 +0200 -@@ -415,7 +415,7 @@ - case $enable_explicit_deps in - auto) - export SED -- deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` -+ deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` - if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then - enable_explicit_deps=yes - else -@@ -774,7 +774,7 @@ - dnl Now we check to see if our libtool supports shared lib deps - dnl (in a rather ugly way even) - if $dynworks; then -- module_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config" -+ module_libtool_config="${CONFIG_SHELL-/bin/sh} $host_alias-libtool --config" - module_deplibs_check=`$module_libtool_config | \ - grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \ - sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'` -@@ -1574,7 +1574,7 @@ - # We are using gmodule-no-export now, but I'm leaving the stripping - # code in place for now, since pango and atk still require gmodule. - export SED --export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` -+export_dynamic=`($host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` - if test -n "$export_dynamic"; then - GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"` - GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"` diff --git a/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch b/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch deleted file mode 100644 index 96e1f5feac..0000000000 --- a/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch +++ /dev/null @@ -1,24 +0,0 @@ -Fixes - -include/gtk-2.0/gtk/gtkitemfactory.h:47:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] - typedef void (*GtkItemFactoryCallback) (); - -gcc5 has -Wstrict-prototypes on by default for -Werror so this becomes a build failure for consumers -of this header e.g. matchbox-panel-2 - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Index: gtk+-2.24.27/gtk/gtkitemfactory.h -=================================================================== ---- gtk+-2.24.27.orig/gtk/gtkitemfactory.h -+++ gtk+-2.24.27/gtk/gtkitemfactory.h -@@ -44,7 +44,7 @@ typedef void (*GtkPrintFunc) (gpoint - * (Note that if we are included from a C++ program () will mean - * (void) so an explicit cast will be needed.) - */ --typedef void (*GtkItemFactoryCallback) (); -+typedef void (*GtkItemFactoryCallback) (void); - typedef void (*GtkItemFactoryCallback1) (gpointer callback_data, - guint callback_action, - GtkWidget *widget); diff --git a/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff b/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff deleted file mode 100644 index 340d12008b..0000000000 --- a/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff +++ /dev/null @@ -1,102 +0,0 @@ -Upstream-Status: Pending - -Index: gtk/gtkcellrenderertoggle.c -=================================================================== ---- gtk/gtkcellrenderertoggle.c.orig 2010-06-22 18:11:33.000000000 +0800 -+++ gtk/gtkcellrenderertoggle.c 2010-06-22 18:11:43.000000000 +0800 -@@ -71,6 +71,8 @@ - PROP_INDICATOR_SIZE - }; - -+/* This is a hard-coded default which promptly gets overridden by a size -+ calculated from the font size. */ - #define TOGGLE_WIDTH 13 - - static guint toggle_cell_signals[LAST_SIGNAL] = { 0 }; -@@ -80,8 +82,9 @@ - typedef struct _GtkCellRendererTogglePrivate GtkCellRendererTogglePrivate; - struct _GtkCellRendererTogglePrivate - { -- gint indicator_size; -- -+ gint indicator_size; /* This is the real size */ -+ gint override_size; /* This is the size set from the indicator-size property */ -+ GtkWidget *cached_widget; - guint inconsistent : 1; - }; - -@@ -104,6 +107,7 @@ - GTK_CELL_RENDERER (celltoggle)->ypad = 2; - - priv->indicator_size = TOGGLE_WIDTH; -+ priv->override_size = 0; - priv->inconsistent = FALSE; - } - -@@ -210,7 +214,7 @@ - g_value_set_boolean (value, celltoggle->radio); - break; - case PROP_INDICATOR_SIZE: -- g_value_set_int (value, priv->indicator_size); -+ g_value_set_int (value, priv->override_size ? priv->override_size : priv->indicator_size); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); -@@ -245,7 +249,7 @@ - celltoggle->radio = g_value_get_boolean (value); - break; - case PROP_INDICATOR_SIZE: -- priv->indicator_size = g_value_get_int (value); -+ priv->override_size = g_value_get_int (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); -@@ -273,6 +277,27 @@ - } - - static void -+on_widget_style_set (GtkWidget *widget, GtkStyle *previous, gpointer user_data) -+{ -+ GtkCellRendererTogglePrivate *priv = user_data; -+ PangoContext *context; -+ PangoFontMetrics *metrics; -+ int height; -+ -+ context = gtk_widget_get_pango_context (widget); -+ metrics = pango_context_get_metrics (context, -+ widget->style->font_desc, -+ pango_context_get_language (context)); -+ -+ height = pango_font_metrics_get_ascent (metrics) + -+ pango_font_metrics_get_descent (metrics); -+ -+ pango_font_metrics_unref (metrics); -+ -+ priv->indicator_size = PANGO_PIXELS (height * 0.85); -+} -+ -+static void - gtk_cell_renderer_toggle_get_size (GtkCellRenderer *cell, - GtkWidget *widget, - GdkRectangle *cell_area, -@@ -287,6 +312,20 @@ - - priv = GTK_CELL_RENDERER_TOGGLE_GET_PRIVATE (cell); - -+ if (priv->override_size) { -+ priv->indicator_size = priv->override_size; -+ } else if (priv->cached_widget != widget) { -+ if (priv->cached_widget) { -+ g_object_remove_weak_pointer (widget, &priv->cached_widget); -+ g_signal_handlers_disconnect_by_func (priv->cached_widget, on_widget_style_set, priv); -+ } -+ priv->cached_widget = widget; -+ g_object_add_weak_pointer (widget, &priv->cached_widget); -+ g_signal_connect (widget, "style-set", on_widget_style_set, priv); -+ -+ on_widget_style_set (widget, NULL, priv); -+ } -+ - calc_width = (gint) cell->xpad * 2 + priv->indicator_size; - calc_height = (gint) cell->ypad * 2 + priv->indicator_size; - diff --git a/meta/recipes-gnome/gtk+/gtk+/xsettings.patch b/meta/recipes-gnome/gtk+/gtk+/xsettings.patch deleted file mode 100644 index d0a970ad4d..0000000000 --- a/meta/recipes-gnome/gtk+/gtk+/xsettings.patch +++ /dev/null @@ -1,20 +0,0 @@ -Upstream-Status: Pending - -Index: gtk+-2.21.2/gdk/x11/gdkevents-x11.c -=================================================================== ---- gtk+-2.21.2.orig/gdk/x11/gdkevents-x11.c 2010-06-22 17:28:04.000000000 +0800 -+++ gtk+-2.21.2/gdk/x11/gdkevents-x11.c 2010-06-22 17:28:06.000000000 +0800 -@@ -3062,10 +3062,9 @@ - { - GdkScreenX11 *screen = data; - -- if (xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent)) -- return GDK_FILTER_REMOVE; -- else -- return GDK_FILTER_CONTINUE; -+ xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent); -+ -+ return GDK_FILTER_CONTINUE; - } - - static Bool diff --git a/meta/recipes-gnome/gtk+/gtk+3.inc b/meta/recipes-gnome/gtk+/gtk+3.inc index 132955797c..8d01e6077f 100644 --- a/meta/recipes-gnome/gtk+/gtk+3.inc +++ b/meta/recipes-gnome/gtk+/gtk+3.inc @@ -1,3 +1,4 @@ + SUMMARY = "Multi-platform toolkit for creating GUIs" DESCRIPTION = "GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \ set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites." @@ -5,59 +6,74 @@ HOMEPAGE = "http://www.gtk.org" BUGTRACKER = "https://bugzilla.gnome.org/" SECTION = "libs" -DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \ - docbook-utils-native gdk-pixbuf-native" +DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf gdk-pixbuf-native" -LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" +LICENSE = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later" -inherit autotools pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings distro_features_check upstream-version-is-even gobject-introspection -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" +inherit meson gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings features_check gobject-introspection -# This should be in autotools.bbclass, but until something elses uses it putting -# it here avoids rebuilding everything. -export PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native" +BBCLASSEXTEND = "native nativesdk" -do_configure_prepend() { - # Do this because the configure script is running ./libtool directly - rm -f libtool - ln -s ${TARGET_PREFIX}libtool libtool - #delete a file that will get confused with generated one in ${B} - rm -f ${S}/gtk/gtktypefuncs.c -} +GSETTINGS_PACKAGE:class-native = "" + +# versions >= 3.90 are development versions, otherwise like upstream-version-is-even +UPSTREAM_CHECK_REGEX = "[^\d\.](?P<pver>3\.([1-8]?[02468])+(\.\d+)+)\.tar" -EXTRA_OECONF += " \ - --disable-glibtest \ - --disable-xinerama \ - --enable-modules \ - --disable-cups \ - --disable-colord \ - WAYLAND_PROTOCOLS_SYSROOT_DIR=${STAGING_DIR}/${MACHINE} \ - " -EXTRA_OECONF[vardepsexclude] = "MACHINE" - -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/gdk/.libs" +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +do_configure:prepend() { + # These files are generated by wayland-scanner but will race over modification + # time between the copies in the sysroot from wayland-protocols and the copy + # in the source tree. Solve the race by deleting so they need to be regenerated. + rm -f ${S}/modules/input/*-text-input-*.[ch] } -PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)} \ - ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "opengl", "", d)} \ - ${@bb.utils.contains("DISTRO_FEATURES", "opengl x11", "glx", "", d)} \ - ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)}" +GTKDOC_MESON_OPTION = 'gtk_doc' + +EXTRA_OEMESON = "-Dxinerama=no -Dtests=false" +EXTRA_OEMESON:append:class-native = " -Ddemos=false -Dexamples=false" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl wayland x11', d)}" +PACKAGECONFIG:class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" -PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes" +PACKAGECONFIG[x11] = "-Dx11_backend=true,-Dx11_backend=false,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes" # this is provided by oe-core patch that removes epoxy/gl dependency from a X11 build -PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,libepoxy" -PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,,libgl" -PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland wayland-protocols libxkbcommon virtual/mesa wayland-native" +PACKAGECONFIG[opengl] = "-Dopengl=true,-Dopengl=false,libepoxy" +PACKAGECONFIG[wayland] = "-Dwayland_backend=true,-Dwayland_backend=false,wayland wayland-protocols libxkbcommon virtual/egl virtual/libgles2 wayland-native" +PACKAGECONFIG[cups] = ",,cups,cups" +PACKAGECONFIG[colord] = "-Dcolord=yes,-Dcolord=no,colord" +PACKAGECONFIG[cloudproviders] = "-Dcloudproviders=true,-Dcloudproviders=false,libcloudproviders" +PACKAGECONFIG[tracker3] = "-Dtracker3=true,-Dtracker3=false,tracker,tracker-miners" + +prepare_gtk_scripts() { + mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0 + + # duplicate gtk-query-immodules for post install script update_gtk_immodules_cache + mkdir -p ${D}${libexecdir} + ln ${D}${bindir}/gtk-query-immodules-3.0 ${D}${libexecdir}/${MLPREFIX}gtk-query-immodules-3.0 +} + +do_install:append:class-target() { + prepare_gtk_scripts +} + +do_install:append:class-nativesdk() { + prepare_gtk_scripts +} -do_install_append() { - mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0 +do_install:append:class-native() { + create_wrapper ${D}/${bindir}/gtk-update-icon-cache \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache + create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache } +PROVIDES += "gtk-icon-utils" PACKAGES =+ "${PN}-demo" LIBV = "3.0.0" -FILES_${PN}-demo = "${bindir}/gtk3-demo \ +FILES:${PN}-demo = "${bindir}/gtk3-demo \ ${bindir}/gtk3-demo-application \ ${bindir}/gtk3-icon-browser \ ${bindir}/gtk3-widget-factory \ @@ -68,16 +84,18 @@ FILES_${PN}-demo = "${bindir}/gtk3-demo \ ${datadir}/icons/hicolor/*/apps/gtk3-demo*.png \ ${datadir}/icons/hicolor/*/apps/gtk3-widget-factory*.png" -FILES_${PN}_append = " ${bindir}/gtk-update-icon-cache-3.0 \ +FILES:${PN}:append = " ${bindir}/gtk-update-icon-cache-3.0 \ ${bindir}/gtk-query-immodules-3.0 \ ${bindir}/gtk-launch \ - ${datadir}/themes ${sysconfdir} ${datadir}/glib-2.0/schemas/ \ + ${datadir}/themes ${datadir}/gtk-3.0/emoji \ + ${sysconfdir} ${datadir}/glib-2.0/schemas/ \ ${libdir}/gtk-3.0/${LIBV}/engines/libpixmap.so \ ${libdir}/gtk-3.0/modules/*.so" -FILES_${PN}-dev += " \ +FILES:${PN}-dev += " \ ${datadir}/gtk-3.0/gtkbuilder.rng \ ${datadir}/gtk-3.0/include \ + ${datadir}/gtk-3.0/valgrind \ ${datadir}/gettext/its \ ${libdir}/gtk-3.0/include \ ${libdir}/gtk-3.0/${LIBV}/loaders/*.la \ @@ -99,31 +117,35 @@ GTKBASE_RRECOMMENDS ?= "liberation-fonts \ shared-mime-info \ adwaita-icon-theme-symbolic \ " + +GTKBASE_RRECOMMENDS:class-native ?= "\ + " + GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1" -RRECOMMENDS_${PN} = "${GTKBASE_RRECOMMENDS}" -RRECOMMENDS_${PN}_libc-glibc = "${GTKGLIBC_RRECOMMENDS}" -RDEPENDS_${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}" +RRECOMMENDS:${PN} = "${GTKBASE_RRECOMMENDS}" +RRECOMMENDS:${PN}:libc-glibc = "${GTKGLIBC_RRECOMMENDS}" +RDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}" PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*" -ALTERNATIVE_${PN} = "gtk-update-icon-cache" +ALTERNATIVE:${PN} = "gtk-update-icon-cache" ALTERNATIVE_TARGET[gtk-update-icon-cache] = "${bindir}/gtk-update-icon-cache-3.0" ALTERNATIVE_PRIORITY = "30" -python populate_packages_prepend () { +python populate_packages:prepend () { import os.path gtk_libdir = d.expand('${libdir}/gtk-3.0/${LIBV}') immodules_root = os.path.join(gtk_libdir, 'immodules') printmodules_root = os.path.join(gtk_libdir, 'printbackends'); - immodules = do_split_packages(d, immodules_root, '^im-(.*)\.so$', 'gtk3-immodule-%s', 'GTK input module for %s') + immodules = do_split_packages(d, immodules_root, r'^im-(.*)\.so$', 'gtk3-immodule-%s', 'GTK input module for %s') if immodules: d.setVar("GTKIMMODULES_PACKAGES", " ".join(immodules)) - do_split_packages(d, printmodules_root, '^libprintbackend-(.*)\.so$', 'gtk3-printbackend-%s', 'GTK printbackend module for %s') + do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk3-printbackend-%s', 'GTK printbackend module for %s') - if (d.getVar('DEBIAN_NAMES', True)): - d.setVar(d.expand('PKG_${PN}'), '${MLPREFIX}libgtk-3.0') + if (d.getVar('DEBIAN_NAMES')): + d.setVar(d.expand('PKG:${PN}'), '${MLPREFIX}libgtk-3.0') } 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 0bda1f1074..0000000000 --- a/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 5a73a5b92566e314bbc8a1bd40f1ec204837c111 Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen <jussi.kukkonen@intel.com> -Date: Tue, 21 Jun 2016 14:53:56 +0300 -Subject: [PATCH 1/4] Hardcoded libtool - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Marko Lindqvist <cazfi74@gmail.com> -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> ---- - configure.ac | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 23d3077..b6931d6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -610,7 +610,7 @@ AC_MSG_CHECKING([whether to write dependencies into .pc files]) - case $enable_explicit_deps in - auto) - export SED -- deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` -+ deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` - if test "x$deplibs_check_method" != xpass_all || test "x$enable_static" = xyes ; then - enable_explicit_deps=yes - else -@@ -876,7 +876,7 @@ else - dnl Now we check to see if our libtool supports shared lib deps - dnl (in a rather ugly way even) - if $dynworks; then -- module_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config" -+ module_libtool_config="${CONFIG_SHELL-/bin/sh} ./$host_alias-libtool --config" - module_deplibs_check=`$module_libtool_config | \ - grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \ - sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'` -@@ -1630,7 +1630,7 @@ AC_SUBST(GTK_PRINT_BACKENDS) - # We are using gmodule-no-export now, but I'm leaving the stripping - # code in place for now, since pango and atk still require gmodule. - export SED --export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` -+export_dynamic=`(./$host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` - if test -n "$export_dynamic"; then - GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"` - GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"` --- -2.1.4 - diff --git a/meta/recipes-gnome/gtk+/gtk+3/0001-meson.build-build-introspection-according-to-option-.patch b/meta/recipes-gnome/gtk+/gtk+3/0001-meson.build-build-introspection-according-to-option-.patch new file mode 100644 index 0000000000..11effd421f --- /dev/null +++ b/meta/recipes-gnome/gtk+/gtk+3/0001-meson.build-build-introspection-according-to-option-.patch @@ -0,0 +1,34 @@ +From 6e533d5598ef875f30b84d931aae11b768465869 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Mon, 2 Jan 2023 15:00:02 +0100 +Subject: [PATCH] meson.build: build introspection according to option only + +The way the check is written, if the build is native, then the +introspection option has no effect. + +Particularly yocto project does want to disable introspection in +native builds and enable it in cross builds (both via the option), +and without this patch the former is not possible. + +Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5382] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index bfc33af0f6..94ffaa7769 100644 +--- a/meson.build ++++ b/meson.build +@@ -854,7 +854,7 @@ endif + + # Introspection + gir = find_program('g-ir-scanner', required : get_option('introspection')) +-build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection')) ++build_gir = gir.found() and get_option('introspection') + + subdir('gdk') + subdir('gtk') +-- +2.30.2 + 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 989716e513..0000000000 --- a/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch +++ /dev/null @@ -1,60 +0,0 @@ -From d63b926f8c8d8b5c9f9ec33d078b775f0409d88a Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen <jussi.kukkonen@intel.com> -Date: Fri, 16 Oct 2015 16:35:16 +0300 -Subject: [PATCH 2/4] Do not try to initialize GL without libGL - -_gdk_x11_screen_update_visuals_for_gl() will end up calling epoxys -GLX api which will exit() if libGL.so.1 is not present. We do not -want that to happen and we don't want every app to have to set -"GDK_GL=disabled" environment variable: so use #ifdef set based on -opengl distro feature. - -Upstream is not interested in the fix as it is: Either epoxy should be -fixed (to not exit) or GTK+ possibly could do some additional probing -before calling epoxy APIs. - -Upstream-Status: Denied -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> ---- - configure.ac | 7 +++++++ - gdk/x11/gdkvisual-x11.c | 5 +++++ - 2 files changed, 12 insertions(+) - -diff --git a/configure.ac b/configure.ac -index b6931d6..e27da49 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -342,6 +342,13 @@ AC_ARG_ENABLE(mir-backend, - [enable the Mir gdk backend])], - [backend_set=yes]) - -+AC_ARG_ENABLE(glx, -+ [AS_HELP_STRING([--enable-glx], -+ [When enabled Gdk will try to initialize GLX])]) -+AS_IF([test "x$enable_glx" != "xno"], [ -+ AC_DEFINE([HAVE_GLX], [], [GLX will be available at runtime]) -+]) -+ - if test -z "$backend_set"; then - if test "$platform_win32" = yes; then - enable_win32_backend=yes -diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c -index 81479d8..3c8c5c0 100644 ---- a/gdk/x11/gdkvisual-x11.c -+++ b/gdk/x11/gdkvisual-x11.c -@@ -306,7 +306,12 @@ _gdk_x11_screen_init_visuals (GdkScreen *screen) - /* If GL is available we want to pick better default/rgba visuals, - as we care about glx details such as alpha/depth/stencil depth, - stereo and double buffering */ -+ /* update_visuals_for_gl() will end up calling epoxy GLX api which -+ will exit if libgl is not there: so only do this if we know GL -+ is available */ -+#ifdef HAVE_GLX - _gdk_x11_screen_update_visuals_for_gl (screen); -+#endif - } - - gint --- -2.1.4 - 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 0912c44ff3..0000000000 --- a/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch +++ /dev/null @@ -1,954 +0,0 @@ -From a8fa547fdc1416b330aced805f5343ad912932ae Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen <jussi.kukkonen@intel.com> -Date: Tue, 21 Jun 2016 15:11:39 +0300 -Subject: [PATCH 3/4] Add --disable-opengl configure option - ---disable-opengl will remove the dependency on libepoxy and on the -OpenGL APIs. This is useful for those who want to keep using gtk+3 -without the "opengl" distro feature. - -GtkGLArea is still part of the API (it just doesn't work) even when -OpenGL is disabled. GdkX11GLContext was removed from the Gtk API -completely: that object exposes GL API elements so it had to be at -the very least modified. - -The patch is _not_ great from a maintenance point of view and -modifying the library API is also a fairly nasty thing to do. -Long-term it would be good to find an alternative solution to this -(maybe a no-op backend for libepoxy?) - -Upstream-Status: Inappropriate [Evil eye expected from upstream] -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> ---- - configure.ac | 13 +++++++++++-- - demos/gtk-demo/glarea.c | 13 +++++++++++++ - docs/tools/Makefile.am | 9 +++++++-- - docs/tools/widgets.c | 4 +++- - gdk/gdkdisplay.c | 4 +++- - gdk/gdkgl.c | 10 ++++++++++ - gdk/gdkglcontext.c | 6 ++++++ - gdk/gdkwindow.c | 13 +++++++++++++ - gdk/x11/Makefile.am | 30 ++++++++++++++++++++++++++---- - gdk/x11/gdkdisplay-x11.c | 6 +++++- - gdk/x11/gdkscreen-x11.c | 5 +++++ - gdk/x11/gdkwindow-x11.c | 4 ++++ - gdk/x11/gdkx-autocleanups.h | 2 ++ - gdk/x11/gdkx-with-gl-context.h | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - gdk/x11/gdkx-without-gl-context.h | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - gdk/x11/gdkx.h | 59 ----------------------------------------------------------- - gtk/Makefile.am | 3 +-- - gtk/gtkglarea.c | 20 +++++++++++++++++++- - gtk/inspector/general.c | 6 ++++++ - tests/Makefile.am | 10 +++++++--- - testsuite/gtk/objects-finalize.c | 2 ++ - 21 files changed, 260 insertions(+), 76 deletions(-) - -diff --git a/configure.ac b/configure.ac -index a01824e..dde9dc5 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -342,6 +342,15 @@ AC_ARG_ENABLE(mir-backend, - [enable the Mir gdk backend])], - [backend_set=yes]) - -+AC_ARG_ENABLE(opengl, -+ [AS_HELP_STRING([--enable-opengl], -+ [When enabled, Gtk+ will use libepoxy and exposes GtkGLArea widget ])]) -+AS_IF([test "x$enable_opengl" != "xno"], [ -+ AC_DEFINE([HAVE_OPENGL], [1], [libepoxy and opengl APIs are available at buildtime]) -+ EPOXY_PACKAGES="epoxy >= epoxy_required_version" -+]) -+AM_CONDITIONAL([HAVE_OPENGL],[test "x$enable_opengl" != "xno"]) -+ - AC_ARG_ENABLE(glx, - [AS_HELP_STRING([--enable-glx], - [When enabled Gdk will try to initialize GLX])]) -@@ -1333,7 +1342,7 @@ CFLAGS="$saved_cflags" - LDFLAGS="$saved_ldflags" - - GDK_PACKAGES="$PANGO_PACKAGES gdk-pixbuf-2.0 >= gdk_pixbuf_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version" --GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $cairo_backends epoxy >= epoxy_required_version" -+GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $cairo_backends $EPOXY_PACKAGES" - - PKG_CHECK_MODULES(GDK_DEP, $GDK_PACKAGES $GDK_PRIVATE_PACKAGES) - GDK_DEP_LIBS="$GDK_EXTRA_LIBS $GDK_DEP_LIBS $MATH_LIB" -@@ -1367,7 +1376,7 @@ fi - PKG_CHECK_MODULES(ATK, $ATK_PACKAGES) - - 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" --GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES epoxy >= epoxy_required_version" -+GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $EPOXY_PACKAGES" - if test "x$enable_x11_backend" = xyes -o "x$enable_wayland_backend" = xyes; then - GTK_PRIVATE_PACKAGES="$GTK_PRIVATE_PACKAGES pangoft2" - fi -diff --git a/demos/gtk-demo/glarea.c b/demos/gtk-demo/glarea.c -index 3aba729..c6c79f7 100644 ---- a/demos/gtk-demo/glarea.c -+++ b/demos/gtk-demo/glarea.c -@@ -5,7 +5,9 @@ - - #include <math.h> - #include <gtk/gtk.h> -+#if HAVE_OPENGL - #include <epoxy/gl.h> -+#endif - - static GtkWidget *demo_window = NULL; - -@@ -23,6 +25,8 @@ enum { - /* Rotation angles on each axis */ - static float rotation_angles[N_AXIS] = { 0.0 }; - -+#ifdef HAVE_OPENGL -+ - /* The object we are drawing */ - static const GLfloat vertex_data[] = { - 0.f, 0.5f, 0.f, 1.f, -@@ -213,6 +217,7 @@ compute_mvp (float *res, - static GLuint position_buffer; - static GLuint program; - static GLuint mvp_location; -+#endif - - /* We need to set up our state when we realize the GtkGLArea widget */ - static void -@@ -223,8 +228,10 @@ realize (GtkWidget *widget) - if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL) - return; - -+#ifdef HAVE_OPENGL - init_buffers (&position_buffer, NULL); - init_shaders (&program, &mvp_location); -+#endif - } - - /* We should tear down the state when unrealizing */ -@@ -236,10 +243,13 @@ unrealize (GtkWidget *widget) - if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL) - return; - -+#ifdef HAVE_OPENGL - glDeleteBuffers (1, &position_buffer); - glDeleteProgram (program); -+#endif - } - -+#ifdef HAVE_OPENGL - static void - draw_triangle (void) - { -@@ -272,6 +282,7 @@ draw_triangle (void) - glBindBuffer (GL_ARRAY_BUFFER, 0); - glUseProgram (0); - } -+#endif - - static gboolean - render (GtkGLArea *area, -@@ -280,6 +291,7 @@ render (GtkGLArea *area, - if (gtk_gl_area_get_error (area) != NULL) - return FALSE; - -+#ifdef HAVE_OPENGL - /* Clear the viewport */ - glClearColor (0.5, 0.5, 0.5, 1.0); - glClear (GL_COLOR_BUFFER_BIT); -@@ -289,6 +301,7 @@ render (GtkGLArea *area, - - /* Flush the contents of the pipeline */ - glFlush (); -+#endif - - return TRUE; - } -diff --git a/docs/tools/Makefile.am b/docs/tools/Makefile.am -index 6a6d70f..5cdf312 100644 ---- a/docs/tools/Makefile.am -+++ b/docs/tools/Makefile.am -@@ -9,13 +9,18 @@ AM_CPPFLAGS = \ - $(GTK_DEBUG_FLAGS) \ - $(GTK_DEP_CFLAGS) - -+if HAVE_OPENGL -+GEARS_LDADD = $(top_builddir)/tests/gtkgears.o -+endif -+ - DEPS = \ -- $(top_builddir)/gtk/libgtk-3.la -+ $(top_builddir)/gtk/libgtk-3.la \ -+ $(GEARS_LDADD) - - LDADDS = \ - $(top_builddir)/gtk/libgtk-3.la \ - $(top_builddir)/gdk/libgdk-3.la \ -- $(top_builddir)/tests/gtkgears.o \ -+ $(GEARS_LDADD) \ - $(GTK_DEP_LIBS) \ - $(GDK_DEP_LIBS) \ - -lm -diff --git a/docs/tools/widgets.c b/docs/tools/widgets.c -index 932daf1..54239d6 100644 ---- a/docs/tools/widgets.c -+++ b/docs/tools/widgets.c -@@ -1526,9 +1526,11 @@ create_gl_area (void) - widget = gtk_frame_new (NULL); - gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN); - -+#ifdef HAVE_OPENGL - gears = gtk_gears_new (); - gtk_container_add (GTK_CONTAINER (widget), gears); -- -+#endif -+ - info = new_widget_info ("glarea", widget, MEDIUM); - - return info; -diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c -index 6150ef7..2223629 100644 ---- a/gdk/gdkdisplay.c -+++ b/gdk/gdkdisplay.c -@@ -2360,7 +2360,9 @@ gboolean - gdk_display_make_gl_context_current (GdkDisplay *display, - GdkGLContext *context) - { -- return GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current (display, context); -+ if (GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current) -+ return GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current (display, context); -+ return FALSE; - } - - GdkRenderingMode -diff --git a/gdk/gdkgl.c b/gdk/gdkgl.c -index e8ba770..ba7c84b 100644 ---- a/gdk/gdkgl.c -+++ b/gdk/gdkgl.c -@@ -22,7 +22,9 @@ - - #include "gdkinternals.h" - -+#ifdef HAVE_OPENGL - #include <epoxy/gl.h> -+#endif - #include <math.h> - #include <string.h> - -@@ -36,6 +38,7 @@ gdk_cairo_surface_mark_as_direct (cairo_surface_t *surface, - g_object_ref (window), g_object_unref); - } - -+#ifdef HAVE_OPENGL - static const char * - get_vertex_type_name (int type) - { -@@ -254,6 +257,7 @@ use_texture_rect_program (GdkGLContextPaintData *paint_data) - glUseProgram (paint_data->current_program->program); - } - } -+#endif - - void - gdk_gl_texture_quads (GdkGLContext *paint_context, -@@ -261,6 +265,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context, - int n_quads, - GdkTexturedQuad *quads) - { -+#ifdef HAVE_OPENGL - GdkGLContextPaintData *paint_data = gdk_gl_context_get_paint_data (paint_context); - GdkGLContextProgram *program; - GdkWindow *window = gdk_gl_context_get_window (paint_context); -@@ -324,6 +329,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context, - - glDisableVertexAttribArray (program->position_location); - glDisableVertexAttribArray (program->uv_location); -+#endif - } - - /* x,y,width,height describes a rectangle in the gl render buffer -@@ -372,6 +378,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr, - int width, - int height) - { -+#ifdef HAVE_OPENGL - GdkGLContext *paint_context; - cairo_surface_t *image; - cairo_matrix_t matrix; -@@ -692,6 +699,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr, - if (clip_region) - cairo_region_destroy (clip_region); - -+#endif - } - - /* This is always called with the paint context current */ -@@ -699,6 +707,7 @@ void - gdk_gl_texture_from_surface (cairo_surface_t *surface, - cairo_region_t *region) - { -+#ifdef HAVE_OPENGL - GdkGLContext *paint_context; - cairo_surface_t *image; - double device_x_offset, device_y_offset; -@@ -799,4 +808,5 @@ gdk_gl_texture_from_surface (cairo_surface_t *surface, - - glDisable (GL_SCISSOR_TEST); - glDeleteTextures (1, &texture_id); -+#endif - } -diff --git a/gdk/gdkglcontext.c b/gdk/gdkglcontext.c -index 00a33eb..bd8a793 100644 ---- a/gdk/gdkglcontext.c -+++ b/gdk/gdkglcontext.c -@@ -85,7 +85,9 @@ - #include "gdkintl.h" - #include "gdk-private.h" - -+#ifdef HAVE_OPENGL - #include <epoxy/gl.h> -+#endif - - typedef struct { - GdkDisplay *display; -@@ -239,6 +241,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context, - int height, - guint texture_target) - { -+#ifdef HAVE_OPENGL - g_return_if_fail (GDK_IS_GL_CONTEXT (context)); - - glPixelStorei (GL_UNPACK_ALIGNMENT, 4); -@@ -246,6 +249,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context, - glTexImage2D (texture_target, 0, GL_RGBA, width, height, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, - cairo_image_surface_get_data (image_surface)); - glPixelStorei (GL_UNPACK_ROW_LENGTH, 0); -+#endif - } - - static void -@@ -635,6 +639,7 @@ gdk_gl_context_realize (GdkGLContext *context, - static void - gdk_gl_context_check_extensions (GdkGLContext *context) - { -+#ifdef HAVE_OPENGL - GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context); - gboolean has_npot, has_texture_rectangle; - -@@ -677,6 +682,7 @@ gdk_gl_context_check_extensions (GdkGLContext *context) - priv->use_texture_rectangle ? "yes" : "no")); - - priv->extensions_checked = TRUE; -+#endif - } - - /** -diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c -index 66ebb9d..74a0c3a 100644 ---- a/gdk/gdkwindow.c -+++ b/gdk/gdkwindow.c -@@ -44,7 +44,9 @@ - - #include <math.h> - -+#ifdef HAVE_OPENGL - #include <epoxy/gl.h> -+#endif - - /* for the use of round() */ - #include "fallback-c89.c" -@@ -2759,6 +2761,13 @@ gdk_window_get_paint_gl_context (GdkWindow *window, - { - GError *internal_error = NULL; - -+#ifndef HAVE_OPENGL -+ g_set_error_literal (error, GDK_GL_ERROR, -+ GDK_GL_ERROR_NOT_AVAILABLE, -+ _("GL support disabled with --disable-opengl")); -+ return NULL; -+#endif -+ - if (_gdk_gl_flags & GDK_GL_DISABLE) - { - g_set_error_literal (error, GDK_GL_ERROR, -@@ -2955,6 +2964,7 @@ gdk_window_begin_paint_region (GdkWindow *window, - } - else - { -+#ifdef HAVE_OPENGL - gdk_gl_context_make_current (context); - /* With gl we always need a surface to combine the gl - drawing with the native drawing. */ -@@ -2969,6 +2979,7 @@ gdk_window_begin_paint_region (GdkWindow *window, - glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA); - - glViewport (0, 0, ww, wh); -+#endif - } - } - -@@ -3117,6 +3128,7 @@ gdk_window_end_paint (GdkWindow *window) - - gdk_gl_context_make_current (window->gl_paint_context); - -+#ifdef HAVE_OPENGL - if (!cairo_region_is_empty (opaque_region)) - gdk_gl_texture_from_surface (window->current_paint.surface, - opaque_region); -@@ -3127,6 +3139,7 @@ gdk_window_end_paint (GdkWindow *window) - window->current_paint.need_blend_region); - glDisable(GL_BLEND); - } -+#endif - - cairo_region_destroy (opaque_region); - -diff --git a/gdk/x11/Makefile.am b/gdk/x11/Makefile.am -index c488a31..4ce3c07 100644 ---- a/gdk/x11/Makefile.am -+++ b/gdk/x11/Makefile.am -@@ -39,8 +39,6 @@ libgdk_x11_la_SOURCES = \ - gdkeventtranslator.c \ - gdkeventtranslator.h \ - gdkgeometry-x11.c \ -- gdkglcontext-x11.c \ -- gdkglcontext-x11.h \ - gdkkeys-x11.c \ - gdkmain-x11.c \ - gdkproperty-x11.c \ -@@ -53,14 +51,32 @@ libgdk_x11_la_SOURCES = \ - gdkwindow-x11.h \ - gdkxftdefaults.c \ - gdkxid.c \ -- gdkx.h \ - gdkprivate-x11.h \ - xsettings-client.h \ - xsettings-client.c - -+if HAVE_OPENGL -+libgdk_x11_la_SOURCES += \ -+ gdkglcontext-x11.c \ -+ gdkglcontext-x11.h -+endif -+ - libgdkinclude_HEADERS = \ - gdkx.h - -+if HAVE_OPENGL -+GDKX_HEADER = gdkx-with-gl-context.h -+else -+GDKX_HEADER = gdkx-without-gl-context.h -+endif -+ -+BUILT_SOURCES = gdkx.h -+ -+.PHONY: gdkx.h -+gdkx.h: -+ $(AM_V_GEN) cd $(srcdir) \ -+ && (cmp -s $(GDKX_HEADER) gdkx.h || cp $(GDKX_HEADER) gdkx.h ) -+ - libgdkx11include_HEADERS = \ - gdkx-autocleanups.h \ - gdkx11applaunchcontext.h \ -@@ -74,7 +90,6 @@ libgdkx11include_HEADERS = \ - gdkx11display.h \ - gdkx11displaymanager.h \ - gdkx11dnd.h \ -- gdkx11glcontext.h \ - gdkx11keys.h \ - gdkx11property.h \ - gdkx11screen.h \ -@@ -83,9 +98,16 @@ libgdkx11include_HEADERS = \ - gdkx11visual.h \ - gdkx11window.h - -+if HAVE_OPENGL -+libgdkx11include_HEADERS += gdkx11glcontext.h -+endif -+ - # We need to include all these C files here since the conditionals - # don't seem to be correctly expanded for the dist files. - EXTRA_DIST += \ -+ gdkx.h \ - gdksettings.c - -+MAINTAINERCLEANFILES = gdkx.h -+ - -include $(top_srcdir)/git.mk -diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c -index de91c64..42d50f6 100644 ---- a/gdk/x11/gdkdisplay-x11.c -+++ b/gdk/x11/gdkdisplay-x11.c -@@ -37,7 +37,9 @@ - #include "gdkdisplay-x11.h" - #include "gdkprivate-x11.h" - #include "gdkscreen-x11.h" -+#ifdef HAVE_OPENGL - #include "gdkglcontext-x11.h" -+#endif - #include "gdk-private.h" - - #include <glib.h> -@@ -2959,7 +2961,9 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class) - display_class->text_property_to_utf8_list = _gdk_x11_display_text_property_to_utf8_list; - display_class->utf8_to_string_target = _gdk_x11_display_utf8_to_string_target; - -- display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current; -+#ifdef HAVE_OPENGL -+ display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current; -+#endif - - display_class->get_default_seat = gdk_x11_display_get_default_seat; - -diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c -index 9d8ed20..bd46b00 100644 ---- a/gdk/x11/gdkscreen-x11.c -+++ b/gdk/x11/gdkscreen-x11.c -@@ -1968,3 +1968,8 @@ gdk_x11_screen_get_current_desktop (GdkScreen *screen) - { - return get_netwm_cardinal_property (screen, "_NET_CURRENT_DESKTOP"); - } -+ -+#ifndef HAVE_OPENGL -+/* Function from in gdk/x11/gdkglcontext-x11.c */ -+void _gdk_x11_screen_update_visuals_for_gl (GdkScreen *screen) {} -+#endif -diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c -index 9ed087a..30d6eb7 100644 ---- a/gdk/x11/gdkwindow-x11.c -+++ b/gdk/x11/gdkwindow-x11.c -@@ -36,7 +36,9 @@ - #include "gdkasync.h" - #include "gdkeventsource.h" - #include "gdkdisplay-x11.h" -+#ifdef HAVE_OPENGL - #include "gdkglcontext-x11.h" -+#endif - #include "gdkprivate-x11.h" - #include "gdk-private.h" - -@@ -5782,7 +5784,9 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass) - impl_class->set_opaque_region = gdk_x11_window_set_opaque_region; - impl_class->set_shadow_width = gdk_x11_window_set_shadow_width; - impl_class->show_window_menu = gdk_x11_window_show_window_menu; -+#ifdef HAVE_OPENGL - impl_class->create_gl_context = gdk_x11_window_create_gl_context; - impl_class->invalidate_for_new_frame = gdk_x11_window_invalidate_for_new_frame; -+#endif - impl_class->get_unscaled_size = gdk_x11_window_get_unscaled_size; - } -diff --git a/gdk/x11/gdkx-autocleanups.h b/gdk/x11/gdkx-autocleanups.h -index edb0ea7..a317d61 100644 ---- a/gdk/x11/gdkx-autocleanups.h -+++ b/gdk/x11/gdkx-autocleanups.h -@@ -30,7 +30,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DeviceXI2, g_object_unref) - G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Display, g_object_unref) - G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DisplayManager, g_object_unref) - G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DragContext, g_object_unref) -+#ifdef HAVE_OPENGL - G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11GLContext, g_object_unref) -+#endif - G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Keymap, g_object_unref) - G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Screen, g_object_unref) - G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Visual, g_object_unref) -diff --git a/gdk/x11/gdkx-with-gl-context.h b/gdk/x11/gdkx-with-gl-context.h -new file mode 100644 -index 0000000..ae05fa6 ---- /dev/null -+++ b/gdk/x11/gdkx-with-gl-context.h -@@ -0,0 +1,59 @@ -+/* GDK - The GIMP Drawing Kit -+ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library. If not, see <http://www.gnu.org/licenses/>. -+ */ -+ -+/* -+ * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS -+ * file for a list of people on the GTK+ Team. See the ChangeLog -+ * files for a list of changes. These files are distributed with -+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. -+ */ -+ -+#ifndef __GDK_X_H__ -+#define __GDK_X_H__ -+ -+#include <gdk/gdk.h> -+ -+#include <X11/Xlib.h> -+#include <X11/Xutil.h> -+ -+#define __GDKX_H_INSIDE__ -+ -+#include <gdk/x11/gdkx11applaunchcontext.h> -+#include <gdk/x11/gdkx11cursor.h> -+#include <gdk/x11/gdkx11device.h> -+#include <gdk/x11/gdkx11device-core.h> -+#include <gdk/x11/gdkx11device-xi2.h> -+#include <gdk/x11/gdkx11devicemanager.h> -+#include <gdk/x11/gdkx11devicemanager-core.h> -+#include <gdk/x11/gdkx11devicemanager-xi2.h> -+#include <gdk/x11/gdkx11display.h> -+#include <gdk/x11/gdkx11displaymanager.h> -+#include <gdk/x11/gdkx11dnd.h> -+#include <gdk/x11/gdkx11glcontext.h> -+#include <gdk/x11/gdkx11keys.h> -+#include <gdk/x11/gdkx11property.h> -+#include <gdk/x11/gdkx11screen.h> -+#include <gdk/x11/gdkx11selection.h> -+#include <gdk/x11/gdkx11utils.h> -+#include <gdk/x11/gdkx11visual.h> -+#include <gdk/x11/gdkx11window.h> -+ -+#include <gdk/x11/gdkx-autocleanups.h> -+ -+#undef __GDKX_H_INSIDE__ -+ -+#endif /* __GDK_X_H__ */ -diff --git a/gdk/x11/gdkx-without-gl-context.h b/gdk/x11/gdkx-without-gl-context.h -new file mode 100644 -index 0000000..c9e2617 ---- /dev/null -+++ b/gdk/x11/gdkx-without-gl-context.h -@@ -0,0 +1,58 @@ -+/* GDK - The GIMP Drawing Kit -+ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library. If not, see <http://www.gnu.org/licenses/>. -+ */ -+ -+/* -+ * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS -+ * file for a list of people on the GTK+ Team. See the ChangeLog -+ * files for a list of changes. These files are distributed with -+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. -+ */ -+ -+#ifndef __GDK_X_H__ -+#define __GDK_X_H__ -+ -+#include <gdk/gdk.h> -+ -+#include <X11/Xlib.h> -+#include <X11/Xutil.h> -+ -+#define __GDKX_H_INSIDE__ -+ -+#include <gdk/x11/gdkx11applaunchcontext.h> -+#include <gdk/x11/gdkx11cursor.h> -+#include <gdk/x11/gdkx11device.h> -+#include <gdk/x11/gdkx11device-core.h> -+#include <gdk/x11/gdkx11device-xi2.h> -+#include <gdk/x11/gdkx11devicemanager.h> -+#include <gdk/x11/gdkx11devicemanager-core.h> -+#include <gdk/x11/gdkx11devicemanager-xi2.h> -+#include <gdk/x11/gdkx11display.h> -+#include <gdk/x11/gdkx11displaymanager.h> -+#include <gdk/x11/gdkx11dnd.h> -+#include <gdk/x11/gdkx11keys.h> -+#include <gdk/x11/gdkx11property.h> -+#include <gdk/x11/gdkx11screen.h> -+#include <gdk/x11/gdkx11selection.h> -+#include <gdk/x11/gdkx11utils.h> -+#include <gdk/x11/gdkx11visual.h> -+#include <gdk/x11/gdkx11window.h> -+ -+#include <gdk/x11/gdkx-autocleanups.h> -+ -+#undef __GDKX_H_INSIDE__ -+ -+#endif /* __GDK_X_H__ */ -diff --git a/gdk/x11/gdkx.h b/gdk/x11/gdkx.h -deleted file mode 100644 -index ae05fa6..0000000 ---- a/gdk/x11/gdkx.h -+++ /dev/null -@@ -1,59 +0,0 @@ --/* GDK - The GIMP Drawing Kit -- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald -- * -- * This library is free software; you can redistribute it and/or -- * modify it under the terms of the GNU Lesser General Public -- * License as published by the Free Software Foundation; either -- * version 2 of the License, or (at your option) any later version. -- * -- * This library is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * Lesser General Public License for more details. -- * -- * You should have received a copy of the GNU Lesser General Public -- * License along with this library. If not, see <http://www.gnu.org/licenses/>. -- */ -- --/* -- * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS -- * file for a list of people on the GTK+ Team. See the ChangeLog -- * files for a list of changes. These files are distributed with -- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. -- */ -- --#ifndef __GDK_X_H__ --#define __GDK_X_H__ -- --#include <gdk/gdk.h> -- --#include <X11/Xlib.h> --#include <X11/Xutil.h> -- --#define __GDKX_H_INSIDE__ -- --#include <gdk/x11/gdkx11applaunchcontext.h> --#include <gdk/x11/gdkx11cursor.h> --#include <gdk/x11/gdkx11device.h> --#include <gdk/x11/gdkx11device-core.h> --#include <gdk/x11/gdkx11device-xi2.h> --#include <gdk/x11/gdkx11devicemanager.h> --#include <gdk/x11/gdkx11devicemanager-core.h> --#include <gdk/x11/gdkx11devicemanager-xi2.h> --#include <gdk/x11/gdkx11display.h> --#include <gdk/x11/gdkx11displaymanager.h> --#include <gdk/x11/gdkx11dnd.h> --#include <gdk/x11/gdkx11glcontext.h> --#include <gdk/x11/gdkx11keys.h> --#include <gdk/x11/gdkx11property.h> --#include <gdk/x11/gdkx11screen.h> --#include <gdk/x11/gdkx11selection.h> --#include <gdk/x11/gdkx11utils.h> --#include <gdk/x11/gdkx11visual.h> --#include <gdk/x11/gdkx11window.h> -- --#include <gdk/x11/gdkx-autocleanups.h> -- --#undef __GDKX_H_INSIDE__ -- --#endif /* __GDK_X_H__ */ -diff --git a/gtk/Makefile.am b/gtk/Makefile.am -index 6a53a2b..49a35e6 100644 ---- a/gtk/Makefile.am -+++ b/gtk/Makefile.am -@@ -1351,14 +1351,13 @@ gtkprivatetypebuiltins.c: $(gtk_private_type_h_sources) gtkprivatetypebuiltins. - && cp xgen-gptbc gtkprivatetypebuiltins.c \ - && rm -f xgen-gptbc - -- - gtktypefuncs.c: stamp-gtktypebuiltins.h stamp-gtkprivatetypebuiltins.h $(top_srcdir)/gtk/*.h $(top_srcdir)/gtk/a11y/*.h $(top_srcdir)/gtk/deprecated/*.h $(top_srcdir)/gdk/*.h Makefile - $(AM_V_GEN) (echo '#undef GTK_COMPILATION' && echo '#include <gtk/gtkx.h>') > xgen-gtfsrc.c && \ - echo 'G_GNUC_BEGIN_IGNORE_DEPRECATIONS' > xgen-gtf && \ - ${CPP} $(DEFS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) xgen-gtfsrc.c | \ - $(GREP) -o '\bg[td]k_[a-zA-Z0-9_]*_get_type\b' | \ - sort | uniq | \ -- $(SED) '{ s/^/*tp++ = /; s/$$/();/; s/^.*\(gdk_x11\|gtk_plug_\|gtk_socket_\).*$$/#ifdef GDK_WINDOWING_X11\n&\n#endif/; }' >> xgen-gtf \ -+ $(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 \ - && cp xgen-gtf $@ && rm -f xgen-gtf - gtktestutils.c: gtktypefuncs.c - -diff --git a/gtk/gtkglarea.c b/gtk/gtkglarea.c -index 245fc6b..4214ad1 100644 ---- a/gtk/gtkglarea.c -+++ b/gtk/gtkglarea.c -@@ -28,7 +28,9 @@ - #include "gtkprivate.h" - #include "gtkrender.h" - -+#ifdef HAVE_OPENGL - #include <epoxy/gl.h> -+#endif - - /** - * SECTION:gtkglarea -@@ -357,9 +359,12 @@ gtk_gl_area_real_create_context (GtkGLArea *area) - static void - gtk_gl_area_resize (GtkGLArea *area, int width, int height) - { -+#ifdef HAVE_OPENGL - glViewport (0, 0, width, height); -+#endif - } - -+#ifdef HAVE_OPENGL - /* - * Creates all the buffer objects needed for rendering the scene - */ -@@ -467,6 +472,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area) - - priv->needs_render = TRUE; - } -+#endif - - /** - * gtk_gl_area_attach_buffers: -@@ -485,6 +491,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area) - void - gtk_gl_area_attach_buffers (GtkGLArea *area) - { -+#ifdef HAVE_OPENGL - GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); - - g_return_if_fail (GTK_IS_GL_AREA (area)); -@@ -517,11 +524,13 @@ gtk_gl_area_attach_buffers (GtkGLArea *area) - glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT, - GL_RENDERBUFFER_EXT, priv->depth_stencil_buffer); - } -+#endif - } - - static void - gtk_gl_area_delete_buffers (GtkGLArea *area) - { -+#ifdef HAVE_OPENGL - GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); - - if (priv->context == NULL) -@@ -553,6 +562,7 @@ gtk_gl_area_delete_buffers (GtkGLArea *area) - glDeleteFramebuffersEXT (1, &priv->frame_buffer); - priv->frame_buffer = 0; - } -+#endif - } - - static void -@@ -663,6 +673,7 @@ gtk_gl_area_draw (GtkWidget *widget, - GtkGLArea *area = GTK_GL_AREA (widget); - GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); - gboolean unused; -+#ifdef HAVE_OPENGL - int w, h, scale; - GLenum status; - -@@ -674,7 +685,6 @@ gtk_gl_area_draw (GtkWidget *widget, - gtk_widget_get_allocated_height (widget)); - return FALSE; - } -- - if (priv->context == NULL) - return FALSE; - -@@ -720,6 +730,14 @@ gtk_gl_area_draw (GtkWidget *widget, - } - - return TRUE; -+#else -+ if (priv->error != NULL) -+ gtk_gl_area_draw_error_screen (area, -+ cr, -+ gtk_widget_get_allocated_width (widget), -+ gtk_widget_get_allocated_height (widget)); -+ return FALSE; -+#endif - } - - static gboolean -diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c -index 4eab3a7..c4e900e 100644 ---- a/gtk/inspector/general.c -+++ b/gtk/inspector/general.c -@@ -33,8 +33,10 @@ - - #ifdef GDK_WINDOWING_X11 - #include "x11/gdkx.h" -+#ifdef HAVE_OPENGL - #include <epoxy/glx.h> - #endif -+#endif - - #ifdef GDK_WINDOWING_WIN32 - #include "win32/gdkwin32.h" -@@ -147,6 +149,7 @@ append_extension_row (GtkInspectorGeneral *gen, - gtk_size_group_add_widget (GTK_SIZE_GROUP (gen->priv->labels), label); - } - -+#ifdef HAVE_OPENGL - #ifdef GDK_WINDOWING_X11 - static void - append_glx_extension_row (GtkInspectorGeneral *gen, -@@ -156,6 +159,7 @@ append_glx_extension_row (GtkInspectorGeneral *gen, - append_extension_row (gen, ext, epoxy_has_glx_extension (dpy, 0, ext)); - } - #endif -+#endif - - #ifdef GDK_WINDOWING_WAYLAND - static void -@@ -171,6 +175,7 @@ append_egl_extension_row (GtkInspectorGeneral *gen, - static void - init_gl (GtkInspectorGeneral *gen) - { -+#ifdef HAVE_OPENGL - #ifdef GDK_WINDOWING_X11 - if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) - { -@@ -197,6 +202,7 @@ init_gl (GtkInspectorGeneral *gen) - } - else - #endif -+#endif - #ifdef GDK_WINDOWING_WAYLAND - if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ())) - { -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 681807d..2941a36 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -80,8 +80,6 @@ noinst_PROGRAMS = $(TEST_PROGS) \ - testfullscreen \ - testgeometry \ - testgiconpixbuf \ -- testglarea \ -- testglblending \ - testgrid \ - testgtk \ - testheaderbar \ -@@ -169,11 +167,17 @@ noinst_PROGRAMS = $(TEST_PROGS) \ - testactionbar \ - testwindowsize \ - testpopover \ -- gdkgears \ - listmodel \ - testpopup \ - $(NULL) - -+if HAVE_OPENGL -+noinst_PROGRAMS += -+ testglarea \ -+ testglblending \ -+ gdkgears -+endif -+ - if USE_X11 - noinst_PROGRAMS += testerrors - endif -diff --git a/testsuite/gtk/objects-finalize.c b/testsuite/gtk/objects-finalize.c -index e0ebee0..703643c 100644 ---- a/testsuite/gtk/objects-finalize.c -+++ b/testsuite/gtk/objects-finalize.c -@@ -115,8 +115,10 @@ main (int argc, char **argv) - all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_CORE && - all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_XI2 && - all_types[i] != GDK_TYPE_X11_DISPLAY_MANAGER && -+#ifdef HAVE_OPENGL - all_types[i] != GDK_TYPE_X11_GL_CONTEXT && - #endif -+#endif - /* Not allowed to finalize a GdkPixbufLoader without calling gdk_pixbuf_loader_close() */ - all_types[i] != GDK_TYPE_PIXBUF_LOADER && - all_types[i] != gdk_pixbuf_simple_anim_iter_get_type()) diff --git a/meta/recipes-gnome/gtk+/gtk+3/0004-configure.ac-Fix-wayland-protocols-path.patch b/meta/recipes-gnome/gtk+/gtk+3/0004-configure.ac-Fix-wayland-protocols-path.patch deleted file mode 100644 index 634b3a46ff..0000000000 --- a/meta/recipes-gnome/gtk+/gtk+3/0004-configure.ac-Fix-wayland-protocols-path.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 97b78e566634579bbae51be914aeaaa921137a8b Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen <jussi.kukkonen@intel.com> -Date: Thu, 9 Jun 2016 11:21:36 +0300 -Subject: [PATCH 4/4] configure.ac: Fix wayland-protocols path - -The wayland-protocols directory is used during build: Fix the path -to point to sysroot specified in recipe. - -Normally PKG_CONFIG_SYSROOT_DIR could be used in configure.ac but that -breaks multilib gtk+ as it would point to multilib sysroot when the -(allarch) wayland-protocols is actually in the machine sysroot. - -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index a3e9beb..dde9dc5 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -461,7 +461,7 @@ fi - if test "$enable_wayland_backend" = "yes"; then - # For the cairo image backend - cairo_backends="$cairo_backends cairo" -- AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`) -+ AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, ${WAYLAND_PROTOCOLS_SYSROOT_DIR}`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`) - GDK_BACKENDS="$GDK_BACKENDS wayland" - GDK_WINDOWING="$GDK_WINDOWING - #define GDK_WINDOWING_WAYLAND" --- -2.1.4 - 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..7354265e10 --- /dev/null +++ b/meta/recipes-gnome/gtk+/gtk+3/opengl.patch @@ -0,0 +1,737 @@ +From 4a0716f04fb25b51b08e994bd5a900b2e7f7fed5 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen <jussi.kukkonen@intel.com> +Date: Fri, 16 Oct 2015 16:35:16 +0300 +Subject: [PATCH] Do not try to initialize GL without libGL + +_gdk_x11_screen_update_visuals_for_gl() will end up calling epoxys +GLX api which will exit() if libGL.so.1 is not present. We do not +want that to happen and we don't want every app to have to set +"GDK_GL=disabled" environment variable: so use #ifdef set based on +opengl distro feature. + +Upstream is not interested in the fix as it is: Either epoxy should be +fixed (to not exit) or GTK+ possibly could do some additional probing +before calling epoxy APIs. + +Upstream-Status: Denied +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> +--- + demos/gtk-demo/meson.build | 5 ++++- + docs/tools/meson.build | 7 +++++-- + docs/tools/widgets.c | 6 +++++- + gdk/gdkconfig.h.meson | 1 + + gdk/gdkdisplay.c | 4 ++++ + gdk/gdkgl.c | 10 ++++++++++ + gdk/gdkglcontext.c | 6 ++++++ + gdk/gdkwindow.c | 13 +++++++++++++ + gdk/meson.build | 8 +++++++- + gdk/x11/gdkdisplay-x11.c | 6 +++++- + gdk/x11/gdkvisual-x11.c | 5 +++++ + gdk/x11/gdkwindow-x11.c | 4 ++++ + gdk/x11/gdkx-autocleanups.h | 2 ++ + gdk/x11/gdkx.h | 2 ++ + gdk/x11/meson.build | 7 +++++-- + gtk/gtkglarea.c | 19 +++++++++++++++++++ + gtk/inspector/general.c | 6 ++++++ + meson.build | 17 ++++++++++++++--- + meson_options.txt | 2 ++ + tests/meson.build | 9 +++++++-- + testsuite/gtk/objects-finalize.c | 2 ++ + 21 files changed, 128 insertions(+), 13 deletions(-) + +diff --git a/demos/gtk-demo/meson.build b/demos/gtk-demo/meson.build +index 252da16d05..4b57cff6ac 100644 +--- a/demos/gtk-demo/meson.build ++++ b/demos/gtk-demo/meson.build +@@ -28,7 +28,6 @@ demos = files([ + 'fishbowl.c', + 'foreigndrawing.c', + 'gestures.c', +- 'glarea.c', + 'headerbar.c', + 'hypertext.c', + 'iconview.c', +@@ -87,6 +86,10 @@ elif harfbuzz_dep.found() and pangoft_dep.found() + gtkdemo_deps += [harfbuzz_dep, pangoft_dep] + endif + ++if opengl_enabled ++ demos += files('glarea.c') ++endif ++ + if os_unix + demos += files('pagesetup.c') + endif +diff --git a/docs/tools/meson.build b/docs/tools/meson.build +index 05621ee7ed..3d0a333b32 100644 +--- a/docs/tools/meson.build ++++ b/docs/tools/meson.build +@@ -2,10 +2,13 @@ if x11_enabled + doc_shooter_sources = [ + 'shadow.c', + 'shooter.c', +- 'widgets.c', +- '../../tests/gtkgears.c', ++ 'widgets.c' + ] + ++ if opengl_enabled ++ doc_shooter_sources += ['../../tests/gtkgears.c'] ++ endif ++ + doc_shooter = executable('doc-shooter', doc_shooter_sources, + include_directories: [ confinc, gdkinc, gtkinc, testinc, ], + dependencies: libgtk_dep) +diff --git a/docs/tools/widgets.c b/docs/tools/widgets.c +index 932daf1746..348807e133 100644 +--- a/docs/tools/widgets.c ++++ b/docs/tools/widgets.c +@@ -8,7 +8,9 @@ + #include <X11/Xatom.h> + #include <gdkx.h> + #include "widgets.h" ++#ifdef HAVE_OPENGL + #include "gtkgears.h" ++#endif + + #define SMALL_WIDTH 240 + #define SMALL_HEIGHT 75 +@@ -1526,9 +1528,11 @@ create_gl_area (void) + widget = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN); + ++#ifdef HAVE_OPENGL + gears = gtk_gears_new (); + gtk_container_add (GTK_CONTAINER (widget), gears); +- ++#endif ++ + info = new_widget_info ("glarea", widget, MEDIUM); + + return info; +diff --git a/gdk/gdkconfig.h.meson b/gdk/gdkconfig.h.meson +index 7db19e0470..088651bafa 100644 +--- a/gdk/gdkconfig.h.meson ++++ b/gdk/gdkconfig.h.meson +@@ -15,6 +15,7 @@ G_BEGIN_DECLS + #mesondefine GDK_WINDOWING_WAYLAND + #mesondefine GDK_WINDOWING_WIN32 + #mesondefine GDK_WINDOWING_QUARTZ ++#mesondefine GDK_WITH_OPENGL + + G_END_DECLS + +diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c +index 748f54860c..04ef2c09d4 100644 +--- a/gdk/gdkdisplay.c ++++ b/gdk/gdkdisplay.c +@@ -2420,7 +2420,11 @@ gboolean + gdk_display_make_gl_context_current (GdkDisplay *display, + GdkGLContext *context) + { ++#ifdef HAVE_OPENGL + return GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current (display, context); ++#else ++ return FALSE; ++#endif + } + + GdkRenderingMode +diff --git a/gdk/gdkgl.c b/gdk/gdkgl.c +index 9690077cc2..55f85ef605 100644 +--- a/gdk/gdkgl.c ++++ b/gdk/gdkgl.c +@@ -26,7 +26,9 @@ + # include "win32/gdkwin32.h" + #endif + ++#ifdef HAVE_OPENGL + #include <epoxy/gl.h> ++#endif + #include <math.h> + #include <string.h> + +@@ -40,6 +42,7 @@ gdk_cairo_surface_mark_as_direct (cairo_surface_t *surface, + g_object_ref (window), g_object_unref); + } + ++#ifdef HAVE_OPENGL + static const char * + get_vertex_type_name (int type) + { +@@ -212,6 +215,7 @@ use_texture_rect_program (GdkGLContextPaintData *paint_data) + glUseProgram (paint_data->current_program->program); + } + } ++#endif + + void + gdk_gl_texture_quads (GdkGLContext *paint_context, +@@ -220,6 +224,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context, + GdkTexturedQuad *quads, + gboolean flip_colors) + { ++#ifdef HAVE_OPENGL + GdkGLContextPaintData *paint_data = gdk_gl_context_get_paint_data (paint_context); + GdkGLContextProgram *program; + GdkWindow *window = gdk_gl_context_get_window (paint_context); +@@ -293,6 +298,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context, + + glDisableVertexAttribArray (program->position_location); + glDisableVertexAttribArray (program->uv_location); ++#endif + } + + /* x,y,width,height describes a rectangle in the gl render buffer +@@ -341,6 +347,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr, + int width, + int height) + { ++#ifdef HAVE_OPENGL + GdkGLContext *paint_context; + cairo_surface_t *image; + cairo_matrix_t matrix; +@@ -718,6 +725,7 @@ out: + if (clip_region) + cairo_region_destroy (clip_region); + ++#endif + } + + /* This is always called with the paint context current */ +@@ -725,6 +733,7 @@ void + gdk_gl_texture_from_surface (cairo_surface_t *surface, + cairo_region_t *region) + { ++#ifdef HAVE_OPENGL + GdkGLContext *paint_context; + cairo_surface_t *image; + double device_x_offset, device_y_offset; +@@ -825,4 +834,5 @@ gdk_gl_texture_from_surface (cairo_surface_t *surface, + + glDisable (GL_SCISSOR_TEST); + glDeleteTextures (1, &texture_id); ++#endif + } +diff --git a/gdk/gdkglcontext.c b/gdk/gdkglcontext.c +index 3b23639e1c..1f04f8e0b2 100644 +--- a/gdk/gdkglcontext.c ++++ b/gdk/gdkglcontext.c +@@ -85,7 +85,9 @@ + #include "gdkintl.h" + #include "gdk-private.h" + ++#ifdef HAVE_OPENGL + #include <epoxy/gl.h> ++#endif + + typedef struct { + GdkDisplay *display; +@@ -243,6 +245,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context, + int height, + guint texture_target) + { ++#ifdef HAVE_OPENGL + GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context); + + g_return_if_fail (GDK_IS_GL_CONTEXT (context)); +@@ -286,6 +289,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context, + glTexSubImage2D (texture_target, 0, 0, i, width, 1, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, (unsigned char*) data + (i * stride)); + } + } ++#endif + } + + static gboolean +@@ -774,6 +778,7 @@ gdk_gl_context_realize (GdkGLContext *context, + static void + gdk_gl_context_check_extensions (GdkGLContext *context) + { ++#ifdef HAVE_OPENGL + GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context); + gboolean has_npot, has_texture_rectangle; + +@@ -853,6 +858,7 @@ gdk_gl_context_check_extensions (GdkGLContext *context) + priv->use_texture_rectangle ? "yes" : "no")); + + priv->extensions_checked = TRUE; ++#endif + } + + /** +diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c +index 727b0cf1f4..d4d91b0d16 100644 +--- a/gdk/gdkwindow.c ++++ b/gdk/gdkwindow.c +@@ -45,7 +45,9 @@ + + #include <math.h> + ++#ifdef HAVE_OPENGL + #include <epoxy/gl.h> ++#endif + + /* for the use of round() */ + #include "fallback-c89.c" +@@ -2844,6 +2846,13 @@ gdk_window_get_paint_gl_context (GdkWindow *window, + { + GError *internal_error = NULL; + ++#ifndef HAVE_OPENGL ++ g_set_error_literal (error, GDK_GL_ERROR, ++ GDK_GL_ERROR_NOT_AVAILABLE, ++ _("GL support disabled with --disable-opengl")); ++ return NULL; ++#endif ++ + if (_gdk_gl_flags & GDK_GL_DISABLE) + { + g_set_error_literal (error, GDK_GL_ERROR, +@@ -2979,6 +2988,7 @@ gdk_window_begin_paint_internal (GdkWindow *window, + } + else + { ++#ifdef HAVE_OPENGL + gdk_gl_context_make_current (context); + /* With gl we always need a surface to combine the gl + drawing with the native drawing. */ +@@ -2993,6 +3003,7 @@ gdk_window_begin_paint_internal (GdkWindow *window, + glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + + glViewport (0, 0, ww, wh); ++#endif + } + } + +@@ -3056,6 +3067,7 @@ gdk_window_end_paint_internal (GdkWindow *window) + + gdk_gl_context_make_current (window->gl_paint_context); + ++#ifdef HAVE_OPENGL + if (!cairo_region_is_empty (opaque_region)) + gdk_gl_texture_from_surface (window->current_paint.surface, + opaque_region); +@@ -3066,6 +3078,7 @@ gdk_window_end_paint_internal (GdkWindow *window) + window->current_paint.need_blend_region); + glDisable(GL_BLEND); + } ++#endif + + cairo_region_destroy (opaque_region); + +diff --git a/gdk/meson.build b/gdk/meson.build +index 4bb1bf2b6c..64172b8d3e 100644 +--- a/gdk/meson.build ++++ b/gdk/meson.build +@@ -56,7 +56,6 @@ gdk_gir_public_headers = files( + 'gdkdrawingcontext.h', + 'gdkevents.h', + 'gdkframetimings.h', +- 'gdkglcontext.h', + 'gdkkeys.h', + 'gdkkeysyms.h', + 'gdkmain.h', +@@ -78,6 +77,12 @@ gdk_gir_public_headers = files( + 'gdkwindow.h', + ) + gdk_nogir_public_headers = [files('gdkkeysyms-compat.h')] ++if opengl_enabled ++gdk_gir_public_headers += files('gdkglcontext.h') ++else ++gdk_nogir_public_headers += files('gdkglcontext.h') ++endif ++ + gdk_public_headers = gdk_gir_public_headers + gdk_nogir_public_headers + install_headers(gdk_public_headers, subdir : 'gtk-3.0/gdk') + +@@ -166,6 +171,7 @@ gdkconfig_cdata.set('GDK_WINDOWING_WAYLAND', wayland_enabled) + gdkconfig_cdata.set('GDK_WINDOWING_WIN32', win32_enabled) + gdkconfig_cdata.set('GDK_WINDOWING_BROADWAY', broadway_enabled) + gdkconfig_cdata.set('GDK_WINDOWING_QUARTZ', quartz_enabled) ++gdkconfig_cdata.set('GDK_WITH_OPENGL', opengl_enabled) + + gdkconfig = configure_file( + input : 'gdkconfig.h.meson', +diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c +index 7e08f472cc..30fd7b6089 100644 +--- a/gdk/x11/gdkdisplay-x11.c ++++ b/gdk/x11/gdkdisplay-x11.c +@@ -37,7 +37,9 @@ + #include "gdkdisplay-x11.h" + #include "gdkprivate-x11.h" + #include "gdkscreen-x11.h" ++#ifdef HAVE_OPENGL + #include "gdkglcontext-x11.h" ++#endif + #include "gdk-private.h" + #include "gdkprofilerprivate.h" + +@@ -3191,7 +3193,9 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class) + display_class->text_property_to_utf8_list = _gdk_x11_display_text_property_to_utf8_list; + display_class->utf8_to_string_target = _gdk_x11_display_utf8_to_string_target; + +- display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current; ++#ifdef HAVE_OPENGL ++ display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current; ++#endif + + display_class->get_default_seat = gdk_x11_display_get_default_seat; + +diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c +index 81479d81f4..3c8c5c02ff 100644 +--- a/gdk/x11/gdkvisual-x11.c ++++ b/gdk/x11/gdkvisual-x11.c +@@ -306,7 +306,12 @@ _gdk_x11_screen_init_visuals (GdkScreen *screen) + /* If GL is available we want to pick better default/rgba visuals, + as we care about glx details such as alpha/depth/stencil depth, + stereo and double buffering */ ++ /* update_visuals_for_gl() will end up calling epoxy GLX api which ++ will exit if libgl is not there: so only do this if we know GL ++ is available */ ++#ifdef HAVE_GLX + _gdk_x11_screen_update_visuals_for_gl (screen); ++#endif + } + + gint +diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c +index 194bc82e29..0302bb68d4 100644 +--- a/gdk/x11/gdkwindow-x11.c ++++ b/gdk/x11/gdkwindow-x11.c +@@ -36,7 +36,9 @@ + #include "gdkasync.h" + #include "gdkeventsource.h" + #include "gdkdisplay-x11.h" ++#ifdef HAVE_OPENGL + #include "gdkglcontext-x11.h" ++#endif + #include "gdkprivate-x11.h" + #include "gdk-private.h" + +@@ -5888,7 +5890,9 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass) + impl_class->set_opaque_region = gdk_x11_window_set_opaque_region; + impl_class->set_shadow_width = gdk_x11_window_set_shadow_width; + impl_class->show_window_menu = gdk_x11_window_show_window_menu; ++#ifdef HAVE_OPENGL + impl_class->create_gl_context = gdk_x11_window_create_gl_context; + impl_class->invalidate_for_new_frame = gdk_x11_window_invalidate_for_new_frame; ++#endif + impl_class->get_unscaled_size = gdk_x11_window_get_unscaled_size; + } +diff --git a/gdk/x11/gdkx-autocleanups.h b/gdk/x11/gdkx-autocleanups.h +index edb0ea7dbf..a317d61cca 100644 +--- a/gdk/x11/gdkx-autocleanups.h ++++ b/gdk/x11/gdkx-autocleanups.h +@@ -30,7 +30,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DeviceXI2, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Display, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DisplayManager, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DragContext, g_object_unref) ++#ifdef HAVE_OPENGL + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11GLContext, g_object_unref) ++#endif + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Keymap, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Screen, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Visual, g_object_unref) +diff --git a/gdk/x11/gdkx.h b/gdk/x11/gdkx.h +index 1f64bccb6d..4db6c18351 100644 +--- a/gdk/x11/gdkx.h ++++ b/gdk/x11/gdkx.h +@@ -43,7 +43,9 @@ + #include <gdk/x11/gdkx11display.h> + #include <gdk/x11/gdkx11displaymanager.h> + #include <gdk/x11/gdkx11dnd.h> ++#ifdef GDK_WITH_OPENGL + #include <gdk/x11/gdkx11glcontext.h> ++#endif + #include <gdk/x11/gdkx11keys.h> + #include <gdk/x11/gdkx11monitor.h> + #include <gdk/x11/gdkx11property.h> +diff --git a/gdk/x11/meson.build b/gdk/x11/meson.build +index 754ae0a615..0318c83877 100644 +--- a/gdk/x11/meson.build ++++ b/gdk/x11/meson.build +@@ -14,7 +14,6 @@ gdk_x11_sources = files( + 'gdkeventsource.c', + 'gdkeventtranslator.c', + 'gdkgeometry-x11.c', +- 'gdkglcontext-x11.c', + 'gdkkeys-x11.c', + 'gdkmain-x11.c', + 'gdkproperty-x11.c', +@@ -42,7 +41,6 @@ gdk_x11_public_headers = files( + 'gdkx11display.h', + 'gdkx11displaymanager.h', + 'gdkx11dnd.h', +- 'gdkx11glcontext.h', + 'gdkx11keys.h', + 'gdkx11monitor.h', + 'gdkx11property.h', +@@ -53,6 +51,11 @@ gdk_x11_public_headers = files( + 'gdkx11window.h', + ) + ++if opengl_enabled ++ gdk_x11_sources += files('gdkglcontext-x11.c') ++ gdk_x11_public_headers += files('gdkx11glcontext.h') ++endif ++ + install_headers(gdk_x11_public_headers, subdir: 'gtk-3.0/gdk/x11/') + install_headers('gdkx.h', subdir: 'gtk-3.0/gdk/') + +diff --git a/gtk/gtkglarea.c b/gtk/gtkglarea.c +index 802303ea9f..6439d7745d 100644 +--- a/gtk/gtkglarea.c ++++ b/gtk/gtkglarea.c +@@ -29,7 +29,9 @@ + #include "gtkprivate.h" + #include "gtkrender.h" + ++#ifdef HAVE_OPENGL + #include <epoxy/gl.h> ++#endif + + /** + * SECTION:gtkglarea +@@ -369,9 +371,12 @@ gtk_gl_area_real_create_context (GtkGLArea *area) + static void + gtk_gl_area_resize (GtkGLArea *area, int width, int height) + { ++#ifdef HAVE_OPENGL + glViewport (0, 0, width, height); ++#endif + } + ++#ifdef HAVE_OPENGL + /* + * Creates all the buffer objects needed for rendering the scene + */ +@@ -483,6 +488,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area) + + priv->needs_render = TRUE; + } ++#endif + + /** + * gtk_gl_area_attach_buffers: +@@ -501,6 +507,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area) + void + gtk_gl_area_attach_buffers (GtkGLArea *area) + { ++#ifdef HAVE_OPENGL + GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); + + g_return_if_fail (GTK_IS_GL_AREA (area)); +@@ -533,11 +540,13 @@ gtk_gl_area_attach_buffers (GtkGLArea *area) + glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, + GL_RENDERBUFFER, priv->depth_stencil_buffer); + } ++#endif + } + + static void + gtk_gl_area_delete_buffers (GtkGLArea *area) + { ++#ifdef HAVE_OPENGL + GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); + + if (priv->context == NULL) +@@ -569,6 +578,7 @@ gtk_gl_area_delete_buffers (GtkGLArea *area) + glDeleteFramebuffers (1, &priv->frame_buffer); + priv->frame_buffer = 0; + } ++#endif + } + + static void +@@ -679,6 +689,7 @@ gtk_gl_area_draw (GtkWidget *widget, + GtkGLArea *area = GTK_GL_AREA (widget); + GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); + gboolean unused; ++#ifdef HAVE_OPENGL + int w, h, scale; + GLenum status; + +@@ -736,6 +747,14 @@ gtk_gl_area_draw (GtkWidget *widget, + } + + return TRUE; ++#else ++ if (priv->error != NULL) ++ gtk_gl_area_draw_error_screen (area, ++ cr, ++ gtk_widget_get_allocated_width (widget), ++ gtk_widget_get_allocated_height (widget)); ++ return FALSE; ++#endif + } + + static gboolean +diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c +index 4fd0c3039c..a8e59ed077 100644 +--- a/gtk/inspector/general.c ++++ b/gtk/inspector/general.c +@@ -33,8 +33,10 @@ + + #ifdef GDK_WINDOWING_X11 + #include "x11/gdkx.h" ++#ifdef HAVE_OPENGL + #include <epoxy/glx.h> + #endif ++#endif + + #ifdef GDK_WINDOWING_WIN32 + #include "win32/gdkwin32.h" +@@ -217,6 +219,7 @@ add_label_row (GtkInspectorGeneral *gen, + gtk_size_group_add_widget (GTK_SIZE_GROUP (gen->priv->labels), label); + } + ++#ifdef HAVE_OPENGL + #ifdef GDK_WINDOWING_X11 + static void + append_glx_extension_row (GtkInspectorGeneral *gen, +@@ -226,6 +229,7 @@ append_glx_extension_row (GtkInspectorGeneral *gen, + add_check_row (gen, GTK_LIST_BOX (gen->priv->gl_box), ext, epoxy_has_glx_extension (dpy, 0, ext), 0); + } + #endif ++#endif + + #ifdef GDK_WINDOWING_WAYLAND + static void +@@ -275,6 +279,7 @@ wayland_get_display (struct wl_display *wl_display) + static void + init_gl (GtkInspectorGeneral *gen) + { ++#ifdef HAVE_OPENGL + #ifdef GDK_WINDOWING_X11 + if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) + { +@@ -301,6 +306,7 @@ init_gl (GtkInspectorGeneral *gen) + } + else + #endif ++#endif + #ifdef GDK_WINDOWING_WAYLAND + if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ())) + { +diff --git a/meson.build b/meson.build +index aed48fc3f6..bfc33af0f6 100644 +--- a/meson.build ++++ b/meson.build +@@ -137,6 +137,7 @@ wayland_enabled = get_option('wayland_backend') + broadway_enabled = get_option('broadway_backend') + quartz_enabled = get_option('quartz_backend') + win32_enabled = get_option('win32_backend') ++opengl_enabled = get_option('opengl') + + os_unix = false + os_linux = false +@@ -430,7 +431,7 @@ pangocairo_dep = dependency('pangocairo', version: cairo_req, + fallback : ['pango', 'libpangocairo_dep']) + pixbuf_dep = dependency('gdk-pixbuf-2.0', version: gdk_pixbuf_req, + fallback : ['gdk-pixbuf', 'gdkpixbuf_dep']) +-epoxy_dep = dependency('epoxy', version: epoxy_req, ++epoxy_dep = dependency('epoxy', version: epoxy_req, required: opengl_enabled, + fallback: ['libepoxy', 'libepoxy_dep']) + atk_dep = dependency('atk', version: atk_req, + fallback : ['atk', 'libatk_dep']) +@@ -476,6 +477,10 @@ if tracker3_enabled + endif + endif + ++if opengl_enabled ++ cdata.set('HAVE_OPENGL', 1) ++endif ++ + if iso_codes_dep.found() + cdata.set_quoted('ISO_CODES_PREFIX', iso_codes_dep.get_variable(pkgconfig: 'prefix')) + else +@@ -912,9 +917,15 @@ else + gio_packages = ['gio-2.0', glib_req] + endif + ++if opengl_enabled ++ epoxy_packages = ['epoxy', epoxy_req] ++else ++ epoxy_packages = [] ++endif ++ + pkgconf.set('GDK_PRIVATE_PACKAGES', + ' '.join(gio_packages + x11_pkgs + wayland_pkgs + cairo_backends + +- ['epoxy', epoxy_req] + cloudproviders_packages + ++ epoxy_packages + cloudproviders_packages + + ['fribidi', fribidi_req])) + + gtk_packages = ' '.join([ +@@ -928,7 +939,7 @@ pkgconf.set('GTK_PACKAGES', gtk_packages) + # Requires.private + pc_gdk_extra_libs += cairo_libs + +-gtk_private_packages = atk_pkgs + wayland_pkgs + ['epoxy', epoxy_req, 'fribidi', fribidi_req] ++gtk_private_packages = atk_pkgs + wayland_pkgs + epoxy_packages + ['fribidi', fribidi_req] + if wayland_enabled or x11_enabled + gtk_private_packages += ['pangoft2'] + endif +diff --git a/meson_options.txt b/meson_options.txt +index 94099aa01e..8bd096896d 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -19,6 +19,8 @@ option('profiler', type: 'boolean', value: false, + description : 'Enable profiler support') + option('tracker3', type: 'boolean', value: false, + description : 'Enable Tracker3 filechooser search') ++option('opengl', type: 'boolean', value: true, ++ description : 'Enable use of GL') + + # Print backends + option('print_backends', type : 'string', value : 'auto', +diff --git a/tests/meson.build b/tests/meson.build +index 586fe2f45e..6ecf317dde 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -5,7 +5,6 @@ gtk_tests = [ + ['scrolling-performance', ['frame-stats.c', 'variable.c']], + ['blur-performance', ['../gtk/gtkcairoblur.c']], + ['flicker'], +- ['gdkgears', ['gtkgears.c']], + ['listmodel'], + ['motion-compression'], + ['styleexamples'], +@@ -54,7 +53,6 @@ gtk_tests = [ + ['testfullscreen'], + ['testgeometry'], + ['testgiconpixbuf'], +- ['testglblending', ['gtkgears.c']], + ['testgmenu'], + ['testgrid'], + ['testgrouping'], +@@ -137,6 +135,13 @@ if x11_enabled + ] + endif + ++if opengl_enabled ++ gtk_tests += [ ++ ['gdkgears', ['gtkgears.c']], ++ ['testglblending', ['gtkgears.c']], ++ ] ++endif ++ + if os_linux + gtk_tests += [['testfontchooserdialog']] + endif +diff --git a/testsuite/gtk/objects-finalize.c b/testsuite/gtk/objects-finalize.c +index 24540e313f..e0f863ab6a 100644 +--- a/testsuite/gtk/objects-finalize.c ++++ b/testsuite/gtk/objects-finalize.c +@@ -116,7 +116,9 @@ main (int argc, char **argv) + all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_CORE && + all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_XI2 && + all_types[i] != GDK_TYPE_X11_DISPLAY_MANAGER && ++#ifdef HAVE_OPENGL + all_types[i] != GDK_TYPE_X11_GL_CONTEXT && ++#endif + #endif + /* Not allowed to finalize a GdkPixbufLoader without calling gdk_pixbuf_loader_close() */ + all_types[i] != GDK_TYPE_PIXBUF_LOADER && +-- +2.30.2 + diff --git a/meta/recipes-gnome/gtk+/gtk+3_3.20.6.bb b/meta/recipes-gnome/gtk+/gtk+3_3.24.36.bb index 453a4e296e..41c189d7f1 100644 --- a/meta/recipes-gnome/gtk+/gtk+3_3.20.6.bb +++ b/meta/recipes-gnome/gtk+/gtk+3_3.24.36.bb @@ -3,13 +3,10 @@ require gtk+3.inc MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ - file://0001-Hardcoded-libtool.patch \ - file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \ - file://0003-Add-disable-opengl-configure-option.patch \ - file://0004-configure.ac-Fix-wayland-protocols-path.patch \ - " -SRC_URI[md5sum] = "914e55ea053161f4a575c1c8dade7954" -SRC_URI[sha256sum] = "3f8016563a96b1cfef4ac9e795647f6316deb2978ff939b19e4e4f8f936fa4b2" + file://opengl.patch \ + file://0001-meson.build-build-introspection-according-to-option-.patch \ + " +SRC_URI[sha256sum] = "27a6ef157743350c807ffea59baa1d70226dbede82a5e953ffd58ea6059fe691" S = "${WORKDIR}/gtk+-${PV}" diff --git a/meta/recipes-gnome/gtk+/gtk+_2.24.30.bb b/meta/recipes-gnome/gtk+/gtk+_2.24.30.bb deleted file mode 100644 index 4fe990d5cb..0000000000 --- a/meta/recipes-gnome/gtk+/gtk+_2.24.30.bb +++ /dev/null @@ -1,34 +0,0 @@ -require gtk+.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ - file://gtk/gtk.h;endline=27;md5=c59e0b4490dd135a5726ebf851f9b17f \ - file://gdk/gdk.h;endline=27;md5=07db285ec208fb3e0bf7d861b0614202 \ - file://tests/testgtk.c;endline=27;md5=262db5db5f776f9863e56df31423e24c" -SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-${PV}.tar.xz \ - file://xsettings.patch \ - file://hardcoded_libtool.patch \ - file://toggle-font.diff;striplevel=0 \ - file://doc-fixes.patch \ - file://strict-prototypes.patch \ - " - -SRC_URI[md5sum] = "04568ba5c58b75e3c7543e45628ad789" -SRC_URI[sha256sum] = "0d15cec3b6d55c60eac205b1f3ba81a1ed4eadd9d0f8e7c508bc7065d0c4ca50" - -EXTRA_OECONF = "--enable-xkb --disable-glibtest --disable-cups --disable-xinerama" - -LIBV = "2.10.0" - -PACKAGES_DYNAMIC += "^gtk-immodule-.* ^gtk-printbackend-.*" - -python populate_packages_prepend () { - gtk_libdir = d.expand('${libdir}/gtk-2.0/${LIBV}') - immodules_root = os.path.join(gtk_libdir, 'immodules') - printmodules_root = os.path.join(gtk_libdir, 'printbackends'); - - d.setVar('GTKIMMODULES_PACKAGES', ' '.join(do_split_packages(d, immodules_root, '^im-(.*)\.so$', 'gtk-immodule-%s', 'GTK input module for %s'))) - do_split_packages(d, printmodules_root, '^libprintbackend-(.*)\.so$', 'gtk-printbackend-%s', 'GTK printbackend module for %s') - - if (d.getVar('DEBIAN_NAMES', True)): - d.setVar(d.expand('PKG_${PN}'), '${MLPREFIX}libgtk-2.0') -} diff --git a/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.20.6.bb b/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.20.6.bb deleted file mode 100644 index e870ba3137..0000000000 --- a/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.20.6.bb +++ /dev/null @@ -1,60 +0,0 @@ -SUMMARY = "Native icon utils for GTK+" -DESCRIPTION = "gtk-update-icon-cache and gtk-encode-symbolic-svg built from GTK+ natively, for build time and on-host postinst script execution." -SECTION = "libs" - -DEPENDS = "glib-2.0-native gdk-pixbuf-native librsvg-native" - -LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" - -MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" - -SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ - file://Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch" -SRC_URI[md5sum] = "914e55ea053161f4a575c1c8dade7954" -SRC_URI[sha256sum] = "3f8016563a96b1cfef4ac9e795647f6316deb2978ff939b19e4e4f8f936fa4b2" - -LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ - file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ - file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ - file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1" - -S = "${WORKDIR}/gtk+-${PV}" - -inherit pkgconfig native upstream-version-is-even - -PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native" - -do_configure() { - # Quite ugly but defines enough to compile the tools. - if ! test -f gtk/config.h; then - echo "#define GETTEXT_PACKAGE \"gtk30\"" >> gtk/config.h - echo "#define HAVE_UNISTD_H 1" >> gtk/config.h - echo "#define HAVE_FTW_H 1" >> gtk/config.h - fi - if ! test -f gdk/config.h; then - touch gdk/config.h - fi -} - -do_compile() { - ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} \ - ${S}/gtk/updateiconcache.c \ - $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gdk-pixbuf-2.0) \ - -o gtk-update-icon-cache - - ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} \ - ${S}/gtk/encodesymbolic.c \ - $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gio-2.0 gdk-pixbuf-2.0) \ - -o gtk-encode-symbolic-svg -} - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${B}/gtk-update-icon-cache ${D}${bindir} - install -m 0755 ${B}/gtk-encode-symbolic-svg ${D}${bindir} - - create_wrapper ${D}/${bindir}/gtk-update-icon-cache \ - GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache - create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \ - GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache -} diff --git a/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch b/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch deleted file mode 100644 index 237f803755..0000000000 --- a/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 4d09ff324419fe4e671233044e424378da53969b Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen <jussi.kukkonen@intel.com> -Date: Tue, 9 Jun 2015 14:20:30 +0300 -Subject: [PATCH] Remove Gdk-dependency from gtk-encode-symbolic-svg - -Building gtk-encode-symbolic-svg without building Gdk is useful -as only the icon tools are needed on the native build: this makes -native build much faster and requires much less dependencies. - -Upstream-Status: Pending - -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> ---- - gtk/encodesymbolic.c | 36 ++++++++++-------------------------- - 1 file changed, 10 insertions(+), 26 deletions(-) - -diff --git a/gtk/encodesymbolic.c b/gtk/encodesymbolic.c -index 9f7d015..1f07563 100644 ---- a/gtk/encodesymbolic.c -+++ b/gtk/encodesymbolic.c -@@ -19,7 +19,6 @@ - - #include <glib.h> - #include <gdk-pixbuf/gdk-pixdata.h> --#include <gdk/gdk.h> - #include <glib/gi18n.h> - - #ifdef HAVE_UNISTD_H -@@ -43,30 +42,18 @@ static GdkPixbuf * - load_symbolic_svg (char *file_data, gsize file_len, - int width, - int height, -- const GdkRGBA *fg, -- const GdkRGBA *success_color, -- const GdkRGBA *warning_color, -- const GdkRGBA *error_color, -+ const char *css_fg, -+ const char *css_success, -+ const char *css_warning, -+ const char *css_error, - GError **error) - { - GInputStream *stream; - GdkPixbuf *pixbuf; -- gchar *css_fg; -- gchar *css_success; -- gchar *css_warning; -- gchar *css_error; - gchar *data; - gchar *svg_width, *svg_height; - gchar *escaped_file_data; - -- css_fg = gdk_rgba_to_string (fg); -- -- css_success = css_warning = css_error = NULL; -- -- css_warning = gdk_rgba_to_string (warning_color); -- css_error = gdk_rgba_to_string (error_color); -- css_success = gdk_rgba_to_string (success_color); -- - /* Fetch size from the original icon */ - stream = g_memory_input_stream_new_from_data (file_data, file_len, NULL); - pixbuf = gdk_pixbuf_new_from_stream (stream, NULL, error); -@@ -105,10 +92,6 @@ load_symbolic_svg (char *file_data, gsize file_len, - "</svg>", - NULL); - g_free (escaped_file_data); -- g_free (css_fg); -- g_free (css_warning); -- g_free (css_error); -- g_free (css_success); - g_free (svg_width); - g_free (svg_height); - -@@ -167,7 +150,8 @@ make_symbolic_pixbuf (char *file, - GError **error) - - { -- GdkRGBA r = { 1,0,0,1}, g = {0,1,0,1}; -+ const char r[] = "rgba(255,0,0,1)"; -+ const char g[] = "rgba(0,255,0,1)"; - GdkPixbuf *loaded; - GdkPixbuf *pixbuf; - int plane; -@@ -196,10 +180,10 @@ make_symbolic_pixbuf (char *file, - * the "rest", as all color fractions should add up to 1. - */ - loaded = load_symbolic_svg (file_data, file_len, width, height, -- &g, -- plane == 0 ? &r : &g, -- plane == 1 ? &r : &g, -- plane == 2 ? &r : &g, -+ g, -+ plane == 0 ? r : g, -+ plane == 1 ? r : g, -+ plane == 2 ? r : g, - error); - if (loaded == NULL) - return NULL; --- -2.1.4 - diff --git a/meta/recipes-gnome/gtk+/gtk4_4.8.3.bb b/meta/recipes-gnome/gtk+/gtk4_4.8.3.bb new file mode 100644 index 0000000000..b367cb066b --- /dev/null +++ b/meta/recipes-gnome/gtk+/gtk4_4.8.3.bb @@ -0,0 +1,129 @@ +SUMMARY = "Multi-platform toolkit for creating GUIs" +DESCRIPTION = "GTK is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \ +set of widgets, GTK is suitable for projects ranging from small one-off projects to complete application suites." +HOMEPAGE = "http://www.gtk.org" +BUGTRACKER = "https://bugzilla.gnome.org/" +SECTION = "libs" + +DEPENDS = " \ + atk \ + cairo \ + fribidi \ + gdk-pixbuf \ + gdk-pixbuf-native \ + gi-docgen \ + glib-2.0 \ + graphene \ + harfbuzz \ + jpeg \ + libepoxy \ + libpng \ + librsvg \ + libxkbcommon \ + pango \ + tiff \ +" + +LICENSE = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ + file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ + file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ + file://tests/testgtk.c;endline=25;md5=49d06770681b8322466b52ed19d29fb2 \ +" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +UPSTREAM_CHECK_REGEX = "gtk-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)\.tar.xz" + +SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk/${MAJ_VER}/gtk-${PV}.tar.xz" +SRC_URI[sha256sum] = "b362f968d085b4d3d9340d4d38c706377ded9d5374e694a2b6b7e6292e3cba74" + +S = "${WORKDIR}/gtk-${PV}" + +inherit meson gettext pkgconfig gi-docgen update-alternatives gsettings features_check gobject-introspection + +# TBD: nativesdk +# gobject-introspection.bbclass pins introspection off for nativesk. As long as +# we do not remove this wisdom or hack gtk4, it is not possible to build +# nativesdk-gtk4 +BBCLASSEXTEND = "native" + +GSETTINGS_PACKAGE:class-native = "" + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" +REQUIRED_DISTRO_FEATURES = "opengl" +GTKDOC_MESON_OPTION = "gtk_doc" +GIR_MESON_ENABLE_FLAG = 'enabled' +GIR_MESON_DISABLE_FLAG = 'disabled' + +EXTRA_OEMESON = " -Dbuild-tests=false -Ddemos=false" + +PACKAGECONFIG ??= "gstreamer ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11 vulkan', d)}" +PACKAGECONFIG:class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" + +PACKAGECONFIG[x11] = "-Dx11-backend=true,-Dx11-backend=false,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes xinerama" +PACKAGECONFIG[wayland] = "-Dwayland-backend=true,-Dwayland-backend=false,wayland wayland-protocols virtual/egl virtual/libgles2 wayland-native" +PACKAGECONFIG[cloudproviders] = "-Dcloudproviders=enabled,-Dcloudproviders=disabled,libcloudproviders" +PACKAGECONFIG[cups] = "-Dprint-cups=enabled,-Dprint-cups=disabled,cups,cups" +PACKAGECONFIG[colord] = "-Dcolord=enabled,-Dcolord=disabled,colord" +PACKAGECONFIG[iso-codes] = ",,iso-codes,iso-codes" +PACKAGECONFIG[ffmpeg] = "-Dmedia-ffmpeg=enabled,-Dmedia-ffmpeg=disabled,ffmpeg" +# gtk4 wants gstreamer-player-1.0 -> gstreamer1.0-plugins-bad +PACKAGECONFIG[gstreamer] = "-Dmedia-gstreamer=enabled,-Dmedia-gstreamer=disabled,gstreamer1.0-plugins-bad" +PACKAGECONFIG[tracker] = "-Dtracker=enabled,-Dtracker=disabled,tracker,tracker-miners" +PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled, vulkan-loader vulkan-headers shaderc-native" + +LIBV = "4.0.0" + +FILES:${PN}:append = " \ + ${datadir}/glib-2.0/schemas/ \ + ${datadir}/gtk-4.0/emoji/ \ + ${datadir}/metainfo/ \ + ${datadir}/icons/hicolor/*/apps/org.gtk.PrintEditor4*.* \ + ${libdir}/gtk-4.0/${LIBV}/media \ + ${bindir}/gtk4-update-icon-cache \ + ${bindir}/gtk4-launch \ +" + +FILES:${PN}-dev += " \ + ${datadir}/gtk-4.0/gtk4builder.rng \ + ${datadir}/gtk-4.0/include \ + ${datadir}/gtk-4.0/valgrind \ + ${datadir}/gettext/its \ + ${bindir}/gtk4-builder-tool \ + ${bindir}/gtk4-encode-symbolic-svg \ + ${bindir}/gtk4-query-settings \ +" + +GTKBASE_RRECOMMENDS ?= " \ + liberation-fonts \ + gdk-pixbuf-loader-png \ + gdk-pixbuf-loader-jpeg \ + gdk-pixbuf-loader-gif \ + gdk-pixbuf-loader-xpm \ + shared-mime-info \ + adwaita-icon-theme-symbolic \ +" + +GTKBASE_RRECOMMENDS:class-native ?= "" + +GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1" + +RRECOMMENDS:${PN} = "${GTKBASE_RRECOMMENDS}" +RRECOMMENDS:${PN}:libc-glibc = "${GTKGLIBC_RRECOMMENDS}" +RDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}" + +PACKAGES_DYNAMIC += "^gtk4-printbackend-.*" +python populate_packages:prepend () { + import os.path + + gtk_libdir = d.expand('${libdir}/gtk-4.0/${LIBV}') + printmodules_root = os.path.join(gtk_libdir, 'printbackends'); + + do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk4-printbackend-%s', 'GTK printbackend module for %s') + + if (d.getVar('DEBIAN_NAMES')): + d.setVar(d.expand('PKG:${PN}'), '${MLPREFIX}libgtk-4.0') +} diff --git a/meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch b/meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch deleted file mode 100644 index 80b0521d48..0000000000 --- a/meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch +++ /dev/null @@ -1,305 +0,0 @@ -From d636be29bf95396b4e27fcd17ff84cb7091cca91 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Thu, 8 Oct 2015 15:37:40 +0300 -Subject: [PATCH] Revert "Import introspection stub machinery too" - -This reverts commit 3dfd0a09de696ec8c544762747f8a0f77153622e. -As we provide the full introspection support, we need to remove -the stubs from this package that conflict with it. - -Upstream-Status: Pending [review on oe-core list] -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - Makefile | 4 -- - Makefile.introspection | 163 ------------------------------------------------- - introspection.m4 | 96 ----------------------------- - 3 files changed, 263 deletions(-) - delete mode 100644 Makefile.introspection - delete mode 100644 introspection.m4 - -diff --git a/Makefile b/Makefile -index 7cb6ce5..ad4231a 100644 ---- a/Makefile -+++ b/Makefile -@@ -23,7 +23,3 @@ install: $(bin_programs) - - mkdir -p $(DESTDIR)$(datarootdir)/aclocal/ - install -m 0644 $(srcdir)/gtk-doc.m4 $(DESTDIR)$(datarootdir)/aclocal/gtk-doc.m4 -- -- mkdir -p $(DESTDIR)$(datarootdir)/gobject-introspection-1.0 -- install -m 0644 $(srcdir)/Makefile.introspection $(DESTDIR)$(datarootdir)/gobject-introspection-1.0/Makefile.introspection -- install -m 0644 $(srcdir)/introspection.m4 $(DESTDIR)$(datarootdir)/aclocal/introspection.m4 -diff --git a/Makefile.introspection b/Makefile.introspection -deleted file mode 100644 -index 755dd15..0000000 ---- a/Makefile.introspection -+++ /dev/null -@@ -1,163 +0,0 @@ --# -*- Mode: make -*- --# Copyright 2009-2010 Johan Dahlin --# --# This file is free software; the author(s) gives unlimited --# permission to copy and/or distribute it, with or without --# modifications, as long as this notice is preserved. --# --# * Input variables: --# --# INTROSPECTION_GIRS - List of GIRS that should be generated --# INTROSPECTION_SCANNER - Command to invoke scanner, normally set by --# GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4 --# INTROSPECTION_SCANNER_ARGS - Additional args to pass in to the scanner --# INTROSPECTION_SCANNER_ENV - Environment variables to set before running --# the scanner --# INTROSPECTION_COMPILER - Command to invoke compiler, normally set by --# GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4 --# INTROSPECTION_COMPILER_ARGS - Additional args to pass in to the compiler --# --# * Simple tutorial --# --# Add this to configure.ac: --# -Wno-portability to AM_INIT_AUTOMAKE --# GOBJECT_INTROSPECTION_CHECK([0.6.7]) --# --# Add this to Makefile.am where your library/program is built: --# include $(INTROSPECTION_MAKEFILE) --# INTROSPECTION_GIRS = YourLib-1.0.gir --# YourLib_1_0_gir_NAMESPACE = YourLib --# YourLib_1_0_gir_VERSION = 1.0 --# YourLib_1_0_gir_LIBS = libyourlib.la --# YourLib_1_0_gir_FILES = $(libyourlib_1_0_SOURCES) --# girdir = $(datadir)/gir-1.0 --# dist_gir_DATA = YourLib-1.0.gir --# typelibdir = $(libdir)/girepository-1.0 --# typelib_DATA = YourLib-1.0.typelib --# CLEANFILES = $(dist_gir_DATA) $(typelib_DATA) --# -- --# Make sure the required variables are set, these should under normal --# circumstances come from introspection.m4 --$(if $(INTROSPECTION_SCANNER),,$(error Need to define INTROSPECTION_SCANNER)) --$(if $(INTROSPECTION_COMPILER),,$(error Need to define INTROSPECTION_COMPILER)) -- --# Private functions -- --## Transform the gir filename to something which can reference through a variable --## without automake/make complaining, eg Gtk-2.0.gir -> Gtk_2_0_gir --_gir_name = $(subst /,_,$(subst -,_,$(subst .,_,$(1)))) -- --# Namespace and Version is either fetched from the gir filename --# or the _NAMESPACE/_VERSION variable combo --_gir_namespace = $(or $($(_gir_name)_NAMESPACE),$(firstword $(subst -, ,$(notdir $(1))))) --_gir_version = $(or $($(_gir_name)_VERSION),$(lastword $(subst -, ,$(1:.gir=)))) -- --# _PROGRAM is an optional variable which needs it's own --program argument --_gir_program = $(if $($(_gir_name)_PROGRAM),--program=$($(_gir_name)_PROGRAM)) -- --# Variables which provides a list of things --_gir_libraries = $(foreach lib,$($(_gir_name)_LIBS),--library=$(lib)) --_gir_packages = $(foreach pkg,$($(_gir_name)_PACKAGES),--pkg=$(pkg)) --_gir_includes = $(foreach include,$($(_gir_name)_INCLUDES),--include=$(include)) --_gir_export_packages = $(foreach pkg,$($(_gir_name)_EXPORT_PACKAGES),--pkg-export=$(pkg)) -- --# Reuse the LIBTOOL variable from automake if it's set, but --# work around MSYS weirdness: When running g-ir-scanner, MSYS changes --# a command-line argument --libtool="/bin/sh ../../libtool" into --# --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path --# because we already "know" where the libtool configure produced is. --_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)")) -- --# Macros for AM_SILENT_RULES prettiness --_gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1) -- --_gir_silent_scanner_prefix = $(_gir_silent_scanner_prefix_$(V)) --_gir_silent_scanner_prefix_ = $(_gir_silent_scanner_prefix_$(_gir_verbosity)) --_gir_silent_scanner_prefix_0 = @echo " GISCAN $(1)"; --_gir_silent_scanner_opts = $(_gir_silent_scanner_opts_$(V)) --_gir_silent_scanner_opts_ = $(_gir_silent_scanner_opts_$(_gir_verbosity)) --_gir_silent_scanner_opts_0 = --quiet -- --_gir_silent_compiler = $(_gir_silent_compiler_$(V)) --_gir_silent_compiler_ = $(_gir_silent_compiler_$(_gir_verbosity)) --_gir_silent_compiler_0 = @echo " GICOMP $(1)"; -- --# --# Creates a GIR by scanning C headers/sources --# $(1) - Name of the gir file (output) --# --# If output is Gtk-2.0.gir then you should name the variables like --# Gtk_2_0_gir_NAMESPACE, Gtk_2_0_gir_VERSION etc. --# Required variables: --# FILES - C sources and headers which should be scanned --# --# One of these variables are required: --# LIBS - Library where the symbol represented in the gir can be found --# PROGRAM - Program where the symbol represented in the gir can be found --# --# Optional variables --# NAMESPACE - Namespace of the gir, first letter capital, --# rest should be lower case, for instance: 'Gtk', 'Clutter', 'ClutterGtk'. --# If not present the namespace will be fetched from the gir filename, --# the part before the first dash. For 'Gtk-2.0', namespace will be 'Gtk'. --# VERSION - Version of the gir, if not present, will be fetched from gir --# filename, the part after the first dash. For 'Gtk-2.0', version will be '2.0'. --# LIBTOOL - Command to invoke libtool, usually set by automake --# SCANNERFLAGS - Flags to pass in to the scanner, see g-ir-scanner(1) for a list --# CFLAGS - Flags to pass in to the parser when scanning headers --# LDFLAGS - Linker flags used by the scanner --# PACKAGES - list of pkg-config names which cflags are required to parse --# the headers of this gir --# INCLUDES - Gir files to include without the .gir suffix, for instance --# GLib-2.0, Gtk-2.0. This is needed for all libraries which you depend on that --# provides introspection information. --# EXPORT_PACKAGES - list of pkg-config names that are provided by this gir. --# By default the names in the PACKAGES variable will be used. --# -- --define introspection-scanner -- --# Basic sanity check, to make sure required variables are set --$(if $($(_gir_name)_FILES),,$(error Need to define $(_gir_name)_FILES)) --$(if $(or $(findstring --header-only,$($(_gir_name)_SCANNERFLAGS)), -- $($(_gir_name)_LIBS), -- $($(_gir_name)_PROGRAM)),, -- $(error Need to define $(_gir_name)_LIBS or $(_gir_name)_PROGRAM)) -- --# Only dependencies we know are actually filenames goes into _FILES, make --# sure these are built before running the scanner. Libraries and programs --# needs to be added manually. --$(1): $$($(_gir_name)_FILES) -- @ $(MKDIR_P) $(dir $(1)) -- $(_gir_silent_scanner_prefix) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \ -- $(INTROSPECTION_SCANNER_ARGS) \ -- --namespace=$(_gir_namespace) \ -- --nsversion=$(_gir_version) \ -- $(_gir_libtool) \ -- $(_gir_packages) \ -- $(_gir_includes) \ -- $(_gir_export_packages) \ -- $(_gir_program) \ -- $(_gir_libraries) \ -- $($(_gir_name)_SCANNERFLAGS) \ -- $($(_gir_name)_CFLAGS) \ -- $($(_gir_name)_LDFLAGS) \ -- $$^ \ -- --output $(1) --endef -- --$(foreach gir,$(INTROSPECTION_GIRS),$(eval $(call introspection-scanner,$(gir)))) -- --# --# Compiles a gir into a typelib --# $(1): gir filename (input) --# $(2): typelib filename (output) --# --define introspection-compiler --$(_gir_silent_compiler) $(INTROSPECTION_COMPILER) $(INTROSPECTION_COMPILER_ARGS) --includedir=. $(1) -o $(2) --endef -- --# Simple rule to compile a typelib. --%.typelib: %.gir -- $(call introspection-compiler,$<,$@) -diff --git a/introspection.m4 b/introspection.m4 -deleted file mode 100644 -index d89c3d9..0000000 ---- a/introspection.m4 -+++ /dev/null -@@ -1,96 +0,0 @@ --dnl -*- mode: autoconf -*- --dnl Copyright 2009 Johan Dahlin --dnl --dnl This file is free software; the author(s) gives unlimited --dnl permission to copy and/or distribute it, with or without --dnl modifications, as long as this notice is preserved. --dnl -- --# serial 1 -- --m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], --[ -- AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first -- AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first -- AC_BEFORE([LT_INIT],[$0])dnl setup libtool first -- -- dnl enable/disable introspection -- m4_if([$2], [require], -- [dnl -- enable_introspection=yes -- ],[dnl -- AC_ARG_ENABLE(introspection, -- AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], -- [Enable introspection for this build]),, -- [enable_introspection=auto]) -- ])dnl -- -- AC_MSG_CHECKING([for gobject-introspection]) -- -- dnl presence/version checking -- AS_CASE([$enable_introspection], -- [no], [dnl -- found_introspection="no (disabled, use --enable-introspection to enable)" -- ],dnl -- [yes],[dnl -- PKG_CHECK_EXISTS([gobject-introspection-1.0],, -- AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) -- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], -- found_introspection=yes, -- AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) -- ],dnl -- [auto],[dnl -- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) -- dnl Canonicalize enable_introspection -- enable_introspection=$found_introspection -- ],dnl -- [dnl -- AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) -- ])dnl -- -- AC_MSG_RESULT([$found_introspection]) -- -- INTROSPECTION_SCANNER= -- INTROSPECTION_COMPILER= -- INTROSPECTION_GENERATE= -- INTROSPECTION_GIRDIR= -- INTROSPECTION_TYPELIBDIR= -- if test "x$found_introspection" = "xyes"; then -- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` -- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` -- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` -- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` -- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" -- INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` -- INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` -- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection -- fi -- AC_SUBST(INTROSPECTION_SCANNER) -- AC_SUBST(INTROSPECTION_COMPILER) -- AC_SUBST(INTROSPECTION_GENERATE) -- AC_SUBST(INTROSPECTION_GIRDIR) -- AC_SUBST(INTROSPECTION_TYPELIBDIR) -- AC_SUBST(INTROSPECTION_CFLAGS) -- AC_SUBST(INTROSPECTION_LIBS) -- AC_SUBST(INTROSPECTION_MAKEFILE) -- -- AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") --]) -- -- --dnl Usage: --dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) -- --AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], --[ -- _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) --]) -- --dnl Usage: --dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) -- -- --AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], --[ -- _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) --]) --- -2.1.4 - diff --git a/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb b/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb deleted file mode 100644 index 84e49c13a6..0000000000 --- a/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "Stub implementation of gtk-doc" -DESCRIPTION = "Stub implementation of gtk-doc, as we don't want to build the API documentation" -SECTION = "x11/base" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -PROVIDES = "gtk-doc" - -SRCREV = "1dea266593edb766d6d898c79451ef193eb17cfa" -PV = "1.1+git${SRCPV}" - -SRC_URI = "git://git.gnome.org/${BPN} \ - file://0001-Revert-Import-introspection-stub-machinery-too.patch \ - " - -S = "${WORKDIR}/git" - -do_configure() { - ./configure --prefix=${prefix} \ - --sysconfdir=${sysconfdir} \ - --bindir=${bindir} \ - --libdir=${libdir} \ - --datadir=${datadir} \ - --datarootdir=${datadir} -} - -do_install() { - oe_runmake install DESTDIR="${D}" -} - -FILES_${PN} += "${datadir}" - -BBCLASSEXTEND = "native" diff --git a/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-xsltproc-is-not-found.patch b/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-xsltproc-is-not-found.patch new file mode 100644 index 0000000000..99ae4d4417 --- /dev/null +++ b/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-xsltproc-is-not-found.patch @@ -0,0 +1,31 @@ +From 8b7fbbb405959f2868ad6eadd7dd00018758a8a5 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Wed, 7 Sep 2016 14:52:04 +0300 +Subject: [PATCH] Do not error out if xsltproc is not found. + +This allows us to drop the hard xsltproc dependency, if we're not +going to actually run the gtkdoc scripts (when api documentation is +disabled). + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index b0c88d7..2a61d6e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -58,7 +58,7 @@ dnl Check for xsltproc + dnl + AC_PATH_PROG([XSLTPROC], [xsltproc]) + if test -z "$XSLTPROC"; then +- AC_MSG_ERROR([xsltproc not found]) ++ AC_MSG_WARN([xsltproc not found]) + fi + + dnl +-- +2.9.3 + diff --git a/meta/recipes-gnome/gtk-doc/files/0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch b/meta/recipes-gnome/gtk-doc/files/0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch new file mode 100644 index 0000000000..19e05f1b99 --- /dev/null +++ b/meta/recipes-gnome/gtk-doc/files/0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch @@ -0,0 +1,139 @@ +From 80e6aff72affa6d92f5abd7ff6353dfc4a7bff38 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Wed, 31 Aug 2016 16:44:46 +0300 +Subject: [PATCH] Do not hardocode paths to perl/python in scripts. + +Doing so when the interpreters are somewhere deep in a sysroot directory +can reach the shebang line limit, and resulting scripts wouldn't work +on targets either. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +--- + gtkdoc-check.in | 2 +- + gtkdoc-depscan.in | 2 +- + gtkdoc-fixxref.in | 2 +- + gtkdoc-mkdb.in | 2 +- + gtkdoc-mkhtml.in | 2 +- + gtkdoc-mkman.in | 2 +- + gtkdoc-mkpdf.in | 2 +- + gtkdoc-rebase.in | 2 +- + gtkdoc-scan.in | 2 +- + gtkdoc-scangobj.in | 2 +- + tests/tools.sh.in | 2 +- + 11 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/gtkdoc-check.in b/gtkdoc-check.in +index 8c8e917..f6a25f6 100755 +--- a/gtkdoc-check.in ++++ b/gtkdoc-check.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python; coding: utf-8 -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-depscan.in b/gtkdoc-depscan.in +index 9bfaf30..aadc952 100755 +--- a/gtkdoc-depscan.in ++++ b/gtkdoc-depscan.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + + from __future__ import print_function + +diff --git a/gtkdoc-fixxref.in b/gtkdoc-fixxref.in +index 44f6bd1..26fbd93 100755 +--- a/gtkdoc-fixxref.in ++++ b/gtkdoc-fixxref.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-mkdb.in b/gtkdoc-mkdb.in +index 42d5731..3a56d56 100755 +--- a/gtkdoc-mkdb.in ++++ b/gtkdoc-mkdb.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python; coding: utf-8 -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-mkhtml.in b/gtkdoc-mkhtml.in +index 0d0a15d..914ff55 100755 +--- a/gtkdoc-mkhtml.in ++++ b/gtkdoc-mkhtml.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python; coding: utf-8 -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-mkman.in b/gtkdoc-mkman.in +index c5445cd..65db71a 100755 +--- a/gtkdoc-mkman.in ++++ b/gtkdoc-mkman.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python; coding: utf-8 -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-mkpdf.in b/gtkdoc-mkpdf.in +index e8c0c03..f807236 100755 +--- a/gtkdoc-mkpdf.in ++++ b/gtkdoc-mkpdf.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python; coding: utf-8 -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-rebase.in b/gtkdoc-rebase.in +index 17a71c2..ec3fd28 100755 +--- a/gtkdoc-rebase.in ++++ b/gtkdoc-rebase.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-scan.in b/gtkdoc-scan.in +index 954c811..f461504 100755 +--- a/gtkdoc-scan.in ++++ b/gtkdoc-scan.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-scangobj.in b/gtkdoc-scangobj.in +index 4cbe130..52c2c24 100755 +--- a/gtkdoc-scangobj.in ++++ b/gtkdoc-scangobj.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/tests/tools.sh.in b/tests/tools.sh.in +index 343844a..9dc6692 100644 +--- a/tests/tools.sh.in ++++ b/tests/tools.sh.in +@@ -30,7 +30,7 @@ done + # TODO: also test the module files + for file in gtkdoc-check gtkdoc-depscan gtkdoc-fixxref gtkdoc-mkdb gtkdoc-mkhtml gtkdoc-mkhtml2 gtkdoc-mkman gtkdoc-mkpdf gtkdoc-rebase gtkdoc-scangobj; do + fullfile=`which $file` +- @PYTHON@ -m py_compile $fullfile ++ python3 -m py_compile $fullfile + if test $? != 0 ; then failed=`expr $failed + 1`; fi + tested=`expr $tested + 1` + done diff --git a/meta/recipes-gnome/gtk-doc/files/conditionaltests.patch b/meta/recipes-gnome/gtk-doc/files/conditionaltests.patch new file mode 100644 index 0000000000..21c2db7826 --- /dev/null +++ b/meta/recipes-gnome/gtk-doc/files/conditionaltests.patch @@ -0,0 +1,46 @@ +From 78bbf185934147a69ceb4b617d424e12e70997bf Mon Sep 17 00:00:00 2001 +From: Richard Purdie <richard.purdie@linuxfoundation.org> +Date: Tue, 27 Jun 2017 21:00:58 +0100 +Subject: [PATCH 3/3] gtk-doc: Handle floating gtk-doc dependency + +Allow the tests to be explicitly disabled to avoid floating dependnecy +issues. This is not really an issue with RSS but is on previous releases. + +RP 2017/6/27 +Upstream-Status: Pending + +--- + configure.ac | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 684e2d1..e5e3aab 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -146,6 +146,11 @@ if test "x$GCC" = "xyes"; then + fi + fi + ++AC_ARG_ENABLE([tests], ++ AS_HELP_STRING([--enable-tests], ++ [enable tests (default=yes)]),, ++ [enable_tests="yes"]) ++ + dnl if glib is available we can enable the tests + PKG_CHECK_MODULES(TEST_DEPS, [glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0], + [ glib_prefix="`$PKG_CONFIG --variable=prefix glib-2.0`" +@@ -156,6 +161,11 @@ PKG_CHECK_MODULES(TEST_DEPS, [glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0], + build_tests="no" + ] + ) ++if test "x$enable_tests" != "xyes"; then ++ gtk_doc_use_libtool="no" ++ build_tests="no" ++fi ++ + AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, test -n "$LIBTOOL" -a x$gtk_doc_use_libtool = xyes ) + dnl this enables the rule in test/Makefile.am + AM_CONDITIONAL(BUILD_TESTS, test x$build_tests = xyes) +-- +2.14.1 + diff --git a/meta/recipes-gnome/gtk-doc/files/no-clobber.patch b/meta/recipes-gnome/gtk-doc/files/no-clobber.patch new file mode 100644 index 0000000000..d1695479dc --- /dev/null +++ b/meta/recipes-gnome/gtk-doc/files/no-clobber.patch @@ -0,0 +1,40 @@ +From 8bc4c1f169f89bc5531da5b7e892b8f20e0f9a18 Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@intel.com> +Date: Wed, 21 Mar 2018 14:47:29 +0000 +Subject: [PATCH] gtk-doc: don't regenerate gtk-doc in do_install + +In out-of-tree builds gtk-doc's setup-build target copies all the content from $srcdir to $builddir. + +However, if some of this content is regenerated at configure time this can happen: + +1) configure writes new build/version.xml +2) make compile copies content, including the tarball's src/version.xml + to build/version.xml, and generates gtk-doc. +3) make install notices build/version.xml is older than configure.status, + so regenerates gtk-doc. + +gtk-doc generation is a slow process at the best of times, so doing it twice isn't good. + +Solve this by changing cp --force to cp --no-clobber, so setup-build only copies +files which don't already exist. + +Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=794571] +Signed-off-by: Ross Burton <ross.burton@intel.com> + +--- + buildsystems/autotools/gtk-doc.make | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/buildsystems/autotools/gtk-doc.make b/buildsystems/autotools/gtk-doc.make +index 7d9a27f..8cb336d 100644 +--- a/buildsystems/autotools/gtk-doc.make ++++ b/buildsystems/autotools/gtk-doc.make +@@ -111,7 +111,7 @@ setup-build.stamp: + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ +- cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ ++ cp -pn $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi diff --git a/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch b/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch new file mode 100644 index 0000000000..1d260aa72b --- /dev/null +++ b/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch @@ -0,0 +1,42 @@ +From ebb0f7313a0931f646e86badce2627eff2fa37a8 Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@intel.com> +Date: Mon, 5 Sep 2016 22:25:44 +0100 +Subject: [PATCH] Use native pkg-config when looking for gtk-doc. + +Upstream-Status: Inappropriate +Signed-off-by: Ross Burton <ross.burton@intel.com> + +--- + buildsystems/autotools/gtk-doc.m4 | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/buildsystems/autotools/gtk-doc.m4 b/buildsystems/autotools/gtk-doc.m4 +index 2d12f01..e5afc3f 100644 +--- a/buildsystems/autotools/gtk-doc.m4 ++++ b/buildsystems/autotools/gtk-doc.m4 +@@ -25,7 +25,7 @@ + # Macro appear in them. The GNU General Public License (GPL) does govern + # all other use of the material that constitutes the Autoconf Macro. + +-# serial 2 ++# serial 2.1 + + dnl Usage: + dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +@@ -35,11 +35,16 @@ AC_DEFUN([GTK_DOC_CHECK], + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + ++ gtkdoc_pkgconfig_save=$PKG_CONFIG ++ PKG_CONFIG=pkg-config-native ++ + ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"]) + AC_MSG_CHECKING([for gtk-doc]) + PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no]) + AC_MSG_RESULT($have_gtk_doc) + ++ PKG_CONFIG=$gtkdoc_pkgconfig_save ++ + if test "$have_gtk_doc" = "no"; then + AC_MSG_WARN([ + You will not be able to create source packages with 'make dist' diff --git a/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb b/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb new file mode 100644 index 0000000000..150eca9274 --- /dev/null +++ b/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb @@ -0,0 +1,63 @@ +SUMMARY = "Documentation generator for glib-based software" +DESCRIPTION = "Gtk-doc is a set of scripts that extract specially formatted comments \ + from glib-based software and produce a set of html documentation files from them" +HOMEPAGE = "https://www.gtk.org/docs/" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit gnomebase + +# Configure the scripts correctly (and build their dependencies) only if they are actually +# going to be used; otheriwse we need only the m4/makefile includes from the gtk-doc tarball. +PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "api-documentation", "working-scripts", "", d)}" + +# This will cause target gtk-doc to hardcode paths of native dependencies +# into its scripts. This means that target gtk-doc package is broken; +# hopefully no one minds because its scripts are not used for anything during build +# and shouldn't be used on targets. +PACKAGECONFIG[working-scripts] = ",,libxslt-native xmlto-native python3-six python3-pygments" +PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,glib-2.0" + +CACHED_CONFIGUREVARS += "ac_cv_path_XSLTPROC=xsltproc" + +SRC_URI[archive.sha256sum] = "cc1b709a20eb030a278a1f9842a362e00402b7f834ae1df4c1998a723152bf43" +SRC_URI += "file://0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch \ + file://0001-Do-not-error-out-if-xsltproc-is-not-found.patch \ + file://conditionaltests.patch \ + file://no-clobber.patch \ + " +SRC_URI:append:class-native = " file://pkg-config-native.patch" + +BBCLASSEXTEND = "native nativesdk" + +# Do not check for XML catalogs when building because that +# information is not used for anything during build. Recipe +# dependencies make sure we have all the right bits. +do_configure:prepend() { + sed -i -e 's,^JH_CHECK_XML_CATALOG.*,,' ${S}/configure.ac +} + +do_install:append () { + # configure values for python3 and pkg-config encoded in scripts + for fn in ${bindir}/gtkdoc-depscan \ + ${bindir}/gtkdoc-mkhtml2 \ + ${datadir}/gtk-doc/python/gtkdoc/config_data.py \ + ${datadir}/gtk-doc/python/gtkdoc/config.py; do + sed -e 's,${RECIPE_SYSROOT_NATIVE}/usr/bin/pkg-config,${bindir}/pkg-config,' \ + -e 's,${HOSTTOOLS_DIR}/python3,${bindir}/python3,' \ + -e '1s|^#!.*|#!/usr/bin/env python3|' \ + -i ${D}$fn + done +} + +FILES:${PN} += "${datadir}/sgml" +FILES:${PN}-doc = "" + +SYSROOT_PREPROCESS_FUNCS:append:class-native = " gtkdoc_makefiles_sysroot_preprocess" +gtkdoc_makefiles_sysroot_preprocess() { + # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries + # instead of libtool wrapper or running them directly + sed -i \ + -e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \ + ${SYSROOT_DESTDIR}${datadir}/gtk-doc/data/gtk-doc*make +} diff --git a/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.15.bb b/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.15.bb deleted file mode 100644 index a704632ca9..0000000000 --- a/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.15.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Default icon theme that all icon themes automatically inherit from" -HOMEPAGE = "http://icon-theme.freedesktop.org/wiki/HicolorTheme" -BUGTRACKER = "https://bugs.freedesktop.org/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=f08a446809913fc9b3c718f0eaea0426" - -SRC_URI = "http://icon-theme.freedesktop.org/releases/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "6aa2b3993a883d85017c7cc0cfc0fb73" -SRC_URI[sha256sum] = "9cc45ac3318c31212ea2d8cb99e64020732393ee7630fa6c1810af5f987033cc" - -inherit allarch autotools - -FILES_${PN} += "${datadir}/icons" 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 new file mode 100644 index 0000000000..bb6cb000ab --- /dev/null +++ b/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb @@ -0,0 +1,18 @@ +SUMMARY = "Default icon theme that all icon themes automatically inherit from" +DESCRIPTION = "The hicolor-icon-theme package contains a default fallback \ +theme for implementations of the icon theme specification." +HOMEPAGE = "https://www.freedesktop.org/wiki/Software/icon-theme" +BUGTRACKER = "https://bugs.freedesktop.org/" + +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=f08a446809913fc9b3c718f0eaea0426" + +SRC_URI = "https://icon-theme.freedesktop.org/releases/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "84eec8d6f810240a069c731f1870b474" +SRC_URI[sha256sum] = "317484352271d18cbbcfac3868eab798d67fff1b8402e740baa6ff41d588a9d8" + +inherit allarch autotools + +FILES:${PN} += "${datadir}/icons" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-gnome/json-glib/json-glib/run-ptest b/meta/recipes-gnome/json-glib/json-glib/run-ptest new file mode 100644 index 0000000000..0c6398a177 --- /dev/null +++ b/meta/recipes-gnome/json-glib/json-glib/run-ptest @@ -0,0 +1,3 @@ +#! /bin/sh + +gnome-desktop-testing-runner json-glib diff --git a/meta/recipes-gnome/json-glib/json-glib_1.2.0.bb b/meta/recipes-gnome/json-glib/json-glib_1.2.0.bb deleted file mode 100644 index 1a7b7696ff..0000000000 --- a/meta/recipes-gnome/json-glib/json-glib_1.2.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "JSON-GLib implements a full JSON parser using GLib and GObject" -DESCRIPTION = "Use JSON-GLib it is possible to parse and generate valid JSON\ - data structures, using a DOM-like API. JSON-GLib also offers GObject \ -integration, providing the ability to serialize and deserialize GObject \ -instances to and from JSON data types." -HOMEPAGE = "http://live.gnome.org/JsonGlib" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" - -DEPENDS = "glib-2.0" - -SRC_URI[archive.md5sum] = "efe14b6b8e7aa95ee3240cc60627dc9f" -SRC_URI[archive.sha256sum] = "99d6dfbe49c08fd7529f1fe8dcb1893b810a1bb222f1e7b65f41507658b8a7d3" - -inherit gnomebase gettext lib_package gobject-introspection - -BBCLASSEXTEND = "native" diff --git a/meta/recipes-gnome/json-glib/json-glib_1.6.6.bb b/meta/recipes-gnome/json-glib/json-glib_1.6.6.bb new file mode 100644 index 0000000000..627f389536 --- /dev/null +++ b/meta/recipes-gnome/json-glib/json-glib_1.6.6.bb @@ -0,0 +1,32 @@ +SUMMARY = "JSON-GLib implements a full JSON parser using GLib and GObject" +DESCRIPTION = "Use JSON-GLib it is possible to parse and generate valid JSON\ + data structures, using a DOM-like API. JSON-GLib also offers GObject \ +integration, providing the ability to serialize and deserialize GObject \ +instances to and from JSON data types." +HOMEPAGE = "https://wiki.gnome.org/Projects/JsonGlib" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/json-glib/issues" + +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" + +DEPENDS = "glib-2.0" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase lib_package gobject-introspection gi-docgen gettext ptest-gnome manpages upstream-version-is-even +GIR_MESON_ENABLE_FLAG = 'enabled' +GIR_MESON_DISABLE_FLAG = 'disabled' +GIDOCGEN_MESON_ENABLE_FLAG = 'enabled' +GIDOCGEN_MESON_DISABLE_FLAG = 'disabled' + +SRC_URI += " file://run-ptest" +SRC_URI[archive.sha256sum] = "96ec98be7a91f6dde33636720e3da2ff6ecbb90e76ccaa49497f31a6855a490e" + +PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" +PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native" +PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false" + +BBCLASSEXTEND = "native nativesdk" + +# Currently it's not possible to disable gettext in Meson, so we need to force +# this back on. +USE_NLS:class-native = "yes" diff --git a/meta/recipes-gnome/libdazzle/libdazzle_3.44.0.bb b/meta/recipes-gnome/libdazzle/libdazzle_3.44.0.bb new file mode 100644 index 0000000000..49ebc818b0 --- /dev/null +++ b/meta/recipes-gnome/libdazzle/libdazzle_3.44.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "The libdazzle library is a companion library to GObject and Gtk+." +DESCRIPTION = "A wide range of components from utilities for GIO, widgets for \ +GTK+, an animation framework, state machines, paneling and high-performance \ +counters are included." +LICENSE = "GPL-3.0-or-later" +HOMEPAGE = "https://gitlab.gnome.org/GNOME/libdazzle" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/libdazzle/issues" +LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase upstream-version-is-even vala features_check gobject-introspection + +DEPENDS = "glib-2.0-native glib-2.0 gtk+3" + +SRC_URI[archive.sha256sum] = "3cd3e45eb6e2680cb05d52e1e80dd8f9d59d4765212f0e28f78e6c1783d18eae" + +GIR_MESON_OPTION = 'with_introspection' + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" diff --git a/meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch b/meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch deleted file mode 100644 index c5d586465c..0000000000 --- a/meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch +++ /dev/null @@ -1,102 +0,0 @@ -Upstream-Status: Pending - -diff -ur libglade-2.4.0~/configure.in libglade-2.4.0/configure.in ---- libglade-2.4.0~/configure.in 2004-05-17 12:38:31.000000000 +0100 -+++ libglade-2.4.0/configure.in 2004-07-28 16:53:09.000000000 +0100 -@@ -147,6 +147,18 @@ - AM_CONDITIONAL(HAVE_PYTHON, $have_python) - AC_SUBST(PYTHON) - -+AC_MSG_CHECKING([for cruft in libgtk]) -+AC_TRY_LINK([ -+#include <gtk/gtk.h> -+#include <stdio.h> -+], [ gtk_tree_get_type (); return 0; ], -+ [ AC_MSG_RESULT(yes) -+ have_cruft=yes ], -+ [ AC_MSG_RESULT(no) -+ AC_DEFINE(DISABLE_CRUFT,,[leave out support for old, broken widgets]) -+ have_cruft=no ]) -+AC_SUBST(DISABLE_CRUFT) -+ - dnl add debugging options ... - changequote(,)dnl - if test "x$GCC" = xyes; then -Only in libglade-2.4.0: configure.in.orig -diff -ur libglade-2.4.0~/glade/glade-gtk.c libglade-2.4.0/glade/glade-gtk.c ---- libglade-2.4.0~/glade/glade-gtk.c 2004-03-13 13:47:35.000000000 +0000 -+++ libglade-2.4.0/glade/glade-gtk.c 2004-07-28 16:53:52.000000000 +0100 -@@ -213,6 +213,8 @@ - gtk_clist_column_titles_hide (GTK_CLIST (w)); - } - -+#ifndef DISABLE_CRUFT -+ - static void - tree_set_selection_mode (GladeXML *xml, GtkWidget *w, - const char *name, const char *value) -@@ -238,6 +240,8 @@ - gtk_tree_set_view_lines (GTK_TREE (w), BOOL (value)); - } - -+#endif -+ - static void - list_set_selection_mode (GladeXML *xml, GtkWidget *w, - const char *name, const char *value) -@@ -254,6 +258,7 @@ - gtk_check_menu_item_set_show_toggle (GTK_CHECK_MENU_ITEM (w), BOOL (value)); - } - -+#ifndef DISABLE_CRUFT - static void - text_set_text (GladeXML *xml, GtkWidget *w, - const char *name, const char *value) -@@ -262,6 +267,7 @@ - - gtk_editable_insert_text (GTK_EDITABLE (w), value, -1, &pos); - } -+#endif - - static void - radio_menu_item_set_group (GladeXML *xml, GtkWidget *w, -@@ -1125,13 +1131,17 @@ - glade_register_custom_prop (GTK_TYPE_CLIST, "selection_mode", clist_set_selection_mode); - glade_register_custom_prop (GTK_TYPE_CLIST, "shadow_type", clist_set_shadow_type); - glade_register_custom_prop (GTK_TYPE_CLIST, "show_titles", clist_set_show_titles); -+#ifndef DISABLE_CRUFT - glade_register_custom_prop (GTK_TYPE_TREE, "selection_mode", tree_set_selection_mode); - glade_register_custom_prop (GTK_TYPE_TREE, "view_mode", tree_set_view_mode); - glade_register_custom_prop (GTK_TYPE_TREE, "view_line", tree_set_view_line); -+#endif - glade_register_custom_prop (GTK_TYPE_LIST, "selection_mode", list_set_selection_mode); - glade_register_custom_prop (GTK_TYPE_CHECK_MENU_ITEM, "always_show_toggle", - check_menu_item_set_always_show_toggle); -+#ifndef DISABLE_CRUFT - glade_register_custom_prop (GTK_TYPE_TEXT, "text", text_set_text); -+#endif - glade_register_custom_prop (GTK_TYPE_RADIO_MENU_ITEM, "group", - radio_menu_item_set_group); - glade_register_custom_prop (GTK_TYPE_TOOLBAR, "tooltips", toolbar_set_tooltips); -@@ -1288,8 +1298,10 @@ - glade_standard_build_children, NULL); - glade_register_widget (GTK_TYPE_TEAROFF_MENU_ITEM, glade_standard_build_widget, - NULL, NULL); -+#ifndef DISABLE_CRUFT - glade_register_widget (GTK_TYPE_TEXT, glade_standard_build_widget, - NULL, NULL); -+#endif - glade_register_widget (GTK_TYPE_TEXT_VIEW, glade_standard_build_widget, - NULL, NULL); - glade_register_widget (GTK_TYPE_TIPS_QUERY, glade_standard_build_widget, -@@ -1304,8 +1316,10 @@ - glade_standard_build_children, NULL); - glade_register_widget (GTK_TYPE_TOOL_BUTTON, glade_standard_build_widget, - NULL, NULL); -+#ifndef DISABLE_CRUFT - glade_register_widget (GTK_TYPE_TREE, glade_standard_build_widget, - NULL, NULL); -+#endif - glade_register_widget (GTK_TYPE_TREE_VIEW, glade_standard_build_widget, - NULL, NULL); - glade_register_widget (GTK_TYPE_VBUTTON_BOX, glade_standard_build_widget, diff --git a/meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch b/meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch deleted file mode 100644 index dc4c092fd3..0000000000 --- a/meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch +++ /dev/null @@ -1,501 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -diff -urN libglade-2.4.2.orig/configure.in libglade-2.4.2/configure.in ---- libglade-2.4.2.orig/configure.in 2005-02-11 12:42:58.000000000 +0100 -+++ libglade-2.4.2/configure.in 2005-03-22 01:22:00.000000000 +0100 -@@ -52,11 +52,33 @@ - AC_PATH_PROG(PKG_CONFIG, pkg-config, no) - - PKG_CHECK_MODULES(LIBGLADE, [dnl -- libxml-2.0 >= required_libxml_version dnl - atk >= required_atk_version dnl - gtk+-2.0 >= required_gtk_version dnl - glib-2.0 >= required_glib_version]) - -+disable_xml2=no -+AC_ARG_WITH([libxml2], -+ AC_HELP_STRING([--without-libxml2], [Don't use libxml2, use Glib's GMarkupParser instead]), -+ [disable_xml2=yes], -+ [disable_xml2=no]) -+ -+AC_MSG_CHECKING([if we are using libxml2]) -+if test "x$disable_xml2" == "xno"; then -+ AC_MSG_RESULT(yes) -+ PKG_CHECK_MODULES(XML2, libxml-2.0 >= 2.4.10) -+ PKGCFG_REQUIRE_LIBXML2="libxml-2.0" -+ LIBGLADE_CFLAGS="$LIBGLADE_CFLAGS $XML2_CFLAGS" -+ LIBGLADE_LIBS="$LIBGLADE_LIBS $XML2_LIBS" -+else -+ LIBGLADE_CFLAGS="$LIBGLADE_CFLAGS -DUSE_GMARKUP_PARSER" -+ PKGCFG_REQUIRE_LIBXML2="" -+ AC_MSG_RESULT(no) -+fi -+ -+AC_SUBST(XML2_LIBS) -+AC_SUBST(XML2_CFLAGS) -+AC_SUBST(PKGCFG_REQUIRE_LIBXML2) -+ - AC_MSG_CHECKING([for native Win32]) - case "$host" in - *-*-mingw*) -@@ -116,6 +138,21 @@ - fi - fi - -+if test "x$disable_xml2" == "xyes"; then -+ echo "*****************************************************" -+ echo " You chose to disable libxml2 and use Glib's" -+ echo " GMarkupParser instead." -+ echo -+ echo " Please bear in mind that using libglade with" -+ echo " GMarkupParser is an experimental feature only." -+ echo -+ echo " Please post problems or success stories to" -+ echo " the glade-devel mailing list. Thank you." -+ echo "*****************************************************" -+fi -+ -+ -+ - GTK_DOC_CHECK(1.0) - - dnl gettext stuff ... there is no message catalog for libglade -- libglade -diff -urN libglade-2.4.2.orig/glade/glade-parser.c libglade-2.4.2/glade/glade-parser.c ---- libglade-2.4.2.orig/glade/glade-parser.c 2004-11-11 11:56:13.000000000 +0100 -+++ libglade-2.4.2/glade/glade-parser.c 2005-03-22 01:20:00.000000000 +0100 -@@ -34,7 +34,15 @@ - # define dgettext(Domain, String) (String) - #endif - --#include <libxml/parser.h> -+#ifdef USE_GMARKUP_PARSER -+# include <zlib.h> -+#else -+# include <libxml/parser.h> -+#endif -+ -+#ifdef USE_GMARKUP_PARSER -+# define xmlChar gchar -+#endif - - #include "glade-parser.h" - #include "glade-private.h" -@@ -508,7 +516,9 @@ - case PARSER_START: - if (!strcmp(name, "glade-interface")) { - state->state = PARSER_GLADE_INTERFACE; --#if 0 -+ -+#ifndef USE_GMARKUP_PARSER -+ #if 0 - /* check for correct XML namespace */ - for (i = 0; attrs && attrs[i] != NULL; i += 2) { - if (!strcmp(attrs[i], "xmlns") && -@@ -518,7 +528,9 @@ - g_warning("unknown attribute `%s' for <glade-interface>", - attrs[i]); - } -+ #endif - #endif -+ - } else { - g_warning("Expected <glade-interface>. Got <%s>.", name); - state->prev_state = state->state; -@@ -1063,12 +1075,18 @@ - } - } - -+#ifndef USE_GMARKUP_PARSER -+ - static xmlEntityPtr - glade_parser_get_entity(GladeParseState *state, const xmlChar *name) - { - return xmlGetPredefinedEntity(name); - } - -+#endif /* !defined(USE_GMARKUP_PARSER) */ -+ -+#ifndef USE_GMARKUP_PARSER -+ - static void - glade_parser_warning(GladeParseState *state, const char *msg, ...) - { -@@ -1079,6 +1097,10 @@ - va_end(args); - } - -+#endif /* !defined(USE_GMARKUP_PARSER) */ -+ -+#ifndef USE_GMARKUP_PARSER -+ - static void - glade_parser_error(GladeParseState *state, const char *msg, ...) - { -@@ -1089,6 +1111,10 @@ - va_end(args); - } - -+#endif /* !defined(USE_GMARKUP_PARSER) */ -+ -+#ifndef USE_GMARKUP_PARSER -+ - static void - glade_parser_fatal_error(GladeParseState *state, const char *msg, ...) - { -@@ -1099,6 +1125,10 @@ - va_end(args); - } - -+#endif /* !defined(USE_GMARKUP_PARSER) */ -+ -+#ifndef USE_GMARKUP_PARSER -+ - static xmlSAXHandler glade_parser = { - (internalSubsetSAXFunc)NULL, /* internalSubset */ - (isStandaloneSAXFunc)NULL, /* isStandalone */ -@@ -1126,6 +1156,82 @@ - (fatalErrorSAXFunc)glade_parser_fatal_error, /* fatalError */ - }; - -+#else /* USE_GMARKUP_PARSER */ -+ -+static void -+glade_parser_start_element_wrapper(GMarkupParseContext *context, -+ const gchar *name, -+ const gchar **attr_names, -+ const gchar **attr_values, -+ gpointer state, -+ GError **error) -+{ -+ guint i = 0; -+ -+ /* Pack attribute names/values from two separate -+ * arrays (GMarkupParser style) into one single -+ * array (libxml SAXParser style). This is not -+ * very efficient, but we do it to make the -+ * GMarkupParser code as little invasive as -+ * possible. */ -+ -+ while (attr_names[i] != NULL) { -+ ++i; -+ } -+ -+ if (1) -+ { -+ const gchar *attr[(i*2)+1]; -+ guint j, k; -+ -+ for (j=0, k=0; k < i; j += 2) -+ { -+ attr[j] = attr_names[k]; -+ attr[j+1] = attr_values[k]; -+ ++k; -+ } -+ attr[i*2] = NULL; -+ -+ glade_parser_start_element((GladeParseState*)state, name, attr); -+ } -+} -+ -+static void -+glade_parser_end_element_wrapper(GMarkupParseContext *context, -+ const gchar *name, -+ gpointer state, -+ GError **err) -+{ -+ glade_parser_end_element((GladeParseState*)state, name); -+} -+ -+static void -+glade_parser_characters_wrapper(GMarkupParseContext *context, -+ const gchar *chars, -+ gsize len, -+ gpointer state, -+ GError **err) -+{ -+ glade_parser_characters((GladeParseState*)state, chars, (int) len); -+} -+ -+static void -+glade_parser_error(GMarkupParseContext *context, GError *err, gpointer data) -+{ -+ g_log("Glade-Parser", G_LOG_LEVEL_CRITICAL, "%s", err->message); -+} -+ -+static const GMarkupParser glade_parser = { -+ glade_parser_start_element_wrapper, /* element open */ -+ glade_parser_end_element_wrapper, /* element close */ -+ glade_parser_characters_wrapper, /* text content */ -+ NULL, /* passthrough */ -+ glade_parser_error, /* parse error */ -+}; -+ -+#endif /* USE_GMARKUP_PARSER */ -+ -+ - static void - widget_info_free(GladeWidgetInfo *info) - { -@@ -1191,6 +1297,9 @@ - * - * Returns: the GladeInterface structure for the XML file. - */ -+ -+#ifndef USE_GMARKUP_PARSER -+ - GladeInterface * - glade_parser_parse_file(const gchar *file, const gchar *domain) - { -@@ -1222,6 +1331,31 @@ - return state.interface; - } - -+#else /* defined(USE_GMARKUP_PARSER) */ -+ -+GladeInterface * -+glade_parser_parse_file(const gchar *file, const gchar *domain) -+{ -+ GladeInterface *interface; -+ GError *err = NULL; -+ gchar *content = NULL; -+ gsize clen; -+ -+ if (!g_file_get_contents(file, &content, &clen, &err)) { -+ g_warning("could not load glade file: %s", err->message); -+ g_error_free(err); -+ return NULL; -+ } -+ -+ interface = glade_parser_parse_buffer(content, (gint) clen, domain); -+ -+ g_free(content); -+ -+ return interface; -+} -+ -+#endif /* USE_GMARKUP_PARSER */ -+ - /** - * glade_parser_parse_buffer - * @buffer: a buffer in memory containing XML data. -@@ -1237,6 +1371,9 @@ - * - * Returns: the GladeInterface structure for the XML buffer. - */ -+ -+#ifndef USE_GMARKUP_PARSER -+ - GladeInterface * - glade_parser_parse_buffer(const gchar *buffer, gint len, const gchar *domain) - { -@@ -1263,6 +1400,161 @@ - return state.interface; - } - -+#else /* defined(USE_GMARKUP_PARSER) */ -+ -+ -+static GladeInterface * -+glade_parser_parse_buffer_internal(const gchar *buffer, gint len, const gchar *domain) -+{ -+ GMarkupParseContext *context; -+ GladeParseState state = { 0 }; -+ GError *err = NULL; -+ -+ state.interface = NULL; -+ if (domain) -+ state.domain = domain; -+ else -+ state.domain = textdomain(NULL); -+ -+ /* FIXME: This strstr() is not safe, as it ignores the len -+ * argument and assumes the buffer is NUL-terminated */ -+ if (strstr(buffer, "<?xml") == NULL) { -+ g_warning("No XML header found in document!"); -+ return NULL; -+ } -+ -+ context = g_markup_parse_context_new(&glade_parser, (GMarkupParseFlags) 0, &state, NULL); -+ -+ glade_parser_start_document(&state); -+ -+ if (!g_markup_parse_context_parse(context, buffer, (gssize) len, &err)) { -+ g_warning("document not well formed: %s", err->message); -+ g_error_free(err); -+ if (state.interface) -+ glade_interface_destroy (state.interface); -+ return NULL; -+ } -+ -+ glade_parser_end_document(&state); -+ -+ if (state.state != PARSER_FINISH) { -+ g_warning("did not finish in PARSER_FINISH state!"); -+ -+ if (state.interface) -+ glade_interface_destroy(state.interface); -+ -+ return NULL; -+ } -+ -+ return state.interface; -+} -+ -+struct _gzip_rfc1952_hdr -+{ -+ guint8 id1, id2, cm, flags; -+ guint32 mtime; -+ guint8 xflags; -+ guint8 os; -+}; -+ -+static GladeInterface * -+glade_parser_parse_gzipped_buffer(const gchar *buffer, gint len, const gchar *domain) -+{ -+ struct _gzip_rfc1952_hdr *hdr = (struct _gzip_rfc1952_hdr*)buffer; -+ struct z_stream_s zstream; -+ GladeInterface *interface; -+ const guint8 *cbuf; /* start of compressed data */ -+ guint8 *decompress_buf; -+ gulong decompress_len = 0; -+ gint ret; -+ -+ g_assert(hdr != NULL && hdr->id1 == 0x1f && hdr->id2 == 0x8b); -+ -+ if (hdr->cm != Z_DEFLATED) { -+ g_warning("Unknown decompression method %u", (guint) hdr->cm); -+ return NULL; -+ } -+ -+ /* Uncompressed size (modulo 2^32) is last -+ * 4 bytes of gzipped file, and little endian. -+ * See RFC 1952 */ -+ decompress_len = GUINT32_FROM_LE(*((guint32*)(((guint8*)buffer) + len - 4))); -+ -+ /* paranoid mode: glade files > 5MB are unlikely */ -+ g_return_val_if_fail(decompress_len < 5*1024*1024, NULL); -+ -+ decompress_buf = g_malloc0(decompress_len + 1); /* +1 for NUL-terminator */ -+ -+ /* find start of compressed data, skipping header stuff */ -+ cbuf = (guint8*)buffer + 10; -+ if (hdr->flags & 0x04) { -+ guint16 xlen = GUINT16_FROM_LE(*((guint16*)cbuf)); -+ cbuf += xlen + 2; -+ } -+ if (hdr->flags & 0x08) { -+ guint16 onamelen = strlen(cbuf); -+ cbuf += onamelen + 1; -+ } -+ if (hdr->flags & 0x10) { -+ guint16 commentlen = strlen(cbuf); -+ cbuf += commentlen + 1; -+ } -+ if (hdr->flags & 0x02) -+ { -+ cbuf += 2; /* skip header CRC16 */ -+ } -+ -+ zstream.next_in = (void*)cbuf; -+ zstream.avail_in = (uLongf) len - ((void*)cbuf-(void*)buffer) - 4 - 4 +1; -+ zstream.next_out = decompress_buf; -+ zstream.avail_out= decompress_len; -+ zstream.zalloc = Z_NULL; -+ zstream.zfree = Z_NULL; -+ zstream.opaque = Z_NULL; -+ -+ ret = inflateInit2(&zstream, -MAX_WBITS); -+ -+ if (ret != Z_OK) { -+ g_warning("inflateInit2() failed. zlib error code: %d", ret); -+ g_free(decompress_buf); -+ return NULL; -+ } -+ -+ ret = inflate(&zstream, Z_FINISH); -+ -+ if (ret != Z_STREAM_END) { -+ g_warning("zlib decompression failed. zlib error code: %d", ret); -+ g_free(decompress_buf); -+ return NULL; -+ } -+ -+ interface = glade_parser_parse_buffer_internal(decompress_buf, decompress_len, domain); -+ -+ g_free(decompress_buf); -+ -+ return interface; -+} -+ -+GladeInterface * -+glade_parser_parse_buffer(const gchar *buffer, gint len, const gchar *domain) -+{ -+ g_return_val_if_fail(buffer != NULL, NULL); -+ g_return_val_if_fail(len > 0, NULL); -+ -+ /* Check if buffer is gzipped */ -+ if (buffer[0] == 0x1f && buffer[1] == (gchar)0x8b) { -+ return glade_parser_parse_gzipped_buffer(buffer, len, domain); -+ } -+ -+ /* Buffer is cleartext. */ -+ return glade_parser_parse_buffer_internal(buffer, len, domain); -+} -+ -+#endif /* USE_GMARKUP_PARSER */ -+ -+ -+#ifndef USE_GMARKUP_PARSER -+ - static void - dump_widget(xmlNode *parent, GladeWidgetInfo *info, gint indent) - { -@@ -1382,6 +1674,8 @@ - xmlNodeAddContent(widget, " "); - } - -+#endif /* !defined(USE_GMARKUP_PARSER) */ -+ - /** - * glade_interface_dump - * @interface: the GladeInterface -@@ -1390,6 +1684,9 @@ - * This function dumps the contents of a GladeInterface into a file as - * XML. It is intended mainly as a debugging tool. - */ -+ -+#ifndef USE_GMARKUP_PARSER -+ - void - glade_interface_dump(GladeInterface *interface, const gchar *filename) - { -@@ -1428,6 +1725,17 @@ - xmlFreeDoc(doc); - } - -+#else /* defined(USE_GMARKUP_PARSER) */ -+ -+void -+glade_interface_dump(GladeInterface *interface, const gchar *filename) -+{ -+ g_warning("glade_interface_dump() is only available with libxml2."); -+} -+ -+#endif /* USE_GMARKUP_PARSER */ -+ -+ - #if 0 - int - main(int argc, char **argv) { -diff -urN libglade-2.4.2.orig/libglade-2.0.pc.in libglade-2.4.2/libglade-2.0.pc.in ---- libglade-2.4.2.orig/libglade-2.0.pc.in 2001-12-12 15:28:23.000000000 +0100 -+++ libglade-2.4.2/libglade-2.0.pc.in 2005-03-22 01:20:00.000000000 +0100 -@@ -11,7 +11,7 @@ - Name: Libglade - Description: a library for dynamically loading GLADE interface files - Version: @VERSION@ --Requires: gtk+-2.0 libxml-2.0 -+Requires: gtk+-2.0 @PKGCFG_REQUIRE_LIBXML2@ - Libs: -L${libdir} -lglade-2.0 - Cflags: -I${includedir}/libglade-2.0 - diff --git a/meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch b/meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch deleted file mode 100644 index b5b2ec4534..0000000000 --- a/meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch +++ /dev/null @@ -1,14 +0,0 @@ -Using @PYTHON@ for this path would result in the build system python being -referred to. Instead we want to locate python from the environment. - -Upstream-Status: Inappropriate [configuration] - -diff -ruN libglade-2.6.4-orig//libglade-convert.in libglade-2.6.4/libglade-convert.in ---- libglade-2.6.4-orig//libglade-convert.in 2011-09-22 10:18:28.991164003 +0800 -+++ libglade-2.6.4/libglade-convert.in 2011-09-22 10:18:55.431164003 +0800 -@@ -1,4 +1,4 @@ --#!@PYTHON@ -+#!/usr/bin/env python - # -*- mode: python -*- - - # yes, this requires python 2.x and an XML parser module (eg. PyExpat) diff --git a/meta/recipes-gnome/libglade/libglade_2.6.4.bb b/meta/recipes-gnome/libglade/libglade_2.6.4.bb deleted file mode 100644 index 553e19c601..0000000000 --- a/meta/recipes-gnome/libglade/libglade_2.6.4.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "Runtime support for the GTK+ interface builder" -HOMEPAGE = "http://library.gnome.org/devel/libglade/" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "LGPLv2 & LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \ - file://glade/glade.h;endline=22;md5=a04f461c964ba4b57a172d1fbcd8f8fc \ - file://glade/glade-gtk.c;endline=22;md5=766f993433e2642fec87936d319990ff" - -SECTION = "libs" -PR = "r5" -DEPENDS = "zlib gdk-pixbuf gtk+" - -inherit autotools pkgconfig gnomebase gtk-doc distro_features_check -ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" -GNOME_COMPRESS_TYPE="bz2" - -SRC_URI += "file://glade-cruft.patch file://no-xml2.patch file://python_environment.patch" - -SRC_URI[archive.md5sum] = "d1776b40f4e166b5e9c107f1c8fe4139" -SRC_URI[archive.sha256sum] = "64361e7647839d36ed8336d992fd210d3e8139882269bed47dc4674980165dec" - -EXTRA_OECONF += "--without-libxml2" - -CFLAGS += "-lz" - -PACKAGES += " ${PN}-data" -FILES_${PN} = "${libdir}/lib*.so.*" -FILES_${PN}-data = "${datadir}/xml/libglade/glade-2.0.dtd" -FILES_${PN}-dev += "${bindir}/libglade-convert" -#RDEPENDS_${PN} = "${PN}-data" diff --git a/meta/recipes-gnome/libgudev/libgudev_230.bb b/meta/recipes-gnome/libgudev/libgudev_230.bb deleted file mode 100644 index f9e1d23a2d..0000000000 --- a/meta/recipes-gnome/libgudev/libgudev_230.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "GObject wrapper for libudev" - -SRC_URI[archive.md5sum] = "e4dee8f3f349e9372213d33887819a4d" -SRC_URI[archive.sha256sum] = "a2e77faced0c66d7498403adefcc0707105e03db71a2b2abd620025b86347c18" - -DEPENDS = "glib-2.0 udev" - -RCONFLICTS_${PN} = "systemd (<= 220)" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -inherit gnomebase gobject-introspection - -UPSTREAM_CHECK_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgudev/" -UPSTREAM_CHECK_REGEX = "(?P<pver>(\d+))" diff --git a/meta/recipes-gnome/libgudev/libgudev_237.bb b/meta/recipes-gnome/libgudev/libgudev_237.bb new file mode 100644 index 0000000000..9ce43ce34b --- /dev/null +++ b/meta/recipes-gnome/libgudev/libgudev_237.bb @@ -0,0 +1,31 @@ +SUMMARY = "GObject wrapper for libudev" +DESCRIPTION = "This library makes it much simpler to use libudev from programs \ +already using GObject. It also makes it possible to easily use libudev from \ +other programming languages, such as Javascript, because of GObject \ +introspection support." +HOMEPAGE = "https://wiki.gnome.org/Projects/libgudev" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/libgudev/issues" +SRC_URI[archive.sha256sum] = "0d06b21170d20c93e4f0534dbb9b0a8b4f1119ffb00b4031aaeb5b9148b686aa" + +DEPENDS = "glib-2.0 udev" + +RCONFLICTS:${PN} = "systemd (<= 220)" + +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase gobject-introspection gtk-doc + +GIR_MESON_ENABLE_FLAG = 'enabled' +GIR_MESON_DISABLE_FLAG = 'disabled' + +GTKDOC_MESON_OPTION = "gtk_doc" + +UPSTREAM_CHECK_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgudev/" +UPSTREAM_CHECK_REGEX = "(?P<pver>(\d+))" + +# This isn't a GNOME-style version do gnome_verdir fails. Just return the +# version as that is how the directory is structured. +def gnome_verdir(v): + return v diff --git a/meta/recipes-gnome/libhandy/libhandy_1.8.0.bb b/meta/recipes-gnome/libhandy/libhandy_1.8.0.bb new file mode 100644 index 0000000000..2f7d47290c --- /dev/null +++ b/meta/recipes-gnome/libhandy/libhandy_1.8.0.bb @@ -0,0 +1,27 @@ +SUMMARY = "A library full of GTK+ widgets for mobile phones" +DESCRIPTION = "Library with GTK widgets for mobile phones. Libhandy provides \ +GTK widgets and GObjects to ease developing applications for mobile phones. \ +It was developed by Purism (and used by several official GNOME projects) \ +to extend Gtk by providing mobile-friendly widgets and make the creation of \ +responsive apps easier." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/libhandy" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/libhandy/-/issues" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://gitlab.gnome.org/GNOME/libhandy.git;protocol=https;branch=main" +SRCREV = "fce63fcc85621c33dab85e32b349d707bf6d1552" +S = "${WORKDIR}/git" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+))" +GIR_MESON_ENABLE_FLAG = 'enabled' +GIR_MESON_DISABLE_FLAG = 'disabled' + +inherit meson gobject-introspection vala gettext gi-docgen features_check pkgconfig + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +DEPENDS += "gtk+3" + +PACKAGES =+ "${PN}-examples" +FILES:${PN}-examples = "${bindir}" diff --git a/meta/recipes-gnome/libnotify/libnotify_0.7.6.bb b/meta/recipes-gnome/libnotify/libnotify_0.7.6.bb deleted file mode 100644 index ce8e5ae21a..0000000000 --- a/meta/recipes-gnome/libnotify/libnotify_0.7.6.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Library for sending desktop notifications to a notification daemon" -SECTION = "libs" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" - -DEPENDS = "dbus gtk+3 dbus-glib" - -inherit gnomebase gtk-doc distro_features_check gobject-introspection -# depends on gtk+3 -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" - -SRC_URI[archive.md5sum] = "a4997019d08f46f3bf57b78e6f795a59" -SRC_URI[archive.sha256sum] = "0ef61ca400d30e28217979bfa0e73a7406b19c32dd76150654ec5b2bdf47d837" - -# there were times, we had two versions of libnotify (oe-core libnotify:0.6.x / -# meta-gnome libnotify3: 0.7.x) -PROVIDES += "libnotify3" -RPROVIDES_${PN} += "libnotify3" -RCONFLICTS_${PN} += "libnotify3" -RREPLACES_${PN} += "libnotify3" diff --git a/meta/recipes-gnome/libnotify/libnotify_0.8.1.bb b/meta/recipes-gnome/libnotify/libnotify_0.8.1.bb new file mode 100644 index 0000000000..3bdc70d224 --- /dev/null +++ b/meta/recipes-gnome/libnotify/libnotify_0.8.1.bb @@ -0,0 +1,37 @@ +SUMMARY = "Library for sending desktop notifications to a notification daemon" +DESCRIPTION = "It sends desktop notifications to a notification daemon, as defined \ +in the Desktop Notifications spec. These notifications can be used to inform \ +the user about an event or display some form of information without getting \ +in the user's way." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/libnotify" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/libnotify/issues" +SECTION = "libs" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" + +DEPENDS = "dbus glib-2.0 gdk-pixbuf" + +PACKAGECONFIG ?= "" +PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,gtk+3" + +GNOMEBASEBUILDCLASS = "meson" +GTKDOC_MESON_OPTION = "gtk_doc" +GIR_MESON_ENABLE_FLAG = "enabled" +GIR_MESON_DISABLE_FLAG = "disabled" +inherit gnomebase gtk-doc features_check gobject-introspection +# depends on gtk+3 if tests are enabled +ANY_OF_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'tests', '${GTK3DISTROFEATURES}', '', d)}" + +SRC_URI[archive.sha256sum] = "d033e6d4d6ccbf46a436c31628a4b661b36dca1f5d4174fe0173e274f4e62557" + +EXTRA_OEMESON = "-Dman=false" + +# there were times, we had two versions of libnotify (oe-core libnotify:0.6.x / +# meta-gnome libnotify3: 0.7.x) +PROVIDES += "libnotify3" +RPROVIDES:${PN} += "libnotify3" +RCONFLICTS:${PN} += "libnotify3" +RREPLACES:${PN} += "libnotify3" + +# -7381 is specific to the NodeJS bindings +CVE_CHECK_IGNORE += "CVE-2013-7381" diff --git a/meta/recipes-gnome/libportal/libportal_0.6.bb b/meta/recipes-gnome/libportal/libportal_0.6.bb new file mode 100644 index 0000000000..ca58ef4138 --- /dev/null +++ b/meta/recipes-gnome/libportal/libportal_0.6.bb @@ -0,0 +1,20 @@ +SUMMARY = "libportal provides GIO-style async APIs for most Flatpak portals." +DESCRIPTION = "It provides simple asynchronous wrappers for most Flatpak portals \ +with a familiar GObject API along side the D-Bus API" +HOMEPAGE = "https://github.com/flatpak/libportal" +BUGTRACKER = "https://github.com/flatpak/libportal/issues" +LICENSE = "LGPL-3.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=3000208d539ec061b899bce1d9ce9404" + +SRC_URI = "git://github.com/flatpak/${BPN}.git;protocol=https;branch=main" +SRCREV = "13df0b887a7eb7b0f9b14069561a41f62e813155" +S = "${WORKDIR}/git" + +inherit meson gi-docgen gobject-introspection vala features_check pkgconfig +GIDOCGEN_MESON_OPTION = 'docs' + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +DEPENDS += "glib-2.0 glib-2.0-native gtk+3 gtk4" + +EXTRA_OEMESON = "-Dbackends=gtk3,gtk4" 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..d7487c234c --- /dev/null +++ b/meta/recipes-gnome/librsvg/librsvg/0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch @@ -0,0 +1,47 @@ +From 95b2cd0169cb1b4694c2bce67169b1aa1d5e2be0 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Tue, 21 Sep 2021 16:27:14 +0200 +Subject: [PATCH] Makefile.am: pass rust target to cargo also when not cross + compiling + +Otherwise oe-core's native build doesn't work either. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + Makefile.am | 2 -- + configure.ac | 4 +--- + 2 files changed, 1 insertion(+), 5 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index e93714e..effe5d3 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -137,9 +137,7 @@ else + CARGO_RELEASE_ARGS=--release + endif + +-if CROSS_COMPILING + CARGO_TARGET_ARGS=--target=$(RUST_TARGET) +-endif + + CARGO_VERBOSE = $(cargo_verbose_$(V)) + cargo_verbose_ = $(cargo_verbose_$(AM_DEFAULT_VERBOSITY)) +diff --git a/configure.ac b/configure.ac +index 41590ca..84cd56b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -255,9 +255,7 @@ AC_ARG_VAR(RUST_TARGET, [Set rust target (default=$host)]) + : ${RUST_TARGET:=$host} + + AM_CONDITIONAL([CROSS_COMPILING], [test "x$cross_compiling" = xyes]) +-AS_IF([test "x$cross_compiling" = "xyes"], [ +- RUST_TARGET_SUBDIR="$RUST_TARGET/$RUST_TARGET_SUBDIR" +-]) ++RUST_TARGET_SUBDIR="$RUST_TARGET/$RUST_TARGET_SUBDIR" + AC_SUBST([RUST_TARGET_SUBDIR]) + + dnl =========================================================================== +-- +2.20.1 + diff --git a/meta/recipes-gnome/librsvg/librsvg/0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch b/meta/recipes-gnome/librsvg/librsvg/0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch new file mode 100644 index 0000000000..992ff8dee7 --- /dev/null +++ b/meta/recipes-gnome/librsvg/librsvg/0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch @@ -0,0 +1,51 @@ +From c0b0ef51b3c997a1c20ef9381ba2201ed477f609 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Tue, 21 Sep 2021 16:54:23 +0200 +Subject: [PATCH] system-deps/src/lib.rs: do not probe into harcoded list of + targets + +Oe-core defines custom targets, and this probe fails. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> + +--- + vendor/system-deps/.cargo-checksum.json | 2 +- + vendor/system-deps/src/lib.rs | 16 +--------------- + 2 files changed, 2 insertions(+), 16 deletions(-) + +diff --git a/vendor/system-deps/.cargo-checksum.json b/vendor/system-deps/.cargo-checksum.json +index 862df8b..931748e 100644 +--- a/vendor/system-deps/.cargo-checksum.json ++++ b/vendor/system-deps/.cargo-checksum.json +@@ -1 +1 @@ +-{"files":{"Cargo.toml":"927df7476ebf5f5983169cfd973f4c95b84da17caeb20d33cccf50e326af5316","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"3fe7396637bf9233908f41c6001cfcb00a379225e06e36e508c8b3d7264a8aae","src/lib.rs":"c38fd96ca3233ebee3bb7e37ca8f8a7a2685cdd7fcccf0210eaa879aa91dc684","src/metadata.rs":"657bc1b77e949e4800f9dd808790ffa535820e1658d412121a1da548e0cdd02c","src/test.rs":"9d5f8c1fb7a821352d6ba75cb005ead3e36b4f359e61feb605ab8a36d4fd31f8","src/tests/lib/libteststatic.a":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","src/tests/testanotherlib.pc":"bb4fd942324e6d49ce3becd827aa5c948d1924ca6681904a3695c19b1424eb3c","src/tests/testdata.pc":"43f481e989c03674fed5ef78c6420b3f8d36a2ce001928d86c418d1844acd5e7","src/tests/testlib-2.0.pc":"152eb0c70c14c3d948118408f3d1fd3bb7531b02aa792db85bd957f7db90b45b","src/tests/testlib-3.0.pc":"cd39c2ef88f6828c9291150cc4b624e769abef484674eaebaa4f67979501315f","src/tests/testlib.pc":"75c0d8a5345f65794f583c83e1cf0dbf3385af6e6abea1d61bb86eef707a52db","src/tests/teststaticlib.pc":"77df23f6c7c1d47aff18453b47c87e53ec8a96017546e0a55c8c4d1e13b70134","src/tests/toml-missing-file/no-cargo-toml-here":"6ab4da4b56f15315df6538610cfcd2ba3d0f9a7a8414678ff00ab5a78f7d41fa"},"package":"a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709"} +\ No newline at end of file ++{"files":{"Cargo.toml":"927df7476ebf5f5983169cfd973f4c95b84da17caeb20d33cccf50e326af5316","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"3fe7396637bf9233908f41c6001cfcb00a379225e06e36e508c8b3d7264a8aae","src/lib.rs":"534efc2f977d8c67d5be3a4c3e81093a6c00ab2de1102404166b1573ad96dbd2","src/metadata.rs":"657bc1b77e949e4800f9dd808790ffa535820e1658d412121a1da548e0cdd02c","src/test.rs":"9d5f8c1fb7a821352d6ba75cb005ead3e36b4f359e61feb605ab8a36d4fd31f8","src/tests/lib/libteststatic.a":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","src/tests/testanotherlib.pc":"bb4fd942324e6d49ce3becd827aa5c948d1924ca6681904a3695c19b1424eb3c","src/tests/testdata.pc":"43f481e989c03674fed5ef78c6420b3f8d36a2ce001928d86c418d1844acd5e7","src/tests/testlib-2.0.pc":"152eb0c70c14c3d948118408f3d1fd3bb7531b02aa792db85bd957f7db90b45b","src/tests/testlib-3.0.pc":"cd39c2ef88f6828c9291150cc4b624e769abef484674eaebaa4f67979501315f","src/tests/testlib.pc":"75c0d8a5345f65794f583c83e1cf0dbf3385af6e6abea1d61bb86eef707a52db","src/tests/teststaticlib.pc":"77df23f6c7c1d47aff18453b47c87e53ec8a96017546e0a55c8c4d1e13b70134","src/tests/toml-missing-file/no-cargo-toml-here":"6ab4da4b56f15315df6538610cfcd2ba3d0f9a7a8414678ff00ab5a78f7d41fa"},"package":"a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709"} +diff --git a/vendor/system-deps/src/lib.rs b/vendor/system-deps/src/lib.rs +index 45ab1ce..f87d1ec 100644 +--- a/vendor/system-deps/src/lib.rs ++++ b/vendor/system-deps/src/lib.rs +@@ -800,21 +800,7 @@ impl Config { + } + + fn check_cfg(&self, cfg: &cfg_expr::Expression) -> Result<bool, Error> { +- use cfg_expr::{targets::get_builtin_target_by_triple, Predicate}; +- +- let target = self +- .env +- .get("TARGET") +- .expect("no TARGET env variable defined"); +- let target = get_builtin_target_by_triple(&target) +- .unwrap_or_else(|| panic!("Invalid TARGET: {}", target)); +- +- let res = cfg.eval(|pred| match pred { +- Predicate::Target(tp) => Some(tp.matches(target)), +- _ => None, +- }); +- +- res.ok_or_else(|| Error::UnsupportedCfg(cfg.original().to_string())) ++ Ok(true) + } + } + 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 @@ -From 4e0ce3f22d45033a108cbacca3e5ec6728bd44f3 Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen <jussi.kukkonen@intel.com> -Date: Tue, 11 Aug 2015 16:25:38 +0300 -Subject: [PATCH] configure: add option to enable/disable use of GTK+ - -Distro packagers like predictability and automatically detected optional -dependencies are not predicable. Add a --with-gtk3 option (default to "auto") -for forcibly controlling whether GTK+ will be used or not. - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=712693] - -Signed-off-by: Ross Burton <ross.burton@intel.com> -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> ---- - configure.ac | 17 +++++++++++------ - 1 file changed, 11 insertions(+), 6 deletions(-) - -diff --git a/configure.ac b/configure.ac -index e61a952..c3aae84 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -130,17 +130,22 @@ AC_CHECK_FUNCS(strtok_r) - # GTK - # =========================================================================== - --PKG_CHECK_MODULES([GTK3],[gtk+-3.0 >= $GTK3_REQUIRED],[have_gtk_3=yes],[have_gtk_3=no]) -- - GTK3_BINARY_VERSION= - --if test "$have_gtk_3" = "yes"; then -- GTK3_BINARY_VERSION="`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`" -+AC_MSG_CHECKING([whether to use GTK+ 3]) -+AC_ARG_WITH([gtk3], -+ [AS_HELP_STRING([--without-gtk3],[Don't build GTK+3 tools (default=auto)])], -+ [],[PKG_CHECK_EXISTS([gtk+-3.0 >= $GTK3_REQUIRED],[with_gtk3=yes],[with_gtk3=no])]) -+AC_MSG_RESULT([$with_gtk3]) -+ -+if test "$with_gtk3" = "yes"; then -+ PKG_CHECK_MODULES(GTK3, [gtk+-3.0 >= $GTK3_REQUIRED]) -+ GTK3_BINARY_VERSION="`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`" - fi - - AC_SUBST([GTK3_BINARY_VERSION]) - --AM_CONDITIONAL([HAVE_GTK_3],[test "$have_gtk_3" = "yes"]) -+AM_CONDITIONAL([HAVE_GTK_3],[test "$with_gtk3" = "yes"]) - - dnl =========================================================================== - dnl GDK-Pixbuf SVG loader -@@ -298,6 +303,6 @@ librsvg-$VERSION - Build introspectable bindings: ${found_introspection} - Build Vala bindings: ${enable_vala} - Build GdkPixbuf loader: ${enable_pixbuf_loader} -- GTK+ $GTK3_REQUIRED or later: ${have_gtk_3} -+ GTK+ $GTK3_REQUIRED or later: ${with_gtk_3} - Build miscellaneous tools: ${build_misc_tools} - " --- -2.1.4 - diff --git a/meta/recipes-gnome/librsvg/librsvg_2.40.16.bb b/meta/recipes-gnome/librsvg/librsvg_2.40.16.bb deleted file mode 100644 index ed54d9de39..0000000000 --- a/meta/recipes-gnome/librsvg/librsvg_2.40.16.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "Library for rendering SVG files" -HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/librsvg/" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://rsvg.h;beginline=3;endline=24;md5=20b4113c4909bbf0d67e006778302bc6" - -SECTION = "x11/utils" -DEPENDS = "cairo gdk-pixbuf glib-2.0 libcroco libxml2 pango" -BBCLASSEXTEND = "native" - -inherit autotools pkgconfig gnomebase gtk-doc pixbufcache upstream-version-is-even gobject-introspection - -SRC_URI += "file://gtk-option.patch" - -SRC_URI[archive.md5sum] = "f474fe37177a2bf8050787df2046095c" -SRC_URI[archive.sha256sum] = "d48bcf6b03fa98f07df10332fb49d8c010786ddca6ab34cbba217684f533ff2e" - -CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" - -# The older ld (2.22) on the host (Centos 6.5) doesn't have the -# -Bsymbolic-functions option, we can disable it for native. -EXTRA_OECONF_append_class-native = " --enable-Bsymbolic=auto" - -PACKAGECONFIG ??= "gdkpixbuf" -# The gdk-pixbuf loader -PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native" -# GTK+ test application (rsvg-view) -PACKAGECONFIG[gtk] = "--with-gtk3,--without-gtk3,gtk+3" - -do_install_append() { - # Loadable modules don't need .a or .la on Linux - rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la -} - -PACKAGES =+ "librsvg-gtk rsvg" -FILES_rsvg = "${bindir}/rsvg* \ - ${datadir}/pixmaps/svg-viewer.svg \ - ${datadir}/themes" -FILES_librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so" - -PIXBUF_PACKAGES = "librsvg-gtk" - -PIXBUFCACHE_SYSROOT_DEPS_append_class-native = " harfbuzz-native:do_populate_sysroot_setscene pango-native:do_populate_sysroot_setscene icu-native:do_populate_sysroot_setscene" diff --git a/meta/recipes-gnome/librsvg/librsvg_2.54.5.bb b/meta/recipes-gnome/librsvg/librsvg_2.54.5.bb new file mode 100644 index 0000000000..59278d1b16 --- /dev/null +++ b/meta/recipes-gnome/librsvg/librsvg_2.54.5.bb @@ -0,0 +1,77 @@ +SUMMARY = "Library for rendering SVG files" +DESCRIPTION = "A small library to render Scalable Vector Graphics (SVG), \ +associated with the GNOME Project. It renders SVG files to Cairo surfaces. \ +Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to \ +the screen or to generate output for printing." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/librsvg" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/librsvg/issues" + +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ + " + +SECTION = "x11/utils" +DEPENDS = "cairo gdk-pixbuf glib-2.0 libxml2 pango python3-docutils-native" +BBCLASSEXTEND = "native nativesdk" + +inherit cargo_common gnomebase pixbufcache upstream-version-is-even gobject-introspection rust vala gi-docgen + +SRC_URI += "file://0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch \ + file://0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch \ + " + +SRC_URI[archive.sha256sum] = "4f03190f45324d1fa1f52a79dfcded1f64eaf49b3ae2f88eedab0c07617cae6e" + +# librsvg is still autotools-based, but is calling cargo from its automake-driven makefiles +# so we cannot use cargo class directly, but still need bits and pieces from it +# for cargo to be happy +BASEDEPENDS:append = " cargo-native" + +export RUST_BACKTRACE = "full" +export RUSTFLAGS + +export RUST_TARGET = "${RUST_HOST_SYS}" + +RUSTFLAGS:append:mips = " --cfg crossbeam_no_atomic_64" +RUSTFLAGS:append:mipsel = " --cfg crossbeam_no_atomic_64" +RUSTFLAGS:append:powerpc = " --cfg crossbeam_no_atomic_64" +RUSTFLAGS:append:riscv32 = " --cfg crossbeam_no_atomic_64" + +CARGO_DISABLE_BITBAKE_VENDORING = "1" +do_configure[postfuncs] += "cargo_common_do_configure" + +inherit rust-target-config + +# rust-cross writes the target linker binary into target json definition without any flags. +# This breaks here because the linker isn't going to work without at least knowing where +# the sysroot is. So copy the json to workdir, and patch in the path to wrapper from rust class +# which supplies the needed flags. +do_compile:prepend() { + sed -ie 's,"linker": ".*","linker": "${RUST_TARGET_CC}",g' ${RUST_TARGETS_DIR}/${RUST_HOST_SYS}.json +} + +# Issue only on windows +CVE_CHECK_IGNORE += "CVE-2018-1000041" + +CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" + +PACKAGECONFIG ??= "gdkpixbuf" +PACKAGECONFIG:append:class-target = " ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vala', '', d)}" +# The gdk-pixbuf loader +PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native" +PACKAGECONFIG[vala] = "--enable-vala,--disable-vala" + +do_install:append() { + # Loadable modules don't need .a or .la on Linux + rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la +} + +PACKAGES =+ "librsvg-gtk rsvg" +FILES:rsvg = "${bindir}/rsvg* \ + ${datadir}/pixmaps/svg-viewer.svg \ + ${datadir}/themes" +FILES:librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so \ + ${datadir}/thumbnailers/librsvg.thumbnailer" +RRECOMMENDS:librsvg-gtk = "gdk-pixbuf-bin" + +PIXBUF_PACKAGES = "librsvg-gtk" diff --git a/meta/recipes-gnome/libsecret/libsecret_0.18.5.bb b/meta/recipes-gnome/libsecret/libsecret_0.18.5.bb deleted file mode 100644 index e4d316b127..0000000000 --- a/meta/recipes-gnome/libsecret/libsecret_0.18.5.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "libsecret is a library for storing and retrieving passwords and other secrets" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6" - -inherit gnomebase gtk-doc vala gobject-introspection - -DEPENDS += "glib-2.0 libgcrypt gettext-native intltool-native" - -EXTRA_OECONF += "--disable-manpages" - -SRC_URI[archive.md5sum] = "2d688825921313da8731313b0a7f394c" -SRC_URI[archive.sha256sum] = "9ce7bd8dd5831f2786c935d82638ac428fa085057cc6780aba0e39375887ccb3" - -# http://errors.yoctoproject.org/Errors/Details/20228/ -ARM_INSTRUCTION_SET = "arm" - -# vapigen.m4 bundled with the tarball does not yet have our cross-compilation fixes -do_configure_prepend() { - rm -f ${S}/build/m4/vapigen.m4 -} - -# Secret-1: poky/build-mips64/tmp/work/mips64-poky-linux/libgpg-error/1.19-r0/libgpg-error-1.19/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed. -# qemu: uncaught target signal 6 (Aborted) - core dumped -EXTRA_OECONF_append_mips64 = " --disable-introspection" - diff --git a/meta/recipes-gnome/libsecret/libsecret_0.20.5.bb b/meta/recipes-gnome/libsecret/libsecret_0.20.5.bb new file mode 100644 index 0000000000..9b09c3bee4 --- /dev/null +++ b/meta/recipes-gnome/libsecret/libsecret_0.20.5.bb @@ -0,0 +1,26 @@ +SUMMARY = "libsecret is a library for storing and retrieving passwords and other secrets" +DESCRIPTION = "A GObject-based library for accessing the Secret Service API of \ +the freedesktop.org project, a cross-desktop effort to access passwords, \ +tokens and other types of secrets. libsecret provides a convenient wrapper \ +for these methods so consumers do not have to call the low-level DBus methods." +LICENSE = "LGPL-2.1-only" +HOMEPAGE = "https://github.com/GNOME/libsecret" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/libsecret/issues" +LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gi-docgen vala gobject-introspection manpages + +DEPENDS += "glib-2.0 libgcrypt gettext-native" + +SRC_URI[archive.sha256sum] = "3fb3ce340fcd7db54d87c893e69bfc2b1f6e4d4b279065ffe66dac9f0fd12b4d" + +GTKDOC_MESON_OPTION = 'gtk_doc' + +PACKAGECONFIG[manpages] = "-Dmanpage=true,-Dmanpage=false,libxslt-native xmlto-native" + +# http://errors.yoctoproject.org/Errors/Details/20228/ +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" +ARM_INSTRUCTION_SET:armv6 = "arm" diff --git a/meta/recipes-gnome/libwnck/libwnck3_3.20.1.bb b/meta/recipes-gnome/libwnck/libwnck3_3.20.1.bb deleted file mode 100644 index d3c3a866fd..0000000000 --- a/meta/recipes-gnome/libwnck/libwnck3_3.20.1.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Window navigation construction toolkit" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -BPN = "libwnck" - -SECTION = "x11/libs" -DEPENDS = "intltool-native gtk+3 gdk-pixbuf-native libxres" - -PACKAGECONFIG ??= "startup-notification" -PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" - -inherit gnomebase gobject-introspection -SRC_URI[archive.md5sum] = "487938d65d4bfae1f2501052b1bd7492" -SRC_URI[archive.sha256sum] = "1cb03716bc477058dfdf3ebfa4f534de3b13b1aa067fcd064d0b7813291cba72" - -inherit distro_features_check -# libxres means x11 only -REQUIRED_DISTRO_FEATURES = "x11" |