diff mbox series

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

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

Commit Message

Markus Volk Sept. 22, 2026, 7:22 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)
---
 ...-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 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}"