[packages/pinentry] up to 1.3.0

atler atler at pld-linux.org
Sun May 12 20:25:20 CEST 2024


commit 8eca56a8cdea378a1dc3f151454290979b1cde26
Author: Jan Palus <atler at pld-linux.org>
Date:   Sun May 12 20:08:52 2024 +0200

    up to 1.3.0
    
    - packaged new qt6 based pinentry (kde helper deps commented out until
      kde6 reaches ftp)
    - "kwayland" bcond renamed to "kde" to handle both qt5 and qt6 optional
      kde deps
    - upstream patch to align mismtched defines between configure and code

 pinentry.spec    |  69 +++++++++++++++++++++------
 qt-defines.patch | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 195 insertions(+), 14 deletions(-)
---
diff --git a/pinentry.spec b/pinentry.spec
index d552577..8902231 100644
--- a/pinentry.spec
+++ b/pinentry.spec
@@ -7,23 +7,28 @@
 %bcond_without	gnome3		# GNOME 3 dialog
 %bcond_without	qt4		# Qt4 dialog
 %bcond_without	qt5		# Qt5 dialog
-%bcond_without	kwayland	# KF5WaylandClient for Qt5 dialog
+%bcond_without	qt6		# Qt6 dialog
+%bcond_without	kde		# don't use KDE deps (for Caps Lock detection/window parenting)
 #
 Summary:	Simple PIN or passphrase entry dialogs
 Summary(pl.UTF-8):	Proste kontrolki dialogowe do wpisywania PIN-ów lub haseł
 Name:		pinentry
-Version:	1.2.1
+Version:	1.3.0
 Release:	1
 License:	GPL v2+
 Group:		Applications
 Source0:	ftp://ftp.gnupg.org/gcrypt/pinentry/%{name}-%{version}.tar.bz2
-# Source0-md5:	be9b0d4bb493a139d2ec20e9b6872d37
+# Source0-md5:	ccae9619032fda53b234849c7c2253ac
 Patch0:		%{name}-info.patch
+Patch1:		qt-defines.patch
 URL:		http://www.gnupg.org/
-%{?with_qt5:BuildRequires:	Qt5Core-devel >= 5}
-%{?with_qt5:BuildRequires:	Qt5Gui-devel >= 5}
-%{?with_qt5:BuildRequires:	Qt5Widgets-devel >= 5}
-%{?with_qt5:BuildRequires:	Qt5X11Extras-devel >= 5}
+%{?with_qt5:BuildRequires:	Qt5Core-devel >= 5.0.0}
+%{?with_qt5:BuildRequires:	Qt5Gui-devel >= 5.0.0}
+%{?with_qt5:BuildRequires:	Qt5Widgets-devel >= 5.0.0}
+%{?with_qt5:BuildRequires:	Qt5X11Extras-devel >= 5.1.0}
+%{?with_qt6:BuildRequires:	Qt6Core-devel >= 6.4.0}
+%{?with_qt6:BuildRequires:	Qt6Gui-devel >= 6.4.0}
+%{?with_qt6:BuildRequires:	Qt6Widgets-devel >= 6.4.0}
 %{?with_qt4:BuildRequires:	QtCore-devel >= 4}
 %{?with_qt4:BuildRequires:	QtGui-devel >= 4}
 BuildRequires:	autoconf >= 2.69
@@ -31,10 +36,12 @@ BuildRequires:	automake >= 1:1.14
 %{?with_efl:BuildRequires:	elementary-devel >= 1.18}
 %{?with_fltk:BuildRequires:	fltk-devel >= 1.3}
 BuildRequires:	gettext-tools
-%{?with_gnome3:BuildRequires:	gcr-devel >= 3}
-%{?with_gnome3:BuildRequires:	gcr-ui-devel >= 3}
+%{?with_gnome3:BuildRequires:	gcr4-devel >= 4}
 %{?with_gtk2:BuildRequires:	gtk+2-devel >= 2:2.12.0}
