summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /app-crypt/pinentry
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'app-crypt/pinentry')
-rw-r--r--app-crypt/pinentry/Manifest2
-rw-r--r--app-crypt/pinentry/files/pinentry-0.8.2-ncurses.patch25
-rw-r--r--app-crypt/pinentry/files/pinentry-0.8.2-texi.patch20
-rw-r--r--app-crypt/pinentry/files/pinentry-0.9.0-accessibility.patch82
-rw-r--r--app-crypt/pinentry/files/pinentry-0.9.4-actually_respect_users_pm.patch49
-rw-r--r--app-crypt/pinentry/files/pinentry-0.9.5-build.patch52
-rw-r--r--app-crypt/pinentry/metadata.xml8
-rw-r--r--app-crypt/pinentry/pinentry-0.9.0-r3.ebuild101
-rw-r--r--app-crypt/pinentry/pinentry-0.9.0.ebuild98
-rw-r--r--app-crypt/pinentry/pinentry-0.9.5.ebuild89
10 files changed, 526 insertions, 0 deletions
diff --git a/app-crypt/pinentry/Manifest b/app-crypt/pinentry/Manifest
new file mode 100644
index 000000000000..b4d26ceefb95
--- /dev/null
+++ b/app-crypt/pinentry/Manifest
@@ -0,0 +1,2 @@
+DIST pinentry-0.9.0.tar.bz2 464272 SHA256 90045a07ab8e1a8e1ecf5d19b51691f195525e579fa5d71d7e92c120b05490ab SHA512 2cc53a5c3852edaf6e940228d9b43fe4709344eba5fe230b7afd22b2c0239d0b258917d75661d80590b2d61c6fe9dac8ad15a0b4a0a0e7fba90a9e1c07364edd WHIRLPOOL 3f77a8aa2d44c7206d877e31088ec927473441e61f06e788330545d75ac489e6e9d5bf0026b23d0824304dad54ce8e61c4571d186df7ad0edc2d644ca3af04ac
+DIST pinentry-0.9.5.tar.bz2 514677 SHA256 6a57fd3afc0d8aaa5599ffcb3ea4e7c42c113a181e8870122203ea018384688c SHA512 31a190cacf45fd3ff5128a6a1a9f317fb09850fd595d5985392ea306ed65fa9232e2203458a9989eaac3b6e9d07199e01557912051f00a9a395cd1db61b44c39 WHIRLPOOL 52e9664d7cf0e804bb14b9586a89aca4037d3324261ac8931ed26365c32ae038b45eca9b7b6637b46f9231ff2db6a9e0a96a611404e48659c7ba009b84c40727
diff --git a/app-crypt/pinentry/files/pinentry-0.8.2-ncurses.patch b/app-crypt/pinentry/files/pinentry-0.8.2-ncurses.patch
new file mode 100644
index 000000000000..3bb92c63d00c
--- /dev/null
+++ b/app-crypt/pinentry/files/pinentry-0.8.2-ncurses.patch
@@ -0,0 +1,25 @@
+From bafe8608fc525ef103b3d1f3048ca28958bef596 Mon Sep 17 00:00:00 2001
+From: Alon Bar-Lev <alon.barlev@gmail.com>
+Date: Sun, 5 May 2013 02:23:08 +0300
+Subject: [PATCH] ncurses: link with optional tinfo
+
+---
+ m4/curses.m4 | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/m4/curses.m4 b/m4/curses.m4
+index 3a01881..ffb6bd1 100644
+--- a/m4/curses.m4
++++ b/m4/curses.m4
+@@ -36,6 +36,8 @@ AC_DEFUN([IU_LIB_NCURSES], [
+ have_ncursesw=no
+ fi
+ if test "$LIBNCURSES"; then
++ AC_CHECK_LIB(tinfow, curs_set, LIBNCURSES="${LIBNCURSES} -ltinfow",
++ AC_CHECK_LIB(tinfo, curs_set, LIBNCURSES="${LIBNCURSES} -ltinfo"))
+ # Use ncurses header files instead of the ordinary ones, if possible;
+ # is there a better way of doing this, that avoids looking in specific
+ # directories?
+--
+1.8.1.5
+
diff --git a/app-crypt/pinentry/files/pinentry-0.8.2-texi.patch b/app-crypt/pinentry/files/pinentry-0.8.2-texi.patch
new file mode 100644
index 000000000000..f036fa93a1c2
--- /dev/null
+++ b/app-crypt/pinentry/files/pinentry-0.8.2-texi.patch
@@ -0,0 +1,20 @@
+--- doc/gpl.texi 2013-06-09 10:50:53.990704797 +1200
++++ doc/gpl.texi 2013-06-09 10:51:25.310432565 +1200
+@@ -12,7 +12,7 @@
+ of this license document, but changing it is not allowed.
+ @end display
+
+-@appendixsubsec Preamble
++@appendixsec Preamble
+
+ The licenses for most software are designed to take away your
+ freedom to share and change it. By contrast, the GNU General Public
+@@ -63,7 +63,7 @@
+ modification follow.
+
+ @iftex
+-@appendixsubsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
++@appendixsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+ @end iftex
+ @ifinfo
+ @center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
diff --git a/app-crypt/pinentry/files/pinentry-0.9.0-accessibility.patch b/app-crypt/pinentry/files/pinentry-0.9.0-accessibility.patch
new file mode 100644
index 000000000000..20d6130978b1
--- /dev/null
+++ b/app-crypt/pinentry/files/pinentry-0.9.0-accessibility.patch
@@ -0,0 +1,82 @@
+diff --git a/qt4/main.cpp b/qt4/main.cpp
+index 106999e..b2a69f2 100644
+--- a/qt4/main.cpp
++++ b/qt4/main.cpp
+@@ -217,8 +217,9 @@ qt_cmd_handler (pinentry_t pe)
+ for ( size_t i = 0 ; i < sizeof buttonLabels / sizeof *buttonLabels ; ++i )
+ if ( (buttons & buttonLabels[i].button) && !buttonLabels[i].label.isEmpty() ) {
+ box.button( buttonLabels[i].button )->setText( buttonLabels[i].label );
++#ifndef QT_NO_ACCESSIBILITY
+ box.button( buttonLabels[i].button )->setAccessibleDescription ( buttonLabels[i].label );
+-
++#endif
+ }
+
+ box.setIconPixmap( icon() );
+diff --git a/qt4/pinentryconfirm.cpp b/qt4/pinentryconfirm.cpp
+index dfbd19f..6b3d545 100644
+--- a/qt4/pinentryconfirm.cpp
++++ b/qt4/pinentryconfirm.cpp
+@@ -30,8 +30,10 @@ PinentryConfirm::PinentryConfirm(Icon icon, int timeout, const QString &title,
+ connect(_timer, SIGNAL(timeout()), this, SLOT(slotTimeout()));
+ _timer->start(timeout*1000);
+ }
++#ifndef QT_NO_ACCESSIBILITY
+ setAccessibleDescription (desc);
+ setAccessibleName (title);
++#endif
+ raiseWindow (this);
+ }
+
+diff --git a/qt4/pinentrydialog.cpp b/qt4/pinentrydialog.cpp
+index 3a6dacc..456f022 100644
+--- a/qt4/pinentrydialog.cpp
++++ b/qt4/pinentrydialog.cpp
+@@ -217,7 +217,9 @@ void PinEntryDialog::setDescription( const QString& txt )
+ {
+ _desc->setVisible( !txt.isEmpty() );
+ _desc->setText( txt );
++#ifndef QT_NO_ACCESSIBILITY
+ _desc->setAccessibleDescription ( txt );
++#endif
+ _icon->setPixmap( icon() );
+ setError( QString::null );
+ }
+@@ -231,7 +233,9 @@ void PinEntryDialog::setError( const QString& txt )
+ {
+ if( !txt.isNull() )_icon->setPixmap( icon( QStyle::SP_MessageBoxCritical ) );
+ _error->setText( txt );
++#ifndef QT_NO_ACCESSIBILITY
+ _error->setAccessibleDescription ( txt );
++#endif
+ _error->setVisible( !txt.isEmpty() );
+ }
+
+@@ -264,14 +268,18 @@ QString PinEntryDialog::prompt() const
+ void PinEntryDialog::setOkText( const QString& txt )
+ {
+ _ok->setText( txt );
++#ifndef QT_NO_ACCESSIBILITY
+ _ok->setAccessibleDescription ( txt );
++#endif
+ _ok->setVisible( !txt.isEmpty() );
+ }
+
+ void PinEntryDialog::setCancelText( const QString& txt )
+ {
+ _cancel->setText( txt );
++#ifndef QT_NO_ACCESSIBILITY
+ _cancel->setAccessibleDescription ( txt );
++#endif
+ _cancel->setVisible( !txt.isEmpty() );
+ }
+
+@@ -279,7 +287,9 @@ void PinEntryDialog::setQualityBar( const QString& txt )
+ {
+ if (_have_quality_bar) {
+ _quality_bar_label->setText( txt );
++#ifndef QT_NO_ACCESSIBILITY
+ _quality_bar_label->setAccessibleDescription ( txt );
++#endif
+ }
+ }
diff --git a/app-crypt/pinentry/files/pinentry-0.9.4-actually_respect_users_pm.patch b/app-crypt/pinentry/files/pinentry-0.9.4-actually_respect_users_pm.patch
new file mode 100644
index 000000000000..cfc96a3be814
--- /dev/null
+++ b/app-crypt/pinentry/files/pinentry-0.9.4-actually_respect_users_pm.patch
@@ -0,0 +1,49 @@
+From 444598586d0abf70d5a27d2aafcd6c14989621db Mon Sep 17 00:00:00 2001
+From: "Neal H. Walfield" <neal@gnu.org>
+Date: Sun, 7 Jun 2015 14:36:39 +0200
+Subject: [PATCH] gnome3: Actually respect the user's choice of using a
+ password manager.
+
+* gnome3/pinentry-gnome3.c (create_prompt) [HAVE_LIBSECRET]: Only show
+the libsecret prompt in this case.
+(gnome3_cmd_handler) [HAVE_LIBSECRET]: Set PE->MAY_CACHE_PASSWORD
+according to the user's choice.
+---
+ gnome3/pinentry-gnome3.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/gnome3/pinentry-gnome3.c b/gnome3/pinentry-gnome3.c
+index 74ec89c..0fea8f0 100644
+--- a/gnome3/pinentry-gnome3.c
++++ b/gnome3/pinentry-gnome3.c
+@@ -145,6 +145,7 @@ create_prompt (pinentry_t pe, int confirm)
+ /* XXX: gcr expects a string; we have a int. */
+ // gcr_prompt_set_caller_window (prompt, pe->parent_wid);
+
++#ifdef HAVE_LIBSECRET
+ if (! confirm && pe->allow_external_password_cache && pe->keyinfo)
+ {
+ if (pe->default_pwmngr)
+@@ -157,6 +158,7 @@ create_prompt (pinentry_t pe, int confirm)
+ gcr_prompt_set_choice_label
+ (prompt, "Automatically unlock this key, whenever I'm logged in");
+ }
++#endif
+
+ return prompt;
+ }
+@@ -203,6 +205,11 @@ gnome3_cmd_handler (pinentry_t pe)
+ if (pe->repeat_passphrase)
+ pe->repeat_okay = 1;
+
++#ifdef HAVE_LIBSECRET
++ if (pe->allow_external_password_cache && pe->keyinfo)
++ pe->may_cache_password = gcr_prompt_get_choice_chosen (prompt);
++#endif
++
+ ret = 1;
+ }
+ }
+--
+2.1.4
+
diff --git a/app-crypt/pinentry/files/pinentry-0.9.5-build.patch b/app-crypt/pinentry/files/pinentry-0.9.5-build.patch
new file mode 100644
index 000000000000..2ef9a6779ee3
--- /dev/null
+++ b/app-crypt/pinentry/files/pinentry-0.9.5-build.patch
@@ -0,0 +1,52 @@
+From 29384a828ad83644df9093bb292194d1ac6e689b Mon Sep 17 00:00:00 2001
+From: Alon Bar-Lev <alon.barlev@gmail.com>
+Date: Sat, 18 Jul 2015 10:14:49 +0300
+Subject: [PATCH] build: add pkg-config initialization and modify detection
+
+add PKG_PROG_PKG_CONFIG as the qt4 detection and curses detection are
+already using pkg.m4 which require proper initialization.
+
+modify the manual detection of pkg-config based on the error value of
+the PKG_PROG_PKG_CONFIG and not the manual one as there is a conflict
+between empty and 'no'.
+
+Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
+---
+ configure.ac | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b71cb17..7afa318 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -85,6 +85,7 @@ AC_PROG_RANLIB
+ # for Qt and autoconf does does not allow that.
+ AC_PROG_CXX
+ AC_PROG_LN_S
++PKG_PROG_PKG_CONFIG
+ AC_CHECK_TOOL(WINDRES, windres, :)
+ AC_CHECK_PROGS(GITLOG_TO_CHANGELOG, gitlog-to-changelog,
+ [build-aux/gitlog-to-changelog])
+@@ -430,8 +431,7 @@ AC_ARG_ENABLE(pinentry-gnome3,
+
+ dnl check for pkg-config
+ if test "$pinentry_gtk_2" != "no" -o "$pinentry_gnome_3" != "no"; then
+- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+- if test x"${PKG_CONFIG}" = xno ; then
++ if test -z "${PKG_CONFIG}"; then
+ pinentry_gtk_2=no
+ pinentry_gnome_3=no
+ fi
+@@ -504,8 +504,7 @@ AC_ARG_ENABLE(libsecret,
+
+ dnl check for pkg-config
+ if test "$libsecret" != "no"; then
+- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+- if test x"${PKG_CONFIG}" = xno ; then
++ if test -z "${PKG_CONFIG}" ; then
+ libsecret=no
+ fi
+ fi
+--
+2.3.6
+
diff --git a/app-crypt/pinentry/metadata.xml b/app-crypt/pinentry/metadata.xml
new file mode 100644
index 000000000000..3c50ec9eb99a
--- /dev/null
+++ b/app-crypt/pinentry/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>crypto</herd>
+<use>
+ <flag name='clipboard'>Enable clipboard integration</flag>
+</use>
+</pkgmetadata>
diff --git a/app-crypt/pinentry/pinentry-0.9.0-r3.ebuild b/app-crypt/pinentry/pinentry-0.9.0-r3.ebuild
new file mode 100644
index 000000000000..336343c0dffc
--- /dev/null
+++ b/app-crypt/pinentry/pinentry-0.9.0-r3.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit qmake-utils autotools multilib eutils flag-o-matic toolchain-funcs
+
+DESCRIPTION="Collection of simple PIN or passphrase entry dialogs which utilize the Assuan protocol"
+HOMEPAGE="http://gnupg.org/aegypten2/index.html"
+SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="clipboard gtk ncurses qt4 caps static"
+
+RDEPEND="
+ app-eselect/eselect-pinentry
+ caps? ( sys-libs/libcap )
+ gtk? ( x11-libs/gtk+:2 )
+ ncurses? ( sys-libs/ncurses )
+ qt4? ( >=dev-qt/qtgui-4.4.1:4 )
+ static? ( >=sys-libs/ncurses-5.7-r5[static-libs,-gpm] )
+"
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ gtk? ( virtual/pkgconfig )
+ qt4? ( virtual/pkgconfig )
+ ppc-aix? ( dev-libs/gnulib )
+"
+REQUIRED_USE="
+ || ( ncurses gtk qt4 )
+ gtk? ( !static )
+ qt4? ( !static )
+ static? ( ncurses )
+"
+
+DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
+
+src_prepare() {
+ if use qt4; then
+ local f
+ for f in qt4/*.moc; do
+ "$(qt4_get_bindir)"/moc ${f/.moc/.h} > ${f} || die
+ done
+ fi
+ epatch "${FILESDIR}/${PN}-0.8.2-ncurses.patch"
+ epatch "${FILESDIR}/${PN}-0.8.2-texi.patch"
+ epatch "${FILESDIR}/${PN}-0.9.0-accessibility.patch"
+ eautoreconf
+}
+
+src_configure() {
+ use static && append-ldflags -static
+ [[ "$(gcc-major-version)" -ge 5 ]] && append-cxxflags -std=gnu++11
+
+ if [[ ${CHOST} == *-aix* ]] ; then
+ append-flags -I"${EPREFIX}/usr/$(get_libdir)/gnulib/include"
+ append-ldflags -L"${EPREFIX}/usr/$(get_libdir)/gnulib/$(get_libdir)"
+ append-libs -lgnu
+ fi
+
+ # Issues finding qt on multilib systems
+ export QTLIB="${QTDIR}/$(get_libdir)"
+
+ econf \
+ --enable-pinentry-tty \
+ $(use_enable gtk pinentry-gtk2) \
+ $(use_enable ncurses pinentry-curses) \
+ $(use_enable ncurses fallback-curses) \
+ $(use_enable qt4 pinentry-qt4) \
+ $(use qt4 && use_enable clipboard pinentry-qt4-clipboard) \
+ $(use_with caps libcap)
+}
+
+src_compile() {
+ emake AR="$(tc-getAR)"
+}
+
+src_install() {
+ default
+ rm -f "${ED}"/usr/bin/pinentry || die
+}
+
+pkg_postinst() {
+ if ! has_version 'app-crypt/pinentry' || has_version '<app-crypt/pinentry-0.7.3'; then
+ elog "We no longer install pinentry-curses and pinentry-qt SUID root by default."
+ elog "Linux kernels >=2.6.9 support memory locking for unprivileged processes."
+ elog "The soft resource limit for memory locking specifies the limit an"
+ elog "unprivileged process may lock into memory. You can also use POSIX"
+ elog "capabilities to allow pinentry to lock memory. To do so activate the caps"
+ elog "USE flag and add the CAP_IPC_LOCK capability to the permitted set of"
+ elog "your users."
+ fi
+ eselect pinentry update ifunset
+}
+
+pkg_postrm() {
+ eselect pinentry update ifunset
+}
diff --git a/app-crypt/pinentry/pinentry-0.9.0.ebuild b/app-crypt/pinentry/pinentry-0.9.0.ebuild
new file mode 100644
index 000000000000..c77222115468
--- /dev/null
+++ b/app-crypt/pinentry/pinentry-0.9.0.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit autotools multilib eutils flag-o-matic
+
+DESCRIPTION="Collection of simple PIN or passphrase entry dialogs which utilize the Assuan protocol"
+HOMEPAGE="http://gnupg.org/aegypten2/index.html"
+SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="gtk ncurses qt4 caps static"
+
+RDEPEND="
+ app-eselect/eselect-pinentry
+ caps? ( sys-libs/libcap )
+ gtk? ( x11-libs/gtk+:2 )
+ ncurses? ( sys-libs/ncurses )
+ qt4? ( >=dev-qt/qtgui-4.4.1:4 )
+ static? ( >=sys-libs/ncurses-5.7-r5[static-libs,-gpm] )
+"
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ gtk? ( virtual/pkgconfig )
+ qt4? ( virtual/pkgconfig )
+ ppc-aix? ( dev-libs/gnulib )
+"
+REQUIRED_USE="
+ || ( ncurses gtk qt4 )
+ gtk? ( !static )
+ qt4? ( !static )
+ static? ( ncurses )
+"
+
+DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
+
+src_prepare() {
+ if use qt4; then
+ local f
+ for f in qt4/*.moc; do
+ "${EPREFIX}"/usr/bin/moc ${f/.moc/.h} > ${f} || die
+ done
+ fi
+ epatch "${FILESDIR}/${PN}-0.8.2-ncurses.patch"
+ epatch "${FILESDIR}/${PN}-0.8.2-texi.patch"
+ eautoreconf
+}
+
+src_configure() {
+ use static && append-ldflags -static
+
+ if [[ ${CHOST} == *-aix* ]] ; then
+ append-flags -I"${EPREFIX}/usr/$(get_libdir)/gnulib/include"
+ append-ldflags -L"${EPREFIX}/usr/$(get_libdir)/gnulib/$(get_libdir)"
+ append-libs -lgnu
+ fi
+
+ # Issues finding qt on multilib systems
+ export QTLIB="${QTDIR}/$(get_libdir)"
+
+ econf \
+ --enable-pinentry-tty \
+ $(use_enable gtk pinentry-gtk2) \
+ $(use_enable ncurses pinentry-curses) \
+ $(use_enable ncurses fallback-curses) \
+ $(use_enable qt4 pinentry-qt4) \
+ $(use_with caps libcap)
+}
+
+src_compile() {
+ emake AR="$(tc-getAR)"
+}
+
+src_install() {
+ default
+ rm -f "${ED}"/usr/bin/pinentry || die
+}
+
+pkg_postinst() {
+ if ! has_version 'app-crypt/pinentry' || has_version '<app-crypt/pinentry-0.7.3'; then
+ elog "We no longer install pinentry-curses and pinentry-qt SUID root by default."
+ elog "Linux kernels >=2.6.9 support memory locking for unprivileged processes."
+ elog "The soft resource limit for memory locking specifies the limit an"
+ elog "unprivileged process may lock into memory. You can also use POSIX"
+ elog "capabilities to allow pinentry to lock memory. To do so activate the caps"
+ elog "USE flag and add the CAP_IPC_LOCK capability to the permitted set of"
+ elog "your users."
+ fi
+ eselect pinentry update ifunset
+}
+
+pkg_postrm() {
+ eselect pinentry update ifunset
+}
diff --git a/app-crypt/pinentry/pinentry-0.9.5.ebuild b/app-crypt/pinentry/pinentry-0.9.5.ebuild
new file mode 100644
index 000000000000..ef825c21e56b
--- /dev/null
+++ b/app-crypt/pinentry/pinentry-0.9.5.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit autotools qmake-utils multilib eutils flag-o-matic toolchain-funcs
+
+DESCRIPTION="Collection of simple PIN or passphrase entry dialogs which utilize the Assuan protocol"
+HOMEPAGE="http://gnupg.org/aegypten2/index.html"
+SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="clipboard emacs gtk ncurses qt4 caps gnome-keyring static"
+
+RDEPEND="
+ >=dev-libs/libgpg-error-1.17
+ >=dev-libs/libassuan-2
+ app-eselect/eselect-pinentry
+ caps? ( sys-libs/libcap )
+ gtk? ( x11-libs/gtk+:2 )
+ ncurses? ( sys-libs/ncurses )
+ qt4? ( >=dev-qt/qtgui-4.4.1:4 )
+ static? ( >=sys-libs/ncurses-5.7-r5[static-libs,-gpm] )
+"
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ virtual/pkgconfig
+ gnome-keyring? ( app-crypt/libsecret )
+"
+REQUIRED_USE="
+ || ( ncurses gtk qt4 )
+ gtk? ( !static )
+ qt4? ( !static )
+ static? ( ncurses )
+"
+
+DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-0.8.2-ncurses.patch"
+ epatch "${FILESDIR}/${P}-build.patch"
+ eautoreconf
+}
+
+src_configure() {
+ use static && append-ldflags -static
+ [[ "$(gcc-major-version)" -ge 5 ]] && append-cxxflags -std=gnu++11
+
+ # Issues finding qt on multilib systems
+ export QTLIB="${QTDIR}/$(get_libdir)"
+
+ econf \
+ --enable-pinentry-tty \
+ $(use_enable emacs pinentry-emacs) \
+ $(use_enable gtk pinentry-gtk2) \
+ $(use_enable ncurses pinentry-curses) \
+ $(use_enable ncurses fallback-curses) \
+ $(use_enable qt4 pinentry-qt4) \
+ $(use qt4 && use_enable clipboard pinentry-qt4-clipboard) \
+ $(use_with caps libcap) \
+ $(use_enable gnome-keyring libsecret) \
+ $(use_enable gnome-keyring pinentry-gnome3) \
+ MOC="$(qt4_get_bindir)"/moc
+}
+
+src_install() {
+ default
+ rm -f "${ED}"/usr/bin/pinentry || die
+}
+
+pkg_postinst() {
+ if ! has_version 'app-crypt/pinentry' || has_version '<app-crypt/pinentry-0.7.3'; then
+ elog "We no longer install pinentry-curses and pinentry-qt SUID root by default."
+ elog "Linux kernels >=2.6.9 support memory locking for unprivileged processes."
+ elog "The soft resource limit for memory locking specifies the limit an"
+ elog "unprivileged process may lock into memory. You can also use POSIX"
+ elog "capabilities to allow pinentry to lock memory. To do so activate the caps"
+ elog "USE flag and add the CAP_IPC_LOCK capability to the permitted set of"
+ elog "your users."
+ fi
+ eselect pinentry update ifunset
+}
+
+pkg_postrm() {
+ eselect pinentry update ifunset
+}