Use gcr-4 in gnome3 binary

https://lists.gnupg.org/pipermail/gnupg-devel/2024-March/035511.html
This commit is contained in:
Yaakov Selkowitz 2024-03-10 23:23:45 -04:00
parent 5752f51381
commit e0030de03b
2 changed files with 83 additions and 10 deletions

68
pinentry-1.2.1-gcr4.patch Normal file
View File

@ -0,0 +1,68 @@
From: Yaakov Selkowitz via Gnupg-devel <gnupg-devel@gnupg.org>
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 <yselkowi@redhat.com>
---
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 <gcr/gcr.h>
+#else
#include <gcr/gcr-base.h>
+#endif
#include <string.h>
#include <stdlib.h>

View File

@ -5,7 +5,7 @@
Name: pinentry Name: pinentry
Version: 1.2.1 Version: 1.2.1
Release: 6%{?dist} Release: 7%{?dist}
Summary: Collection of simple PIN or passphrase entry dialogs Summary: Collection of simple PIN or passphrase entry dialogs
License: GPL-2.0-or-later 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 Source1: https://gnupg.org/ftp/gcrypt/pinentry/%{name}-%{version}.tar.bz2.sig
Patch1: pinentry-1.1.1-coverity.patch Patch1: pinentry-1.1.1-coverity.patch
# port gnome3 binary to gcr-4
Patch2: pinentry-1.2.1-gcr4.patch
# borrowed from opensuse # borrowed from opensuse
Source10: pinentry-wrapper Source10: pinentry-wrapper
BuildRequires: autoconf automake gettext-devel
BuildRequires: make BuildRequires: make
BuildRequires: gcc BuildRequires: gcc
# compat package for gnome 3
BuildRequires: gcr3-devel
%if %{with gtk2}
BuildRequires: gtk2-devel
%endif
BuildRequires: libcap-devel BuildRequires: libcap-devel
BuildRequires: ncurses-devel BuildRequires: ncurses-devel
BuildRequires: libgpg-error-devel BuildRequires: libgpg-error-devel
BuildRequires: libassuan-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} %if %{with qt5}
BuildRequires: pkgconfig(Qt5Core) pkgconfig(Qt5Gui) pkgconfig(Qt5Widgets) BuildRequires: pkgconfig(Qt5Core) pkgconfig(Qt5Gui) pkgconfig(Qt5Widgets)
%endif %endif
Requires(pre): %{_sbindir}/update-alternatives
Provides: %{name}-curses = %{version}-%{release} Provides: %{name}-curses = %{version}-%{release}
%description %description
@ -101,10 +101,12 @@ This package contains the tty version of the PIN entry dialog.
%prep %prep
%setup -q %setup -q
%patch1 -p1 -b .coverity %patch -P1 -p1 -b .coverity
%patch -P2 -p1 -b .gcr4
%build %build
autoreconf -fiv
%configure \ %configure \
--disable-rpath \ --disable-rpath \
--disable-dependency-tracking \ --disable-dependency-tracking \
@ -175,6 +177,9 @@ rm -fv $RPM_BUILD_ROOT%{_infodir}/dir
%{_bindir}/pinentry-tty %{_bindir}/pinentry-tty
%changelog %changelog
* Mon Mar 11 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 1.2.1-7
- Use gcr-4 in gnome3 binary
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-6 * Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild