Package Details: zoneminder 1.36.4-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: 64
Popularity: 0.39
First Submitted: 2008-03-21 00:09
Last Updated: 2021-06-09 08:07

Dependencies (43)

Sources (8)

Latest Comments

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

Nocifer commented on 2021-05-28 09:53

@DaMadOne Just the other day I discovered by chance that since 1.34, Zoneminder has switched its API to a new v2.0 token-based system that utilizes the JWT library. AFAICT the library is supposed to be bundled with ZM itself, but I saw some comments by the devs discussing an issue with the bundled version not working correctly for some reason, and they thought that using an external instance might work more reliably. This could very well be the source of your issues.

The problem is, I've looked through the Arch repos and I could only find one package for libjwt, which is a C-based implementation of the JWT library and pulled from; while the one required by ZM is apparently 'wt-cpp, which is C++-based and is (probably) pulled from

Because, like on Arch, there is/was no package for jwt-cpp in the Debian repos but only for libjwt, there was an attempt a year ago to make jwt-cpp optionally utilize an external C-based libjwt if it was found installed on the system (see here: but the functionality was subsequently removed. As far as I can tell, though, there is still an optional dependency libjwt in the CMake instructions, but installing the libjwt package does not satisfy that dependency and it's still declared as missing during compilation:

==> Starting build()...
-- Detected compiler: /usr/lib/ccache/bin/cc
-- Sendfile support: Linux/Solaris sendfile()
-- Building man pages: Yes (default)
-- Could NOT find LibJWT (missing: LIBJWT_LIBRARY)
-- Checking prototype MD5 for HAVE_MD5_OPENSSL - True
-- Using web user: http
-- Using web group: http
Building unit tests: No (default)
-- Optional libraries found: zlib cURL OpenSSL PCRE GCrypt AVFormat AVCodec AVDevice AVUtil SWScale SWResample libVLC libVNC
-- Optional libraries not found: LIBJWT

This is me compiling with libjwt installed. I even tried to manually export the variable LIBJWT_LIBRARY pointing to the location of the file, just in case the libjwt package is badly configured, but no dice.

TL;DR if you encounter the problem again, you could try to manually install the jwt-cpp library on your system and see if something changes (maybe it'll even satisfy that libjwt dependency for ZM).

DaMadOne commented on 2021-05-27 02:52

Was recently having the web interface give me 502 bad gateway after upgrading. If I rebooted the VM it would work for some time and then fail again. Yet ZM was running and recording. After rebooting I could see recordings during times I knew that I was getting the 502 bad gateway error.

After checking/restarting various services I tracked it down to php-fpm.service. If I restarted just that one service things were back to normal. In hindsight I should have taken better notes but the issue with php-fpm boiled down to "error decoding JWT token" or something like that.

I tried some stuff.. I googled some things but didn't get anywhere. In the end I forced another proxmox backup and then did "pacman -Rnsdd php-fpm" and then reinstalled php-fpm and rebooted the VM. It came back up and has been fine for more than 24 hours, which is longer than it seemed to work before. If that changes I'll comment again, however the JWT token errors were immediate before I force reinstalled and they are not there now.

Just posting in case anyone is running into anything similar.

eriol commented on 2021-05-25 13:20

@Nocifer deleting zm_config_defines.h worked Thank you :D

Nocifer commented on 2021-05-25 12:49

@eriol As far as I can tell there is a class in the C++ code called Config that is supposed to have a property font_file_location that is supposed to be populated when you compile ZM, but which for some reason seems to be missing (or is not properly populated when the object is initialized during compilation, hence is then reported as missing).

I dug through the code some and found that the missing property is supposed to be autogenerated by a perl script just before compilation and stored in a file 'zm_config_defines.h' which is located at the root of ZM's build dir (e.g. in my case it's /tmp/makepkg/zoneminder/src/zoneminder-git/zm_config_defines.h'). This file won't be regenerated if it already exists in the build folder, so TL;DR since you haven't set makepkg's build folder to something volatile like /tmp/makepkg, first thing to do would be to delete your build folder so zm_config_defines.h can be regenerated. Maybe the transition to GCC11 messed something up and this alone could fix your issue.

If this is not the case, check in the first section of zm_config_defines.h if there is a line that reads '#define ZM_FONT_FILE_LOCATION 220', maybe with a different number at the end. If there isn't such a line then for some reason the perl script is not setting up its options properly, and that would probably call for a report to ZM's upstream.

eriol commented on 2021-05-25 10:46

Hi, I am having this error while building package

$HOME/zoneminder/src/zoneminder-git/src/zm_image.cpp: In static member function ‘static void Image::Initialise()’:

$HOME/zoneminder/src/zoneminder-git/src/zm_image.cpp:575:48: error: ‘class Config’ has no member named ‘font_file_location’

575 | FontLoadError res = font.LoadFontFile(config.font_file_location);


^~~~~~~~~~~~~~~~~~ In file included from $HOME/zoneminder/src/zoneminder-git/src/zm_image.h:25,

from $HOME/zoneminder/src/zoneminder-git/src/zm_image.cpp:20:

$HOME/zoneminder/src/zoneminder-git/src/zm_image.cpp:577:47: error: ‘class Config’ has no member named ‘font_file_location’

577 | Panic("Invalid font location: %s", config.font_file_location);


^~~~~~~~~~~~~~~~~~ $HOME/zoneminder/src/zoneminder-git/src/zm_logger.h:200:72: note: in definition of macro ‘logPrintf’

200 | er::fetch()->logPrint(false, FILE, LINE, logLevel, ##params); \ |


$HOME/zoneminder/src/zoneminder-git/src/zm_image.cpp:577:5: note: in expansion of macro ‘Panic’

577 | Panic("Invalid font location: %s", config.font_file_location);

| ^~~~~

make[2]: [src/CMakeFiles/zm.dir/build.make:370: src/CMakeFiles/zm.dir/zm_image.cpp.o] Errore 1

[CMakeFiles/Makefile2:484: src/CMakeFiles/zm.dir/all] Errore 2 make: *** [Makefile:156: all] Errore 2

==> ERRORE: Si è verificato un errore in build().

L'operazione sta per essere interrotta...

What am I missing?

Nocifer commented on 2021-05-20 10:18

@sanerb Hmm, that's the first I've heard about this. If it's true, it would mean that this missing dependency has gone unnoticed for more than 2 years, and in the meantime no one else has attempted to use ONVIF (or the error would have probably been already reported).

On the other hand, I can't find any mention of a libxml dependency in ZM's list of requirements. Also, there is already perl-xml-parser which is supposed to act as the XML parser for ONVIF (fun fact, I can't find any mention of perl-xml-parser as a requirement either, but I'm 100% sure I didn't put it in the PKGBUILD by accident).

I don't have an ONVIF camera at hand in order to test it myself, and it could be some time before I do, so could you please post the error you're getting? Also, is there anyone else out there with an ONVIF camera who'd be willing to test this for us?

sanerb commented on 2021-05-19 19:54

include perl-xml-libxml as a dependency, possibly optional - i don't know what else is broken if anything, but ONVIF will not work without it.

Nocifer commented on 2021-05-18 21:09

It seems Zoneminder is incompatible with GCC11 for the time being.

EDIT: Uploaded new release that includes a commit which fixes the issue.

billyburly commented on 2021-05-18 20:21

Doesn't compile

In file included from /home/durrw/zoneminder/src/zoneminder-git/src/zm_image.cpp:24:
/home/durrw/zoneminder/src/zoneminder-git/src/zm_utils.h: In instantiation of ‘constexpr const T& ZM::clamp(const T&, const T&, const T&) [with T = unsigned int]’:
/home/durrw/zoneminder/src/zoneminder-git/src/zm_image.cpp:2034:24:   required from here
/home/durrw/zoneminder/src/zoneminder-git/src/zm_utils.h:99:15: error: call of overloaded ‘clamp(const unsigned int&, const unsigned int&, const unsigned int&, std::less<unsigned int>)’ is ambiguous
   99 |   return clamp(v, lo, hi, std::less<T>{});
      |          ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/durrw/zoneminder/src/zoneminder-git/src/zm_utils.h:93:20: note: candidate: ‘constexpr const T& ZM::clamp(const T&, const T&, const T&, Compare) [with T = unsigned int; Compare = std::less<unsigned int>]’
   93 | constexpr const T &clamp(const T &v, const T &lo, const T &hi, Compare comp) {
      |                    ^~~~~
In file included from /usr/include/c++/11.1.0/algorithm:62,
                 from /home/durrw/zoneminder/src/zoneminder-git/dep/span-lite/include/span.hpp:225,
                 from /home/durrw/zoneminder/src/zoneminder-git/src/zm_font.h:24,
                 from /home/durrw/zoneminder/src/zoneminder-git/src/zm_image.cpp:22:
/usr/include/c++/11.1.0/bits/stl_algo.h:3674:5: note: candidate: ‘constexpr const _Tp& std::clamp(const _Tp&, const _Tp&, const _Tp&, _Compare) [with _Tp = unsigned int; _Compare = std::less<unsigned int>]’
 3674 |     clamp(const _Tp& __val, const _Tp& __lo, const _Tp& __hi, _Compare __comp)
      |     ^~~~~
Manifying 23 pod documents
Manifying 24 pod documents
make[2]: *** [src/CMakeFiles/zm.dir/build.make:398: src/CMakeFiles/zm.dir/zm_image.cpp.o] Error 1

Nocifer commented on 2021-05-14 10:14

Lol, talk about the perfect timing... OK folks, crisis averted, nothing to see here, move along :P