Files
zoneminder/docs/installationguide/index.rst
T
Steve GilvarryandClaude Opus 5 da331916c8 docs: add a macOS installation guide refs #4998
ZoneMinder now builds and installs on macOS, but the steps that make it
work existed nowhere. The installation guide has pages for Debian,
Ubuntu, Redhat and WSL, and nothing for macOS.

Covers the parts that are not guessable, each one walked through on a
real machine rather than reasoned about:

- Sys::Mmap, Date::Manip and a DBD driver are missing from the Perl Apple
  ships, and configure only warns, so it is easy to get a clean build and
  a system whose Perl daemons cannot read monitor state at all. A
  Homebrew Perl additionally needs DBI and LWP::UserAgent, since it has
  none of the extras Apple bundles.
- DBD::MariaDB does not install without help. mysql_config hands its
  configure step -lzstd -lssl -lcrypto, but a Homebrew Perl's ldflags
  carry no -L for the Homebrew prefix, so it fails with "Can't
  link/include C library 'zstd', 'ssl', 'crypto', aborting". The guide
  gives the --libs and --cflags that get it through.
- ZoneMinder's Perl modules land in vendorlib and survive Perl upgrades;
  the CPAN modules land in sitelib, which resolves into the Cellar and
  does not. Worth knowing before an upgrade quietly breaks the daemons.
- ZM_NO_MMAP is not a way around Sys::Mmap. macOS caps SysV shared memory
  at 4 MiB per segment across 8 segments, and a 1080p RGB frame does not
  fit in one.
- mysql-client is keg-only, so the build needs an explicit -I or it stops
  at "'mysql/mysql.h' file not found".
- Nothing creates the runtime directories. On Linux the package does it.
- The test binary has to run from build/tests, because zm_font.cpp loads
  its fixtures by relative path.
- zmpkg.pl falls back to zmdc.pl without systemd, so there is a way to
  start ZoneMinder before a launchd plist exists.

Honest about what is missing rather than papering over it: no plist, no
Homebrew formula, no log rotation, no local cameras, and the arp-scan and
ip warnings configure emits. Also separates Homebrew's prefix from
ZoneMinder's install prefix, which differ on Apple Silicon and are easy
to conflate.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B5KL9Xbi7K5aGsauLtd8tG
2026-09-12 22:11:44 +10:00

19 lines
266 B
ReStructuredText

Installation Guide
======================================
.. todo:: This entire guide needs to be checked/updated as needed
Contents:
.. toctree::
:maxdepth: 2
packpack
ubuntu
debian
redhat
macos
windows_wsl
multiserver
dedicateddrive