diff options
Diffstat (limited to 'pcr/zoneminder/PKGBUILD')
-rw-r--r-- | pcr/zoneminder/PKGBUILD | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/pcr/zoneminder/PKGBUILD b/pcr/zoneminder/PKGBUILD new file mode 100644 index 000000000..bb850eec2 --- /dev/null +++ b/pcr/zoneminder/PKGBUILD @@ -0,0 +1,139 @@ +# Maintainer: Vojtech Aschenbrenner <v@asch.cz> +# Contributor: Jason Gardner <buhrietoe@gmail.com> +# Contributor: Ross melin <rdmelin@gmail.com> +# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> +# Contributor (Parabola): André Silva <emulatorman@lavabit.com> + +# based of debian squeeze package + +pkgname=zoneminder +pkgver=1.25.0 +pkgrel=17 +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) +url=http://www.$pkgname.com +license=(GPL) +depends=( + apache cambozola ffmpeg-static gnutls mysql 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 perl-x10 php php-apache php-gd php-mcrypt +) +makedepends=(netpbm) +install=$pkgname.install +source=( + http://www.$pkgname.com/downloads/ZoneMinder-$pkgver.tar.gz + httpd-zm.conf + zm.rc.d + $pkgname.service + patch-ffmpeg-0.11.patch +) +md5sums=( + eaefa14befd482154970541252aa1a39 + 25ad042b501aaad98cbe4e05ca0a96c2 + 034b61cda8849fc3001849e76ef26041 + 7487cc72ead82aea0bc78f2e4106ae1a + 81c8be870260142e2633eedf73c72040 +) +build() { + cd $srcdir/ZoneMinder-$pkgver + + export CPPFLAGS=-D__STDC_CONSTANT_MACROS \ + ZM_SSL_LIB=gnutls + + # Patch for GCC 4.7.x + sed -i -e 's/^#include <errno.h>/#include <errno.h>\n#include <unistd.h>/' src/zm_logger.cpp + sed -i -e 's/^#include <pthread.h>/#include <pthread.h>\n#include <unistd.h>/' src/zm_thread.h + + # 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 + + # 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 + + # Patch for wrong "suppported" + sed -i -e 's/suppported/supported/' src/zm_local_camera.cpp + + # 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 + + # 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 new ffmpeg + patch -p1 < $srcdir/patch-ffmpeg-0.11.patch +# sed -i -e 's/if ( av_open_input_file( \&mFormatContext, mPath.c_str(), NULL, 0, NULL ) !=0 )/if ( avformat_open_input( \&mFormatContext, mPath.c_str(), NULL, NULL ) !=0 )/; +# s/if ( avcodec_open( mCodecContext, mCodec ) < 0 )/if ( avcodec_open2( mCodecContext, mCodec, NULL ) < 0 )/'\ +# src/zm_ffmpeg_camera.cpp +# sed -i -e 's/if ( av_set_parameters(ofc, NULL) < 0 )/\/\*\n \* Removed in last ffmpeg\n \* if ( av_set_parameters(ofc, NULL) < 0 )/; +# /Panic( "Invalid output format parameters" );/,+1 s/}/}\*/; +# /if ( avio_open(&ofc->pb, filename, URL_WRONLY) < 0 )/ s/URL_WRONLY/AVIO_FLAG_WRITE/; +# s/av_write_header(ofc);/avformat_write_header(ofc, NULL);/'\ +# src/zm_mpeg.cpp + sed -i -e 's/avcodec_init/avcodec_open/'\ + 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} + + ./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 \ + --with-webuser=http + + make V=0 +} + +package() { + cd $srcdir/ZoneMinder-$pkgver + + make DESTDIR=$pkgdir 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}} + + chown -R http.http $pkgdir/{etc/zm.conf,var/{cache/$pkgname,log/zm}} + + 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 + 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 + + 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/$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 +} |