pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/security/pinentry-fltk security/pinentry-fltk: import ...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/ab66931a8c41
branches:  trunk
changeset: 319441:ab66931a8c41
user:      wiz <wiz%pkgsrc.org@localhost>
date:      Wed Feb 13 17:39:36 2019 +0000

description:
security/pinentry-fltk: import pinentry-fltk-1.1.0

Packaged for wip by Michael B?uerle.

This is a collection of simple PIN or passphrase entry dialogs which
utilize the Assuan protocol as described by the aegypten project.
It provides programs for several graphical toolkits, such as FLTK,
GTK+ and QT, as well as for the console, using curses.

This package contains the FLTK frontend.

diffstat:

 security/pinentry-fltk/DESCR                       |   6 +
 security/pinentry-fltk/Makefile                    |  22 +++++
 security/pinentry-fltk/PLIST                       |   2 +
 security/pinentry-fltk/patches/patch-fltk_main.cxx |  87 ++++++++++++++++++++++
 4 files changed, 117 insertions(+), 0 deletions(-)

diffs (133 lines):

diff -r f9a6b9bb1835 -r ab66931a8c41 security/pinentry-fltk/DESCR
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/security/pinentry-fltk/DESCR      Wed Feb 13 17:39:36 2019 +0000
@@ -0,0 +1,6 @@
+This is a collection of simple PIN or passphrase entry dialogs which
+utilize the Assuan protocol as described by the aegypten project.
+It provides programs for several graphical toolkits, such as FLTK,
+GTK+ and QT, as well as for the console, using curses.
+
+This package contains the FLTK frontend.
diff -r f9a6b9bb1835 -r ab66931a8c41 security/pinentry-fltk/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/security/pinentry-fltk/Makefile   Wed Feb 13 17:39:36 2019 +0000
@@ -0,0 +1,22 @@
+# $NetBSD: Makefile,v 1.1 2019/02/13 17:39:36 wiz Exp $
+
+PKGNAME=               ${DISTNAME:S/pinentry-/pinentry-fltk-/}
+COMMENT=               Applications for entering PINs or Passphrases, FLTK enabled
+
+.include               "../../security/pinentry/Makefile.common"
+
+USE_LANGUAGES+=                c c++
+USE_TOOLS+=            pkg-config
+
+CONFIGURE_ARGS+=       --disable-pinentry-gtk2
+CONFIGURE_ARGS+=        --disable-pinentry-qt
+CONFIGURE_ARGS+=        --disable-pinentry-curses
+CONFIGURE_ARGS+=        --disable-pinentry-emacs
+#CONFIGURE_ARGS+=       --disable-fallback-curses
+CONFIGURE_ARGS+=        --disable-pinentry-gnome3
+CONFIGURE_ARGS+=        --disable-libsecret
+
+INSTALL_DIRS=          fltk
+
+.include "../../x11/fltk13/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff -r f9a6b9bb1835 -r ab66931a8c41 security/pinentry-fltk/PLIST
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/security/pinentry-fltk/PLIST      Wed Feb 13 17:39:36 2019 +0000
@@ -0,0 +1,2 @@
+@comment $NetBSD: PLIST,v 1.1 2019/02/13 17:39:36 wiz Exp $
+bin/pinentry-fltk
diff -r f9a6b9bb1835 -r ab66931a8c41 security/pinentry-fltk/patches/patch-fltk_main.cxx
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/security/pinentry-fltk/patches/patch-fltk_main.cxx        Wed Feb 13 17:39:36 2019 +0000
@@ -0,0 +1,87 @@
+$NetBSD: patch-fltk_main.cxx,v 1.1 2019/02/13 17:39:36 wiz Exp $
+
+Handle '_' in labels as keyboard shortcuts (used by GPG2).
+Fix format string handling (Patch from Debian).
+
+--- fltk/main.cxx.orig 2017-12-03 16:13:05.000000000 +0000
++++ fltk/main.cxx
+@@ -78,6 +78,44 @@ static std::string escape_accel_utf8(con
+       return result;
+ }
+ 
++// For button labels
++// Accelerator '_' (used e.g. by GPG2) is converted to '&' (for FLTK)
++// '&' is escaped as in escape_accel_utf8()
++static std::string convert_accel_utf8(const char *s)
++{
++      static bool last_was_underscore = false;
++      std::string result;
++      if (NULL != s)
++      {
++              result.reserve(strlen(s));
++              for (const char *p = s; *p; ++p)
++              {
++                      // & => &&
++                      if ('&' == *p)
++                              result.push_back(*p);
++                      // _ => & (handle '__' as escaped underscore)
++                      if ('_' == *p)
++                      {
++                              if (last_was_underscore)
++                              {
++                                      result.push_back(*p);
++                                      last_was_underscore = false;
++                              }
++                              else
++                                      last_was_underscore = true;
++                      }
++                      else
++                      {
++                              if (last_was_underscore)
++                                      result.push_back('&');
++                              result.push_back(*p);
++                              last_was_underscore = false;
++                      }
++              }
++      }
++      return result;
++}
++
+ class cancel_exception
+ {
+ 
+@@ -111,8 +149,8 @@ static int fltk_cmd_handler(pinentry_t p
+               // TODO: Add parent window to pinentry-fltk window
+               //if (pe->parent_wid){}
+               std::string title  = !is_empty(pe->title)?pe->title:PGMNAME;
+-              std::string ok     = escape_accel_utf8(pe->ok?pe->ok:(pe->default_ok?pe->default_ok:OK_STRING));
+-              std::string cancel = escape_accel_utf8(pe->cancel?pe->cancel:(pe->default_cancel?pe->default_cancel:CANCEL_STRING));
++              std::string ok     = convert_accel_utf8(pe->ok?pe->ok:(pe->default_ok?pe->default_ok:OK_STRING));
++              std::string cancel = convert_accel_utf8(pe->cancel?pe->cancel:(pe->default_cancel?pe->default_cancel:CANCEL_STRING));
+ 
+               if (!!pe->pin) // password (or confirmation)
+               {
+@@ -241,12 +279,12 @@ static int fltk_cmd_handler(pinentry_t p
+                               if (pe->one_button)
+                               {
+                                       fl_ok = ok.c_str();
+-                                      fl_message(message);
++                                      fl_message("%s", message);
+                                       result = 1; // OK
+                               }
+                               else if (pe->notok)
+                               {
+-                                      switch (fl_choice(message, ok.c_str(), cancel.c_str(), pe->notok))
++                                      switch (fl_choice("%s", ok.c_str(), cancel.c_str(), pe->notok, message))
+                                       {
+                                       case 0: result = 1; break;
+                                       case 2: result = 0; break;
+@@ -256,7 +294,7 @@ static int fltk_cmd_handler(pinentry_t p
+                               }
+                               else
+                               {
+-                                      switch (fl_choice(message, ok.c_str(), cancel.c_str(), NULL))
++                                      switch (fl_choice("%s", ok.c_str(), cancel.c_str(), NULL, message))
+                                       {
+                                       case 0: result = 1; break;
+                                       default:



Home | Main Index | Thread Index | Old Index