CVS commit: pkgsrc/security/zoneminder
"Greg Troxel" <[email protected]> Thu, 30 Jul 2026 12:36:01 +0000
| Newsgroups | gmane.os.netbsd.devel.pkgsrc.cvs |
|---|---|
| Message-ID | <[email protected]> |
Module Name: pkgsrc
Committed By: gdt
Date: Thu Jul 30 12:36:00 UTC 2026
Modified Files:
pkgsrc/security/zoneminder: Makefile PLIST distinfo
pkgsrc/security/zoneminder/patches: patch-CMakeLists.txt
patch-scripts_ZoneMinder_lib_ZoneMinder_ConfigData.pm.in
patch-scripts_ZoneMinder_lib_ZoneMinder_General_pm
patch-scripts_ZoneMinder_lib_ZoneMinder_Memory_Shared.pm
patch-scripts_zm_in patch-scripts_zmpkg_pl_in
patch-src_zm__rtp__source.cpp patch-src_zm__utils.cpp
patch-src_zm_signal_cpp
Added Files:
pkgsrc/security/zoneminder/patches: patch-src_zm__comms.h
patch-src_zm__remote__camera__nvsocket.cpp
patch-web_includes_database.php
Removed Files:
pkgsrc/security/zoneminder/patches: patch-src_zm__event.cpp
patch-src_zm__eventstream.cpp patch-src_zm__image.cpp
patch-src_zm__monitor.cpp patch-src_zm__packet.h
patch-src_zm__packetqueue.cpp patch-src_zm__regexp.cpp
patch-src_zm__rtsp__server__fifo__source.cpp patch-src_zm__time.h
patch-src_zm_comms_h patch-src_zm_logger_cpp
patch-src_zm_remote_camera_h patch-src_zmu.cpp
Log Message:
security/zoneminder: Update to 1.38.3
Upstream NEWS, less bugfixes and minor improvements:
ZoneMinder 1.38.x Release Notes
TL;DR - Key Highlights
- Role-Based Access Control - Enterprise-grade permission system with user roles
- Modern Streaming - WebRTC, Go2RTC, RTSP2Web support with hardware acceleration
- Monitor Function Redesign - Granular control with separate Capturing, Analysing, and Recording settings
- Enhanced Protocols - ONVIF Events, MQTT, Amcrest API integration
-Event Tagging - Flexible labeling and organization system
- Server Monitoring - Real-time CPU, memory, and performance metrics
- Geolocation - Geographic tracking for events and servers
- Hardware Encoding - GPU acceleration for video encoding
Overview
ZoneMinder 1.38.x represents a major evolution from version 1.36.x,
introducing significant architectural improvements, new streaming
capabilities, enhanced security features, and extensive monitoring
enhancements. This release focuses on modernizing the platform with
support for contemporary streaming protocols, implementing
enterprise-grade access control, and improving performance and
scalability.
Major Feature Areas
1. Advanced User Access Control & Security
Role-Based Access Control (RBAC)
Introduced comprehensive role-based permission system with
reusable role templates New database tables: User_Roles,
Role_Groups_Permissions, Role_Monitors_Permissions Replaced legacy
comma-separated monitor ID strings with normalized permission
tables Fine-grained permissions for both monitor groups and
individual monitors
Enhanced User Management
Added user profile fields: Name, Email, Phone User-specific
montage layouts for personalized dashboards Improved security
controls with private and system configuration flags
2. Modern Streaming & Multi-Protocol Support
WebRTC Integration
Janus WebRTC Gateway support with audio streaming capabilities
Go2RTC protocol support for alternative streaming RTSP2Web
streaming with WebRTC/MSE/HLS options Configurable codec selection
and stream profiles
Hardware-Accelerated Encoding
Hardware acceleration support for video encoding (GPU encoding)
New encoder configuration options: EncoderHWAccelName and
EncoderHWAccelDevice Human-readable codec names replacing
integer-based codec selection Optimized encoding for reduced CPU
usage
3. Monitor Function Redesign
One of the most significant architectural changes in 1.38.x is the
redesign of the monitor Function field into three independent control
parameters. This provides much more granular control over monitor
behavior.
Legacy Function Field (1.36.x and earlier)
The traditional Function field was a single enum that controlled all aspects of a monitor's operation:
None - Monitor disabled
Monitor - Capture video only (no recording, no motion detection)
Modect - Motion detection with recording on motion
Record - Continuous recording without motion detection
Mocord - Continuous recording with motion detection
Nodect - Recording on external trigger, no built-in motion detection
New Granular Control (1.38.x)
The Function field has been split into three independent settings,
allowing fine-grained control:
Capturing enum (None/Ondemand/Always)
Controls whether the monitor captures video from the camera
None - No video capture (monitor effectively disabled)
Ondemand - Capture only when needed (e.g., when viewing live or triggered by events)
Always - Continuous video capture from the camera
Analysing enum (None/Always)
Controls whether motion detection and analysis is performed
None - No motion detection or analysis (equivalent to Monitor or Record modes)
Always - Perform motion detection and analysis (equivalent to Modect or Mocord modes)
Recording enum (None/OnMotion/Always)
Controls when video is saved to disk
None - No recording (live viewing only)
OnMotion - Record only when motion is detected or triggered
Always - Continuous recording
Migration from Legacy Functions
The database automatically migrates old Function values to the new settings:
None → Capturing: None, Analysing: None, Recording: None
Monitor → Capturing: Always, Analysing: None, Recording: None
Modect → Capturing: Always, Analysing: Always, Recording: OnMotion
Record → Capturing: Always, Analysing: None, Recording: Always
Mocord → Capturing: Always, Analysing: Always, Recording: Always
Nodect → Capturing: Always, Analysing: None, Recording: OnMotion
Benefits of the New Design
More flexible monitor configurations (e.g., analyze but don't record, or record without analysis)
Better resource management by independently controlling capture, analysis, and storage
Clearer separation of concerns for troubleshooting
Foundation for future enhancements like conditional recording policies
Easier to understand monitor behavior at a glance
4. Enhanced Camera Integration
Extended Protocol Support
ONVIF Event Listener for direct camera event notifications
Amcrest API support for Amcrest-branded cameras
MQTT integration for IoT device communication and message handling
Camera Management
Camera manufacturer and model database integration
5. Advanced Event Management
Event Tagging System
Flexible event labeling with custom tags
Many-to-many relationship between events and tags
Improved event organization and filtering
Event Automation & Triggers
Event start and end command execution
Multiple event close modes: system, time, duration, idle, alarm-based
Section length warnings for long recordings
Filter execution intervals for scheduled automation
Event Metadata & Analytics
Event data extensibility with custom metadata storage
Geolocation tracking (latitude/longitude) for events
Enhanced event reporting system with historical analytics
6. Performance & Infrastructure
Server Monitoring
Comprehensive server statistics tracking
CPU usage monitoring (User, Nice, System, Idle percentages)
Memory and swap utilization metrics
Timestamped performance data collection
Optimization Features
Monitor startup delay to stagger initialization and reduce system load
Enhanced status tracking with update timestamps
Analysis image channel optimization (Full Color vs. Y-Channel) (reduces cpu use)
Improved monitor soft delete with logical deletion flags
Monitor importance levels (Normal/Less/Not) for stream prioritization
Wall clock timestamp synchronization when doing passthrough
7. Display & User Interface
Montage Enhancements
Expanded grid layouts: 1/2/4/5/6/7/8/9/10/12/16 Wide configurations
User-specific montage layouts with personalized views
options to locate/hide status information to fully use space
Playback Improvements
Default player selection for preferred streaming client
Enhanced video playback controls
Improved event viewing experience
Optimal mjpeg scaling to reduce cpu/bandwidth use while maintaining fidelity
** New file explorer view **
limited to defined storage areas
** Watch and Cycle views merged **
PTZ controls improved, with toggling of visibility
8. Storage & Recording
Granular Recording Control
With the redesign of the monitor Function field (see section 3),
recording behavior is now controlled independently through the
Recording, Capturing, and Analysing settings. This provides much
greater flexibility:
Recording modes: None/OnMotion/Always
Capturing modes: None/Ondemand/Always
Analysis modes: None/Always
This allows configurations that weren't possible with the old Function
field, such as:
Capture and analyze without recording (for alerting only)
Record without analysis (for compliance/archival)
On-demand capture with triggered recording
Email Notifications
Email format options: Individual or Summary
Improved event notification formatting
Configurable alert delivery
9. Geographic & Metadata Features
Geolocation Support
Geographic coordinates for monitors, events, and servers
Location-based event tracking and analysis
10. Development & Integration
Database Schema Evolution
The 1.37.x series includes approximately 79 database schema updates
from 1.37.1 through 1.37.79, each introducing targeted improvements
and new capabilities. Key architectural changes include:
Migration from string-based configuration to normalized relational tables
Introduction of extensible metadata storage systems
Enhanced foreign key relationships for referential integrity
Improved indexing for query performance
Upgrade Considerations
Breaking Changes
Permission system migration from comma-separated strings to normalized tables
Some configuration parameters have been renamed or restructured
Monitor soft delete may require updates to custom scripts that query monitor data
To generate a diff of this commit:
cvs rdiff -u -r1.104 -r1.105 pkgsrc/security/zoneminder/Makefile
cvs rdiff -u -r1.12 -r1.13 pkgsrc/security/zoneminder/PLIST
cvs rdiff -u -r1.28 -r1.29 pkgsrc/security/zoneminder/distinfo
cvs rdiff -u -r1.4 -r1.5 \
pkgsrc/security/zoneminder/patches/patch-CMakeLists.txt \
pkgsrc/security/zoneminder/patches/patch-scripts_ZoneMinder_lib_ZoneMinder_General_pm \
pkgsrc/security/zoneminder/patches/patch-src_zm__utils.cpp \
pkgsrc/security/zoneminder/patches/patch-src_zm_signal_cpp
cvs rdiff -u -r1.2 -r1.3 \
pkgsrc/security/zoneminder/patches/patch-scripts_ZoneMinder_lib_ZoneMinder_ConfigData.pm.in \
pkgsrc/security/zoneminder/patches/patch-scripts_zmpkg_pl_in
cvs rdiff -u -r1.3 -r1.4 \
pkgsrc/security/zoneminder/patches/patch-scripts_ZoneMinder_lib_ZoneMinder_Memory_Shared.pm
cvs rdiff -u -r1.6 -r1.7 \
pkgsrc/security/zoneminder/patches/patch-scripts_zm_in \
pkgsrc/security/zoneminder/patches/patch-src_zm__rtp__source.cpp
cvs rdiff -u -r0 -r1.1 \
pkgsrc/security/zoneminder/patches/patch-src_zm__comms.h \
pkgsrc/security/zoneminder/patches/patch-src_zm__remote__camera__nvsocket.cpp \
pkgsrc/security/zoneminder/patches/patch-web_includes_database.php
cvs rdiff -u -r1.7 -r0 \
pkgsrc/security/zoneminder/patches/patch-src_zm__event.cpp
cvs rdiff -u -r1.1 -r0 \
pkgsrc/security/zoneminder/patches/patch-src_zm__eventstream.cpp \
pkgsrc/security/zoneminder/patches/patch-src_zm__packet.h \
pkgsrc/security/zoneminder/patches/patch-src_zm__packetqueue.cpp \
pkgsrc/security/zoneminder/patches/patch-src_zm__regexp.cpp \
pkgsrc/security/zoneminder/patches/patch-src_zm__rtsp__server__fifo__source.cpp \
pkgsrc/security/zoneminder/patches/patch-src_zm__time.h
cvs rdiff -u -r1.3 -r0 \
pkgsrc/security/zoneminder/patches/patch-src_zm__image.cpp
cvs rdiff -u -r1.5 -r0 \
pkgsrc/security/zoneminder/patches/patch-src_zm__monitor.cpp \
pkgsrc/security/zoneminder/patches/patch-src_zm_remote_camera_h \
pkgsrc/security/zoneminder/patches/patch-src_zmu.cpp
cvs rdiff -u -r1.6 -r0 \
pkgsrc/security/zoneminder/patches/patch-src_zm_comms_h
cvs rdiff -u -r1.9 -r0 \
pkgsrc/security/zoneminder/patches/patch-src_zm_logger_cpp
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
(unnamed)
(text/x-diff, 124.9 KB) - not displayed