gnu: gnutls-3.6.13: Cross-build fix.

* gnu/packages/patches/gnutls-cross.patch: New file.
* gnu/packages/tls.scm (gnutls-3.6.13)[source]: Use it.
[native-inputs]: If cross-compiling, add native guile-3.0.  This
actually cross compiles .go modules.
This commit is contained in:
Jan (janneke) Nieuwenhuizen 2020-04-10 07:34:03 +02:00 committed by Jan Nieuwenhuizen
parent 541122957c
commit 7eee37cd56
No known key found for this signature in database
GPG key ID: F3C1A0D9C1D65273
3 changed files with 91 additions and 2 deletions

View file

@ -1003,6 +1003,7 @@ dist_patch_DATA = \
%D%/packages/patches/gnome-tweaks-search-paths.patch \
%D%/packages/patches/gnupg-default-pinentry.patch \
%D%/packages/patches/gnutls-skip-trust-store-test.patch \
%D%/packages/patches/gnutls-cross.patch \
%D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
%D%/packages/patches/gobject-introspection-cc.patch \
%D%/packages/patches/gobject-introspection-girepository.patch \

View file

@ -0,0 +1,82 @@
Not sent upstream.
From e23de62e28f64599148ff06e439fac116a391299 Mon Sep 17 00:00:00 2001
From: "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org>
Date: Fri, 10 Apr 2020 07:24:48 +0200
Subject: [PATCH] guile: Cross build fix.
To cross-build, both the host guile and the native guile-for-build
must be available. If the native guile is not available, no snarfing
is done and the guile cross build is skipped.
During the cross-build gnutls.scm does not load when compliling
extra.scm, becase of missing definitions from guile-gnutls-v-2.
* guile/modules/gnutls.in (protocol/ssl-3 protocol/tls-1.0,
protocol/tls-1.1, credentials/anonymous, cipher/rijndael-256-cbc,
cipher/rijndael-128-cbc, cipher/rijndael-cbc, cipher/arcfour-128,
certificate-verify/allow-any-x509-v1-ca-certificate,
certificate-verify/allow-x509-v1-ca-certificate): Define to #f
initially. When "GNUTLS_GUILE_CROSS_COMPILING" not set, set! to value
from "guile-gnutls-v-2" load-extension C module.
---
guile/modules/gnutls.in | 40 +++++++++++++++++++++++++++-------------
1 file changed, 27 insertions(+), 13 deletions(-)
diff --git a/guile/modules/gnutls.in b/guile/modules/gnutls.in
index 6461c404a..954e315de 100644
--- a/guile/modules/gnutls.in
+++ b/guile/modules/gnutls.in
@@ -564,22 +564,36 @@ This defines 'variable' as an alias for 'alias', and emits a warning when
(identifier? #'id)
#'alias))))))))))
-
;; Renaming.
-(define protocol/ssl-3 protocol/ssl3)
-(define protocol/tls-1.0 protocol/tls1-0)
-(define protocol/tls-1.1 protocol/tls1-1)
+(define protocol/ssl-3 #f)
+(define protocol/tls-1.0 #f)
+(define protocol/tls-1.1 #f)
;; Aliases.
-(define credentials/anonymous credentials/anon)
-(define cipher/rijndael-256-cbc cipher/aes-256-cbc)
-(define cipher/rijndael-128-cbc cipher/aes-128-cbc)
-(define cipher/rijndael-cbc cipher/aes-128-cbc)
-(define cipher/arcfour-128 cipher/arcfour)
-(define certificate-verify/allow-any-x509-v1-ca-certificate
- certificate-verify/allow-any-x509-v1-ca-crt)
-(define certificate-verify/allow-x509-v1-ca-certificate
- certificate-verify/allow-x509-v1-ca-crt)
+(define credentials/anonymous #f)
+(define cipher/rijndael-256-cbc #f)
+(define cipher/rijndael-128-cbc #f)
+(define cipher/rijndael-cbc #f)
+(define cipher/arcfour-128 #f)
+(define certificate-verify/allow-any-x509-v1-ca-certificate #f)
+(define certificate-verify/allow-x509-v1-ca-certificate #f)
+
+(unless (getenv "GNUTLS_GUILE_CROSS_COMPILING")
+ ;; Renaming.
+ (set! protocol/ssl-3 protocol/ssl3)
+ (set! protocol/tls-1.0 protocol/tls1-0)
+ (set! protocol/tls-1.1 protocol/tls1-1)
+
+ ;; Aliases.
+ (set! credentials/anonymous credentials/anon)
+ (set! cipher/rijndael-256-cbc cipher/aes-256-cbc)
+ (set! cipher/rijndael-128-cbc cipher/aes-128-cbc)
+ (set! cipher/rijndael-cbc cipher/aes-128-cbc)
+ (set! cipher/arcfour-128 cipher/arcfour)
+ (set! certificate-verify/allow-any-x509-v1-ca-certificate
+ certificate-verify/allow-any-x509-v1-ca-crt)
+ (set! certificate-verify/allow-x509-v1-ca-certificate
+ certificate-verify/allow-x509-v1-ca-crt))
;; Deprecated OpenPGP bindings.
(define-deprecated certificate-type/openpgp)
--
2.26.0

View file

@ -260,10 +260,16 @@ (define-public gnutls-3.6.13
(uri (string-append "mirror://gnupg/gnutls/v"
(version-major+minor version)
"/gnutls-3.6.13.tar.xz"))
(patches (search-patches "gnutls-skip-trust-store-test.patch"))
(patches (search-patches "gnutls-skip-trust-store-test.patch"
"gnutls-cross.patch"))
(sha256
(base32
"0f1gnm0756qms5cpx6yn6xb8d3imc2gkqmygf12n9x6r8zs1s11j"))))))
"0f1gnm0756qms5cpx6yn6xb8d3imc2gkqmygf12n9x6r8zs1s11j"))))
(native-inputs
`(,@(if (%current-target-system) ;for cross-build
`(("guile" ,guile-3.0)) ;to create .go files
'())
,@(package-native-inputs gnutls)))))
(define-public gnutls/guile-2.0
;; GnuTLS for Guile 2.0.