git: 042fe38f0395 - main - biology/viennarna: Unbundle dlib, use port dependency instead

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Thu, 09 Oct 2025 14:58:49 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=042fe38f0395f73b4a9aa2db5c9f4815af33ac6a

commit 042fe38f0395f73b4a9aa2db5c9f4815af33ac6a
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2025-10-09 14:57:08 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2025-10-09 14:58:45 +0000

    biology/viennarna: Unbundle dlib, use port dependency instead
    
    This should fix build.
---
 biology/viennarna/Makefile                         | 12 +++---
 .../files/patch-m4_ac__rna__build__requirements.m4 | 43 ++++++++++++++++++++++
 .../files/patch-src_ViennaRNA_Makefile.am          | 22 +++++++++++
 3 files changed, 72 insertions(+), 5 deletions(-)

diff --git a/biology/viennarna/Makefile b/biology/viennarna/Makefile
index aa45c46534f4..7088761b767b 100644
--- a/biology/viennarna/Makefile
+++ b/biology/viennarna/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	viennarna
 DISTVERSION=	2.7.0
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	biology
 MASTER_SITES=	https://www.tbi.univie.ac.at/RNA/download/sourcecode/2_7_x/
 DISTNAME=	ViennaRNA-${DISTVERSION}
@@ -15,15 +15,13 @@ LICENSE_NAME=	Vienna RNA License
 LICENSE_FILE=	${WRKSRC}/COPYING
 LICENSE_PERMS=	auto-accept dist-mirror pkg-mirror
 
-BROKEN_FreeBSD_13=	compilation fails with clang-19: see https://github.com/ViennaRNA/ViennaRNA/issues/253
-BROKEN_FreeBSD_15=	compilation fails with clang-19: see https://github.com/ViennaRNA/ViennaRNA/issues/253
-
 BUILD_DEPENDS=	bash:shells/bash \
 		lapacke>0:math/lapacke \
 		libgd>0:graphics/gd # for the static lib
 BUILD_DEPENDS+=	swig:devel/swig \
 		xxd:sysutils/xxd
-LIB_DEPENDS=	libgmp.so:math/gmp \
+LIB_DEPENDS=	libdlib.so:science/dlib-cpp \
+		libgmp.so:math/gmp \
 		libgsl.so:math/gsl \
 		liblapack.so:math/lapack \
 		libmpfr.so:math/mpfr
@@ -57,6 +55,10 @@ PORTEXAMPLES=	*
 post-configure: # remove -lstdc++ from .pc file
 	@${REINPLACE_CMD} -e 's| -lstdc++||' ${WRKSRC}/RNAlib2.pc
 
+post-extract:
+	# remove bundled dlib to ensure we use system version
+	@${RM} -rf ${WRKSRC}/src/dlib-19.24
+
 post-install:
 	# remove stray files
 	@${RM} ${STAGEDIR}/RNA/RNAconsensus.py
diff --git a/biology/viennarna/files/patch-m4_ac__rna__build__requirements.m4 b/biology/viennarna/files/patch-m4_ac__rna__build__requirements.m4
new file mode 100644
index 000000000000..67d75c4a94c0
--- /dev/null
+++ b/biology/viennarna/files/patch-m4_ac__rna__build__requirements.m4
@@ -0,0 +1,43 @@
+# Use system dlib instead of bundled version
+# - Replace bundled dlib detection with pkg-config
+# - Use system dlib from science/dlib-cpp port
+# - Remove hardcoded paths to bundled dlib-19.24
+--- m4/ac_rna_build_requirements.m4.orig	2024-06-01 20:46:46 UTC
++++ m4/ac_rna_build_requirements.m4
+@@ -253,28 +253,18 @@ AC_DEFUN([RNA_CHECK_DLIB], [
+ 
+ AC_DEFUN([RNA_CHECK_DLIB], [
+   AX_CXX_COMPILE_STDCXX(17, noext, mandatory)
+-  DLIB_VERSION=19.24
+-  DLIB_DIR="dlib-${DLIB_VERSION}"
+-  DLIB_PATH="${srcdir}/src/${DLIB_DIR}"
+-  DLIB_SRC_FILE="${DLIB_PATH}/dlib/all/source.cpp"
+ 
+-  AC_RNA_TEST_FILE($DLIB_SRC_FILE,[],[
++  dnl Check for system dlib using pkg-config
++  PKG_CHECK_MODULES([DLIB], [dlib-1 >= 19.0], [
++    AC_DEFINE([HAVE_DLIB], [1], [Define if you have dlib])
++  ], [
+     AC_MSG_ERROR([
+-=================================================
+-Can't find dlib's source.cpp
+-
+-Make sure you've unpacked 'src/dlib-${DLIB_VERSION}.tar.bz2'!
+-
+-Usually, you only need to execute the following command:
+-
+-tar -xjf src/dlib-${DLIB_VERSION}.tar.bz2 -C src/
+-=================================================
+-])
++dlib development library not found. Please install dlib-cpp port.
++    ])
+   ])
+ 
+-  AC_SUBST(DLIB_CPPFLAGS, "-I\$(top_srcdir)/src/${DLIB_DIR} -DDLIB_NO_GUI_SUPPORT")
+-  AC_SUBST(DLIB_DIR)
+-  AC_SUBST(DLIB_VERSION)
++  AC_SUBST(DLIB_CPPFLAGS, "${DLIB_CFLAGS} -DDLIB_NO_GUI_SUPPORT")
++  AC_SUBST(DLIB_LIBS, "${DLIB_LIBS}")
+ 
+ ])
+ 
diff --git a/biology/viennarna/files/patch-src_ViennaRNA_Makefile.am b/biology/viennarna/files/patch-src_ViennaRNA_Makefile.am
new file mode 100644
index 000000000000..b50bbe1659c0
--- /dev/null
+++ b/biology/viennarna/files/patch-src_ViennaRNA_Makefile.am
@@ -0,0 +1,22 @@
+# Use system dlib instead of bundled version
+# - Remove bundled dlib source compilation
+# - Link concentrations library with system dlib
+# - Avoid compiling ../@DLIB_DIR@/dlib/all/source.cpp
+--- src/ViennaRNA/Makefile.am.orig	2024-10-19 20:19:42 UTC
++++ src/ViennaRNA/Makefile.am
+@@ -76,6 +76,7 @@ libRNA_concentrations_la_CPPFLAGS = $(AM_CPPFLAGS) $(D
+ libRNA_la_LDFLAGS = -avoid-version -static $(LTO_LDFLAGS) $(PTHREAD_LIBS)
+ 
+ libRNA_concentrations_la_CPPFLAGS = $(AM_CPPFLAGS) $(DLIB_CPPFLAGS)
++libRNA_concentrations_la_LIBADD = $(DLIB_LIBS)
+ 
+ libRNA_conv_la_LIBADD = \
+     libRNA_backtrack.la \
+@@ -493,7 +494,6 @@ libRNA_concentrations_la_SOURCES = \
+ 
+ libRNA_concentrations_la_SOURCES = \
+     concentrations.c \
+-    ../@DLIB_DIR@/dlib/all/source.cpp \
+     wrap_dlib.cpp
+ 
+