temp/geary: upgrade to 3.38.2+git20210118+7bb025-0pureos3 (MR 2035)

Latest patches from Purism, including some they backported from
upstream.

fixes #1058

The debian dir was dropped from the archives in this fork repo, but the
number of patches has been dramatically reduced.

A new mechanism (thanks @ollieparanoid) is added here to compare the
list of patches stored in pmaports when this package was upgraded to the
list of patches in purism's repo @ some commit this package uses, so
that any difference can be detected (pacakge will fail to build). If
there's a mismatch, the patches from this repo should be updated/added
to match what's in purism's repo @ the commit, and purism_patches.series
should be updated to match the debian/patches/series file in the purism
repo.
This commit is contained in:
Clayton Craft 2021-03-17 14:51:22 -07:00 committed by Bart Ribbers
parent 3f51f87c72
commit ffa73f09af
No known key found for this signature in database
GPG key ID: 699D16185DAFAE61
7 changed files with 275 additions and 12 deletions

View file

@ -0,0 +1,55 @@
From: =?utf-8?q?Guido_G=C3=BCnther?= <agx@sigxcpu.org>
Date: Tue, 23 Feb 2021 19:33:35 +0100
Subject: Geary.Imap.FolderSession: Don't crash on empty preview
If we didn't set a preview we crash like
*[wrn] 12:54:59.0908 geary:application-certificate-manager.vala:74: No GCR slot URIs found, GCR certificate pinning unavailable
*[wrn] 12:55:10.0501 Geary: [goa_account_1614080076_2] [imap] [GearyImapClientSession(selected:INBOX selected RW, GearyImapClientConnection(0001/imap.example.com:993/up)), Imap.Folder(>INBOX), ro: false, permanent_flags: \Answered \Flagged \* \Seen \Deleted \Draft, accepts_user_flags: true] GearyImapFolderSession: No preview specifiers "body.peek[1]<0.256>" and "body.peek[1.mime]" found
*[wrn] 12:55:10.0502 Geary: [goa_account_1614080076_2] [imap] [GearyImapClientSession(selected:INBOX selected RW, GearyImapClientConnection(0001/imap.example.com:993/up)), Imap.Folder(>INBOX), ro: false, permanent_flags: \Answered \Flagged \* \Seen \Deleted \Draft, accepts_user_flags: true] GearyImapFolderSession: - has body[1.mime]
*[wrn] 12:55:10.0502 Geary: [goa_account_1614080076_2] [imap] [GearyImapClientSession(selected:INBOX selected RW, GearyImapClientConnection(0001/imap.example.com:993/up)), Imap.Folder(>INBOX), ro: false, permanent_flags: \Answered \Flagged \* \Seen \Deleted \Draft, accepts_user_flags: true] GearyImapFolderSession: - has body[header.fields (references)]
*[wrn] 12:55:10.0502 Geary: [goa_account_1614080076_2] [imap] [GearyImapClientSession(selected:INBOX selected RW, GearyImapClientConnection(0001/imap.example.com:993/up)), Imap.Folder(>INBOX), ro: false, permanent_flags: \Answered \Flagged \* \Seen \Deleted \Draft, accepts_user_flags: true] GearyImapFolderSession: - has body[1]<0>
![crt] 12:55:10.0502 GLib:Did not see expected message GLib-GObject-WARNING **: g_object_weak_unref: couldn't find weak ref *
![crt] 12:55:10.0502 geary:geary_email_set_message_preview: assertion 'GEARY_RF_C822_IS_PREVIEW_TEXT (preview)' failed
(gdb) bt
#0 __GI_raise (sig=sig@entry=5) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x0000ffff919a71d8 in _g_log_abort (breakpoint=1) at ../../../glib/gmessages.c:554
#2 g_logvPython Exception <class 'gdb.MemoryError'> Cannot access memory at address 0x8:
(log_domain=0xffff91f1d908 "geary", log_level=10, format=<optimized out>, args=#3 0x0000ffff919a7440 in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>)
at ../../../glib/gmessages.c:1415
#4 0x0000ffff91eabaf8 in geary_imap_folder_session_fetched_data_to_email
(error=0xffff11aeb2f0, preview_charset_specifier=0xaaaafe108120 [GearyImapFetchBodyDataSpecifier], preview_specifier=0xaaaafe0ec070 [GearyImapFetchBodyDataSpecifier], body_specifier=0x0, header_specifiers_length1=<optimized out>, header_specifiers=0x0, required_fields=927, fetched_data=<optimized out>, uid=0xaaaafe48de90 [GearyImapUID], self=0xaaaafe1059b0 [GearyImapFolderSession])
at src/engine/libgeary-engine.a.p/imap/api/imap-folder-session.c:6795
#5 __lambda103_ (error=0xffff11aeb360, _data28_=0xaaaafdf2d760) at src/engine/libgeary-engine.a.p/imap/api/imap-folder-session.c:4541
#6 ___lambda103__geary_nonblocking_concurrent_concurrent_callback (cancellable=<optimized out>, self=0xaaaafdf2d760, error=0xffff11aeb360) at src/engine/libgeary-engine.a.p/imap/api/imap-folder-session.c:4640
#7 0x0000ffff91e412d0 in geary_nonblocking_concurrent_concurrent_operation_execute (self=0xaaaafe48f6d0 [GearyNonblockingConcurrentConcurrentOperation])
at src/engine/libgeary-engine.a.p/nonblocking/nonblocking-concurrent.c:672
#8 geary_nonblocking_concurrent_on_work_ready (op=0xaaaafe48f6d0 [GearyNonblockingConcurrentConcurrentOperation], self=<optimized out>)
at src/engine/libgeary-engine.a.p/nonblocking/nonblocking-concurrent.c:501
#9 _geary_nonblocking_concurrent_on_work_ready_gfunc (data=0xaaaafe48f6d0, self=<optimized out>) at src/engine/libgeary-engine.a.p/nonblocking/nonblocking-concurrent.c:296
#10 0x0000ffff919ca3c8 in g_thread_pool_thread_proxy (data=<optimized out>) at ../../../glib/gthreadpool.c:354
#11 0x0000ffff919c98f4 in g_thread_proxy (data=0xaaaafde2e120) at ../../../glib/gthread.c:820
#12 0x0000ffff8b437628 in start_thread (arg=0xffff11aeb520) at pthread_create.c:477
#13 0x0000ffff916a801c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78
Create an empty preview to avoid that.
(cherry picked from commit b57567ff9eb746e71975cf1e2bbd8dcd9d62f0f1)
---
src/engine/imap/api/imap-folder-session.vala | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/engine/imap/api/imap-folder-session.vala b/src/engine/imap/api/imap-folder-session.vala
index 3b777ee..bf4cd2b 100644
--- a/src/engine/imap/api/imap-folder-session.vala
+++ b/src/engine/imap/api/imap-folder-session.vala
@@ -1037,7 +1037,7 @@ private class Geary.Imap.FolderSession : Geary.Imap.SessionObject {
preview_specifier
);
- RFC822.PreviewText? preview = null;
+ RFC822.PreviewText preview = new RFC822.PreviewText(new Memory.StringBuffer(""));
if (preview_headers != null && preview_headers.size > 0 &&
preview_body != null && preview_body.size > 0) {
preview = new RFC822.PreviewText.with_header(

View file

@ -0,0 +1,26 @@
From 0475949ee1a41e3a2b24681c6799f584c508ca0d Mon Sep 17 00:00:00 2001
From: Yuri Edward <yuri6037@outlook.com>
Date: Sat, 9 Jan 2021 22:24:11 +0100
Subject: [PATCH 1/3] Bump version of libhandy to 1.0 in order to fix issue
#305
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 85f256e9..3f2772d8 100644
--- a/meson.build
+++ b/meson.build
@@ -88,7 +88,7 @@ gthread = dependency('gthread-2.0', version: '>=' + target_glib)
iso_codes = dependency('iso-codes')
javascriptcoregtk = dependency('javascriptcoregtk-4.0', version: '>=' + target_webkit)
json_glib = dependency('json-glib-1.0', version: '>= 1.0')
-libhandy = dependency('libhandy-1', version: '>= 0.90')
+libhandy = dependency('libhandy-1', version: '>= 1.0')
libmath = cc.find_library('m')
libpeas = dependency('libpeas-1.0', version: '>= 1.24.0')
libpeas_gtk = dependency('libpeas-gtk-1.0', version: '>= 1.24.0')
--
2.30.2

View file

@ -0,0 +1,32 @@
From b815ddf37030d7674a6cc5459af33d0bde4cf922 Mon Sep 17 00:00:00 2001
From: Yuri Edward <yuri6037@outlook.com>
Date: Sat, 9 Jan 2021 22:24:43 +0100
Subject: [PATCH 2/3] Removed hack/workarround for libhandy issue #305
---
src/client/application/application-client.vala | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/src/client/application/application-client.vala b/src/client/application/application-client.vala
index 0bd704fc..85af509f 100644
--- a/src/client/application/application-client.vala
+++ b/src/client/application/application-client.vala
@@ -935,15 +935,6 @@ public class Application.Client : Gtk.Application {
}
private MainWindow new_main_window(bool select_first_inbox) {
- // Work around warning caused by GNOME/libhandy#305 which
- // makes it a pita to run with G_DEBUG=fatal-warnings. Remove
- // once the fix for that issue has been released and packaged.
- GLib.Test.expect_message(
- "GLib-GObject",
- LEVEL_WARNING,
- "g_object_weak_unref: couldn't find weak ref *"
- );
-
MainWindow window = new MainWindow(this);
this.controller.register_window(window);
window.focus_in_event.connect(on_main_window_focus_in);
--
2.30.2

View file

@ -0,0 +1,25 @@
From f31164cc9bd71a5ba613b2323a462a829dea83aa Mon Sep 17 00:00:00 2001
From: Yuri Edward <yuri6037@outlook.com>
Date: Sun, 10 Jan 2021 23:54:46 +0100
Subject: [PATCH 3/3] Bumped version of libhandy to 1.0.1
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 3f2772d8..2ce78816 100644
--- a/meson.build
+++ b/meson.build
@@ -88,7 +88,7 @@ gthread = dependency('gthread-2.0', version: '>=' + target_glib)
iso_codes = dependency('iso-codes')
javascriptcoregtk = dependency('javascriptcoregtk-4.0', version: '>=' + target_webkit)
json_glib = dependency('json-glib-1.0', version: '>= 1.0')
-libhandy = dependency('libhandy-1', version: '>= 1.0')
+libhandy = dependency('libhandy-1', version: '>= 1.0.1')
libmath = cc.find_library('m')
libpeas = dependency('libpeas-1.0', version: '>= 1.24.0')
libpeas_gtk = dependency('libpeas-gtk-1.0', version: '>= 1.24.0')
--
2.30.2

View file

@ -0,0 +1,100 @@
From 6a0ad7218249e8f5b6ab13840ea973a8270bd4fb Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@gnome.org>
Date: Thu, 4 Mar 2021 17:25:41 -0600
Subject: [PATCH] web-process-extension: register GearyWebExtension JS in the
right place
We need to register our JS when the window-object-cleared signal is
emitted. Previously we did this when the WebPage object is created, but
this only worked due to luck. Since WebKit r271642, it no longer works.
window-object-cleared is emitted right after page-created, meaning that
right after Geary registers its JS, it all gets wiped away. Oops.
Fixes #1168
---
.../web-process/web-process-extension.vala | 57 ++++++++++---------
1 file changed, 31 insertions(+), 26 deletions(-)
diff --git a/src/client/web-process/web-process-extension.vala b/src/client/web-process/web-process-extension.vala
index 6785903e0..5a7599e68 100644
--- a/src/client/web-process/web-process-extension.vala
+++ b/src/client/web-process/web-process-extension.vala
@@ -48,6 +48,7 @@ public class GearyWebExtension : Object {
public GearyWebExtension(WebKit.WebExtension extension) {
this.extension = extension;
extension.page_created.connect(on_page_created);
+ WebKit.ScriptWorld.get_default().window_object_cleared.connect(on_window_object_cleared);
}
private void on_console_message(WebKit.WebPage page,
@@ -134,32 +135,6 @@ public class GearyWebExtension : Object {
private void on_page_created(WebKit.WebExtension extension,
WebKit.WebPage page) {
- WebKit.Frame frame = page.get_main_frame();
- JSC.Context context = frame.get_js_context();
-
- var extension_class = context.register_class(
- this.get_type().name(),
- null,
- null,
- null
- );
- extension_class.add_method(
- EXTENSION_CLASS_SEND,
- (instance, values) => {
- return this.on_page_send_message(page, values);
- },
- GLib.Type.NONE
- );
- context.set_value(
- EXTENSION_CLASS_VAR,
- new JSC.Value.object(context, extension_class, extension_class)
- );
-
- context.set_value(
- REMOTE_LOAD_VAR,
- new JSC.Value.boolean(context, false)
- );
-
page.console_message_sent.connect(on_console_message);
page.send_request.connect(on_send_request);
page.user_message_received.connect(on_page_message_received);
@@ -269,4 +244,34 @@ public class GearyWebExtension : Object {
return true;
}
+ private void on_window_object_cleared(WebKit.ScriptWorld world,
+ WebKit.WebPage page,
+ WebKit.Frame frame)
+ {
+ JSC.Context context = frame.get_js_context();
+
+ var extension_class = context.register_class(
+ this.get_type().name(),
+ null,
+ null,
+ null
+ );
+ extension_class.add_method(
+ EXTENSION_CLASS_SEND,
+ (instance, values) => {
+ return this.on_page_send_message(page, values);
+ },
+ GLib.Type.NONE
+ );
+ context.set_value(
+ EXTENSION_CLASS_VAR,
+ new JSC.Value.object(context, extension_class, extension_class)
+ );
+
+ context.set_value(
+ REMOTE_LOAD_VAR,
+ new JSC.Value.boolean(context, false)
+ );
+ }
+
}
--
GitLab

View file

@ -1,8 +1,10 @@
# Forked from Alpine to apply Purism's mobile patches # Forked from Alpine to apply Purism's mobile patches
pkgname=geary pkgname=geary
pkgver=9999_git20201210 pkgver=9999_git20210412
pkgrel=0 pkgrel=0
_commit="dd971251d7fd85c7b73f2e153beef9939354cec7" # https://source.puri.sm/Librem5/geary
# 3.38.2+git20210118+7bb025-0pureos3
_commit="33d9c90f0846d15dd3f31880ac5b3ffaf0badf61"
pkgdesc="Geary is an email application built around conversations" pkgdesc="Geary is an email application built around conversations"
url="https://wiki.gnome.org/Apps/Geary" url="https://wiki.gnome.org/Apps/Geary"
# libhandy is not available on s390x or mips # libhandy is not available on s390x or mips
@ -30,6 +32,7 @@ makedepends="
libnotify-dev libnotify-dev
libpeas-dev libpeas-dev
libsecret-dev libsecret-dev
libstemmer-dev
libunwind-dev libunwind-dev
libxml2-dev libxml2-dev
meson meson
@ -45,19 +48,28 @@ checkdepends="
" "
options="!check" # https://gitlab.gnome.org/GNOME/geary/-/issues/776 options="!check" # https://gitlab.gnome.org/GNOME/geary/-/issues/776
subpackages="$pkgname-lang $pkgname-doc" subpackages="$pkgname-lang $pkgname-doc"
source="https://source.puri.sm/Librem5/geary/-/archive/$_commit/geary-$_commit.tar.gz" source="
https://source.puri.sm/Librem5/geary/-/archive/$_commit/geary-$_commit.tar.gz
0001-Geary.Imap.FolderSession-Don-t-crash-on-empty-preview.patch
0002-Bump-version-of-libhandy-to-1.0-in-order-to-fix-issu.patch
0003-Removed-hack-workarround-for-libhandy-issue-305.patch
0004-Bumped-version-of-libhandy-to-1.0.1.patch
0005-web-process-extension-register-GearyWebExtension-JS-in-the.patch
purism_patches.series
$_commit.series::https://source.puri.sm/Librem5/geary/-/raw/$_commit/debian/patches/series
"
builddir="$srcdir/$pkgname-$_commit" builddir="$srcdir/$pkgname-$_commit"
prepare() { prepare() {
# NOTE: patches are kept in this repo, since they are no longer available in
# the tarball from purism's repo. This check will cause an error if the list
# of patches in purism's repo is different than the list in this repo. The
# list in this repo should be kept in sync when this package is upgrades!
if ! diff -q $srcdir/purism_patches.series $srcdir/$_commit.series; then
echo "Included patch list does not match patch list from $_commit"
exit 1
fi
default_prepare default_prepare
# The branch of geary is from Purism's fork, which has all adaptive
# patches in the /debian dir in this branch for generating a debian
# package. There are dozens of patches, so we apply them here manually
# (the location is not compatible with what abuild expects for package
# patches).
# Patches have to be applied in the order they are listed in
# debian/pathes/series
grep "\.patch$" debian/patches/series |xargs -I {} -t -r -n1 patch -p1 -i debian/patches/{}
} }
build() { build() {
@ -76,4 +88,11 @@ package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output DESTDIR="$pkgdir" meson install --no-rebuild -C output
} }
sha512sums="f88317a690e8ea54572a3550738ccc1cec6f071e939c5cb857923c213db506ed16f249c980a2fc4a53af389ea5ebf001cfef60700623b7c9cc83f5baa79b3821 geary-dd971251d7fd85c7b73f2e153beef9939354cec7.tar.gz" sha512sums="fc5bc6651113c9874c0118dd35e2c2994d13392fa1c50d0ce15495e31fc7c051c4c4dc639fd4a63db55d32c5ddd46c85c8e2c56c76be3c3a1c05453a5c12fdbf geary-33d9c90f0846d15dd3f31880ac5b3ffaf0badf61.tar.gz
c5ccfbf647ba145ae590611d94e4ded0ae3b5781372fd189bf40e7ed208ba4f309646b1807598dfab80f49c8a46b204953ac9affe4c5c2e3d70e9f3778a0ec7e 0001-Geary.Imap.FolderSession-Don-t-crash-on-empty-preview.patch
0db6b44e7a1a64ac96120f956d5e59ef73f9ca8b28a8797b309060e42e063586a8de076b84487729aa20337b8acf9cf0eb4d1ca5cf3bde5b866133ad5d026c40 0002-Bump-version-of-libhandy-to-1.0-in-order-to-fix-issu.patch
7ff94be3ea24e1685251f1bf4c89363991aa4936ffff95f8d6aef752a7854dc171b513340ecb31a729fa20efa0580107cf268daa134f010fb4eb7cb038f34e79 0003-Removed-hack-workarround-for-libhandy-issue-305.patch
4d77cf8273635493d7c0ede84eb0013a5cc0fc78c82eb32e97a1b5fcb966fea7641078e1cb10087639b835cf91cfc27fb1290f97ea301d5074e4dbbe5b120558 0004-Bumped-version-of-libhandy-to-1.0.1.patch
0ae3131b736f1530b0a07493a2bcb36eb41ced2cc60629509872949887ae1770936992c90914004d9c5900e32c88772a007a835bc49f8aaf6a6553ae2daa2ce7 0005-web-process-extension-register-GearyWebExtension-JS-in-the.patch
a540fba131de46eede657f83cd2d59a932aec094cd5f1861208eab94190fae2ed3320068e9267ece151336a30577b91bd3ae1850338f6f70b9a5e5c535cd53c0 purism_patches.series
a540fba131de46eede657f83cd2d59a932aec094cd5f1861208eab94190fae2ed3320068e9267ece151336a30577b91bd3ae1850338f6f70b9a5e5c535cd53c0 33d9c90f0846d15dd3f31880ac5b3ffaf0badf61.series"

View file

@ -0,0 +1,6 @@
pureos/backport/Geary.Imap.FolderSession-Don-t-crash-on-empty-preview.patch
pureos/backport/Bump-version-of-libhandy-to-1.0-in-order-to-fix-issu.patch
pureos/backport/Removed-hack-workarround-for-libhandy-issue-305.patch
pureos/backport/Bumped-version-of-libhandy-to-1.0.1.patch
pureos/mr/Geary.RFC822.Message-Handle-0-size-of-body-and-header-in-.patch
pureos/mr/tests-Use-longer-timeout-for-client-tests.patch