guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

11/11: gnu: metabat: Update to 2.11.1.


From: Ben Woodcroft
Subject: 11/11: gnu: metabat: Update to 2.11.1.
Date: Sat, 22 Jul 2017 20:32:01 -0400 (EDT)

benwoodcroft pushed a commit to branch master
in repository guix.

commit f3f68a442c1c40438078c24c0869e22c08f30c48
Author: Ben Woodcroft <address@hidden>
Date:   Sat Jul 15 16:31:40 2017 +1000

    gnu: metabat: Update to 2.11.1.
    
    * gnu/packages/bioinformatics.scm (metabat): Update to 2.11.1.
    [source]: Add patch to fix compilation.
    [arguments]: Adjust regular expressions modifying 'SConstruct'.
    * gnu/packages/patches/metabat-fix-compilation.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                       |  1 +
 gnu/packages/bioinformatics.scm                    | 89 +++++++++++-----------
 gnu/packages/patches/metabat-fix-compilation.patch | 39 ++++++++++
 3 files changed, 83 insertions(+), 46 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 8d3916e..3eccc87 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -840,6 +840,7 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/mesa-skip-disk-cache-test.patch         \
   %D%/packages/patches/mesa-wayland-egl-symbols-check-mips.patch       \
   %D%/packages/patches/metabat-remove-compilation-date.patch   \
