Gentoo Archives: gentoo-commits

From: Lars Wendler <polynomial-c@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: mail-client/claws-mail/, mail-client/claws-mail/files/
Date: Fri, 11 Aug 2017 19:57:48
Message-Id: 1502481461.dbd1e3e95fcff251b6232544a313873a24a3de9b.polynomial-c@gentoo
1 commit: dbd1e3e95fcff251b6232544a313873a24a3de9b
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Fri Aug 11 19:57:22 2017 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Fri Aug 11 19:57:41 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dbd1e3e9
7
8 mail-client/claws-mail: Revbump to fix segfault (bug #618376).
9
10 Package-Manager: Portage-2.3.6, Repoman-2.3.3
11
12 ...l-3.15.0.ebuild => claws-mail-3.15.0-r1.ebuild} | 8 ++-
13 .../claws-mail-3.15.0-old_profile_segfault.patch | 80 ++++++++++++++++++++++
14 2 files changed, 86 insertions(+), 2 deletions(-)
15
16 diff --git a/mail-client/claws-mail/claws-mail-3.15.0.ebuild b/mail-client/claws-mail/claws-mail-3.15.0-r1.ebuild
17 similarity index 97%
18 rename from mail-client/claws-mail/claws-mail-3.15.0.ebuild
19 rename to mail-client/claws-mail/claws-mail-3.15.0-r1.ebuild
20 index 190562439d1..c92913afd86 100644
21 --- a/mail-client/claws-mail/claws-mail-3.15.0.ebuild
22 +++ b/mail-client/claws-mail/claws-mail-3.15.0-r1.ebuild
23 @@ -85,6 +85,10 @@ RDEPEND="${COMMONDEPEND}
24 net-misc/curl
25 )"
26
27 +PATCHES=(
28 + "${FILESDIR}/${P}-old_profile_segfault.patch"
29 +)
30 +
31 pkg_setup() {
32 use python && python-single-r1_pkg_setup
33 }
34 @@ -148,7 +152,7 @@ src_configure() {
35 )
36
37 # libetpan is needed if user wants nntp or imap functionality
38 - if use imap || use nntp; then
39 + if use imap || use nntp ; then
40 myeconfargs+=( --enable-libetpan )
41 else
42 myeconfargs+=( --disable-libetpan )
43 @@ -183,7 +187,7 @@ src_install() {
44 doexe tb2claws-mail update-po uudec uuooffice
45
46 # kill useless files
47 - rm -f "${D}"/usr/lib*/claws-mail/plugins/*.{a,la}
48 + rm -f "${ED%/}"/usr/lib*/claws-mail/plugins/*.{a,la}
49 }
50
51 pkg_preinst() {
52
53 diff --git a/mail-client/claws-mail/files/claws-mail-3.15.0-old_profile_segfault.patch b/mail-client/claws-mail/files/claws-mail-3.15.0-old_profile_segfault.patch
54 new file mode 100644
55 index 00000000000..b19bf8f39d6
56 --- /dev/null
57 +++ b/mail-client/claws-mail/files/claws-mail-3.15.0-old_profile_segfault.patch
58 @@ -0,0 +1,80 @@
59 +From: Ricardo Mones <ricardo@×××××.org>
60 +Date: Wed, 9 Aug 2017 14:48:38 +0000 (+0200)
61 +Subject: Fix bug #3855: segfault at startup with old profile and IMAP account
62 +X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=667c9d3eaf0487193cc7873e6d3a63959a03d7f9;hp=63677adb68c57479f6bc7534cfbf2f234b1f4fb1
63 +
64 +Fix bug #3855: segfault at startup with old profile and IMAP account
65 +
66 +Revert "Remove duplicated code and include".
67 +
68 +This reverts commit 300f811f3bbf10455ca55d9b01da6705dd1e07bb.
69 +---
70 +
71 +diff --git a/src/imap.c b/src/imap.c
72 +index 0e1e777..25bb283 100644
73 +--- a/src/imap.c
74 ++++ b/src/imap.c
75 +@@ -77,6 +77,8 @@ typedef struct _IMAPSession IMAPSession;
76 + typedef struct _IMAPNameSpace IMAPNameSpace;
77 + typedef struct _IMAPFolderItem IMAPFolderItem;
78 +
79 ++#include "prefs_account.h"
80 ++
81 + #define IMAP_FOLDER(obj) ((IMAPFolder *)obj)
82 + #define IMAP_FOLDER_ITEM(obj) ((IMAPFolderItem *)obj)
83 + #define IMAP_SESSION(obj) ((IMAPSession *)obj)
84 +@@ -425,6 +427,7 @@ static gint imap_get_flags (Folder *folder,
85 + FolderItem *item,
86 + MsgInfoList *msglist,
87 + GHashTable *msgflags);
88 ++static gchar *imap_folder_get_path (Folder *folder);
89 + static gchar *imap_item_get_path (Folder *folder,
90 + FolderItem *item);
91 + static MsgInfo *imap_parse_msg(const gchar *file, FolderItem *item);
92 +@@ -3042,6 +3045,35 @@ static FolderItem *imap_create_special_folder(Folder *folder,
93 + return new_item;
94 + }
95 +
96 ++static gchar *imap_folder_get_path(Folder *folder)
97 ++{
98 ++ gchar *folder_path;
99 ++
100 ++ g_return_val_if_fail(folder != NULL, NULL);
101 ++ g_return_val_if_fail(folder->account != NULL, NULL);
102 ++
103 ++#ifdef G_OS_WIN32
104 ++ gchar *sanitized_dirname = g_strdup(folder->account->recv_server);
105 ++ g_strdelimit(sanitized_dirname, ":", ',');
106 ++#endif
107 ++
108 ++ folder_path = g_strconcat(get_imap_cache_dir(),
109 ++ G_DIR_SEPARATOR_S,
110 ++#ifdef G_OS_WIN32
111 ++ sanitized_dirname,
112 ++#else
113 ++ folder->account->recv_server,
114 ++#endif
115 ++ G_DIR_SEPARATOR_S,
116 ++ folder->account->userid,
117 ++ NULL);
118 ++
119 ++#ifdef G_OS_WIN32
120 ++ g_free(sanitized_dirname);
121 ++#endif
122 ++ return folder_path;
123 ++}
124 ++
125 + #ifdef G_OS_WIN32
126 + static gchar *imap_encode_unsafe_chars(const gchar *str)
127 + {
128 +@@ -3078,9 +3110,8 @@ static gchar *imap_item_get_path(Folder *folder, FolderItem *item)
129 + gchar *item_path = NULL;
130 +
131 + g_return_val_if_fail(folder != NULL, NULL);
132 +- g_return_val_if_fail(folder->account != NULL, NULL);
133 + g_return_val_if_fail(item != NULL, NULL);
134 +- folder_path = prefs_account_cache_dir(folder->account, FALSE);
135 ++ folder_path = imap_folder_get_path(folder);
136 +
137 + g_return_val_if_fail(folder_path != NULL, NULL);
138 +