git: 5faaf2fa6dee - main - biology/btllib: update 1.7.8 → 1.8.0

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Mon, 19 Oct 2026 06:26:54 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5faaf2fa6deeda5eccfe4a4e9398ec104bdb3931

commit 5faaf2fa6deeda5eccfe4a4e9398ec104bdb3931
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-10-19 01:56:38 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-10-19 06:26:42 +0000

    biology/btllib: update 1.7.8 → 1.8.0
---
 biology/btllib/Makefile                            | 11 ++++++++-
 biology/btllib/distinfo                            |  6 ++---
 biology/btllib/files/example.py                    | 27 ++++++++++++++++++++++
 biology/btllib/files/patch-meson.build             |  4 ++--
 .../files/patch-src_btllib_process__pipeline.cpp   | 19 +++++++++++++++
 biology/btllib/files/patch-src_btllib_status.cpp   | 11 +++------
 .../files/patch-subprojects_cpptoml_CMakeLists.txt |  8 ++++---
 biology/btllib/pkg-plist                           |  9 ++++++++
 8 files changed, 78 insertions(+), 17 deletions(-)

diff --git a/biology/btllib/Makefile b/biology/btllib/Makefile
index 7e962c1133ee..f153f65f6f0e 100644
--- a/biology/btllib/Makefile
+++ b/biology/btllib/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	btllib
 DISTVERSIONPREFIX=	v
-DISTVERSION=	1.7.8
+DISTVERSION=	1.8.0
 CATEGORIES=	biology devel
 
 MAINTAINER=	yuri@FreeBSD.org
@@ -28,5 +28,14 @@ GH_TUPLE=	p-ranav:argparse:15d745f:argparse/subprojects/argparse \
 		skystrife:cpptoml:fededad:cpptoml/subprojects/cpptoml
 
 BINARY_ALIAS=	python3=${PYTHON_CMD} # python3-config=${PYTHON_CMD}-config # installs python binding into a wrong location, see https://github.com/bcgsc/btllib/issues/111
+BINARY_ALIAS+=	python3-config=${PYTHON_CMD}-config
+
+post-patch: # workaround for https://github.com/BirolLab/btllib/issues/151
+	@${REINPLACE_CMD} \
+		-e "s|install_dir : 'lib/btllib/python|install_dir : '${PYTHONPREFIX_SITELIBDIR:S/${PREFIX}//:S/^\///}|g" \
+		${WRKSRC}/wrappers/python/meson.build
+
+test-quick-python:
+	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} ${PYTHON_CMD} ${FILESDIR}/example.py ${WRKSRC}/examples/my_reads.fq.gz
 
 .include <bsd.port.mk>
diff --git a/biology/btllib/distinfo b/biology/btllib/distinfo
index b2f9f9240261..2f2497b41273 100644
--- a/biology/btllib/distinfo
+++ b/biology/btllib/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1790185724
-SHA256 (bcgsc-btllib-v1.7.8_GH0.tar.gz) = 1bfc83f639d04dd55d57c5bc32c1b12cfd77fac571220655e443f41243205c5f
-SIZE (bcgsc-btllib-v1.7.8_GH0.tar.gz) = 965173
+TIMESTAMP = 1792360971
+SHA256 (bcgsc-btllib-v1.8.0_GH0.tar.gz) = 81c29b0b486f8ba1014b145c58cf0a9aec1356297bbdb5fa76cee9ab7a06a983
+SIZE (bcgsc-btllib-v1.8.0_GH0.tar.gz) = 1123755
 SHA256 (p-ranav-argparse-15d745f_GH0.tar.gz) = f033d4eb4a430b4ae4bf3c2a40e087709bf77462c1f9968ae07828437219a370
 SIZE (p-ranav-argparse-15d745f_GH0.tar.gz) = 105608
 SHA256 (skystrife-cpptoml-fededad_GH0.tar.gz) = dd2d129b67f537ae7d6f8d8d084c8c0d772d0f5b4b3118c1892e67ff536e335e
