diff mbox series

[meta-gnome,PATCHv2,3/3] convey: add recipe

Message ID 20260922072619.228493-3-f_l_k@t-online.de
State Under Review
Headers show
Series [meta-gnome,PATCHv2,1/3] rclone: add recipe | expand

Commit Message

Markus Volk Sept. 22, 2026, 7:26 a.m. UTC
Convey is a fork of geary ported to GTK4, libadwaita, gcr-4 and
webkitgtk 6.0. The patches keep build paths out of the binary, drop
host checks that do not apply when cross-compiling and let the vala-unit
subproject find g-ir-compiler through the cross file.

AI-Generated: Uses Claude Code (Claude Fable 5.1)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 ...-not-store-build-paths-in-the-binary.patch | 40 +++++++++++++
 ...ck-for-the-iso-xml-files-and-the-C.u.patch | 39 ++++++++++++
 ...k-up-g-ir-compiler-with-find_program.patch | 34 +++++++++++
 .../convey/convey_50.2.bb                     | 59 +++++++++++++++++++
 4 files changed, 172 insertions(+)
 create mode 100644 meta-gnome/recipes-connectivity/convey/convey/0001-meson-do-not-store-build-paths-in-the-binary.patch
 create mode 100644 meta-gnome/recipes-connectivity/convey/convey/0002-meson-do-not-check-for-the-iso-xml-files-and-the-C.u.patch
 create mode 100644 meta-gnome/recipes-connectivity/convey/convey/0003-vala-unit-look-up-g-ir-compiler-with-find_program.patch
 create mode 100644 meta-gnome/recipes-connectivity/convey/convey_50.2.bb

Comments

Khem Raj Sept. 23, 2026, 5:56 a.m. UTC | #1
when built for qemuarm64 on an arm64 build host it ends up with

https://errors.yoctoproject.org/Errors/Details/972887/

On Tue, Sep 22, 2026 at 12:26 AM Markus Volk via lists.openembedded.org
<f_l_k=t-online.de@lists.openembedded.org> wrote:

