git: 6c7bfd6a6aab - main - biology/muscle: update 3.8.1551 -> 5.1
Date: Tue, 21 Jul 2026 09:52:00 UTC
The branch main has been updated by rodrigo:
URL: https://cgit.FreeBSD.org/ports/commit/?id=6c7bfd6a6aab06279041e5d5b9c63a1dec8a24dd
commit 6c7bfd6a6aab06279041e5d5b9c63a1dec8a24dd
Author: Rodrigo Osorio <rodrigo@FreeBSD.org>
AuthorDate: 2026-07-20 13:08:11 +0000
Commit: Rodrigo Osorio <rodrigo@FreeBSD.org>
CommitDate: 2026-07-21 09:50:28 +0000
biology/muscle: update 3.8.1551 -> 5.1
In 2021, the code was re-written from scratch for MUSCLE v5 to implement
novel algorithms and fully support modern PC hardware.
PR: 294891
Approved by: Maintainer Timeout (>2 months)
---
biology/muscle/Makefile | 26 ++++----
biology/muscle/distinfo | 6 +-
biology/muscle/files/patch-Makefile | 28 ---------
biology/muscle/files/patch-globalslinux.cpp | 94 -----------------------------
biology/muscle/files/patch-src__myutils.cpp | 65 ++++++++++++++++++++
5 files changed, 83 insertions(+), 136 deletions(-)
diff --git a/biology/muscle/Makefile b/biology/muscle/Makefile
index dd6b31a9a07f..f243953b2e0e 100644
--- a/biology/muscle/Makefile
+++ b/biology/muscle/Makefile
@@ -1,25 +1,29 @@
PORTNAME= muscle
-PORTVERSION= 3.8.1551
+PORTVERSION= 5.1
+DISTVERSIONPREFIX= v
CATEGORIES= biology
-MASTER_SITES= http://www.drive5.com/muscle/
-DISTNAME= ${PORTNAME}_src_${PORTVERSION}
MAINTAINER= mzaki@e-mail.ne.jp
COMMENT= MUltiple Sequence Comparison by Log-Expectation
WWW= https://www.drive5.com/muscle/
-LICENSE= PD
+LICENSE= GPLv3
-USES= dos2unix gmake
-NO_WRKSUBDIR= yes
-DOS2UNIX_GLOB= *.cpp
+BUILD_DEPENDS= bash:shells/bash
-PLIST_FILES= bin/muscle
+USES= gmake
+USE_GCC= yes
+
+USE_GITHUB= yes
+GH_ACCOUNT= rcedgar
+ALL_TARGET= ${OPSYS}/${PORTNAME}
+BINARY_ALIAS= g++=g++14
+WRKSRC_SUBDIR= src
-post-patch:
- ${MV} ${WRKSRC}/subfams.cpp ${WRKSRC}/subfams.cpp.not_to_be_compiled
+PLIST_FILES= bin/muscle
do-install:
- ${INSTALL_PROGRAM} ${WRKSRC}/muscle ${STAGEDIR}${PREFIX}/bin
+ cd ${WRKSRC} && \
+ ${INSTALL} ${OPSYS}/muscle ${STAGEDIR}${PREFIX}/bin/
.include <bsd.port.mk>
diff --git a/biology/muscle/distinfo b/biology/muscle/distinfo
index a6687d526e2e..b7c853250e26 100644
--- a/biology/muscle/distinfo
+++ b/biology/muscle/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1578543217
-SHA256 (muscle_src_3.8.1551.tar.gz) = c70c552231cd3289f1bad51c9bd174804c18bb3adcf47f501afec7a68f9c482e
-SIZE (muscle_src_3.8.1551.tar.gz) = 190019
+TIMESTAMP = 1777062030
+SHA256 (rcedgar-muscle-v5.1_GH0.tar.gz) = 091d9f8733b92ff106c2a8eb274d1e5a57960d397a2068d8638d6002e8880dab
+SIZE (rcedgar-muscle-v5.1_GH0.tar.gz) = 183891
diff --git a/biology/muscle/files/patch-Makefile b/biology/muscle/files/patch-Makefile
deleted file mode 100644
index 1dc159c93a2c..000000000000
--- a/biology/muscle/files/patch-Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
---- Makefile.orig 2014-07-12 16:42:52 UTC
-+++ Makefile
-@@ -10,8 +10,8 @@
- # this is fixed by deleting "-static" from the LDLIBS line.
-
- CFLAGS = -O3 -funroll-loops -Winline -DNDEBUG=1
--LDLIBS = -lm -static
--# LDLIBS = -lm
-+#LDLIBS = -lm -static
-+LDLIBS = -lm
-
- OBJ = .o
- EXE =
-@@ -19,7 +19,7 @@ EXE =
- RM = rm -f
- CP = cp
-
--GPP = g++
-+GPP = $(CXX)
- LD = $(GPP) $(CFLAGS)
- CPP = $(GPP) -c $(CFLAGS)
-
-@@ -33,4 +33,4 @@ $(CPPOBJ): %.o: %.cpp
-
- muscle: $(CPPOBJ)
- $(LD) -o muscle $(CPPOBJ) $(LDLIBS)
-- strip muscle
-+# strip muscle
diff --git a/biology/muscle/files/patch-globalslinux.cpp b/biology/muscle/files/patch-globalslinux.cpp
deleted file mode 100644
index d2b91bf23b06..000000000000
--- a/biology/muscle/files/patch-globalslinux.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
---- globalslinux.cpp.orig 2020-01-09 04:20:25 UTC
-+++ globalslinux.cpp
-@@ -7,6 +7,12 @@
- #include <errno.h>
- #include <stdio.h>
- #include <fcntl.h>
-+#if __FreeBSD__ > 2
-+#include <kvm.h>
-+#include <sys/param.h>
-+#include <sys/sysctl.h>
-+#include <sys/user.h>
-+#endif // __FreeBSD__ > 2
-
- const int ONE_MB = 1000000;
- const int MEM_WARNING_THRESHOLD = 20*ONE_MB;
-@@ -39,6 +45,34 @@ const char *GetCmdLine()
- return szCmdLine;
- }
-
-+#if __FreeBSD__ > 2
-+double GetMemUseMB()
-+ {
-+ kvm_t *kd;
-+ struct kinfo_proc *ki;
-+ vm_size_t size;
-+ int nproc;
-+
-+ kd = kvm_open(NULL, "/dev/null", NULL, O_RDONLY, "kvm_open");
-+ if (kd == NULL)
-+ {
-+ static bool Warned = false;
-+ if (!Warned)
-+ {
-+ Warned = true;
-+ Warning("*Warning* Cannot open KVM");
-+ }
-+ return 0;
-+ }
-+
-+ ki = kvm_getprocs(kd, KERN_PROC_PID, getpid(), &nproc);
-+ size = ki->ki_size;
-+
-+ kvm_close(kd);
-+
-+ return ((double) size)/1e6;
-+ }
-+#else // __FreeBSD__ > 2
- double GetMemUseMB()
- {
- static char statm[64];
-@@ -74,6 +108,7 @@ double GetMemUseMB()
-
- return ((double) Pages * (double) PageSize)/1e6;
- }
-+#endif // __FreeBSD__ > 2
-
- void SaveCmdLine(int argc, char *argv[])
- {
-@@ -109,6 +144,28 @@ void CheckMemUse()
- dPeakMemUseMB = dMB;
- }
-
-+#if __FreeBSD__ > 2
-+double GetRAMSizeMB()
-+ {
-+ const double DEFAULT_RAM = 500;
-+ unsigned int physmem;
-+ size_t len = sizeof physmem;
-+ static int mib[2] = { CTL_HW, HW_PHYSMEM };
-+
-+ if (sysctl(mib, 2, &physmem, &len, NULL, 0))
-+ {
-+ static bool Warned = false;
-+ if (!Warned)
-+ {
-+ Warned = true;
-+ Warning("*Warning* Cannot get hw.physmem");
-+ }
-+ return DEFAULT_RAM;
-+ }
-+
-+ return ((double) physmem)/1e6;
-+ }
-+#else // __FreeBSD__ > 2
- double GetRAMSizeMB()
- {
- const double DEFAULT_RAM = 500;
-@@ -159,5 +216,6 @@ double GetRAMSizeMB()
- int Bytes = atoi(pMem+9)*1000;
- return ((double) Bytes)/1e6;
- }
-+#endif // __FreeBSD__ > 2
-
- #endif // !WIN32
diff --git a/biology/muscle/files/patch-src__myutils.cpp b/biology/muscle/files/patch-src__myutils.cpp
new file mode 100644
index 000000000000..68b2a4eacfed
--- /dev/null
+++ b/biology/muscle/files/patch-src__myutils.cpp
@@ -0,0 +1,65 @@
+--- myutils.cpp.orig 2022-01-13 23:29:59 UTC
++++ myutils.cpp
+@@ -1050,7 +1050,62 @@
+ g_PeakMemUseBytes = Bytes;
+ return Bytes;
+ }
++#elif defined(__FreeBSD__)
++
++#include <sys/types.h>
++#include <sys/sysctl.h>
++#include <sys/user.h>
++#include <unistd.h>
+
++double GetMemUseBytes()
++ {
++ static int initialized = 0;
++ static int mib[4];
++ static size_t len;
++
++ if (!initialized)
++ {
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_PID;
++ mib[3] = getpid();
++ len = sizeof(struct kinfo_proc);
++ initialized = 1;
++ }
++
++ struct kinfo_proc kp;
++ if (sysctl(mib, 4, &kp, &len, NULL, 0) == -1)
++ return 0.0;
++
++ // Resident set size in pages → convert to bytes
++ long page_size = getpagesize();
++ double bytes = (double)kp.ki_rssize * page_size;
++
++ if (bytes > g_PeakMemUseBytes)
++ g_PeakMemUseBytes = bytes;
++
++ return bytes;
++
++ }
++
++double GetPhysMemBytes()
++ {
++ #if BITS == 32
++ unsigned int physmem32 = 0;
++ #else
++ uint64_t physmem = 0;
++ #endif
++
++ size_t len = sizeof(physmem);
++
++ static int mib[2] = { CTL_HW, HW_PHYSMEM };
++ if (sysctl(mib, 2, &physmem, &len, NULL, 0) == -1)
++ return 0.0;
++
++ return (double)physmem;
++
++ }
++
+ #elif defined(__MACH__)
+ #include <memory.h>
+ #include <stdlib.h>