git: 35f24e09c672 - main - archivers/vbz-compression: Compression for Oxford Nanopore signal data
Jason W. Bacon
jwb at FreeBSD.org
Fri Aug 13 01:50:40 UTC 2021
The branch main has been updated by jwb:
URL: https://cgit.FreeBSD.org/ports/commit/?id=35f24e09c6727c745478197cdd15e9294238884f
commit 35f24e09c6727c745478197cdd15e9294238884f
Author: Jason W. Bacon <jwb at FreeBSD.org>
AuthorDate: 2021-08-13 01:48:47 +0000
Commit: Jason W. Bacon <jwb at FreeBSD.org>
CommitDate: 2021-08-13 01:50:35 +0000
archivers/vbz-compression: Compression for Oxford Nanopore signal data
VBZ Compression uses variable byte integer encoding to compress Oxford
Nanopore signal data.
---
archivers/Makefile | 1 +
archivers/vbz-compression/Makefile | 31 ++++++++++++++++++
archivers/vbz-compression/distinfo | 3 ++
.../vbz-compression/files/patch-CMakeLists.txt | 37 ++++++++++++++++++++++
.../vbz-compression/files/patch-vbz_CMakeLists.txt | 15 +++++++++
archivers/vbz-compression/pkg-descr | 10 ++++++
6 files changed, 97 insertions(+)
diff --git a/archivers/Makefile b/archivers/Makefile
index 22c1259cb943..fca4d8a860c5 100644
--- a/archivers/Makefile
+++ b/archivers/Makefile
@@ -245,6 +245,7 @@
SUBDIR += urbackup-client
SUBDIR += urbackup-server
SUBDIR += v1541commander
+ SUBDIR += vbz-compression
SUBDIR += xar
SUBDIR += xarchive
SUBDIR += xarchiver
diff --git a/archivers/vbz-compression/Makefile b/archivers/vbz-compression/Makefile
new file mode 100644
index 000000000000..db7a778e88ba
--- /dev/null
+++ b/archivers/vbz-compression/Makefile
@@ -0,0 +1,31 @@
+PORTNAME= vbz-compression
+DISTVERSIONPREFIX= v
+DISTVERSION= 1.0.1
+CATEGORIES= archivers
+
+MAINTAINER= jwb at FreeBSD.org
+COMMENT= Variable byte integer encoding to compress Oxford Nanopore signal data
+
+LICENSE= MPL20
+LICENSE_FILE= ${WRKSRC}/LICENCE.txt
+
+BUILD_DEPENDS= streamvbyte>=0.4.1:archivers/streamvbyte
+LIB_DEPENDS= libhdf5.so:science/hdf5 \
+ libzstd.so:archivers/zstd
+
+USES= cmake
+USE_GITHUB= yes
+USE_LDCONFIG= ${PREFIX}/hdf5/lib/plugin
+
+GH_ACCOUNT= nanoporetech
+GH_PROJECT= vbz_compression
+
+CMAKE_ARGS= -DENABLE_CONAN=OFF \
+ -DENABLE_PERF_TESTING=OFF \
+ -DENABLE_PYTHON=OFF \
+ -DSTREAMVBYTE_INSTALL_DIR=${LOCALBASE} \
+ -DSTREAMVBYTE_STATIC_LIB=${LOCALBASE}/lib/libstreamvbyte_static.a
+
+PLIST_FILES= hdf5/lib/plugin/libvbz_hdf_plugin.so
+
+.include <bsd.port.mk>
diff --git a/archivers/vbz-compression/distinfo b/archivers/vbz-compression/distinfo
new file mode 100644
index 000000000000..38af63eba95a
--- /dev/null
+++ b/archivers/vbz-compression/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1628777147
+SHA256 (nanoporetech-vbz_compression-v1.0.1_GH0.tar.gz) = 3c140fb4f60f8451db68768457c59b10aadba4c33f1b1a1eadb4439345b68192
+SIZE (nanoporetech-vbz_compression-v1.0.1_GH0.tar.gz) = 5292519
diff --git a/archivers/vbz-compression/files/patch-CMakeLists.txt b/archivers/vbz-compression/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..048c9e78875d
--- /dev/null
+++ b/archivers/vbz-compression/files/patch-CMakeLists.txt
@@ -0,0 +1,37 @@
+--- CMakeLists.txt.orig 2020-06-19 15:45:38 UTC
++++ CMakeLists.txt
+@@ -139,34 +139,6 @@ find_package(HDF5 1.8.16)
+ find_package(zstd 1.3.1 REQUIRED)
+ find_package(Sanitizers)
+
+-get_filename_component(STREAMVBYTE_SOURCE_DIR
+- third_party/streamvbyte
+- ABSOLUTE
+-)
+-set(STREAMVBYTE_INSTALL_DIR "${CMAKE_BINARY_DIR}/streamvbyte_lib/")
+-set(STREAMVBYTE_PREFIX ${CMAKE_BINARY_DIR}/streamvbyte)
+-set(STREAMVBYTE_STATIC_LIB_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}streamvbyte_static${CMAKE_STATIC_LIBRARY_SUFFIX})
+-set(STREAMVBYTE_STATIC_LIB_SUBDIR ".")
+-get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
+-if (is_multi_config)
+- set(STREAMVBYTE_STATIC_LIB_SUBDIR "$<CONFIG>")
+-endif()
+-ExternalProject_Add(
+- streamvbyte
+- SOURCE_DIR ${STREAMVBYTE_SOURCE_DIR}
+- UPDATE_DISCONNECTED TRUE
+- PREFIX ${STREAMVBYTE_PREFIX}
+- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STREAMVBYTE_INSTALL_DIR} -DSTREAMVBYTE_DISABLE_NATIVE=ON -DSTD_FLAGS="-std=c99"
+- # We need to tell CMake about libraries we will link to, otherwise some generators (eg: Ninja)
+- # complain about how knowing how to build libstreamvbyte_static.a, for example.
+- # Ideally, we'd set a hypothetical INSTALL_BYPRODUCTS, and link to the installed file, but that
+- # doesn't seem to be an option.
+- BUILD_BYPRODUCTS "<BINARY_DIR>/${STREAMVBYTE_STATIC_LIB_NAME}"
+-)
+-ExternalProject_Get_Property(streamvbyte BINARY_DIR)
+-set(STREAMVBYTE_STATIC_LIB "${BINARY_DIR}/${STREAMVBYTE_STATIC_LIB_SUBDIR}/${STREAMVBYTE_STATIC_LIB_NAME}")
+-
+-
+ ########################################################################
+ #
+ # Warnings
diff --git a/archivers/vbz-compression/files/patch-vbz_CMakeLists.txt b/archivers/vbz-compression/files/patch-vbz_CMakeLists.txt
new file mode 100644
index 000000000000..fe9d4131a9f9
--- /dev/null
+++ b/archivers/vbz-compression/files/patch-vbz_CMakeLists.txt
@@ -0,0 +1,15 @@
+--- vbz/CMakeLists.txt.orig 2020-06-19 15:45:38 UTC
++++ vbz/CMakeLists.txt
+@@ -25,12 +25,6 @@ target_include_directories(vbz
+ ${STREAMVBYTE_INSTALL_DIR}/include
+ )
+
+-# This explicit dependency is required to make sure the header files are installed into the right
+-# location before we try building against them.
+-add_dependencies(vbz
+- streamvbyte
+-)
+-
+ if (WIN32 OR APPLE OR "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "x86_64")
+ if(NOT MSVC)
+ target_compile_options(vbz PRIVATE -mssse3)
diff --git a/archivers/vbz-compression/pkg-descr b/archivers/vbz-compression/pkg-descr
new file mode 100644
index 000000000000..78a0d6ace188
--- /dev/null
+++ b/archivers/vbz-compression/pkg-descr
@@ -0,0 +1,10 @@
+VBZ Compression uses variable byte integer encoding to compress Oxford
+Nanopore signal data.
+
+The performance of VBZ is achieved by taking advantage of the properties of the
+raw signal and therefore is most effective when applied to the signal dataset.
+Other datasets you may have in your Fast5 files will not be able to take
+advantage of the default VBZ settings for compression. VBZ will be used as the
+default compression scheme in a future release of MinKNOW.
+
+WWW: https://github.com/nanoporetech/vbz_compression
More information about the dev-commits-ports-all
mailing list