> Convey is a fork of geary ported to GTK4, libadwaita, gcr-4 and
> webkitgtk 6.0. The patches keep build paths out of the binary, drop
> host checks that do not apply when cross-compiling and let the vala-unit
> subproject find g-ir-compiler through the cross file.
>
> AI-Generated: Uses Claude Code (Claude Fable 5.1)
> Signed-off-by: Markus Volk <f_l_k@t-online.de>
> ---
>  ...-not-store-build-paths-in-the-binary.patch | 40 +++++++++++++
>  ...ck-for-the-iso-xml-files-and-the-C.u.patch | 39 ++++++++++++
>  ...k-up-g-ir-compiler-with-find_program.patch | 34 +++++++++++
>  .../convey/convey_50.2.bb                     | 59 +++++++++++++++++++
>  4 files changed, 172 insertions(+)
>  create mode 100644
> meta-gnome/recipes-connectivity/convey/convey/0001-meson-do-not-store-build-paths-in-the-binary.patch
>  create mode 100644
> meta-gnome/recipes-connectivity/convey/convey/0002-meson-do-not-check-for-the-iso-xml-files-and-the-C.u.patch
>  create mode 100644
> meta-gnome/recipes-connectivity/convey/convey/0003-vala-unit-look-up-g-ir-compiler-with-find_program.patch
>  create mode 100644 meta-gnome/recipes-connectivity/convey/convey_50.2.bb
>
> diff --git
> a/meta-gnome/recipes-connectivity/convey/convey/0001-meson-do-not-store-build-paths-in-the-binary.patch
> b/meta-gnome/recipes-connectivity/convey/convey/0001-meson-do-not-store-build-paths-in-the-binary.patch
> new file mode 100644
> index 0000000000..91e21fd0ec
> --- /dev/null
> +++
> b/meta-gnome/recipes-connectivity/convey/convey/0001-meson-do-not-store-build-paths-in-the-binary.patch
> @@ -0,0 +1,40 @@
> +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
> +From: Markus Volk <f_l_k@t-online.de>
> +Date: Tue, 22 Sep 2026 07:43:41 +0200
> +Subject: [PATCH] meson: do not store build paths in the binary
> +
> +The build root and source root are only used when convey runs
> +uninstalled, but storing them puts TMPDIR into the binary and breaks
> +reproducibility. Point them to /usr/src and the schema directory to the
> +installed location instead.
> +
> +AI-Generated: Uses Claude Code (Claude Fable 5.1)
> +Upstream-Status: Inappropriate [oe-specific]
> +---
> + src/meson.build | 6 +++---
> + 1 file changed, 3 insertions(+), 3 deletions(-)
> +
> +diff --git a/src/meson.build b/src/meson.build
> +index 87690ada..ce722126 100644
> +--- a/src/meson.build
> ++++ b/src/meson.build
> +@@ -4,8 +4,8 @@ conf = configuration_data()
> + conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
> + conf.set_quoted('G_LOG_DOMAIN', meson.project_name())
> + conf.set_quoted('APP_ID', convey_id)
> +-conf.set_quoted('BUILD_ROOT_DIR', meson.project_build_root())
> +-conf.set_quoted('GSETTINGS_DIR', meson.project_build_root() / 'desktop')
> ++conf.set_quoted('BUILD_ROOT_DIR', '/usr/src')
> ++conf.set_quoted('GSETTINGS_DIR', data_dir / 'glib-2.0' / 'schemas')
> + conf.set_quoted('INSTALL_PREFIX', convey_prefix)
> + conf.set_quoted('ISO_CODE_3166_XML', iso_3166_xml)
> + conf.set_quoted('ISO_CODE_639_XML', iso_639_xml)
> +@@ -14,7 +14,7 @@ conf.set_quoted('NAME_SUFFIX', name_suffix)
> + conf.set_quoted('PLUGINS_DIR', plugins_dir)
> + conf.set_quoted('PROFILE', profile)
> + conf.set_quoted('REVNO', revno)
> +-conf.set_quoted('SOURCE_ROOT_DIR', meson.project_source_root())
> ++conf.set_quoted('SOURCE_ROOT_DIR', '/usr/src')
> + conf.set_quoted('VERSION', convey_version)
> + conf.set_quoted('WEB_EXTENSIONS_DIR', web_extensions_dir)
> + config_h = configure_file(output: 'config.h', configuration: conf)
> diff --git
> a/meta-gnome/recipes-connectivity/convey/convey/0002-meson-do-not-check-for-the-iso-xml-files-and-the-C.u.patch
> b/meta-gnome/recipes-connectivity/convey/convey/0002-meson-do-not-check-for-the-iso-xml-files-and-the-C.u.patch
> new file mode 100644
> index 0000000000..15836a7c52
> --- /dev/null
> +++
> b/meta-gnome/recipes-connectivity/convey/convey/0002-meson-do-not-check-for-the-iso-xml-files-and-the-C.u.patch
> @@ -0,0 +1,39 @@
> +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
> +From: Markus Volk <f_l_k@t-online.de>
> +Date: Tue, 22 Sep 2026 09:15:56 +0200
> +Subject: [PATCH] meson: do not check for the iso xml files and the C.utf8
> + locale during build
> +
> +The iso xml files are needed at runtime and live in the staging area
> +when cross-compiling, and the locale check runs the host's locale
> +command against the host's locales. Neither says anything about the
> +target, so drop both build-time checks.
> +
> +AI-Generated: Uses Claude Code (Claude Fable 5.1)
> +Upstream-Status: Pending
> +---
> + meson.build | 11 -----------
> + 1 file changed, 11 deletions(-)
> +
> +diff --git a/meson.build b/meson.build
> +index dfd919a7..51ab9015 100644
> +--- a/meson.build
> ++++ b/meson.build
> +@@ -195,17 +195,6 @@ if iso_3166_xml == ''
> +   iso_3166_xml = iso_codes_dir / 'iso_3166.xml'
> + endif
> +
> +-files(iso_639_xml, iso_3166_xml) # Check to make sure these exist
> +-
> +-# Make sure the locale C.UTF-8 is installed on the system
> +-
> +-c_utf8_check = run_command('locale', '-a', check: true).stdout()
> +-have_c_utf8 = 'C.utf8' in c_utf8_check.split('\n')
> +-
> +-if not have_c_utf8
> +-  warning('C.utf8 locale not available on this system.')
> +-endif
> +-
> + # Post-install script
> + gnome.post_install(
> +   gtk_update_icon_cache: true,
> diff --git
> a/meta-gnome/recipes-connectivity/convey/convey/0003-vala-unit-look-up-g-ir-compiler-with-find_program.patch
> b/meta-gnome/recipes-connectivity/convey/convey/0003-vala-unit-look-up-g-ir-compiler-with-find_program.patch
> new file mode 100644
> index 0000000000..a07887c67c
> --- /dev/null
> +++
> b/meta-gnome/recipes-connectivity/convey/convey/0003-vala-unit-look-up-g-ir-compiler-with-find_program.patch
> @@ -0,0 +1,34 @@
> +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
> +From: Markus Volk <f_l_k@t-online.de>
> +Date: Tue, 22 Sep 2026 09:15:10 +0200
> +Subject: [PATCH] vala-unit: look up g-ir-compiler with find_program
> +
> +The path taken from the g_ir_compiler pkg-config variable is the
> +target path and is not usable when cross-compiling. find_program
> +honours the cross file, which is where the wrapper is set.
> +
> +AI-Generated: Uses Claude Code (Claude Fable 5.1)
> +Upstream-Status: Pending
> +---
> + subprojects/vala-unit/meson.build | 8 +-------
> + 1 file changed, 1 insertion(+), 7 deletions(-)
> +
> +diff --git a/subprojects/vala-unit/meson.build
> b/subprojects/vala-unit/meson.build
> +index a1822aa8..d04cc307 100644
> +--- a/subprojects/vala-unit/meson.build
> ++++ b/subprojects/vala-unit/meson.build
> +@@ -31,13 +31,7 @@ gee = dependency('gee-0.8')
> + gio = dependency('gio-2.0')
> + glib = dependency('glib-2.0', version: '>=' + target_glib)
> + gobject = dependency('gobject-2.0')
> +-gobject_introspection = dependency('gobject-introspection-1.0',
> required: false)
> +-
> +-if gobject_introspection.found()
> +-  g_ir_compiler = gobject_introspection.get_variable('g_ir_compiler')
> +-else
> +-  g_ir_compiler = find_program('g-ir-compiler')
> +-endif
> ++g_ir_compiler = find_program('g-ir-compiler')
> + if enable_valadoc
> +   valadoc = find_program('valadoc')
> + endif
> diff --git a/meta-gnome/recipes-connectivity/convey/convey_50.2.bb
> b/meta-gnome/recipes-connectivity/convey/convey_50.2.bb
> new file mode 100644
> index 0000000000..2a28f5aef5
> --- /dev/null
> +++ b/meta-gnome/recipes-connectivity/convey/convey_50.2.bb
> @@ -0,0 +1,59 @@
> +SUMMARY = "Email application built around conversations for the GNOME
> desktop"
> +HOMEPAGE = "https://gitlab.gnome.org/donnybeelo/convey"
> +SECTION = "network"
> +LICENSE = "LGPL-2.1-only"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=2a2244d5a13871ad950c55877546a6a2"
> +
> +DEPENDS = " \
> +    appstream-native \
> +    cairo \
> +    desktop-file-utils-native \
> +    enchant2 \
> +    folks \
> +    gcr \
> +    gmime \
> +    gnome-online-accounts \
> +    gstreamer1.0 \
> +    gstreamer1.0-plugins-bad \
> +    gtk4 \
> +    icu \
> +    iso-codes \
> +    json-glib \
> +    libadwaita \
> +    libpeas \
> +    libsecret \
> +    libsoup \
> +    libstemmer \
> +    libxml2 \
> +    sqlite3 \
> +    webkitgtk \
> +"
> +
> +inherit meson pkgconfig mime-xdg gsettings gtk-icon-cache
> gobject-introspection gnome-help vala features_check
> +
> +SRC_URI = " \
> +    git://
> gitlab.gnome.org/donnybeelo/convey.git;protocol=https;branch=main;tag=${PV}-1
> <http://gitlab.gnome.org/donnybeelo/convey.git;protocol=https;branch=main;tag=$%7BPV%7D-1>
> \
> +    file://0001-meson-do-not-store-build-paths-in-the-binary.patch \
> +
> file://0002-meson-do-not-check-for-the-iso-xml-files-and-the-C.u.patch \
> +    file://0003-vala-unit-look-up-g-ir-compiler-with-find_program.patch \
> +"
> +SRCREV = "2a0b661bf1d7fde57b6dfcb7e09ce33d7b4b9f42"
> +
> +REQUIRED_DISTRO_FEATURES = "gobject-introspection-data opengl"
> +
> +GTKIC_VERSION = "4"
> +GIR_MESON_OPTION = ""
> +
> +EXTRA_OEMESON = " \
> +    -Dprofile=release \
> +    -Drevno=${PV} \
> +    -Diso_639_xml=${datadir}/xml/iso-codes/iso_639.xml \
> +    -Diso_3166_xml=${datadir}/xml/iso-codes/iso_3166.xml \
> +    -Dvaladoc=disabled \
> +"
> +
> +PACKAGECONFIG ??= ""
> +PACKAGECONFIG[libunwind] =
> "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"
> +PACKAGECONFIG[tnef] = "-Dtnef=enabled,-Dtnef=disabled,libytnef"
> +
> +FILES:${PN} += "${datadir}"
> --
> 2.55.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#130175):
> https://lists.openembedded.org/g/openembedded-devel/message/130175
> Mute This Topic: https://lists.openembedded.org/mt/121371091/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
diff mbox series

Patch

diff --git a/meta-gnome/recipes-connectivity/convey/convey/0001-meson-do-not-store-build-paths-in-the-binary.patch b/meta-gnome/recipes-connectivity/convey/convey/0001-meson-do-not-store-build-paths-in-the-binary.patch
new file mode 100644
index 0000000000..91e21fd0ec
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/convey/convey/0001-meson-do-not-store-build-paths-in-the-binary.patch
@@ -0,0 +1,40 @@ 
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Tue, 22 Sep 2026 07:43:41 +0200
+Subject: [PATCH] meson: do not store build paths in the binary
+
+The build root and source root are only used when convey runs
+uninstalled, but storing them puts TMPDIR into the binary and breaks
+reproducibility. Point them to /usr/src and the schema directory to the
+installed location instead.
+
+AI-Generated: Uses Claude Code (Claude Fable 5.1)
+Upstream-Status: Inappropriate [oe-specific]
+---
+ src/meson.build | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index 87690ada..ce722126 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -4,8 +4,8 @@ conf = configuration_data()
+ conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
+ conf.set_quoted('G_LOG_DOMAIN', meson.project_name())
+ conf.set_quoted('APP_ID', convey_id)
+-conf.set_quoted('BUILD_ROOT_DIR', meson.project_build_root())
+-conf.set_quoted('GSETTINGS_DIR', meson.project_build_root() / 'desktop')
++conf.set_quoted('BUILD_ROOT_DIR', '/usr/src')
++conf.set_quoted('GSETTINGS_DIR', data_dir / 'glib-2.0' / 'schemas')
+ conf.set_quoted('INSTALL_PREFIX', convey_prefix)
+ conf.set_quoted('ISO_CODE_3166_XML', iso_3166_xml)
+ conf.set_quoted('ISO_CODE_639_XML', iso_639_xml)
+@@ -14,7 +14,7 @@ conf.set_quoted('NAME_SUFFIX', name_suffix)
+ conf.set_quoted('PLUGINS_DIR', plugins_dir)
+ conf.set_quoted('PROFILE', profile)
+ conf.set_quoted('REVNO', revno)
+-conf.set_quoted('SOURCE_ROOT_DIR', meson.project_source_root())
++conf.set_quoted('SOURCE_ROOT_DIR', '/usr/src')
+ conf.set_quoted('VERSION', convey_version)
+ conf.set_quoted('WEB_EXTENSIONS_DIR', web_extensions_dir)
+ config_h = configure_file(output: 'config.h', configuration: conf)
diff --git a/meta-gnome/recipes-connectivity/convey/convey/0002-meson-do-not-check-for-the-iso-xml-files-and-the-C.u.patch b/meta-gnome/recipes-connectivity/convey/convey/0002-meson-do-not-check-for-the-iso-xml-files-and-the-C.u.patch
new file mode 100644
index 0000000000..15836a7c52
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/convey/convey/0002-meson-do-not-check-for-the-iso-xml-files-and-the-C.u.patch
@@ -0,0 +1,39 @@ 
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Tue, 22 Sep 2026 09:15:56 +0200
+Subject: [PATCH] meson: do not check for the iso xml files and the C.utf8
+ locale during build
+
+The iso xml files are needed at runtime and live in the staging area
+when cross-compiling, and the locale check runs the host's locale
+command against the host's locales. Neither says anything about the
+target, so drop both build-time checks.
+
+AI-Generated: Uses Claude Code (Claude Fable 5.1)
+Upstream-Status: Pending
+---
+ meson.build | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index dfd919a7..51ab9015 100644
+--- a/meson.build
++++ b/meson.build
+@@ -195,17 +195,6 @@ if iso_3166_xml == ''
+   iso_3166_xml = iso_codes_dir / 'iso_3166.xml'
+ endif
+ 
+-files(iso_639_xml, iso_3166_xml) # Check to make sure these exist
+-
+-# Make sure the locale C.UTF-8 is installed on the system
+-
+-c_utf8_check = run_command('locale', '-a', check: true).stdout()
+-have_c_utf8 = 'C.utf8' in c_utf8_check.split('\n')
+-
+-if not have_c_utf8
+-  warning('C.utf8 locale not available on this system.')
+-endif
+-
+ # Post-install script
+ gnome.post_install(
+   gtk_update_icon_cache: true,
diff --git a/meta-gnome/recipes-connectivity/convey/convey/0003-vala-unit-look-up-g-ir-compiler-with-find_program.patch b/meta-gnome/recipes-connectivity/convey/convey/0003-vala-unit-look-up-g-ir-compiler-with-find_program.patch
new file mode 100644
index 0000000000..a07887c67c
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/convey/convey/0003-vala-unit-look-up-g-ir-compiler-with-find_program.patch
@@ -0,0 +1,34 @@ 
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Tue, 22 Sep 2026 09:15:10 +0200
+Subject: [PATCH] vala-unit: look up g-ir-compiler with find_program
+
+The path taken from the g_ir_compiler pkg-config variable is the
+target path and is not usable when cross-compiling. find_program
+honours the cross file, which is where the wrapper is set.
+
+AI-Generated: Uses Claude Code (Claude Fable 5.1)
+Upstream-Status: Pending
+---
+ subprojects/vala-unit/meson.build | 8 +-------
+ 1 file changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/subprojects/vala-unit/meson.build b/subprojects/vala-unit/meson.build
+index a1822aa8..d04cc307 100644
+--- a/subprojects/vala-unit/meson.build
++++ b/subprojects/vala-unit/meson.build
+@@ -31,13 +31,7 @@ gee = dependency('gee-0.8')
+ gio = dependency('gio-2.0')
+ glib = dependency('glib-2.0', version: '>=' + target_glib)
+ gobject = dependency('gobject-2.0')
+-gobject_introspection = dependency('gobject-introspection-1.0', required: false)
+-
+-if gobject_introspection.found()
+-  g_ir_compiler = gobject_introspection.get_variable('g_ir_compiler')
+-else
+-  g_ir_compiler = find_program('g-ir-compiler')
+-endif
++g_ir_compiler = find_program('g-ir-compiler')
+ if enable_valadoc
+   valadoc = find_program('valadoc')
+ endif
diff --git a/meta-gnome/recipes-connectivity/convey/convey_50.2.bb b/meta-gnome/recipes-connectivity/convey/convey_50.2.bb
new file mode 100644
index 0000000000..2a28f5aef5
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/convey/convey_50.2.bb
@@ -0,0 +1,59 @@ 
+SUMMARY = "Email application built around conversations for the GNOME desktop"
+HOMEPAGE = "https://gitlab.gnome.org/donnybeelo/convey"
+SECTION = "network"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2a2244d5a13871ad950c55877546a6a2"
+
+DEPENDS = " \
+    appstream-native \
+    cairo \
+    desktop-file-utils-native \
+    enchant2 \
+    folks \
+    gcr \
+    gmime \
+    gnome-online-accounts \
+    gstreamer1.0 \
+    gstreamer1.0-plugins-bad \
+    gtk4 \
+    icu \
+    iso-codes \
+    json-glib \
+    libadwaita \
+    libpeas \
+    libsecret \
+    libsoup \
+    libstemmer \
+    libxml2 \
+    sqlite3 \
+    webkitgtk \
+"
+
+inherit meson pkgconfig mime-xdg gsettings gtk-icon-cache gobject-introspection gnome-help vala features_check
+
+SRC_URI = " \
+    git://gitlab.gnome.org/donnybeelo/convey.git;protocol=https;branch=main;tag=${PV}-1 \
+    file://0001-meson-do-not-store-build-paths-in-the-binary.patch \
+    file://0002-meson-do-not-check-for-the-iso-xml-files-and-the-C.u.patch \
+    file://0003-vala-unit-look-up-g-ir-compiler-with-find_program.patch \
+"
+SRCREV = "2a0b661bf1d7fde57b6dfcb7e09ce33d7b4b9f42"
+
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data opengl"
+
+GTKIC_VERSION = "4"
+GIR_MESON_OPTION = ""
+
+EXTRA_OEMESON = " \
+    -Dprofile=release \
+    -Drevno=${PV} \
+    -Diso_639_xml=${datadir}/xml/iso-codes/iso_639.xml \
+    -Diso_3166_xml=${datadir}/xml/iso-codes/iso_3166.xml \
+    -Dvaladoc=disabled \
+"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[libunwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"
+PACKAGECONFIG[tnef] = "-Dtnef=enabled,-Dtnef=disabled,libytnef"
+
+FILES:${PN} += "${datadir}"