-%{?with_qt5:%{?with_kwayland:BuildRequires:	kf5-kwayland-devel >= 5.91}}
+%{?with_qt5:%{?with_kde:BuildRequires:	kf5-kwayland-devel >= 5.91}}
+# not available in PLD yet
+#%{?with_qt6:%{?with_kde:BuildRequires:	kf6-kguiaddons-devel >= 5.240}}
+#%{?with_qt6:%{?with_kde:BuildRequires:	kf6-kwindowsystem-devel >= 5.240}}
 BuildRequires:	libassuan-devel >= 1:2.1.0
 BuildRequires:	libcap-devel
 BuildRequires:	libgpg-error-devel >= 1.16
@@ -43,6 +50,7 @@ BuildRequires:	ncurses-devel
 BuildRequires:	pkgconfig
 %{?with_qt4:BuildRequires:	qt4-build}
 %{?with_qt5:BuildRequires:	qt5-build}
+%{?with_qt6:BuildRequires:	qt6-build}
 BuildRequires:	texinfo
 Requires:	libassuan >= 1:2.1.0
 Requires:	libgpg-error >= 1.16
@@ -148,7 +156,7 @@ Prosta kontrolka dialogowa do wpisywania PIN-ów lub haseł dla Qt4.
 Summary:	Simple PIN or passphrase entry dialog for Qt5
 Summary(pl.UTF-8):	Prosta kontrolka dialogowa do wpisywania PIN-ów lub haseł dla Qt5
 Group:		X11/Applications
-%{?with_kwayland:Requires:	kf5-kwayland >= 5.60}
+%{?with_kde:Requires:	kf5-kwayland >= 5.60}
 Requires:	libassuan >= 1:2.1.0
 Requires:	libgpg-error >= 1.16
 
@@ -158,9 +166,30 @@ Simple PIN or passphrase entry dialog for Qt5.
 %description qt5 -l pl.UTF-8
 Prosta kontrolka dialogowa do wpisywania PIN-ów lub haseł dla Qt5.
 
+%package qt6
+Summary:	Simple PIN or passphrase entry dialog for Qt6
+Summary(pl.UTF-8):	Prosta kontrolka dialogowa do wpisywania PIN-ów lub haseł dla Qt6
+Group:		X11/Applications
+Requires:	Qt6Core >= 6.4.0
+Requires:	Qt6Gui >= 6.4.0
+Requires:	Qt6Widgets >= 6.4.0
+#%{?with_kde:Requires:	kf6-kguiaddons >= 5.240}
+#%{?with_kde:Requires:	kf6-kwindowsystem >= 5.240}
+Requires:	libassuan >= 1:2.1.0
+Requires:	libgpg-error >= 1.16
+
+%description qt6
+Simple PIN or passphrase entry dialog for Qt6.
+
+%description qt6 -l pl.UTF-8
+Prosta kontrolka dialogowa do wpisywania PIN-ów lub haseł dla Qt6.
+
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
+
+%{__sed} -i -e 's@^\(Exec=.*/pinentry-qt\)$@\16@' qt/org.gnupg.pinentry-qt.desktop.in
 
 %if 0
 cd qt4
@@ -187,8 +216,9 @@ CPPFLAGS="%{rpmcppflags} -I/usr/include/ncurses"
 	--enable-pinentry-fltk%{!?with_fltk:=no} \
 	--enable-pinentry-gnome3%{!?with_gnome3:=no} \
 	--enable-pinentry-gtk2%{!?with_gtk2:=no} \
-	--enable-pinentry-qt%{!?with_qt5:=no} \
+	--enable-pinentry-qt%{!?with_qt6:=no} \
 	--enable-pinentry-qt4%{!?with_qt4:=no} \
+	--enable-pinentry-qt5%{!?with_qt5:=no} \
 	--enable-pinentry-tty
 
 %{__make}
@@ -198,8 +228,9 @@ rm -rf $RPM_BUILD_ROOT
 
 %{__make} install \
 	DESTDIR=$RPM_BUILD_ROOT
