diff --git a/pinentry-1.2.1-gcr4.patch b/pinentry-1.2.1-gcr4.patch new file mode 100644 index 0000000..c74009e --- /dev/null +++ b/pinentry-1.2.1-gcr4.patch @@ -0,0 +1,68 @@ +From: Yaakov Selkowitz via Gnupg-devel +Date: Mon, 11 Mar 2024 03:19:36 +0000 (-0400) +Subject: gnome3: prefer gcr-4 +X-Git-Url: https://git.gnupg.org/cgi-bin/gitweb.cgi?p=pinentry.git;a=commitdiff_plain;h=069c2192234566c14840aefced795039d1f79137 + +gnome3: prefer gcr-4 + +Newer distributions are now using gcr-4, while older ones will still have +gcr-3. The APIs used by pinentry have not changed in between versions, +only the top-level header has changed. Also, for gcr-3, only gcr-base-3 +is required. + +(I have attempted to sign up for a dev.gnupg.org account, but am still +awaiting verification.) + +Signed-off-by: Yaakov Selkowitz +--- + +diff --git a/configure.ac b/configure.ac +index f9d090f..7dde8fb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -458,15 +458,24 @@ AM_CONDITIONAL(BUILD_PINENTRY_GTK_2, test "$pinentry_gtk_2" = "yes") + if test "$pinentry_gnome_3" != "no"; then + PKG_CHECK_MODULES( + GNOME3, +- [gcr-3,gcr-base-3], ++ [gcr-4], + [ + pinentry_gnome_3=yes + AC_DEFINE(GCR_API_SUBJECT_TO_CHANGE, 1, [Nod nod]) ++ AC_DEFINE(GCR_API_4, 1, [GCR API version]) + ], +- [ +- AC_MSG_WARN([pkg-config could not find the module gcr-3,gcr-base-3]) +- pinentry_gnome_3=no +- ] ++ [PKG_CHECK_MODULES( ++ GNOME3, ++ [gcr-base-3], ++ [ ++ pinentry_gnome_3=yes ++ AC_DEFINE(GCR_API_SUBJECT_TO_CHANGE, 1, [Nod nod]) ++ ], ++ [ ++ AC_MSG_WARN([pkg-config could not find the module gcr-4 or gcr-base-3]) ++ pinentry_gnome_3=no ++ ] ++ )] + ) + fi + +diff --git a/gnome3/pinentry-gnome3.c b/gnome3/pinentry-gnome3.c +index 8a8fbed..7f21d6f 100644 +--- a/gnome3/pinentry-gnome3.c ++++ b/gnome3/pinentry-gnome3.c +@@ -23,7 +23,11 @@ + # include "config.h" + #endif + ++#ifdef GCR_API_4 ++#include ++#else + #include ++#endif + + #include + #include diff --git a/pinentry.spec b/pinentry.spec index 3235789..b003d0b 100644 --- a/pinentry.spec +++ b/pinentry.spec @@ -5,7 +5,7 @@ Name: pinentry Version: 1.2.1 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Collection of simple PIN or passphrase entry dialogs License: GPL-2.0-or-later @@ -14,28 +14,28 @@ Source0: https://gnupg.org/ftp/gcrypt/pinentry/%{name}-%{version}.tar.bz2 Source1: https://gnupg.org/ftp/gcrypt/pinentry/%{name}-%{version}.tar.bz2.sig Patch1: pinentry-1.1.1-coverity.patch +# port gnome3 binary to gcr-4 +Patch2: pinentry-1.2.1-gcr4.patch # borrowed from opensuse Source10: pinentry-wrapper +BuildRequires: autoconf automake gettext-devel BuildRequires: make BuildRequires: gcc -# compat package for gnome 3 -BuildRequires: gcr3-devel -%if %{with gtk2} -BuildRequires: gtk2-devel -%endif BuildRequires: libcap-devel BuildRequires: ncurses-devel BuildRequires: libgpg-error-devel BuildRequires: libassuan-devel -BuildRequires: libsecret-devel +BuildRequires: pkgconfig(gcr-4) +BuildRequires: pkgconfig(libsecret-1) +%if %{with gtk2} +BuildRequires: pkgconfig(gtk+-2.0) +%endif %if %{with qt5} BuildRequires: pkgconfig(Qt5Core) pkgconfig(Qt5Gui) pkgconfig(Qt5Widgets) %endif -Requires(pre): %{_sbindir}/update-alternatives - Provides: %{name}-curses = %{version}-%{release} %description @@ -101,10 +101,12 @@ This package contains the tty version of the PIN entry dialog. %prep %setup -q -%patch1 -p1 -b .coverity +%patch -P1 -p1 -b .coverity +%patch -P2 -p1 -b .gcr4 %build +autoreconf -fiv %configure \ --disable-rpath \ --disable-dependency-tracking \ @@ -175,6 +177,9 @@ rm -fv $RPM_BUILD_ROOT%{_infodir}/dir %{_bindir}/pinentry-tty %changelog +* Mon Mar 11 2024 Yaakov Selkowitz - 1.2.1-7 +- Use gcr-4 in gnome3 binary + * Thu Jan 25 2024 Fedora Release Engineering - 1.2.1-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild