gnu: vcflib: Update to 1.0.2.

* gnu/packages/bioinformatics.scm (vcflib): Update to 1.0.2.
[source]: Download using git-fetch. Remove patch. Update snippet to use
packaged libraries.
[build-system]: Switch to cmake-build-system.
[inputs]: Add bzip2.
[native-inputs]: Add package-source of fsom.
[arguments]: Delete custom 'set-flags, 'install phases. Don't delete
'configure phase. Adjust 'unpack-submodule-sources phase.
* gnu/packages/patches/vcflib-use-shared-libraries.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.
This commit is contained in:
Efraim Flashner 2021-01-14 20:38:10 +02:00
parent db30d6eada
commit 93309e25c7
No known key found for this signature in database
GPG key ID: 41AAE7DCCA3D8351
3 changed files with 29 additions and 191 deletions

View file

@ -1703,7 +1703,6 @@ dist_patch_DATA = \
%D%/packages/patches/vboot-utils-fix-format-load-address.patch \
%D%/packages/patches/vboot-utils-fix-tests-show-contents.patch \
%D%/packages/patches/vboot-utils-skip-test-workbuf.patch \
%D%/packages/patches/vcflib-use-shared-libraries.patch \
%D%/packages/patches/vigra-python-compat.patch \
%D%/packages/patches/vinagre-newer-freerdp.patch \
%D%/packages/patches/vinagre-newer-rdp-parameters.patch \

View file

@ -14923,32 +14923,44 @@ (define-public fastahack
(define-public vcflib
(package
(name "vcflib")
(version "1.0.1")
(version "1.0.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/vcflib/vcflib/releases/"
"download/v" version
"/vcflib-" version "-src.tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/vcflib/vcflib")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "14zzrg8hg8cq9cvq2wdvp21j7nmxxkjrbagw2apd2yqv2kyx42lm"))
(patches (search-patches "vcflib-use-shared-libraries.patch"))
(base32 "1k1z3876kbzifj1sqfzsf3lgb4rw779hvkg6ryxbyq5bc2paj9kh"))
(modules '((guix build utils)))
(snippet
`(begin
'(begin
(substitute* "CMakeLists.txt"
((".*fastahack.*") "")
((".*smithwaterman.*") "")
(("(pkg_check_modules\\(TABIXPP)" text)
(string-append
"pkg_check_modules(FASTAHACK REQUIRED fastahack)\n"
"pkg_check_modules(SMITHWATERMAN REQUIRED smithwaterman)\n"
text))
(("\\$\\{TABIXPP_LIBRARIES\\}" text)
(string-append "${FASTAHACK_LIBRARIES} "
"${SMITHWATERMAN_LIBRARIES} "
text)))
(substitute* (find-files "." "\\.(h|c)(pp)?$")
(("\"SmithWatermanGotoh.h\"") "<smithwaterman/SmithWatermanGotoh.h>")
(("\"convert.h\"") "<smithwaterman/convert.h>")
(("\"disorder.h\"") "<smithwaterman/disorder.h>")
(("\"tabix.hpp\"") "<tabix.hpp>")
(("\"Fasta.h\"") "<fastahack/Fasta.h>"))
(("Fasta.h") "fastahack/Fasta.h"))
(for-each delete-file-recursively
'("fastahack" "filevercmp" "fsom" "googletest" "intervaltree"
"libVCFH" "multichoose" "smithwaterman" "tabixpp"))
"libVCFH" "multichoose" "smithwaterman"))
#t))))
(build-system gnu-build-system)
(build-system cmake-build-system)
(inputs
`(("htslib" ,htslib)
`(("bzip2" ,bzip2)
("htslib" ,htslib)
("fastahack" ,fastahack)
("perl" ,perl)
("python" ,python)
@ -14961,22 +14973,13 @@ (define-public vcflib
;; Submodules.
;; This package builds against the .o files so we need to extract the source.
("filevercmp-src" ,(package-source filevercmp))
("fsom-src" ,(package-source fsom))
("intervaltree-src" ,(package-source intervaltree))
("multichoose-src" ,(package-source multichoose))))
(arguments
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-flags
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile"
(("LDFLAGS =")
(string-append "LDFLAGS = -Wl,-rpath="
(assoc-ref outputs "out") "/lib ")))
(substitute* "filevercmp/Makefile"
(("-c") "-c -fPIC"))
#t))
(delete 'configure)
(add-after 'unpack 'unpack-submodule-sources
(lambda* (#:key inputs #:allow-other-keys)
(let ((unpack (lambda (source target)
@ -14989,39 +14992,10 @@ (define-public vcflib
"--strip-components=1"))))))
(and
(unpack "filevercmp-src" "filevercmp")
(unpack "fsom-src" "fsom")
(unpack "intervaltree-src" "intervaltree")
(unpack "multichoose-src" "multichoose")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(lib (string-append out "/lib")))
(for-each (lambda (file)
(install-file file bin))
(find-files "bin" ".*"))
(install-file "libvcflib.so" lib)
(install-file "libvcflib.a" lib)
(for-each
(lambda (file)
(install-file file (string-append out "/include")))
(find-files "include" "\\.h(pp)?$"))
(mkdir-p (string-append lib "/pkgconfig"))
(with-output-to-file (string-append lib "/pkgconfig/vcflib.pc")
(lambda _
(format #t "prefix=~a~@
exec_prefix=${prefix}~@
libdir=${exec_prefix}/lib~@
includedir=${prefix}/include~@
~@
~@
Name: libvcflib~@
Version: ~a~@
Requires: smithwaterman, fastahack~@
Description: C++ library for parsing and manipulating VCF files~@
Libs: -L${libdir} -lvcflib~@
Cflags: -I${includedir}~%"
out ,version))))
#t)))))
(unpack "multichoose-src" "multichoose"))
#t))))))
(home-page "https://github.com/vcflib/vcflib/")
(synopsis "Library for parsing and manipulating VCF files")
(description "Vcflib provides methods to manipulate and interpret

View file

@ -1,135 +0,0 @@
This patch is a combination of many of the patches from Debian:
https://sources.debian.org/src/libvcflib/1.0.1+dfsg-3/debian/patches/
---
Makefile | 63 +++++++++++---------------------------------------------
1 file changed, 12 insertions(+), 51 deletions(-)
diff --git a/Makefile b/Makefile
index 6b13350..be85f22 100644
--- a/Makefile
+++ b/Makefile
@@ -114,43 +114,25 @@ BIN_SOURCES = src/vcfecho.cpp \
src/vcfnull2ref.cpp \
src/vcfinfosummarize.cpp
-# when we can figure out how to build on mac
-# src/vcfsom.cpp
-
#BINS = $(BIN_SOURCES:.cpp=)
BINS = $(addprefix $(BIN_DIR)/,$(notdir $(BIN_SOURCES:.cpp=)))
SHORTBINS = $(notdir $(BIN_SOURCES:.cpp=))
-TABIX = tabixpp/tabix.o
-FASTAHACK = fastahack/Fasta.o
-SMITHWATERMAN = smithwaterman/SmithWatermanGotoh.o
-REPEATS = smithwaterman/Repeats.o
-INDELALLELE = smithwaterman/IndelAllele.o
-DISORDER = smithwaterman/disorder.o
-LEFTALIGN = smithwaterman/LeftAlign.o
-FSOM = fsom/fsom.o
FILEVERCMP = filevercmp/filevercmp.o
-# Work out how to find htslib
-# Use the one we ship in tabixpp unless told otherwise by the environment
-HTS_LIB ?= $(VCF_LIB_LOCAL)/tabixpp/htslib/libhts.a
-HTS_INCLUDES ?= -I$(VCF_LIB_LOCAL)/tabixpp/htslib
-HTS_LDFLAGS ?= -L$(VCF_LIB_LOCAL)/tabixpp/htslib -lhts -lbz2 -lm -lz -llzma -pthread
-
-
-INCLUDES = $(HTS_INCLUDES) -I$(INC_DIR)
-LDFLAGS = -L$(LIB_DIR) -lvcflib $(HTS_LDFLAGS) -lpthread -lz -lm -llzma -lbz2
+INCLUDES = -I$(INC_DIR) $(shell pkg-config --cflags htslib fastahack smithwaterman tabixpp)
+LDFLAGS = -L$(LIB_DIR) -lvcflib -lpthread -lz -lstdc++ -lm -llzma -lbz2 $(shell pkg-config --libs htslib fastahack smithwaterman tabixpp)
-all: $(OBJECTS) $(BINS) scriptToBin
+all: $(OBJECTS) $(BINS) scriptToBin libvcflib.a
scriptToBin: $(BINS)
$(CP) scripts/* $(BIN_DIR)
GIT_VERSION += $(shell git describe --abbrev=4 --dirty --always)
-CXXFLAGS = -Ofast -D_FILE_OFFSET_BITS=64 -std=c++0x
+CXXFLAGS = -Ofast -D_FILE_OFFSET_BITS=64 -std=c++0x -fPIC
#CXXFLAGS = -O2
#CXXFLAGS = -pedantic -Wall -Wshadow -Wpointer-arith -Wcast-qual
@@ -168,7 +150,7 @@ profiling:
gprof:
$(MAKE) CXXFLAGS="$(CXXFLAGS) -pg" all
-$(OBJECTS): $(SOURCES) $(HEADERS) $(TABIX) multichoose pre $(SMITHWATERMAN) $(FILEVERCMP) $(FASTAHACK)
+$(OBJECTS): $(SOURCES) $(HEADERS) multichoose pre $(FILEVERCMP)
$(CXX) -c -o $@ src/$(*F).cpp $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) && $(CP) src/*.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
multichoose: pre
@@ -177,39 +159,22 @@ multichoose: pre
intervaltree: pre
cd intervaltree && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
-$(TABIX): pre
- cd tabixpp && INCLUDES="$(HTS_INCLUDES)" LIBPATH="-L. $(HTS_LDFLAGS)" HTSLIB="$(HTS_LIB)" $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
-
-$(SMITHWATERMAN): pre
- cd smithwaterman && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) *.o $(VCF_LIB_LOCAL)/$(OBJ_DIR)/
-
-$(DISORDER): $(SMITHWATERMAN)
-
-$(REPEATS): $(SMITHWATERMAN)
-
-$(LEFTALIGN): $(SMITHWATERMAN)
-
-$(INDELALLELE): $(SMITHWATERMAN)
-
-$(FASTAHACK): pre
- cd fastahack && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) Fasta.o $(VCF_LIB_LOCAL)/$(OBJ_DIR)/
-
-#$(FSOM):
-# cd fsom && $(CXX) $(CXXFLAGS) -c fsom.c -lm
-
$(FILEVERCMP): pre
cd filevercmp && make && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) *.o $(VCF_LIB_LOCAL)/$(INC_DIR)/
$(SHORTBINS): pre
$(MAKE) $(BIN_DIR)/$@
-$(BINS): $(BIN_SOURCES) libvcflib.a $(OBJECTS) $(SMITHWATERMAN) $(FASTAHACK) $(DISORDER) $(LEFTALIGN) $(INDELALLELE) $(SSW) $(FILEVERCMP) pre intervaltree
+$(BINS): $(BIN_SOURCES) libvcflib.so $(OBJECTS) $(SSW) $(FILEVERCMP) pre intervaltree
$(CXX) src/$(notdir $@).cpp -o $@ $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) -DVERSION=\"$(GIT_VERSION)\"
-libvcflib.a: $(OBJECTS) $(SMITHWATERMAN) $(REPEATS) $(FASTAHACK) $(DISORDER) $(LEFTALIGN) $(INDELALLELE) $(SSW) $(FILEVERCMP) $(TABIX) pre
- ar rs libvcflib.a $(OBJECTS) smithwaterman/sw.o $(FASTAHACK) $(SSW) $(FILEVERCMP) $(TABIX)
+libvcflib.a: $(OBJECTS) $(SSW) $(FILEVERCMP) pre
+ ar rs libvcflib.a $(OBJECTS) $(SSW) $(FILEVERCMP)
$(CP) libvcflib.a $(LIB_DIR)
+libvcflib.so: $(OBJECTS) $(SSW) $(FILEVERCMP) pre
+ $(CXX) -shared -o libvcflib.so $(OBJECTS) $(SSW) $(FILEVERCMP)
+ $(CP) libvcflib.so $(LIB_DIR)
test: $(BINS)
@prove -Itests/lib -w tests/*.t
@@ -230,16 +195,12 @@ clean:
$(RM) $(BINS) $(OBJECTS)
$(RM) ssw_cpp.o ssw.o
$(RM) libvcflib.a
+ $(RM) libvcflib.so
$(RM) -r $(BIN_DIR)
$(RM) -r $(LIB_DIR)
$(RM) -r $(INC_DIR)
$(RM) -r $(OBJ_DIR)
- $(MAKE) clean -C tabixpp
- $(MAKE) clean -C smithwaterman
- $(MAKE) clean -C fastahack
$(MAKE) clean -C multichoose
- $(MAKE) clean -C fsom
- $(MAKE) clean -C libVCFH
$(MAKE) clean -C test
$(MAKE) clean -C filevercmp
$(MAKE) clean -C intervaltree
--
2.28.0