Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Apr 2026 08:32:18 +0000
From:      Yuri Victorovich <yuri@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 54788d73060e - main - biology/barrnap: update 0=?utf-8?Q?=2E9 =E2=86=92 1?=.10.6
Message-ID:  <69dcaa12.1a1f2.1c6bfdfa@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=54788d73060e9fbb2fcb3385fdc603f9719c20c5

commit 54788d73060e9fbb2fcb3385fdc603f9719c20c5
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-04-13 08:31:34 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-04-13 08:32:11 +0000

    biology/barrnap: update 0.9 → 1.10.6
---
 biology/barrnap/Makefile                  |  30 +++++---
 biology/barrnap/distinfo                  |   6 +-
 biology/barrnap/files/patch-Makefile      |  22 ++++++
 biology/barrnap/files/patch-bin_barrnap   |  87 +++++++++++++++++++++++
 biology/barrnap/files/patch-test_Makefile |   8 +++
 biology/barrnap/files/patch-test_test.sh  | 113 ++++++++++++++++++++++++++++++
 biology/barrnap/pkg-plist                 |   7 +-
 7 files changed, 256 insertions(+), 17 deletions(-)

diff --git a/biology/barrnap/Makefile b/biology/barrnap/Makefile
index 90971ff06d7a..1d623b7e1952 100644
--- a/biology/barrnap/Makefile
+++ b/biology/barrnap/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	barrnap
-DISTVERSION=	0.9
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.10.6
 CATEGORIES=	biology science
 
 MAINTAINER=	yuri@FreeBSD.org
@@ -10,23 +11,32 @@ LICENSE=	GPLv3
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 RUN_DEPENDS=	bedtools:biology/bedtools \
-		nhmmer:biology/hmmer
+		cmsearch:biology/infernal \
+		p5-File-Which>0:sysutils/p5-File-Which \
+		p5-List-MoreUtils>0:lang/p5-List-MoreUtils \
+		p5-Path-Tiny>0:devel/p5-Path-Tiny \
+		seqkit:biology/seqkit
+TEST_DEPENDS=	bats:devel/bats-core
 
-USES=		gmake perl5
+USES=		gmake perl5 shebangfix
+SHEBANG_FILES=	bin/barrnap test/test.sh
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	tseemann
 
-NO_BUILD=	yes
-NO_ARCH=	yes
+MAKE_ENV=	PREFIX=${PREFIX} DATADIR=${DATADIR}
 
+INSTALL_TARGET=	install
 TEST_TARGET=	test
 
-do-install:
-	${INSTALL_SCRIPT} ${WRKSRC}/bin/barrnap ${STAGEDIR}${PREFIX}/bin
-	cd ${WRKSRC} && ${COPYTREE_SHARE} db ${STAGEDIR}${DATADIR}
+NO_BUILD=	yes
+NO_ARCH=	yes
+
+post-patch:
 	${REINPLACE_CMD} \
-		-i '' -e 's|^my $$DBDIR = .*|my $$DBDIR = "${DATADIR}/db";|' \
-		${STAGEDIR}${PREFIX}/bin/barrnap
+		-e 's|^my $$DEFAULT_DBDIR = .*|my $$DEFAULT_DBDIR = path("${DATADIR}/db");|' \
+		${WRKSRC}/bin/barrnap
+
+# tests as of 1.10.6: 17 tests, 0 failures, 7 skipped in 0 seconds
 
 .include <bsd.port.mk>