-%if %{with qt5}
-%{__mv} $RPM_BUILD_ROOT%{_bindir}/pinentry-qt{,5}
+%if %{with qt6}
+%{__mv} $RPM_BUILD_ROOT%{_bindir}/pinentry-qt{,6}
+%{__mv} $RPM_BUILD_ROOT%{_desktopdir}/org.gnupg.pinentry-qt{,6}.desktop
 %endif
 
 %{__rm} $RPM_BUILD_ROOT%{_bindir}/pinentry
@@ -216,6 +247,8 @@ elif [ -x %{_bindir}/pinentry-gtk-2 ]; then
 	exec %{_bindir}/pinentry-gtk-2 "$@"
 elif [ -x %{_bindir}/pinentry-gtk ]; then
 	exec %{_bindir}/pinentry-gtk "$@"
+elif [ -x %{_bindir}/pinentry-qt6 ]; then
+	exec %{_bindir}/pinentry-qt6 "$@"
 elif [ -x %{_bindir}/pinentry-qt5 ]; then
 	exec %{_bindir}/pinentry-qt5 "$@"
 elif [ -x %{_bindir}/pinentry-qt4 ]; then
@@ -286,4 +319,12 @@ rm -rf $RPM_BUILD_ROOT
 %files qt5
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/pinentry-qt5
+%{_desktopdir}/org.gnupg.pinentry-qt5.desktop
+%endif
+
+%if %{with qt6}
+%files qt6
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/pinentry-qt6
+%{_desktopdir}/org.gnupg.pinentry-qt6.desktop
 %endif
