From 4ba771bb1d8bd3ee9c08f2ba65b3b3b615377b67 Mon Sep 17 00:00:00 2001 From: Andreas Grapentin Date: Thu, 25 Jan 2018 07:15:23 +0100 Subject: pcr/zoneminder: updated to 1.30.4 --- pcr/zoneminder/PKGBUILD | 248 ++++++++++++--------- pcr/zoneminder/fabs.patch | 11 + pcr/zoneminder/httpd-zoneminder.conf | 6 +- pcr/zoneminder/log.txt | 23 ++ pcr/zoneminder/sysctl-zoneminder.conf | 3 - pcr/zoneminder/uio.patch | 22 ++ .../zm_rtp_ctrl.h.quick_fix_for_gcc6.diff | 4 + pcr/zoneminder/zoneminder-tmpfile.conf | 1 + pcr/zoneminder/zoneminder.install | 235 ++++++++----------- pcr/zoneminder/zoneminder.service | 7 +- 10 files changed, 298 insertions(+), 262 deletions(-) create mode 100644 pcr/zoneminder/fabs.patch create mode 100644 pcr/zoneminder/log.txt delete mode 100644 pcr/zoneminder/sysctl-zoneminder.conf create mode 100644 pcr/zoneminder/uio.patch create mode 100644 pcr/zoneminder/zm_rtp_ctrl.h.quick_fix_for_gcc6.diff create mode 100644 pcr/zoneminder/zoneminder-tmpfile.conf (limited to 'pcr/zoneminder') diff --git a/pcr/zoneminder/PKGBUILD b/pcr/zoneminder/PKGBUILD index 9ecf77051..ba6c7bc02 100644 --- a/pcr/zoneminder/PKGBUILD +++ b/pcr/zoneminder/PKGBUILD @@ -1,120 +1,150 @@ -# Contributor (Arch): Troy Will -# Contributor (Arch): /dev/rs0 -# Contributor (Arch): Jacek Burghardt -# Contributor (Arch): Vojtech Aschenbrenner -# Contributor (Arch): Jason Gardner -# Contributor (Arch): Ross melin -# Maintainer: Márcio Silva +# Maintainer (AUR): Mesmer +# Contributor (AUR): Troy Will +# Contributor (AUR): /dev/rs0 +# Contributor (AUR): Jacek Burghardt +# Contributor (AUR): Vojtech Aschenbrenner +# Contributor (AUR): Jason Gardner +# Contributor (AUR): Ross melin +# Contributor (AUR): Charles Spence IV +# Contributor (AUR): Joe Julian +# Contributor: Márcio Silva # Contributor: André Silva # Orginally based on a Debian Squeeze package +# parabola changes and rationale: +# - corrected license +# - renamed tarball to avoid collisions + +_pkgname=zoneminder pkgname=zoneminder -pkgver=1.28.0 +pkgver=1.30.4 pkgrel=1 pkgdesc='Capture, analyse, record and monitor video security cameras' -arch=('i686' 'x86_64' 'armv7h') -backup=('etc/zm.conf') -url="https://github.com/ZoneMinder/ZoneMinder/releases" -license=('GPL2') -depends=('apache' 'cambozola' 'ffmpeg' 'gnutls' 'mariadb' 'perl-archive-zip' 'perl-date-manip' 'perl-dbd-mysql' 'perl-dbi' - 'perl-expect' 'perl-libwww' 'perl-mime-lite' 'perl-mime-tools' 'perl-php-serialization' 'perl-net-sftp-foreign' - 'perl-sys-mmap' 'perl-time-modules' 'php' 'php-apache' 'php-gd' 'php-mcrypt') -makedepends=('netpbm' 'cmake') -optdepends=('netpbm') -options=(!libtool) -install=$pkgname.install -source=(https://github.com/ZoneMinder/ZoneMinder/archive/v$pkgver.tar.gz - httpd-$pkgname.conf - $pkgname.service - sysctl-$pkgname.conf) -sha512sums=('3e18993b0539729491052c97d8c94227ccc089eb40277c2f07682f30049033303c7cfe9734fdac6d33ae67df29c76eb72bf7fbb5dae8227e8831fa603b61c375' - '4ce0d8eba9d006d258f5b8a83920fc17f1f602b96518d37b7a47cd9b6eb84ef2587641a6ba839a469c3f0e33b46475866187279ae3f8be0d4054b074ee5d6b08' - 'cfb0eb87a989236c72741a496ddc6a73aa2696e5beaaca4836d3c231ddb24c7ef5e9f65e7afa49674f2115cbfa4a07c75486e1947ce294c816ddbb875f3b99cf' - '7330c179f1e2db815a675560d3d84648be02f7d0292f8cbe21d6033577fe688ed71ad23b5b8c9dc309395b45ebb554f9499e7a4b57091959b69679011fa59044') - -prepare() { - cd $srcdir/ZoneMinder-$pkgver - - # Patch for disable ZM_CHECK_FOR_UPDATES - sed -i '\|ZM_CHECK_FOR_UPDATES|,+1 s|yes|no|; - ' scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in - - # Patch for support html5 video and flv - sed -i '\|ZM_MPEG_LIVE_FORMAT|,+1 s|swf|ogg|; - \|ZM_MPEG_REPLAY_FORMAT|,+1 s|swf|ogg|; - \|ZM_FFMPEG_FORMATS|,+1 s|mpg mpeg wmv asf avi[*] mov swf 3gp[*][*]|mpg mpeg wmv asf avi* mov flv swf 3gp** webm ogg matroska mp4 h264|; - ' scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in - - # Patch for change ZM name to ZoneMinder - sed -i '\|ZM_WEB_TITLE_PREFIX|,+1 s|"ZM"|"ZoneMinder"|; - ' scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in - - # Patch for remove HACK in Makefile.am - sed -i '\|This is a HACK|d; - \|^install-data-hook:$|,+5 d; - s| install-data-hook||; - \|^uninstall-hook:$|,+5 d; - s| uninstall-hook||; - ' Makefile.am +arch=( i686 x86_64 armv7h ) +backup=( etc/zm.conf ) +url="https://github.com/$pkgname/$pkgname/releases" +license=( GPL2 ) +depends=( + mariadb perl-dbd-mysql perl-dbi + apache php php-apache php-gd php-mcrypt perl-php-serialization + perl-libwww perl-net-sftp-foreign + ffmpeg vlc perl-sys-mmap + gnutls polkit + perl-expect perl-archive-zip perl-date-manip + perl-mime-lite perl-mime-tools +) +makedepends=( + cmake netpbm git +) +optdepends=( + 'php-apcu-bci: Bring back the API for android control' + netpbm + cambozola + perl-time-modules + perl-x10 + perl-astro-suntime +) +install=$_pkgname.install + +source=( + $pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$pkgname/archive/$pkgver.tar.gz + httpd-zoneminder.conf + zoneminder.service + uio.patch + fabs.patch + zoneminder-tmpfile.conf +) +sha256sums=('879f57fdb1e013b3f17b1b0e87c5935683dad14922951d5f29d1370c1e490f2e' + 'ff7382b38ac07dadead0ad4d583e3dbcf8da4aaa06b76d048ee334f69f95db67' + '043d77a995553c533d62f48db4b719d29cf6c7074f215d866130e97be57ed646' + 'd1816cac69be5e807d22c37fcbe6fef99e38151a5c71233b875c0ebf101fb460' + 'fd20faed09eaf825933c2a87b1d04febf99d183b2b36b0041df1e2b2990c49c2' + 'cc8af737c3c07750fc71317c81999376e4bbb39da883780164a8747b3d7c95a7') + + +prepare () { + cd $srcdir/$pkgname-$pkgver/web/api/app/Plugin/ + if [ ! -d "crud" ]; then + git clone -b 3.0 https://github.com/FriendsOfCake/crud.git + mkdir -p Crud + mv crud/* Crud + fi + patch $srcdir/$pkgname-$pkgver/src/zm_image.cpp < $srcdir/fabs.patch + patch $srcdir/$pkgname-$pkgver/src/zm_comms.h < $srcdir/uio.patch } build() { - cd $srcdir/ZoneMinder-$pkgver - - cmake -DCMAKE_INSTALL_PREFIX=/usr \ - -DZM_TARGET_DISTRO=arch \ - -DZM_CGIDIR=/srv/http/cgi-bin \ - -DZM_CONTENTDIR=/var/cache/$pkgname \ - -DZM_LOGDIR=/var/log/$pkgname \ - -DZM_RUNDIR=/run/$pkgname \ - -DZM_SOCKDIR=/run/$pkgname \ - -DZM_TMPDIR=/var/tmp \ - -DZM_WEB_USER=http \ - -DZM_WEB_GROUP=http \ - -DZM_WEBDIR=/srv/http/$pkgname - - make V=0 -} - + cd $srcdir/$pkgname-$pkgver + + cmake -DCMAKE_INSTALL_PREFIX=/usr \ + -DZM_PERL_SUBPREFIX=/lib/perl5 \ + -DZM_WEBDIR=/srv/http/zoneminder \ + -DZM_CGIDIR=/srv/http/cgi-bin \ + -DZM_WEB_USER=http \ + -DZM_CONTENTDIR=/var/cache/zoneminder \ + -DZM_LOGDIR=/var/log/zoneminder \ + -DZM_RUNDIR=/run/zoneminder \ + -DZM_TMPDIR=/var/lib/zoneminder/temp \ + -DZM_SOCKDIR=/var/lib/zoneminder/sock . + + make V=0 +} + package() { - cd $srcdir/ZoneMinder-$pkgver - - make DESTDIR=$pkgdir install - - # BEGIN CREATE_ZONEMINDER_DIRECTORIES - #mkdir -pv $pkgdir/{etc/{httpd/conf/extra,sysctl.d},srv/http/cgi-bin,usr/{lib/systemd/system,share/{licenses/$pkgname,$pkgname/db}}} - mkdir -pv $pkgdir/run/zm - chown -v http.http $pkgdir/run/zm - mkdir -pv $pkgdir/var/{cache/$pkgname,log/$pkgname} - mkdir -pv $pkgdir/srv/http/$pkgname/socks - chown -Rv http.http $pkgdir/{etc/zm.conf,var/{cache/$pkgname,log/$pkgname}} - chown -Rv http.http $pkgdir/srv/http/$pkgname/socks - chmod -v 0700 $pkgdir/etc/zm.conf - # END CREATE_ZONEMINDER_DIRECTORIES - - # Make content directories in /var/cache/$pkgname and link them - for i in events images temp; do - #mv -v $pkgdir/srv/http/$pkgname/$i $pkgdir/var/cache/$pkgname/$i - mkdir -v $pkgdir/var/cache/$pkgname/$i - #chown -v http.http $pkgdir/var/cache/$pkgname/$i - ln -sv /var/cache/$pkgbase/$i $pkgdir/srv/http/$pkgname/$i - chown -hv http.http $pkgdir/srv/http/$pkgname/$i - done - - # Create a link to the Zoneminder cgi binaries - ln -sv /srv/http/cgi-bin $pkgdir/srv/http/$pkgname - - chown -hv http.http $pkgdir/srv/http/{cgi-bin,$pkgname,$pkgname/cgi-bin} - - # Link Cambozola - ln -vs /usr/share/cambozola/cambozola.jar $pkgdir/srv/http/$pkgname - - # Install configuration files - #mkdir -pv $pkgdir/etc/httpd/conf/extra - install -vDm 644 $srcdir/httpd-$pkgname.conf $pkgdir/etc/httpd/conf/extra - #mkdir -pv $pkgdir/usr/lib/systemd/system - install -vDm 644 $srcdir/$pkgname.service $pkgdir/usr/lib/systemd/system - install -vDm 644 $srcdir/sysctl-$pkgname.conf $pkgdir/etc/sysctl.d - install -vDm 644 COPYING $pkgdir/usr/share/licenses/$pkgname - install -vDm 644 db/zm*.sql $pkgdir/usr/share/$pkgname/db + + cd $srcdir/$pkgname-$pkgver + + DESTDIR=$pkgdir make install + + # Change Polkit directory permissions to Arch Linux policy + chmod -v 700 $pkgdir/usr/share/polkit-1/rules.d/ + chown -v polkitd $pkgdir/usr/share/polkit-1/rules.d/ + + # BEGIN CREATE_ZONEMINDER_DIRECTORIES + mkdir -pv $pkgdir/var/{cache/zoneminder,log/zoneminder} + chown -Rv http.http $pkgdir/var/{cache/zoneminder,log/zoneminder} + + # corresponds to -DZM_SOCKDIR=/var/lib/zoneminder/sock + mkdir -pv $pkgdir/var/lib/zoneminder/sock + chown -v http.http $pkgdir/var/lib/zoneminder/sock + + # corresponds to -DZM_TMPDIR=/var/lib/zoneminder/temp + mkdir -pv $pkgdir/var/lib/zoneminder/temp + chown -v http.http $pkgdir/var/lib/zoneminder/temp + + chown -v http.http $pkgdir/etc/zm.conf + chmod 0700 $pkgdir/etc/zm.conf + # END CREATE_ZONEMINDER_DIRECTORIES + + # Make content directories in /var/cache/zoneminder and to link them in /srv/http/zoneminder + for i in events images temp; do + mkdir $pkgdir/var/cache/$_pkgname/$i + chown -v http.http $pkgdir/var/cache/$_pkgname/$i + ln -s /var/cache/$_pkgname/$i $pkgdir/srv/http/$_pkgname/$i + chown -v --no-dereference http.http $pkgdir/srv/http/$_pkgname/$i + done + + # Create a link to the Zoneminder cgi binaries + ln -sv /srv/http/cgi-bin $pkgdir/srv/http/$_pkgname + + chown -h http.http $pkgdir/srv/http/{cgi-bin,$_pkgname,$_pkgname/cgi-bin} + + # Link Cambozola + # ln -s /usr/share/cambozola/cambozola.jar $pkgdir/srv/http/$_pkgname + + # Install configuration files + mkdir -p $pkgdir/etc/httpd/conf/extra + install -D -m 644 $srcdir/httpd-$_pkgname.conf $pkgdir/etc/httpd/conf/extra + + mkdir -p $pkgdir/usr/lib/systemd/system + install -D -m 644 $srcdir/$_pkgname.service $pkgdir/usr/lib/systemd/system + + install -D -m 644 COPYING $pkgdir/usr/share/license/$_pkgname + install -D -m 644 db/zm*.sql $pkgdir/usr/share/$_pkgname/db + + mkdir -p $pkgdir/usr/share/doc/$_pkgname + # install -D -m 644 $srcdir/README $pkgdir/usr/share/doc/$_pkgname + + install -Dm644 ../zoneminder-tmpfile.conf "$pkgdir"/usr/lib/tmpfiles.d/zoneminder.conf + } diff --git a/pcr/zoneminder/fabs.patch b/pcr/zoneminder/fabs.patch new file mode 100644 index 000000000..b0a62e3db --- /dev/null +++ b/pcr/zoneminder/fabs.patch @@ -0,0 +1,11 @@ +--- src/ZoneMinder-1.30.4/src/zm_image.cpp 2017-06-17 04:20:45.808503543 -0300 ++++ src/ZoneMinder-1.30.4/src/zm_image.cpp.2 2017-06-17 04:20:40.221794330 -0300 +@@ -1659,7 +1659,7 @@ + uint8_t *psrc = images[j]->buffer+c; + + #ifndef SOLARIS +- if ( (unsigned)abs((*psrc)-RGB_VAL(ref_colour,c)) >= RGB_VAL(threshold,c) ) ++ if ( (unsigned)fabs((*psrc)-RGB_VAL(ref_colour,c)) >= RGB_VAL(threshold,c) ) + #else + if ( (unsigned)std::abs((*psrc)-RGB_VAL(ref_colour,c)) >= RGB_VAL(threshold,c) ) + #endif diff --git a/pcr/zoneminder/httpd-zoneminder.conf b/pcr/zoneminder/httpd-zoneminder.conf index cdb7722dc..41b364f13 100644 --- a/pcr/zoneminder/httpd-zoneminder.conf +++ b/pcr/zoneminder/httpd-zoneminder.conf @@ -1,4 +1,4 @@ -# /etc/httpd/conf/extra/httpd-zm.conf +# /etc/httpd/conf/extra/httpd-zoneminder.conf # Config for zoneminder web app Alias /zm "/srv/http/zoneminder" @@ -7,8 +7,8 @@ Alias /zm "/srv/http/zoneminder" AllowOverride None Order allow,deny Allow from all - # The code unfortunately uses short tags in many places - php_value short_open_tag On + # Provide PHP directory and file access, see http://php.net/manual/en/ini.core.php#ini.open-basedir + php_admin_value open_basedir "/tmp/:/etc/zm.conf:/srv/http/zoneminder/:/var/cache/zoneminder/:/var/lib/zoneminder/:/var/log/zoneminder/" ScriptAlias /cgi-bin "/srv/http/cgi-bin" diff --git a/pcr/zoneminder/log.txt b/pcr/zoneminder/log.txt new file mode 100644 index 000000000..09e54b17e --- /dev/null +++ b/pcr/zoneminder/log.txt @@ -0,0 +1,23 @@ +==> Making package: zoneminder 1.30.4-1 (Fri Sep 15 20:35:45 UTC 2017) +==> Checking runtime dependencies... +==> Missing dependencies: + -> mariadb + -> perl-dbd-mysql + -> perl-dbi + -> apache + -> php + -> php-apache + -> php-gd + -> php-mcrypt + -> perl-libwww + -> vlc + -> perl-archive-zip + -> perl-date-manip + -> perl-mime-lite + -> perl-mime-tools +==> Checking buildtime dependencies... +==> Missing dependencies: + -> netpbm +==> ERROR: Could not resolve all dependencies. + +==> ERROR: An unknown error has occurred. Exiting... diff --git a/pcr/zoneminder/sysctl-zoneminder.conf b/pcr/zoneminder/sysctl-zoneminder.conf deleted file mode 100644 index ec1407dee..000000000 --- a/pcr/zoneminder/sysctl-zoneminder.conf +++ /dev/null @@ -1,3 +0,0 @@ -# For Zoneminder Monitor -#kernel.shmall = 524288000 -#kernel.shmmax = 524288000 diff --git a/pcr/zoneminder/uio.patch b/pcr/zoneminder/uio.patch new file mode 100644 index 000000000..a892e29b1 --- /dev/null +++ b/pcr/zoneminder/uio.patch @@ -0,0 +1,22 @@ +--- src/ZoneMinder-1.30.4/src/zm_comms.h 2017-05-09 14:54:48.000000000 +0000 ++++ src/ZoneMinder-1.30.4/src/zm_comms.fix.h 2017-09-15 20:49:46.992445289 +0000 +@@ -21,7 +21,6 @@ + #define ZM_COMMS_H + + #include "zm_exception.h" +- + #include + #include + #include +@@ -31,11 +30,9 @@ + #include + #include + +-#if defined(BSD) + #include + #include + #include +-#endif + + class CommsException : public Exception + { diff --git a/pcr/zoneminder/zm_rtp_ctrl.h.quick_fix_for_gcc6.diff b/pcr/zoneminder/zm_rtp_ctrl.h.quick_fix_for_gcc6.diff new file mode 100644 index 000000000..ae076e72f --- /dev/null +++ b/pcr/zoneminder/zm_rtp_ctrl.h.quick_fix_for_gcc6.diff @@ -0,0 +1,4 @@ +126c126 +< struct Bye +--- +> struct diff --git a/pcr/zoneminder/zoneminder-tmpfile.conf b/pcr/zoneminder/zoneminder-tmpfile.conf new file mode 100644 index 000000000..84362b52b --- /dev/null +++ b/pcr/zoneminder/zoneminder-tmpfile.conf @@ -0,0 +1 @@ +d /run/zoneminder 0755 http http - diff --git a/pcr/zoneminder/zoneminder.install b/pcr/zoneminder/zoneminder.install index 1c8789a4a..d16779e3b 100644 --- a/pcr/zoneminder/zoneminder.install +++ b/pcr/zoneminder/zoneminder.install @@ -1,145 +1,98 @@ -#!/usr/bin/bash -pre_install() { - set -e - abort=false - if [ -L /srv/http/zoneminder/events ]; then - l=$(readlink /srv/http/zoneminder/events) - if [ $l != /var/cache/zoneminder/events ]; then - abort=true - fi - fi - if [ -L /srv/http/zoneminder/images ]; then - l=$(readlink /srv/http/zoneminder/images) - if [ $l != /var/cache/zoneminder/images ]; then - abort=true - fi - fi - if [ $abort = true ]; then - cat >&2 << EOF -Aborting installation of zoneminder due to non-default symlinks in -/srv/http/zoneminder for the images and/or events directory, which could -result in loss of data. Please move your data in each of these directories to -/var/cache/zoneminder before installing zoneminder from the package. -EOF - exit 1 - fi - exit 0 -} - post_install() { - if [[ -d /var/log/zoneminder ]]; then - chmod -v 0755 /var/log/zoneminder - chown -v http.http /var/log/zoneminder - else - mkdir -vm 0755 /var/log/zoneminder - chown -v http.http /var/log/zoneminder - fi - if [[ -d /tmp/zoneminder ]]; then - chmod -v 0700 /tmp/zoneminder - chown -v http.http /tmp/zoneminder - else - mkdir -vm 0700 /tmp/zoneminder - chown -v http.http /tmp/zoneminder - fi - # edit /etc/php.ini for Zoneminder - sed -e ' - # Enable these libraries by removing the leading comment character - \|^;extension=mysql.so$| s|^;||; - \|^;extension=mysqli.so$| s|^;||; - \|^;extension=pdo_mysql.so$| s|^;||; - \|^;extension=gd.so$| s|^;||; - \|^;extension=gettext.so$| s|^;||; - \|^;extension=mcrypt.so$| s|^;||; - \|^;extension=session.so$| s|^;||; - \|^;extension=sockets.so$| s|^;||; - \|^;extension=openssl.so$| s|^;||; - \|^;extension=ftp.so$| s|^;||; - \|^;extension=zip.so$| s|^;||; - - # Add zoneminder paths to open_basedir - s|^open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/$|&:/etc:/srv/http/zoneminder/|; - ' /etc/php/php.ini > /etc/php/php.ini.zoneminder + systemd-tmpfiles --create zoneminder.conf - # edit /etc/httpd/conf/httpd.conf for Zoneminder - sed -e ' - # Use mod_mpm_prefork instead of mod_mpm_event.so (FS#39218). - s|^LoadModule mpm_event_module modules/mod_mpm_event.so$|#&\nLoadModule mpm_prefork_module modules/mod_mpm_prefork.so|; - - # Zoneminder requires cgi - \|^#LoadModule cgi_module modules/mod_cgi.so$| s|#||; - - # libphp5 - \|^LoadModule php5_module modules/libphp5.so$|d; - s|^#*LoadModule rewrite_module modules/mod_rewrite.so$|&\nLoadModule php5_module modules/libphp5.so|; - \|^Include /etc/httpd/conf/extra/php5_module.conf|d; - s|^Include conf/extra/httpd-default.conf$|&\nInclude /etc/httpd/conf/extra/php5_module.conf|; - - # Include httpd-zoneminder.conf - \|^Include /etc/httpd/conf/extra/httpd-zoneminder.conf$|d; - s|^# Server-pool management (MPM specific)$|\nInclude /etc/httpd/conf/extra/httpd-zoneminder.conf\n&|; - ' /etc/httpd/conf/httpd.conf > /etc/httpd/conf/httpd.conf.zoneminder + # edit /etc/php.ini for Zoneminder + sed -e ' + # Enable these libraries by removing the leading comment character + \|^;extension=ftp.so$| s|^;||; + \|^;extension=gd.so$| s|^;||; + \|^;extension=gettext.so$| s|^;||; + \|^;extension=mcrypt.so$| s|^;||; + \|^;extension=openssl.so$| s|^;||; + \|^;extension=pdo_mysql.so$| s|^;||; + \|^;extension=sockets.so$| s|^;||; + \|^;extension=zip.so$| s|^;||; + ' /etc/php/php.ini > /tmp/php.ini.zoneminder - cat << EOF -Note for mysql: -==> To run Zoneminder, you must install the database running mysql service (as root): -==> "systemctl start mysqld.service" -==> and add Zoneminder database typing (with passsword): -==> "mysqladmin --defaults-file=/etc/mysql/my.cnf -p -f reload" -==> "cat /usr/share/zoneminder/db/zm_create.sql | mysql --defaults-file=/etc/mysql/my.cnf -p" -==> "echo 'grant lock tables, alter,select,insert,update,delete on zm.* to 'zmuser'@localhost identified by "zmpass";' | mysql --defaults-file=/etc/mysql/my.cnf -p mysql" -==> (or without passsword): -==> "mysqladmin --defaults-file=/etc/mysql/my.cnf -f reload" -==> "cat /usr/share/zoneminder/db/zm_create.sql | mysql --defaults-file=/etc/mysql/my.cnf" -==> "echo 'grant lock tables, alter,select,insert,update,delete on zm.* to 'zmuser'@localhost identified by "zmpass";' | mysql --defaults-file=/etc/mysql/my.cnf mysql" + # edit /etc/httpd/conf/httpd.conf for Zoneminder + sed -e ' + # Use mod_mpm_prefork instead of mod_mpm_event.so (FS#39218). + s|^LoadModule mpm_event_module modules/mod_mpm_event.so$|#&\nLoadModule mpm_prefork_module modules/mod_mpm_prefork.so|; + + # Zoneminder needs Apache configured to permit CGI execution + \|^\t#LoadModule cgi_module modules/mod_cgi.so$| s|\t#|\t|; + + # libphp7 + \|^LoadModule php7_module modules/libphp7.so$|d; + s|^#*LoadModule rewrite_module modules/mod_rewrite.so$|&\nLoadModule php7_module modules/libphp7.so|; + \|^Include /etc/httpd/conf/extra/php7_module.conf|d; + s|^Include conf/extra/httpd-default.conf$|&\nInclude /etc/httpd/conf/extra/php7_module.conf|; + + # Include httpd-zoneminder.conf + \|^Include /etc/httpd/conf/extra/httpd-zoneminder.conf$|d; + s|^# Server-pool management (MPM specific)$|\nInclude /etc/httpd/conf/extra/httpd-zoneminder.conf\n&|; + ' /etc/httpd/conf/httpd.conf > /tmp/httpd.conf.zoneminder + + cat << EOF -Note for php: -==> You must uncomment that line in /etc/php/php.ini: -==> "extension=mysql.so" -==> check and make sure these are uncommented: -==> "extension=gd.so" -==> "extension=gettext.so" -==> "extension=mcrypt.so" -==> "extension=mysqli.so" -==> "extension=session.so" -==> "extension=sockets.so" -==> "extension=openssl.so" -==> "extension=ftp.so" -==> "extension=zip.so" -==> check and add to open_basedir "/etc" and -==> "/srv/http/zoneminder" like so -==> "open_basedir = /home:/tmp:/usr/share/pear:/etc:/srv/http/zoneminder" -==> and set your timezone in php.ini: -==> "date.timezone = /" + Zoneminder database setup: + -------------------------- + Zoneminder operation requires a database named 'zm' which is defined in /usr/share/zoneminder/db/zm_create.sql + + Create the Zoneminder database (with a password): + "mysqladmin --defaults-file=/etc/mysql/my.cnf -p -f reload" + "cat /usr/share/zoneminder/db/zm_create.sql | mysql --defaults-file=/etc/mysql/my.cnf -p" + "echo 'grant lock tables, alter,select,insert,update,delete on zm.* to 'zmuser'@localhost identified by "zmpass";' | mysql --defaults-file=/etc/mysql/my.cnf -p mysql" + (or without a password): + "mysqladmin --defaults-file=/etc/mysql/my.cnf -f reload" + "cat /usr/share/zoneminder/db/zm_create.sql | mysql --defaults-file=/etc/mysql/my.cnf" + "echo 'grant lock tables, alter,select,insert,update,delete on zm.* to 'zmuser'@localhost identified by "zmpass";' | mysql --defaults-file=/etc/mysql/my.cnf mysql" + + PHP configuration + ----------------- + * Check and make sure these are uncommented in /etc/php/php.ini: + extension=ftp.so + extension=gd.so + extension=gettext.so + extension=mcrypt.so + extension=openssl.so + extension=pdo_mysql.so + extension=sockets.so + extension=zip.so + * Set your timezone in php.ini: + date.timezone = / + + Apache configuration + -------------------- + Edit /etc/httpd/conf/httpd.conf and add the line: + "LoadModule php7_module modules/libphp7.so" + and: + "Include /etc/httpd/conf/extra/php7_module.conf" + "Include /etc/httpd/conf/extra/httpd-zoneminder.conf" -Note for apache: -==> You must edit /etc/httpd/conf/httpd.conf and add the line: -==> "LoadModule php5_module modules/libphp5.so" -==> and: -==> "Include /etc/httpd/conf/extra/php5_module.conf" -==> "Include /etc/httpd/conf/extra/httpd-zoneminder.conf" EOF } post_upgrade() { - post_install - /usr/bin/zmupdate.pl -f >/dev/null + post_install + /usr/bin/zmupdate.pl -f >/dev/null } post_remove() { - if [[ -d /tmp/zoneminder ]]; then - rm -vr /tmp/zoneminder - fi - #sed -i -e ' - # /^open_basedir/ s/:\/srv\/http\/zoneminder//; - # /^open_basedir/ s/:\/srv\/http\/zoneminder\///; - # ' /etc/php/php.ini || read - #sed -i -e ' - # /^# ZoneMinder/d; - # /Include \/etc\/httpd\/conf\/extra\/httpd-zoneminder.conf/d; - # ' /etc/httpd/conf/httpd.conf || read + if [[ -d /tmp/zoneminder ]]; then + rm -vr /tmp/zoneminder + fi + # sed -i -e ' + # /^open_basedir/ s/:\/srv\/http\/zoneminder//; + # /^open_basedir/ s/:\/srv\/http\/zoneminder\///; + # ' /etc/php/php.ini || read + # sed -i -e ' + # /^# ZoneMinder/d; + # /Include \/etc\/httpd\/conf\/extra\/httpd-zoneminder.conf/d; + # ' /etc/httpd/conf/httpd.conf || read - cat << EOF + cat << EOF Note: ==> To clean Zoneminder mysql database, run as root (with password): ==> "echo 'delete from user where User="zmuser";' | mysql --defaults-file=/etc/mysql/my.cnf -p mysql" @@ -152,27 +105,25 @@ Note: ==> Disable http with php if it isn't needed with others servers, ==> comment or remove that lines in /etc/httpd/conf/httpd.conf: -==> "LoadModule php5_module modules/libphp5.so" -==> "Include /etc/httpd/conf/extra/php5_module.conf" +==> "LoadModule php7_module modules/libphp7.so" +==> "Include /etc/httpd/conf/extra/php7_module.conf" ==> Remove line in /etc/httpd/conf/httpd.conf: ==> "Include /etc/httpd/conf/extra/httpd-zoneminder.conf" ==> Disable php with mysql if it isn't needed with others servers, ==> comment that lines in /etc/php/php.ini: -==> "extension=mysql.so" -==> "extension=gd.so" -==> "extension=gettext.so" -==> "extension=mcrypt.so" -==> "extension=mysqli.so" -==> "extension=session.so" -==> "extension=sockets.so" -==> "date.timezone = /" - -==> Edit /etc/php/php.ini and remove "/etc" and "/srv/http/zoneminder" -==> in the "open_basedir". + # extension=ftp.so + # extension=gd.so + # extension=gettext.so + # extension=mcrypt.so + # extension=openssl.so + # extension=pdo_mysql.so + # extension=sockets.so + # extension=zip.so + # "date.timezone = /" -==> Remove log files and "zonemider" directory in "/var/log/zoneminder". +==> Remove log files and "zoneminder" directory in "/var/log/zoneminder". ==> Backup and remove "events", "images" and "temp" dirs in "/var/cache/zoneminder". EOF diff --git a/pcr/zoneminder/zoneminder.service b/pcr/zoneminder/zoneminder.service index 83d992aa7..48268f139 100644 --- a/pcr/zoneminder/zoneminder.service +++ b/pcr/zoneminder/zoneminder.service @@ -1,6 +1,3 @@ -# ZoneMinder systemd unit file -# This file is intended to work with all distributions with Systemd - [Unit] Description=ZoneMinder CCTV recording and security system After=network.target mysqld.service httpd.service @@ -11,8 +8,8 @@ User=http Type=forking ExecStart=/usr/bin/zmpkg.pl start ExecReload=/usr/bin/zmpkg.pl restart -ExecStop=/bin/bash -c '[[ "$(/usr/bin/pgrep zmdc.pl)" > 0 ]] && /usr/bin/zmpkg.pl stop' -PIDFile="/run/zm/zm.pid" +ExecStop=/usr/bin/zmpkg.pl stop +PIDFile=/run/zoneminder/zm.pid [Install] WantedBy=multi-user.target -- cgit v1.2.2