summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Bar-Lev <alonbl@gentoo.org>2016-12-10 10:21:52 +0200
committerAlon Bar-Lev <alonbl@gentoo.org>2016-12-10 10:22:02 +0200
commit296fee901f5ae0e155c3b6ed83491fd290eac8d3 (patch)
tree75991b758ea4c0d45ce7d3e821a6d3fe66b054fb /app-crypt
parentnet-nds/rpcbind: drop old <0.2.3-r1 versions (diff)
downloadgentoo-296fee901f5ae0e155c3b6ed83491fd290eac8d3.tar.gz
gentoo-296fee901f5ae0e155c3b6ed83491fd290eac8d3.tar.bz2
gentoo-296fee901f5ae0e155c3b6ed83491fd290eac8d3.zip
app-crypt/pinentry - fix build issue
+EAP6 Bug: 602148 Package-Manager: portage-2.3.0
Diffstat (limited to 'app-crypt')
-rwxr-xr-xapp-crypt/pinentry/files/pinentry-1.0.0-build.patch218
-rw-r--r--app-crypt/pinentry/pinentry-1.0.0.ebuild10
2 files changed, 225 insertions, 3 deletions
diff --git a/app-crypt/pinentry/files/pinentry-1.0.0-build.patch b/app-crypt/pinentry/files/pinentry-1.0.0-build.patch
new file mode 100755
index 000000000000..e367b8566450
--- /dev/null
+++ b/app-crypt/pinentry/files/pinentry-1.0.0-build.patch
@@ -0,0 +1,218 @@
+From c5c7bee68730c9f66a27f9bb0d023480623a2bfb Mon Sep 17 00:00:00 2001
+From: Werner Koch <wk@gnupg.org>
+Date: Thu, 1 Dec 2016 09:10:08 +0100
+Subject: [PATCH] Fix linkage problem in tty and emacs pinentries.
+
+* emacs/pinentry-emacs.c (curses_cmd_handler): Remove var.
+* tty/pinentry-tty.c (curses_cmd_handler): Remove var.
+* pinentry/pinentry.c (flavor_flag): New local var.
+(pinentry_set_flavor_flag): New function.
+(cmd_getinfo): Use FLAVOR_FLAG for the "flavor" sub-command.
+* gnome3/pinentry-gnome3.c (main): Call pinentry_set_flavor_flag.
+* gtk+-2/pinentry-gtk-2.c (main): Ditto.
+* pinentry/pinentry-emacs.c (initial_emacs_cmd_handler): Ditto.
+* qt/main.cpp (main): Ditto.
+--
+
+Fixes-commit: e4e3a9cc88704dcffac660d0b92fd1ed8abecc11
+Fixes-commit: d126036671e7dd631babc118cb4113f723f15748
+Signed-off-by: Werner Koch <wk@gnupg.org>
+---
+ emacs/pinentry-emacs.c | 4 ----
+ gnome3/pinentry-gnome3.c | 3 +++
+ gtk+-2/pinentry-gtk-2.c | 10 ++++++++--
+ pinentry/pinentry-emacs.c | 5 ++++-
+ pinentry/pinentry.c | 34 ++++++++++++++++++----------------
+ pinentry/pinentry.h | 4 ++++
+ qt/main.cpp | 1 +
+ tty/pinentry-tty.c | 3 ---
+ 8 files changed, 38 insertions(+), 26 deletions(-)
+
+diff --git a/emacs/pinentry-emacs.c b/emacs/pinentry-emacs.c
+index b6b3eb8..3c39a96 100644
+--- a/emacs/pinentry-emacs.c
++++ b/emacs/pinentry-emacs.c
+@@ -29,10 +29,6 @@
+
+ pinentry_cmd_handler_t pinentry_cmd_handler = emacs_cmd_handler;
+
+-/* needed to link cleanly; should never be used except for comparison
+- * in pinentry/pinentry.c's cmd_getinfo(): */
+-pinentry_cmd_handler_t curses_cmd_handler = NULL;
+-
+
+
+ int
+diff --git a/gnome3/pinentry-gnome3.c b/gnome3/pinentry-gnome3.c
+index a040f9b..d5a49d6 100644
+--- a/gnome3/pinentry-gnome3.c
++++ b/gnome3/pinentry-gnome3.c
+@@ -517,18 +517,21 @@ main (int argc, char *argv[])
+ fprintf (stderr, "No $DBUS_SESSION_BUS_ADDRESS found,"
+ " falling back to curses\n");
+ pinentry_cmd_handler = curses_cmd_handler;
++ pinentry_set_flavor_flag ("curses");
+ }
+ else if (!pe_gcr_system_prompt_available ())
+ {
+ fprintf (stderr, "No Gcr System Prompter available,"
+ " falling back to curses\n");
+ pinentry_cmd_handler = curses_cmd_handler;
++ pinentry_set_flavor_flag ("curses");
+ }
+ else if (pe_gnome_screen_locked ())
+ {
+ fprintf (stderr, "GNOME screensaver is locked,"
+ " falling back to curses\n");
+ pinentry_cmd_handler = curses_cmd_handler;
++ pinentry_set_flavor_flag ("curses");
+ }
+ #endif
+
+diff --git a/gtk+-2/pinentry-gtk-2.c b/gtk+-2/pinentry-gtk-2.c
+index 6037533..473c4aa 100644
+--- a/gtk+-2/pinentry-gtk-2.c
++++ b/gtk+-2/pinentry-gtk-2.c
+@@ -938,10 +938,16 @@ main (int argc, char *argv[])
+ if (pinentry_have_display (argc, argv))
+ {
+ if (! gtk_init_check (&argc, &argv))
+- pinentry_cmd_handler = curses_cmd_handler;
++ {
++ pinentry_cmd_handler = curses_cmd_handler;
++ pinentry_set_flavor_flag ("curses");
++ }
+ }
+ else
+- pinentry_cmd_handler = curses_cmd_handler;
++ {
++ pinentry_cmd_handler = curses_cmd_handler;
++ pinentry_set_flavor_flag ("curses");
++ }
+ #else
+ gtk_init (&argc, &argv);
+ #endif
+diff --git a/pinentry/pinentry-emacs.c b/pinentry/pinentry-emacs.c
+index df12f1b..50ba406 100644
+--- a/pinentry/pinentry-emacs.c
++++ b/pinentry/pinentry-emacs.c
+@@ -644,7 +644,10 @@ initial_emacs_cmd_handler (pinentry_t pe)
+ if (emacs_socket < 0)
+ pinentry_cmd_handler = fallback_cmd_handler;
+ else
+- pinentry_cmd_handler = emacs_cmd_handler;
++ {
++ pinentry_cmd_handler = emacs_cmd_handler;
++ pinentry_set_flavor_flag ("emacs");
++ }
+
+ return (* pinentry_cmd_handler) (pe);
+ }
+diff --git a/pinentry/pinentry.c b/pinentry/pinentry.c
+index 322a651..a198fb3 100644
+--- a/pinentry/pinentry.c
++++ b/pinentry/pinentry.c
+@@ -67,6 +67,10 @@ static char this_pgmname[50];
+
+ struct pinentry pinentry;
+
++
++static const char *flavor_flag;
++
++
+ static void
+ pinentry_reset (int use_defaults)
+ {
+@@ -793,6 +797,16 @@ pinentry_parse_opts (int argc, char *argv[])
+ }
+ }
+
++
++/* Set the optional flag used with getinfo. */
++void
++pinentry_set_flavor_flag (const char *string)
++{
++ flavor_flag = string;
++}
++
++
++
+
+ static gpg_error_t
+ option_handler (assuan_context_t ctx, const char *key, const char *value)
+@@ -1444,27 +1458,15 @@ cmd_getinfo (assuan_context_t ctx, char *line)
+ }
+ else if (!strcmp (line, "flavor"))
+ {
+- const char *flags;
+-
+ if (!strncmp (this_pgmname, "pinentry-", 9) && this_pgmname[9])
+ s = this_pgmname + 9;
+ else
+ s = this_pgmname;
+
+- if (0)
+- ;
+-#ifdef INSIDE_EMACS
+- else if (pinentry_cmd_handler == emacs_cmd_handler)
+- flags = ":emacs";
+-#endif
+-#ifdef FALLBACK_CURSES
+- else if (pinentry_cmd_handler == curses_cmd_handler)
+- flags = ":curses";
+-#endif
+- else
+- flags = "";
+-
+- snprintf (buffer, sizeof buffer, "%s%s", s, flags);
++ snprintf (buffer, sizeof buffer, "%s%s%s",
++ s,
++ flavor_flag? ":":"",
++ flavor_flag? flavor_flag : "");
+ buffer[sizeof buffer -1] = 0;
+ rc = assuan_send_data (ctx, buffer, strlen (buffer));
+ }
+diff --git a/pinentry/pinentry.h b/pinentry/pinentry.h
+index 01fb373..45d35ad 100644
+--- a/pinentry/pinentry.h
++++ b/pinentry/pinentry.h
+@@ -275,6 +275,10 @@ int pinentry_have_display (int argc, char **argv);
+ or version output is requested. */
+ void pinentry_parse_opts (int argc, char *argv[]);
+
++/* Set the optional flag used with getinfo. */
++void pinentry_set_flavor_flag (const char *string);
++
++
+
+ /* The caller must define this variable to process assuan commands. */
+ extern pinentry_cmd_handler_t pinentry_cmd_handler;
+diff --git a/qt/main.cpp b/qt/main.cpp
+index 8284960..225c06b 100644
+--- a/qt/main.cpp
++++ b/qt/main.cpp
+@@ -308,6 +308,7 @@ main(int argc, char *argv[])
+ #ifdef FALLBACK_CURSES
+ if (!pinentry_have_display(argc, argv)) {
+ pinentry_cmd_handler = curses_cmd_handler;
++ pinentry_set_flavor_flag ("curses");
+ } else
+ #endif
+ {
+diff --git a/tty/pinentry-tty.c b/tty/pinentry-tty.c
+index 3d6cd5a..a509d79 100644
+--- a/tty/pinentry-tty.c
++++ b/tty/pinentry-tty.c
+@@ -556,9 +556,6 @@ tty_cmd_handler(pinentry_t pinentry)
+
+ pinentry_cmd_handler_t pinentry_cmd_handler = tty_cmd_handler;
+
+-/* needed to link cleanly; should never be used except for comparison
+- * in pinentry/pinentry.c's cmd_getinfo(): */
+-pinentry_cmd_handler_t curses_cmd_handler = NULL;
+
+
+ int
+--
+2.8.0.rc3
+
diff --git a/app-crypt/pinentry/pinentry-1.0.0.ebuild b/app-crypt/pinentry/pinentry-1.0.0.ebuild
index 707d1595c45a..2106259c4232 100644
--- a/app-crypt/pinentry/pinentry-1.0.0.ebuild
+++ b/app-crypt/pinentry/pinentry-1.0.0.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
# $Id$
-EAPI=5
+EAPI=6
inherit autotools qmake-utils multilib eutils flag-o-matic toolchain-funcs
@@ -55,9 +55,13 @@ REQUIRED_USE="
DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
+PATCHES=(
+ "${FILESDIR}/${PN}-0.8.2-ncurses.patch"
+ "${FILESDIR}/${P}-build.patch"
+)
+
src_prepare() {
- epatch "${FILESDIR}/${PN}-0.8.2-ncurses.patch"
- epatch_user
+ default
eautoreconf
}