Package Details: zoneminder 1.34.23-3

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: 63
Popularity: 1.34
First Submitted: 2008-03-21 00:09
Last Updated: 2021-03-05 11:27

Dependencies (44)

Sources (8)

Pinned Comments

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 »

wuestengecko commented on 2021-03-05 11:23

Git was installed and no user configuration is done.

Yes, that's what I was trying to say. It does fail when simply using makechrootpkg as well, unless you add --no-commit to the mentioned line. When you're building directly on your development host, where you're using git to push to the AUR, then git will find your user config during the build and use that.

I should probably add '--no-commit' to that cherry-pick line by default, yeah?

Yes, please do that.

Nocifer commented on 2021-03-05 11:17

@wuestengecko Ah, that's a new one for me. So then, since this could potentially affect anyone trying to build the package without having set up a git identity (Docker or no Docker), I should probably add '--no-commit' to that cherry-pick line by default, yeah?

raqua commented on 2021-03-05 11:13

@wuestengecko I understand, but .gitconfig is not created on installation of git package. I just tried it in virtual machine. EDIT- I also checked my other machines, it is not there. Git was installed and no user configuration is done. Therefore I believe this will also fail regardless of Docker. Maybe the "--no-commit" clause should be there.

wuestengecko commented on 2021-03-05 11:05

@raqua The issue isn't that your build environment is too dirty, it's precisely the opposite: your environment is too clean. The issue is this line in the PKGBUILD:

git cherry-pick 2fa0fbe448058f2826dadc44572a822af2a177d5

Without --no-commit, git wants to record the cherry-pick in the commit history, and it wants to do so with you as the committer. If you're building in a chroot (or Docker container - same effect), it doesn't know who you are, because why would you set up git in an ephemeral environment.

raqua commented on 2021-03-05 10:51

@Nocifer I am not doing anything dirty. At least I am not aware of it. All I do is

yay -Syy && yay -S pod2man zoneminder cronie apache mariadb 

I am doing it inside Docker container so it is by principle fresh install. I was using the same Dockerfile for months now, there is no change and it was building before. After I added my git contact info it builds.

Nocifer commented on 2021-03-05 10:25

@raqua You shouldn't really, if git is asking you for an email it means you're trying to access a non-public or non-existent repo. If I had to guess, I'd say you're trying to do a "dirty" update of ZM and so the cherry-picked fix is not being applied. You should instead try to do a clean update, i.e. delete your previous sources and let makepkg download them all over again.

A proper install will look like this at the point where yours failed (this is from a build I did just now):

==> Extracting sources...
  -> Creating working copy of zoneminder-git git repo...
Cloning into 'zoneminder-git'...
Switched to a new branch 'makepkg'
==> Starting prepare()...
Auto-merging web/api/app/Controller/AppController.php
[makepkg 704361813] Upgrade cakephp to 2.10.24
 Author: Isaac Connor <>
 Date: Tue Feb 2 11:35:03 2021 -0500
 114 files changed, 2300 insertions(+), 878 deletions(-)
 rewrite web/api/composer.json (99%)
 create mode 100644 web/api/lib/Cake/Console/Templates/skel/.htaccess
 create mode 100644 web/api/lib/Cake/Console/Templates/skel/webroot/.htaccess
 create mode 100644 web/api/lib/Cake/Controller/RequestHandlerComponent.php
 create mode 100644 web/api/lib/Cake/Test/Case/Controller/ApplicationControllerTest.php

raqua commented on 2021-03-05 09:41

It is failing for me with this error:

==> Making package: zoneminder 1.34.23-2 (Fri 05 Mar 2021 09:17:18 AM UTC)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Updating zoneminder-git git repo...
Fetching origin
  -> Found zoneminder-nginx.conf
  -> Found zoneminder-httpd.conf
  -> Found zoneminder-php.ini
  -> Found zoneminder.service
  -> Found zoneminder-tmpfile.conf
  -> Found fcgiwrap-multiwatch.service
  -> Found
==> Validating source files with sha256sums...
    zoneminder-git ... Skipped
    zoneminder-nginx.conf ... Passed
    zoneminder-httpd.conf ... Passed
    zoneminder-php.ini ... Passed
    zoneminder.service ... Passed
    zoneminder-tmpfile.conf ... Passed
    fcgiwrap-multiwatch.service ... Passed ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Creating working copy of zoneminder-git git repo...
Cloning into 'zoneminder-git'...
Updating files: 100% (5631/5631), done.
Switched to a new branch 'makepkg'
==> Starting prepare()...
Auto-merging web/api/app/Controller/AppController.php
Committer identity unknown

*** Please tell me who you are.


  git config --global ""
  git config --global "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'raqua@f4db960ea7ba.(none)')
==> ERROR: A failure occurred in prepare().

Why should I need to provide email?

Nocifer commented on 2021-02-17 12:18

Just pushed a new release with @compgamer89's fix included, hopefully this will be the last of our woes with 1.34 until 1.35/1.36 is released.

@AlphaJack I just built the package, both with and without the cherry-pick, so your issue must be due to something else on your end.

AlphaJack commented on 2021-02-16 15:58

I am unable to compile:


[ 60%] Linking CXX static library libzm.a
[ 60%] Built target zm
make: *** [Makefile:171: all] Error 2
==> ERROR: A failure occurred in build().


Line 171 of Makefile is this one:

 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all

alanking commented on 2021-02-15 10:48

@compgamer89 thanks mate, worked a charm.