From 99043adf46d3e27fb10939c1365552844596345d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 19 Jan 2021 11:38:06 +0200 Subject: gnu: freebayes: Don't include vcflib sources. * gnu/packages/bioinformatics.scm (freebayes)[native-inputs]: Remove vcflib-source, intervaltree-source. Move vcflib ... [inputs]: ... to here. [arguments]: Adjust 'patch-source and 'unpack-submodule-sources for changes in vendored code. * gnu/packages/patches/freebayes-devendor-deps.patch: Update patch. --- gnu/packages/bioinformatics.scm | 30 ++++-------- gnu/packages/patches/freebayes-devendor-deps.patch | 57 +++++++++++++++------- 2 files changed, 49 insertions(+), 38 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 95352f948b..70166501d7 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -15138,6 +15138,7 @@ (define-public freebayes ("htslib" ,htslib) ("smithwaterman" ,smithwaterman) ("tabixpp" ,tabixpp) + ("vcflib" ,vcflib) ("zlib" ,zlib))) (native-inputs `(("bash-tap" ,bash-tap) @@ -15148,11 +15149,6 @@ (define-public freebayes ("pkg-config" ,pkg-config) ("samtools" ,samtools) ("simde" ,simde) - ;; We need some binaries from vcflib, but we also need to link against a - ;; subset of the library. Vendor the parts we need until we have a shared library. - ("vcflib" ,vcflib) - ("vcflib-src" ,(package-source vcflib)) - ("intervaltree-src" ,(package-source intervaltree)) ;; This submodule is needed to run the tests. ("test-simple-bash-src" ,(origin @@ -15179,25 +15175,17 @@ (define-public freebayes (substitute* "meson.build" ;; Some inputs aren't actually needed. ((".*bamtools/src.*") "") - ((".*multichoose.*") "") - (("'vcflib/filevercmp'") "")) + ((".*multichoose.*") "")) + (substitute* '("src/BedReader.cpp" + "src/BedReader.h") + (("../intervaltree/IntervalTree.h") "IntervalTree.h")) #t))) (add-after 'unpack 'unpack-submodule-sources (lambda* (#:key inputs #:allow-other-keys) - (let ((unpack (lambda (source target) - (unless (directory-exists? target) - (mkdir-p target)) - (with-directory-excursion target - (if (file-is-directory? (assoc-ref inputs source)) - (copy-recursively (assoc-ref inputs source) ".") - (invoke "tar" "xvf" - (assoc-ref inputs source) - "--strip-components=1")))))) - (and - (unpack "vcflib-src" "vcflib") - (unpack "intervaltree-src" "vcflib/intervaltree") - (unpack "test-simple-bash-src" "test/test-simple-bash")) - #t))) + (mkdir-p "test/test-simple-bash") + (copy-recursively (assoc-ref inputs "test-simple-bash-src") + "test/test-simple-bash") + #t)) ;; The slow tests take longer than the specified timeout. ,@(if (any (cute string=? <> (%current-system)) '("armhf-linux" "aarch64-linux")) diff --git a/gnu/packages/patches/freebayes-devendor-deps.patch b/gnu/packages/patches/freebayes-devendor-deps.patch index 580f53a3b1..7e84666b85 100644 --- a/gnu/packages/patches/freebayes-devendor-deps.patch +++ b/gnu/packages/patches/freebayes-devendor-deps.patch @@ -1,19 +1,19 @@ This patch is original to Guix, ongoing work to upstream bits as possible. -From 50833daba0b1dbe2ed364b1e980b67a09a312789 Mon Sep 17 00:00:00 2001 +From 9acc56db5e7469f5976be38b52ba4993de98ee38 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 17 Jan 2021 13:27:17 +0200 Subject: [PATCH] devendor-dependants --- - meson.build | 60 +++++++++++++++++++++++++++++++++++++++++------------ - 1 file changed, 47 insertions(+), 13 deletions(-) + meson.build | 84 +++++++++++++++++++++++++++++++++++++++++------------ + 1 file changed, 66 insertions(+), 18 deletions(-) diff --git a/meson.build b/meson.build -index f6bf242..7a3805e 100644 +index f6bf242..bded4af 100644 --- a/meson.build +++ b/meson.build -@@ -9,8 +9,12 @@ project('freebayes', ['cpp', 'c'], +@@ -9,8 +9,13 @@ project('freebayes', ['cpp', 'c'], zlib_dep = dependency('zlib') lzma_dep = dependency('liblzma') @@ -23,10 +23,11 @@ index f6bf242..7a3805e 100644 +tabixpp_dep = dependency('tabixpp', required : false) +fastahack_dep = dependency('fastahack', required : false) +smithwaterman_dep = dependency('smithwaterman', required : false) ++vcflib_dep = dependency('libvcflib', required: false) thread_dep = dependency('threads') if htslib_dep.found() -@@ -59,6 +63,41 @@ else +@@ -59,6 +64,56 @@ else ] endif @@ -42,11 +43,26 @@ index f6bf242..7a3805e 100644 + ] +endif + ++if vcflib_dep.found() ++ vcflib_includes = '' ++ vcflib_src = [] ++else ++ vcflib_includes = [ ++ 'vcflib/src', ++ 'vcflib/multichoose', ++ 'vcflib/filevercmp', ++ ] ++ vcflib_src = [ ++ 'vcflib/src/Variant.cpp', ++ ] ++endif ++ +if fastahack_dep.found() + fastahack_src = [] +else + fastahack_src = [ + 'vcflib/fastahack/Fasta.cpp', ++ 'vcflib/src/split.cpp', + ] +endif + @@ -68,17 +84,18 @@ index f6bf242..7a3805e 100644 # -@@ -105,22 +144,17 @@ seqlib_src = [ +@@ -105,23 +160,18 @@ seqlib_src = [ ] vcflib_src = [ - 'vcflib/tabixpp/tabix.cpp', - 'vcflib/src/Variant.cpp', +- 'vcflib/src/Variant.cpp', - 'vcflib/smithwaterman/SmithWatermanGotoh.cpp', - 'vcflib/smithwaterman/disorder.cpp', - 'vcflib/smithwaterman/Repeats.cpp', - 'vcflib/smithwaterman/LeftAlign.cpp', - 'vcflib/smithwaterman/IndelAllele.cpp', ++ vcflib_src, + tabixpp_src, + smithwaterman_src, ] @@ -90,37 +107,43 @@ index f6bf242..7a3805e 100644 - 'vcflib/fastahack/Fasta.cpp', - 'vcflib/smithwaterman/LeftAlign.cpp', - 'vcflib/smithwaterman/IndelAllele.cpp', +- 'vcflib/src/split.cpp', + fastahack_src, + smithwaterman_src, - 'vcflib/src/split.cpp', ++ vcflib_src, 'src/LeftAlign.cpp', ] -@@ -135,8 +169,8 @@ incdir = include_directories( + +@@ -134,11 +184,9 @@ incdir = include_directories( + 'ttmath', 'contrib', 'contrib/SeqLib', - 'vcflib/src', +- 'vcflib/src', - 'vcflib/tabixpp', - 'vcflib/smithwaterman', +- 'vcflib/multichoose', +- 'vcflib/filevercmp') + tabixpp_includes, + smithwaterman_includes, - 'vcflib/multichoose', - 'vcflib/filevercmp') ++ vcflib_includes) -@@ -152,7 +186,7 @@ executable('freebayes', + c_args = ['-fpermissive','-w'] + cpp_args = ['-fpermissive','-w','-Wc++14-compat'] +@@ -152,7 +200,7 @@ executable('freebayes', include_directories : incdir, cpp_args : cpp_args, c_args : c_args, - dependencies: [zlib_dep, lzma_dep, htslib_dep, thread_dep], -+ dependencies: [zlib_dep, lzma_dep, simde_dep, htslib_dep, tabixpp_dep, smithwaterman_dep, thread_dep], ++ dependencies: [zlib_dep, lzma_dep, simde_dep, htslib_dep, tabixpp_dep, smithwaterman_dep, vcflib_dep, thread_dep], install: true ) -@@ -165,7 +199,7 @@ executable('bamleftalign', +@@ -165,7 +213,7 @@ executable('bamleftalign', include_directories : incdir, cpp_args : cpp_args, c_args : c_args, - dependencies: [zlib_dep, lzma_dep, htslib_dep, thread_dep], -+ dependencies: [zlib_dep, lzma_dep, simde_dep, htslib_dep, tabixpp_dep, fastahack_dep, smithwaterman_dep, thread_dep], ++ dependencies: [zlib_dep, lzma_dep, simde_dep, htslib_dep, tabixpp_dep, fastahack_dep, smithwaterman_dep, vcflib_dep, thread_dep], install: true ) -- cgit v1.2.3