Package Details: zoneminder 1.36.33-2

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://www.zoneminder.com/
Keywords: camera cctv monitor record security surveillance video zoneminder
Licenses: GPL-2.0-only
Conflicts: zoneminder-git
Submitter: None
Maintainer: Nocifer
Last Packager: Nocifer
Votes: 72
Popularity: 1.48
First Submitted: 2008-03-21 00:09 (UTC)
Last Updated: 2024-02-12 12:50 (UTC)

Dependencies (46)

Sources (8)

Latest Comments

« First ‹ Previous 1 .. 14 15 16 17 18 19 20 21 22 23 24 .. 62 Next › Last »

wuestengecko commented on 2019-12-16 17:18 (UTC) (edited on 2019-12-16 17:22 (UTC) by wuestengecko)

Hi, and thanks for maintaining this package!

Any and all feedback will be much appreciated.

Alright, here I go.


# Remove the following line if you don't need Nginx
'nginx-mainline' 'fcgiwrap' 'spawn-fcgi' 'multiwatch'

Why not make all of these optional in the first place, like:

optdepends=('apache: apache web server'
            'vlc: provides libvlc (may achieve better performance with some camera models)'
            'nginx-mainline: nginx web server'
            'fcgiwrap: nginx web server'
            'spawn-fcgi: nginx web server'
            'multiwatch: nginx web server')

cmake -DZM_WEBDIR=/srv/$pkgname/www -DZM_CGIDIR=/srv/$pkgname/cgi-bin

I believe these fall under the Web application package guidelines and should live below /usr/share/webapps/$pkgname.


# (Re)start Nginx
# (Re)start Apache
Also every systemctl start/stop command

No. Just no. Which service is stopped / (re)started when is my choice and my choice alone. This whole script has no business in post_install/post_upgrade, but should rather be made a standalone script file which can be manually executed. Post-upgrade automation should happen in the form of the admin writing a pacman hook.


I hope you know what you're doing.

Of course. That's why I use Arch. But thanks for your concern.

On a more serious note, if you go for a separate install script, you can make it much more interactive (even if just with command line switches) and let the user select between Apache and Nginx if both are present, or skipping web server setup altogether without an error message.


systemctl stop zoneminder

Same as above, post_remove is not responsible for stopping uninstalled services. It might be a sensible thought, but as long as no official Arch packages do things like that, I see no reason why AUR packages should.


# Disable ZoneMinder's Apache VirtualHost
# Disable ZoneMinder's Nginx server block

Argh! Get away from my precious config files! These are owned by other packages!


Notify user about ZoneMinder's database and user not being removed

That's the way!

(Thanks for reading until here. :) )


Bonus:

systemctl is-active --quiet httpd && systemctl stop httpd
systemctl start httpd

Were you perhaps looking for systemctl restart?

raqua commented on 2019-12-08 22:22 (UTC) (edited on 2019-12-08 22:25 (UTC) by raqua)

@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 (UTC)

@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 (UTC)

@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 (UTC)

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

jlanzobr commented on 2019-12-02 20:54 (UTC)

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 (UTC)

@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 (UTC)

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 (UTC)

@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 (UTC)

@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.