diff options
Diffstat (limited to 'pcr/zoneminder/PKGBUILD')
-rw-r--r-- | pcr/zoneminder/PKGBUILD | 232 |
1 files changed, 119 insertions, 113 deletions
diff --git a/pcr/zoneminder/PKGBUILD b/pcr/zoneminder/PKGBUILD index 236ceca01..ede03dd77 100644 --- a/pcr/zoneminder/PKGBUILD +++ b/pcr/zoneminder/PKGBUILD @@ -1,3 +1,4 @@ +# Maintainer: Jacek Burghardt <jacek@hebe.us> # Maintainer: Vojtech Aschenbrenner <v@asch.cz> # Contributor: Jason Gardner <buhrietoe@gmail.com> # Contributor: Ross melin <rdmelin@gmail.com> @@ -6,27 +7,24 @@ # based of debian squeeze package -pkgbase=zoneminder +_automake=1.14 + pkgname=zoneminder pkgver=1.25.0 -pkgrel=24 +pkgrel=28 pkgdesc='Capture, analyse, record and monitor video security cameras' arch=( - i686 - x86_64 mips64el + x86_64 + i686 ) -backup=( - etc/zm.conf -) -url="http://www.$pkgbase.com" -license=( - GPL -) +backup=etc/zm.conf +url=http://www.$pkgname.com +license=GPL2 depends=( apache cambozola - libav-static + ffmpeg gnutls mariadb perl-archive-zip @@ -47,107 +45,117 @@ depends=( php-gd php-mcrypt ) -makedepends=( - netpbm -) -optdepends=( - netpbm -) -install=$pkgbase.install +makedepends=netpbm +optdepends=netpbm +options=(!libtool) +install=$pkgname.install source=( - http://www.$pkgbase.com/downloads/ZoneMinder-$pkgver.tar.gz - httpd-$pkgbase.conf - $pkgbase - $pkgbase.service + http://www.$pkgname.com/downloads/ZoneMinder-$pkgver.tar.gz + httpd-$pkgname.conf + $pkgname.service + sysctl-$pkgname.conf + $pkgname-$pkgver-ffmpeg.patch + $pkgname-$pkgver-gcrypt.patch ) sha512sums=( 3e18993b0539729491052c97d8c94227ccc089eb40277c2f07682f30049033303c7cfe9734fdac6d33ae67df29c76eb72bf7fbb5dae8227e8831fa603b61c375 4ce0d8eba9d006d258f5b8a83920fc17f1f602b96518d37b7a47cd9b6eb84ef2587641a6ba839a469c3f0e33b46475866187279ae3f8be0d4054b074ee5d6b08 - ab4e1d5ddaf4d9cd53d6ca59d7965902afd6a2dc830fbbafa270736c52c2b3563075fee860bb0276466f96e9dbfb71b259ac45a4ae2e4ead8eaec154a0159eb0 cfb0eb87a989236c72741a496ddc6a73aa2696e5beaaca4836d3c231ddb24c7ef5e9f65e7afa49674f2115cbfa4a07c75486e1947ce294c816ddbb875f3b99cf + 7330c179f1e2db815a675560d3d84648be02f7d0292f8cbe21d6033577fe688ed71ad23b5b8c9dc309395b45ebb554f9499e7a4b57091959b69679011fa59044 + 7fc2a4663c3103bef641be065bd7992a2b3dc0699f1b99dc2fdb34c1c48e58686e490d3ade523ef7c8e29b3f04109658eef652c26ff6ee3fb9aee65453bdb6c4 + 8c9e7debcaf60be1c2dda656f95e497f6812d704edc3ca4a1c915a3b3c9dc1749c91d96bc2d60db7d90d5edfd9e2dfc39010dfe4feabfecfffd27f1fffc3d675 ) -build() { +prepare() { cd $srcdir/ZoneMinder-$pkgver - # ZM_RUNDIR need change to run dir - export CPPFLAGS=-D__STDC_CONSTANT_MACROS\ - OPT_FFMPEG=yes\ - PATH_FFMPEG=/usr/bin/avconv-static\ - ZM_LOGDIR=/var/log/$pkgbase\ - ZM_RUNDIR=/tmp/$pkgbase\ - ZM_SSL_LIB=gnutls\ - ZM_TMPDIR=/tmp/$pkgbase - - # Patch for GCC 4.7.x - sed -i -e 's/^#include <errno.h>/#include <errno.h>\n#include <unistd.h>/'\ - src/zm_logger.cpp || read - sed -i -e 's/^#include <pthread.h>/#include <pthread.h>\n#include <unistd.h>/'\ - 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 automake + sed -i "\|^am__api_version=| s|1[.]11|$_automake|; + " configure + + # Patch for GCC + sed -i 's|^#include [<]errno[.]h[>]$|#include <errno.h>\n#include <unistd.h>|; + ' src/zm_logger.cpp + sed -i 's|^#include [<]pthread[.]h[>]$|#include <pthread.h>\n#include <unistd.h>|; + ' src/zm_thread.h + sed -i 's|^#include [<]fcntl[.]h[>]$|#include <fcntl.h>\n#include <limits.h>|; + ' src/zm_local_camera.cpp + + # Patch for type cast in linux-libre kernel 3.5 and for wrong type "suppported" + sed -i 's|enum v4l2_buf_type type = v4l2_data[.]fmt[.]type|enum v4l2_buf_type type = (v4l2_buf_type)v4l2_data.fmt.type|; + s|suppported|supported|; + ' src/zm_local_camera.cpp + + # configure crash on i686 + [[ $CARCH != i686 ]] && { + # Patch for fixing warning + sed -i 's|pdest[+][+] = ([*]blend_ptr)\[[*]pdest]\[[*]psrc[+][+]]|pdest = (*blend_ptr)[*pdest][*psrc++];\n pdest++|; + ' src/zm_image.cpp + } + + # Patch for support ffmpeg with <libavutil/mathematics.h> + #sed -i 's|^extern "C" {|extern "C" {\n#ifdef _STDINT_H\n#undef _STDINT_H\n#endif\n#include <stdint.h>|; + # s|^#include <libavutil/avutil[.]h>|#include <libavutil/avutil.h>\n#include <libavutil/mathematics.h>|; + # ' src/zm_ffmpeg.h + + # Patch for support C library + #sed -i 's|^AM_CONFIG_HEADER(config[.]h)|AM_CONFIG_HEADER(config.h)\n\nAC_SUBST([AM_CXXFLAGS], [-D__STDC_CONSTANT_MACROS])|; + # s|^AC_CHECK_HEADERS(mysql/mysql[.]h,,AC_MSG_ERROR(zm requires MySQL headers - check that MySQL development packages are installed),)|AC_CHECK_HEADERS(mysql/mysql.h,,AC_MSG_ERROR(zm requires MySQL headers - check that MySQL development packages are installed),)\nAC_LANG_PUSH([C])|; + # s|^AC_CHECK_HEADERS(libswscale/swscale[.]h,,,)|AC_CHECK_HEADERS(libswscale/swscale.h,,,)\nAC_LANG_POP([C])|; + # ' configure.ac # 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 || read + 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 -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 h264/'\ - scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in || read - - # Patch for enable video export - #sed -i -e '/ZM_OPT_FFMPEG/,+1 s/@OPT_FFMPEG@/yes/; - # /ZM_PATH_FFMPEG/,+1 s/@PATH_FFMPEG@/\/usr\/bin\/avconv-static/'\ - # scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in || read + sed -i '\|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 h264|; + ' scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in - # Patch for change path run dir - sed -i -e '/ZM_PATH_SOCKS/,+1 s/TMP/RUN/'\ - scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in || read - - # Patch for change ZM name to ZoneMinder - sed -i -e '/ZM_WEB_TITLE_PREFIX/,+1 s/"ZM"/"ZoneMinder"/'\ - scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in || read + # Patch for change path run dir and for change ZM name to ZoneMinder + sed -i '\|ZM_PATH_SOCKS|,+1 s|TMP|RUN|; + \|ZM_WEB_TITLE_PREFIX|,+1 s|"ZM"|"ZoneMinder"|; + ' scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in # Patch for v4l2 convert support - 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\/v4l2convert.so\' ;/"\ - scripts/zmdc.pl.in || read + sed -i 's|^$ENV{SHELL} = '"'/bin/sh'"' if exists $ENV{SHELL}|$ENV{SHELL} = '"'/bin/sh'"' if exists $ENV{SHELL};\n$ENV{LD_PRELOAD} = '"'/usr/lib/libv4l/v4l2convert.so'"' |; + ' scripts/zmdc.pl.in # 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 || 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 || read - - # Patch for drop custom perl install paths - sed -i -e '/# Slight hack for non-standard perl install paths/,+10 d; - s/^AC_SUBST(ZM_CONFIG,"$SYSCONFDIR\/zm.conf")/AC_SUBST(ZM_CONFIG,"$SYSCONFDIR\/zm.conf")\n\nEXTRA_PERL_LIB="# Include from system perl paths only"\nPERL_MM_PARMS="INSTALLDIRS=vendor"/'\ - configure.ac - - # Patch for support ffmpeg with <libavutil/mathematics.h> and C library - sed -i -e 's/^extern "C" {/extern "C" {\n#ifdef _STDINT_H\n#undef _STDINT_H\n#endif\n#include <stdint.h>/ - s/^#include <libavutil\/avutil.h>/#include <libavutil\/avutil.h>\n#include <libavutil\/mathematics.h>/'\ - src/zm_ffmpeg.h - sed -i -e 's/^AM_CONFIG_HEADER(config.h)/AM_CONFIG_HEADER(config.h)\n\nAC_SUBST([AM_CXXFLAGS], [-D__STDC_CONSTANT_MACROS])/; - s/^AC_CHECK_HEADERS(mysql\/mysql.h,,AC_MSG_ERROR(zm requires MySQL headers - check that MySQL development packages are installed),)/AC_CHECK_HEADERS(mysql\/mysql.h,,AC_MSG_ERROR(zm requires MySQL headers - check that MySQL development packages are installed),)\nAC_LANG_PUSH([C])/; - s/^AC_CHECK_HEADERS(libswscale\/swscale.h,,,)/AC_CHECK_HEADERS(libswscale\/swscale.h,,,)\nAC_LANG_POP([C])/'\ - configure.ac - - # Patch for wrong install run, tmp and log dir - sed -i -e '/ install-data-hook/d;/install-data-hook:/d;/# Yes, you are correct. This is a HACK!/d; - / ( 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'\ - Makefile.{am,in} + sed -i '\|^$max_socket_tries = | s|3|15|; + ' web/ajax/stream.php + + # Patch for text + sed -i 's|if ( fwrite( buffer, n_bytes, 1, stdout ) )|if ( fwrite( buffer, n_bytes, 1, stdout ) != 1 )|; + ' src/zm_stream.cpp + + # Patch for remove HACK in Makefile.* + 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,in} + + # Patch + for _patch in ffmpeg gcrypt; do + patch -Np1 -F99 -i $srcdir/$pkgname-$pkgver-$_patch.patch + done +} + +build() { + cd $srcdir/ZoneMinder-$pkgver + + # ZM_RUNDIR need change to run dir + export CPPFLAGS="$CPPFLAGS -D__STDC_CONSTANT_MACROS"\ + OPT_FFMPEG=yes\ + PATH_FFMPEG=/usr/bin/ffmpeg\ + ZM_LOGDIR=/var/log/$pkgname\ + ZM_RUNDIR=/tmp/$pkgname\ + ZM_SSL_LIB=libgcrypt\ + ZM_TMPDIR=/tmp/$pkgname ./configure --prefix=/usr\ --enable-crashtrace=no\ @@ -156,41 +164,39 @@ build() { --sysconfdir=/etc\ --with-cgidir=/srv/http/cgi-bin\ --with-extralibs='-L/usr/lib -L/usr/lib/mysql'\ - --with-ffmpeg=/opt/libav-static\ + --with-ffmpeg=/usr\ --with-libarch=lib\ --with-mysql=/usr\ - --with-webdir=/srv/http/$pkgbase\ + --with-webdir=/srv/http/$pkgname\ --with-webgroup=http\ --with-webhost=localhost\ --with-webuser=http - make V=0 } package() { cd $srcdir/ZoneMinder-$pkgver - make DESTDIR=$pkgdir install - mkdir -p $pkgdir/{etc/{httpd/conf/extra,rc.d},srv/http/{cgi-bin,$pkgbase},usr/{lib/systemd/system,share/{license/$pkgbase,$pkgbase/db}},var/{cache/$pkgbase,log/$pkgbase}} - - chown -R http.http $pkgdir/{etc/zm.conf,var/{cache/$pkgbase,log/$pkgbase}} - chmod 0700 $pkgdir/etc/zm.conf + mkdir -vp $pkgdir/{etc/{httpd/conf/extra,sysctl.d},srv/http/{cgi-bin,$pkgname/socks},usr/{lib/systemd/system,share/{licenses/$pkgname,$pkgname/db}},var/{cache/$pkgname,log/$pkgname}} + chown -vR http.http $pkgdir/{etc/zm.conf,srv/http/$pkgname/socks,var/{cache/$pkgname,log/$pkgname}} + chmod -v 0700 $pkgdir/etc/zm.conf for i in events images temp; do - mv $pkgdir/srv/http/$pkgbase/$i $pkgdir/var/cache/$pkgbase/$i - ln -s /var/cache/$pkgbase/$i $pkgdir/srv/http/$pkgbase/$i - chown -h http.http $pkgdir/srv/http/$pkgbase/$i + mv -v $pkgdir/srv/http/$pkgname/$i $pkgdir/var/cache/$pkgname/$i + ln -vs /var/cache/$pkgname/$i $pkgdir/srv/http/$pkgname/$i + chown -vh http.http $pkgdir/srv/http/$pkgname/$i done - ln -s /srv/http/cgi-bin $pkgdir/srv/http/$pkgbase - chown -h http.http $pkgdir/srv/http/{cgi-bin,$pkgbase,$pkgbase/cgi-bin} + ln -vs /srv/http/cgi-bin $pkgdir/srv/http/$pkgname + chown -vh http.http $pkgdir/srv/http/{cgi-bin,$pkgname,$pkgname/cgi-bin} - ln -s /usr/share/cambozola/cambozola.jar $pkgdir/srv/http/$pkgbase + ln -vs /usr/share/cambozola/cambozola.jar $pkgdir/srv/http/$pkgname - install -D -m 644 $srcdir/httpd-$pkgbase.conf $pkgdir/etc/httpd/conf/extra - install -D -m 644 $srcdir/$pkgbase $pkgdir/etc/rc.d - install -D -m 644 $srcdir/$pkgbase.service $pkgdir/usr/lib/systemd/system - install -D -m 644 COPYING $pkgdir/usr/share/license/$pkgbase - install -D -m 644 db/zm*.sql $pkgdir/usr/share/$pkgbase/db + install -vDm644 $srcdir/httpd-$pkgname.conf $pkgdir/etc/httpd/conf/extra + install -vDm644 $srcdir/$pkgname.service $pkgdir/usr/lib/systemd/system + install -vDm644 $srcdir/sysctl-$pkgname.conf $pkgdir/etc/sysctl.d + install -vDm644 $srcdir/sysctl-$pkgname.conf $pkgdir/srv/http/$pkgname + install -vDm644 COPYING $pkgdir/usr/share/licenses/$pkgname + install -vDm644 db/zm*.sql $pkgdir/usr/share/$pkgname/db } |