Subject: [PATCH v4 14/23] gnu: guile-sqlite3: Fix cross-compilation.

From: Mathieu Othacehe <[email-masked]>
Date: Wed, 2 Oct 2019 11:58:55 +0200

* gnu/packages/patches/guile-sqlite3-fix-cross-compilation.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/guile.scm (guile-sqlite3)[source]: Apply previous patch,
[native-inputs]: add guile.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/guile.scm                        |  7 ++-
 .../guile-sqlite3-fix-cross-compilation.patch | 55 +++++++++++++++++++
 3 files changed, 61 insertions(+), 2 deletions(-)
 create mode 100644 gnu/packages/patches/guile-sqlite3-fix-cross-compilation.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 2ec5ffe29e..42bc29783b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -935,6 +935,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/guile-relocatable.patch			\
   %D%/packages/patches/guile-rsvg-pkgconfig.patch		\
   %D%/packages/patches/guile-emacs-fix-configure.patch		\
+  %D%/packages/patches/guile-sqlite3-fix-cross-compilation.patch \
   %D%/packages/patches/gstreamer-buffer-reset-offset.patch	\
   %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch	\
   %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 478b8faebe..bc57a55052 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2016, 2019 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2017 Andy Wingo <[email-masked]>
 ;;; Copyright © 2017 Marius Bakke <[email-masked]>
-;;; Copyright © 2017 Mathieu Othacehe <[email-masked]>
+;;; Copyright © 2017, 2019 Mathieu Othacehe <[email-masked]>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2017, 2018 Amirouche <[email-masked]>
 ;;; Copyright © 2018 Danny Milosavljevic <[email-masked]>
@@ -521,11 +521,14 @@ Guile's foreign function interface.")
               (sha256
                (base32
                 "1nv8j7wk6b5n4p22szyi8lv8fs31rrzxhzz16gyj8r38c1fyp9qp"))
-              (file-name (string-append name "-" version "-checkout"))))
+              (file-name (string-append name "-" version "-checkout"))
+              (patches
+               (search-patches "guile-sqlite3-fix-cross-compilation.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
+       ("guile" ,guile-2.2)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("guile" ,guile-2.2)
diff --git a/gnu/packages/patches/guile-sqlite3-fix-cross-compilation.patch b/gnu/packages/patches/guile-sqlite3-fix-cross-compilation.patch
new file mode 100644
index 0000000000..9ea9a47677
--- /dev/null
+++ b/gnu/packages/patches/guile-sqlite3-fix-cross-compilation.patch
@@ -0,0 +1,55 @@
+From a6e9e62a77ecc5012929613e20da23b2636450a5 Mon Sep 17 00:00:00 2001
+From: Mathieu Othacehe <[email-masked]>
+Date: Mon, 25 Mar 2019 11:00:38 +0100
+Subject: [PATCH] cross compile
+
+---
+ build-aux/guile.am |  2 +-
+ configure.ac       | 19 ++++++++++++-------
+ 2 files changed, 13 insertions(+), 8 deletions(-)
+
+diff --git a/build-aux/guile.am b/build-aux/guile.am
+index dc1e63f..3126372 100644
+--- a/build-aux/guile.am
++++ b/build-aux/guile.am
+@@ -16,4 +16,4 @@ EXTRA_DIST = $(SOURCES) $(NOCOMP_SOURCES)
+ GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
+ SUFFIXES = .scm .go
+ .scm.go:
+-	$(AM_V_GEN)$(top_builddir)/env $(GUILE_TOOLS) compile $(GUILE_WARNINGS) -o "$@" "$<"
++	$(AM_V_GEN)$(top_builddir)/env $(GUILE_TOOLS) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<"
+diff --git a/configure.ac b/configure.ac
+index f648fcb..2d34d0a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -21,15 +21,20 @@ PKG_CHECK_MODULES([SQLITE], [sqlite3])
+ SQLITE_LIBDIR="`"$PKG_CONFIG" sqlite3 --variable libdir`"
+ AC_SUBST([SQLITE_LIBDIR])
+ 
+-AC_MSG_CHECKING([whether '$SQLITE_LIBDIR/libsqlite3' is usable])
+-GUILE_CHECK([retval],
+-  [(dynamic-func \"sqlite3_open_v2\"
++if test "$cross_compiling" = "no"; then
++   AC_MSG_CHECKING([whether '$SQLITE_LIBDIR/libsqlite3' is usable])
++   GUILE_CHECK([retval],
++   [(dynamic-func \"sqlite3_open_v2\"
+                  (dynamic-link \"$SQLITE_LIBDIR/libsqlite3\"))])
+-if test "$retval" != 0; then
+-  AC_MSG_RESULT([no])
+-  AC_MSG_ERROR([failed to load '$SQLITE_LIBDIR/libsqlite3'])
++   if test "$retval" != 0; then
++      AC_MSG_RESULT([no])
++      AC_MSG_ERROR([failed to load '$SQLITE_LIBDIR/libsqlite3'])
++   else
++      AC_MSG_RESULT([yes])
++   fi
+ else
+-  AC_MSG_RESULT([yes])
++   GUILE_TARGET="--target=$host_alias"
++   AC_SUBST([GUILE_TARGET])
+ fi
+ 
+ AC_CONFIG_FILES([Makefile sqlite3.scm])
+-- 
+2.17.1
+
-- 
2.23.0