aboutsummaryrefslogtreecommitdiffstats
path: root/unmaintained
diff options
context:
space:
mode:
Diffstat (limited to 'unmaintained')
-rw-r--r--unmaintained/geary/APKBUILD53
-rw-r--r--unmaintained/geary/fix-build-with-new-vala.patch55
-rw-r--r--unmaintained/geary/fix-compilation-with-valac-git-master.patch145
-rw-r--r--unmaintained/geary/int-fixes.patch29
4 files changed, 282 insertions, 0 deletions
diff --git a/unmaintained/geary/APKBUILD b/unmaintained/geary/APKBUILD
new file mode 100644
index 0000000000..fb0f244b6c
--- /dev/null
+++ b/unmaintained/geary/APKBUILD
@@ -0,0 +1,53 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=geary
+pkgver=0.11.3
+pkgrel=0
+pkgdesc="A lightweight email program designed around conversations"
+url="http://yorba.org/geary/"
+arch="all !ppc64le !s390x"
+license="LGPLv2+"
+depends="hicolor-icon-theme gsettings-desktop-schemas"
+depends_dev=""
+makedepends="$depends_dev"
+makedepends="$depends_dev cmake vala gtk+3.0-dev gmime-dev libgee-dev
+ desktop-file-utils libunique3-dev libcanberra-dev libsecret-dev
+ webkitgtk-dev libnotify-dev gobject-introspection-dev gtk-doc
+ paxmark gcr-dev"
+
+install=""
+subpackages="$pkgname-lang"
+source="https://download.gnome.org/sources/geary/${pkgver%.*}/geary-$pkgver.tar.xz
+ fix-compilation-with-valac-git-master.patch
+ fix-build-with-new-vala.patch
+ int-fixes.patch
+ "
+
+builddir="$srcdir"/geary-$pkgver
+
+build() {
+ cd "$builddir"
+ mkdir build && cd build
+ cmake .. \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DGSETTINGS_COMPILE=OFF \
+ -DGSETTINGS_COMPILE_IN_PLACE=OFF \
+ -DICON_UPDATE=OFF \
+ -DDESKTOP_UPDATE=OFF \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$builddir"/build
+ make DESTDIR="$pkgdir" install || return 1
+
+ # webkit JIT has problems with hardened kernel
+ paxmark -m "$pkgdir"/usr/bin/geary || return 1
+
+}
+
+sha512sums="dee389384b6bab25f939f0f40525670c27e3687cdfdfbc0c5632ccb2e9e189be3902aedb4fb37affb67c8b149e40ff78e41efbf8a754d76dcd405c8295be0d4b geary-0.11.3.tar.xz
+6b04c90ed6fa25fdb2593c679606be573663f349591038e2313208c64c6dd4b572fe2ebc7fd9d5742e8833f607b993d45d247a64b13efc1bb2a37fca671ec488 fix-compilation-with-valac-git-master.patch
+a5bbe5bd97f6d10d6444fe34e406e45e8500f5d039a913746978b678ae6fb351f76299121bc14d00a971c34066a2a7419444aed0c1da38ba13de882db1e1394a fix-build-with-new-vala.patch
+87dc83c44d41668ab51e7c12bf041cf915f8148f6831f59cf149dfd6b13ffb1c62bd1df6b7d00d20129efdd56244329f07cd05344fef78c7c29212aef3561fe1 int-fixes.patch"
diff --git a/unmaintained/geary/fix-build-with-new-vala.patch b/unmaintained/geary/fix-build-with-new-vala.patch
new file mode 100644
index 0000000000..a2e8967933
--- /dev/null
+++ b/unmaintained/geary/fix-build-with-new-vala.patch
@@ -0,0 +1,55 @@
+From d34f0e7bb001297d6e9771fc7f8533779d7a9345 Mon Sep 17 00:00:00 2001
+From: Rico Tzschichholz <ricotz@ubuntu.com>
+Date: Sun, 26 Feb 2017 19:00:31 +0100
+Subject: [PATCH] Fix build with new vala
+
+https://bugzilla.gnome.org/show_bug.cgi?id=779264
+---
+ src/client/accounts/account-dialog-account-list-pane.vala | 4 ++++
+ src/client/conversation-list/conversation-list-store.vala | 8 ++++++++
+ 2 files changed, 12 insertions(+)
+
+diff --git a/src/client/accounts/account-dialog-account-list-pane.vala b/src/client/accounts/account-dialog-account-list-pane.vala
+index e96b7ad..bc500dc 100644
+--- a/src/client/accounts/account-dialog-account-list-pane.vala
++++ b/src/client/accounts/account-dialog-account-list-pane.vala
+@@ -160,7 +160,11 @@ public class AccountDialogAccountListPane : AccountDialogPane {
+ if (iter == null)
+ return;
+
++#if VALA_0_36
++ list_model.remove(ref iter);
++#else
+ list_model.remove(iter);
++#endif
+ }
+
+ private void on_account_changed(Object object, ParamSpec p) {
+diff --git a/src/client/conversation-list/conversation-list-store.vala b/src/client/conversation-list/conversation-list-store.vala
+index 851713d..81e2fdb 100644
+--- a/src/client/conversation-list/conversation-list-store.vala
++++ b/src/client/conversation-list/conversation-list-store.vala
+@@ -307,7 +307,11 @@ public class ConversationListStore : Gtk.ListStore {
+ if (last_email == null) {
+ debug("Cannot refresh conversation: last email is null");
+
++#if VALA_0_36
++ remove(ref iter);
++#else
+ remove(iter);
++#endif
+ return;
+ }
+
+@@ -379,7 +383,11 @@ public class ConversationListStore : Gtk.ListStore {
+ private void remove_conversation(Geary.App.Conversation conversation) {
+ Gtk.TreeIter iter;
+ if (get_iter_for_conversation(conversation, out iter))
++#if VALA_0_36
++ remove(ref iter);
++#else
+ remove(iter);
++#endif
+
+ row_map.remove(conversation);
+ }
diff --git a/unmaintained/geary/fix-compilation-with-valac-git-master.patch b/unmaintained/geary/fix-compilation-with-valac-git-master.patch
new file mode 100644
index 0000000000..f18d59feab
--- /dev/null
+++ b/unmaintained/geary/fix-compilation-with-valac-git-master.patch
@@ -0,0 +1,145 @@
+From 5a0b85e58639f5a9b9e2a1aa6b1882da6b2e6648 Mon Sep 17 00:00:00 2001
+From: Michael James Gratton <mike@vee.net>
+Date: Tue, 4 Oct 2016 00:06:54 +1100
+Subject: [PATCH] Fix compilation with valac git master.
+
+---
+ src/engine/imap-db/imap-db-folder.vala | 16 ++++++++--------
+ src/engine/imap-engine/imap-engine-generic-account.vala | 4 ++--
+ src/engine/imap-engine/imap-engine-minimal-folder.vala | 5 +++--
+ .../imap-engine/replay-ops/imap-engine-mark-email.vala | 8 ++++----
+ src/engine/imap/response/imap-fetch-data-decoder.vala | 2 +-
+ 5 files changed, 18 insertions(+), 17 deletions(-)
+
+diff --git a/src/engine/imap-db/imap-db-folder.vala b/src/engine/imap-db/imap-db-folder.vala
+index 81e963a..b3e02e8 100644
+--- a/src/engine/imap-db/imap-db-folder.vala
++++ b/src/engine/imap-db/imap-db-folder.vala
+@@ -870,10 +870,10 @@ private class Geary.ImapDB.Folder : BaseObject, Geary.ReferenceSemantics {
+ if (unread_status.size > 0)
+ unread_updated(unread_status);
+ }
+-
+- public async Gee.Map<ImapDB.EmailIdentifier, Geary.EmailFlags>? get_email_flags_async(
+- Gee.Collection<ImapDB.EmailIdentifier> ids, Cancellable? cancellable) throws Error {
+- Gee.Map<ImapDB.EmailIdentifier, Geary.EmailFlags>? map = null;
++
++ internal async Gee.Map<ImapDB.EmailIdentifier, Geary.EmailFlags>? get_email_flags_async(
++ Gee.Collection<EmailIdentifier> ids, Cancellable? cancellable) throws Error {
++ Gee.Map<EmailIdentifier, Geary.EmailFlags>? map = null;
+ yield db.exec_transaction_async(Db.TransactionType.RO, (cx, cancellable) => {
+ map = do_get_email_flags(cx, ids, cancellable);
+
+@@ -1085,11 +1085,11 @@ private class Geary.ImapDB.Folder : BaseObject, Geary.ReferenceSemantics {
+ if (ids.size == 0)
+ return null;
+
+- Gee.HashMap<Geary.EmailIdentifier, Geary.Email.Field> map = new Gee.HashMap<
+- Geary.EmailIdentifier, Geary.Email.Field>();
++ Gee.HashMap<ImapDB.EmailIdentifier,Geary.Email.Field> map = new Gee.HashMap<
++ ImapDB.EmailIdentifier,Geary.Email.Field>();
+
+ // Break up the work
+- Gee.List<ImapDB.EmailIdentifier> list = new Gee.ArrayList<Geary.EmailIdentifier>();
++ Gee.List<ImapDB.EmailIdentifier> list = new Gee.ArrayList<ImapDB.EmailIdentifier>();
+ Gee.Iterator<ImapDB.EmailIdentifier> iter = ids.iterator();
+ while (iter.next()) {
+ list.add(iter.get());
+@@ -1576,7 +1576,7 @@ private class Geary.ImapDB.Folder : BaseObject, Geary.ReferenceSemantics {
+ Db.Statement fetch_stmt = cx.prepare("SELECT flags FROM MessageTable WHERE id=?");
+
+ Gee.Map<ImapDB.EmailIdentifier, Geary.EmailFlags> map = new Gee.HashMap<
+- Geary.EmailIdentifier, Geary.EmailFlags>();
++ ImapDB.EmailIdentifier, Geary.EmailFlags>();
+ // TODO: Unroll this loop
+ foreach (LocationIdentifier location in locs) {
+ fetch_stmt.reset(Db.ResetScope.CLEAR_BINDINGS);
+diff --git a/src/engine/imap-engine/imap-engine-generic-account.vala b/src/engine/imap-engine/imap-engine-generic-account.vala
+index 16e04da..afcd9f0 100644
+--- a/src/engine/imap-engine/imap-engine-generic-account.vala
++++ b/src/engine/imap-engine/imap-engine-generic-account.vala
+@@ -807,7 +807,7 @@ private abstract class Geary.ImapEngine.GenericAccount : Geary.Account {
+
+ // If path in local but not remote (and isn't local-only, i.e. the Outbox), need to remove it
+ Gee.ArrayList<Geary.Folder> to_remove
+- = Geary.traverse<Gee.Map.Entry<FolderPath, Imap.Folder>>(existing_folders)
++ = Geary.traverse<Gee.Map.Entry<FolderPath,Geary.Folder>>(existing_folders)
+ .filter(e => !remote_folders.has_key(e.key) && !local_only.has_key(e.key))
+ .map<Geary.Folder>(e => (Geary.Folder) e.value)
+ .to_array_list();
+@@ -834,7 +834,7 @@ private abstract class Geary.ImapEngine.GenericAccount : Geary.Account {
+ debug("Unable to fetch local folder after cloning: %s", convert_err.message);
+ }
+ }
+- Gee.Collection<MinimalFolder> engine_added = new Gee.ArrayList<Geary.Folder>();
++ Gee.Collection<MinimalFolder> engine_added = new Gee.ArrayList<MinimalFolder>();
+ engine_added.add_all(build_folders(folders_to_build));
+
+ Gee.ArrayList<Geary.Folder> engine_removed = new Gee.ArrayList<Geary.Folder>();
+diff --git a/src/engine/imap-engine/imap-engine-minimal-folder.vala b/src/engine/imap-engine/imap-engine-minimal-folder.vala
+index 09486f4..c1a8d99 100644
+--- a/src/engine/imap-engine/imap-engine-minimal-folder.vala
++++ b/src/engine/imap-engine/imap-engine-minimal-folder.vala
+@@ -1412,8 +1412,9 @@ private class Geary.ImapEngine.MinimalFolder : Geary.Folder, Geary.FolderSupport
+ Geary.EmailFlags? flags_to_add, Geary.EmailFlags? flags_to_remove,
+ Cancellable? cancellable = null) throws Error {
+ check_open("mark_email_async");
+-
+- MarkEmail mark = new MarkEmail(this, to_mark, flags_to_add, flags_to_remove, cancellable);
++ check_ids("mark_email_async", to_mark);
++
++ MarkEmail mark = new MarkEmail(this, (Gee.List<ImapDB.EmailIdentifier>) to_mark, flags_to_add, flags_to_remove, cancellable);
+ replay_queue.schedule(mark);
+
+ yield mark.wait_for_ready_async(cancellable);
+diff --git a/src/engine/imap-engine/replay-ops/imap-engine-mark-email.vala b/src/engine/imap-engine/replay-ops/imap-engine-mark-email.vala
+index 21968c8..4f326d2 100644
+--- a/src/engine/imap-engine/replay-ops/imap-engine-mark-email.vala
++++ b/src/engine/imap-engine/replay-ops/imap-engine-mark-email.vala
+@@ -6,13 +6,13 @@
+
+ private class Geary.ImapEngine.MarkEmail : Geary.ImapEngine.SendReplayOperation {
+ private MinimalFolder engine;
+- private Gee.List<Geary.EmailIdentifier> to_mark = new Gee.ArrayList<Geary.EmailIdentifier>();
++ private Gee.List<ImapDB.EmailIdentifier> to_mark = new Gee.ArrayList<ImapDB.EmailIdentifier>();
+ private Geary.EmailFlags? flags_to_add;
+ private Geary.EmailFlags? flags_to_remove;
+ private Gee.Map<ImapDB.EmailIdentifier, Geary.EmailFlags>? original_flags = null;
+ private Cancellable? cancellable;
+
+- public MarkEmail(MinimalFolder engine, Gee.List<Geary.EmailIdentifier> to_mark,
++ public MarkEmail(MinimalFolder engine, Gee.List<ImapDB.EmailIdentifier> to_mark,
+ Geary.EmailFlags? flags_to_add, Geary.EmailFlags? flags_to_remove,
+ Cancellable? cancellable = null) {
+ base("MarkEmail", OnError.RETRY);
+@@ -28,7 +28,7 @@ private class Geary.ImapEngine.MarkEmail : Geary.ImapEngine.SendReplayOperation
+ public override void notify_remote_removed_ids(Gee.Collection<ImapDB.EmailIdentifier> ids) {
+ // don't bother updating on server or backing out locally
+ if (original_flags != null)
+- Collection.map_unset_all_keys<ImapDB.EmailIdentifier, Geary.EmailFlags>(original_flags, ids);
++ Collection.map_unset_all_keys<EmailIdentifier, Geary.EmailFlags>(original_flags, ids);
+ }
+
+ public override void get_ids_to_be_remote_removed(Gee.Collection<ImapDB.EmailIdentifier> ids) {
+@@ -50,7 +50,7 @@ private class Geary.ImapEngine.MarkEmail : Geary.ImapEngine.SendReplayOperation
+ cancellable);
+
+ // Notify using flags from DB.
+- Gee.Map<Geary.EmailIdentifier, Geary.EmailFlags>? map = yield engine.local_folder.get_email_flags_async(
++ Gee.Map<EmailIdentifier, Geary.EmailFlags>? map = yield engine.local_folder.get_email_flags_async(
+ original_flags.keys, cancellable);
+ if (map != null && map.size > 0)
+ engine.replay_notify_email_flags_changed(map);
+diff --git a/src/engine/imap/response/imap-fetch-data-decoder.vala b/src/engine/imap/response/imap-fetch-data-decoder.vala
+index ed94ed3..5464111 100644
+--- a/src/engine/imap/response/imap-fetch-data-decoder.vala
++++ b/src/engine/imap/response/imap-fetch-data-decoder.vala
+@@ -95,7 +95,7 @@ public class Geary.Imap.MessageFlagsDecoder : Geary.Imap.FetchDataDecoder {
+ }
+
+ protected override MessageData decode_list(ListParameter listp) throws ImapError {
+- Gee.List<Flag> flags = new Gee.ArrayList<Flag>();
++ Gee.List<MessageFlag> flags = new Gee.ArrayList<MessageFlag>();
+ for (int ctr = 0; ctr < listp.size; ctr++)
+ flags.add(new MessageFlag(listp.get_as_string(ctr).ascii));
+
diff --git a/unmaintained/geary/int-fixes.patch b/unmaintained/geary/int-fixes.patch
new file mode 100644
index 0000000000..762a78e4af
--- /dev/null
+++ b/unmaintained/geary/int-fixes.patch
@@ -0,0 +1,29 @@
+diff --git a/src/client/util/util-date.vala b/src/client/util/util-date.vala
+index 57cd1fc..a1ec7e9 100644
+--- a/src/client/util/util-date.vala
++++ b/src/client/util/util-date.vala
+@@ -164,7 +164,7 @@ private string pretty_print_coarse(CoarseDate coarse_date, ClockFormat clock_for
+ return _("Now");
+
+ case CoarseDate.MINUTES:
+- return ngettext("%dm ago", "%dm ago", (ulong) (diff / TimeSpan.MINUTE)).printf(diff / TimeSpan.MINUTE);
++ return ngettext("%dm ago", "%dm ago", (ulong) (diff / TimeSpan.MINUTE)).printf((int) (diff / TimeSpan.MINUTE));
+
+ case CoarseDate.HOURS:
+ int rounded = (int) Math.round((double) diff / TimeSpan.HOUR);
+diff --git a/src/client/components/conversation-find-bar.vala b/src/client/components/conversation-find-bar.vala
+index a625896..093e52c 100644
+--- a/src/client/components/conversation-find-bar.vala
++++ b/src/client/components/conversation-find-bar.vala
+@@ -211,9 +211,9 @@ public class ConversationFindBar : Gtk.Layout {
+
+ if (matches > 0) {
+ if (!wrapped)
+- content += ngettext("%i match", "%i matches", matches).printf(matches);
++ content += ngettext("%i match", "%ui matches", matches).printf(matches);
+ else
+- content += ngettext("%i match (wrapped)", "%i matches (wrapped)", matches).printf(matches);
++ content += ngettext("%i match (wrapped)", "%ui matches (wrapped)", matches).printf(matches);
+ } else {
+ content += _("not found");
+ }