app-crypt/pinentry: Make pinentry-qt icon show under Plasma-Wayland

Bug: https://dev.gnupg.org/T3449
Closes: https://bugs.gentoo.org/634356
Thanks-To: Andrius Štikonas
Package-Manager: Portage-2.3.24, Repoman-2.3.6
This commit is contained in:
Kristian Fiskerstrand
2018-03-21 20:34:44 +01:00
parent 9c1d96bbe9
commit 1dd048d3ae
2 changed files with 155 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
From 7218becac7132c2508d4e8f42c693d69c406795a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= <andrius@stikonas.eu>
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

View File

@@ -0,0 +1,103 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
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="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="caps emacs gnome-keyring gtk ncurses qt5 static"
CDEPEND="
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 )
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
)
static? ( >=sys-libs/ncurses-5.7-r5:0=[static-libs,-gpm] )
"
DEPEND="${CDEPEND}
sys-devel/gettext
virtual/pkgconfig
"
RDEPEND="${CDEPEND}
gnome-keyring? ( app-crypt/gcr )
"
REQUIRED_USE="
gtk? ( !static )
qt5? ( !static )
"
DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
PATCHES=(
"${FILESDIR}/${PN}-0.8.2-ncurses.patch"
"${FILESDIR}/${P}-build.patch"
"${FILESDIR}/${P}-Disable-tooltips-in-keyboard-grabbing-mode.patch"
"${FILESDIR}/${P}-gtk2-Fix-a-problem-with-fvwm.patch"
"${FILESDIR}/${P}-make-icon-work-under-Plasma-Wayland.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 \
--enable-pinentry-tty \
$(use_with caps libcap) \
$(use_enable emacs pinentry-emacs) \
$(use_enable gnome-keyring libsecret) \
$(use_enable gnome-keyring pinentry-gnome3) \
$(use_enable gtk pinentry-gtk2) \
$(use_enable ncurses pinentry-curses) \
$(use_enable ncurses fallback-curses) \
$(use_enable qt5 pinentry-qt) \
MOC="$(qt5_get_bindir)"/moc
}
src_install() {
default
rm -f "${ED}"/usr/bin/pinentry || die
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
}