Package Details: zoneminder 1.32.3-3

Git Clone URL: https://aur.archlinux.org/zoneminder.git (read-only, click to copy)
Package Base: zoneminder
Description: A full-featured, open source, state-of-the-art video surveillance software system
Upstream URL: https://zoneminder.com/
Keywords: camera cctv monitor record security surveillance video zoneminder
Licenses: GPL2
Conflicts: zoneminder-git
Submitter: None
Maintainer: Nocifer
Last Packager: Nocifer
Votes: 59
Popularity: 1.04
First Submitted: 2008-03-21 00:09
Last Updated: 2019-06-02 21:28

Required by (1)

Sources (9)

Pinned Comments

Nocifer commented on 2018-10-02 14:34

Any and all feedback will be much appreciated. Thanks!


CHANGELOG

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 »

raqua commented on 2019-12-08 22:22

@Nocifer, this is the error: https://pastebin.com/jEDerxC7 (How do I add that nice green code box like compgamer89 did below?)

Nocifer commented on 2019-12-07 18:33

@raqua what was the exact error produced? There is no mention of this module in upstream's listed dependencies, but then again, maybe the devs don't list it because they don't expect that someone would build from source in order to run ZM inside a container. Still, I could add it as an optional dependency for people that wish to build a docker version.

Regarding the PHP 7.4 compatibility: if it does exist, then it's something that will have to be fixed upstream (if it's not already fixed).

raqua commented on 2019-12-07 13:17

@Nocifer I was trying to build this today in a docker and it was failing until I also installed pod2man package. I guess it needs to be added as a dependency.

raqua commented on 2019-12-07 13:16

@jlanzobr I am running zoneminder with php 7.4 and it works just fine.

jlanzobr commented on 2019-12-02 20:54

Note: ZoneMiner is broken on PHP 7.4. Do not upgrade php or related packages. Add IgnorePkg = php-gd php-fpm php-sodium php-intl php php-apache in /etc/pacman.conf. Use downgrade (AUR package) to downgrade if you accidentally updated in a recent pacman -Syu.

Nocifer commented on 2019-11-26 09:25

@compgamer89 yes, /var/log/zoneminder should indeed be set to 755 instead of the current 775. I've already fixed this ages ago on my side but I've been waiting for the next upstream release of ZM before I upload the fixed PKGBUILD, because I didn't want to force people to do a reinstall for something so small and easily fixable by hand. Though of course, ZM not having had a new upstream release in almost a year has complicated things a wee bit...

compgamer89 commented on 2019-11-25 23:53

Does the package need to set 775 permissions on /var/ directories? Getting this error with logrotate:

● logrotate.service - Rotate log files
   Loaded: loaded (/usr/lib/systemd/system/logrotate.service; static; vendor preset: disabled)
   Active: failed (Result: exit-code) since Mon 2019-11-25 00:00:04 PST; 15h ago
     Docs: man:logrotate(8)
           man:logrotate.conf(5)
  Process: 3626 ExecStart=/usr/sbin/logrotate /etc/logrotate.conf (code=exited, status=1/FAILURE)
 Main PID: 3626 (code=exited, status=1/FAILURE)

Nov 25 00:00:04 <server> systemd[1]: Starting Rotate log files...
Nov 25 00:00:04 <server> logrotate[3626]: error: skipping "/var/log/zoneminder/cake_error.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.
Nov 25 00:00:04 <server> logrotate[3626]: error: skipping "/var/log/zoneminder/error.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.
Nov 25 00:00:04 <server> logrotate[3626]: error: skipping "/var/log/zoneminder/http_access.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.
Nov 25 00:00:04 <server> logrotate[3626]: error: skipping "/var/log/zoneminder/http_error.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.
Nov 25 00:00:04 <server> systemd[1]: logrotate.service: Main process exited, code=exited, status=1/FAILURE
Nov 25 00:00:04 <server> systemd[1]: logrotate.service: Failed with result 'exit-code'.
Nov 25 00:00:04 <server> systemd[1]: Failed to start Rotate log files.

ultimategrandson commented on 2019-08-25 22:57

@Nocifer My intention is to put the DB on a different server. So I'll experiment with modifying the makepkg script and see how it goes. Happy to try out the build if you enable ARM on the package. Thanks.

Nocifer commented on 2019-08-25 20:04

@ultimategrandson A MySQL-compatible database is needed for ZoneMinder to work properly (PostgreSQL for example is not compatible if memory serves) but it's not a hard requirement to install it on the same machine as ZoneMinder (it could be installed on another server and accessed remotely) nor is it necessary to specifically use MariaDB (MySQL itself for example is perfectly compatible).

If for whatever reason you need to remove MariaDB as a dependency, then you'll need to edit the PKGBUILD and delete or comment out line 63. The same goes for Nginx by the way: if you don't need it you can delete or comment out line 60. The install script is supposed to understand when MariaDB and/or Nginx are missing and act accordingly, but of course your mileage may vary, so keep in mind that things may indeed break at some point or another. It goes without saying of course that if they do break, your feedback about what happened would be most welcome :)

Regarding ARM compatibility: last year it was reported by some other user that one of the required Perl packages could not be built on ARM, but I don't have an ARM system myself so I just took them on their word. But if you say you built it successfully, then that probably means we can now safely include ARM as compatible, so I'll do so on the next update. And if there are any bumps along the road (e.g. ZoneMinder building on ARM but then not working properly during runtime) I guess this will be a good way to encounter them and maybe even fix them.

ultimategrandson commented on 2019-08-25 02:03

Using Yay (and ignoring the arch warnings), I actually installed this package on Archlinux ARM (Raspberry Pi 2) and it works perfectly, this actually worked better than the Rapbian package, at least in my experience, as the zmNinja app worked out of the box.

I'm a bit of a noob but; the dependencies that are installed; are they all really required to run Zoneminder or are they just required to build it? I understand ffmpeg, etc are necessary but could MariaDB be made optional? Or is there a way to exclude certain packages when I install?