x11-libs/libcryptui: allow build with GnuPG 2.2, bug #629572

Also apply patches from master also found in Debian package.

Package-Manager: Portage-2.3.8, Repoman-2.3.3
This commit is contained in:
Gilles Dartiguelongue
2017-09-02 18:09:59 +02:00
parent 961a54b42f
commit fc384ea88d
6 changed files with 341 additions and 3 deletions

View File

@@ -0,0 +1,34 @@
From a576e407d913b35804f838d615da52899681d61d Mon Sep 17 00:00:00 2001
From: Andreas Henriksson <andreas@fatal.se>
Date: Mon, 15 Aug 2016 18:12:06 +0200
Subject: [PATCH 2/3] daemon: fix conflicting return types
... in functions seahorse_dbus_server_{init,cleanup}
Reported-by: Michael Tautschnig <mt@debian.org>
Bug-Debian: https://bugs.debian.org/749001
https://bugzilla.gnome.org/show_bug.cgi?id=769943
---
daemon/seahorse-daemon.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/daemon/seahorse-daemon.h b/daemon/seahorse-daemon.h
index 93c0c452..09716bb5 100644
--- a/daemon/seahorse-daemon.h
+++ b/daemon/seahorse-daemon.h
@@ -24,9 +24,9 @@
/* seahorse-dbus-server.c --------------------------------------------------- */
-gboolean seahorse_dbus_server_init ();
+void seahorse_dbus_server_init ();
-gboolean seahorse_dbus_server_cleanup ();
+void seahorse_dbus_server_cleanup ();
DBusGConnection* seahorse_dbus_server_get_connection ();
--
2.14.1

View File

@@ -1,6 +1,17 @@
--- a/configure.ac~ 2014-05-13 20:53:02.000000000 +0200
+++ b/configure.ac 2015-06-27 11:29:32.574106982 +0200
@@ -95,7 +95,7 @@
From 183d7619c29482a5d4ae8019692899f87f198171 Mon Sep 17 00:00:00 2001
From: Antoine Jacoutot <ajacoutot@gnome.org>
Date: Sat, 17 Oct 2015 08:52:35 +0200
Subject: [PATCH] Allow building with gnupg 2.1.
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 406b9f3f..b621b236 100644
--- a/configure.ac
+++ b/configure.ac
@@ -95,7 +95,7 @@ AC_ARG_ENABLE(gpg-check,
DO_CHECK=$enableval, DO_CHECK=yes)
if test "$DO_CHECK" = "yes"; then
@@ -9,3 +20,6 @@
AC_PATH_PROGS(GNUPG, [gpg gpg2], no)
AC_DEFINE_UNQUOTED(GNUPG, "$GNUPG", [Path to gpg executable.])
ok="no"
--
2.14.1

View File

@@ -0,0 +1,25 @@
From 98afc46861678162aad8cae1c4c01dc4d6780bef Mon Sep 17 00:00:00 2001
From: Gilles Dartiguelongue <eva@gentoo.org>
Date: Sat, 2 Sep 2017 17:48:44 +0200
Subject: [PATCH] Allow building with gnupg 2.2
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 4486e7b2..be5b28b4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -95,7 +95,7 @@ AC_ARG_ENABLE(gpg-check,
DO_CHECK=$enableval, DO_CHECK=yes)
if test "$DO_CHECK" = "yes"; then
- accepted_versions="1.2 1.4 2.0 2.1"
+ accepted_versions="1.2 1.4 2.0 2.1 2.2"
AC_PATH_PROGS(GNUPG, [gpg gpg2], no)
AC_DEFINE_UNQUOTED(GNUPG, "$GNUPG", [Path to gpg executable.])
ok="no"
--
2.14.1

View File

