git: ed03c39dda5d - 2026Q3 - multimedia/zoneminder: Update 1.38.1 => 1.38.3

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Sun, 09 Aug 2026 15:11:25 UTC
The branch 2026Q3 has been updated by vvd:

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

commit ed03c39dda5d9aba20dd678db0d823be84302be4
Author:     Ivan <bsd@abinet.ru>
AuthorDate: 2026-08-09 15:02:45 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2026-08-09 15:09:02 +0000

    multimedia/zoneminder: Update 1.38.1 => 1.38.3
    
    Changelog:
    https://github.com/ZoneMinder/zoneminder/releases/tag/1.38.3
    
    - Fix ONVIF support with add devel/gsoap to BUILD_DEPENDS.
    
    PR:             296995
    Security:       GHSA-g66m-77fq-79v9
    Security:       GHSA-745h-vg7c-73cg
    Sponsored by:   UNIS Labs
    Co-authored-by: Vladimir Druzenko <vvd@FreeBSD.org>
    MFH:            2026Q3
    
    (cherry picked from commit 2f1af67af413fa32819d0dac645b473769845559)
---
 multimedia/zoneminder/Makefile                     |  9 +++----
 multimedia/zoneminder/distinfo                     |  6 ++---
 ...tch-scripts_ZoneMinder_lib_ZoneMinder_Server.pm | 28 ++++++++--------------
 .../zoneminder/files/patch-src_zm__signal.cpp      | 20 ----------------
 multimedia/zoneminder/pkg-plist                    |  2 +-
 5 files changed, 17 insertions(+), 48 deletions(-)

diff --git a/multimedia/zoneminder/Makefile b/multimedia/zoneminder/Makefile
index 22442427ba83..479c32674248 100644
--- a/multimedia/zoneminder/Makefile
+++ b/multimedia/zoneminder/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	zoneminder
-DISTVERSION=	1.38.1
-PORTREVISION=	1
+DISTVERSION=	1.38.3
 CATEGORIES=	multimedia
 PKGNAMESUFFIX=	${PHP_PKGNAMESUFFIX}
 
@@ -25,12 +24,10 @@ ZM_DEPENDS=	p5-DBI>=0:databases/p5-DBI \
 		p5-Number-Bytes-Human>=0:devel/p5-Number-Bytes-Human \
 		p5-JSON-MaybeXS>=0:converters/p5-JSON-MaybeXS
 BUILD_DEPENDS=	${ZM_DEPENDS} \
+		soapcpp2:devel/gsoap \
 		${LOCALBASE}/include/jwt-cpp/jwt.h:devel/jwt-cpp \
 		${LOCALBASE}/include/nlohmann/json.hpp:devel/nlohmann-json
-LIB_DEPENDS=	libx264.so:multimedia/libx264 \
-		libmp4v2.so:multimedia/mp4v2 \
-		libgcrypt.so:security/libgcrypt \
-		libavcodec.so:multimedia/ffmpeg \
+LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg \
 		libcurl.so:ftp/curl \
 		libunwind.so:devel/libunwind
 RUN_DEPENDS=	${ZM_DEPENDS} \
diff --git a/multimedia/zoneminder/distinfo b/multimedia/zoneminder/distinfo
index b21063d9d433..d94709b7f937 100644
--- a/multimedia/zoneminder/distinfo
+++ b/multimedia/zoneminder/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1777777771
-SHA256 (zoneminder-zoneminder-1.38.1_GH0.tar.gz) = 6d766a864a375a8e8f681e7a8c9f780a5f3b891a1518ea2e8300aba630f68032
-SIZE (zoneminder-zoneminder-1.38.1_GH0.tar.gz) = 25295052
+TIMESTAMP = 1785004066
+SHA256 (zoneminder-zoneminder-1.38.3_GH0.tar.gz) = 59ed8bcaa2376593873b613149ea299b9055443e6d925689b2bf69c56f2deb79
+SIZE (zoneminder-zoneminder-1.38.3_GH0.tar.gz) = 25321086
 SHA256 (FriendsOfCake-crud-1429237_GH0.tar.gz) = 4dc57f344623d3c0e735b53ed583e5382aa9e43012215f641cbd8ebad381aadc
 SIZE (FriendsOfCake-crud-1429237_GH0.tar.gz) = 73018
 SHA256 (ZoneMinder-CakePHP-Enum-Behavior-ea90c0c_GH0.tar.gz) = 3a9006c7c59f2b864ce628df4725b241fc23cfd9abc56e746acbd22d850f5ab1
