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 -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?= -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 '=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 +}