Fix for bug #541400
authorKristian Fiskerstrand <k_f@gentoo.org>
Sun, 1 Mar 2015 22:31:03 +0000 (22:31 +0000)
committerKristian Fiskerstrand <k_f@gentoo.org>
Sun, 1 Mar 2015 22:31:03 +0000 (22:31 +0000)
Package-Manager: portage-2.2.14/cvs/Linux x86_64
Manifest-Sign-Key: 0xFED5002857C1ABFA!

app-crypt/pinentry/ChangeLog
app-crypt/pinentry/Manifest
app-crypt/pinentry/files/pinentry-0.9.0-accessibility.patch [new file with mode: 0644]
app-crypt/pinentry/pinentry-0.9.0-r2.ebuild [new file with mode: 0644]

index e1f99bbd65c33ca5a9057348de4a251e3437205a..2978830637ead9f10897136da590d941fa6579c4 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for app-crypt/pinentry
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-crypt/pinentry/ChangeLog,v 1.164 2015/02/28 19:40:33 alonbl Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-crypt/pinentry/ChangeLog,v 1.165 2015/03/01 22:30:54 k_f Exp $
+
+*pinentry-0.9.0-r2 (01 Mar 2015)
+
+  01 Mar 2015; Kristian Fiskerstrand <k_f@gentoo.org>
+  +files/pinentry-0.9.0-accessibility.patch, +pinentry-0.9.0-r2.ebuild:
+  Fix for bug #541400
 
   28 Feb 2015; Alon Bar-Lev <alonbl@gentoo.org> -pinentry-0.8.2.ebuild,
   -pinentry-0.8.3.ebuild, -pinentry-0.8.4.ebuild:
index d99911543b075a1397f388cd512a8e6e270be8a9..9d23d659fcc2094cc750531e87796fd479058651 100644 (file)
@@ -3,15 +3,20 @@ Hash: SHA256
 
 AUX pinentry-0.8.2-ncurses.patch 824 SHA256 7d5e485e2c6dcce80ab63055d24761f53ae28e19b5ab2dacc424ebc7677805e8 SHA512 415ad55fd7a4ab66e87e5db76b1314b00f5a86552804f1f431a533ba1e7ec3f2c7136096106688b572639ceb637fdf0c3e25d96aa2e07fd1f6f295d39e1d4901 WHIRLPOOL 5483ccb6041e769387685ce987a19a2aa50835781a391169abbe7a838325149b81ce186692dbdc588858f74ef912a80f1eca6efb0f3421ace57925ca9c6f9ca5
 AUX pinentry-0.8.2-texi.patch 688 SHA256 47c5280fb82d0ba15338c60765c1ee37b368baf774a821f7afe85a7bf16dcbbc SHA512 4cd0b58a8719d0569d9a3c7c8258e609ccd6239436e3b981afcfb95859f8f4b898a8c29db3b310fb3611b285e58f89b09c9c9f8607a9168ee26ffc054ed9f680 WHIRLPOOL fd574ed478dcd9ff1a9306da1122f20d6f894ca055ed4f368f6796c5b41bfcff9c7842c8ed9a9b8a235ccd4031a153d9f0cf43e60e0cec16e482bcc021a21388
+AUX pinentry-0.9.0-accessibility.patch 2587 SHA256 80adf350a7fa17ab7d60b36d1d373f629c85424de96950c4156fe44e0c2691ae SHA512 2c337e71aad65af0fae7d82bacb08304e1c276cbc0cb318442669a3c711ea0be7b909a5ff9c6a5e846464d1e91645ec5a2c57d9deb5eaaa8b16ce3c5244684a8 WHIRLPOOL 02bf8215210b81f48a16a519b9207356fd32c42a42acd1eaeae9faf81e5f8b500c006a3491948b48df855b7a44cde4976753a71494ff1a1b1b407d2ed653af56
 DIST pinentry-0.9.0.tar.bz2 464272 SHA256 90045a07ab8e1a8e1ecf5d19b51691f195525e579fa5d71d7e92c120b05490ab SHA512 2cc53a5c3852edaf6e940228d9b43fe4709344eba5fe230b7afd22b2c0239d0b258917d75661d80590b2d61c6fe9dac8ad15a0b4a0a0e7fba90a9e1c07364edd WHIRLPOOL 3f77a8aa2d44c7206d877e31088ec927473441e61f06e788330545d75ac489e6e9d5bf0026b23d0824304dad54ce8e61c4571d186df7ad0edc2d644ca3af04ac
 EBUILD pinentry-0.9.0-r1.ebuild 2985 SHA256 b2bc39db7bf74f20cce4f14b8ba194e8e9e2d34b9f68f122c8c0487c62541815 SHA512 b17b889479003a87a663103ed78b25476e2af111a21c5bad416706176da100f3ed632f60906ebcab8fa4f2f122430642a97bf2b2a7f1bf4e5143c5e0d94bf26f WHIRLPOOL 6250f45c5ea2cff95638aa276953d0a43f7889c3d8c16bfbb1d10e151df54021af295f7bb048c235bfdeaeee2039fc0032c7bc81777e4fce759ab3c5705c3974
