summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app-crypt/pinentry/Manifest3
-rw-r--r--app-crypt/pinentry/files/pinentry-0.8.2-ncurses.patch25
-rw-r--r--app-crypt/pinentry/files/pinentry-1.0.0-AR.patch11
-rw-r--r--app-crypt/pinentry/files/pinentry-1.0.0-make-icon-work-under-Plasma-Wayland.patch52
-rw-r--r--app-crypt/pinentry/files/pinentry-1.2.1-automagic-capslock.patch99
-rw-r--r--app-crypt/pinentry/files/pinentry-for-tqt-configure-1.2.1.patch19
-rw-r--r--app-crypt/pinentry/pinentry-1.1.0-r3.ebuild110
-rw-r--r--app-crypt/pinentry/pinentry-1.2.1-r5.ebuild115
8 files changed, 246 insertions, 188 deletions
diff --git a/app-crypt/pinentry/Manifest b/app-crypt/pinentry/Manifest
index 96c7370b..b18692ca 100644
--- a/app-crypt/pinentry/Manifest
+++ b/app-crypt/pinentry/Manifest
@@ -1 +1,2 @@
-DIST pinentry-1.1.0.tar.bz2 467702 BLAKE2B cf43555848ab0dc60756fca123aba7599ebb1bfe0458b973ed9d84479f8de9ee69ef309b518b40aa340434d64d37793cf97c94f78f99820bc5c71ecd2aac7a49 SHA512 5012672925bcb5f683358c259e55e4b87c67cf063ad52c759308933733025c33f7ce08e5b8019ffc101cbf7ef30499040ef2fd34a7611698e65e1593f80948cd
+DIST pinentry-1.2.1.tar.bz2 547698 BLAKE2B aa47612aa3a6f74c3676bf4018780356cb22ed4078792c1f466f9e0465199428c151c0e20dfbe6c784ef93c2b42b673daff0b6adc74c8c98fed9921e65ed42ea SHA512 a665315628f4dcf07e16a22db3f3be15d7e7e93b3deec0546c7275b71b0e3bd65535a08af5e12d6339fd6595132df86529401d9d12bd17c428a3466e8dfafab6
+DIST pinentry-1.2.1.tar.bz2.sig 238 BLAKE2B 01ba3dc296a8e76c546d21d0bb0cd13778476d5d5b3ef55a3401c6a0353a56d79250d11555afb31c77c5a77e63847ded0f8eaef395bb0dc2ee3ff1d6a4ed83bd SHA512 d0e8435dc169a58f111f057f1c9fbb6c70da32a850f1107d6abdf41357c1714832728109ae61507db313d7eaef9596e5faf92fd21bed78adcc46a8c8a590430b
diff --git a/app-crypt/pinentry/files/pinentry-0.8.2-ncurses.patch b/app-crypt/pinentry/files/pinentry-0.8.2-ncurses.patch
deleted file mode 100644
index 3bb92c63..00000000
--- a/app-crypt/pinentry/files/pinentry-0.8.2-ncurses.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From bafe8608fc525ef103b3d1f3048ca28958bef596 Mon Sep 17 00:00:00 2001
-From: Alon Bar-Lev <[email protected]>
-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-1.0.0-AR.patch b/app-crypt/pinentry/files/pinentry-1.0.0-AR.patch
new file mode 100644
index 00000000..82af67f6
--- /dev/null
+++ b/app-crypt/pinentry/files/pinentry-1.0.0-AR.patch
@@ -0,0 +1,11 @@
+https://bugs.gentoo.org/718028
+--- a/configure.ac
++++ b/configure.ac
+@@ -80,6 +80,7 @@ AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
+ AC_PROG_CC
+ AC_PROG_CPP
+ AC_PROG_INSTALL
++AM_PROG_AR
+ AC_PROG_RANLIB
+ # We need to check for cplusplus here because we may not do the test
+ # for Qt and autoconf does does not allow that.
diff --git a/app-crypt/pinentry/files/pinentry-1.0.0-make-icon-work-under-Plasma-Wayland.patch b/app-crypt/pinentry/files/pinentry-1.0.0-make-icon-work-under-Plasma-Wayland.patch
deleted file mode 100644
index 646df196..00000000
--- a/app-crypt/pinentry/files/pinentry-1.0.0-make-icon-work-under-Plasma-Wayland.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 7218becac7132c2508d4e8f42c693d69c406795a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= <[email protected]>
-Date: Wed, 7 Mar 2018 15:14:22 +0100
-Subject: [PATCH] Make pinentry-qt icon work under Plasma Wayland.
-
----
- qt/Makefile.am | 2 ++
- qt/main.cpp | 2 ++
- qt/org.gnupg.pinentry-qt.desktop | 5 +++++
- 3 files changed, 9 insertions(+)
- create mode 100644 qt/org.gnupg.pinentry-qt.desktop
-
-diff --git a/qt/Makefile.am b/qt/Makefile.am
-index 698005e..bbf39d1 100644
---- a/qt/Makefile.am
-+++ b/qt/Makefile.am
-@@ -24,6 +24,8 @@ bin_PROGRAMS = pinentry-qt
-
- EXTRA_DIST = document-encrypt.png pinentry.qrc
-
-+desktopdir = $(datadir)/applications
-+dist_desktop_DATA = org.gnupg.pinentry-qt.desktop
-
- if FALLBACK_CURSES
- ncurses_include = $(NCURSES_INCLUDE)
-diff --git a/qt/main.cpp b/qt/main.cpp
-index fe88d26..b767cb4 100644
---- a/qt/main.cpp
-+++ b/qt/main.cpp
-@@ -372,6 +372,8 @@ main(int argc, char *argv[])
- i = argc;
- app = new QApplication(i, new_argv);
- app->setWindowIcon(QIcon(QLatin1String(":/document-encrypt.png")));
-+ app->setOrganizationDomain(QStringLiteral("gnupg.org"));
-+ app->setDesktopFileName(QStringLiteral("org.gnupg.pinentry-qt"));
- }
-
- pinentry_parse_opts(argc, argv);
-diff --git a/qt/org.gnupg.pinentry-qt.desktop b/qt/org.gnupg.pinentry-qt.desktop
-new file mode 100644
-index 0000000..0ac89aa
---- /dev/null
-+++ b/qt/org.gnupg.pinentry-qt.desktop
-@@ -0,0 +1,5 @@
-+[Desktop Entry]
-+Type=Application
-+Name=Pinentry dialog
-+Icon=document-encrypt
-+NoDisplay=true
---
-2.16.1
-
diff --git a/app-crypt/pinentry/files/pinentry-1.2.1-automagic-capslock.patch b/app-crypt/pinentry/files/pinentry-1.2.1-automagic-capslock.patch
new file mode 100644
index 00000000..081fad60
--- /dev/null
+++ b/app-crypt/pinentry/files/pinentry-1.2.1-automagic-capslock.patch
@@ -0,0 +1,99 @@
+https://dev.gnupg.org/T6161
+https://bugs.gentoo.org/819939
+https://bugs.gentoo.org/837719
+--- a/configure.ac
++++ b/configure.ac
+@@ -508,8 +508,12 @@ fi
+ dnl
+ dnl Check for libX11 library
+ dnl
++AC_ARG_WITH(x,
++ AS_HELP_STRING([--with-x],[use libX11]),
++ [want_x11=$withval], [want_x11=maybe])
++
+ have_x11=no
+-if test "$have_w32_system" != "yes"; then
++AS_IF([test "$have_w32_system" != "yes" && test "$want_x11" != "no"], [
+ PKG_CHECK_MODULES(
+ LIBX11,
+ [x11],
+@@ -519,18 +523,20 @@ if test "$have_w32_system" != "yes"; then
+ have_x11=no
+ ]
+ )
++])
+
+- if test "$have_x11" = "yes"; then
+- AC_DEFINE(HAVE_X11, 1,
+- [The pinentries can optionally use x11.])
+- fi
+-fi
++AS_IF([test "$have_x11" = "yes"], [AC_DEFINE(HAVE_X11, 1, [The pinentries can optionally use x11.])])
+
+ dnl
+ dnl Check for KF5WaylandClient library
+ dnl
++
++AC_ARG_ENABLE(kf5-wayland,
++ AS_HELP_STRING([--enable-kf5-wayland],[use KF5WaylandClient for capslock indication on Wayland]),
++ [want_kf5_wayland=$enableval], [want_kf5_wayland=maybe])
++
+ have_kf5waylandclient=no
+-if test "$have_w32_system" != "yes"; then
++AS_IF([test "$have_w32_system" != "yes" && test "$want_kf5_wayland" != "no"], [
+ PKG_CHECK_MODULES(
+ KF5WAYLANDCLIENT,
+ [KF5WaylandClient >= 5.60],
+@@ -540,7 +546,7 @@ if test "$have_w32_system" != "yes"; then
+ have_kf5waylandclient=no
+ ]
+ )
+-fi
++])
+
+ dnl
+ dnl Check for Qt5 pinentry program.
+--- a/m4/qt.m4
++++ b/m4/qt.m4
+@@ -33,6 +33,10 @@ AC_DEFUN([FIND_QT],
+ enable_pinentry_qt5=$enableval,
+ enable_pinentry_qt5="try")
+
++ AC_ARG_ENABLE(qtx11extras,
++ AS_HELP_STRING([--enable-qtx11extras],[use Qt5X11Extras for capslock indication on X11]),
++ [want_qtx11extras=$enableval], [want_qtx11extras=maybe])
++
+ have_qt5_libs="no";
+ require_qt_cpp11="no";
+
+@@ -63,20 +67,22 @@ AC_DEFUN([FIND_QT],
+ fi
+ fi
+
+- if test "$have_x11" = "yes"; then
++ have_qt5_x11extras=no
++ AS_IF([test "$have_x11" = "yes" && test "$want_qtx11extras" != "no"], [
+ PKG_CHECK_MODULES(
+ PINENTRY_QT_X11_EXTRAS,
+ Qt5X11Extras >= 5.1.0,
+ [have_qt5_x11extras="yes"],
+- [
+- AC_MSG_WARN([pinentry-qt will be built without Caps Lock warning on X11])
+- have_qt5_x11extras="no"
+- ])
+- if test "$have_qt5_x11extras" = "yes"; then
++ [have_qt5_x11extras="no"]
++ )
++ ])
++
++ AS_IF([test "$have_qt5_x11extras" = "yes"], [
+ PINENTRY_QT_CFLAGS="$LIBX11_CFLAGS $PINENTRY_QT_CFLAGS $PINENTRY_QT_X11_EXTRAS_CFLAGS"
+ PINENTRY_QT_LIBS="$LIBX11_LIBS $PINENTRY_QT_LIBS $PINENTRY_QT_X11_EXTRAS_LIBS"
+- fi
+- fi
++ ], [
++ AC_MSG_WARN([pinentry-qt will be built without Caps Lock warning on X11])
++ ])
+
+ AC_CHECK_TOOL(MOC, moc)
+ AC_MSG_CHECKING([moc version])
diff --git a/app-crypt/pinentry/files/pinentry-for-tqt-configure-1.2.1.patch b/app-crypt/pinentry/files/pinentry-for-tqt-configure-1.2.1.patch
new file mode 100644
index 00000000..e6dafbeb
--- /dev/null
+++ b/app-crypt/pinentry/files/pinentry-for-tqt-configure-1.2.1.patch
@@ -0,0 +1,19 @@
+diff -urN pinentry-1.2.1.orig/configure.ac pinentry-1.2.1/configure.ac
+--- pinentry-1.2.1.orig/configure.ac 2023-12-27 14:38:13.605366651 +0300
++++ pinentry-1.2.1/configure.ac 2023-12-27 14:38:53.221364994 +0300
+@@ -642,15 +642,6 @@
+
+ if test "$pinentry_tqt" != "no"; then
+
+- if test "$pinentry_qt" = "yes"; then
+- AC_MSG_ERROR([[
+- ***
+- *** Building both Qt and TQt pinentries is not supported.
+- *** Use --disable-pinentry-qt and --disable-pinentry-qt4
+- *** if you want the TQt pinentry.
+- ***]])
+- fi
+-
+ PKG_CHECK_MODULES(PINENTRY_TQT, tqt,
+ have_tqt_libs=yes,
+ [PKG_CHECK_MODULES(PINENTRY_TQT, tqt-mt,
diff --git a/app-crypt/pinentry/pinentry-1.1.0-r3.ebuild b/app-crypt/pinentry/pinentry-1.1.0-r3.ebuild
deleted file mode 100644
index 64a092c2..00000000
--- a/app-crypt/pinentry/pinentry-1.1.0-r3.ebuild
+++ /dev/null
@@ -1,110 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Copyright 2020 The Trinity Desktop Project
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-inherit autotools flag-o-matic qmake-utils toolchain-funcs
-
-DESCRIPTION="Simple passphrase entry dialogs which utilize the Assuan protocol"
-HOMEPAGE="https://gnupg.org/aegypten2/index.html"
-SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="caps emacs fltk gnome-keyring gtk ncurses qt5 tqt static"
-
-DEPEND="
- app-eselect/eselect-pinentry
- >=dev-libs/libassuan-2.1
- >=dev-libs/libgcrypt-1.6.3
- >=dev-libs/libgpg-error-1.17
- caps? ( sys-libs/libcap )
- fltk? ( x11-libs/fltk )
- gnome-keyring? ( app-crypt/libsecret )
- gtk? ( x11-libs/gtk+:2 )
- ncurses? ( sys-libs/ncurses:0= )
- qt5? (
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qtwidgets:5
- )
- tqt? ( dev-tqt/tqt )
- static? ( >=sys-libs/ncurses-5.7-r5:0=[static-libs,-gpm] )
-"
-RDEPEND="${DEPEND}
- gnome-keyring? ( app-crypt/gcr )
-"
-BDEPEND="
- sys-devel/gettext
- virtual/pkgconfig
-"
-
-REQUIRED_USE="
- gtk? ( !static )
- qt5? ( !static )
- tqt? ( !static )
-"
-
-DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.0.0-make-icon-work-under-Plasma-Wayland.patch"
- "${FILESDIR}/${PN}-0.8.2-ncurses.patch"
-)
-
-src_prepare() {
- default
- eautoreconf
-}
-
-src_configure() {
- use static && append-ldflags -static
- [[ "$(gcc-major-version)" -ge 5 ]] && append-cxxflags -std=gnu++11
-
- export QTLIB="$(qt5_get_libdir)"
-
- econf \
- $(use_enable emacs pinentry-emacs) \
- $(use_enable fltk pinentry-fltk) \
- $(use_enable gnome-keyring libsecret) \
- $(use_enable gnome-keyring pinentry-gnome3) \
- $(use_enable gtk pinentry-gtk2) \
- $(use_enable ncurses fallback-curses) \
- $(use_enable ncurses pinentry-curses) \
- $(use_enable qt5 pinentry-qt) \
- $(use_enable tqt pinentry-tqt) \
- $(use_with caps libcap) \
- --enable-pinentry-tty \
- FLTK_CONFIG="${ESYSROOT}/usr/bin/fltk-config" \
- MOC="$(qt5_get_bindir)"/moc \
- GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" \
- LIBASSUAN_CONFIG="${ESYSROOT}/usr/bin/libassuan-config" \
- $("${S}/configure" --help | grep -- '--without-.*-prefix' | sed -e 's/^ *\([^ ]*\) .*/\1/g')
-}
-
-src_install() {
- default
- rm -f "${ED}"/usr/bin/pinentry
-
- use qt5 && dosym pinentry-qt /usr/bin/pinentry-qt4
-}
-
-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-1.2.1-r5.ebuild b/app-crypt/pinentry/pinentry-1.2.1-r5.ebuild
new file mode 100644
index 00000000..4458a4d5
--- /dev/null
+++ b/app-crypt/pinentry/pinentry-1.2.1-r5.ebuild
@@ -0,0 +1,115 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc
+inherit autotools qmake-utils verify-sig
+
+DESCRIPTION="Simple passphrase entry dialogs which utilize the Assuan protocol"
+HOMEPAGE="https://gnupg.org/aegypten2"
+SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
+SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="caps efl emacs gtk keyring ncurses qt5 tqt wayland X"
+
+DEPEND="
+ >=dev-libs/libassuan-2.1
+ >=dev-libs/libgcrypt-1.6.3
+ >=dev-libs/libgpg-error-1.17
+ efl? ( dev-libs/efl[X] )
+ keyring? ( app-crypt/libsecret )
+ ncurses? ( sys-libs/ncurses:= )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ wayland? ( kde-plasma/kwayland:5 )
+ X? (
+ dev-qt/qtx11extras:5
+ x11-libs/libX11
+ )
+ )
+ tqt? ( dev-tqt/tqt )
+"
+RDEPEND="
+ ${DEPEND}
+ gtk? ( app-crypt/gcr:0[gtk] )
+"
+BDEPEND="
+ sys-devel/gettext
+ virtual/pkgconfig
+ verify-sig? ( sec-keys/openpgp-keys-gnupg )
+"
+IDEPEND=">=app-eselect/eselect-pinentry-0.7.2"
+
+DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.0.0-AR.patch"
+ "${FILESDIR}/${PN}-1.2.1-automagic-capslock.patch" # bug #819939, bug #837719
+ "${FILESDIR}/${PN}-for-tqt-configure-1.2.1.patch"
+)
+
+src_prepare() {
+ default
+
+ sed "s/Q_EXPORT/TQ_EXPORT/g" -i "${S}/tqt/secqinternal_p.h" || die
+ sed "s/Q_EXPORT/TQ_EXPORT/g" -i "${S}/tqt/secqlineedit.h" || die
+ sed "s/Q_EXPORT/TQ_EXPORT/g" -i "${S}/tqt/secqstring.cpp" || die
+ sed "s/Q_EXPORT/TQ_EXPORT/g" -i "${S}/tqt/secqstring.h" || die
+
+ unset FLTK_CONFIG
+
+ eautoreconf
+}
+
+src_configure() {
+ export PATH="$(qt5_get_bindir):${PATH}"
+ export QTLIB="$(qt5_get_libdir)"
+
+ local myeconfargs=(
+ $(use_enable efl pinentry-efl)
+ $(use_enable emacs pinentry-emacs)
+ $(use_enable keyring libsecret)
+ $(use_enable gtk pinentry-gnome3)
+ $(use_enable ncurses fallback-curses)
+ $(use_enable ncurses pinentry-curses)
+ $(use_enable qt5 pinentry-qt)
+ $(use_enable tqt pinentry-tqt)
+ $(use_enable wayland kf5-wayland)
+ $(use_enable X qtx11extras)
+ $(use_with X x)
+
+ --enable-pinentry-tty
+ --disable-pinentry-fltk
+ --disable-pinentry-gtk2
+
+ MOC="$(qt5_get_bindir)"/moc
+ GPG_ERROR_CONFIG="${ESYSROOT}"/usr/bin/${CHOST}-gpg-error-config
+ LIBASSUAN_CONFIG="${ESYSROOT}"/usr/bin/libassuan-config
+
+ $("${S}/configure" --help | grep -- '--without-.*-prefix' | sed -e 's/^ *\([^ ]*\) .*/\1/g')
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ rm "${ED}"/usr/bin/pinentry || die
+
+ use qt5 && dosym pinentry-qt /usr/bin/pinentry-qt5
+}
+
+pkg_postinst() {
+ eselect pinentry update ifunset
+}
+
+pkg_postrm() {
+ eselect pinentry update ifunset
+}