Package Details: zoneminder 1.34.22-1

Git Clone URL: (read-only, click to copy)
Package Base: zoneminder
Description: A full-featured, open source, state-of-the-art video surveillance software system
Upstream URL:
Keywords: camera cctv monitor record security surveillance video zoneminder
Licenses: GPL2
Conflicts: zoneminder-git
Submitter: None
Maintainer: Nocifer
Last Packager: Nocifer
Votes: 61
Popularity: 0.140748
First Submitted: 2008-03-21 00:09
Last Updated: 2020-10-19 22:02

Dependencies (44)

Sources (8)

Pinned Comments

Nocifer commented on 2020-01-18 10:01

A fair warning to everyone:

From 1.34 onwards the webroot will be moved from /srv/zoneminder to /usr/share/webapps/zoneminder.

The configuration files for Apache & Nginx provided by this package have been adjusted accordingly, but, as per pacman's packaging standards, they will only overwrite your existing configuration files if those have been left in their default state.

This means that, if you've ever manually edited the Apache/Nginx configuration files that come with this package, be prepared to experience a broken setup after updating to ZoneMinder 1.34, because your configuration files will not be automatically adjusted and thus will keep pointing to /srv/zoneminder, which will now be invalid.

Nocifer commented on 2018-10-02 14:34

Any and all feedback will be much appreciated. Thanks!


Update: 1.32.3-1 -> 1.34.0-1