+  %D%/packages/patches/metabat-fix-compilation.patch           \
   %D%/packages/patches/mhash-keygen-test-segfault.patch                \
   %D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch                \
   %D%/packages/patches/mpc123-initialize-ao.patch              \
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index eab9d49..3b4cc35 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3467,23 +3467,20 @@ form of assemblies or reads.")
                    license:cpl1.0))))     ; Open Bloom Filter
 
 (define-public metabat
-  ;; We package from a git commit because compilation of the released version
-  ;; fails.
-  (let ((commit "cbdca756993e66ae57e50a27970595dda9cbde1b"))
-    (package
-      (name "metabat")
-      (version (string-append "0.32.4-1." (string-take commit 8)))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://bitbucket.org/berkeleylab/metabat.git";)
-               (commit commit)))
-         (file-name (string-append name "-" version))
-         (sha256
-          (base32
-           "0byia8nsip6zvc4ha0qkxkxxyjf4x7jcvy48q2dvb0pzr989syzr"))
-         (patches (search-patches "metabat-remove-compilation-date.patch"))))
+  (package
+    (name "metabat")
+    (version "2.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://bitbucket.org/berkeleylab/metabat/get/v";
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0ll00l81aflscgggs5nfhj12cbvdiz3gg7f7n5f537a3xhx60vn9"))
+       (patches (search-patches "metabat-remove-compilation-date.patch"
+                                "metabat-fix-compilation.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -3500,35 +3497,35 @@ form of assemblies or reads.")
                 "#include \"htslib/kseq.h\""))
              #t))
          (add-after 'unpack 'fix-scons
-            (lambda* (#:key inputs #:allow-other-keys)
-              (substitute* "SConstruct"
-                (("^htslib_dir = 'samtools'")
-                 (string-append "hitslib_dir = '"
-                                (assoc-ref inputs "htslib")
-                                "'"))
-                (("^samtools_dir = 'samtools'")
-                 (string-append "samtools_dir = '"
-                                (assoc-ref inputs "htslib")
-                                "'"))
-                (("^findStaticOrShared\\('bam', hts_lib")
-                 (string-append "findStaticOrShared('bam', '"
-                                (assoc-ref inputs "samtools")
-                                "/lib'"))
-                ;; Do not distribute README.
-                (("^env\\.Install\\(idir_prefix, 'README\\.md'\\)") ""))
-              #t))
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "SConstruct"
+               (("^htslib_dir += 'samtools'")
+                (string-append "htslib_dir = '"
+                               (assoc-ref inputs "htslib")
+                               "'"))
+               (("^samtools_dir = 'samtools'")
+                (string-append "samtools_dir = '"
+                               (assoc-ref inputs "samtools")
+                               "'"))
+               (("^findStaticOrShared\\('bam', hts_lib")
+                (string-append "findStaticOrShared('bam', '"
+                               (assoc-ref inputs "samtools")
+                               "/lib'"))
+               ;; Do not distribute README.
+               (("^env\\.Install\\(idir_prefix, 'README\\.md'\\)") ""))
+             #t))
          (delete 'configure)
          (replace 'build
-                  (lambda* (#:key inputs outputs #:allow-other-keys)
-                    (mkdir (assoc-ref outputs "out"))
-                    (zero? (system* "scons"
-                                    (string-append
-                                     "PREFIX="
-                                     (assoc-ref outputs "out"))
-                                    (string-append
-                                     "BOOST_ROOT="
-                                     (assoc-ref inputs "boost"))
-                                    "install"))))
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (mkdir (assoc-ref outputs "out"))
+             (zero? (system* "scons"
+                             (string-append
+                              "PREFIX="
+                              (assoc-ref outputs "out"))
+                             (string-append
+                              "BOOST_ROOT="
+                              (assoc-ref inputs "boost"))
+                             "install"))))
          ;; Check and install are carried out during build phase.
          (delete 'check)
          (delete 'install))))
@@ -3549,8 +3546,8 @@ sequences to deconvolute complex microbial communities, 
or metagenome binning,
 enables the study of individual organisms and their interactions.  MetaBAT is
 an automated metagenome binning software, which integrates empirical
 probabilistic distances of genome abundance and tetranucleotide frequency.")
-   (license (license:non-copyleft "file://license.txt"
-                                  "See license.txt in the distribution.")))))
+    (license (license:non-copyleft "file://license.txt"
+                                   "See license.txt in the distribution."))))
 
 (define-public minced
   (package
diff --git a/gnu/packages/patches/metabat-fix-compilation.patch 
b/gnu/packages/patches/metabat-fix-compilation.patch
new file mode 100644
index 0000000..7086a96
--- /dev/null
+++ b/gnu/packages/patches/metabat-fix-compilation.patch
@@ -0,0 +1,39 @@
+This patch changes metabat so that (1) it is not build statically, (2) it uses
+shared libraries rather than static libraries where possible.
+
+diff --git a/SConstruct b/SConstruct
+index 69cdc0a..ac99bcb 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -26,8 +26,6 @@ debug = ARGUMENTS.get('DEBUG', None)
+ build_flags = ['-Wall', '-g', '-std=c++11', '-fopenmp']
+ link_flags = ['-lstdc++', '-lm', '-fopenmp']
+ 
+-if platform.platform(True, True).find('Darwin') == -1:
+-    link_flags.extend(['-static', '-static-libgcc', '-static-libstdc++'])
+ 
+ if debug is None:
+     build_flags.extend(['-O3', '-DNDEBUG', '-Wno-unknown-pragmas', 
'-Wno-deprecated-declarations', '-Wno-overflow', '-Wno-unused-variable'])
+@@ -110,17 +108,17 @@ def findStaticOrShared( lib, testPaths, 
static_source_list, link_flag_list, stat
+     for path in testPaths:
+         if not os.path.isdir(path):
+             continue
++        for testfile in ('%s/lib%s.so' % (path, lib), '%s/lib%s.dylib' % 
(path, lib)):
++            if os.path.isfile(testfile):
++                print "Found shared library %s as %s" % (lib, testfile)
++                link_flag_list.extend( ["-L%s" % (path), "-l%s" % (lib) ] )
++                return
+         for suffix in staticSuffixes:
+             testfile = '%s/lib%s%s' % (path, lib, suffix)
+             if os.path.isfile(testfile):
+                 static_source_list.append(testfile)
+                 print "Found static library %s as %s" % (lib, testfile)
+                 return
+-        for testfile in ('%s/lib%s.so' % (path, lib), '%s/lib%s.dylib' % 
(path, lib)):
+-            if os.path.isfile(testfile):
+-                print "Found shared library %s as %s" % (lib, testfile)
+-                link_flag_list.extend( ["-L%s" % (path), "-l%s" % (lib) ] )
+-                return
+     print "Could not find library for %s!!! Looked in %s" % (lib, testPaths)
+     return
+ 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]