From 01638c7e3c6fab0c1679bd5153ecb4764b9830c7 Mon Sep 17 00:00:00 2001 From: Alexander Golubev Date: Thu, 28 Dec 2023 17:02:52 +0300 Subject: app-crypt/*: move pinentry[tqt] into pinentry-tqt Signed-off-by: Alexander Golubev --- app-crypt/pinentry-tqt/Manifest | 2 + .../pinentry-tqt/files/pinentry-tqt-1.0.0-AR.patch | 11 +++ .../pinentry-tqt-1.2.1-automagic-capslock.patch | 99 ++++++++++++++++++++++ app-crypt/pinentry-tqt/metadata.xml | 11 +++ app-crypt/pinentry-tqt/pinentry-tqt-1.2.1.ebuild | 93 ++++++++++++++++++++ 5 files changed, 216 insertions(+) create mode 100644 app-crypt/pinentry-tqt/Manifest create mode 100644 app-crypt/pinentry-tqt/files/pinentry-tqt-1.0.0-AR.patch create mode 100644 app-crypt/pinentry-tqt/files/pinentry-tqt-1.2.1-automagic-capslock.patch create mode 100644 app-crypt/pinentry-tqt/metadata.xml create mode 100644 app-crypt/pinentry-tqt/pinentry-tqt-1.2.1.ebuild (limited to 'app-crypt/pinentry-tqt') diff --git a/app-crypt/pinentry-tqt/Manifest b/app-crypt/pinentry-tqt/Manifest new file mode 100644 index 00000000..b18692ca --- /dev/null +++ b/app-crypt/pinentry-tqt/Manifest @@ -0,0 +1,2 @@ +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-tqt/files/pinentry-tqt-1.0.0-AR.patch b/app-crypt/pinentry-tqt/files/pinentry-tqt-1.0.0-AR.patch new file mode 100644 index 00000000..82af67f6 --- /dev/null +++ b/app-crypt/pinentry-tqt/files/pinentry-tqt-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-tqt/files/pinentry-tqt-1.2.1-automagic-capslock.patch b/app-crypt/pinentry-tqt/files/pinentry-tqt-1.2.1-automagic-capslock.patch new file mode 100644 index 00000000..081fad60 --- /dev/null +++ b/app-crypt/pinentry-tqt/files/pinentry-tqt-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-tqt/metadata.xml b/app-crypt/pinentry-tqt/metadata.xml new file mode 100644 index 00000000..6e389b9f --- /dev/null +++ b/app-crypt/pinentry-tqt/metadata.xml @@ -0,0 +1,11 @@ + + + + + team-gentoo@trinitydesktop.org + Trinity Gentoo ebuilds project + + + Add ncurses fallback in case tqt GUI won't be able to show a window + + diff --git a/app-crypt/pinentry-tqt/pinentry-tqt-1.2.1.ebuild b/app-crypt/pinentry-tqt/pinentry-tqt-1.2.1.ebuild new file mode 100644 index 00000000..ae553a66 --- /dev/null +++ b/app-crypt/pinentry-tqt/pinentry-tqt-1.2.1.ebuild @@ -0,0 +1,93 @@ +# 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 verify-sig + +DESCRIPTION="A tqt version of pinentry passphrase dialog" +HOMEPAGE="https://gnupg.org/aegypten2" +MY_PN=pinentry +SRC_URI="mirror://gnupg/${MY_PN}/${MY_PN}-${PV}.tar.bz2" +SRC_URI+=" verify-sig? ( mirror://gnupg/${MY_PN}/${MY_PN}-${PV}.tar.bz2.sig )" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="caps keyring ncurses" + +DEPEND=" + >=dev-libs/libassuan-2.1 + >=dev-libs/libgpg-error-1.17 + keyring? ( app-crypt/libsecret ) + ncurses? ( sys-libs/ncurses:= ) + >=dev-tqt/tqt-14.1.1 +" +RDEPEND=" + ${DEPEND} + app-crypt/pinentry +" +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 ) +DOCS=( ) + +PATCHES=( + "${FILESDIR}/${PN}-1.0.0-AR.patch" + "${FILESDIR}/${PN}-1.2.1-automagic-capslock.patch" # bug #819939, bug #837719 +) + +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 + + eautoreconf +} + +src_configure() { + local myeconfargs=( + $(use_enable keyring libsecret) + $(use_enable ncurses fallback-curses) + --enable-pinentry-tqt + --disable-kf5-wayland + --disable-pinentry-{tty,efl,emacs,gnome3,curses,qt,fltk,gtk2} + --disable-pinentry-fltk + --disable-pinentry-gtk2 + --disable-doc + + $("${S}/configure" --help | grep -- '--without-.*-prefix' | sed -e 's/^ *\([^ ]*\) .*/\1/g') + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + + rm "${ED}"/usr/bin/pinentry || die +} + +pkg_postinst() { +# eselect pinentry update ifunset + ewarn "As for now eselect doesn't support pinentry-tqt, So in order to use it as" + ewarn "your default pinentry input method you will have to symlink it manually:" + ewarn " ln -nsf pinentry-tqt /usr/bin/pinentry" + ewarn + ewarn "Alternatively you may add the following line to your gpg-agent.conf:" + ewarn " pinentry-program /usr/bin/pinentry-tqt" +} + +pkg_postrm() { + eselect pinentry update ifunset +} -- cgit v1.2.1