@@ -0,0 +1,154 @@
From 728aceb6defd4e6e4f07fa49ca76f5e745230fee Mon Sep 17 00:00:00 2001
From: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Date: Fri, 16 Sep 2016 11:46:55 +0200
Subject: [PATCH 3/3] daemon: port to gcr-3
This removes the dependency on libgnome-keyring and adds a dependency
on libgcr instead.
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Signed-off-by: Stef Walter <stefw@redhat.com>
* Updated commit message
https://bugzilla.gnome.org/show_bug.cgi?id=771522
---
configure.ac | 14 +++++++-------
daemon/seahorse-secure-buffer.c | 7 ++++---
daemon/seahorse-secure-memory.c | 21 +++++++++++----------
3 files changed, 22 insertions(+), 20 deletions(-)
diff --git a/configure.ac b/configure.ac
index b621b236..4486e7b2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -252,18 +252,18 @@ if test "$enable_fatal_messages" = "yes" && test "$enable_debug" = "yes"; then
fi
dnl ****************************************************************************
-dnl GNOME-KEYRING
+dnl GCR
dnl ****************************************************************************
-PKG_CHECK_MODULES([GNOME_KEYRING], gnome-keyring-1 >= 2.25.5,
- [enable_gnome_keyring=yes],[enable_gnome_keyring=no])
+PKG_CHECK_MODULES([GCR], gcr-3,
+ [enable_gcr=yes],[enable_gcr=no])
-if test "$enable_gnome_keyring" = "no"; then
- AC_MSG_ERROR([gnome-keyring library or headers not found.])
+if test "$enable_gcr" = "no"; then
+ AC_MSG_ERROR([gcr library or headers not found.])
fi
-SEAHORSE_CFLAGS="$SEAHORSE_CFLAGS $GNOME_KEYRING_CFLAGS"
-SEAHORSE_LIBS="$SEAHORSE_LIBS $GNOME_KEYRING_LIBS"
+SEAHORSE_CFLAGS="$SEAHORSE_CFLAGS $GCR_CFLAGS"
+SEAHORSE_LIBS="$SEAHORSE_LIBS $GCR_LIBS"
dnl ****************************************************************************
dnl LIBCRYPTUI
diff --git a/daemon/seahorse-secure-buffer.c b/daemon/seahorse-secure-buffer.c
index 0db87961..63f87cd3 100644
--- a/daemon/seahorse-secure-buffer.c
+++ b/daemon/seahorse-secure-buffer.c
@@ -20,7 +20,8 @@
#include "config.h"
#include "seahorse-secure-buffer.h"
-#include <gnome-keyring-memory.h>
+#define GCR_API_SUBJECT_TO_CHANGE 1
+#include <gcr/gcr.h>
#include <string.h>
@@ -92,7 +93,7 @@ seahorse_secure_buffer_real_insert_text (GtkEntryBuffer *buffer, guint position,
}
}
- pv->text = gnome_keyring_memory_realloc (pv->text, pv->text_size);
+ pv->text = gcr_secure_memory_realloc (pv->text, pv->text_size);
}
/* Actual text insertion */
@@ -158,7 +159,7 @@ seahorse_secure_buffer_finalize (GObject *obj)
SeahorseSecureBufferPrivate *pv = self->priv;
if (pv->text) {
- gnome_keyring_memory_free (pv->text);
+ gcr_secure_memory_free (pv->text);
pv->text = NULL;
pv->text_bytes = pv->text_size = 0;
pv->text_chars = 0;
diff --git a/daemon/seahorse-secure-memory.c b/daemon/seahorse-secure-memory.c
index 3d94a674..f201d1df 100644
--- a/daemon/seahorse-secure-memory.c
+++ b/daemon/seahorse-secure-memory.c
@@ -23,7 +23,8 @@
#include <glib.h>
-#include <gnome-keyring-memory.h>
+#define GCR_API_SUBJECT_TO_CHANGE 1
+#include <gcr/gcr.h>
#include "seahorse-secure-memory.h"
@@ -47,7 +48,7 @@ switch_malloc (gsize size)
if (size == 0)
return NULL;
if (seahorse_use_secure_mem)
- p = gnome_keyring_memory_try_alloc (size);
+ p = gcr_secure_memory_try_alloc (size);
else
p = malloc (size);
return p;
@@ -71,7 +72,7 @@ switch_calloc (gsize num, gsize size)
if (size == 0 || num == 0)
return NULL;
if (seahorse_use_secure_mem)
- p = gnome_keyring_memory_try_alloc (size * num);
+ p = gcr_secure_memory_try_alloc (size * num);
else
p = calloc (num, size);
return p;
@@ -99,11 +100,11 @@ switch_realloc (gpointer mem, gsize size)
if (!mem) {
if (seahorse_use_secure_mem)
- p = gnome_keyring_memory_alloc (size);
+ p = gcr_secure_memory_alloc (size);
else
p = malloc (size);
- } else if (gnome_keyring_memory_is_secure (mem))
- p = gnome_keyring_memory_try_realloc (mem, size);
+ } else if (gcr_secure_memory_is_secure (mem))
+ p = gcr_secure_memory_try_realloc (mem, size);
else
p = realloc (mem, size);
return p;
@@ -120,8 +121,8 @@ static void
switch_free (gpointer mem)
{
if (mem) {
- if (gnome_keyring_memory_is_secure (mem))
- gnome_keyring_memory_free (mem);
+ if (gcr_secure_memory_is_secure (mem))
+ gcr_secure_memory_free (mem);
else
free (mem);
}
@@ -138,9 +139,9 @@ seahorse_try_gk_secure_memory ()
{
gpointer p;
- p = gnome_keyring_memory_try_alloc (10);
+ p = gcr_secure_memory_try_alloc (10);
if (p != NULL) {
- gnome_keyring_memory_free (p);
+ gcr_secure_memory_free (p);
return TRUE;
}
--
2.14.1

View File

@@ -0,0 +1,38 @@
From 7c805b5d4eca798a03ac56b40e53cb335e30c187 Mon Sep 17 00:00:00 2001
From: Vlad Orlov <monsta@inbox.ru>
Date: Mon, 15 Aug 2016 18:23:31 +0200
Subject: [PATCH 1/3] libcryptui: fix logic flaw in the prompt recipients
dialog
The prompt recipients dialog has been broken in commit
https://github.com/GNOME/libcryptui/commit/cd74aa6bf810a5ce0935d2ec89d6db64dbbde24d#diff-f0ea8a1eef5386b0149314d2a1743e85L202
The patch fixes the logic there and makes seahorse-tool's
encrypt command work again. Therefore, seahorse plugins for both
Nautilus and Nemo should start working as well.
Bug-Debian: https://bugs.debian.org/770436
https://bugzilla.gnome.org/show_bug.cgi?id=769944
Reviewed-by: Stef Walter <stefw@gnome.org>
---
libcryptui/cryptui.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libcryptui/cryptui.c b/libcryptui/cryptui.c
index 92f0d5d4..2bbfa409 100644
--- a/libcryptui/cryptui.c
+++ b/libcryptui/cryptui.c
@@ -211,7 +211,7 @@ cryptui_prompt_recipients_with_symmetric (CryptUIKeyset *keyset,
*symmetric = cryptui_key_chooser_get_symmetric (chooser);
}
- if (symmetric != NULL && !*symmetric) {
+ if (symmetric == NULL || *symmetric == FALSE) {
recipients = cryptui_key_chooser_get_recipients (chooser);
keys = g_new0(gchar*, g_list_length (recipients) + 1);
for (l = recipients, i = 0; l; l = g_list_next (l), i++)
--
2.14.1

View File

@@ -0,0 +1,73 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
GNOME2_EAUTORECONF="yes"
inherit gnome2
DESCRIPTION="User interface components for OpenPGP"
HOMEPAGE="https://wiki.gnome.org/Apps/Seahorse"
LICENSE="GPL-2+ LGPL-2.1+ FDL-1.1"
SLOT="0"
IUSE="debug +introspection libnotify"
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86 ~x86-fbsd"
# Pull in libnotify-0.7 because it's controlled via an automagic ifdef
COMMON_DEPEND="
>=dev-libs/glib-2.32:2
>=x11-libs/gtk+-3:3[introspection?]
>=dev-libs/dbus-glib-0.72
>=app-crypt/gcr-3
x11-libs/libICE
x11-libs/libSM
>=app-crypt/gpgme-1:1=
>=app-crypt/gnupg-1.4
introspection? ( >=dev-libs/gobject-introspection-0.6.4:= )
libnotify? ( >=x11-libs/libnotify-0.7:= )
"
DEPEND="${COMMON_DEPEND}
app-text/rarian
>=dev-util/gtk-doc-am-1.9
>=dev-util/intltool-0.35
sys-devel/gettext
virtual/pkgconfig
"
# Before 3.1.4, libcryptui was part of seahorse
RDEPEND="${COMMON_DEPEND}
!<app-crypt/seahorse-3.1.4
"
PATCHES=(
# Support GnuPG 2.1, in master
# https://bugzilla.gnome.org/show_bug.cgi?id=745843
"${FILESDIR}"/${PN}-3.12.2-gnupg-2.1.patch
# from master, in Debian as well
"${FILESDIR}"/${PN}-3.12.2-prompt-recipient.patch
"${FILESDIR}"/${PN}-3.12.2-fix-return-types.patch
"${FILESDIR}"/${PN}-3.12.2-port-gcr-3.patch
# Support GnuPG 2.2
# https://bugs.gentoo.org/show_bug.cgi?id=629572
"${FILESDIR}"/${PN}-3.12.2-gnupg-2.2.patch
)
src_prepare() {
# FIXME: Do not mess with CFLAGS with USE="debug"
sed -e '/CFLAGS="$CFLAGS -g -O0/d' \
-e 's/-Werror//' \
-i configure.ac configure || die "sed failed"
gnome2_src_prepare
}
src_configure() {
gnome2_src_configure \
--disable-static \
--disable-update-mime-database \
$(use_enable debug) \
$(use_enable introspection) \
$(use_enable libnotify)
}