diff --git a/qt-defines.patch b/qt-defines.patch
new file mode 100644
index 0000000..b4f8975
--- /dev/null
+++ b/qt-defines.patch
@@ -0,0 +1,140 @@
+From 844360c9c99d2f11dc4236c0ab6bdb9b56758898 Mon Sep 17 00:00:00 2001
+From: Heiko Becker <heiko.becker at kde.org>
+Date: Mon, 18 Mar 2024 20:38:09 +0100
+Subject: [PATCH] qt5: Add a '5' to adjust defines
+
+* qt5/capslock.cpp, qt5/capslock_p.h, qt5/capslock_unix.cpp: Check for
+correct defines.
+--
+
+They were changed from PINENTRY_QT_FOO to PINENTRY_QT5_FOO in
+1e79123c389584b8240387914b193be41b823e92.
+---
+ qt5/capslock.cpp      |  4 ++--
+ qt5/capslock_p.h      |  8 ++++----
+ qt5/capslock_unix.cpp | 14 +++++++-------
+ 3 files changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/qt5/capslock.cpp b/qt5/capslock.cpp
+index 2d20864..48cca4e 100644
+--- a/qt5/capslock.cpp
++++ b/qt5/capslock.cpp
+@@ -32,7 +32,7 @@
+ CapsLockWatcher::Private::Private(CapsLockWatcher *q)
+     : q{q}
+ {
+-#ifdef PINENTRY_QT_WAYLAND
++#ifdef PINENTRY_QT5_WAYLAND
+     if (qApp->platformName() == QLatin1String("wayland")) {
+         watchWayland();
+     }
+@@ -44,7 +44,7 @@ CapsLockWatcher::CapsLockWatcher(QObject *parent)
+     , d{new Private{this}}
+ {
+     if (qApp->platformName() == QLatin1String("wayland")) {
+-#ifndef PINENTRY_QT_WAYLAND
++#ifndef PINENTRY_QT5_WAYLAND
+         qWarning() << "CapsLockWatcher was compiled without support for Wayland";
+ #endif
+     }
+diff --git a/qt5/capslock_p.h b/qt5/capslock_p.h
+index 8c6fc49..65f0ad2 100644
+--- a/qt5/capslock_p.h
++++ b/qt5/capslock_p.h
+@@ -23,7 +23,7 @@
+ 
+ #include "capslock.h"
+ 
+-#ifdef PINENTRY_QT_WAYLAND
++#ifdef PINENTRY_QT5_WAYLAND
+ namespace KWayland
+ {
+ namespace Client
+@@ -38,12 +38,12 @@ class CapsLockWatcher::Private
+ {
+ public:
+     explicit Private(CapsLockWatcher *);
+-#ifdef PINENTRY_QT_WAYLAND
++#ifdef PINENTRY_QT5_WAYLAND
+     void watchWayland();
+ #endif
+ 
+ private:
+-#ifdef PINENTRY_QT_WAYLAND
++#ifdef PINENTRY_QT5_WAYLAND
+     void registry_seatAnnounced(quint32, quint32);
+     void seat_hasKeyboardChanged(bool);
+     void keyboard_modifiersChanged(quint32);
+@@ -52,7 +52,7 @@ private:
+ private:
+     CapsLockWatcher *const q;
+ 
+-#ifdef PINENTRY_QT_WAYLAND
++#ifdef PINENTRY_QT5_WAYLAND
+     KWayland::Client::Registry *registry = nullptr;
+     KWayland::Client::Seat *seat = nullptr;
+ #endif
+diff --git a/qt5/capslock_unix.cpp b/qt5/capslock_unix.cpp
+index 320f738..d1959cb 100644
+--- a/qt5/capslock_unix.cpp
++++ b/qt5/capslock_unix.cpp
+@@ -25,7 +25,7 @@
+ #include "capslock.h"
+ #include "capslock_p.h"
+ 
+-#ifdef PINENTRY_QT_WAYLAND
++#ifdef PINENTRY_QT5_WAYLAND
+ # include <KWayland/Client/connection_thread.h>
+ # include <KWayland/Client/keyboard.h>
+ # include <KWayland/Client/registry.h>
+@@ -34,7 +34,7 @@
+ 
+ #include <QGuiApplication>
+ 
+-#ifdef PINENTRY_QT_X11
++#ifdef PINENTRY_QT5_X11
+ # include <QX11Info>
+ # include <X11/XKBlib.h>
+ # undef Status
+@@ -42,25 +42,25 @@
+ 
+ #include <QDebug>
+ 
+-#ifdef PINENTRY_QT_WAYLAND
++#ifdef PINENTRY_QT5_WAYLAND
+ using namespace KWayland::Client;
+ #endif
+ 
+-#ifdef PINENTRY_QT_WAYLAND
++#ifdef PINENTRY_QT5_WAYLAND
+ static bool watchingWayland = false;
+ #endif
+ 
+ LockState capsLockState()
+ {
+     static bool reportUnsupportedPlatform = true;
+-#ifdef PINENTRY_QT_X11
++#ifdef PINENTRY_QT5_X11
+     if (qApp->platformName() == QLatin1String("xcb")) {
+         unsigned int state;
+         XkbGetIndicatorState(QX11Info::display(), XkbUseCoreKbd, &state);
+         return (state & 0x01) == 1 ? LockState::On : LockState::Off;
+     }
+ #endif
+-#ifdef PINENTRY_QT_WAYLAND
++#ifdef PINENTRY_QT5_WAYLAND
+     if (qApp->platformName() == QLatin1String("wayland")) {
+         if (!watchingWayland && reportUnsupportedPlatform) {
+             qDebug() << "Use CapsLockWatcher for checking for Caps Lock on Wayland";
+@@ -74,7 +74,7 @@ LockState capsLockState()
+     return LockState::Unknown;
+ }
+ 
+-#ifdef PINENTRY_QT_WAYLAND
++#ifdef PINENTRY_QT5_WAYLAND
+ void CapsLockWatcher::Private::watchWayland()
+ {
+     watchingWayland = true;
+-- 
+2.30.2
+
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/pinentry.git/commitdiff/8eca56a8cdea378a1dc3f151454290979b1cde26



More information about the pld-cvs-commit mailing list