diff --git a/biology/barrnap/distinfo b/biology/barrnap/distinfo
index 48b3f9e21728..92cf72fa74fb 100644
--- a/biology/barrnap/distinfo
+++ b/biology/barrnap/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1669343398
-SHA256 (tseemann-barrnap-0.9_GH0.tar.gz) = 36c27cd4350531d98b3b2fb7d294a2d35c15b7365771476456d7873ba33cce15
-SIZE (tseemann-barrnap-0.9_GH0.tar.gz) = 11837541
+TIMESTAMP = 1776067425
+SHA256 (tseemann-barrnap-v1.10.6_GH0.tar.gz) = 6904ca909f59ce8e0952784d59a7d6b5334586f592e1595fa153a917d2a33d62
+SIZE (tseemann-barrnap-v1.10.6_GH0.tar.gz) = 954417
diff --git a/biology/barrnap/files/patch-Makefile b/biology/barrnap/files/patch-Makefile
new file mode 100644
index 000000000000..ea23225312d7
--- /dev/null
+++ b/biology/barrnap/files/patch-Makefile
@@ -0,0 +1,22 @@
+--- Makefile.orig	2026-04-13 08:14:51 UTC
++++ Makefile
+@@ -0,0 +1,19 @@
++PREFIX ?= /usr/local
++DESTDIR ?=
++DATADIR ?= $(PREFIX)/share/barrnap
++BINDIR ?= $(PREFIX)/bin
++INSTALL ?= install
++MKDIR_P ?= mkdir -p
++CP ?= cp -R
++
++.PHONY: all install test
++
++all:
++
++install:
++	$(MKDIR_P) $(DESTDIR)$(BINDIR) $(DESTDIR)$(DATADIR)
++	$(INSTALL) -m 0555 bin/barrnap $(DESTDIR)$(BINDIR)/barrnap
++	$(CP) db $(DESTDIR)$(DATADIR)/
++
++test:
++	$(MAKE) -C test all
diff --git a/biology/barrnap/files/patch-bin_barrnap b/biology/barrnap/files/patch-bin_barrnap
new file mode 100644
index 000000000000..0c482e61845d
--- /dev/null
+++ b/biology/barrnap/files/patch-bin_barrnap
@@ -0,0 +1,87 @@
+--- bin/barrnap.orig	2026-04-13 08:23:19 UTC
++++ bin/barrnap
+@@ -14,14 +14,22 @@ use FindBin;
+ # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
+ # global variables
+ 
+-my $VERSION = "1.10.5";
++my $VERSION = "1.10.6";
+ my $EXE = $FindBin::RealScript;
+ my $DESC = "Rapid microbial RNA annotationn";
+ my $AUTHOR = 'Torsten Seemann';
+ my $URL = 'https://github.com/tseemann/barrnap';
+-my $DEFAULT_DBDIR = path("$FindBin::RealBin/../db")->realpath;
++my $DEFAULT_DBDIR = path("/usr/local/share/barrnap/db");
+ my $BUILD_DIR = path("$FindBin::RealBin/../build")->realpath;
+ my $DEVNULL = File::Spec->devnull;
++my %NEEDS_EXE = (
++  rrna => [qw(cmsearch seqkit)],
++  trna => [qw(aragorn)],
++  ncrna => [qw(cmscan)],
++  mrna => [qw(pyrodigal diamond ziggypep transterm)],
++  operon => [qw(bedtools)],
++  updatedb => [qw(make taxonkit diamond seqkit)],
++);
+ my $DOT = '.';
+ my @KINGDOM = qw"bac arc fun";
+ my %KINGDOM = (map { $_ => 1 } @KINGDOM);
+@@ -91,11 +99,7 @@ msg("Checking dependencies:");
+   $rrna = $trna = $ncrna = $operon = $mrna = 1;
+ }
+ msg("Checking dependencies:");
+-require_exe(
+-  'cmsearch', 'cmscan', 'bedtools', 'aragorn', 
+-  'any2fasta', 'seqkit', 'make', 'transterm',
+-  'ziggypep', 'pyrodigal', 'diamond', 'taxonkit'
+-);
++require_exe(required_exe());
+ 
+ # Check all input files and make
+ my @infile;
+@@ -115,8 +119,13 @@ my($a2f_opt,$sk_opt) = $quiet ? ('-q','--quiet') : (''
+ # Write a single combined FASTA file
+ my $FASTA = File::Spec->rel2abs("$EXE.fasta");
+ my($a2f_opt,$sk_opt) = $quiet ? ('-q','--quiet') : ('','');
+-run_cmd("any2fasta -k $a2f_opt @infile > $FASTA.tmp");
+-run_cmd("seqkit seq $sk_opt -g --min-len 1 -u -w 60 $FASTA.tmp > $FASTA");
++if (which('any2fasta')) {
++  run_cmd("any2fasta -k $a2f_opt @infile > $FASTA.tmp");
++  run_cmd("seqkit seq $sk_opt -g --min-len 1 -u -w 60 $FASTA.tmp > $FASTA");
++}
++else {
++  run_cmd("seqkit seq $sk_opt -g --min-len 1 -u -w 60 @infile > $FASTA");
++}
+ -s $FASTA or err("No sequences found in input");
+ run_cmd("rm -f $FASTA.fai"); # for --debug case of tmp=.
+ run_cmd("seqkit faidx $sk_opt $FASTA");
+@@ -716,6 +725,12 @@ sub enumerate_dbs {
+     $dmnd =~ m=(\w+)\.dmnd$= or err("Bad DMND model: $dmnd");
+     $db->{$1}{'CDS'} = $dmnd;
+   }
++  if (! keys %$db) {
++    for my $yml (glob("$dir/*/database.yml")) {
++      $yml =~ m=(\w+)/database\.yml$= or err("Bad database metadata: $yml");
++      $db->{$1}{rRNA} = $yml;
++    }
++  }
+   return $db;
+ }
+ #----------------------------------------------------------------------
+@@ -747,6 +762,17 @@ sub update_dbs {
+   list_dbs($d);
+   #msg("Finished updating databases.");
+   exit(0);
++}
++#----------------------------------------------------------------------
++sub required_exe {
++  my @exe;
++  push @exe, @{$NEEDS_EXE{updatedb}} if $updatedb;
++  push @exe, @{$NEEDS_EXE{rrna}} if $rrna;
++  push @exe, @{$NEEDS_EXE{trna}} if $trna;
++  push @exe, @{$NEEDS_EXE{ncrna}} if $ncrna;
++  push @exe, @{$NEEDS_EXE{mrna}} if $mrna;
++  push @exe, @{$NEEDS_EXE{operon}} if $operon || $outseq;
++  return uniq @exe;
+ }
+ #----------------------------------------------------------------------
+ sub require_exe {
diff --git a/biology/barrnap/files/patch-test_Makefile b/biology/barrnap/files/patch-test_Makefile
new file mode 100644
index 000000000000..61835909f1a9
--- /dev/null
+++ b/biology/barrnap/files/patch-test_Makefile
@@ -0,0 +1,8 @@
+--- test/Makefile.orig	2026-04-13 08:21:58 UTC
++++ test/Makefile
+@@ -2,4 +2,4 @@ all:
+ .PHONY: all
+ 
+ all:
+-	bats --abort -T test.sh
++	bats -T test.sh
diff --git a/biology/barrnap/files/patch-test_test.sh b/biology/barrnap/files/patch-test_test.sh
new file mode 100644
index 000000000000..eb1be37ae64b
--- /dev/null
+++ b/biology/barrnap/files/patch-test_test.sh
@@ -0,0 +1,113 @@
+--- test/test.sh.orig	2026-04-13 08:23:19 UTC
++++ test/test.sh
+@@ -4,8 +4,8 @@ setup () {
+   bats_require_minimum_version 1.5.0
+   dir=$(dirname "$BATS_TEST_FILENAME")
+   cd "$dir"
+-  cpus=$(nproc)
+-  exe="$dir/../bin/barrnap --threads $cpus"
++  cpus=${CPUS:-$(sysctl -n hw.ncpu)}
++  exe="$dir/../bin/barrnap --threads $cpus --dbdir $dir/../db"
+   dbs="bac arc fun"
+   tab=$'\t'
+   TRNA="${tab}tRNA${tab}"
+@@ -14,6 +14,18 @@ setup () {
+   OPERON="${tab}operon${tab}"
+   SEQREG="##sequence-region"
+ }
++
++require_cmds() {
++  local cmd
++  for cmd in "$@"; do
++    command -v "$cmd" >/dev/null || skip "missing required command: $cmd"
++  done
++}
++
++require_db_models() {
++  find "$dir/../db" -name '*.cm' -print -quit | grep -q . || skip "missing bundled CM models"
++}
++
+ @test "Script syntax check" {
+   run -0 perl -c "$dir/../bin/barrnap"
+ }
+@@ -47,33 +59,42 @@ setup () {
+   [[ "$output" =~ "--kingdom" ]]
+ }
+ @test "Null input" {
++  require_cmds cmsearch seqkit
+   run ! $exe null.fa
+   [[ "$output" =~ "ERROR" ]]
+ }
+ @test "Empry input" {
++  require_cmds cmsearch seqkit
+   run ! $exe empty.fa
+   [[ "$output" =~ "ERROR" ]]
+ }
+ @test "Weird poly-G sequence" {
++  require_cmds cmsearch seqkit
++  require_db_models
+   run -0 $exe --fast polyg.fa
+   [[ "$output" =~ "Found 0 features" ]]
+ }
+ @test "Input with no hits" {
++  require_cmds cmsearch seqkit
++  require_db_models
+   run -0 $exe nohits.fa
+   [[ "$output" =~ "Found 0 features" ]]
+ }
+ @test "Fast mode" {
++  require_cmds cmsearch seqkit
++  require_db_models
+   run -0 $exe -q --fast small.fa
+   [[ "$output" =~ $RRNA ]]
+ }
+ @test "Mini bacterial genome" {
++  require_cmds aragorn bedtools cmsearch cmscan diamond pyrodigal seqkit taxonkit transterm ziggypep
+   local outseq="${BATS_TMPDIR}/outseq.fa"
+   run -0 $exe --all --quiet \
+     --outseq "$outseq" \
+     --incseqreg --incseq --addids \
+     small.fa
+   [[ "$output" =~ $TRNA ]]
+-  [[ "$output" =~ $RRMA ]]
++  [[ "$output" =~ $RRNA ]]
+   [[ "$output" =~ $NCRNA ]]
+   [[ "$output" =~ "ID=5S" ]]
+   [[ "$output" =~ "ID=16S" ]]
+@@ -90,9 +111,11 @@ barrnap_legacy() {
+ }
+ 
+ barrnap_legacy() {
++  require_cmds cmsearch seqkit
++  require_db_models
+   run -0 $exe --quiet \
+     --kingdom "$1" "$1.fa"
+-  [[   "$output" =~ $RRMA  ]]
++  [[   "$output" =~ $RRNA  ]]
+   [[ ! "$output" =~ $TRNA  ]]
+   [[ ! "$output" =~ $NCRNA ]]
+   [[ ! "$output" =~ "##FASTA" ]]
+@@ -100,6 +123,8 @@ barrnap_legacy() {
+   [[ ! "$output" =~ "ID=" ]]
+ }
+ @test "Bacteria" {
++  require_cmds cmsearch seqkit
++  require_db_models
+   #type barrnap_legacy
+   run barrnap_legacy "bac"
+   #echo "STATUS=$status" >&3
+@@ -108,10 +133,14 @@ barrnap_legacy() {
+   #[[ "$FOO" =~ "5S_rRNA" ]]
+ }
+ @test "Archaea" {
++  require_cmds cmsearch seqkit
++  require_db_models
+   run -0 barrnap_legacy "arc"
+   #[[ "$output" =~ "5S_rRNA" ]]
+ }
+ @test "Fungi" {
++  require_cmds cmsearch seqkit
++  require_db_models
+   run -0 barrnap_legacy "fun"
+   #[[ "$output" =~ "28S_rRNA" ]]
+ }
diff --git a/biology/barrnap/pkg-plist b/biology/barrnap/pkg-plist
index fbf0ddaac319..7c55633ba79c 100644
--- a/biology/barrnap/pkg-plist
+++ b/biology/barrnap/pkg-plist
@@ -1,5 +1,4 @@
 bin/barrnap
-%%DATADIR%%/db/arc.hmm
-%%DATADIR%%/db/bac.hmm
-%%DATADIR%%/db/euk.hmm
-%%DATADIR%%/db/mito.hmm
+%%DATADIR%%/db/arc/database.yml
+%%DATADIR%%/db/bac/database.yml
+%%DATADIR%%/db/fun/database.yml


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69dcaa12.1a1f2.1c6bfdfa>