summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorEric Bavier <bavier@member.fsf.org>2016-07-08 17:44:30 -0500
committerEric Bavier <bavier@member.fsf.org>2016-07-20 21:16:25 -0500
commit29080870134c4ebc380d64a683d6445594357d2b (patch)
tree28fcb362db7a688191a01dad83358b32014d3856 /gnu
parent8787c555d9552a13be4917c4f4a0e37b61ab7b5e (diff)
downloadguix-29080870134c4ebc380d64a683d6445594357d2b.tar.gz
gnu: superlu-dist: Remove non-free source.
* gnu/packages/maths.scm (superlu-dist)[source]: Replace non-free
mc64ad.c source with stub.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/maths.scm24
1 files changed, 24 insertions, 0 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 464cf8d412..7b5b2abd21 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1281,6 +1281,30 @@ also provides threshold-based ILU factorization preconditioners.")
                            "superlu_dist_" version ".tar.gz"))
        (sha256
         (base32 "1hnak09yxxp026blq8zhrl7685yip16svwngh1wysqxf8z48vzfj"))
+              (modules '((guix build utils)))
+       (snippet
+        ;; Replace the non-free implementation of MC64 with a stub
+        '(begin
+           (use-modules (ice-9 regex)
+                        (ice-9 rdelim))
+           (call-with-output-file "SRC/mc64ad.c"
+             (lambda (port)
+               (display "
+#include <stdio.h>
+#include <stdlib.h>
+void mc64id_(int *a) {
+  fprintf (stderr, \"SuperLU_DIST: non-free MC64 not available.  Aborting.\\n\");
+  abort ();
+}
+void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
+              int *h, int *i, int *j, int *k, double *l, int *m, int *n) {
+  fprintf (stderr, \"SuperLU_DIST: non-free MC64 not available.  Aborting.\\n\");
+  abort ();
+}\n" port)))
+           (delete-file "SRC/mc64ad.f.bak")
+           (substitute* "SRC/util.c"    ;adjust default algorithm
+             (("RowPerm[[:blank:]]*=[[:blank:]]*LargeDiag")
+              "RowPerm = NOROWPERM"))))
        (patches (search-patches "superlu-dist-scotchmetis.patch"))))
     (build-system gnu-build-system)
     (native-inputs