From 3619926bc1f99d291fc348d81bca07f3c66d8ced Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Mon, 27 Dec 2021 15:16:49 +0100 Subject: [PATCH] gnupg: mv scdaemon to subpackage and add dependency on libusb And fix so that configure script can find libusb headers. This makes it possible to access smartcards with gpg/scdaemon when running as root. It is not without flaws though, the gpg-agent daemon has to be manually stopped sometimes to make the card appear. Also seems quite hard to get some things to work when running gpg-agent and scdaemon as root: I haven't been able to do remote forwarding or sig git commits. --- packages/gnupg/build.sh | 3 ++- packages/gnupg/configure.patch | 20 +++++++++++++++----- packages/gnupg/scdaemon.subpackage.sh | 5 +++++ 3 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 packages/gnupg/scdaemon.subpackage.sh diff --git a/packages/gnupg/build.sh b/packages/gnupg/build.sh index 4541b7ced..e28c21fda 100644 --- a/packages/gnupg/build.sh +++ b/packages/gnupg/build.sh @@ -3,12 +3,13 @@ TERMUX_PKG_DESCRIPTION="Implementation of the OpenPGP standard for encrypting an TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=2.3.3 -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-${TERMUX_PKG_VERSION}.tar.bz2 TERMUX_PKG_SHA256=5789b86da6a1a6752efb38598f16a77af51170a8494039c3842b085032e8e937 TERMUX_PKG_DEPENDS="libassuan, libbz2, libgcrypt, libgnutls, libgpg-error, libksba, libnpth, libsqlite, readline, pinentry, resolv-conf, zlib" TERMUX_PKG_CONFLICTS="gnupg2 (<< 2.2.9-1), dirmngr (<< 2.2.17-1)" TERMUX_PKG_REPLACES="gnupg2 (<< 2.2.9-1), dirmngr (<< 2.2.17-1)" +TERMUX_PKG_SUGGESTS="scdaemon" TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" --disable-ldap --enable-sqlite diff --git a/packages/gnupg/configure.patch b/packages/gnupg/configure.patch index d6f0f380a..734facfcb 100644 --- a/packages/gnupg/configure.patch +++ b/packages/gnupg/configure.patch @@ -1,8 +1,18 @@ -diff -u -r ../gnupg-2.1.14/configure ./configure ---- ../gnupg-2.1.14/configure 2016-07-14 10:03:06.000000000 -0400 -+++ ./configure 2016-07-14 19:20:04.539115863 -0400 -@@ -14729,13 +14729,6 @@ - done +--- ../gnupg-2.3.3/configure 2021-10-12 17:15:17.000000000 +0200 ++++ ./configure 2021-12-27 23:19:18.022214970 +0100 +@@ -9281,8 +9281,8 @@ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking libusb include dir" >&5 + $as_echo_n "checking libusb include dir... " >&6; } + usb_incdir_found="no" +- for _incdir in "" "/usr/include/libusb-1.0" \ +- "/usr/local/include/libusb-1.0" "/usr/pkg/include/libusb-1.0"; do ++ for _incdir in "" "@TERMUX_PREFIX@/include/libusb-1.0" \ ++ "@TERMUX_PREFIX@/local/include/libusb-1.0" "@TERMUX_PREFIX@/pkg/include/libusb-1.0"; do + _libusb_save_cppflags=$CPPFLAGS + if test -n "${_incdir}"; then + CPPFLAGS="-I${_incdir} ${CPPFLAGS}" +@@ -15048,13 +15048,6 @@ + esac -if test "$have_android_system" = yes; then diff --git a/packages/gnupg/scdaemon.subpackage.sh b/packages/gnupg/scdaemon.subpackage.sh new file mode 100644 index 000000000..5d601accb --- /dev/null +++ b/packages/gnupg/scdaemon.subpackage.sh @@ -0,0 +1,5 @@ +TERMUX_SUBPKG_INCLUDE="libexec/scdaemon share/man/man1/scdaemon.1.gz" +TERMUX_SUBPKG_DESCRIPTION="Daemon invoked by gpg to manage smartcards" +TERMUX_SUBPKG_DEPENDS="libgcrypt, libksba, libgpg-error, libassuan, libnpth, libusb" +TERMUX_SUBPKG_CONFLICTS="gnupg (<< 2.3.3-2)" +TERMUX_SUBPKG_REPLACES="gnupg (<< 2.3.3-2)"