THIS UPDATE CAN BREAK EXISTING SETUPS. For more info check the pinned comment above or the notes in the PKGBUILD.

  • Removed hard dependency on Apache, Nginx and MariaDB.
  • Moved install logic to a separate script ( that can be run manually by the user.
  • ZoneMinder's webroot moved from /srv/zoneminder to /usr/share/webapps/zoneminder, as per web application standards.
  • Fixes:
    • Changed /var/log/zoneminder permissions from 775 to 755, now logrotate should stop complaining.
    • Changed supported architectures to 'any' for ARM compatibility; if any issues arise, please let me know.
    • Added pod2man as an optional dependency, to support building the package in Docker.

Update: 1.32.2-3 -> 1.32.3-1

  • Changed Nginx's configuration so that now it listens on all interfaces instead of only on localhost. This fixes remote access and also prevents some potential conflicts with other conf files that may be present.
  • Added proper support for multiserver setups in the install script during updates: now it will properly check whether we're running a local database server or not and will run the updater accordingly. Also added a new function for updating the PTZ control presets.
  • Enabled PHP's disabled-by-default semaphore support. This fixes issues like camera playback controls not working and camera device info (e.g. current state, fps, zoom level, et al) not being shown.
  • Gave 'zmuser' some new privileges on database 'zm' that are needed to perform the 1.32.3 update.

Update: 1.32.2-2 -> 1.32.2-3

  • Added spawn-fcgi & multiwatch as dependencies. Now fcgiwrap will spawn in multiple instances, so ZoneMinder will be able to utilize more than one CGI threads at the same time and thus show concurrent camera streams, which solves issues like having no image while editing zones, etc. The default number of instances is 10, which should be enough for 2 or 3 cameras, but you can of course edit the provided service file and change the number as you see fit. Big thanks to @chapatt for bringing this to my attention!

Update: 1.32.2-1 -> 1.32.2-2

  • Included a /zm/ link inside the /www/ folder that points back to /www/. This fixes pretty much every instance of sloppy hardcoded links within ZM's codebase. Big thanks to @Kubax for the idea!

Update: 1.32.1-3 -> 1.32.2-1

NOTE: There's a bunch of small-ish errors in ZM's operation due to some parts of it having the localhost/zm/ link hardcoded and thus breaking when ZM is run from anywhere else, e.g. localhost:8095. I'm in the process of locating these errors and either reporting them upstream or fixing them myself, but I can't know for sure when or even if they'll be fixed. Big thanks to @Kubax for reporting this.

  • Changed temp folder location: /var/lib/zoneminder/temp -> /var/tmp/zoneminder
  • Fixed /api/app/tmp to correctly point to the temp folder
  • Overhauled how the install script makes the choice between Nginx and Apache, as follows:
    • If Nginx is installed and active, regardless of whether Apache is also installed or active or both, we choose Nginx.
    • If Nginx is installed but inactive, and Apache is not installed, we choose Nginx.
    • If Nginx is installed but inactive, and Apache is installed, we choose Apache.
    • If Nginx is not installed, and Apache is installed, we choose Apache.
    • If neither of them is installed, we simply inform the user about it and do nothing.

It's a fairly simple script and I have tested it as much as I can, but things usually find a way to break apart after introducing such... uhm... breaking changes. If things do break for you, please blame me and not the script itself; and also report here what exactly is broken so I can fix it ;)

Update: 1.32.1-2 -> 1.32.1-3

  • MariaDB no longer required (for use with remote databases)
  • Apache added as an optional dependency and preferred over Nginx if both are installed

Update: 1.32.1-1 -> 1.32.1-2

  • Fixed update process (it erroneously required zoneminder.service to be active while updating its database, when it should rather be the opposite)
  • Fixed desktop launcher
  • Added logrotate support
  • Removed 'perl-module-load-conditional' from dependencies as it is already included in core Perl package
  • Other minor fixes (e.g. the license file was being installed in the wrong place)

Latest Comments

1 2 3 4 5 6 ... Next › Last »

Nocifer commented on 2020-11-12 14:53

(EDIT: Updated to a newer commit that fixes the submodule repo address.)

Yeah, upstream literally just switched that git submodule to a new repo but they haven't yet released a new ZoneMinder version, so building is currently broken for anyone trying to build from source.

I would like to keep this PKGBUILD clean and not change the way it works just for a temporary fix (I'd need to convert it to a zoneminder-git type of package), so for the time being and until a new upstream version is released, please replace




which will allow you to build ZoneMinder with the new submodule repo included.

ohoevde commented on 2020-11-12 12:26

It fails with:

fatal: repository '' not found

ZAKhan commented on 2020-10-26 04:45

/home/xyz/.cache/yay/zoneminder/src/zoneminder/src/jwt-cpp/include/jwt-cpp/picojson.h:372:12: note: in definition of macro ‘GET’
  372 |     return var;                                                                                                                    \
      |            ^~~
[ 57%] Linking CXX static library libzm.a
[ 57%] Built target zm
make: *** [Makefile:171: all] Error 2
==> ERROR: A failure occurred in build().
error making: zoneminder

Nocifer commented on 2020-10-04 15:00

@rageltman perl-sys-mmap is already a dependency, so it's probably something else on your end that breaks the build (e.g a misconfigured PATH).

rageltman commented on 2020-10-04 06:34

This needs the perl-sys-mmap aur package added to its dependency list, otherwise builds break with:

[2020-10-04T06:31:42.105Z] -- Checking for perl module Sys::Mmap
[2020-10-04T06:31:42.108Z] -- Checking for perl module Sys::Mmap - failed
[2020-10-04T06:31:42.110Z] -- Could NOT find PerlModules (missing: PERLMODULES_SYS_MMAP_MODULE) 
[2020-10-04T06:31:42.112Z] CMake Error at CMakeLists.txt:785 (message):
[2020-10-04T06:31:42.114Z]   Not all required perl modules were found on your system
[2020-10-04T06:31:42.117Z] -- Configuring incomplete, errors occurred!
[2020-10-04T06:31:42.119Z] See also "/build/zoneminder/src/zoneminder/CMakeFiles/CMakeOutput.log".
[2020-10-04T06:31:42.122Z] See also "/build/zoneminder/src/zoneminder/CMakeFiles/CMakeError.log".
[2020-10-04T06:31:42.124Z] ==> ERROR: A failure occurred in build().
[2020-10-04T06:31:42.127Z]     Aborting...

Nocifer commented on 2020-10-03 08:13

@zlqrn, php-fpm is a dependency of this package because the web interface runs on PHP, so yeah, it makes sense that it wouldn't work for you if you somehow managed to install it without php-fpm, or more probably failed to start php-fpm's service before running ZoneMinder. Now that I think about it, it'd be a good idea to modify the note printed after install and list the services that should be run before ZoneMinder for it to work properly.

Regarding the personalized username & password, ZoneMinder's upstream code unfortunately contains (or used to contain) some hardcoded stuff that really shouldn't be hardcoded (e.g. paths), so it wouldn't surprise me if the username/password for the database were hardcoded as well. But as far as I know, those can be configured by creating a conf file in /etc/zoneminder/conf.d/ (or by editing /etc/zoneminder/zm.conf directly, but it's discouraged) and assigning the variables ZM_DB_USER and ZM_DB_PASS. Unless you mean that you've already tried that and ZoneMinder failed to pick up the changes?

zlqrn commented on 2020-10-02 23:43

web interface just code? for those bigger noobs than me on a clean install web interface didnt work until i installed php-fpm some reason personalized username and passwd for zm and mariadb didnt work had to revert to defaults zmuser etc. also refer to mariadb guide for update folder structure for conf files. perhaps for mysql the official arch zonminder guide works, but not for mariadb (my.conf and my.conf.d) so far install seems great. web interface is working

Nocifer commented on 2020-09-17 21:40

Wait, you mean that without pod2man the build fails for you even when not using Docker? Alright, that's a weird one. In my case everything builds properly each and every time I test the package before uploading a new release, and I guess this holds true for the majority of the people using this package (otherwise the comments here would've been flooded with complaints). Even the upstream documentation mentions pod2man as a dependency only in the context of Docker, not as a hard dependency for a generic, non-Docker build.

It doesn't cost me anything to add it as a dependency, of course, but I'd like to understand this issue a bit better first. What's the exact error you've been getting? Is it the same as @superpupervlad's?

hillbicks commented on 2020-09-17 21:05

at least for me and superpupervlad the build fails without pod2man installed, that's why I think it should be a mandatory dependency. :)

Nocifer commented on 2020-09-17 19:30

@hillbicks it's already an optional dependency.