Преглед изворни кода

package/libp11: fix build with libressl

Fix the following build failure with libressl:

p11_rsa.c:355:14: error: static declaration of 'RSA_meth_get_finish' follows non-static declaration
  355 | static int (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa)
      |              ^~~~~~~~~~~~~~~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/de3b1e97796f717eac47d291911e3e1517cb557b

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
(cherry picked from commit 581d397ec0c437aac06a9eaeca01de4ed9249faf)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Fabrice Fontaine пре 3 година
родитељ
комит
97fcc6ef0e
2 измењених фајлова са 33 додато и 1 уклоњено
  1. 26 0
      package/libp11/0001-Update-wp11_rsa.c.patch
  2. 7 1
      package/libp11/libp11.mk

+ 26 - 0
package/libp11/0001-Update-wp11_rsa.c.patch

@@ -0,0 +1,26 @@
+From 4968cfc64dbaa39bb479a24d9578d75099e2f337 Mon Sep 17 00:00:00 2001
+From: patchMonkey156 <pagorman@asu.edu>
+Date: Mon, 19 Oct 2020 17:12:15 -0400
+Subject: [PATCH] Update p11_rsa.c
+
+Bugfix for new LibreSSL version 3.2.2
+[Retrieved from:
+https://github.com/OpenSC/libp11/commit/4968cfc64dbaa39bb479a24d9578d75099e2f337]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ src/p11_rsa.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/p11_rsa.c b/src/p11_rsa.c
+index b6beef0..ff12ed7 100644
+--- a/src/p11_rsa.c
++++ b/src/p11_rsa.c
+@@ -336,7 +336,7 @@ int pkcs11_get_key_size(PKCS11_KEY *key)
+ 	return RSA_size(rsa);
+ }
+ 
+-#if OPENSSL_VERSION_NUMBER < 0x10100005L || defined(LIBRESSL_VERSION_NUMBER)
++#if ( ( defined (OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x10100005L ) || ( defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3020199L ) )
+ 
+ int (*RSA_meth_get_priv_enc(const RSA_METHOD *meth))
+ 		(int flen, const unsigned char *from,

+ 7 - 1
package/libp11/libp11.mk

@@ -11,10 +11,16 @@ LIBP11_INSTALL_STAGING = YES
 LIBP11_LICENSE = LGPL-2.1+
 LIBP11_LICENSE = LGPL-2.1+
 LIBP11_LICENSE_FILES = COPYING
 LIBP11_LICENSE_FILES = COPYING
 
 
+ifeq ($(BR2_PACKAGE_LIBOPENSSL),y)
+LIBP11_ENGINESDIR = enginesdir
+else ifeq ($(BR2_PACKAGE_LIBRESSL),y)
+LIBP11_ENGINESDIR = libdir
+endif
+
 # pkg-config returns a libcrypto enginesdir prefixed with the sysroot,
 # pkg-config returns a libcrypto enginesdir prefixed with the sysroot,
 # so let's rip it out.
 # so let's rip it out.
 LIBP11_CONF_OPTS = \
 LIBP11_CONF_OPTS = \
-	--with-enginesdir=`$(PKG_CONFIG_HOST_BINARY) --variable enginesdir libcrypto | xargs readlink -f | sed 's%^$(STAGING_DIR)%%'`
+	--with-enginesdir=`$(PKG_CONFIG_HOST_BINARY) --variable $(LIBP11_ENGINESDIR) libcrypto | xargs readlink -f | sed 's%^$(STAGING_DIR)%%'`
 
 
 ifeq ($(BR2_PACKAGE_P11_KIT),y)
 ifeq ($(BR2_PACKAGE_P11_KIT),y)
 LIBP11_CONF_OPTS += --with-pkcs11-module=/usr/lib/p11-kit-proxy.so
 LIBP11_CONF_OPTS += --with-pkcs11-module=/usr/lib/p11-kit-proxy.so