aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason W. Bacon <jwb@FreeBSD.org>2021-08-13 01:48:47 +0000
committerJason W. Bacon <jwb@FreeBSD.org>2021-08-13 01:50:35 +0000
commit35f24e09c6727c745478197cdd15e9294238884f (patch)
tree77ac7c7559005baf5fd6424ebf6737501993abf5
parentee4e8a0b3686f3387ce3eca0f604c076dfe67786 (diff)
downloadports-35f24e09c6727c745478197cdd15e9294238884f.tar.gz
ports-35f24e09c6727c745478197cdd15e9294238884f.zip
archivers/vbz-compression: Compression for Oxford Nanopore signal data
VBZ Compression uses variable byte integer encoding to compress Oxford Nanopore signal data.
-rw-r--r--archivers/Makefile1
-rw-r--r--archivers/vbz-compression/Makefile31
-rw-r--r--archivers/vbz-compression/distinfo3
-rw-r--r--archivers/vbz-compression/files/patch-CMakeLists.txt37
-rw-r--r--archivers/vbz-compression/files/patch-vbz_CMakeLists.txt15
-rw-r--r--archivers/vbz-compression/pkg-descr10
6 files changed, 97 insertions, 0 deletions
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@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