diff --git a/biology/btllib/files/example.py b/biology/btllib/files/example.py
new file mode 100644
index 000000000000..fb17c2f3c191
--- /dev/null
+++ b/biology/btllib/files/example.py
@@ -0,0 +1,27 @@
+import btllib
+import sys
+
+# Path to the sequencing reads file (can be plain text or compressed gzipped)
+if len(sys.argv) != 2:
+    print("Usage: python example.py <path_to_fastq_file>")
+    sys.exit(1)
+fastq_file = sys.argv[1]
+
+# Configure reader flags (e.g., using long mode optimization for Oxford Nanopore or PacBio reads)
+flags = btllib.SeqReaderFlag.LONG_MODE
+
+# Initialize the sequence reader
+reader = btllib.SeqReader(fastq_file, flags)
+
+# Iterate through records efficiently
+for record in reader:
+    # Access metadata and genomic sequences
+    record_id = record.id
+    sequence = record.seq
+    qualities = record.qual  # Only applicable for FASTQ formats
+    
+    print(f"ID: {record_id}")
+    print(f"Length: {len(sequence)}")
+    print(f"Sequence (first 20 bp): {sequence[:20]}")
+    break  # Exit early for demonstration
+
diff --git a/biology/btllib/files/patch-meson.build b/biology/btllib/files/patch-meson.build
index f32d592315c1..8fbf4a42d0b2 100644
--- a/biology/btllib/files/patch-meson.build
+++ b/biology/btllib/files/patch-meson.build
@@ -1,8 +1,8 @@
---- meson.build.orig	2026-03-11 18:55:57 UTC
+--- meson.build.orig	2026-10-16 20:52:17 UTC
 +++ meson.build
 @@ -1,7 +1,7 @@ project('btllib', 'cpp',
  project('btllib', 'cpp',
-         version : '1.7.6',
+         version : '1.8.0',
          license : 'GPL3',
 -        default_options : [ 'cpp_std=c++17', 'warning_level=3', 'werror=true', 'b_coverage=true' ],
 +        default_options : [ 'cpp_std=c++17', 'warning_level=3', 'b_coverage=true' ],
diff --git a/biology/btllib/files/patch-src_btllib_process__pipeline.cpp b/biology/btllib/files/patch-src_btllib_process__pipeline.cpp
new file mode 100644
index 000000000000..fcdb638306d8
--- /dev/null
+++ b/biology/btllib/files/patch-src_btllib_process__pipeline.cpp
@@ -0,0 +1,19 @@
+-- /dev/shm can only be used on Limux.
+-- upstreamed: https://github.com/BirolLab/btllib/pull/152
+
+--- src/btllib/process_pipeline.cpp.orig	2026-10-16 20:52:17 UTC
++++ src/btllib/process_pipeline.cpp
+@@ -698,7 +698,12 @@ set_pipepath_prefix()
+ {
+   struct stat info
+   {};
+-  if ((stat("/dev/shm", &info) == 0) && ((info.st_mode & S_IFMT) == S_IFDIR)) {
++#if defined(__linux__)
++  const bool is_linux = true;
++#else
++  const bool is_linux = false;
++#endif
++  if (is_linux && (stat("/dev/shm", &info) == 0) && ((info.st_mode & S_IFMT) == S_IFDIR)) {
+     pipepath_prefix = "/dev/shm/";
+   } else {
+     const auto* const tmpdir =
diff --git a/biology/btllib/files/patch-src_btllib_status.cpp b/biology/btllib/files/patch-src_btllib_status.cpp
index 930452d89fad..716acbf4600c 100644
--- a/biology/btllib/files/patch-src_btllib_status.cpp
+++ b/biology/btllib/files/patch-src_btllib_status.cpp
@@ -1,4 +1,6 @@
---- src/btllib/status.cpp.orig	2023-07-21 18:23:40 UTC
+-- upstreamed: https://github.com/BirolLab/btllib/pull/152
+
+--- src/btllib/status.cpp.orig	2026-10-16 20:52:17 UTC
 +++ src/btllib/status.cpp
 @@ -84,7 +84,7 @@ get_strerror()
    char buf[buflen];
@@ -9,10 +11,3 @@
    ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !_GNU_SOURCE)
    strerror_r(errno, buf, buflen);
    return buf;
-@@ -111,4 +111,4 @@ check_file_accessibility(const std::string& filepath)
-   btllib::check_error(ret != 0, get_strerror() + ": " + filepath);
- }
- 
--} // namespace btllib
-\ No newline at end of file
-+} // namespace btllib
diff --git a/biology/btllib/files/patch-subprojects_cpptoml_CMakeLists.txt b/biology/btllib/files/patch-subprojects_cpptoml_CMakeLists.txt
index 62156c4a2b32..8145f7b04159 100644
--- a/biology/btllib/files/patch-subprojects_cpptoml_CMakeLists.txt
+++ b/biology/btllib/files/patch-subprojects_cpptoml_CMakeLists.txt
@@ -1,10 +1,12 @@
---- subprojects/cpptoml/CMakeLists.txt.orig	2023-05-06 14:38:35 UTC
+--- subprojects/cpptoml/CMakeLists.txt.orig	2018-10-22 20:28:28 UTC
 +++ subprojects/cpptoml/CMakeLists.txt
-@@ -1,2 +1,2 @@
+@@ -1,4 +1,4 @@
 -cmake_minimum_required(VERSION 3.1.0)
 +cmake_minimum_required(VERSION 3.5)
  project(cpptoml)
-@@ -11,8 +11,8 @@ include(CMakePushCheckState)
+ 
+ set(cpptoml_VERSION 0.4.0)
+@@ -11,8 +11,8 @@ cmake_push_check_state()
  
  cmake_push_check_state()
  
diff --git a/biology/btllib/pkg-plist b/biology/btllib/pkg-plist
index c3beeb0f5b9e..cab02ce73239 100644
--- a/biology/btllib/pkg-plist
+++ b/biology/btllib/pkg-plist
@@ -2,6 +2,12 @@ bin/indexlr
 bin/mi_bf_generate
 bin/randseq
 include/btllib/aahash.hpp
+include/btllib/bihash.hpp
+include/btllib/bihash_hashing_internals.hpp
+include/btllib/bihash_kmer.hpp
+include/btllib/bihash_kmer_base.hpp
+include/btllib/bihash_kmer_bi.hpp
+include/btllib/bihash_kmer_directional.hpp
 include/btllib/bloom_filter.hpp
 include/btllib/counting_bloom_filter-inl.hpp
 include/btllib/counting_bloom_filter.hpp
@@ -30,3 +36,6 @@ include/btllib/seq_writer.hpp
 include/btllib/status.hpp
 include/btllib/util.hpp
 lib/libbtllib.so
+%%PYTHON_SITELIBDIR%%/btllib/__init__.py
+%%PYTHON_SITELIBDIR%%/btllib/_btllib.so
+%%PYTHON_SITELIBDIR%%/setup.py