diff --git a/multimedia/zoneminder/files/patch-scripts_ZoneMinder_lib_ZoneMinder_Server.pm b/multimedia/zoneminder/files/patch-scripts_ZoneMinder_lib_ZoneMinder_Server.pm
index bbc088c3dfc0..175dc3f87629 100644
--- a/multimedia/zoneminder/files/patch-scripts_ZoneMinder_lib_ZoneMinder_Server.pm
+++ b/multimedia/zoneminder/files/patch-scripts_ZoneMinder_lib_ZoneMinder_Server.pm
@@ -1,19 +1,11 @@
---- scripts/ZoneMinder/lib/ZoneMinder/Server.pm.orig	2026-02-16 23:32:05 UTC
+--- scripts/ZoneMinder/lib/ZoneMinder/Server.pm.orig	2026-05-28 12:42:49 UTC
 +++ scripts/ZoneMinder/lib/ZoneMinder/Server.pm
-@@ -127,7 +127,15 @@ sub CpuUsage {
- 
-   } else {
-     # Get CPU utilization percentages
--    my $top_output = `top -b -n 1 | grep -i "^%Cpu(s)" | awk '{print \$2, \$4, \$6, \$8}'`;
-+    my $top_output = '';
-+    my $uname_output = lc(qx($ZoneMinder::Config{ZM_PATH_UNAME} -s));
-+    chomp($uname_output);
-+    ## FreeBSD
-+    if ($uname_output eq "freebsd") {
-+      $top_output = `top -b -d 2 -s 0,2 0 | grep -i "^CPU" | tail -n1 | tr -d '%' | awk '{print \$2, \$6, \$4, \$10}'`;
-+    } else {
-+      $top_output = `top -b -n 1 | grep -i "^%Cpu(s)" | awk '{print \$2, \$4, \$6, \$8}'`;
-+    }
-     my ($user, $system, $nice, $idle) = split(/ /, $top_output);
-     $user =~ s/[^\d\.]//g;
-     $system =~ s/[^\d\.]//g;
+@@ -132,7 +132,7 @@ sub CpuUsage {
+     chomp($uname_output);
+     ## FreeBSD
+     if ($uname_output eq "freebsd") {
+-      $top_output = `top -b -n 1 | grep "^CPU" | sed 's/%//g' | awk '{print \$2, \$6, \$4, \$10}'`;
++      $top_output = `top -b -d 2 -s 0.2 0 | grep -i "^CPU" | tail -n1 | tr -d '%' | awk '{print \$2, \$6, \$4, \$10}'`;
+     } else {
+       $top_output = `top -b -n 1 | grep -i "^%Cpu(s)" | awk '{print \$2, \$4, \$6, \$8}'`;
+     }
diff --git a/multimedia/zoneminder/files/patch-src_zm__signal.cpp b/multimedia/zoneminder/files/patch-src_zm__signal.cpp
deleted file mode 100644
index 4b49b7f07128..000000000000
--- a/multimedia/zoneminder/files/patch-src_zm__signal.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
---- src/zm_signal.cpp.orig	2026-02-16 23:32:05 UTC
-+++ src/zm_signal.cpp
-@@ -130,9 +130,17 @@ RETSIGTYPE zm_die_handler(int signal)
-     ip = (void *)(uc->uc_mcontext.gregs[REG_EIP]);
- #endif
- #elif defined(__aarch64__)
-+#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__)
-+    ip = (void *)(uc->uc_mcontext.mc_gpregs.gp_elr);
-+#else
-     ip = (void *)(uc->uc_mcontext.pc);
-+#endif
- #elif defined(__arm__)
-+#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__)
-+    ip = (void *)(uc->uc_mcontext.__gregs[_REG_PC]);
-+#else
-     ip = (void *)(uc->uc_mcontext.arm_pc);
-+#endif
- #endif
- 
-     // Print the fault address and instruction pointer
diff --git a/multimedia/zoneminder/pkg-plist b/multimedia/zoneminder/pkg-plist
index 59b8426f87b9..2779994f160b 100644
--- a/multimedia/zoneminder/pkg-plist
+++ b/multimedia/zoneminder/pkg-plist
@@ -3069,8 +3069,8 @@ etc/zm.conf
 %%SITE_PERL%%/ZoneMinder/Control/M8640.pm
 %%SITE_PERL%%/ZoneMinder/Control/MaginonIPC.pm
 %%SITE_PERL%%/ZoneMinder/Control/Ncs370.pm
-%%SITE_PERL%%/ZoneMinder/Control/ONVIF.pm
 %%SITE_PERL%%/ZoneMinder/Control/Netcat.pm
+%%SITE_PERL%%/ZoneMinder/Control/ONVIF.pm
 %%SITE_PERL%%/ZoneMinder/Control/PSIA.pm
 %%SITE_PERL%%/ZoneMinder/Control/PanasonicIP.pm
 %%SITE_PERL%%/ZoneMinder/Control/PelcoD.pm