From 90d81cf5ee002fe0bb8ce49053983b54834c7dca Mon Sep 17 00:00:00 2001 From: Nic Boet Date: Tue, 10 Feb 2026 21:08:44 -0600 Subject: [PATCH] build: replace Perl ExtUtils::MakeMaker with pure CMake install MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MakeMaker was only used to copy .pm files — no XS compilation, no binary linking, no dependency resolution. Its hardcoded "Makefile" output name conflicts with cmake's generated Makefile for in-source builds, and using FIRST_MAKEFILE=MakefilePerl causes thousands of "uninitialized value" warnings because MM.pm stats the wrong file. Replace with native CMake install(DIRECTORY ... FILES_MATCHING PATTERN "*.pm") directives. Perl module install path is auto-detected at configure time via `perl -MConfig` (vendorlib on Linux, sitelib on FreeBSD), overridable with -DZM_PERL_INSTALL_PATH=. What's removed: - ExtUtils::MakeMaker as build dependency - Three perl+make subprocesses at build time (zmperlmodules, zmonvifmodules, zmonvifproxy build targets) - ~6000 auto-generated man3 pages from WSDL stubs - MakeMaker scaffolding: Makefile.PL, MANIFEST, META.yml, Changes, README, and t/ZoneMinder.t test stub What's preserved: - configure_file() for .pm.in templates (same behavior) - ZM_PERL_SEARCH_PATH (independent mechanism, unchanged) - Section 8 man pages for .pl scripts (Pod2Man.cmake, unaffected) - DESTDIR support (CMake install() handles natively) - Installed file paths (perl -MConfig returns same paths MakeMaker used) Verified: 3102 .pm files installed, 0 .pm.in files, 0 .3pm man pages, no @VERSION@ markers in generated files, DESTDIR and user override work. Co-Authored-By: Claude Opus 4.6 --- distros/beowulf/libzoneminder-perl.install | 1 - distros/ubuntu2004/libzoneminder-perl.install | 1 - 2 files changed, 2 deletions(-) diff --git a/distros/beowulf/libzoneminder-perl.install b/distros/beowulf/libzoneminder-perl.install index 67191d9cf..e27abaf5a 100644 --- a/distros/beowulf/libzoneminder-perl.install +++ b/distros/beowulf/libzoneminder-perl.install @@ -1,2 +1 @@ -usr/share/man/man3 usr/share/perl5 diff --git a/distros/ubuntu2004/libzoneminder-perl.install b/distros/ubuntu2004/libzoneminder-perl.install index 67191d9cf..e27abaf5a 100644 --- a/distros/ubuntu2004/libzoneminder-perl.install +++ b/distros/ubuntu2004/libzoneminder-perl.install @@ -1,2 +1 @@ -usr/share/man/man3 usr/share/perl5