forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information
Showing
2 changed files
with
155 additions
and
0 deletions.
There are no files selected for viewing
52 changes: 52 additions & 0 deletions
52
app-crypt/pinentry/files/pinentry-1.0.0-make-icon-work-under-Plasma-Wayland.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
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 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
} |