From 80b6d46a5c9da3f9d0db207d9d0adc265899a915 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 21 Oct 2012 09:47:14 -0700 Subject: Sun Oct 21 09:47:14 PDT 2012 --- pcr/zoneminder/PKGBUILD | 84 ++++++++++++++++++++++++--------------- pcr/zoneminder/httpd-zm.conf | 8 ++-- pcr/zoneminder/zoneminder.install | 44 +++++++++++++++----- 3 files changed, 92 insertions(+), 44 deletions(-) (limited to 'pcr') diff --git a/pcr/zoneminder/PKGBUILD b/pcr/zoneminder/PKGBUILD index bb850eec2..64c3f94b0 100644 --- a/pcr/zoneminder/PKGBUILD +++ b/pcr/zoneminder/PKGBUILD @@ -8,7 +8,7 @@ pkgname=zoneminder pkgver=1.25.0 -pkgrel=17 +pkgrel=19 pkgdesc='Capture, analyse, record and monitor video security cameras' arch=(i686 x86_64 mips64el) backup=(etc/zm.conf etc/httpd/conf/extra/httpd-zm.conf) @@ -31,7 +31,7 @@ source=( ) md5sums=( eaefa14befd482154970541252aa1a39 - 25ad042b501aaad98cbe4e05ca0a96c2 + 72380d8793a784ec24cb6809aea4a739 034b61cda8849fc3001849e76ef26041 7487cc72ead82aea0bc78f2e4106ae1a 81c8be870260142e2633eedf73c72040 @@ -39,27 +39,49 @@ md5sums=( build() { cd $srcdir/ZoneMinder-$pkgver - export CPPFLAGS=-D__STDC_CONSTANT_MACROS \ + export CPPFLAGS=-D__STDC_CONSTANT_MACROS\ ZM_SSL_LIB=gnutls # Patch for GCC 4.7.x - sed -i -e 's/^#include /#include \n#include /' src/zm_logger.cpp - sed -i -e 's/^#include /#include \n#include /' src/zm_thread.h + sed -i -e 's/^#include /#include \n#include /'\ + src/zm_logger.cpp || read + sed -i -e 's/^#include /#include \n#include /'\ + src/zm_thread.h || read + + # Patch for automake 1.12 + sed -i -e '/am__api_version=/ s/1.11/1.12/'\ + configure || read # Patch for disable ZM_CHECK_FOR_UPDATES - sed -i -e '/ZM_CHECK_FOR_UPDATES/,+1 s/yes/no/' scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in + sed -i -e '/ZM_CHECK_FOR_UPDATES/,+1 s/yes/no/'\ + scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in || read # Patch for support html5 video and flv sed -i -e '/ZM_MPEG_LIVE_FORMAT/,+1 s/swf/webm/;/ZM_MPEG_REPLAY_FORMAT/,+1 s/swf/webm/; /ZM_FFMPEG_FORMATS/,+1 s/mpg mpeg wmv asf avi\* mov swf 3gp\*\*/mpg mpeg wmv asf avi\* mov flv swf 3gp\*\* webm ogg h254/'\ - scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in + scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in || read + + # Patch for change path + sed -i -e '/ZM_PATH_SOCKS/,+1 s/tmp\/zm/run/; + /ZM_PATH_LOGS/,+1 s/zm/zonemider/; + /ZM_PATH_SWAP/,+1 s/zm/zonemider/'\ + scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in || read + + # Patch for v4l1 compat + sed -i -e "s/$ENV{SHELL} = \'\/bin\/sh\' if exists $ENV{SHELL};/$ENV{SHELL} = \'\/bin\/sh\' if exists $ENV{SHELL};\n$ENV{LD_PRELOAD} = \'\/usr\/lib\/libv4l\/v4l1compat.so\' ;/"\ + scripts/zmdc.pl.in || read + + # Patch for add more socket tries + sed -i -e '/$max_socket_tries/ s/3/15/'\ + web/ajax/stream.php || read # Patch for wrong "suppported" - sed -i -e 's/suppported/supported/' src/zm_local_camera.cpp + sed -i -e 's/suppported/supported/'\ + src/zm_local_camera.cpp || read # Patch for type cast in linux-libre kernel 3.5 sed -i -e 's/enum v4l2_buf_type type = v4l2_data.fmt.type;/enum v4l2_buf_type type = (v4l2_buf_type)v4l2_data.fmt.type;/'\ - src/zm_local_camera.cpp + src/zm_local_camera.cpp || read # Patch for drop custom perl install paths sed -i -e '/# Slight hack for non-standard perl install paths/,+10 d; @@ -93,22 +115,22 @@ build() { / ( cd $(DESTDIR)$(sysconfdir); chown $(webuser):$(webgroup) $(sysconf_DATA); chmod 600 $(sysconf_DATA) )/d; / ( if ! test -e $(ZM_RUNDIR); then mkdir -p $(ZM_RUNDIR); fi; if test "$(ZM_RUNDIR)" != "\/var\/run"; then chown $(webuser):$(webgroup) $(ZM_RUNDIR); chmod u+w $(ZM_RUNDIR); fi )/d; / ( if ! test -e $(ZM_TMPDIR); then mkdir -m 700 -p $(ZM_TMPDIR); fi; if test "$(ZM_TMPDIR)" != "\/tmp"; then chown $(webuser):$(webgroup) $(ZM_TMPDIR); chmod u+w $(ZM_TMPDIR); fi )/d; - / ( if ! test -e $(ZM_LOGDIR); then mkdir -p $(ZM_LOGDIR); fi; if test "$(ZM_LOGDIR)" != "\/var\/log"; then chown $(webuser):$(webgroup) $(ZM_LOGDIR); chmod u+w $(ZM_LOGDIR); fi )/,+1 d' \ + / ( if ! test -e $(ZM_LOGDIR); then mkdir -p $(ZM_LOGDIR); fi; if test "$(ZM_LOGDIR)" != "\/var\/log"; then chown $(webuser):$(webgroup) $(ZM_LOGDIR); chmod u+w $(ZM_LOGDIR); fi )/,+1 d'\ Makefile.{am,in} - ./configure --prefix=/usr \ - --build \ - --enable-crashtrace=no \ - --enable-debug=no \ - --enable-mmap=yes \ - --sysconfdir=/etc \ - --with-cgidir=/usr/lib/$pkgname/cgi-bin \ - --with-ffmpeg=/usr \ - --with-libarch=lib \ - --with-mysql=/usr \ - --with-webdir=/usr/share/$pkgname/www \ - --with-webgroup=http \ - --with-webhost=localhost \ + ./configure --prefix=/usr\ + --enable-crashtrace=no\ + --enable-debug=no\ + --enable-mmap=yes\ + --sysconfdir=/etc\ + --with-cgidir=/srv/http/cgi-bin\ + --with-extralibs='-L/usr/lib -L/usr/lib/mysql'\ + --with-ffmpeg=/usr\ + --with-libarch=lib\ + --with-mysql=/usr\ + --with-webdir=/srv/http/$pkgname\ + --with-webgroup=http\ + --with-webhost=localhost\ --with-webuser=http make V=0 @@ -117,22 +139,22 @@ build() { package() { cd $srcdir/ZoneMinder-$pkgver - make DESTDIR=$pkgdir install + make DESTDIR=$pkgdir RUNDIR=$pkdir/run ZM_RUNDIR=$pkgdir/run install - mkdir -p $pkgdir/{etc/{httpd/conf/extra,rc.d},usr/{lib/{systemd/system,$pkgname/cgi-bin},share/{license/$pkgname,$pkgname/{db,www}}},var/{cache/$pkgname,log/zm}} + mkdir -p $pkgdir/{etc/{httpd/conf/extra,rc.d},srv/http/{cgi-bin,$pkgname},usr/{lib/systemd/system,share/{license/$pkgname,$pkgname/db}},var/{cache/$pkgname,log/$pkgname}} - chown -R http.http $pkgdir/{etc/zm.conf,var/{cache/$pkgname,log/zm}} + chown -R http.http $pkgdir/{etc/zm.conf,var/{cache/$pkgname,log/$pkgname}} for i in events images temp; do - mv $pkgdir/usr/share/$pkgname/www/$i $pkgdir/var/cache/$pkgname/$i - ln -s /var/cache/$pkgname/$i $pkgdir/usr/share/$pkgname/www/$i + mv $pkgdir/srv/http/$pkgname/$i $pkgdir/var/cache/$pkgname/$i + ln -s /var/cache/$pkgname/$i $pkgdir/srv/http/$pkgname/$i done - ln -s /usr/lib/$pkgname/cgi-bin $pkgdir/usr/share/$pkgname/www - ln -s /usr/share/cambozola/cambozola.jar $pkgdir/usr/share/$pkgname/www + ln -s /srv/http/cgi-bin $pkgdir/srv/http/$pkgname + ln -s /usr/share/cambozola/cambozola.jar $pkgdir/srv/http/$pkgname install -D -m 644 $srcdir/httpd-zm.conf $pkgdir/etc/httpd/conf/extra - install -D -m 644 $srcdir/zm.rc.d $pkgdir/etc/rc.d/zm + install -D -m 644 $srcdir/zm.rc.d $pkgdir/etc/rc.d/${pkgname}d 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 diff --git a/pcr/zoneminder/httpd-zm.conf b/pcr/zoneminder/httpd-zm.conf index 8c6356aec..aeb089bc1 100644 --- a/pcr/zoneminder/httpd-zm.conf +++ b/pcr/zoneminder/httpd-zm.conf @@ -1,8 +1,8 @@ # /etc/httpd/conf/extra/httpd-zm.conf # Config for zoneminder web app -Alias /zm "/usr/share/zoneminder/www" - +Alias /zm "/srv/http/zoneminder" + Options -Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny @@ -11,8 +11,8 @@ Alias /zm "/usr/share/zoneminder/www" php_value short_open_tag On -ScriptAlias /zm/cgi-bin "/usr/lib/zoneminder/cgi-bin" - +ScriptAlias /cgi-bin "/srv/http/cgi-bin" + AllowOverride None Options ExecCGI FollowSymLinks Order allow,deny diff --git a/pcr/zoneminder/zoneminder.install b/pcr/zoneminder/zoneminder.install index 922aaad9b..5e62cc23e 100644 --- a/pcr/zoneminder/zoneminder.install +++ b/pcr/zoneminder/zoneminder.install @@ -1,14 +1,14 @@ pre_install() { set -e abort=false - if [ -L /usr/share/zoneminder/www/events ]; then - l=$(readlink /usr/share/zoneminder/www/events) + 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 /usr/share/zoneminder/www/images ]; then - l=$(readlink /usr/share/zoneminder/www/images ) + if [ -L /srv/http/zoneminder/images ]; then + l=$(readlink /srv/http/zoneminder/images ) if [ $l != /var/cache/zoneminder/images ]; then abort=true fi @@ -16,7 +16,7 @@ pre_install() { if [ $abort = true ]; then cat >&2 << EOF Aborting installation of zoneminder due to non-default symlinks in -/usr/share/zoneminder/www for the images and/or events directory, which could +/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 @@ -26,8 +26,13 @@ EOF } post_install() { - mkdir /usr/share/zoneminder/www/backup - mkdir /usr/share/zoneminder/www/socks + if [ -d /var/log/zoneminder ]; then + mkdir -m 0755 /var/log/zoneminder + chown http.http /var/log/zoneminder + else + chmod 0755 /var/log/zoneminder + chown http.http /var/log/zoneminder + fi cat << EOF Note: ==> To run Zoneminder, you must install the database running mysql service (as root): @@ -50,9 +55,10 @@ Note: ==> You must edit /etc/php/php.ini and add to open_basedir "/etc" and ==> "/usr/share/zoneminder" like so -==> "open_basedir = /home:/tmp:/usr/share/pear:/etc:/usr/share/zoneminder/www" +==> "open_basedir = /home:/tmp:/usr/share/pear:/etc:/srv/http/zoneminder" ==> Otherwise ZoneMinder will be unable to read /etc/zm.conf ==> or display its own web directory +==> And set your timezone in php.ini: date.timezone = / Note: ==> You must edit /etc/httpd/conf/httpd.conf and add the line: @@ -65,9 +71,22 @@ EOF post_upgrade() { /usr/bin/zmupdate.pl -f >/dev/null + if [ -d /var/log/zoneminder ]; then + mkdir -m 0755 /var/log/zoneminder + chown http.http /var/log/zoneminder + else + chmod 0755 /var/log/zoneminder + chown http.http /var/log/zoneminder + fi } post_remove() { + if [ -d /run/zoneminder ]; then + rm -vr /run/zoneminder + fi + if [ -d /tmp/zoneminder ]; then + rm -vr /tmp/zoneminder + fi cat << EOF Note: ==> To clean Zoneminder mysql database, run as root: @@ -79,6 +98,8 @@ Note: ==> 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" + +==> Remove ==> "Include /etc/httpd/conf/extra/httpd-zm.conf" ==> Disable php with mysql if it isn't needed with others servers, @@ -90,8 +111,13 @@ Note: ==> "extension=mysqli.so" ==> "extension=session.so" ==> "extension=sockets.so" +==> "date.timezone = /" -==> edit /etc/php/php.ini and remove "/etc" and "/usr/share/zoneminder/www" +==> Edit /etc/php/php.ini and remove "/etc" and "/usr/share/zoneminder/www" ==> in the open_basedir. + +==> Remove log files and 'zonemider' directory in "/var/log/zoneminder" + +==> Backup and remove events images and temp dirs in "/var/cache/zoneminder" EOF } -- cgit v1.2.3-54-g00ecf