+EBUILD pinentry-0.9.0-r2.ebuild 3036 SHA256 72a38626c655131dce280a2ce630034a0c0c3a44090636033cb4ce77965c5735 SHA512 d22aa5c6cb6285d2248cb8f04d8314350c371b33fe314f2f84f2eebed90a8259f66b8454eb20e0d51ce1dd555368607a0641009cc4a1d9c8c6b871eae4818ec8 WHIRLPOOL feec856fc383095015ce1756d1aafb33a311d56ee469a4a030efafcd367929f32300ed52f9f187bc412a97ea400e4d598310c37063d4bd2d873da61e3a90be20
 EBUILD pinentry-0.9.0.ebuild 2899 SHA256 e47fabd6a6b36a4653332ee1dc81dce47f94d7606f3ac867f247ec2c5d9b41e5 SHA512 9e6e6b3b75c6c8e276b9996c3d22ca35917a44c2bdf67dac49d46a6762b2988be827af10ff950785f92328424a92e965fb96456bcb365fb40b20585af5579ff4 WHIRLPOOL f94e0084731cd592830a760628a42df75bb9215ee80e8120cc8775cc277568a65ce5eb23fbdd02e64931a415ad0e3eb7a932462e29db43abb7445e13c04f0db7
-MISC ChangeLog 21856 SHA256 1d47ae631361e9b3cb24e9d379e6e94b6e046865a180a5589a2394f391350cde SHA512 d520fadac01c6f1e4b4c328cb99dba0df4e9ad0817d288c2298f1f848de9f993eab5763548a250367125514be678301996b45b16350f73b84752f1e7788b22f3 WHIRLPOOL 9f99fd82cb1ecc40ee3db6eacae5b0d041f0b374b76379bb04853c63488db80a56217e16cf03310d9a6844a7e7e3f110ac28df818c9d5ecafc7e054585c6f808
+MISC ChangeLog 22036 SHA256 dc79386c6bbeda3bd22b8289a411651ddf69a5fd35d59c83c82a05b8fb7304df SHA512 f23bda8681993ba2d8240578c7f4d66fe169d29f0f67c6fc7bb62d2525205e7d41a13e585f0052dd0e1f8f2e2f3a07d86bdbaa528c78389499434100677e90ed WHIRLPOOL c201894d4343562d2de881b74144e305cf448c430fa576df9fcee53880fb4ca64f4a518485d358dd7e1f5c8a3108c30def7ce6eb71dbbbba96293bfd6b440c6f
 MISC metadata.xml 232 SHA256 0f9362f8e4539dec9b2feb1bd93d34e4dff44290f4dac44dd50f9d44de62360e SHA512 79b3d9679dd2d61479a24ef159f6a23758dad2b77679824bae7758c8f47375b4548e0adf135b3dae5c6d6eff23d134f9477a06fd29789d4fb98670431670bb01 WHIRLPOOL 2ac86da5a1d1512f358400d0616ca3baba6ad55d68ad68296975192cf4f60ed55a3faefe0c3290720d61f117e6c8b24b37cd017e8b8c21c77f977dda8d3212fa
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2
 
-iF4EAREIAAYFAlTyGbUACgkQXYk9GL8g3FHDWgD/cN5BE1uelwvu11yMzCWX+4zA
-pgcuPHT+bEk+9naaEjwBAJ/Ydcc4aD4OMPjoJCg0PRXt+GBPDrCzpv84zPNBOuTv
-=c2fH
+iQEcBAEBCAAGBQJU85MfAAoJEP7VAChXwav68ucIAJUINa2EmHH+akN+DfFtR2Vs
+tStJF4UJ3//mTUUJjZthLMqP6KnhOJ20ADAA1R0HDa1LVXL6dhxHDmGS/OCyNY8U
+CYLfr8oNSAn057QaSkV2Pxz5PideHPEM0cYrjHjVV50G91CaZqhfNnOhGhfk4Mbu
+s5/vTAGFEgL/hkm0Fd90eCjuf2AzgZpaZpwmF7l2TRsJLjjXBw3GvSJ5FfiE1zPw
+nSOst1MoW/cCI8LQN9GmOwwTYuO2MlikYYJKNwBmTKnS9tWGTmoTWPxAQ+MD/iaX
+yUmTaaIUafBSiaFVoFfhtL6aM8SEtipBymvWA/ZJuNhrJN8KhljOa8rETVoCRXM=
+=Bw+X
 -----END PGP SIGNATURE-----
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 (file)
index 0000000..20d6130
--- /dev/null
@@ -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/pinentry-0.9.0-r2.ebuild b/app-crypt/pinentry/pinentry-0.9.0-r2.ebuild
new file mode 100644 (file)
index 0000000..e9b62db
--- /dev/null
@@ -0,0 +1,100 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-crypt/pinentry/pinentry-0.9.0-r2.ebuild,v 1.1 2015/03/01 22:30:54 k_f Exp $
+
+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="clipboard gtk ncurses qt4 caps static"
+
+RDEPEND="
+       app-admin/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"
+       epatch "${FILESDIR}/${PN}-0.9.0-accessibility.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 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
+}