Date: Sun, 5 Jun 2016 18:47:54 +0000 (UTC) From: Kurt Jaeger <pi@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r416415 - in head/multimedia/zoneminder: . files Message-ID: <201606051847.u55Ilsbx025178@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pi Date: Sun Jun 5 18:47:54 2016 New Revision: 416415 URL: https://svnweb.freebsd.org/changeset/ports/416415 Log: multimedia/zoneminder: 1.25.0 -> 1.30.0 - submitter becomes maintainer - A huge list of changes since April 2013 can be found here: https://github.com/ZoneMinder/ZoneMinder/releases/ PR: 210007 Submitted by: bsd@abinet.ru Added: head/multimedia/zoneminder/files/patch-CMakeLists.txt (contents, props changed) head/multimedia/zoneminder/files/patch-misc_CMakeLists.txt (contents, props changed) head/multimedia/zoneminder/files/patch-scripts_CMakeLists.txt (contents, props changed) head/multimedia/zoneminder/files/patch-src_zm__signal.cpp (contents, props changed) Deleted: head/multimedia/zoneminder/files/extra-patch-scripts_ZoneMinder_lib_ZoneMinder_Memory.pm.in head/multimedia/zoneminder/files/patch-Makefile.in head/multimedia/zoneminder/files/patch-configure head/multimedia/zoneminder/files/patch-db_zm_create.sql.in head/multimedia/zoneminder/files/patch-scripts_zmpkg.pl.in head/multimedia/zoneminder/files/patch-src_Makefile.am head/multimedia/zoneminder/files/patch-src_zm-local-camera.cpp head/multimedia/zoneminder/files/patch-src_zm_comms.cpp head/multimedia/zoneminder/files/patch-src_zm_comms.h head/multimedia/zoneminder/files/patch-src_zm_event.cpp head/multimedia/zoneminder/files/patch-src_zm_event.h head/multimedia/zoneminder/files/patch-src_zm_ffmpeg_camera.cpp head/multimedia/zoneminder/files/patch-src_zm_local_camera.h head/multimedia/zoneminder/files/patch-src_zm_logger.cpp head/multimedia/zoneminder/files/patch-src_zm_monitor.cpp head/multimedia/zoneminder/files/patch-src_zm_mpeg.cpp head/multimedia/zoneminder/files/patch-src_zm_remote_camera.h head/multimedia/zoneminder/files/patch-src_zm_sdp.cpp head/multimedia/zoneminder/files/patch-src_zm_signal.h head/multimedia/zoneminder/files/patch-src_zm_stream.cpp head/multimedia/zoneminder/files/patch-src_zm_thread.h head/multimedia/zoneminder/files/patch-src_zmc.cpp head/multimedia/zoneminder/files/patch-src_zmu.cpp head/multimedia/zoneminder/files/patch-web-includes-functions.php head/multimedia/zoneminder/files/videodev.h head/multimedia/zoneminder/files/zm_fbsd_camera.cpp Modified: head/multimedia/zoneminder/Makefile head/multimedia/zoneminder/distinfo head/multimedia/zoneminder/files/README.FreeBSD head/multimedia/zoneminder/files/zoneminder.in head/multimedia/zoneminder/pkg-plist Modified: head/multimedia/zoneminder/Makefile ============================================================================== --- head/multimedia/zoneminder/Makefile Sun Jun 5 18:37:40 2016 (r416414) +++ head/multimedia/zoneminder/Makefile Sun Jun 5 18:47:54 2016 (r416415) @@ -1,146 +1,104 @@ -# Created by: bsam, based on ports by achix (1.23 & local camera stuff), # $FreeBSD$ PORTNAME= zoneminder -PORTVERSION= 1.25.0 -PORTREVISION= 7 +PORTVERSION= 1.30.0 +DISTVERSIONPREFIX=v +DISTVERSIONSUFFIX=-rc1 CATEGORIES= multimedia -MASTER_SITES= http://www2.zoneminder.com/downloads/ \ - http://www.zoneminder.com/downloads/ -DISTNAME= ZoneMinder-${PORTVERSION} -MAINTAINER= ports@FreeBSD.org +MAINTAINER= bsd@abinet.ru COMMENT= Complete security camera solution, fully web based with image analysis LICENSE= GPLv2 -BROKEN_powerpc64= Does not build - -RUN_DEPENDS= ${LOCALBASE}/bin/sudo:security/sudo -LIB_DEPENDS= libnetpbm.so:graphics/netpbm \ - libpcre.so:devel/pcre \ - libavutil0.so:multimedia/ffmpeg0 -BUILD_DEPENDS= p5-DBI>=0:databases/p5-DBI \ +ZM_DEPENDS= p5-DBI>=0:databases/p5-DBI \ p5-DBD-mysql>=0:databases/p5-DBD-mysql \ p5-Date-Manip>=0:devel/p5-Date-Manip \ - p5-libwww>=0:www/p5-libwww \ - p5-Archive-Zip>=0:archivers/p5-Archive-Zip \ - p5-Archive-Tar>=0:archivers/p5-Archive-Tar \ - p5-MIME-Lite>=0:mail/p5-MIME-Lite \ - p5-MIME-Tools>=0:mail/p5-MIME-Tools \ - ${LOCALBASE}/include/linux/videodev.h:multimedia/v4l_compat - -USES= jpeg perl5 shebangfix -GNU_CONFIGURE= yes -USE_PHP= json mysql session -USE_MYSQL= yes + p5-Test-LWP-UserAgent>=0:www/p5-Test-LWP-UserAgent \ + p5-Sys-Mmap>=0:devel/p5-Sys-Mmap \ + p5-LWP-Protocol-https>=0:www/p5-LWP-Protocol-https \ + p5-Sys-CPU>=0:devel/p5-Sys-Cpu \ + p5-Sys-MemInfo>=0:devel/p5-Sys-MemInfo \ + p5-Data-Dump>=0:devel/p5-Data-Dump \ + p5-SOAP-WSDL>=0:devel/p5-SOAP-WSDL \ + p5-Data-UUID>=0:devel/p5-Data-UUID \ + p5-IO-Socket-Multicast>=0:net/p5-IO-Socket-Multicast \ + ffmpeg:multimedia/ffmpeg +BUILD_DEPENDS= ${ZM_DEPENDS} +RUN_DEPENDS= ${ZM_DEPENDS} \ + sudo:security/sudo \ + zip:archivers/zip + +USE_GITHUB= yes +GH_ACCOUNT= FriendsOfCake:crud +GH_PROJECT= crud:crud +GH_TAGNAME= c3976f1:crud + +WRKSRC= ${WRKDIR}/ZoneMinder-${DISTVERSION}${DISTVERSIONSUFFIX} + +USES= cmake jpeg mysql perl5 shebangfix USE_RC_SUBR= zoneminder -USE_GCC= any -USE_PERL5= run build -IGNORE_WITH_PHP= 70 - -CFLAGS+= -I${LOCALBASE}/include/ffmpeg0 -I${LOCALBASE}/include -LDFLAGS+= -L${LOCALBASE}/lib/ffmpeg0 -CONFIGURE_ARGS= --with-mysql=${LOCALBASE} \ - --with-webdir=${WWWDIR}/data \ - --with-cgidir=${WWWDIR}/cgi-bin \ - --with-webgroup=${WWWGRP} \ - --with-webuser=${WWWOWN} \ - --enable-crashtrace=no \ - --with-ffmpeg=${LOCALBASE} \ - --enable-mmap=no \ - --with-extralibs=-lpthread - -CONFIGURE_ENV= ZM_DB_HOST=${DB_HOST} \ - ZM_DB_NAME=${DB_NAME} \ - ZM_DB_USER=${DB_USER} \ - ZM_DB_PASS=${DB_PASS} \ - ZM_SSL_LIB="openssl" \ - ZM_LOGDIR=${M_LOGDIR} \ - ZM_RUNDIR=${M_RUNDIR} \ - ZM_TMPDIR=${M_TMPDIR} - -DB_HOST?= localhost -DB_NAME?= zm -DB_USER?= zmuser -DB_PASS?= zmpass - -# -# These variables default to to the defaults specified in the -# original distributed ZoneMinder/configure.ac -# -M_LOGDIR?= /var/log/zm -M_RUNDIR?= /var/run/zm -M_TMPDIR?= /tmp/zm - -PLIST_SUB= ZM_LOGDIR=${M_LOGDIR} \ - ZM_RUNDIR=${M_RUNDIR} \ - ZM_TMPDIR=${M_TMPDIR} \ - WEB_USER=${WWWOWN} \ - WEB_GROUP=${WWWGRP} - -SHEBANG_FILES= scripts/zmdc.pl.in \ - scripts/zmaudit.pl.in \ - scripts/zmfilter.pl.in \ - scripts/zmtrigger.pl.in \ - scripts/zmx10.pl.in \ - scripts/zmwatch.pl.in \ - scripts/zmpkg.pl.in \ - scripts/zmupdate.pl.in \ - scripts/zmvideo.pl.in \ - scripts/zmcontrol.pl.in \ - scripts/zmtrack.pl.in - -PORTDOCS= AUTHORS \ - COPYING \ - ChangeLog \ - INSTALL \ - NEWS \ - README \ - README.FreeBSD \ - TODO - -.include <bsd.port.pre.mk> - -.if ${ARCH}=="i386" -EXTRA_PATCHES+= ${FILESDIR}/extra-patch-scripts_ZoneMinder_lib_ZoneMinder_Memory.pm.in -.endif - -post-configure: - -post-patch: - ${REINPLACE_CMD} -e 's,/bin:/usr/bin,/bin:/usr/bin:${LOCALBASE}/bin,g' ${WRKSRC}/scripts/*.pl.in - ${REINPLACE_CMD} -e 's,sudo,${LOCALBASE}/bin/sudo,g' ${WRKSRC}/scripts/zmpkg.pl.in - ${REINPLACE_CMD} \ - -e 's," == "," = ",g' \ - -e 's,lavcodec,lavcodec0,g' \ - -e 's,lavformat,lavformat0,g' \ - -e 's,lavutil,lavutil0,g' \ - -e 's,lavdevice,lavdevice0,g' \ - -e 's,lswscale,lswscale0,g' \ - -e 's,^FFMPEG_CFLAGS=.*,,g' \ - ${WRKSRC}/configure - ${REINPLACE_CMD} -e 's,ZM_V4L2,ZM_HAS_V4L2,g' ${WRKSRC}//web/skins/classic/views/monitorprobe.php - ${REINPLACE_CMD} -e 's,chown,true chown,g' ${WRKSRC}/Makefile.in \ - ${WRKSRC}/src/Makefile.in ${WRKSRC}/web/Makefile.in +PHP= json pdo_mysql session +IGNORE_WITH_PHP=70 + +OPTIONS_DEFINE= NLS V4L DOCS +OPTIONS_SUB= yes +NLS_USES= gettext +NLS_CONFIGURE_ENABLE= nls +V4L_BUILD_DEPENDS= ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat +V4L_LIB_DEPENDS= libv4l2.so:multimedia/libv4l +OPTIONS_DEFAULT= NLS + +PLIST_SUB= WWWOWN="${WWWOWN}" WWWGRP="${WWWGRP}" + +SHEBANG_FILES= scripts/zmaudit.pl.in \ + scripts/zmcamtool.pl.in \ + scripts/zmcontrol.pl.in \ + scripts/zmdc.pl.in \ + scripts/zmfilter.pl.in \ + scripts/zmpkg.pl.in \ + scripts/zmtelemetry.pl.in \ + scripts/zmtrack.pl.in \ + scripts/zmtrigger.pl.in \ + scripts/zmupdate.pl.in \ + scripts/zmvideo.pl.in \ + scripts/zmwatch.pl.in \ + scripts/zmx10.pl.in \ + onvif/scripts/zmonvif-probe.pl + +PORTDOCS= AUTHORS BUGS ChangeLog INSTALL NEWS README.FreeBSD TODO + +CMAKE_ARGS+= -DZM_PERL_MM_PARMS=INSTALLDIRS=site \ + -DZM_CONFIG_DIR=${PREFIX}/etc \ + -DZM_WEBDIR=${WWWDIR} \ + -DZM_CGIDIR=${WWWDIR}/cgi-bin \ + -DZM_CONTENTDIR=${WWWDIR} \ + -DHAVE_SENDFILE=0 \ + -DCMAKE_REQUIRED_INCLUDES:STRING="${LOCALBASE}/include" PKGMESSAGE= ${WRKDIR}/pkg-message -pre-build: - ${CP} ${FILESDIR}/videodev.h ${WRKSRC}/src - ${CP} ${FILESDIR}/zm_fbsd_camera.cpp ${WRKSRC}/src - ${TOUCH} ${WRKSRC}/src/zm_fbsd_camera.h + +post-extract: + ${CP} -R ${WRKSRC_crud}/* ${WRKSRC}/web/api/app/Plugin/Crud ${CP} ${FILESDIR}/README.FreeBSD ${WRKSRC} - ${CP} ${FILESDIR}/README.FreeBSD ${PKGMESSAGE} + ${CP} ${FILESDIR}/README.FreeBSD ${PKGMESSAGE} + ${REINPLACE_CMD} -e 's|/dev/shm|/tmp|g' ${WRKSRC}/scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in + ${REINPLACE_CMD} -e 's|E_ALL|E_ALL^E_NOTICE|g' ${WRKSRC}/web/index.php + ${REINPLACE_CMD} -e 's|sizeof(loc_addr.sun_family))+1|sizeof(loc_addr.sun_family)+1)|g' ${WRKSRC}/src/zm_stream.cpp + +pre-install: + ${MKDIR} ${STAGEDIR}${WWWDIR}/images + ${MKDIR} ${STAGEDIR}${WWWDIR}/events + ${MKDIR} ${STAGEDIR}${WWWDIR}/temp + ${MKDIR} ${STAGEDIR}${WWWDIR}/api/app/tmp + ${MKDIR} ${STAGEDIR}/var/run/zm + ${MKDIR} ${STAGEDIR}/var/tmp/zm post-install: - ${MV} ${STAGEDIR}${PREFIX}/etc/zm.conf ${STAGEDIR}${PREFIX}/etc/zm.conf.sample + ${INSTALL_DATA} ${STAGEDIR}${PREFIX}/etc/zm.conf ${STAGEDIR}${PREFIX}/etc/zm.conf.sample + +post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} - ${CP} ${WRKSRC}/db/zm_create.sql ${STAGEDIR}${DOCSDIR} -.for i in ${PORTDOCS} - ${INSTALL_DATA} ${WRKSRC}/$i ${STAGEDIR}${DOCSDIR} -.endfor - ${MKDIR} -p ${STAGEDIR}${M_TMPDIR} - ${MKDIR} -p ${STAGEDIR}${M_RUNDIR} - ${MKDIR} -p ${STAGEDIR}${M_LOGDIR} + cd ${WRKSRC} && ${INSTALL_MAN} ${PORTDOCS} ${STAGEDIR}${DOCSDIR} -.include <bsd.port.post.mk> +.include <bsd.port.mk> Modified: head/multimedia/zoneminder/distinfo ============================================================================== --- head/multimedia/zoneminder/distinfo Sun Jun 5 18:37:40 2016 (r416414) +++ head/multimedia/zoneminder/distinfo Sun Jun 5 18:47:54 2016 (r416415) @@ -1,2 +1,5 @@ -SHA256 (ZoneMinder-1.25.0.tar.gz) = ec63ef47d8f4cb8af21a3bc84ff1de6968805146682dd7f10982bde975d9bb5d -SIZE (ZoneMinder-1.25.0.tar.gz) = 1119091 +TIMESTAMP = 1464895954 +SHA256 (zoneminder-zoneminder-v1.30.0-rc1_GH0.tar.gz) = 22d2d80c473b1c00fb36fb70bf352cf72601fc839fcefe87ffa4f5fd5bd5e853 +SIZE (zoneminder-zoneminder-v1.30.0-rc1_GH0.tar.gz) = 9373740 +SHA256 (FriendsOfCake-crud-c3976f1_GH0.tar.gz) = 7dfa29dd6dd95f05bca61bb05033f813828b7ab66f9d8793d306df0dd72471ce +SIZE (FriendsOfCake-crud-c3976f1_GH0.tar.gz) = 72961 Modified: head/multimedia/zoneminder/files/README.FreeBSD ============================================================================== --- head/multimedia/zoneminder/files/README.FreeBSD Sun Jun 5 18:37:40 2016 (r416414) +++ head/multimedia/zoneminder/files/README.FreeBSD Sun Jun 5 18:47:54 2016 (r416415) @@ -1,216 +1,169 @@ -== Origin == -This port project started its life based on quadra's original port for -version 1.19.2. Brooktree (bktr) video input support code written by -quadra is virtually unchanged in this port other than some function -argument changes to match the latest ZoneMinder version (1.22.3). -Although this code compiles, I have not tested its functionality. -Currently, I only have two Axis 206 network cameras, which work fine, -but I have not tested the set up with any other camera -configurations. - -I have tested this port on FreeBSD 5.5 (i386) as well as FreeBSD 6.2 -(i386) without any problems. - -== Preparation == - -* Download the port (zoneminder-freebsd-port-1.22.3p[version].tgz) -* Become root and 'cd' to /usr/ports/multimedia/ -* Extract the port files. You know how to do 'tar zxf' right? - -You should now have /usr/ports/multimedia/zoneminder/ - -Now, go to the directory and look at files/patch-SharedMem.pm - -What this patch does is to hard-wire native size to 4 (32-bits). -On FreeBSD, Perl is configured with -Duse64bitint by default and the -method that is used by SharedMem.pm to determine architectural bit -width incorrectly considers an i386 machine as 64-bit capable. I'm -not a perl expert -- in fact, I hate perl -- and I really have no -idea how to properly determine pointer size in Perl, so this patch -exists. Obviously, if you are running FreeBSD-AMD64 (or Alpha or -something, although I have no idea if this software would work on -that architecture), you will want to get rid of this patch file. -Just delete it _before_ you make. - -And if you're bored, feel free to go through all the patch files just -marvelling at all the trouble I had to go through ^_^; - -Now that we've gotten that little quirk out of the way, we'll move on -to Makefile. Open Makefile using your favorite text editor and modify -the following items if they're not suitable for you. - -* WWWDIR : This is where your web server will serve from. If you - already have apache installed, you should point this to the same - place where apache thinks is the web base. Default is - /usr/local/www, as can be seen in the Makefile. -* ZM_DB_HOST : This is where mysql server runs. If you're running - mysql server on a different machine, you'll want to update this - line, but I'm not sure if you can avoid installing mysql on this - machine. Disk space is cheap, so I don't think it's that big a deal - having mysql just sitting there, as long as it's not started. -* ZM_DB_NAME : This is the database name that ZoneMinder will use. - I'm pretty sure ZoneMinder won't mind sharing a base database with - other applications, but it certainly doesn't hurt to let it have its - own database space, so this defaults to "zm" -* ZM_DB_USER and ZM_DB_PASS are username and password for the - database. - -We're almost ready to "make," but first, consider the following points -and just imagine how things can break based on your situation. - -* If you do not have apache installed, this port will install version - 1.xx.xx of apache. On the other hand, if you already have apache - 2.xx.xx installed, I do not know what will happen. My guess is that - things will work just fine since php5 port will see apache2 - installation and skip apache1 installation. -* If you have mysql version other than 5.0.xx installed, this port - build will probably fail. Even if it doesn't fail, you probably do - not want multiple versions of mysql installed on your machine. You - can either edit the dependency in the Makefile to point to your - version of mysql, or get rid of the dependency statement for mysql. - Getting rid of it is not as nice, but I'm sure you're able to keep - the dependencies in mind when messing around with ports in the - future. -* If you have PHP4 installed, you should modify the dependencies in - the Makefile to point to php4-extensions instead of - php5-extensions. I know for a fact that both versions work fine - with ZoneMinder. -* I have not set up dependencies for perl modules Device::SerialPort - and X10::ActiveHome because I do not have PTZ camera and my X10 is - handled by another dedicated machine. If you want this, you'll want - to tinker with the port some more. You can also manually install - those ports (if they exist) before doing make. I imagine - ZoneMinder's configure script will pick them up. - -That's about it. Let's make! - -== Making == - -There's really nothing special about making. Just 'make' will do. -However, during the dependency builds, make sure PHP install includes -the apache module. If you already have PHP installed without apache -module, you can always tinker with the Makefile in -/usr/ports/lang/php5/ and do 'make deinstall' followed by 'make -reinstall' to reinstall the port with additional modules. - -If the build fails, take a deep breath, yell at your computer for -a moment, and try to figure out if you messed up anything while -changing the Makefile in one of the above steps. If you do not -believe you've done anything wrong and still can't figure out why -the build fails, there's always the forum.... - -If it builds fine, feel free to 'make install' - -However, do NOT 'make clean' yet! - -== Seeding the database == - -If this is the first time installing ZoneMinder, you'll need to seed -the mysql database with ZoneMinder's configuration information. To do -this, follow these steps as a root user. - -First, if this is the first time mysql was installed, you'll want to -consider where you want the database files to reside. Default is -/var/db/mysql/ but you may have set up a dedicated partition for it. -If you want to change it, just put the following line in /etc/rc.conf - -* mysql_dbdir="/somewhere/else/you/want" - -Obviously, you'll want this line in there, too: - -* mysql_enable="YES" - -Now, start the sucker up. - -shell> /usr/local/etc/rc.d/mysql-server start - -Assuming it started fine, give it a few seconds and then continue. -Note that you should be at /usr/ports/multimedia/zoneminder/ for the -following steps. - -shell> mysql -h localhost -u root -p - -This will ask for a password. Just press enter to go with an empty -password. You should now be in mysql command line interface. - -mysql> source work/ZoneMinder-1.22.3/db/zm_create.sql - -Above runs bunch of SQL commands from the file, seeding the -database. - -mysql> grant select,insert,update,delete on zm.* to 'zmuser'@localhost identified by 'zmpass'; flush privileges; - -Above sets up permissions. Note that if you changed database name, -user name, or password in the Makefile, you'll need to modify above -command accordingly. - -mysql> quit - -That one should be obvious to you. - -== Post-Installation Quirks == - -PHP5 installation does not necessarily set up the apache configuration -file properly. You will want to make sure that following lines are in -apache configuration file, /usr/local/etc/apache/httpd.conf - -* AddType application/x-httpd-php .php -* AddType application/x-httpd-php-source .phps - -While you're at it, you might also want to check that following line -is in the configuration file. - -* LoadModule php5_module libexec/apache/libphp5.so - -== Automatic Execution at Boot == - -Obviously, if this is to be used as a security device, you'll want it -to start automatically on a reboot. Again obviously, you need to have -both apache and mysql start up as well, unless of course, you're -running mysql on a remote machine. If you are, I'm sure you're an -expert at this stuff already. - -Add following lines into /etc/rc.conf, if not already present. Order -is not important. - -* apache_enable="YES" -* mysql_enable="YES" -* zm_enable="YES" - -Just for your information, I had to put 'sleep 10' in ZoneMinder -startup script because mysql port does not become available -immediately after mysql startup script finishes. - -== More Quirks == - -Depending on the number of cameras and their resolution settings, you -may need a lot more shared memory than provided by a default kernel. -If you've never built a custom kernel before, umm, time for you to -read the FreeBSD Handbook. It can be found at -/usr/share/doc/handbook/index.html or at http://freebsd.org/ - -For the rest of you, just add a reasonable-looking version of the -following lines into your kernel configuration file and go though the -buildkernel, installkernel process. - -* options SHMMAXPGS=65536 -* options SHMMNI=384 -* options SHMSEG=256 - -I think above gives maximum of 256MB of shared memory. SHMMNI -statement probably isn't required since ZoneMinder probably creates -one big instance per camera instead of many little instances. I'm not -sure about the last one. Whatever the case, above works for me with -two Axis 206 cameras. - -Adding the following line into /etc/sysctl.conf may speed up the -shared memory accesses, so even though it's not required, it's -probably a good idea. - -* kern.ipc.shm_use_phys=1 - -== Modify php.ini === -Change in php.ini short_open_tag to On (short_open_tag = On) - -That's all folks! +ZoneMinder is a free, open source Closed-circuit television software +application developed for Unix-like operating systems which supports +IP, USB and Analog cameras. + +New installs +============ + +ZoneMinder requires a MySQL (or MySQL forks) database backend and +a http server, capable to execute PHP and CGI scripts. + +To simplify things, we assume, that you use MySQL and NGINX on +the same server. + +1. Preliminary steps + +1.1 Install databases/mysql56-server + You may choose your favourite method - ports or packages here. + FreeBSD default setting use STRICT_TRANS_TABLES sql_mode. It's mandatory to disable it. Edit your my.cnf or create new in /var/db/mysql + + The following example works with ZoneMinder quite well + + [server] + skip-networking + skip-name-resolve + innodb_flush_method = O_DIRECT + skip-innodb_doublewrite + innodb_file_per_table + + ZoneMinder use very simple queries, however it tends to write to + the database quite a lot depending on your capture mode and number + of cameras. So tweak your MySQL instance accordantly + + Now, enable and start MySQL + sysrc mysql_server_enable="YES" + service mysql-server start + +1.2 Install www/nginx + We provide an example for an HTTP install, however, you should use + HTTPS if you plan to expose your installation to the public. There + are plenty guides how to do it and security/letsencrypt.sh is a + good way to get a valid SSL certificate. + + Your server block should include the following: + + server { + root /usr/local/www/zoneminder; + try_files $uri $uri/ /index.php$is_args$args; + index index.php; + + location = /cgi-bin/nph-zms { + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.sock; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_pass unix:/var/run/php-fpm.sock; + } + + location /api { + rewrite ^/api/(.+)$ /api/index.php?p=$1 last; + } + } + +1.2.1 ZoneMinder has it's own authentication system, however it's recommend to use NGINX basic + auth over HTTPS if you don't need fine grain control to ZoneMinder components. + +1.2.2 If you choose ZoneMinder authentication, it's recommended to prohibit access to + image and events folder as it's possible to guess file names inside it. + + location ~ ^/(?:images|events)/ { + deny all; + } + + Enable and start NGINX + sysrc nginx_enable="YES" + service nginx start + +1.3 Install www/fcgiwrap + As NGINX lacks it's own CGI wrapper, we need external one. Please + note that ZoneMinder's montage page use simultaneous access to all + cameras, so you need to use at least as many fcgiwrap workers as + your number of cameras. The following example assumes you have 4. + + Enable and start FcgiWrap + sysrc fcgiwrap_enable="YES" + sysrc fcgiwrap_user="www" + sysrc fcgiwrap_flags="-c 4" + +1.4 PHP is installed as a dependency to ZoneMinder. However, you should + tweak some of it's settings. + Edit /usr/local/etc/php-fpm.conf and set + + listen = /var/run/php-fpm.sock + listen.owner = www + listen.group = www + env[PATH] = /usr/local/bin:/usr/bin:/bin + + If you want to set another path for the socket file, make sure you + change it in your NGINX config well. The env[PATH] needs to be set + to locate the zip utility as ZoneMinder's export functions rely on + exec(). Sorry, chroot folks. + + PHP throws warning if date.timezone option is not set. The best place + to do it is an ini file in /usr/local/etc/php + + date.timezone = "UTC" + + Enable and start php-fpm + sysrc php_fpm_enable="YES" + service php-fpm start + +1.5 ZoneMinder constantly keeps the last N frames from its cameras to + preserve them when alarm occurs. This can be a performance hog if + placed on spindle drive. The best practice is put it on tmpfs. + See https://www.freebsd.org/cgi/man.cgi?query=tmpfs for more + information. + + ZoneMinder will use /tmp for default. If you plan to change it, see + ZM_PATH_MAP setting. + + Mapping /tmp to tmpfs is actually a recommended step under FreeBSD. + Edit /etc/fstab and add the following: + + tmpfs /tmp tmpfs rw,nosuid,mode=01777 0 0 + + The size of temporary files depends on your number of cameras + number and frames you plan to keep. My 12 3Mbit cameras with 25 + last frames consumes 6 GB. + +2. ZoneMinder installation + + Connect to MySQL under root and create zm user and populate database. + + mysql -u root -p + + CREATE DATABASE zm; + GRANT ALL PRIVILEGES ON zm.* TO 'zmuser'@'localhost' IDENTIFIED BY 'zmpass'; + FLUSH PRIVILEGES; + quit; + + mysql -u root -p zm < /usr/local/share/zoneminder/db/zm_create.sql + +2.1 If you have chosen to change the ZoneMinder MySQL credentials to something + other than zmuser/zmpass then you must now edit /usr/local/etc/zm.conf. Change + ZM_DB_USER and ZM_DB_PASS to the values you created in the previous step. + + Additionally, you must also edit + /usr/local/www/zoneminder/api/app/Config/database.php in a similar + manner. Scroll down and change login and password to the values you created in the previous step. + + Enable and start ZoneMinder + sysrc zoneminder_enable="YES" + service zoneminder start + +Upgrades +======== + +1. Stop ZoneMinder + service zoneminder stop + +2. Upgrade database + sudo -u www zmupdate.pl + +3. Start ZoneMinder + service zoneminder start Added: head/multimedia/zoneminder/files/patch-CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/zoneminder/files/patch-CMakeLists.txt Sun Jun 5 18:47:54 2016 (r416415) @@ -0,0 +1,32 @@ +--- CMakeLists.txt.orig 2016-06-01 00:41:17 UTC ++++ CMakeLists.txt +@@ -385,13 +385,13 @@ find_library(MYSQLCLIENT_LIBRARIES mysql + if(MYSQLCLIENT_LIBRARIES) + set(HAVE_LIBMYSQLCLIENT 1) + list(APPEND ZM_BIN_LIBS "${MYSQLCLIENT_LIBRARIES}") +- find_path(MYSQLCLIENT_INCLUDE_DIR mysql/mysql.h) ++ find_path(MYSQLCLIENT_INCLUDE_DIR mysql.h /usr/local/include/mysql /usr/include/mysql) + if(MYSQLCLIENT_INCLUDE_DIR) + include_directories("${MYSQLCLIENT_INCLUDE_DIR}") + set(CMAKE_REQUIRED_INCLUDES "${MYSQLCLIENT_INCLUDE_DIR}") + endif(MYSQLCLIENT_INCLUDE_DIR) + mark_as_advanced(FORCE MYSQLCLIENT_LIBRARIES MYSQLCLIENT_INCLUDE_DIR) +- check_include_file("mysql/mysql.h" HAVE_MYSQL_H) ++ check_include_file("mysql.h" HAVE_MYSQL_H) + if(NOT HAVE_MYSQL_H) + message(FATAL_ERROR + "ZoneMinder requires MySQL headers - check that MySQL development packages are installed") +@@ -658,13 +658,6 @@ endif(NOT ZM_WEB_GROUP) + message(STATUS "Using web user: ${ZM_WEB_USER}") + message(STATUS "Using web group: ${ZM_WEB_GROUP}") + +-# Check for polkit +-find_package(Polkit) +-if(NOT POLKIT_FOUND) +- message(FATAL_ERROR +- "Running ZoneMinder requires polkit. Building ZoneMinder requires the polkit development package.") +-endif(NOT POLKIT_FOUND) +- + # Some variables that zm expects + set(ZM_PID "${ZM_RUNDIR}/zm.pid") + set(ZM_CONFIG "${ZM_CONFIG_DIR}/zm.conf") Added: head/multimedia/zoneminder/files/patch-misc_CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/zoneminder/files/patch-misc_CMakeLists.txt Sun Jun 5 18:47:54 2016 (r416415) @@ -0,0 +1,12 @@ +--- misc/CMakeLists.txt.orig 2016-06-01 00:41:17 UTC ++++ misc/CMakeLists.txt +@@ -13,6 +13,7 @@ configure_file(zoneminder-tmpfiles.conf. + #install(FILES "${CMAKE_CURRENT_BINARY_DIR}/apache.conf" "${CMAKE_CURRENT_BINARY_DIR}/logrotate.conf" "${CMAKE_CURRENT_BINARY_DIR}/syslog.conf" DESTINATION "${CMAKE_INSTALL_DATADIR}/zoneminder/misc") + + # Install Policykit rules and actions into the proper folders +-install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.zoneminder.systemctl.policy" DESTINATION "${PC_POLKIT_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/polkit-1/actions") +-install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.zoneminder.systemctl.rules" DESTINATION "${PC_POLKIT_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/polkit-1/rules.d") ++# polkit is not required for FreeBSD ++#install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.zoneminder.systemctl.policy" DESTINATION "${PC_POLKIT_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/polkit-1/actions") ++#install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.zoneminder.systemctl.rules" DESTINATION "${PC_POLKIT_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/polkit-1/rules.d") + Added: head/multimedia/zoneminder/files/patch-scripts_CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/zoneminder/files/patch-scripts_CMakeLists.txt Sun Jun 5 18:47:54 2016 (r416415) @@ -0,0 +1,11 @@ +--- scripts/CMakeLists.txt.orig 2016-06-01 00:41:17 UTC ++++ scripts/CMakeLists.txt +@@ -32,7 +32,7 @@ FOREACH(PERLSCRIPT ${perlscripts}) + ENDFOREACH(PERLSCRIPT ${perlscripts}) + + # Install the perl scripts +-install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zmaudit.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmcontrol.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmdc.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmfilter.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmpkg.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmtrack.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmtrigger.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmupdate.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmvideo.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmwatch.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmcamtool.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmsystemctl.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmtelemetry.pl" DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) ++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zmaudit.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmcontrol.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmdc.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmfilter.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmpkg.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmtrack.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmtrigger.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmupdate.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmvideo.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmwatch.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmcamtool.pl" "${CMAKE_CURRENT_BINARY_DIR}/zmtelemetry.pl" DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + if(NOT ZM_NO_X10) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zmx10.pl" DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif(NOT ZM_NO_X10) Added: head/multimedia/zoneminder/files/patch-src_zm__signal.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/zoneminder/files/patch-src_zm__signal.cpp Sun Jun 5 18:47:54 2016 (r416415) @@ -0,0 +1,20 @@ +--- src/zm_signal.cpp.orig 2016-06-01 00:41:17 UTC ++++ src/zm_signal.cpp +@@ -63,17 +63,9 @@ RETSIGTYPE zm_die_handler(int signal) + ucontext_t *uc = (ucontext_t *) context; + cr2 = info->si_addr; + #if defined(__x86_64__) +- #ifdef __FreeBSD_kernel__ + ip = (void *)(uc->uc_mcontext.mc_rip); +- #else +- ip = (void *)(uc->uc_mcontext.gregs[REG_RIP]); +- #endif + #else +- #ifdef __FreeBSD_kernel__ + ip = (void *)(uc->uc_mcontext.mc_eip); +- #else +- ip = (void *)(uc->uc_mcontext.gregs[REG_EIP]); +- #endif + #endif // defined(__x86_64__) + + // Print the signal address and instruction pointer if available Modified: head/multimedia/zoneminder/files/zoneminder.in ============================================================================== --- head/multimedia/zoneminder/files/zoneminder.in Sun Jun 5 18:37:40 2016 (r416414) +++ head/multimedia/zoneminder/files/zoneminder.in Sun Jun 5 18:47:54 2016 (r416415) @@ -1,54 +1,38 @@ #!/bin/sh - +# # $FreeBSD$ # # PROVIDE: zoneminder -# REQUIRE: mysql apache +# REQUIRE: LOGIN mysql # KEYWORD: shutdown # -# Add the following line to /etc/rc.conf.local or /etc/rc.conf +# Add these lines to /etc/rc.conf.local or /etc/rc.conf # to enable this service: # -# zoneminder_enable (bool): Set to NO by default. -# Set it to YES to enable zoneminder. +# zoneminder_enable (bool): Set to NO by default. +# Set it to YES to enable zoneminder. . /etc/rc.subr -name="zoneminder" +name=zoneminder rcvar=zoneminder_enable -load_rc_config "$name" +load_rc_config $name + : ${zoneminder_enable="NO"} command=%%PREFIX%%/bin/zmpkg.pl -command_args="$1" pidfile=/var/run/zm/zm.pid +extra_commands="logrot version" -start_precmd=zm_prestart -stop_cmd="zm_stop" -status_cmd="zm_status" - -zm_stop() { - ${command} ${command_args} -} - -zm_status() { - %%PREFIX%%/bin/zmdc.pl status -} - -zm_prestart() { -local _count=0 - - while : ; do - echo "USE zm; SELECT Username from Users where Id=1;" | \ - %%LOCALBASE%%/bin/mysqltest -u root zm > /dev/null 2>&1 && return - _count=$(( $_count + 1 )) - if [ $_count -gt 10 ]; then - err 1 "${name}: mysqltest command failed" - fi +start_cmd="zm_cmd" +stop_cmd="zm_cmd" +status_cmd="zm_cmd" +logrot_cmd="zm_cmd" +version_cmd="zm_cmd" - sleep 1 - done +zm_cmd() { + ${command} ${rc_arg} } run_rc_command "$1" Modified: head/multimedia/zoneminder/pkg-plist ============================================================================== --- head/multimedia/zoneminder/pkg-plist Sun Jun 5 18:37:40 2016 (r416414) +++ head/multimedia/zoneminder/pkg-plist Sun Jun 5 18:47:54 2016 (r416415) @@ -1,13 +1,14 @@ bin/zma bin/zmaudit.pl bin/zmc +bin/zmcamtool.pl bin/zmcontrol.pl bin/zmdc.pl bin/zmf bin/zmfilter.pl -bin/zmfix +bin/zmonvif-probe.pl bin/zmpkg.pl -bin/zmstreamer +bin/zmtelemetry.pl bin/zmtrack.pl bin/zmtrigger.pl bin/zmu @@ -15,51 +16,3001 @@ bin/zmupdate.pl bin/zmvideo.pl bin/zmwatch.pl bin/zmx10.pl -@sample(,,600) etc/zm.conf.sample -%%DOCSDIR%%/zm_create.sql -%%PERL5_MAN3%%/ZoneMinder.3.gz -%%PERL5_MAN3%%/ZoneMinder::Base.3.gz -%%PERL5_MAN3%%/ZoneMinder::Config.3.gz -%%PERL5_MAN3%%/ZoneMinder::ConfigAdmin.3.gz -%%PERL5_MAN3%%/ZoneMinder::ConfigData.3.gz -%%PERL5_MAN3%%/ZoneMinder::Control.3.gz -%%PERL5_MAN3%%/ZoneMinder::Control::AxisV2.3.gz -%%PERL5_MAN3%%/ZoneMinder::Control::Ncs370.3.gz -%%PERL5_MAN3%%/ZoneMinder::Control::PanasonicIP.3.gz -%%PERL5_MAN3%%/ZoneMinder::Control::PelcoD.3.gz -%%PERL5_MAN3%%/ZoneMinder::Control::Visca.3.gz -%%PERL5_MAN3%%/ZoneMinder::Control::mjpgStreamer.3.gz -%%PERL5_MAN3%%/ZoneMinder::Database.3.gz -%%PERL5_MAN3%%/ZoneMinder::General.3.gz -%%PERL5_MAN3%%/ZoneMinder::Logger.3.gz -%%PERL5_MAN3%%/ZoneMinder::Memory.3.gz -%%PERL5_MAN3%%/ZoneMinder::Trigger::Channel.3.gz -%%PERL5_MAN3%%/ZoneMinder::Trigger::Channel::File.3.gz -%%PERL5_MAN3%%/ZoneMinder::Trigger::Channel::Handle.3.gz -%%PERL5_MAN3%%/ZoneMinder::Trigger::Channel::Inet.3.gz -%%PERL5_MAN3%%/ZoneMinder::Trigger::Channel::Serial.3.gz -%%PERL5_MAN3%%/ZoneMinder::Trigger::Channel::Spawning.3.gz -%%PERL5_MAN3%%/ZoneMinder::Trigger::Channel::Unix.3.gz -%%PERL5_MAN3%%/ZoneMinder::Trigger::Connection.3.gz -%%PERL5_MAN3%%/ZoneMinder::Trigger::Connection::Example.3.gz +@sample etc/zm.conf.sample +%%SITE_PERL%%/ONVIF/Analytics/Attributes/actor.pm +%%SITE_PERL%%/ONVIF/Analytics/Attributes/contentType.pm +%%SITE_PERL%%/ONVIF/Analytics/Attributes/encodingStyle.pm +%%SITE_PERL%%/ONVIF/Analytics/Attributes/expectedContentTypes.pm +%%SITE_PERL%%/ONVIF/Analytics/Attributes/mustUnderstand.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/AudioDecoderConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/AudioEncoderConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/AudioOutputConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/AudioSourceConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/Body.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/Capabilities.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/CreateAnalyticsModules.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/CreateAnalyticsModulesResponse.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/CreateRules.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/CreateRulesResponse.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/DeleteAnalyticsModules.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/DeleteAnalyticsModulesResponse.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/DeleteRules.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/DeleteRulesResponse.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/Envelope.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/Fault.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/GetAnalyticsModules.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/GetAnalyticsModulesResponse.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/GetRules.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/GetRulesResponse.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/GetServiceCapabilities.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/GetServiceCapabilitiesResponse.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/GetSupportedAnalyticsModules.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/GetSupportedAnalyticsModulesResponse.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/GetSupportedRules.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/GetSupportedRulesResponse.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/Header.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/Include.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/Message.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/MetadataConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/MetadataStream.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/ModifyAnalyticsModules.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/ModifyAnalyticsModulesResponse.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/ModifyRules.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/ModifyRulesResponse.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/PTZConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/Polygon.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/Polyline.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/VideoAnalyticsConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/VideoEncoderConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Elements/VideoSourceConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Interfaces/Analytics/AnalyticsEnginePort.pm +%%SITE_PERL%%/ONVIF/Analytics/Interfaces/Analytics/RuleEnginePort.pm +%%SITE_PERL%%/ONVIF/Analytics/Typemaps/Analytics.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AACDecOptions.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AbsoluteFocus.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AbsoluteFocusOptions.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ActionEngineEventPayload.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ActionEngineEventPayloadExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsCapabilities.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsDeviceCapabilities.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsDeviceEngineConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsDeviceEngineConfigurationExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsDeviceExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsEngine.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsEngineConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsEngineConfigurationExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsEngineControl.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsEngineInput.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsEngineInputInfo.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsEngineInputInfoExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsState.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnalyticsStateInformation.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AnyHolder.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Appearance.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AppearanceExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AttachmentData.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioAnalyticsStream.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioAnalyticsStreamExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioAttributes.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioClassCandidate.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioClassDescriptor.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioClassDescriptorExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioClassType.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioDecoderConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioDecoderConfigurationOptions.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioDecoderConfigurationOptionsExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioDescriptor.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioEncoderConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioEncoderConfigurationOption.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioEncoderConfigurationOptions.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioEncoding.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioOutput.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioOutputConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioOutputConfigurationOptions.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioSource.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioSourceConfiguration.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioSourceConfigurationOptions.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AudioSourceOptionsExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AutoFocusMode.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/AuxiliaryData.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/BacklightCompensation.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/BacklightCompensation20.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/BacklightCompensationMode.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/BacklightCompensationOptions.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/BacklightCompensationOptions20.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/BackupFile.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Behaviour.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/BehaviourExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/BinaryData.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Body.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Capabilities.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/CapabilitiesExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/CapabilitiesExtension2.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/CapabilityCategory.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/CellLayout.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Certificate.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/CertificateGenerationParameters.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/CertificateGenerationParametersExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/CertificateInformation.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/CertificateInformationExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/CertificateStatus.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/CertificateUsage.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/CertificateWithPrivateKey.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ClassDescriptor.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ClassDescriptorExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ClassDescriptorExtension2.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ClassType.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/CodingCapabilities.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Color.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ColorCovariance.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ColorDescriptor.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ColorDescriptorExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ColorOptions.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ColorspaceRange.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Config.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ConfigDescription.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ConfigDescriptionExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ConfigurationEntity.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ContinuousFocus.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/ContinuousFocusOptions.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/DNSInformation.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/DNSInformationExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/DNSName.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Date.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/DateTime.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/DateTimeRange.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Description.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/DeviceCapabilities.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/DeviceCapabilitiesExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/DeviceEntity.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/DeviceIOCapabilities.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/DigitalInput.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Direction.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/DiscoveryMode.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/DisplayCapabilities.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Domain.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Dot11AuthAndMangementSuite.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Dot11AvailableNetworks.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Dot11AvailableNetworksExtension.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Dot11Capabilities.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Dot11Cipher.pm +%%SITE_PERL%%/ONVIF/Analytics/Types/Dot11Configuration.pm *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201606051847.u55Ilsbx025178>