summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/samba.scm9
-rw-r--r--guix/utils.scm6
2 files changed, 13 insertions, 2 deletions
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index abbfdd83c4..e10f00a83b 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -362,7 +362,10 @@ many event types, including timers, signals, and the classic file descriptor eve
                   #t))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     '(;; LMDB is only supported on 64-bit systems, yet the test suite
+       ;; requires it.
+       #:tests? (assoc-ref %build-inputs "lmdb")
+       #:phases
        (modify-phases %standard-phases
          (replace 'configure
            ;; ldb use a custom configuration script that runs waf.
@@ -382,7 +385,9 @@ many event types, including timers, signals, and the classic file descriptor eve
      `(("talloc" ,talloc)
        ("tdb" ,tdb)))
     (inputs
-     `(("lmdb" ,lmdb)
+     `(,@(if (target-64bit?)
+             `(("lmdb" ,lmdb))
+             '())
        ("popt" ,popt)
        ("tevent" ,tevent)))
     (synopsis "LDAP-like embedded database")
diff --git a/guix/utils.scm b/guix/utils.scm
index e9efea5866..a5de9605e7 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -77,6 +78,7 @@
             package-name->name+version
             target-mingw?
             target-arm32?
+            target-64bit?
             version-compare
             version>?
             version>=?
@@ -474,6 +476,10 @@ a character other than '@'."
 (define (target-arm32?)
   (string-prefix? "arm" (or (%current-target-system) (%current-system))))
 
+(define (target-64bit?)
+  (let ((system (or (%current-target-system) (%current-system))))
+    (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" "ppc64"))))
+
 (define version-compare
   (let ((strverscmp
          (let ((sym (or (dynamic-func "strverscmp" (dynamic-link))