Merge remote-tracking branch 'origin/master' into video_remote

This commit is contained in:
Isaac Connor 2016-03-30 16:55:24 -04:00
commit e5a36c02bd
1313 changed files with 119742 additions and 46002 deletions

View File

@ -352,7 +352,7 @@
- Fix window sizes and input field sizes for flat skin [\#381](https://github.com/ZoneMinder/ZoneMinder/pull/381) ([m-bene](https://github.com/m-bene)) - Fix window sizes and input field sizes for flat skin [\#381](https://github.com/ZoneMinder/ZoneMinder/pull/381) ([m-bene](https://github.com/m-bene))
- Fix reload loop on switching skins [\#380](https://github.com/ZoneMinder/ZoneMinder/pull/380) ([m-bene](https://github.com/m-bene)) - Fix reload loop on switching skins [\#380](https://github.com/ZoneMinder/ZoneMinder/pull/380) ([m-bene](https://github.com/m-bene))
- Ability to skip frames in motion detection. [\#377](https://github.com/ZoneMinder/ZoneMinder/pull/377) ([Sune1337](https://github.com/Sune1337)) - Ability to skip frames in motion detection. [\#377](https://github.com/ZoneMinder/ZoneMinder/pull/377) ([Sune1337](https://github.com/Sune1337))
- same dvr controlls in event as in monitor [\#375](https://github.com/ZoneMinder/ZoneMinder/pull/375) ([m-bene](https://github.com/m-bene)) - same dvr controls in event as in monitor [\#375](https://github.com/ZoneMinder/ZoneMinder/pull/375) ([m-bene](https://github.com/m-bene))
- do not quote column names in parse filter [\#374](https://github.com/ZoneMinder/ZoneMinder/pull/374) ([m-bene](https://github.com/m-bene)) - do not quote column names in parse filter [\#374](https://github.com/ZoneMinder/ZoneMinder/pull/374) ([m-bene](https://github.com/m-bene))
- Fix 'Undefined index: filter' php warnings for filter view when [\#373](https://github.com/ZoneMinder/ZoneMinder/pull/373) ([m-bene](https://github.com/m-bene)) - Fix 'Undefined index: filter' php warnings for filter view when [\#373](https://github.com/ZoneMinder/ZoneMinder/pull/373) ([m-bene](https://github.com/m-bene))
- Reduce window size to exclude task bar area [\#371](https://github.com/ZoneMinder/ZoneMinder/pull/371) ([m-bene](https://github.com/m-bene)) - Reduce window size to exclude task bar area [\#371](https://github.com/ZoneMinder/ZoneMinder/pull/371) ([m-bene](https://github.com/m-bene))

View File

@ -133,9 +133,9 @@ set(ZM_NO_CURL "OFF" CACHE BOOL
"Set to ON to skip cURL checks and force building ZM without cURL. default: OFF") "Set to ON to skip cURL checks and force building ZM without cURL. default: OFF")
set(ZM_NO_X10 "OFF" CACHE BOOL set(ZM_NO_X10 "OFF" CACHE BOOL
"Set to ON to build ZoneMinder without X10 support. default: OFF") "Set to ON to build ZoneMinder without X10 support. default: OFF")
set(ZM_ONVIF "OFF" CACHE BOOL set(ZM_ONVIF "ON" CACHE BOOL
"Set to ON to enable basic ONVIF support. This is EXPERIMENTAL and may not "Set to ON to enable basic ONVIF support. This is EXPERIMENTAL and may not
work with all cameras claiming to be ONVIF compliant. default: OFF") work with all cameras claiming to be ONVIF compliant. default: ON")
set(ZM_PERL_MM_PARMS INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 CACHE STRING set(ZM_PERL_MM_PARMS INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 CACHE STRING
"By default, ZoneMinder's Perl modules are installed into the Vendor folders, "By default, ZoneMinder's Perl modules are installed into the Vendor folders,
as defined by your installation of Perl. You can change that here. Consult Perl's as defined by your installation of Perl. You can change that here. Consult Perl's
@ -182,6 +182,17 @@ elseif(ZM_TARGET_DISTRO STREQUAL "OS13")
set(ZM_WEB_GROUP "www") set(ZM_WEB_GROUP "www")
set(ZM_WEBDIR "/srv/www/htdocs/zoneminder") set(ZM_WEBDIR "/srv/www/htdocs/zoneminder")
set(ZM_CGIDIR "/srv/www/cgi-bin") set(ZM_CGIDIR "/srv/www/cgi-bin")
elseif(ZM_TARGET_DISTRO STREQUAL "freeBSD")
set(ZM_RUNDIR "/var/run/zm")
set(ZM_SOCKDIR "/var/run/zm")
set(ZM_TMPDIR "/var/tmp/zm")
set(ZM_CONTENTDIR "/usr/local/var/lib/zoneminder")
set(ZM_WEB_USER "www")
set(ZM_WEB_GROUP "www")
set(ZM_CONFIG_DIR "/usr/local/etc/zm")
set(ZM_WEBDIR "/usr/local/share/zoneminder/www")
set(ZM_CGIDIR "/usr/local/libexec/zoneminder/cgi-bin")
set(ZM_PERL_MM_PARMS "INSTALLDIRS=site")
endif((ZM_TARGET_DISTRO STREQUAL "f22") OR (ZM_TARGET_DISTRO STREQUAL "f23")) endif((ZM_TARGET_DISTRO STREQUAL "f22") OR (ZM_TARGET_DISTRO STREQUAL "f23"))
# Required for certain checks to work # Required for certain checks to work
@ -205,7 +216,7 @@ if (HAVE_EXECINFO_H)
if (NOT HAVE_DECL_BACKTRACE) if (NOT HAVE_DECL_BACKTRACE)
find_library (EXECINFO_LIBRARY NAMES execinfo) find_library (EXECINFO_LIBRARY NAMES execinfo)
if (EXECINFO_LIBRARY) if (EXECINFO_LIBRARY)
list(APPEND ZM_BIN_LIBS "-l${EXECINFO_LIBRARY}") list(APPEND ZM_BIN_LIBS "-lexecinfo")
endif (EXECINFO_LIBRARY) endif (EXECINFO_LIBRARY)
endif (NOT HAVE_DECL_BACKTRACE) endif (NOT HAVE_DECL_BACKTRACE)
check_function_exists("backtrace_symbols" HAVE_DECL_BACKTRACE_SYMBOLS) check_function_exists("backtrace_symbols" HAVE_DECL_BACKTRACE_SYMBOLS)

View File

@ -1,6 +1,6 @@
# ZoneMinder # ZoneMinder
FROM ubuntu:precise FROM ubuntu:trusty
MAINTAINER Kyle Johnson <kjohnson@gnulnx.net> MAINTAINER Kyle Johnson <kjohnson@gnulnx.net>
# Let the container know that there is no tty # Let the container know that there is no tty
@ -10,10 +10,10 @@ ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libpolkit-gobject-1-dev build-essential libmysqlclient-dev libssl-dev libbz2-dev libpcre3-dev \ libpolkit-gobject-1-dev build-essential libmysqlclient-dev libssl-dev libbz2-dev libpcre3-dev \
libdbi-perl libarchive-zip-perl libdate-manip-perl libdevice-serialport-perl libmime-perl libpcre3 \ libdbi-perl libarchive-zip-perl libdate-manip-perl libdevice-serialport-perl libmime-perl libpcre3 \
libwww-perl libdbd-mysql-perl libsys-mmap-perl yasm automake autoconf libjpeg-turbo8-dev \ libwww-perl libdbd-mysql-perl libsys-mmap-perl yasm cmake libjpeg-turbo8-dev \
libjpeg-turbo8 libtheora-dev libvorbis-dev libvpx-dev libx264-dev libmp4v2-dev libav-tools mysql-client \ libjpeg-turbo8 libtheora-dev libvorbis-dev libvpx-dev libx264-dev libmp4v2-dev libav-tools mysql-client \
apache2 php5 php5-mysql apache2-mpm-prefork libapache2-mod-php5 php5-cli openssh-server \ apache2 php5 php5-mysql apache2-mpm-prefork libapache2-mod-php5 php5-cli openssh-server \
mysql-server libvlc-dev libvlc5 libvlccore-dev libvlccore5 vlc-data libcurl4-openssl-dev \ mysql-server libvlc-dev libvlc5 libvlccore-dev libvlccore7 vlc-data libcurl4-openssl-dev \
libavformat-dev libswscale-dev libavutil-dev libavcodec-dev libavfilter-dev \ libavformat-dev libswscale-dev libavutil-dev libavcodec-dev libavfilter-dev \
libavresample-dev libavdevice-dev libpostproc-dev libv4l-dev libtool libnetpbm10-dev \ libavresample-dev libavdevice-dev libpostproc-dev libv4l-dev libtool libnetpbm10-dev \
libmime-lite-perl dh-autoreconf dpatch libmime-lite-perl dh-autoreconf dpatch
@ -25,10 +25,11 @@ ADD . /ZoneMinder
WORKDIR /ZoneMinder WORKDIR /ZoneMinder
# Setup the ZoneMinder build environment # Setup the ZoneMinder build environment
RUN aclocal && autoheader && automake --force-missing --add-missing && autoconf #RUN aclocal && autoheader && automake --force-missing --add-missing && autoconf
# Configure ZoneMinder # Configure ZoneMinder
RUN ./configure --with-libarch=lib/$DEB_HOST_GNU_TYPE --disable-debug --host=$DEB_HOST_GNU_TYPE --build=$DEB_BUILD_GNU_TYPE --with-mysql=/usr --with-webdir=/var/www/zm --with-ffmpeg=/usr --with-cgidir=/usr/lib/cgi-bin --with-webuser=www-data --with-webgroup=www-data --enable-mmap=yes ZM_SSL_LIB=openssl ZM_DB_USER=zm ZM_DB_PASS=zm #RUN ./configure --with-libarch=lib/$DEB_HOST_GNU_TYPE --disable-debug --host=$DEB_HOST_GNU_TYPE --build=$DEB_BUILD_GNU_TYPE --with-mysql=/usr --with-webdir=/var/www/zm --with-ffmpeg=/usr --with-cgidir=/usr/lib/cgi-bin --with-webuser=www-data --with-webgroup=www-data --enable-mmap=yes --enable-onvif ZM_SSL_LIB=openssl ZM_DB_USER=zm ZM_DB_PASS=zm
RUN cmake .
# Build ZoneMinder # Build ZoneMinder
RUN make RUN make
@ -36,6 +37,9 @@ RUN make
# Install ZoneMinder # Install ZoneMinder
RUN make install RUN make install
# ensure writable folders
RUN ./zmlinkcontent.sh
# Adding the start script # Adding the start script
ADD utils/docker/start.sh /tmp/start.sh ADD utils/docker/start.sh /tmp/start.sh
@ -43,15 +47,23 @@ ADD utils/docker/start.sh /tmp/start.sh
# TODO - Files ADD'ed have 755 already...why do we need this? # TODO - Files ADD'ed have 755 already...why do we need this?
RUN chmod 755 /tmp/start.sh RUN chmod 755 /tmp/start.sh
# Creating SSH privledge escalation dir # give files in /usr/local/share/zoneminder/
RUN chown -R www-data:www-data /usr/local/share/zoneminder/
# Creating SSH privilege escalation dir
RUN mkdir /var/run/sshd RUN mkdir /var/run/sshd
# Adding apache virtual hosts file # Adding apache virtual hosts file
ADD utils/docker/apache-vhost /etc/apache2/sites-enabled/000-default ADD utils/docker/apache-vhost /etc/apache2/sites-available/000-default.conf
ADD utils/docker/phpdate.ini /etc/php5/apache2/conf.d/25-phpdate.ini
# Set the root passwd # Set the root passwd
RUN echo 'root:root' | chpasswd RUN echo 'root:root' | chpasswd
# Add a user we can actually login with
RUN useradd -m -s /bin/bash -G sudo zoneminder
RUN echo 'zoneminder:zoneminder' | chpasswd
# Expose ssh and http ports # Expose ssh and http ports
EXPOSE 80 EXPOSE 80
EXPOSE 22 EXPOSE 22

View File

@ -18,7 +18,7 @@ Important differences
--------------------- ---------------------
* Unlike the autotools way, the cmake way does not require any options. It attempts to detect some things by its own (system directories, libarch, web user and group) and uses defaults for others (installation paths and such). * Unlike the autotools way, the cmake way does not require any options. It attempts to detect some things by its own (system directories, libarch, web user and group) and uses defaults for others (installation paths and such).
* Unlike the autotools way, which links the binaries to a fixed list of libraries, the cmake way only links to libraries that it found on the system. If a library is not found, but required, a fatal error will be shown during the configuration step. * Unlike the autotools way, which links the binaries to a fixed list of libraries, the cmake way only links to libraries that it found on the system. If a library is not found, but required, a fatal error will be shown during the configuration step.
* Unlike the autotools way, the cmake way does not modify the system in any way it shouldnt. It only does what its supposed to do: Install files to your system. Nothing else and nothing leaks out of the DESTDIR environment variable (if used). This means that depending on your configuration, there might be an extra required step after installation: to link WEB_PATH/events and WEB_PATH/images folders to the correct places. * Unlike the autotools way, the cmake way does not modify the system in any way it shouldn't. It only does what its supposed to do: Install files to your system. Nothing else and nothing leaks out of the DESTDIR environment variable (if used). This means that depending on your configuration, there might be an extra required step after installation: to link WEB_PATH/events and WEB_PATH/images folders to the correct places.
Configuration Configuration
------------- -------------

197
README.md
View File

@ -54,7 +54,7 @@ When building a package, it is best to do this work in a separate environment, d
Lastly, if you desire to build a development snapshot from the master branch, it is recommended you first build your package using an official release of ZoneMinder. This will help identify whether any problems you may encounter are caused by the build process or is a new issue in the master branch. Lastly, if you desire to build a development snapshot from the master branch, it is recommended you first build your package using an official release of ZoneMinder. This will help identify whether any problems you may encounter are caused by the build process or is a new issue in the master branch.
What follows are instructions for various distros to build ZoneMinder into a package. Please visit our [ReadtheDocs site](https://zoneminder.readthedocs.org/en/stable/installationguide/index.html) for distro specific instructions.
### Package Maintainers ### Package Maintainers
Many of the ZoneMinder configration variable default values are not configurable at build time through autotools or cmake. A new tool called *zmeditconfigdata.sh* has been added to allow package maintainers to manipulate any variable stored in ConfigData.pm without patching the source. Many of the ZoneMinder configration variable default values are not configurable at build time through autotools or cmake. A new tool called *zmeditconfigdata.sh* has been added to allow package maintainers to manipulate any variable stored in ConfigData.pm without patching the source.
@ -66,201 +66,6 @@ For example, let's say I have created a new ZoneMinder package that contains the
Note that zmeditconfigdata.sh is intended to be called, from the root build folder, prior to running cmake or configure. Note that zmeditconfigdata.sh is intended to be called, from the root build folder, prior to running cmake or configure.
#### Ubuntu
A fresh build based on master branch running Ubuntu 1204 LTS. Will likely work for other versions as well.
```bash
root@host:~# aptitude install -y apache2 mysql-server php5 php5-mysql build-essential libmysqlclient-dev libssl-dev libbz2-dev libpcre3-dev libdbi-perl libarchive-zip-perl libdate-manip-perl libdevice-serialport-perl libmime-perl libpcre3 libwww-perl libdbd-mysql-perl libsys-mmap-perl yasm automake autoconf libjpeg8-dev libjpeg8 apache2-mpm-prefork libapache2-mod-php5 php5-cli libphp-serialization-perl libgnutls-dev libjpeg8-dev libavcodec-dev libavformat-dev libswscale-dev libavutil-dev libv4l-dev libtool ffmpeg libnetpbm10-dev libavdevice-dev libmime-lite-perl dh-autoreconf dpatch;
root@host:~# git clone https://github.com/ZoneMinder/ZoneMinder.git zoneminder;
root@host:~# cd zoneminder;
root@host:~# ln -s distros/ubuntu1204 debian;
root@host:~# dpkg-checkbuilddeps;
root@host:~# dpkg-buildpackage;
```
One level above you'll now find a deb package matching the architecture of the build host:
```bash
root@host:~# ls -1 ~/zoneminder*;
/root/zoneminder_1.26.4-1_amd64.changes
/root/zoneminder_1.26.4-1_amd64.deb
/root/zoneminder_1.26.4-1.dsc
/root/zoneminder_1.26.4-1.tar.gz
```
The dpkg command itself does not resolve dependencies. That's what high-level interfaces like aptitude and apt-get are normally for. Unfortunately, unlike RPM, there's no easy way to install a separate deb package not contained with any repository.
To overcome this "limitation" we'll use dpkg only to install the zoneminder package and apt-get to fetch all needed dependencies afterwards. Running dpkg-reconfigure in the end will ensure that the setup scripts e.g. for database provisioning were executed.
```bash
root@host:~# dpkg -i /root/zoneminder_1.26.4-1_amd64.deb; apt-get install -f;
root@host:~# dpkg-reconfigure zoneminder;
```
Alternatively you may also use gdebi to automatically resolve dependencies during installation:
```bash
root@host:~# aptitude install -y gdebi;
root@host:~# gdebi /root/zoneminder_1.26.4-1_amd64.deb;
```
```bash
sudo apt-get install apache2 mysql-server php5 php5-mysql build-essential libmysqlclient-dev libssl-dev libbz2-dev \
libpcre3-dev libdbi-perl libarchive-zip-perl libdate-manip-perl libdevice-serialport-perl libmime-perl libpcre3 \
libwww-perl libdbd-mysql-perl libsys-mmap-perl yasm automake autoconf libjpeg-turbo8-dev libjpeg-turbo8 \
apache2-mpm-prefork libapache2-mod-php5 php5-cli
```
#### Debian
A fresh build based on master branch running Debian 7 (wheezy):
```bash
root@host:~# aptitude install -y apache2 mysql-server php5 php5-mysql build-essential libmysqlclient-dev libssl-dev libbz2-dev libpcre3-dev libdbi-perl libarchive-zip-perl libdate-manip-perl libdevice-serialport-perl libmime-perl libpcre3 libwww-perl libdbd-mysql-perl libsys-mmap-perl yasm automake autoconf libjpeg8-dev libjpeg8 apache2-mpm-prefork libapache2-mod-php5 php5-cli libphp-serialization-perl libgnutls-dev libjpeg8-dev libavcodec-dev libavformat-dev libswscale-dev libavutil-dev libv4l-dev libtool ffmpeg libnetpbm10-dev libavdevice-dev libmime-lite-perl dh-autoreconf dpatch;
root@host:~# git clone https://github.com/ZoneMinder/ZoneMinder.git zoneminder;
root@host:~# cd zoneminder;
root@host:~# ln -s distros/debian;
root@host:~# dpkg-checkbuilddeps;
root@host:~# dpkg-buildpackage;
```
One level above you'll now find a deb package matching the architecture of the build host:
```bash
root@host:~# ls -1 ~/zoneminder*;
/root/zoneminder_1.26.4-1_amd64.changes
/root/zoneminder_1.26.4-1_amd64.deb
/root/zoneminder_1.26.4-1.dsc
/root/zoneminder_1.26.4-1.tar.gz
```
The dpkg command itself does not resolve dependencies. That's what high-level interfaces like aptitude and apt-get are normally for. Unfortunately, unlike RPM, there's no easy way to install a separate deb package not contained with any repository.
To overcome this "limitation" we'll use dpkg only to install the zoneminder package and apt-get to fetch all needed dependencies afterwards. Running dpkg-reconfigure in the end will ensure that the setup scripts e.g. for database provisioning were executed.
```bash
root@host:~# dpkg -i /root/zoneminder_1.26.4-1_amd64.deb; apt-get install -f;
root@host:~# dpkg-reconfigure zoneminder;
```
Alternatively you may also use gdebi to automatically resolve dependencies during installation:
```bash
root@host:~# aptitude install -y gdebi;
root@host:~# gdebi /root/zoneminder_1.26.4-1_amd64.deb;
```
#### Fedora / CentOS / RHEL
##### Background
The following method documents how to build ZoneMinder into an RPM package, compatible with Fedora, Redhat, CentOS, and other compatible clones. This is exactly how the RPMS in zmrepo are built.
The method documented below was chosen because:
- All of ZoneMinder's dependencies are downloaded and installed automatically
- Cross platform capable. The build host does not have to be the same distro or release version as the target.
- Once your build environment is set up, few steps are required to run the build again in the future.
- Troubleshooting becomes easier if we are all building ZoneMinder the same way.
The build instructions below make use of a custom script called "buildzm.sh". Advanced users are encouraged to view the contents of this script. Notice that the script doesn't really do a whole lot. The goal of the script is to simply make the process a little easier for the first time user. Once you become familar with the build process, you can issue the mock commands found in the buildzm.sh script yourself if you so desire.
***IMPORTANT***
Certain commands in these instructions require root privileges while other commands do not. Pay close attention to this. If the instructions below state to issue a command without a “sudo” prefix, then you should *not* be root while issuing the command. Getting this incorrect will result in a failed build.
##### Set Up Your Environment
Before you begin, set up an rpmbuild environment by following [this guide](http://wiki.centos.org/HowTos/SetupRpmBuildEnvironment) by the CentOS developers.
Next, navigate to [Zmrepo](http://zmrepo.zoneminder.com/), and follow the instructions to enable zmrepo on your system.
With zmrepo enabled, issue the following command:
````bash
sudo yum install zmrepo-mock-configs mock
```
Add your user account to the group mock:
```bash
sudo gpasswd -a {your account name} mock
```
Your build environment is now set up.
##### Build from SRPM
To continue, you need a ZoneMinder SRPM. For starters, let's use one of the SRPMS from zmrepo. Go browse the [Zmrepo](http://zmrepo.zoneminder.com/) site and choose an appropriate SRPM and place it into the ~/rpmbuild/SRPMS folder.
For CentOS 7, I have chosen the following SRPM:
```bash
wget -P ~/rpmbuild/SRPMS http://zmrepo.zoneminder.com/el/7/SRPMS/zoneminder-1.28.1-2.el7.centos.src.rpm
```
Now comes the fun part. To build ZoneMinder, issue the following command:
```bash
buildzm.sh zmrepo-el7-x86_64 ~/rpmbuild/SRPMS/zoneminder-1.28.1-2.el7.centos.src.rpm
```
Want to build ZoneMinder for Fedora, instead of CentOS, from the same host? Once you download the Fedora SRPM, issue the following:
```bash
buildzm.sh zmrepo-f21-x86_64 ~/rpmbuild/SRPMS/zoneminder-1.28.1-1.fc21.src.rpm
```
Notice that the buildzm.sh tool requires the following parameters:
```bash
buildzm.sh MOCKCONFIG ZONEMINDER_SRPM
```
The list of available Mock config files are available here:
```bash
ls /etc/mock/zmrepo*.cfg
```
You choose the config file based on the desired distro (e.g. el6, el7, f20, f21) and basearch (e.g. x86, x86_64, arhmhfp). Notice that, when specifying the Mock config as a commandline parameter, you should leave off the ".cfg" filename extension.
##### Installation
Once the build completes, you will be presented with a folder containing the RPM's that were built. Copy the newly built ZoneMinder RPM to the desired system, enable zmrepo per the instruction on the [Zmrepo](http://zmrepo.zoneminder.com/) website, and then install the rpm by issuing the appropriate yum install command. Finish the installation by following the zoneminder setup instructions in the distro specific readme file, named README.{distroname}, which will be installed into the /usr/share/doc/zoneminder* folder.
Finally, you may want to consider editing the zmrepo repo file under /etc/yum.repos.d and placing an “exclude=zoneminder*” line into the config file. This will prevent your system from overwriting your manually built RPM with the ZoneMinder RPM found in the repo.
##### How to Modify the Source Prior to Build
** UNFINISHED **
Before attempting this part of the instructions, make sure and follow the previous instructions for building one of the unmodified SRPMS from zmrepo. Knowing this part works will assist in troubleshooting should something go wrong.
These instructions may vary depending on what exactly you want to do. The following example assumes you want to build a development snapshot from the master branch.
From the previous instructions, we downloaded a CentOS 7 ZoneMinder SRPM and placed it into ~/rpmbuild/SRPMS. For this example, install it onto your system:
```bash
rpm -Uvh ~/rpmbuild/SRPMS/zoneminder-1.28.1-2.el7.centos.src.rpm
```
IMPORTANT: This operation must be done with your normal user account. Do *not* perform this command as root.
Make sure you have git installed:
```bash
sudo yum install git
```
Now clone the ZoneMinder git repository:
```bash
git clone https://github.com/ZoneMinder/ZoneMinder
```
This will create a sub-folder called ZoneMinder, which will contain the latest developement.
We want to turn this into a tarball, but first we need to figure out what to name it. Look here:
```bash
ls ~/rpmbuild/SOURCES
```
The tarball from the previsouly installed SRPM should be there. This is the name we will use. For this example, the name is ZoneMinder-1.28.1.tar.gz. From one folder above the local ZoneMinder git repository, execute the following:
```bash
mv ZoneMinder ZoneMinder-1.28.1
tar -cvzf ~/rpmbuild/SOURCES/ZoneMinder-1.28.1.tar.gz ZoneMinder-1.28.1/*
```
The trailing "/*" leaves off the hidden dot "." file and folders from the git repo, which is what we want.
Note that we are overwriting the original tarball. If you wish to keep the original tarball then create a copy prior to creating the new tarball.
Now build a new src.rpm:
```bash
rpmbuild -bs --nodeps ~/rpmbuild/SPECS/zoneminder.el7.spec
```
This step will overwrite the SRPM you originally downloaded, so you may want to back it up prior to completing this step. Note that the name of the specfile will vary slightly depending on what distro you are building for.
You should now have a a new SRPM under ~/rpmbuild/SRPMS. In our example, the SRPM is called zoneminder-1.28.1-2.el7.centos.src.rpm. Now follow the previous instructions that describe how to use the buildzm script, using ~/rpmbuild/SRPMS/zoneminder-1.28.1-2.el7.centos.src.rpm as the path to your SRPM.
#### Docker #### Docker
Docker is a system to run applications inside isolated containers. ZoneMinder, and the ZM webserver, will run using the Docker is a system to run applications inside isolated containers. ZoneMinder, and the ZM webserver, will run using the

View File

@ -500,7 +500,7 @@ fi
AC_SUBST(PERL_MM_PARMS) AC_SUBST(PERL_MM_PARMS)
AC_SUBST(EXTRA_PERL_LIB) AC_SUBST(EXTRA_PERL_LIB)
AC_CONFIG_FILES([Makefile zm.conf zmconfgen.pl db/Makefile db/zm_create.sql misc/Makefile misc/apache.conf misc/logrotate.conf misc/syslog.conf misc/com.zoneminder.systemctl.policy misc/com.zoneminder.systemctl.rules onvif/Makefile onvif/scripts/Makefile scripts/Makefile scripts/zm scripts/zmaudit.pl scripts/zmcontrol.pl scripts/zmdc.pl scripts/zmfilter.pl scripts/zmpkg.pl scripts/zmtrack.pl scripts/zmcamtool.pl scripts/zmsystemctl.pl scripts/zmtrigger.pl scripts/zmupdate.pl scripts/zmvideo.pl scripts/zmwatch.pl scripts/zmx10.pl scripts/zmdbbackup scripts/zmdbrestore scripts/zmeventdump scripts/zmlogrotate.conf scripts/ZoneMinder/lib/ZoneMinder/Base.pm scripts/ZoneMinder/lib/ZoneMinder/Config.pm scripts/ZoneMinder/lib/ZoneMinder/Memory.pm scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm src/Makefile src/zm_config.h web/Makefile web/ajax/Makefile web/css/Makefile web/graphics/Makefile web/includes/Makefile web/includes/config.php web/js/Makefile web/lang/Makefile web/skins/Makefile web/skins/classic/Makefile web/skins/classic/ajax/Makefile web/skins/classic/css/Makefile web/skins/classic/css/classic/Makefile web/skins/classic/css/classic/views/Makefile web/skins/classic/css/dark/Makefile web/skins/classic/css/dark/views/Makefile web/skins/classic/css/flat/Makefile web/skins/classic/css/flat/views/Makefile web/skins/classic/graphics/Makefile web/skins/classic/includes/Makefile web/skins/classic/js/Makefile web/skins/classic/lang/Makefile web/skins/classic/views/Makefile web/skins/classic/views/js/Makefile web/skins/mobile/Makefile web/skins/mobile/ajax/Makefile web/skins/mobile/css/Makefile web/skins/mobile/graphics/Makefile web/skins/mobile/includes/Makefile web/skins/mobile/lang/Makefile web/skins/mobile/views/Makefile web/skins/mobile/views/css/Makefile web/tools/Makefile web/tools/mootools/Makefile web/views/Makefile web/skins/xml/Makefile web/skins/xml/views/Makefile web/skins/xml/includes/Makefile]) AC_CONFIG_FILES([Makefile zm.conf zmconfgen.pl db/Makefile db/zm_create.sql misc/Makefile misc/apache.conf misc/logrotate.conf misc/syslog.conf misc/com.zoneminder.systemctl.policy misc/com.zoneminder.systemctl.rules onvif/Makefile onvif/scripts/Makefile scripts/Makefile scripts/zm scripts/zmaudit.pl scripts/zmcontrol.pl scripts/zmdc.pl scripts/zmfilter.pl scripts/zmpkg.pl scripts/zmtelemetry.pl scripts/zmtrack.pl scripts/zmcamtool.pl scripts/zmsystemctl.pl scripts/zmtrigger.pl scripts/zmupdate.pl scripts/zmvideo.pl scripts/zmwatch.pl scripts/zmx10.pl scripts/zmdbbackup scripts/zmdbrestore scripts/zmeventdump scripts/zmlogrotate.conf scripts/ZoneMinder/lib/ZoneMinder/Base.pm scripts/ZoneMinder/lib/ZoneMinder/Config.pm scripts/ZoneMinder/lib/ZoneMinder/Memory.pm scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm src/Makefile src/zm_config.h web/Makefile web/ajax/Makefile web/css/Makefile web/graphics/Makefile web/includes/Makefile web/includes/config.php web/js/Makefile web/lang/Makefile web/skins/Makefile web/skins/classic/Makefile web/skins/classic/ajax/Makefile web/skins/classic/css/Makefile web/skins/classic/css/classic/Makefile web/skins/classic/css/classic/views/Makefile web/skins/classic/css/dark/Makefile web/skins/classic/css/dark/views/Makefile web/skins/classic/css/flat/Makefile web/skins/classic/css/flat/views/Makefile web/skins/classic/graphics/Makefile web/skins/classic/includes/Makefile web/skins/classic/js/Makefile web/skins/classic/lang/Makefile web/skins/classic/views/Makefile web/skins/classic/views/js/Makefile web/skins/mobile/Makefile web/skins/mobile/ajax/Makefile web/skins/mobile/css/Makefile web/skins/mobile/graphics/Makefile web/skins/mobile/includes/Makefile web/skins/mobile/lang/Makefile web/skins/mobile/views/Makefile web/skins/mobile/views/css/Makefile web/tools/Makefile web/tools/mootools/Makefile web/views/Makefile web/skins/xml/Makefile web/skins/xml/views/Makefile web/skins/xml/includes/Makefile])
# Create the definitions for compilation and defaults for the database # Create the definitions for compilation and defaults for the database
AC_CONFIG_COMMANDS([src/zm_config_defines.h],[perl ./zmconfgen.pl]) AC_CONFIG_COMMANDS([src/zm_config_defines.h],[perl ./zmconfgen.pl])

View File

@ -590,8 +590,10 @@ INSERT INTO Controls VALUES (NULL,'ONVIF Camera','Ffmpeg','onvif',0,0,1,1,0,0,0,
INSERT INTO `Controls` VALUES (NULL,'Foscam 9831W','Ffmpeg','FI9831W',0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,16,1,1,1,1,0,0,0,1,1,0,360,0,360,1,0,4,0,0,1,0,90,0,90,0,0,0,0,0,0,0); INSERT INTO `Controls` VALUES (NULL,'Foscam 9831W','Ffmpeg','FI9831W',0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,16,1,1,1,1,0,0,0,1,1,0,360,0,360,1,0,4,0,0,1,0,90,0,90,0,0,0,0,0,0,0);
INSERT INTO `Controls` VALUES (NULL,'Foscam FI8918W','Ffmpeg','FI8918W',0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,8,0,1,1,1,0,0,0,1,1,0,360,0,360,1,0,4,0,0,1,0,90,0,90,1,0,4,0,0,0,0); INSERT INTO `Controls` VALUES (NULL,'Foscam FI8918W','Ffmpeg','FI8918W',0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,8,0,1,1,1,0,0,0,1,1,0,360,0,360,1,0,4,0,0,1,0,90,0,90,1,0,4,0,0,0,0);
INSERT INTO `Controls` VALUES (NULL,'SunEyes SP-P1802SWPTZ','Libvlc','SPP1802SWPTZ',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,8,0,1,1,0,0,0,0,1,1,0,0,0,0,1,0,64,0,0,1,0,0,0,0,1,0,64,0,0,0,0); INSERT INTO `Controls` VALUES (NULL,'SunEyes SP-P1802SWPTZ','Libvlc','SPP1802SWPTZ',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,8,0,1,1,0,0,0,0,1,1,0,0,0,0,1,0,64,0,0,1,0,0,0,0,1,0,64,0,0,0,0);
INSERT INTO `Controls` VALUES (NULL,'Wanscam HW0025','Libvlc','WanscamHW0025', 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 16, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 350, 0, 0, 1, 0, 10, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10, 0, 0, 0, 0);
INSERT INTO `Controls` VALUES (NULL,'IPCC 7210W','Libvlc','IPCC7210W', 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 16, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 350, 0, 0, 1, 0, 10, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10, 0, 0, 0, 0);
INSERT INTO `Controls` VALUES (NULL,'Vivotek ePTZ','Remote','Vivotek_ePTZ',0,0,1,1,0,0,0,1,0,0,0,0,1,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,5,0,0,1,0,0,0,0,1,0,5,0,0,0,0);
INSERT INTO `Controls` VALUES (NULL,'Netcat ONVIF','Ffmpeg','Netcat',0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,100,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,100,5,5,0,0,0,1,255,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0);
-- --
-- Add some monitor preset values -- Add some monitor preset values

View File

@ -1,5 +1,5 @@
-- --
-- This updates a 1.28.106 database to 1.28.107 -- This updates a 1.28.108 database to 1.28.109
-- --
-- --

View File

@ -1,5 +1,5 @@
-- --
-- This updates a 1.28.106 database to 1.28.107 -- This updates a 1.28.109 database to 1.28.110
-- --
-- --

View File

@ -2,12 +2,42 @@ Source: zoneminder
Section: net Section: net
Priority: optional Priority: optional
Maintainer: Isaac Connor <iconnor@connortechnology.com> Maintainer: Isaac Connor <iconnor@connortechnology.com>
Build-Depends: debhelper (>= 9), autoconf, automake, quilt, libphp-serialization-perl, libgnutls-dev|libgnutls28-dev, libmysqlclient-dev | libmariadbclient-dev, libdbd-mysql-perl, libdate-manip-perl, libwww-perl, libjpeg8-dev|libjpeg9-dev|libjpeg62-turbo-dev, libpcre3-dev, libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev, libv4l-dev (>= 0.8.3), libbz2-dev, libtool, libsys-mmap-perl, ffmpeg | libav-tools, libnetpbm10-dev, libavdevice-dev, libdevice-serialport-perl, libarchive-zip-perl, libmime-lite-perl, dh-autoreconf, libvlccore-dev, libvlc-dev, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev, libgcrypt11-dev|libgcrypt20-dev, libpolkit-gobject-1-dev Build-Depends: debhelper (>= 9), autoconf, automake, quilt , libtool, dh-autoreconf
,libgnutls-dev|libgnutls28-dev
,libmysqlclient-dev | libmariadbclient-dev, libdbd-mysql-perl
,libjpeg8-dev|libjpeg9-dev|libjpeg62-turbo-dev
,libpcre3-dev
,libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev, libavdevice-dev
,libv4l-dev (>= 0.8.3), libvlccore-dev, libvlc-dev
,libbz2-dev
,libsys-mmap-perl
,libnetpbm10-dev
,libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev
,libgcrypt11-dev|libgcrypt20-dev, libpolkit-gobject-1-dev
Standards-Version: 3.9.4 Standards-Version: 3.9.4
Package: zoneminder Package: zoneminder
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, apache2, libapache2-mod-php5 | libapache2-mod-fcgid, php5, php5-mysql|php5-mysqlnd, libphp-serialization-perl, libdate-manip-perl, libmime-lite-perl, libmime-tools-perl, mariadb-client|mysql-client, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl, libpcre3, ffmpeg | libav-tools, rsyslog | system-log-daemon, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl, netpbm, libavdevice53 | libavdevice55, libjpeg8|libjpeg9|libjpeg62-turbo, zip, libnet-sftp-foreign-perl, libio-pty-perl, libexpect-perl, libvlccore5 | libvlccore7 | libvlccore8, libvlc5, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev, libpolkit-gobject-1-0, liburi-encode-perl, php5-gd Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
, apache2, libapache2-mod-php5 | libapache2-mod-fcgid
, php5, php5-mysql|php5-mysqlnd, libphp-serialization-perl
, libdate-manip-perl, libmime-lite-perl, libmime-tools-perl
, mariadb-client|mysql-client
, libwww-perl, libarchive-tar-perl, libarchive-zip-perl
, libdevice-serialport-perl, libpcre3
, ffmpeg | libav-tools
, rsyslog | system-log-daemon
, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl
, netpbm
, libavdevice53 | libavdevice55
, libjpeg8|libjpeg9|libjpeg62-turbo
, zip
, libnet-sftp-foreign-perl, libio-pty-perl, libexpect-perl
, libvlccore5 | libvlccore7 | libvlccore8, libvlc5
, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev
, libpolkit-gobject-1-0, liburi-encode-perl, php5-gd
, libdata-dump-perl, libclass-std-fast-perl, libsoap-wsdl-perl, libio-socket-multicast-perl, libdigest-sha-perl
, libsys-cpu-perl, libsys-meminfo-perl
Recommends: mysql-server|mariadb-server Recommends: mysql-server|mariadb-server
Description: Video camera security and surveillance solution Description: Video camera security and surveillance solution
ZoneMinder is intended for use in single or multi-camera video security ZoneMinder is intended for use in single or multi-camera video security

View File

@ -60,9 +60,11 @@ Depends: libzoneminder-perl (= ${source:Version}),
zoneminder-database (= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}, zoneminder-database (= ${source:Version}), ${shlibs:Depends}, ${misc:Depends},
${perl:Depends}, libarchive-tar-perl, libarchive-zip-perl, libdate-manip-perl, ${perl:Depends}, libarchive-tar-perl, libarchive-zip-perl, libdate-manip-perl,
libdbi-perl, libmodule-load-conditional-perl, libmime-lite-perl, libdbi-perl, libmodule-load-conditional-perl, libmime-lite-perl,
libmime-tools-perl, libnet-sftp-foreign-perl, libphp-serialization-perl, libmime-tools-perl, libnet-sftp-foreign-perl, libphp-serialization-perl
debconf, ffmpeg | libav-tools, rsyslog | system-log-daemon, netpbm, zip, debconf, ffmpeg | libav-tools, rsyslog | system-log-daemon, netpbm, zip,
policykit-1, apache2 policykit-1, apache2
, libsys-cpu-perl, libsys-meminfo-perl
, libdata-dump-perl, libclass-std-fast-perl, libsoap-wsdl-perl, libio-socket-multicast-perl, libdigest-sha-perl
Description: Core binaries and perl scripts for ZoneMinder Description: Core binaries and perl scripts for ZoneMinder
ZoneMinder is a video camera security and surveillance solution. ZoneMinder is a video camera security and surveillance solution.
. .

View File

@ -2,12 +2,43 @@ Source: zoneminder
Section: net Section: net
Priority: optional Priority: optional
Maintainer: Isaac Connor <iconnor@connortechnology.com> Maintainer: Isaac Connor <iconnor@connortechnology.com>
Build-Depends: debhelper (>= 9), cmake, libphp-serialization-perl, libgnutls-dev, libmysqlclient-dev | libmariadbclient-dev, libdbd-mysql-perl, libdate-manip-perl, libwww-perl, libjpeg8-dev, libpcre3-dev, libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev, libv4l-dev (>= 0.8.3), libbz2-dev, libsys-mmap-perl, libav-tools, libnetpbm10-dev, libavdevice-dev, libdevice-serialport-perl, libarchive-zip-perl, libmime-lite-perl, libvlccore-dev, libvlc-dev, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev, libgcrypt11-dev, libpolkit-gobject-1-dev Build-Depends: debhelper (>= 9), cmake
, libphp-serialization-perl
, libgnutls28-dev | libgnutls-dev
, libmysqlclient-dev | libmariadbclient-dev
, libjpeg8-dev
, libpcre3-dev
, libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev
, libv4l-dev (>= 0.8.3)
, libbz2-dev
, libav-tools
, libnetpbm10-dev
, libavdevice-dev
, libvlccore-dev, libvlc-dev
, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev
, libgcrypt11-dev, libpolkit-gobject-1-dev
Standards-Version: 3.9.4 Standards-Version: 3.9.4
Package: zoneminder Package: zoneminder
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, apache2 | httpd, libapache2-mod-php5 | libapache2-mod-fcgid | php5-fpm, php5-mysqlnd | php5-mysql, libphp-serialization-perl, libdate-manip-perl, libmime-lite-perl, libmime-tools-perl, mariadb-client | mysql-client, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl, libpcre3, libav-tools, rsyslog | system-log-daemon, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl, netpbm, libavdevice53, libjpeg8, zip, libnet-sftp-foreign-perl, libio-pty-perl, libexpect-perl, libvlccore5 | libvlccore7, libvlc5, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev, libpolkit-gobject-1-0, php5-gd Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
, apache2 | httpd, libapache2-mod-php5 | libapache2-mod-fcgid | php5-fpm
, php5-mysqlnd | php5-mysql
, mariadb-client | mysql-client
, libphp-serialization-perl
, libdate-manip-perl, libmime-lite-perl, libmime-tools-perl, libdbd-mysql-perl
, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl
, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl
, libnet-sftp-foreign-perl, libio-pty-perl, libexpect-perl
, libdata-dump-perl, libclass-std-fast-perl, libsoap-wsdl-perl, libio-socket-multicast-perl, libdigest-sha-perl
, libsys-cpu-perl, libsys-meminfo-perl
, libpcre3
, libav-tools, libavdevice53
, rsyslog | system-log-daemon
, netpbm , libjpeg8
, zip
, libvlccore5 | libvlccore7, libvlc5
, libpolkit-gobject-1-0, php5-gd
Recommends: mysql-server | mariadb-server Recommends: mysql-server | mariadb-server
Description: Video camera security and surveillance solution Description: Video camera security and surveillance solution
ZoneMinder is intended for use in single or multi-camera video security ZoneMinder is intended for use in single or multi-camera video security

View File

@ -10,7 +10,7 @@ configure_file(zoneminder.tmpfiles.in ${CMAKE_CURRENT_SOURCE_DIR}/zoneminder.tmp
configure_file(zoneminder.logrotate.in ${CMAKE_CURRENT_SOURCE_DIR}/zoneminder.logrotate @ONLY) configure_file(zoneminder.logrotate.in ${CMAKE_CURRENT_SOURCE_DIR}/zoneminder.logrotate @ONLY)
# Download jscalendar & move files into position # Download jscalendar & move files into position
file(DOWNLOAD http://downloads.sourceforge.net/jscalendar/jscalendar-1.0.zip ${CMAKE_CURRENT_SOURCE_DIR}/jscalendar-1.0.zip STATUS download_jsc) file(DOWNLOAD http://iweb.dl.sourceforge.net/project/jscalendar/jscalendar/1.0/jscalendar-1.0.zip ${CMAKE_CURRENT_SOURCE_DIR}/jscalendar-1.0.zip STATUS download_jsc)
if(download_jsc EQUAL 0) if(download_jsc EQUAL 0)
message(STATUS "Jscalander successfully downloaded. Installing...") message(STATUS "Jscalander successfully downloaded. Installing...")
execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/jscalendar.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ERROR_VARIABLE unzip_jsc) execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/jscalendar.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ERROR_VARIABLE unzip_jsc)
@ -39,7 +39,7 @@ install(CODE "execute_process(COMMAND ln -sf ../../../../../../var/lib/zoneminde
# Fedora requires cambozola as a separate package so just link to it # Fedora requires cambozola as a separate package so just link to it
install(CODE "execute_process(COMMAND ln -sf ../../java/cambozola.jar \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/zoneminder/www/cambozola.jar\")") install(CODE "execute_process(COMMAND ln -sf ../../java/cambozola.jar \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/zoneminder/www/cambozola.jar\")")
# Install auxillary files required to run zoneminder on Fedora # Install auxiliary files required to run zoneminder on Fedora
install(FILES zoneminder.conf DESTINATION /etc/httpd/conf.d PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) install(FILES zoneminder.conf DESTINATION /etc/httpd/conf.d PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)
install(FILES zoneminder.logrotate DESTINATION /etc/logrotate.d RENAME zoneminder PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) install(FILES zoneminder.logrotate DESTINATION /etc/logrotate.d RENAME zoneminder PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)
install(FILES ../../misc/zoneminder-tmpfiles.conf DESTINATION /etc/tmpfiles.d RENAME zoneminder.conf PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) install(FILES ../../misc/zoneminder-tmpfiles.conf DESTINATION /etc/tmpfiles.d RENAME zoneminder.conf PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)

View File

@ -5,27 +5,19 @@ What's New
"/cgi-bin-zm/zms". This has been to done to avoid this bug: "/cgi-bin-zm/zms". This has been to done to avoid this bug:
https://bugzilla.redhat.com/show_bug.cgi?id=973067 https://bugzilla.redhat.com/show_bug.cgi?id=973067
IMPORTANT: ZoneMinder will not update this value during an upgrade. You must IMPORTANT: You must manually inspect the value for PATH_ZMS under Options
manually update ZM_PATH_ZMS yourself under Options. This does not affect and verify it is set to "/cgi-bin-zm/nph-zms". Failure to do so will result
new installs. in a broken system. You have been warned.
2. The ZoneMinder config file, zm.conf, has been moved under /etc/zm. 2. Due to the active state of the ZoneMinder project, we now recommend granting
3. Due to the active state of the ZoneMinder project, we now recommend granting
ALL permission to the ZoneMinder mysql account. This change must be done ALL permission to the ZoneMinder mysql account. This change must be done
manually before ZoneMinder will run. See the installation steps below. manually before ZoneMinder will run. See the installation steps below.
4. A new permission group called "Groups" has been added. This allows the 3. This package uses the HTTPS protocol by default to access the web portal.
system administrator to assign "view", "edit", or "none" permission to
normal users, without giving them access to the rest of the ZoneMinder
system. During an upgrade, existing accounts will default to a Groups
permission of "none".
5. This package now requires the HTTPS protocol to access the web portal.
Requests using HTTP will auto-redirect to HTTPS. See README.https for Requests using HTTP will auto-redirect to HTTPS. See README.https for
more information. more information.
6. This package ships with the new ZoneMinder API enabled. 4. This package ships with the new ZoneMinder API enabled.
New installs New installs
============ ============
@ -86,13 +78,22 @@ New installs
SELINUX line from "enforcing" to "disabled". This change will take SELINUX line from "enforcing" to "disabled". This change will take
effect after a reboot. effect after a reboot.
6. Install mod_ssl or configure /etc/httpd/conf.d/zoneminder.conf to meet your
needs. This package comes preconfigured for HTTPS using the default self
signed certificate on your system. The recommended way to complete this step
is to simply install mod_ssl:
6. Now start the web server: sudo yum install mod_ssl
If this does not meet your needs, then read README.https to
learn about alternatives. When in doubt, install mod_ssl.
7. Now start the web server:
sudo systemctl enable httpd sudo systemctl enable httpd
sudo systemctl start httpd sudo systemctl start httpd
7. Now start zoneminder: 8. Now start zoneminder:
sudo systemctl enable zoneminder sudo systemctl enable zoneminder
sudo systemctl start zoneminder sudo systemctl start zoneminder
@ -131,6 +132,7 @@ Upgrades
/etc/httpd/conf.d. You will have a file called "zoneminder.conf" and there /etc/httpd/conf.d. You will have a file called "zoneminder.conf" and there
may also be a file called "zoneminder.conf.rpmnew". If the rpmnew file may also be a file called "zoneminder.conf.rpmnew". If the rpmnew file
exists, inspect it and merge anything new in that file with zoneminder.conf. exists, inspect it and merge anything new in that file with zoneminder.conf.
Verify the SSL REquirements meet your needs. Read README.https if necessary.
4. Upgrade the database before starting ZoneMinder. 4. Upgrade the database before starting ZoneMinder.

View File

@ -0,0 +1 @@
zoneminder.f23.spec

View File

@ -1,409 +0,0 @@
%define zmuid $(id -un)
%define zmgid $(id -gn)
%define zmuid_final apache
%define zmgid_final apache
%global _hardened_build 1
### Delete the lines below to build with ffmpeg and/or x10
%define _without_ffmpeg 1
%define _without_x10 1
Name: zoneminder
Version: 1.29.0
Release: 1%{?dist}
Summary: A camera monitoring and analysis tool
Group: System Environment/Daemons
# jscalendar is LGPL (any version): http://www.dynarch.com/projects/calendar/
# Mootools is inder the MIT license: http://mootools.net/
License: GPLv2+ and LGPLv2+ and MIT
URL: http://www.zoneminder.com/
#Source: https://github.com/ZoneMinder/ZoneMinder/archive/v%{version}.tar.gz
Source: ZoneMinder-%{version}.tar.gz
BuildRequires: cmake gnutls-devel systemd-units bzip2-devel
BuildRequires: mariadb-devel pcre-devel libjpeg-turbo-devel
BuildRequires: perl(Archive::Tar) perl(Archive::Zip) perl-podlators
BuildRequires: perl(Date::Manip) perl(DBD::mysql)
BuildRequires: perl(ExtUtils::MakeMaker) perl(LWP::UserAgent)
BuildRequires: perl(MIME::Entity) perl(MIME::Lite)
BuildRequires: perl(PHP::Serialization) perl(Sys::Mmap)
BuildRequires: perl(Time::HiRes) perl(Net::SFTP::Foreign)
BuildRequires: perl(Expect) perl(Sys::Syslog)
BuildRequires: gcc gcc-c++ vlc-devel libcurl-devel libv4l-devel
%{!?_without_ffmpeg:BuildRequires: ffmpeg-devel}
%{!?_without_x10:BuildRequires: perl(X10::ActiveHome) perl(Astro::SunTime)}
# cmake needs the following installed at build time due to the way it auto-detects certain parameters
BuildRequires: httpd polkit-devel
%{!?_without_ffmpeg:BuildRequires: ffmpeg}
Requires: httpd php php-gd php-mysql cambozola polkit net-tools psmisc
Requires: libjpeg-turbo vlc-core libcurl
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Requires: perl(DBD::mysql) perl(Archive::Tar) perl(Archive::Zip)
Requires: perl(MIME::Entity) perl(MIME::Lite) perl(Net::SMTP) perl(Net::FTP)
Requires: perl(LWP::Protocol::https)
%{!?_without_ffmpeg:Requires: ffmpeg}
Requires(post): systemd-units systemd-sysv
Requires(post): /usr/bin/gpasswd
Requires(post): /usr/bin/less
Requires(preun): systemd-units
Requires(postun): systemd-units
%description
ZoneMinder is a set of applications which is intended to provide a complete
solution allowing you to capture, analyse, record and monitor any cameras you
have attached to a Linux based machine. It is designed to run on kernels which
support the Video For Linux (V4L) interface and has been tested with cameras
attached to BTTV cards, various USB cameras and IP network cameras. It is
designed to support as many cameras as you can attach to your computer without
too much degradation of performance.
%prep
%setup -q -n ZoneMinder-%{version}
# Change the following default values
./utils/zmeditconfigdata.sh ZM_PATH_ZMS /cgi-bin-zm/nph-zms
./utils/zmeditconfigdata.sh ZM_OPT_CAMBOZOLA yes
./utils/zmeditconfigdata.sh ZM_PATH_SWAP /dev/shm
./utils/zmeditconfigdata.sh ZM_UPLOAD_FTP_LOC_DIR /var/spool/zoneminder-upload
./utils/zmeditconfigdata.sh ZM_OPT_CONTROL yes
./utils/zmeditconfigdata.sh ZM_CHECK_FOR_UPDATES no
./utils/zmeditconfigdata.sh ZM_DYN_SHOW_DONATE_REMINDER no
%build
%cmake \
-DZM_TARGET_DISTRO="f22" \
%{?_without_ffmpeg:-DZM_NO_FFMPEG=ON} \
%{?_without_x10:-DZM_NO_X10=ON} \
.
make %{?_smp_mflags}
%install
export DESTDIR=%{buildroot}
make install
%post
if [ $1 -eq 1 ] ; then
# Initial installation
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi
# Allow zoneminder access to local video sources, serial ports, and x10
/usr/bin/gpasswd -a %{zmuid_final} video
/usr/bin/gpasswd -a %{zmuid_final} dialout
# Upgrade from a previous version of zoneminder
if [ $1 -eq 2 ] ; then
# Freshen the database
/usr/bin/zmupdate.pl -f
# We can't run this automatically when new sql account permissions need to
# be manually added first
# Run zmupdate non-interactively
#/usr/bin/zmupdate.pl --nointeractive
fi
# Warn the end user to read the README file
echo -e "\nVERY IMPORTANT: Before starting ZoneMinder, read README.Fedora to finish the\ninstallation or upgrade!\n"
echo -e "\nThe README file is located here: %{_docdir}/%{name}\n"
%preun
if [ $1 -eq 0 ] ; then
# Package removal, not upgrade
/bin/systemctl --no-reload disable zoneminder.service > /dev/null 2>&1 || :
/bin/systemctl stop zoneminder.service > /dev/null 2>&1 || :
fi
%postun
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
# Package upgrade, not uninstall
/bin/systemctl try-restart zoneminder.service >/dev/null 2>&1 || :
fi
%triggerun -- zoneminder < 1.25.0-4
# Save the current service runlevel info
# User must manually run systemd-sysv-convert --apply zoneminder
# to migrate them to systemd targets
/usr/bin/systemd-sysv-convert --save zoneminder >/dev/null 2>&1 ||:
# Run these because the SysV package being removed won't do them
/sbin/chkconfig --del zoneminder >/dev/null 2>&1 || :
/bin/systemctl try-restart zoneminder.service >/dev/null 2>&1 || :
%files
%defattr(-,root,root,-)
%doc AUTHORS COPYING README.md distros/fedora/README.Fedora distros/fedora/README.https distros/fedora/jscalendar-doc
%config %attr(640,root,%{zmgid_final}) /etc/zm/zm.conf
%config(noreplace) %attr(644,root,root) /etc/httpd/conf.d/zoneminder.conf
%config(noreplace) /etc/tmpfiles.d/zoneminder.conf
%config(noreplace) /etc/logrotate.d/zoneminder
%{_unitdir}/zoneminder.service
%{_bindir}/zma
%{_bindir}/zmaudit.pl
%{_bindir}/zmc
%{_bindir}/zmcontrol.pl
%{_bindir}/zmdc.pl
%{_bindir}/zmf
%{_bindir}/zmfilter.pl
%{_bindir}/zmpkg.pl
%{_bindir}/zmstreamer
%{_bindir}/zmtrack.pl
%{_bindir}/zmtrigger.pl
%{_bindir}/zmu
%{_bindir}/zmupdate.pl
%{_bindir}/zmvideo.pl
%{_bindir}/zmwatch.pl
%{_bindir}/zmcamtool.pl
%{_bindir}/zmsystemctl.pl
%{!?_without_x10:%{_bindir}/zmx10.pl}
%{perl_vendorlib}/ZoneMinder*
%{_mandir}/man*/*
%dir %{_libexecdir}/zoneminder
%{_libexecdir}/zoneminder/cgi-bin
%dir %{_datadir}/zoneminder
%{_datadir}/zoneminder/db
%{_datadir}/zoneminder/www
%{_datadir}/polkit-1/actions/com.zoneminder.systemctl.policy
%{_datadir}/polkit-1/rules.d/com.zoneminder.systemctl.rules
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/lib/zoneminder
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/lib/zoneminder/events
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/lib/zoneminder/images
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/lib/zoneminder/sock
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/lib/zoneminder/swap
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/lib/zoneminder/temp
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/log/zoneminder
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/spool/zoneminder-upload
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /run/zoneminder
%changelog
* Sat Feb 14 2015 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.28.1
- Bump version for 1.28.1 release on Fedora 21.
* Sun Oct 5 2014 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.28.0
- Bump version for 1.28.0 release.
* Fri Mar 14 2014 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.27
- Tweak build requirements for cmake
* Sat Feb 01 2014 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.27
- Add zmcamtool.pl. Bump version for 1.27 release.
* Mon Dec 16 2013 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.26.5
- This is a bug fixe release
- RTSP fixes, cmake enhancements, couple other misc fixes
* Mon Oct 07 2013 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.26.4
- Initial cmake build.
* Sat Oct 05 2013 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.26.4
- Fedora specific path changes have been moved to zoneminder-1.26.0-defaults.patch
- All files are now part of the zoneminder source tree. Update specfile accordingly.
* Sat Sep 21 2013 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.26.3
- Initial rebuild for ZoneMinder 1.26.3 release.
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.25.0-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Mon Jan 21 2013 Adam Tkac <atkac redhat com> - 1.25.0-12
- rebuild due to "jpeg8-ABI" feature drop
* Mon Jan 7 2013 Remi Collet <rcollet@redhat.com> - 1.25.0-11
- fix configuration file for httpd 2.4, #871502
* Fri Dec 21 2012 Adam Tkac <atkac redhat com> - 1.25.0-10
- rebuild against new libjpeg
* Thu Aug 09 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-9
- Add patch to work around v4l2 api breakage in 3.5 kernel.
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.25.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sat Jun 23 2012 Petr Pisar <ppisar@redhat.com> - 1.25.0-7
- Perl 5.16 rebuild
* Wed Mar 21 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-6
- Fix stupid thinko in sql modifications.
* Sat Feb 25 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-5
- Clean up macro usage.
* Sat Feb 25 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-4
- Convert to systemd.
- Add tmpfiles.d configuration since the initscript isn't around to create
/run/zoneminder.
- Remove some pointless executable permissions.
- Add logrotate file.
* Wed Feb 22 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-3
- Update README.Fedora to reference systemctl and mention timezone info in
php.ini.
- Add proper default for EYEZM_LOG_TO_FILE.
* Thu Feb 09 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-2
- Rebuild for new pcre.
* Thu Jan 19 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-1
- Update to 1.25.0
- Fix gcc4.7 build problems.
- Drop gcc4.4 build fixes; for whatever reason they now break the build.
- Clean up old patches.
- Force setting of ZM_TMPDIR and ZM_RUNDIR.
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.24.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Thu Sep 15 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.4-3
- Re-add the dist-tag that somehow got lost.
* Thu Sep 15 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.4-2
- Add patch for bug 711780 - fix syntax issue in Mapped.pm.
- Undo that patch, and undo another which was the cause of the whole mess.
- Fix up other patches so ZM_PATH_BUILD is both defined and useful.
- Make sure database creation mods actually take.
- Update Fedora-specific docs with some additional info.
- Use bundled mootools (javascript, so no guideline violation).
- Update download location.
- Update the gcrypt patch to actually work.
- Upstream changed the tarball without changing the version to patch a
vulnerability, so redownload.
* Sun Aug 14 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.4-1
- Initial attempt to upgrade to 1.24.4.
- Add patch from BZ 460310 to build against libgcrypt instead of requiring the
gnutls openssl libs.
* Thu Jul 21 2011 Petr Sabata <contyk@redhat.com> - 1.24.3-7.20110324svn3310
- Perl mass rebuild
* Wed Jul 20 2011 Petr Sabata <contyk@redhat.com> - 1.24.3-6.20110324svn3310
- Perl mass rebuild
* Mon May 09 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.3-5.20110324svn3310
- Bump for gnutls update.
* Thu Mar 24 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.3-4.20110324svn3310
- Update to latest 1.24.3 subversion. Turns out that what upstream was calling
1.24.3 is really just an occasionally updated devel snapshot.
- Rebase various patches.
* Wed Mar 23 2011 Dan Horák <dan@danny.cz> - 1.24.3-3
- rebuilt for mysql 5.5.10 (soname bump in libmysqlclient)
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.24.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Tue Jan 25 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.3-1
- Update to latest upstream version.
- Rebase patches.
- Initial incomplete attempt to disable v4l1 support.
* Fri Jan 21 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.2-6
- Unbundle cambozola; instead link to the separately pacakged copy.
- Remove BuildRoot:, %%clean and buildroot cleaning in %%install.
- Git rid of mixed space/tab usage by removing all tabs.
- Remove unnecessary Conflicts: line.
- Attempt to force short_open_tag on for the code directories.
- Move default location of sockets, swaps, logfiles and some temporary files to
make more sense and allow things to work better with a future selinux policy.
- Fix errors in README.Fedora.
* Wed Jun 02 2010 Marcela Maslanova <mmaslano@redhat.com> - 1.24.2-5
- Mass rebuild with perl-5.12.0
* Fri Dec 4 2009 Stepan Kasal <skasal@redhat.com> - 1.24.2-4
- rebuild against perl 5.10.1
- use Perl vendorarch and archlib variables correctly
* Mon Jul 27 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.24.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Jul 22 2009 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.2-2
- Bump release since 1.24.2-1 was mistakenly tagged a few months ago.
* Wed Jul 22 2009 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.2-1
- Initial update to 1.24.2.
- Rebase patches.
- Update mootools download location.
- Update to mootools 1.2.3.
- Add additional dependencies for some optional features.
* Sat Apr 11 2009 Martin Ebourne <martin@zepler.org> - 1.24.1-3
- Remove unused Sys::Mmap perl dependency RPM is finding
* Sat Apr 11 2009 Martin Ebourne <martin@zepler.org> - 1.24.1-2
- Update gcc44 patch to disable -frepo, seems to be broken with gcc44
- Added noffmpeg patch to make building outside mock easier
* Sat Mar 21 2009 Martin Ebourne <martin@zepler.org> - 1.24.1-1
- Patch for gcc 4.4 compilation errors
- Upgrade to 1.24.1
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.23.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Sat Jan 24 2009 Caolán McNamara <caolanm@redhat.com> - 1.23.3-3
- rebuild for dependencies
* Mon Dec 15 2008 Martin Ebourne <martin@zepler.org> - 1.23.3-2
- Fix permissions on zm.conf
* Fri Jul 11 2008 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.23.3-1
- Initial attempt at packaging 1.23.
* Tue Jul 1 2008 Martin Ebourne <martin@zepler.org> - 1.22.3-15
- Add perl module compat dependency, bz #453590
* Tue May 6 2008 Martin Ebourne <martin@zepler.org> - 1.22.3-14
- Remove default runlevel, bz #441315
* Mon Apr 28 2008 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.22.3-13
- Backport patch for CVE-2008-1381 from 1.23.3 to 1.22.3.
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.22.3-12
- Autorebuild for GCC 4.3
* Thu Jan 3 2008 Martin Ebourne <martin@zepler.org> - 1.22.3-11
- Fix compilation on gcc 4.3
* Thu Dec 6 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-10
- Rebuild for new openssl
* Thu Aug 2 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-8
- Fix licence tag
* Thu Jul 12 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-7
- Fixes from testing by Jitz including missing dependencies and database creation
* Sat Jun 30 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-6
- Disable crashtrace on ppc
* Sat Jun 30 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-5
- Fix uid for directories in /var/lib/zoneminder
* Tue Jun 26 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-4
- Added perl Archive::Tar dependency
- Disabled web interface due to lack of access control on the event images
* Sun Jun 10 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-3
- Changes recommended in review by Jason Tibbitts
* Mon Apr 2 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-2
- Standardised on package name of zoneminder
* Thu Dec 28 2006 Martin Ebourne <martin@zepler.org> - 1.22.3-1
- First version. Uses some parts from zm-1.20.1 by Corey DeLasaux and Serg Oskin

View File

@ -10,7 +10,7 @@
%define _without_x10 1 %define _without_x10 1
Name: zoneminder Name: zoneminder
Version: 1.29.0 Version: 1.30.0
Release: 1%{?dist} Release: 1%{?dist}
Summary: A camera monitoring and analysis tool Summary: A camera monitoring and analysis tool
Group: System Environment/Daemons Group: System Environment/Daemons
@ -38,7 +38,7 @@ BuildRequires: gcc gcc-c++ vlc-devel libcurl-devel libv4l-devel
BuildRequires: httpd polkit-devel BuildRequires: httpd polkit-devel
%{!?_without_ffmpeg:BuildRequires: ffmpeg} %{!?_without_ffmpeg:BuildRequires: ffmpeg}
Requires: httpd php php-gd php-mysql cambozola polkit net-tools psmisc mod_ssl Requires: httpd php php-gd php-mysql cambozola polkit net-tools psmisc
Requires: libjpeg-turbo vlc-core libcurl Requires: libjpeg-turbo vlc-core libcurl
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Requires: perl(DBD::mysql) perl(Archive::Tar) perl(Archive::Zip) Requires: perl(DBD::mysql) perl(Archive::Tar) perl(Archive::Zip)
@ -72,6 +72,7 @@ too much degradation of performance.
./utils/zmeditconfigdata.sh ZM_OPT_CONTROL yes ./utils/zmeditconfigdata.sh ZM_OPT_CONTROL yes
./utils/zmeditconfigdata.sh ZM_CHECK_FOR_UPDATES no ./utils/zmeditconfigdata.sh ZM_CHECK_FOR_UPDATES no
./utils/zmeditconfigdata.sh ZM_DYN_SHOW_DONATE_REMINDER no ./utils/zmeditconfigdata.sh ZM_DYN_SHOW_DONATE_REMINDER no
./utils/zmeditconfigdata.sh ZM_OPT_FAST_DELETE no
%build %build
%cmake \ %cmake \
@ -87,6 +88,10 @@ export DESTDIR=%{buildroot}
make install make install
%post %post
# Add any new PTZ control configurations to the database (will not overwrite)
%{_bindir}/zmcamtool.pl --import >/dev/null 2>&1 || :
if [ $1 -eq 1 ] ; then if [ $1 -eq 1 ] ; then
# Initial installation # Initial installation
/bin/systemctl daemon-reload >/dev/null 2>&1 || : /bin/systemctl daemon-reload >/dev/null 2>&1 || :
@ -98,8 +103,12 @@ fi
# Upgrade from a previous version of zoneminder # Upgrade from a previous version of zoneminder
if [ $1 -eq 2 ] ; then if [ $1 -eq 2 ] ; then
# Add any new PTZ control configurations to the database (will not overwrite)
%{_bindir}/zmcamtool.pl --import >/dev/null 2>&1 || :
# Freshen the database # Freshen the database
/usr/bin/zmupdate.pl -f %{_bindir}/zmupdate.pl -f >/dev/null 2>&1 || :
# We can't run this automatically when new sql account permissions need to # We can't run this automatically when new sql account permissions need to
# be manually added first # be manually added first
@ -163,9 +172,14 @@ fi
%{_bindir}/zmwatch.pl %{_bindir}/zmwatch.pl
%{_bindir}/zmcamtool.pl %{_bindir}/zmcamtool.pl
%{_bindir}/zmsystemctl.pl %{_bindir}/zmsystemctl.pl
%{_bindir}/zmtelemetry.pl
%{!?_without_x10:%{_bindir}/zmx10.pl} %{!?_without_x10:%{_bindir}/zmx10.pl}
%{_bindir}/zmonvif-probe.pl
%{perl_vendorlib}/ZoneMinder* %{perl_vendorlib}/ZoneMinder*
%{perl_vendorlib}/ONVIF*
%{perl_vendorlib}/WSDiscovery*
%{perl_vendorlib}/WSSecurity*
%{_mandir}/man*/* %{_mandir}/man*/*
%dir %{_libexecdir}/zoneminder %dir %{_libexecdir}/zoneminder
%{_libexecdir}/zoneminder/cgi-bin %{_libexecdir}/zoneminder/cgi-bin
@ -188,6 +202,9 @@ fi
%changelog %changelog
* Thu Mar 3 2016 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.30.0
- Bump version fo 1.30.0 release.
* Sat Nov 21 2015 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.29.0 * Sat Nov 21 2015 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.29.0
- Bump version for 1.29.0 release on Fedora 23. - Bump version for 1.29.0 release on Fedora 23.

View File

@ -38,7 +38,7 @@ install(CODE "execute_process(COMMAND ln -sf ../../../../${zm_webdir}/temp \"\$E
# Opensuse cambazola? requires cambozola as a separate package so just link to it # Opensuse cambazola? requires cambozola as a separate package so just link to it
#install(CODE "execute_process(COMMAND ln -sf ../../java/cambozola.jar \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/zoneminder/www/cambozola.jar\")") #install(CODE "execute_process(COMMAND ln -sf ../../java/cambozola.jar \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/zoneminder/www/cambozola.jar\")")
# Install auxillary files required to run zoneminder on OpenSuse # Install auxiliary files required to run zoneminder on OpenSuse
install(FILES zoneminder.conf DESTINATION /etc/apache2/conf.d PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) install(FILES zoneminder.conf DESTINATION /etc/apache2/conf.d PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)
install(FILES zoneminder.logrotate DESTINATION /etc/logrotate.d RENAME zoneminder PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) install(FILES zoneminder.logrotate DESTINATION /etc/logrotate.d RENAME zoneminder PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)
install(FILES zoneminder.tmpfiles DESTINATION /etc/tmpfiles.d RENAME zoneminder.conf PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) install(FILES zoneminder.tmpfiles DESTINATION /etc/tmpfiles.d RENAME zoneminder.conf PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)

View File

@ -138,7 +138,7 @@ Upgrades
has select, insert, update, and delete permission. has select, insert, update, and delete permission.
3. You will need to upgrade the ZoneMinder database as described in the 3. You will need to upgrade the ZoneMinder database as described in the
manual. Only if the previous step was succesful, may you run zmupdate like manual. Only if the previous step was successful, may you run zmupdate like
so (as root): so (as root):
/opt/zoneminder/bin/zmupdate.pl /opt/zoneminder/bin/zmupdate.pl

View File

@ -16,7 +16,7 @@ else(ZM_TARGET_DISTRO STREQUAL "el7")
endif(ZM_TARGET_DISTRO STREQUAL "el7") endif(ZM_TARGET_DISTRO STREQUAL "el7")
# Download jscalendar & move files into position # Download jscalendar & move files into position
file(DOWNLOAD http://skylineservers.dl.sourceforge.net/project/jscalendar/jscalendar/1.0/jscalendar-1.0.zip ${CMAKE_CURRENT_SOURCE_DIR}/jscalendar-1.0.zip LOG jsc_log STATUS download_jsc) file(DOWNLOAD http://iweb.dl.sourceforge.net/project/jscalendar/jscalendar/1.0/jscalendar-1.0.zip ${CMAKE_CURRENT_SOURCE_DIR}/jscalendar-1.0.zip LOG jsc_log STATUS download_jsc)
#message(STATUS "Log of jscalender script was: ${jsc_log}") #message(STATUS "Log of jscalender script was: ${jsc_log}")
if(download_jsc EQUAL 0) if(download_jsc EQUAL 0)
message(STATUS "Jscalander successfully downloaded. Installing...") message(STATUS "Jscalander successfully downloaded. Installing...")
@ -57,7 +57,7 @@ install(CODE "execute_process(COMMAND ln -sf ../../../../../../var/lib/zoneminde
# Link to Cambozola, which is now packaged in zmrepo # Link to Cambozola, which is now packaged in zmrepo
install(CODE "execute_process(COMMAND ln -sf ../../java/cambozola.jar \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/zoneminder/www/cambozola.jar\")") install(CODE "execute_process(COMMAND ln -sf ../../java/cambozola.jar \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/zoneminder/www/cambozola.jar\")")
# Install auxillary files required to run zoneminder on CentOS # Install auxiliary files required to run zoneminder on CentOS
install(FILES redalert.wav DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/zoneminder/www/sounds PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) install(FILES redalert.wav DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/zoneminder/www/sounds PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
if(ZM_TARGET_DISTRO STREQUAL "el7") if(ZM_TARGET_DISTRO STREQUAL "el7")
install(FILES zoneminder.el7.conf DESTINATION /etc/httpd/conf.d RENAME zoneminder.conf PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) install(FILES zoneminder.el7.conf DESTINATION /etc/httpd/conf.d RENAME zoneminder.conf PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)

View File

@ -5,16 +5,14 @@ What's New
ALL permission to the ZoneMinder mysql account. This change must be done ALL permission to the ZoneMinder mysql account. This change must be done
manually before ZoneMinder will run. See the installation steps below. manually before ZoneMinder will run. See the installation steps below.
2. A new permission group called "Groups" has been added. This allows the 2. This package uses the HTTPS protocol by default to access the web portal.
system administrator to assign "view", "edit", or "none" permission to
normal users, without giving them access to the rest of the ZoneMinder
system. During an upgrade, existing accounts will default to a Groups
permission of "none".
3. This package now requires the HTTPS protocol to access the web portal.
Requests using HTTP will auto-redirect to HTTPS. See README.https for Requests using HTTP will auto-redirect to HTTPS. See README.https for
more information. more information.
3. The php package that ships with CentOS 6 does not support the new ZoneMinder
API. If you require API functionality (such as using a mobile app) then you
should consider an upgrade to CentOS 7 or use Fedora.
New installs New installs
============ ============
@ -40,7 +38,7 @@ New installs
3. If you have chosen to change the zoneminder mysql credentials to something 3. If you have chosen to change the zoneminder mysql credentials to something
other than zmuser/zmpass then you must now edit /etc/zm.conf. Change other than zmuser/zmpass then you must now edit /etc/zm.conf. Change
ZM_DB_USER and ZM_DB_PASS to the values you created in step 2. ZM_DB_USER and ZM_DB_PASS to the values you created in the previous step.
Additionally, you must also edit Additionally, you must also edit
/usr/share/zoneminder/www/api/app/Config/database.php in a similar manner. /usr/share/zoneminder/www/api/app/Config/database.php in a similar manner.
@ -55,11 +53,15 @@ New installs
If you are not sure of the proper timezone specification to use, look at If you are not sure of the proper timezone specification to use, look at
http://php.net/date.timezone http://php.net/date.timezone
5. Verify the default ZoneMinder Apache configuration meets your needs: 5. Install mod_ssl or configure /etc/httpd/conf.d/zoneminder.conf to meet your
needs. This package comes preconfigured for HTTPS using the default self
signed certificate on your system. The recommended way to complete this step
is to simply install mod_ssl:
/etc/httpd/conf.d/zoneminder.conf sudo yum install mod_ssl
When in doubt, leave this configuration as it is. If this does not meet your needs, then read README.https to
learn about alternatives. When in doubt, install mod_ssl.
6. Configure the web server to start automatically: 6. Configure the web server to start automatically:
@ -122,6 +124,7 @@ New installs
/etc/httpd/conf.d. You will have a file called "zoneminder.conf" and there /etc/httpd/conf.d. You will have a file called "zoneminder.conf" and there
may also be a file called "zoneminder.conf.rpmnew". If the rpmnew file may also be a file called "zoneminder.conf.rpmnew". If the rpmnew file
exists, inspect it and merge anything new in that file with zoneminder.conf. exists, inspect it and merge anything new in that file with zoneminder.conf.
Verify the SSL REquirements meet your needs. Read README.https if necessary.
4. Upgrade the database before starting ZoneMinder. 4. Upgrade the database before starting ZoneMinder.

View File

@ -1,17 +1,19 @@
What's New What's New
========== ==========
1. Due to the active state of the ZoneMinder project, we now recommend granting 1. The Apache ScriptAlias has been changed from "/cgi-bin/zm/zms" to
"/cgi-bin-zm/zms". This has been to done to avoid this bug:
https://bugzilla.redhat.com/show_bug.cgi?id=973067
IMPORTANT: You must manually verify the value of PATH_ZMS under Options.
Make sure it is set to "/cgi-bin-zm/nph-zms". Failure to do so will result
in a broken system. You have been warned.
2. Due to the active state of the ZoneMinder project, we now recommend granting
ALL permission to the ZoneMinder mysql account. This change must be done ALL permission to the ZoneMinder mysql account. This change must be done
manually before ZoneMinder will run. See the installation steps below. manually before ZoneMinder will run. See the installation steps below.
2. A new permission group called "Groups" has been added. This allows the 3. This package uses the HTTPS protocol by default to access the web portal.
system administrator to assign "view", "edit", or "none" permission to
normal users, without giving them access to the rest of the ZoneMinder
system. During an upgrade, existing accounts will default to a Groups
permission of "none".
3. This package now requires the HTTPS protocol to access the web portal.
Requests using HTTP will auto-redirect to HTTPS. See README.https for Requests using HTTP will auto-redirect to HTTPS. See README.https for
more information. more information.
@ -74,12 +76,22 @@ New installs
SELINUX line from "enforcing" to "disabled". This change will take SELINUX line from "enforcing" to "disabled". This change will take
effect after a reboot. effect after a reboot.
6. Now start the web server: 6. Install mod_ssl or configure /etc/httpd/conf.d/zoneminder.conf to meet your
needs. This package comes preconfigured for HTTPS using the default self
signed certificate on your system. The recommended way to complete this step
is to simply install mod_ssl:
sudo yum install mod_ssl
If this does not meet your needs, then read README.https to
learn about alternatives. When in doubt, install mod_ssl.
7. Now start the web server:
sudo systemctl enable httpd sudo systemctl enable httpd
sudo systemctl start httpd sudo systemctl start httpd
7. Now start zoneminder: 8. Now start zoneminder:
sudo systemctl enable zoneminder sudo systemctl enable zoneminder
sudo systemctl start zoneminder sudo systemctl start zoneminder
@ -118,6 +130,7 @@ Upgrades
/etc/httpd/conf.d. You will have a file called "zoneminder.conf" and there /etc/httpd/conf.d. You will have a file called "zoneminder.conf" and there
may also be a file called "zoneminder.conf.rpmnew". If the rpmnew file may also be a file called "zoneminder.conf.rpmnew". If the rpmnew file
exists, inspect it and merge anything new in that file with zoneminder.conf. exists, inspect it and merge anything new in that file with zoneminder.conf.
Verify the SSL REquirements meet your needs. Read README.https if necessary.
4. Upgrade the database before starting ZoneMinder. 4. Upgrade the database before starting ZoneMinder.

View File

@ -4,7 +4,7 @@
%define zmgid_final apache %define zmgid_final apache
Name: zoneminder Name: zoneminder
Version: 1.29.0 Version: 1.30.0
Release: 1%{?dist} Release: 1%{?dist}
Summary: A camera monitoring and analysis tool Summary: A camera monitoring and analysis tool
Group: System Environment/Daemons Group: System Environment/Daemons
@ -30,7 +30,7 @@ BuildRequires: libcurl-devel vlc-devel ffmpeg-devel polkit-devel
# cmake needs the following installed at build time due to the way it auto-detects certain parameters # cmake needs the following installed at build time due to the way it auto-detects certain parameters
BuildRequires: httpd ffmpeg BuildRequires: httpd ffmpeg
Requires: httpd php php-gd php-mysql mysql-server libjpeg-turbo cambozola polkit net-tools mod_ssl Requires: httpd php php-gd php-mysql mysql-server libjpeg-turbo cambozola polkit net-tools
Requires: psmisc perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Requires: psmisc perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Requires: perl(DBD::mysql) perl(Archive::Tar) perl(Archive::Zip) Requires: perl(DBD::mysql) perl(Archive::Tar) perl(Archive::Zip)
Requires: perl(MIME::Entity) perl(MIME::Lite) perl(Net::SMTP) perl(Net::FTP) Requires: perl(MIME::Entity) perl(MIME::Lite) perl(Net::SMTP) perl(Net::FTP)
@ -69,6 +69,7 @@ too much degradation of performance.
./utils/zmeditconfigdata.sh ZM_OPT_CONTROL yes ./utils/zmeditconfigdata.sh ZM_OPT_CONTROL yes
./utils/zmeditconfigdata.sh ZM_CHECK_FOR_UPDATES no ./utils/zmeditconfigdata.sh ZM_CHECK_FOR_UPDATES no
./utils/zmeditconfigdata.sh ZM_DYN_SHOW_DONATE_REMINDER no ./utils/zmeditconfigdata.sh ZM_DYN_SHOW_DONATE_REMINDER no
./utils/zmeditconfigdata.sh ZM_OPT_FAST_DELETE no
%build %build
# Have to override CMAKE_INSTALL_LIBDIR for cmake < 2.8.7 due to this bug: # Have to override CMAKE_INSTALL_LIBDIR for cmake < 2.8.7 due to this bug:
@ -98,8 +99,12 @@ echo -e "\nCreating and installing a ZoneMinder SELinux policy module. Please wa
# Upgrade from a previous version of zoneminder # Upgrade from a previous version of zoneminder
if [ $1 -eq 2 ] ; then if [ $1 -eq 2 ] ; then
# Add any new PTZ control configurations to the database (will not overwrite)
%{_bindir}/zmcamtool.pl --import >/dev/null 2>&1 || :
# Freshen the database # Freshen the database
/usr/bin/zmupdate.pl -f %{_bindir}/zmupdate.pl -f >/dev/null 2>&1 || :
# We can't run this automatically when new sql account permissions need to # We can't run this automatically when new sql account permissions need to
# be manually added first # be manually added first
@ -154,14 +159,16 @@ rm -rf %{_docdir}/%{name}-%{version}
%{_bindir}/zmwatch.pl %{_bindir}/zmwatch.pl
%{_bindir}/zmcamtool.pl %{_bindir}/zmcamtool.pl
%{_bindir}/zmsystemctl.pl %{_bindir}/zmsystemctl.pl
%{_bindir}/zmtelemetry.pl
%{_bindir}/zmx10.pl %{_bindir}/zmx10.pl
#%{_bindir}/zmonvif-probe.pl %{_bindir}/zmonvif-probe.pl
%{perl_vendorlib}/ZoneMinder* %{perl_vendorlib}/ZoneMinder*
%{perl_vendorarch}/auto/ZoneMinder/.packlist %{perl_vendorarch}/auto/ZoneMinder/.packlist
#%{perl_vendorlib}/ONVIF* %{perl_vendorarch}/auto/ONVIF/.packlist
#%{perl_vendorlib}/WSDiscovery* %{perl_vendorlib}/ONVIF*
#%{perl_vendorlib}/WSSecurity* %{perl_vendorlib}/WSDiscovery*
%{perl_vendorlib}/WSSecurity*
%{_mandir}/man*/* %{_mandir}/man*/*
%dir %{_libexecdir}/%{name} %dir %{_libexecdir}/%{name}
%{_libexecdir}/%{name}/cgi-bin %{_libexecdir}/%{name}/cgi-bin
@ -182,6 +189,9 @@ rm -rf %{_docdir}/%{name}-%{version}
%dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_localstatedir}/spool/zoneminder-upload %dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_localstatedir}/spool/zoneminder-upload
%changelog %changelog
* Thu Mar 3 2016 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.30.0
- Bump version fo 1.30.0 release.
* Tue Sep 8 2015 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.28.1 * Tue Sep 8 2015 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.28.1
- Require https, freshen dB on updates. - Require https, freshen dB on updates.

View File

@ -6,7 +6,7 @@
%global _hardened_build 1 %global _hardened_build 1
Name: zoneminder Name: zoneminder
Version: 1.29.0 Version: 1.30.0
Release: 1%{?dist} Release: 1%{?dist}
Summary: A camera monitoring and analysis tool Summary: A camera monitoring and analysis tool
Group: System Environment/Daemons Group: System Environment/Daemons
@ -32,7 +32,7 @@ BuildRequires: ffmpeg ffmpeg-devel perl(X10::ActiveHome) perl(Astro::SunTime)
# cmake needs the following installed at build time due to the way it auto-detects certain parameters # cmake needs the following installed at build time due to the way it auto-detects certain parameters
BuildRequires: httpd polkit-devel BuildRequires: httpd polkit-devel
Requires: httpd php php-gd php-mysql mariadb-server cambozola polkit net-tools mod_ssl Requires: httpd php php-gd php-mysql mariadb-server cambozola polkit net-tools
Requires: psmisc libjpeg-turbo vlc-core libcurl Requires: psmisc libjpeg-turbo vlc-core libcurl
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Requires: perl(DBD::mysql) perl(Archive::Tar) perl(Archive::Zip) Requires: perl(DBD::mysql) perl(Archive::Tar) perl(Archive::Zip)
@ -65,6 +65,7 @@ too much degradation of performance.
./utils/zmeditconfigdata.sh ZM_OPT_CONTROL yes ./utils/zmeditconfigdata.sh ZM_OPT_CONTROL yes
./utils/zmeditconfigdata.sh ZM_CHECK_FOR_UPDATES no ./utils/zmeditconfigdata.sh ZM_CHECK_FOR_UPDATES no
./utils/zmeditconfigdata.sh ZM_DYN_SHOW_DONATE_REMINDER no ./utils/zmeditconfigdata.sh ZM_DYN_SHOW_DONATE_REMINDER no
./utils/zmeditconfigdata.sh ZM_OPT_FAST_DELETE no
%build %build
%cmake \ %cmake \
@ -96,8 +97,12 @@ fi
# Upgrade from a previous version of zoneminder # Upgrade from a previous version of zoneminder
if [ $1 -eq 2 ] ; then if [ $1 -eq 2 ] ; then
# Add any new PTZ control configurations to the database (will not overwrite)
%{_bindir}/zmcamtool.pl --import >/dev/null 2>&1 || :
# Freshen the database # Freshen the database
/usr/bin/zmupdate.pl -f %{_bindir}/zmupdate.pl -f >/dev/null 2>&1 || :
# We can't run this automatically when new sql account permissions need to # We can't run this automatically when new sql account permissions need to
# be manually added first # be manually added first
@ -163,12 +168,16 @@ fi
%{_bindir}/zmwatch.pl %{_bindir}/zmwatch.pl
%{_bindir}/zmcamtool.pl %{_bindir}/zmcamtool.pl
%{_bindir}/zmsystemctl.pl %{_bindir}/zmsystemctl.pl
%{_bindir}/zmtelemetry.pl
%{_bindir}/zmx10.pl %{_bindir}/zmx10.pl
%{_bindir}/zmonvif-probe.pl
%{perl_vendorlib}/ZoneMinder* %{perl_vendorlib}/ZoneMinder*
%{perl_vendorarch}/auto/ZoneMinder/.packlist %{perl_vendorarch}/auto/ZoneMinder/.packlist
#%{perl_vendorlib}/%{_arch}-linux-thread-multi/auto/ZoneMinder* %{perl_vendorarch}/auto/ONVIF/.packlist
#%{perl_archlib}/ZoneMinder* %{perl_vendorlib}/ONVIF*
%{perl_vendorlib}/WSDiscovery*
%{perl_vendorlib}/WSSecurity*
%{_mandir}/man*/* %{_mandir}/man*/*
%dir %{_libexecdir}/zoneminder %dir %{_libexecdir}/zoneminder
%{_libexecdir}/zoneminder/cgi-bin %{_libexecdir}/zoneminder/cgi-bin
@ -191,6 +200,9 @@ fi
%changelog %changelog
* Thu Mar 3 2016 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.30.0
- Bump version fo 1.30.0 release.
* Mon Sep 7 2015 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.28.1 * Mon Sep 7 2015 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.28.1
- Require https, disable selinux module, freshen dB on updates. - Require https, disable selinux module, freshen dB on updates.

View File

@ -2,12 +2,42 @@ Source: zoneminder
Section: net Section: net
Priority: optional Priority: optional
Maintainer: Isaac Connor <iconnor@connortechnology.com> Maintainer: Isaac Connor <iconnor@connortechnology.com>
Build-Depends: debhelper (>= 9), autoconf, automake, quilt, libphp-serialization-perl, libgnutls-dev, libmysqlclient-dev | libmariadbclient-dev, libdbd-mysql-perl, libdate-manip-perl, libwww-perl, libjpeg8-dev|libjpeg9-dev|libjpeg62-turbo-dev, libpcre3-dev, libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev, libv4l-dev (>= 0.8.3), libbz2-dev, libtool, libsys-mmap-perl, ffmpeg | libav-tools, libavdevice-dev, libdevice-serialport-perl, libpcre3, libarchive-zip-perl, libmime-lite-perl, dh-autoreconf, libvlccore-dev, libvlc-dev, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev, libgcrypt11-dev, libpolkit-gobject-1-dev Build-Depends: debhelper (>= 9), autoconf, automake, quilt, dh-autoreconf, libtool
, libgnutls-dev
, libmysqlclient-dev | libmariadbclient-dev
, libjpeg8-dev|libjpeg9-dev|libjpeg62-turbo-dev
, libpcre3-dev
, libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev
, libv4l-dev (>= 0.8.3)
, libbz2-dev
, libavdevice-dev
, libvlccore-dev, libvlc-dev
, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev
, libgcrypt11-dev, libpolkit-gobject-1-dev
Standards-Version: 3.9.4 Standards-Version: 3.9.4
Package: zoneminder Package: zoneminder
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, apache2, libapache2-mod-php5 | libapache2-mod-fcgid, php5, php5-mysql|php5-mysqlnd, libphp-serialization-perl, libdate-manip-perl, libmime-lite-perl, libmime-tools-perl, mariadb-client|mysql-client|mysql-client-5.6, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl, libpcre3, ffmpeg | libav-tools, rsyslog | system-log-daemon, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl, libavdevice53 | libavdevice55, libjpeg8|libjpeg9|libjpeg62-turbo, zip, libnet-sftp-foreign-perl, libio-pty-perl, libexpect-perl, libvlccore5 | libvlccore7 | libvlccore8, libvlc5, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev, libpolkit-gobject-1-0, liburi-encode-perl, php5-gd Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
, apache2, libapache2-mod-php5 | libapache2-mod-fcgid, php5, php5-mysql|php5-mysqlnd
, mariadb-client|mysql-client|mysql-client-5.6
, libpcre3
, ffmpeg | libav-tools
, rsyslog | system-log-daemon
, libphp-serialization-perl, libdate-manip-perl, libmime-lite-perl, libmime-tools-perl
, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl
, libdbd-mysql-perl
, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl
, libnet-sftp-foreign-perl, libio-pty-perl, libexpect-perl, liburi-encode-perl
, libdata-dump-perl, libclass-std-fast-perl, libsoap-wsdl-perl, libio-socket-multicast-perl, libdigest-sha-perl
, libsys-cpu-perl, libsys-meminfo-perl
, libavdevice53 | libavdevice55
, libjpeg8|libjpeg9|libjpeg62-turbo
, zip
, libvlccore5 | libvlccore7 | libvlccore8, libvlc5
, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev
, libpolkit-gobject-1-0
, php5-gd
Recommends: mysql-server|mariadb-server Recommends: mysql-server|mariadb-server
Description: Video camera security and surveillance solution Description: Video camera security and surveillance solution
ZoneMinder is intended for use in single or multi-camera video security ZoneMinder is intended for use in single or multi-camera video security

View File

@ -525,7 +525,7 @@ zoneminder (1.22.3-7) unstable; urgency=low
zoneminder (1.22.3-6) unstable; urgency=low zoneminder (1.22.3-6) unstable; urgency=low
* Removed a similar bash only statment from zmpkg.pl * Removed a similar bash only statement from zmpkg.pl
(closes:414882) (closes:414882)
-- Peter Howard <pjh@northern-ridge.com.au> Sat, 14 Apr 2007 11:46:56 +1000 -- Peter Howard <pjh@northern-ridge.com.au> Sat, 14 Apr 2007 11:46:56 +1000

View File

@ -7,20 +7,15 @@ Build-Depends: debhelper (>= 9), python-sphinx | python3-sphinx, apache2-dev, dh
,cmake ,cmake
,libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev, libavdevice-dev ,libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev, libavdevice-dev
,libbz2-dev ,libbz2-dev
,libdate-manip-perl
,libdbd-mysql-perl
,libgcrypt-dev ,libgcrypt-dev
,libcurl4-gnutls-dev ,libcurl4-gnutls-dev
,libgnutls-openssl-dev ,libgnutls-openssl-dev
,libjpeg8-dev|libjpeg9-dev|libjpeg62-turbo-dev, ,libjpeg8-dev|libjpeg9-dev|libjpeg62-turbo-dev,
,libmysqlclient-dev ,libmysqlclient-dev
,libpcre3-dev ,libpcre3-dev
,libphp-serialization-perl
,libpolkit-gobject-1-dev ,libpolkit-gobject-1-dev
,libsys-mmap-perl [!hurd-any]
,libv4l-dev (>= 0.8.3) [!hurd-any] ,libv4l-dev (>= 0.8.3) [!hurd-any]
,libvlc-dev ,libvlc-dev
,libwww-perl
# Unbundled (dh_linktree): # Unbundled (dh_linktree):
,libjs-jquery ,libjs-jquery
,libjs-mootools ,libjs-mootools
@ -35,6 +30,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
,javascript-common ,javascript-common
,libav-tools|ffmpeg ,libav-tools|ffmpeg
,libdate-manip-perl ,libdate-manip-perl
,libdbd-mysql-perl
,libmime-lite-perl ,libmime-lite-perl
,libmime-tools-perl ,libmime-tools-perl
,libphp-serialization-perl ,libphp-serialization-perl
@ -51,10 +47,12 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
,libwww-perl ,libwww-perl
,mysql-client | virtual-mysql-client ,mysql-client | virtual-mysql-client
,perl-modules ,perl-modules
,php5-mysql ,php5-mysql, php5-gd
,policykit-1 ,policykit-1
,rsyslog | system-log-daemon ,rsyslog | system-log-daemon
,zip ,zip
,libdata-dump-perl, libclass-std-fast-perl, libsoap-wsdl-perl, libio-socket-multicast-perl, libdigest-sha-perl
, libsys-cpu-perl, libsys-meminfo-perl
Recommends: ${misc:Recommends} Recommends: ${misc:Recommends}
,libapache2-mod-php5 | php5-fpm ,libapache2-mod-php5 | php5-fpm
,mysql-server | virtual-mysql-server ,mysql-server | virtual-mysql-server

View File

@ -3,14 +3,11 @@ Section: net
Priority: optional Priority: optional
Maintainer: Isaac Connor <iconnor@connortechnology.com> Maintainer: Isaac Connor <iconnor@connortechnology.com>
Build-Depends: debhelper (>= 9), dh-systemd (>= 1.5), autoconf, automake, quilt, libtool, dh-autoreconf Build-Depends: debhelper (>= 9), dh-systemd (>= 1.5), autoconf, automake, quilt, libtool, dh-autoreconf
, libphp-serialization-perl, libgnutls-dev , libgnutls-dev
, libmysqlclient-dev | libmariadbclient-dev, libdbd-mysql-perl , libmysqlclient-dev | libmariadbclient-dev
, libdate-manip-perl, libwww-perl
, libjpeg8-dev|libjpeg9-dev|libjpeg62-turbo-dev, libpcre3-dev , libjpeg8-dev|libjpeg9-dev|libjpeg62-turbo-dev, libpcre3-dev
, libavcodec-ffmpeg-dev, libavformat-ffmpeg-dev, libswscale-ffmpeg-dev, libavutil-ffmpeg-dev, libavdevice-ffmpeg-dev , libavcodec-ffmpeg-dev, libavformat-ffmpeg-dev, libswscale-ffmpeg-dev, libavutil-ffmpeg-dev, libavdevice-ffmpeg-dev
, libv4l-dev (>= 0.8.3), libbz2-dev , libv4l-dev (>= 0.8.3), libbz2-dev
, libsys-mmap-perl
, libdevice-serialport-perl, libpcre3, libarchive-zip-perl, libmime-lite-perl
, libvlccore-dev, libvlc-dev , libvlccore-dev, libvlc-dev
, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev , libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev
, libgcrypt11-dev, libpolkit-gobject-1-dev , libgcrypt11-dev, libpolkit-gobject-1-dev
@ -19,7 +16,24 @@ Homepage: http://www.zoneminder.com/
Package: zoneminder Package: zoneminder
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, apache2, libapache2-mod-php5 | libapache2-mod-fcgid, php5, php5-mysql|php5-mysqlnd, libphp-serialization-perl, libdate-manip-perl, libmime-lite-perl, libmime-tools-perl, mariadb-client|mysql-client|mysql-client-5.6, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl, libpcre3, ffmpeg, rsyslog | system-log-daemon, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl, libavdevice-ffmpeg56, libjpeg8|libjpeg9|libjpeg62-turbo, zip, libnet-sftp-foreign-perl, libio-pty-perl, libexpect-perl, libvlccore5 | libvlccore7 | libvlccore8, libvlc5, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev, libpolkit-gobject-1-0, liburi-encode-perl, php5-gd Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
, apache2, libapache2-mod-php5 | libapache2-mod-fcgid, php5, php5-mysql|php5-mysqlnd
, mariadb-client|mysql-client|mysql-client-5.6
, libphp-serialization-perl, libdate-manip-perl, libmime-lite-perl, libmime-tools-perl
, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl
, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl
, libnet-sftp-foreign-perl , libio-pty-perl, libexpect-perl , liburi-encode-perl , libdbd-mysql-perl
, libdata-dump-perl, libclass-std-fast-perl, libsoap-wsdl-perl, libio-socket-multicast-perl, libdigest-sha-perl
, libsys-cpu-perl, libsys-meminfo-perl
, libpcre3
, ffmpeg, libavdevice-ffmpeg56
, rsyslog | system-log-daemon
, libjpeg8|libjpeg9|libjpeg62-turbo
, zip
, libvlccore5 | libvlccore7 | libvlccore8, libvlc5
, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev
, libpolkit-gobject-1-0
, php5-gd
Recommends: mysql-server|mariadb-server Recommends: mysql-server|mariadb-server
Description: Video camera security and surveillance solution Description: Video camera security and surveillance solution
ZoneMinder is intended for use in single or multi-camera video security ZoneMinder is intended for use in single or multi-camera video security

View File

@ -525,7 +525,7 @@ zoneminder (1.22.3-7) unstable; urgency=low
zoneminder (1.22.3-6) unstable; urgency=low zoneminder (1.22.3-6) unstable; urgency=low
* Removed a similar bash only statment from zmpkg.pl * Removed a similar bash only statement from zmpkg.pl
(closes:414882) (closes:414882)
-- Peter Howard <pjh@northern-ridge.com.au> Sat, 14 Apr 2007 11:46:56 +1000 -- Peter Howard <pjh@northern-ridge.com.au> Sat, 14 Apr 2007 11:46:56 +1000

View File

@ -7,19 +7,19 @@ Build-Depends: debhelper (>= 9), dh-systemd, python-sphinx | python3-sphinx, apa
,cmake ,cmake
,libavcodec-ffmpeg-dev, libavformat-ffmpeg-dev, libswscale-ffmpeg-dev, libavutil-ffmpeg-dev, libavdevice-ffmpeg-dev ,libavcodec-ffmpeg-dev, libavformat-ffmpeg-dev, libswscale-ffmpeg-dev, libavutil-ffmpeg-dev, libavdevice-ffmpeg-dev
,libbz2-dev ,libbz2-dev
,libdate-manip-perl
,libdbd-mysql-perl
,libgcrypt-dev ,libgcrypt-dev
,libcurl4-gnutls-dev ,libcurl4-gnutls-dev
,libgnutls-openssl-dev ,libgnutls-openssl-dev
,libjpeg-dev ,libjpeg-dev
,libmysqlclient-dev ,libmysqlclient-dev
,libpcre3-dev ,libpcre3-dev
,libphp-serialization-perl
,libpolkit-gobject-1-dev ,libpolkit-gobject-1-dev
,libsys-mmap-perl [!hurd-any]
,libv4l-dev (>= 0.8.3) [!hurd-any] ,libv4l-dev (>= 0.8.3) [!hurd-any]
,libvlc-dev ,libvlc-dev
,libdate-manip-perl
,libdbd-mysql-perl
,libphp-serialization-perl
,libsys-mmap-perl [!hurd-any]
,libwww-perl ,libwww-perl
# Unbundled (dh_linktree): # Unbundled (dh_linktree):
,libjs-jquery ,libjs-jquery
@ -35,12 +35,12 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
,javascript-common ,javascript-common
,libav-tools ,libav-tools
,libdate-manip-perl ,libdate-manip-perl
,libdbd-mysql-perl
,libmime-lite-perl ,libmime-lite-perl
,libmime-tools-perl ,libmime-tools-perl
,libphp-serialization-perl ,libphp-serialization-perl
,libmodule-load-conditional-perl ,libmodule-load-conditional-perl
,libnet-sftp-foreign-perl ,libnet-sftp-foreign-perl
# ,libzoneminder-perl (= ${source:Version})
,libarchive-zip-perl ,libarchive-zip-perl
,libdbd-mysql-perl ,libdbd-mysql-perl
,libdevice-serialport-perl ,libdevice-serialport-perl
@ -49,6 +49,12 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
,libsys-mmap-perl [!hurd-any] ,libsys-mmap-perl [!hurd-any]
,liburi-encode-perl ,liburi-encode-perl
,libwww-perl ,libwww-perl
,libdata-dump-perl
,libclass-std-fast-perl
,libsoap-wsdl-perl
,libio-socket-multicast-perl
,libdigest-sha-perl
,libsys-cpu-perl, libsys-meminfo-perl
,mysql-client | virtual-mysql-client ,mysql-client | virtual-mysql-client
,perl-modules ,perl-modules
,php5-mysql ,php5-mysql

View File

@ -78,6 +78,8 @@ Depends: libzoneminder-perl (= ${source:Version}),
libmime-tools-perl, libnet-sftp-foreign-perl, libphp-serialization-perl, libmime-tools-perl, libnet-sftp-foreign-perl, libphp-serialization-perl,
debconf, ffmpeg | libav-tools, rsyslog | system-log-daemon, zip, debconf, ffmpeg | libav-tools, rsyslog | system-log-daemon, zip,
policykit-1, apache2, libmp4v2-2, libpcre++0 policykit-1, apache2, libmp4v2-2, libpcre++0
, libsys-cpu-perl, libsys-meminfo-perl
, libdata-dump-perl, libclass-std-fast-perl, libsoap-wsdl-perl, libio-socket-multicast-perl, libdigest-sha-perl
Description: Core binaries and perl scripts for ZoneMinder Description: Core binaries and perl scripts for ZoneMinder
ZoneMinder is a video camera security and surveillance solution. ZoneMinder is a video camera security and surveillance solution.
. .

View File

@ -238,7 +238,7 @@ The second approach is to use diagnostic images which are saved copies of the in
There are two kinds of diagnostic images which are and are written (and continuously overwritten) to the top level monitor event directory. If an event occurs then the files are additionally copied to the event directory and renamed with the appropriate frame number as a prefix. There are two kinds of diagnostic images which are and are written (and continuously overwritten) to the top level monitor event directory. If an event occurs then the files are additionally copied to the event directory and renamed with the appropriate frame number as a prefix.
The first set are produced by the monitor on the image as a whole. The diag-r.jpg image is the current reference image against which all individual frames are compared and the diag-d.jpg image is the delta image highlighting the difference between the reference image and the last analysed image. In this images identicial pixels will be black and the more different a pixel is the whiter it will be. Viewing this image and determining the colour of the pixels is a good way of getting a feel for the pixel differences you might expect (often more than you think). The first set are produced by the monitor on the image as a whole. The diag-r.jpg image is the current reference image against which all individual frames are compared and the diag-d.jpg image is the delta image highlighting the difference between the reference image and the last analysed image. In this images identical pixels will be black and the more different a pixel is the whiter it will be. Viewing this image and determining the colour of the pixels is a good way of getting a feel for the pixel differences you might expect (often more than you think).
The second set of diag images are labelled as diag-<zoneid>-<stage>.jpg where zoneid is the id of the zone in question (Smile) and the stage is where in the alarm check process the image is generated from. So if you have several zones you can expect to see multiple files. Also these files are only interested in what is happening in their zone only and will ignore anything else outside of the zone. The stages that each number represents are as follows, The second set of diag images are labelled as diag-<zoneid>-<stage>.jpg where zoneid is the id of the zone in question (Smile) and the stage is where in the alarm check process the image is generated from. So if you have several zones you can expect to see multiple files. Also these files are only interested in what is happening in their zone only and will ignore anything else outside of the zone. The stages that each number represents are as follows,
@ -617,14 +617,14 @@ How can I trouble shoot the hardware and/or software?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Here are some commands to get information about your hardware. Some commands are distribution dependent. Here are some commands to get information about your hardware. Some commands are distribution dependent.
* ``[[lspci]] -vv`` -- Returns lots of detailed info. Check for conflicting interrupts or port assignments. You can sometimes alter interrupts/ ports in bios. Try a different pci slot to get a clue if it is HW conflict (comand provided by the pciutils package). * ``[[lspci]] -vv`` -- Returns lots of detailed info. Check for conflicting interrupts or port assignments. You can sometimes alter interrupts/ ports in bios. Try a different pci slot to get a clue if it is HW conflict (command provided by the pciutils package).
* ``[[scanpci]] -v`` -- Gives you information from your hardware EPROM * ``[[scanpci]] -v`` -- Gives you information from your hardware EPROM
* ``[[lsusb]] -vv`` -- Returns lots of detail about USB devices (camand provided by usbutils package). * ``[[lsusb]] -vv`` -- Returns lots of detail about USB devices (camand provided by usbutils package).
* ``[[dmesg]]`` -- Shows you how your hardware initialized (or didn't) on boot-up. You will get the most use of this. * ``[[dmesg]]`` -- Shows you how your hardware initialized (or didn't) on boot-up. You will get the most use of this.
* ``[[v4l-info]]`` -- to see how driver is talking to card. look for unusual values. * ``[[v4l-info]]`` -- to see how driver is talking to card. look for unusual values.
* ``[[modinfo bttv]]`` -- some bttv driver stats. * ``[[modinfo bttv]]`` -- some bttv driver stats.
* ``[[zmu]] -m 0 -q -v`` -- Returns various information regarding a monitor configuration. * ``[[zmu]] -m 0 -q -v`` -- Returns various information regarding a monitor configuration.
* ``[[ipcs]] `` -- Provides information on the ipc facilities for which the calling process has read acccess. * ``[[ipcs]] `` -- Provides information on the ipc facilities for which the calling process has read access.
* ``[[ipcrm]] `` -- The ipcrm command can be used to remove an IPC object from the kernel. * ``[[ipcrm]] `` -- The ipcrm command can be used to remove an IPC object from the kernel.
* ``cat /proc/interrupts`` -- This will dispaly what interrupts your hardware is using. * ``cat /proc/interrupts`` -- This will dispaly what interrupts your hardware is using.

View File

@ -13,7 +13,7 @@ ZoneMinder Documentation
Welcome to ZoneMinder's documentation, the following resources are available Welcome to ZoneMinder's documentation, the following resources are available
:doc:`installationguide/index` :doc:`installationguide/index`
Many distrubution repos only hold older versions of ZoneMinder, current versions contain many bug fixes and updated functionality. Instructions here for installing updated packages or compiling from source. Many distribution repos only hold older versions of ZoneMinder, current versions contain many bug fixes and updated functionality. Instructions here for installing updated packages or compiling from source.
:doc:`userguide/index` :doc:`userguide/index`
Guide to setting up ZoneMinder for the first time and detailed guides for using the ZoneMinder front end. Guide to setting up ZoneMinder for the first time and detailed guides for using the ZoneMinder front end.

View File

@ -1,5 +0,0 @@
Centos
======

View File

@ -1,4 +0,0 @@
Fedora
======

View File

@ -8,6 +8,5 @@ Contents:
ubuntu ubuntu
debian debian
fedora redhat
centos
multiserver multiserver

View File

@ -0,0 +1,203 @@
Redhat
======
.. contents::
These instructions apply to all Redhat distros and their clones, including but not limited to: Fedora, RHEL, CentOS, Scientific Linux, and others. While the installation instructions are the same for each distro, the reason why one might use one distro over the other is different. A short description follows, which is intended to help you chose what distro best fits your needs.
Background: RHEL, CentOS, and Clones
------------------------------------
These distributions are classified as enterprise operating systems and have a long operating lifetime of many years. By design, they will not have the latest and greatest versions of any package. Instead, stable packages are the emphasis.
Replacing any core package in these distributions with a newer package from a third party is expressly verboten. The ZoneMinder development team will not do this, and neither should you. If you have the perception that you've got to have a newer version of mysql, gnome, apache, etc. then, rather than upgrade these packages, you should instead consider using a different distribution such as Fedora.
The ZoneMinder team will not provide support for systems which have had any core package replaced with a package from a third party.
Background: Fedora
------------------------------------
One can think of Fedora as RHEL or CentOS Beta. This is in fact, what it is. Fedora is primarily geared towards development and testing of newer, sometimes bleeding edge, packages. The ZoneMinder team uses this distro to determine the interoperability of ZoneMinder with the latest and greatest versions of packages like mysql, apache, systemd, and others. If a problem is detected, it will be addressed long before it makes it way into RHEL.
Fedora has a short life-cycle of just 6 months. However, Fedora, and consequently ZoneMinder, is available on armv7 architecture. Rejoice, Raspberry Pi users!
If you desire newer packages than what is available in RHEL or CentOS, you should consider using Fedora.
Zmrepo A ZoneMinder RPM Repository
------------------------------------
Zmrepo is a turn key solution. It will install all of ZoneMinder's dependencies for you. This is the easiest and the recommended way to install ZoneMinder on any system running a Redhat based distribution.
Zmrepo supports the two most recent, major, releases of each Redhat based distro.
The following notes are based on real problems which have occurred:
- Zmrepo assumes you have installed the underlying distrubution **using the official installation media for that distro**. Third party "Spins" are not supported and may not work correctly.
- ZoneMinder is intended to be installed in an environment dedicated to ZoneMinder. While ZoneMinder will play well with many applications, some invariably will not. Astericks is one such example.
- Be advised that you need to start with a clean system before using zmrepo.
- If you have previously installed ZoneMinder from-source, then your system is **NOT** clean. You must manually search for and delete all ZoneMinder related files before using zmrepo (look under /usr/local). Make uninstall helps, but it will not do this for you correctly. You WILL have problems if you ignore this step.
- It is not necessary, and not recommended, to install a LAMP stack ahead of time.
- Disable other third party repos and uninstall any of ZoneMinder's third party dependencies, which might already be on the system, especially ffmpeg and vlc. Attempting to install dependencies yourself often causes problems.
- Each ZoneMinder rpm includes a README file under /usr/share/doc. You must follow the all steps in this README file, precisely, each and every time ZoneMinder is installed or upgraded. **Failure to do so is guaranteed to result in a non-functional system.**
To begin the installation of ZoneMinder on your Redhat based distro, please navigate to: http://zmrepo.zoneminder.com
How to Build a (Custom) ZoneMinder Package
------------------------------------------
If you are looking to do development or the packages in zmrepo just don't suit you, then you should follow these steps to learn how to build your own ZoneMinder RPM.
Background
**********
The following method documents how to build ZoneMinder into an RPM package, compatible with Fedora, Redhat, CentOS, and other compatible clones. This is exactly how the RPMS in zmrepo are built.
The method documented below was chosen because:
- All of ZoneMinder's dependencies are downloaded and installed automatically
- Cross platform capable. The build host does not have to be the same distro or release version as the target.
- Once your build environment is set up, few steps are required to run the build again in the future.
- Troubleshooting becomes easier if we are all building ZoneMinder the same way.
The build instructions below make use of a custom script called "buildzm.sh". Advanced users are encouraged to view the contents of this script. Notice that the script doesn't really do a whole lot. The goal of the script is to simply make the process a little easier for the first time user. Once you become familar with the build process, you can issue the mock commands found in the buildzm.sh script yourself if you so desire.
***IMPORTANT***
Certain commands in these instructions require root privileges while other commands do not. Pay close attention to this. If the instructions below state to issue a command without a “sudo” prefix, then you should *not* be root while issuing the command. Getting this incorrect will result in a failed build.
Set Up Your Environment
***********************
Before you begin, set up an rpmbuild environment by following `this guide <http://wiki.centos.org/HowTos/SetupRpmBuildEnvironment>`_ by the CentOS developers.
Next, navigate to `Zmrepo <http://zmrepo.zoneminder.com/>`_, and follow the instructions to enable zmrepo on your system.
With zmrepo enabled, issue the following command:
::
sudo yum install zmrepo-mock-configs mock
Add your user account to the group mock:
::
sudo gpasswd -a {your account name} mock
Your build environment is now set up.
Build from SRPM
***************
To continue, you need a ZoneMinder SRPM. For starters, let's use one of the SRPMS from zmrepo. Go browse the `Zmrepo <http://zmrepo.zoneminder.com/>`_ site and choose an appropriate SRPM and place it into the ~/rpmbuild/SRPMS folder.
For CentOS 7, I have chosen the following SRPM:
::
wget -P ~/rpmbuild/SRPMS http://zmrepo.zoneminder.com/el/7/SRPMS/zoneminder-1.28.1-2.el7.centos.src.rpm
Now comes the fun part. To build ZoneMinder, issue the following command:
::
buildzm.sh zmrepo-el7-x86_64 ~/rpmbuild/SRPMS/zoneminder-1.28.1-2.el7.centos.src.rpm
Want to build ZoneMinder for Fedora, instead of CentOS, from the same host? Once you download the Fedora SRPM, issue the following:
::
buildzm.sh zmrepo-f21-x86_64 ~/rpmbuild/SRPMS/zoneminder-1.28.1-1.fc21.src.rpm
Notice that the buildzm.sh tool requires the following parameters:
::
buildzm.sh MOCKCONFIG ZONEMINDER_SRPM
The list of available Mock config files are available here:
::
ls /etc/mock/zmrepo*.cfg
You choose the config file based on the desired distro (e.g. el6, el7, f20, f21) and basearch (e.g. x86, x86_64, arhmhfp). Notice that, when specifying the Mock config as a commandline parameter, you should leave off the ".cfg" filename extension.
Installation
************
Once the build completes, you will be presented with a folder containing the RPM's that were built. Copy the newly built ZoneMinder RPM to the desired system, enable zmrepo per the instruction on the `Zmrepo <http://zmrepo.zoneminder.com/>`_
website, and then install the rpm by issuing the appropriate yum install command. Finish the installation by following the zoneminder setup instructions in the distro specific readme file, named README.{distroname}, which will be installed into the /usr/share/doc/zoneminder* folder.
Finally, you may want to consider editing the zmrepo repo file under /etc/yum.repos.d and placing an “exclude=zoneminder*” line into the config file. This will prevent your system from overwriting your manually built RPM with the ZoneMinder RPM found in the repo.
How to Modify the Source Prior to Build
***************************************
Before attempting this part of the instructions, make sure and follow the previous instructions for building one of the unmodified SRPMS from zmrepo. Knowing this part works will assist in troubleshooting should something go wrong.
These instructions may vary depending on what exactly you want to do. The following example assumes you want to build a development snapshot from the master branch.
From the previous instructions, we downloaded a CentOS 7 ZoneMinder SRPM and placed it into ~/rpmbuild/SRPMS. For this example, install it onto your system:
::
rpm -ivh ~/rpmbuild/SRPMS/zoneminder-1.28.1-2.el7.centos.src.rpm
IMPORTANT: This operation must be done with your normal user account. Do *not* perform this command as root.
Make sure you have git installed:
::
sudo yum install git
Now clone the ZoneMinder git repository:
::
cd
git clone https://github.com/ZoneMinder/ZoneMinder
cd ZoneMinder
git submodule init
git submodule update
This will create a sub-folder called ZoneMinder, which will contain the latest development.
We want to turn this into a tarball, but first we need to figure out what to name it. Look here:
::
ls ~/rpmbuild/SOURCES
The tarball from the previsouly installed SRPM should be there. This is the name we will use. For this example, the name is ZoneMinder-1.28.1.tar.gz. From one folder above the local ZoneMinder git repository, execute the following:
::
mv ZoneMinder ZoneMinder-1.28.1
tar -cvzf ~/rpmbuild/SOURCES/ZoneMinder-1.28.1.tar.gz ZoneMinder-1.28.1/*
The trailing "/\*" leaves off the hidden dot "." file and folders from the git repo, which is what we want.
Note that we are overwriting the original tarball. If you wish to keep the original tarball then create a copy prior to creating the new tarball.
Now build a new src.rpm:
::
rpmbuild -bs --nodeps ~/rpmbuild/SPECS/zoneminder.el7.spec
This step will overwrite the SRPM you originally downloaded, so you may want to back it up prior to completing this step. Note that the name of the specfile will vary slightly depending on what distro you are building for.
You should now have a a new SRPM under ~/rpmbuild/SRPMS. In our example, the SRPM is called zoneminder-1.28.1-2.el7.centos.src.rpm. Now follow the previous instructions that describe how to use the buildzm script, using ~/rpmbuild/SRPMS/zoneminder-1.28.1-2.el7.centos.src.rpm as the path to your SRPM.

View File

@ -1,5 +1,5 @@
Ubuntu Ubuntu Instruction
====== ===================
.. contents:: .. contents::
@ -286,192 +286,106 @@ Harder Way: Build Package From Source
------------------------------------------- -------------------------------------------
(These instructions assume installation from source on a ubuntu 15.x+ system) (These instructions assume installation from source on a ubuntu 15.x+ system)
**Step 1:** First make sure you have the needed tools **Step 1:** Grab the package installer script
::
wget https://raw.githubusercontent.com/ZoneMinder/ZoneMinder/master/utils/do_debian_package.sh
chmod a+x do_debian_package.sh
**Step 2:** Update the system
:: ::
sudo apt-get update sudo apt-get update
sudo apt-get install cmake git
**Step 2:** Next up make sure you have all the dependencies
**Step 3** Create the package
To build the latest master snapshot:
:: ::
sudo apt-get install apache2 mysql-server php5 php5-mysql build-essential libmysqlclient-dev libssl-dev libbz2-dev libpcre3-dev libdbi-perl libarchive-zip-perl libdate-manip-perl libdevice-serialport-perl libmime-perl libpcre3 libwww-perl libdbd-mysql-perl libsys-mmap-perl yasm automake autoconf libjpeg8-dev libjpeg8 apache2 libapache2-mod-php5 php5-cli libphp-serialization-perl libgnutls-dev libjpeg8-dev libavcodec-dev libavformat-dev libswscale-dev libavutil-dev libv4l-dev libtool ffmpeg libnetpbm10-dev libavdevice-dev libmime-lite-perl dh-autoreconf dpatch policykit-1 libpolkit-gobject-1-dev libextutils-pkgconfig-perl libcurl3 libvlc-dev libcurl4-openssl-dev curl php5-gd ./do_debian_package.sh `lsb_release -a 2>/dev/null | grep Codename | awk '{print $2}'` `date +%Y%m%d`01 local master
(you are asked for the mysql root password when installing mysql server - put in a password that you'd like).
**Step 3:** Download ZoneMinder source code and compile+install: To build the latest stable release:
:: ::
git clone https://github.com/ZoneMinder/ZoneMinder.git ./do_debian_package.sh `lsb_release -a 2>/dev/null | grep Codename | awk '{print $2}'` `date +%Y%m%d`01 local stable
cd ZoneMinder/
git submodule init
git submodule update
cmake .
make
sudo make install
**Step 4:** Now make sure your symlinks to events and images are set correctly:
Note that the ``lsb_release -a 2>/dev/null | grep Codename | awk '{print $2}'`` part simply extracts your distribution name - like "vivid", "trusty" etc. You can always replace it by your distro name if you know it. As far as the script goes, it checks if your distro is "trusty" in which case it pulls in pre-systemd release configurations and if its not "trusty" it assumes its based on systemd and pulls in systemd related config files.
(At the end the script will ask if you want to retain the checked out version of zoneminder. If you are a developer and are making local changes, make sure you select "y" so that the next time you do the build process mentioned here, it keeps your changes. Selecting any other value than "y" or "Y" will delete the checked out code and only retain the package)
This should now create a bunch of .deb files
**Step 4:** Install the package
:: ::
sudo ./zmlinkcontent.sh sudo gdebi zoneminder_<version>_<arch>.deb
(example sudo gdebi zoneminder_1.29.0-vivid-2016012001_amd64.deb)
**Step 5:** Now lets make sure ZM has DB permissions to write to the DB:
**This will report DB errors - ignore - you need to configure the DB and some other stuff**
**Step 5:** Post install configuration
:: ::
sudo mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql
mysql -uroot -p -e "grant select,insert,update,delete,create,alter,index,lock tables on zm.* to 'zmuser'@localhost identified by 'zmpass';" mysql -uroot -p -e "grant select,insert,update,delete,create,alter,index,lock tables on zm.* to 'zmuser'@localhost identified by 'zmpass';"
**Step 6:** Now lets create the DB & its tables that ZM needs sudo a2enmod cgi rewrite
::
mysql -uroot -p <db/zm_create.sql
**Step 7:** Now we need to make sure Ubuntu 15 is able to start/stop zoneminder via systemd:
::
sudo cp distros/ubuntu1504_cmake/zoneminder.service /lib/systemd/system
edit **/lib/systemd/system/zoneminder.service** file
* rename **/usr/bin/zmpkg** to **/usr/local/bin/zmpkg** everywhere
(The step above is needed because when you compile from source, it installs to /usr/local/instead of /usr/)
**Step 8:** Now lets make sure systemd recognizes this file
::
sudo systemctl daemon-reload
sudo systemctl enable zoneminder.service
**Step 9:** Now lets work on Zoneminder's apache configuration:
::
sudo cp distros/ubuntu1504_cmake/conf/apache2/zoneminder.conf /etc/apache2/conf-available/
sudo a2enconf zoneminder sudo a2enconf zoneminder
sudo a2enmod cgi
sudo a2enmod rewrite
sudo service apache2 reload
**Step 10:** Edit /etc/apache2/conf-available/zoneminder.conf and change **all** occurrences of:
* **/usr/lib/zoneminder/cgi-bin** to **/usr/local/libexec/zoneminder/cgi-bin** **Step 6:** Fix PHP TimeZone
* **/usr/share/zoneminder** to **/usr/local/share/zoneminder**
After editing your /etc/apache2/conf-available/zoneminder.conf should look like: ``sudo vi /etc/php5/apache2/php.ini``
Look for [Date] and inside it you will see a date.timezone that is commented. remove the comment and specific your timezone. Please make sure the timezone is valid (see http://php.net/manual/en/timezones.php)
Example:
``date.timezone = America/New_York``
**Step 7:** Fix some key permission issues and make sure API works
:: ::
ScriptAlias /zm/cgi-bin "/usr/local/libexec/zoneminder/cgi-bin" sudo chown www-data /etc/zm/zm.conf
<Directory "/usr/local/libexec/zoneminder/cgi-bin"> sudo chown -R www-data /usr/share/zoneminder/www/api/
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
AllowOverride All
Require all granted
</Directory>
Alias /zm /usr/local/share/zoneminder/www
<Directory /usr/local/share/zoneminder/www>
php_flag register_globals off
Options Indexes FollowSymLinks
<IfModule mod_dir.c>
DirectoryIndex index.php
</IfModule>
</Directory>
<Directory /usr/local/share/zoneminder/www/api> **Step 8:** Restart all services
AllowOverride All
</Directory>
**Step 11:** Now lets make sure ZM can read/write to the zoneminder directory:
:: ::
sudo chown -R www-data:www-data /usr/local/share/zoneminder/ sudo service apache2 restart
sudo service zoneminder restart
Check if ZM is running properly
**Step 12:** Make sure you can view Monitor View
1. Open up ZM, configure your monitors and verify you can view Monitor feeds
2. If not, open up ZM console in your browser, go to ``Options->Path`` and make sure ``PATH_ZMS`` is set to ``/zm/cgi-bin/nph-zms`` and restart ZM
**Step 13**: Edit Timezone in PHP
vi /etc/php5/apache2/php.ini
Look for [Date] and inside it you will see a date.timezone
that is commented. remove the comment and specific your timezone.
Please make sure the timezone is valid (see http://php.net/manual/en/timezones.php)
In my case:
:: ::
date.timezone = America/New_York sudo service zoneminder status
**Step 14:** Finally, lets make a config change to apache (needed for htaccess overrides to work for APIs)
Edit /etc/apache2/apache2.conf and add this: **Step 9:** Make sure streaming works - set PATH_ZMS
:: open up ZM console in your browser, go to Options->Path and make sure ``PATH_ZMS`` is set to ``/zm/cgi-bin/nph-zms`` and restart ZM
<Directory /usr/local/share>
AllowOverride All **Step 10:** Make sure everything works
Require all granted
</Directory> * point your browser to http://yourzmip/zm - you should see ZM console running
* point your browser to http://yourzmip/zm/api/host/getVersion.json - you should see an API version
Restart apache * Configure your monitors and make sure its all a-ok
::
sudo service apache2 reload
You are done. Lets proceed to make sure everything works:
Making sure ZM and APIs work:
1. open up a browser and go to ``http://localhost/zm`` - should bring up ZM
2. (OPTIONAL - just for peace of mind) open up a tab and go to ``http://localhost/zm/api`` - should bring up a screen showing CakePHP version with some green color boxes. Green is good. If you see red, or you don't see green, there may be a problem (should not happen). Ignore any warnings in yellow saying "DebugKit" not installed. You don't need it
3. open up a tab in the same browser and go to ``http://localhost/zm/api/host/getVersion.json``
If it responds with something like:
::
{
"version": "1.28.107",
"apiversion": "1.28.107.1"
}
Then your APIs are working
Make sure ZM and APIs work with security:
1. Enable OPT_AUTH in ZM
2. Log out of ZM in browser
3. Open a NEW tab in the SAME BROWSER (important) and go to ``http://localhost/zm/api/host/getVersion.json`` - should give you "Unauthorized" along with a lot more of text
4. Go to another tab in the SAME BROWSER (important) and log into ZM
5. Repeat step 3 and it should give you the ZM and API version
**Congrats** your installation is complete
Suggested changes to MySQL (Optional but recommended)
------------------------------------------------------
For most of you Zoneminder will run just fine with the default MySQL settings. There are a couple of settings that may, in time, provide beneficial especially if you have a number of cameras and many events with a lot of files. One setting we recommend is the "innodb_file_per_table" This will be a default setting in MySQL 5.6 but should be added in MySQL 5.5 which comes with Ubuntu 14.04. A description can be found here: http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html
To add "innodb_file_per_table" edit the my.cnf file:
``vi /etc/mysql/my.cnf``
Under [mysqld] add
``innodb_file_per_table``
Save and exit.
Restart MySQL
``service mysql restart``

View File

@ -35,7 +35,7 @@ Type
Suppresses the detection of motion within it. This can be layered on top of any other zone type, preventing motion within the Inactive zone from being effective for any other zone type. Use inactive zones to cover areas in which nothing notable will ever happen or where you get false alarms that don't relate to what you are trying to monitor. Inactive zones may be overlaid on other zones to blank out areas, and are processed first (with the exception of Privacy zones, see below). As a general practice, you should try and make zones abut each other instead of overlapping to avoid repeated duplicate processing of the same area. Suppresses the detection of motion within it. This can be layered on top of any other zone type, preventing motion within the Inactive zone from being effective for any other zone type. Use inactive zones to cover areas in which nothing notable will ever happen or where you get false alarms that don't relate to what you are trying to monitor. Inactive zones may be overlaid on other zones to blank out areas, and are processed first (with the exception of Privacy zones, see below). As a general practice, you should try and make zones abut each other instead of overlapping to avoid repeated duplicate processing of the same area.
* Privacy * Privacy
Blackens the pixels within it. This can be used if you want to hide some regions in the image if the situation does not allow an other solution. This zone type is different to all the others in that it gets processed as soon as possible during capture (even before the timestamp gets into the image) and not in the analyzing process. So if you add, change or delete a Privacy zone, you don't see the changes in the image until the capture process gets restarted. This will be done automatically, but needs a few seconds. Blackens the pixels within it. This can be used if you want to hide some regions in the image if the situation does not allow another solution. This zone type is different to all the others in that it gets processed as soon as possible during capture (even before the timestamp gets into the image) and not in the analyzing process. So if you add, change or delete a Privacy zone, you don't see the changes in the image until the capture process gets restarted. This will be done automatically, but needs a few seconds.
Preset Preset
The preset chooser sets sensible default values based on computational needs (fast v. best) and sensitivity (low, medium, high.) It is not required that you select a preset, and you can alter any of the parameters after choosing a preset. For a small number of monitors with ZoneMinder running on modern equipment, Best, high sensitivity can be chosen as a good starting point. The preset chooser sets sensible default values based on computational needs (fast v. best) and sensitivity (low, medium, high.) It is not required that you select a preset, and you can alter any of the parameters after choosing a preset. For a small number of monitors with ZoneMinder running on modern equipment, Best, high sensitivity can be chosen as a good starting point.

View File

@ -90,7 +90,7 @@ Saving filters
.. image:: images/filter-save.png .. image:: images/filter-save.png
:width: 400px :width: 400px
When saving filters, if you want the filter to run in the background make sure you select the "Run filter in background" option. When checked, ZoneMinder will make sure the filter is checked regularly. For example, if you want to be notified of new events by email, you sould make sure this is checked. Filters that are configured to run in the background have a "*" next to it. When saving filters, if you want the filter to run in the background make sure you select the "Run filter in background" option. When checked, ZoneMinder will make sure the filter is checked regularly. For example, if you want to be notified of new events by email, you should make sure this is checked. Filters that are configured to run in the background have a "*" next to it.
For example: For example:

View File

@ -65,9 +65,9 @@ own empty screen.
* **B**: Click here to explore the various options of ZoneMinder and how to configure them. You already used this to enable authentication and change style above. Over time, you will find this to have many other things you will want to customize. * **B**: Click here to explore the various options of ZoneMinder and how to configure them. You already used this to enable authentication and change style above. Over time, you will find this to have many other things you will want to customize.
* **C**: This link, when clicked, opens up a color coded log window of what is going on in Zoneminder and often gives you good insight into what is going wrong or right. Note that the color here is red - that is an indication that some error occurred in ZoneMinder. You should click it and investigate. * **C**: This link, when clicked, opens up a color coded log window of what is going on in Zoneminder and often gives you good insight into what is going wrong or right. Note that the color here is red - that is an indication that some error occurred in ZoneMinder. You should click it and investigate.
* **D**: This is the core of ZoneMinder - recording events. It gives you a count of how many events were recorded over the hour, day, week, month. * **D**: This is the core of ZoneMinder - recording events. It gives you a count of how many events were recorded over the hour, day, week, month.
* **E**: These are the "Zones". Zones are areas within the camera that you mark as 'hotspots' for motion detection. Simply put, when you first configure your monitors (cameras), by default Zoneminder uses the entire field of view of the camera to detect motion. You may not want this. You may want to create "zones" specifically for detecting motion and ignore others. For example, lets consider a room with a fan that spins. You surely don't want to consider the fan moving continously a reason for triggering a record? Probably not - in that case, you'd leave the fan out while making your zones. * **E**: These are the "Zones". Zones are areas within the camera that you mark as 'hotspots' for motion detection. Simply put, when you first configure your monitors (cameras), by default Zoneminder uses the entire field of view of the camera to detect motion. You may not want this. You may want to create "zones" specifically for detecting motion and ignore others. For example, lets consider a room with a fan that spins. You surely don't want to consider the fan moving continuously a reason for triggering a record? Probably not - in that case, you'd leave the fan out while making your zones.
* **F**: This is the "source" column that tells you the type of the camera - if its an IP camera, a USB camera or more. In this example, they are all IP cameras. Note the color red on item F ? Well that means there is something wrong with that camera. No wonder the log also shows red. Good indication for you to tap on logs and investigate * **F**: This is the "source" column that tells you the type of the camera - if its an IP camera, a USB camera or more. In this example, they are all IP cameras. Note the color red on item F ? Well that means there is something wrong with that camera. No wonder the log also shows red. Good indication for you to tap on logs and investigate
* **G**: This defines how Zoneminder will record events. There are various modes. In brief Modect == record if a motion is detected,Record = always record 24x7, Mocord = always record PLUS detect motion, Monitor = just provide a live view but don't record anytime, Modect = Don't record till an externa entity via zmtrigger tells Zoneminder to (this is advanced usage). * **G**: This defines how Zoneminder will record events. There are various modes. In brief Modect == record if a motion is detected,Record = always record 24x7, Mocord = always record PLUS detect motion, Monitor = just provide a live view but don't record anytime, Nodect = Don't record till an externa entity via zmtrigger tells Zoneminder to (this is advanced usage).
* **H**: If you click on these links you can view a "Montage" of all your configured monitors or cycle through each one * **H**: If you click on these links you can view a "Montage" of all your configured monitors or cycle through each one

View File

@ -25,9 +25,9 @@ FORCED_ALARM_SCORE - The 'zmu' utility can be used to force an alarm on a monito
BULK_FRAME_INTERVAL - Traditionally ZoneMinder writes an entry into the Frames database table for each frame that is captured and saved. This works well in motion detection scenarios but when in a DVR situation ('Record' or 'Mocord' mode) this results in a huge number of frame writes and a lot of database and disk bandwidth for very little additional information. Setting this to a non-zero value will enabled ZoneMinder to group these non-alarm frames into one 'bulk' frame entry which saves a lot of bandwidth and space. The only disadvantage of this is that timing information for individual frames is lost but in constant frame rate situations this is usually not significant. This setting is ignored in Modect mode and individual frames are still written if an alarm occurs in Mocord mode also. BULK_FRAME_INTERVAL - Traditionally ZoneMinder writes an entry into the Frames database table for each frame that is captured and saved. This works well in motion detection scenarios but when in a DVR situation ('Record' or 'Mocord' mode) this results in a huge number of frame writes and a lot of database and disk bandwidth for very little additional information. Setting this to a non-zero value will enabled ZoneMinder to group these non-alarm frames into one 'bulk' frame entry which saves a lot of bandwidth and space. The only disadvantage of this is that timing information for individual frames is lost but in constant frame rate situations this is usually not significant. This setting is ignored in Modect mode and individual frames are still written if an alarm occurs in Mocord mode also.
EVENT_CLOSE_MODE - When a monitor is running in a continuous recording mode (Record or Mocord) events are usually closed after a fixed period of time (the section length). However in Mocord mode it is possible that motion detection may occur near the end of a section. This option controls what happens when an alarm occurs in Mocord mode. The 'time' setting means that the event will be closed at the end of the section regardless of alarm activity. The 'idle' setting means that the event will be closed at the end of the section if there is no alarm activity occuring at the time otherwise it will be closed once the alarm is over meaning the event may end up being longer than the normal section length. The 'alarm' setting means that if an alarm occurs during the event, the event will be closed once the alarm is over regardless of when this occurs. This has the effect of limiting the number of alarms to one per event and the events will be shorter than the section length if an alarm has occurred. EVENT_CLOSE_MODE - When a monitor is running in a continuous recording mode (Record or Mocord) events are usually closed after a fixed period of time (the section length). However in Mocord mode it is possible that motion detection may occur near the end of a section. This option controls what happens when an alarm occurs in Mocord mode. The 'time' setting means that the event will be closed at the end of the section regardless of alarm activity. The 'idle' setting means that the event will be closed at the end of the section if there is no alarm activity occurring at the time otherwise it will be closed once the alarm is over meaning the event may end up being longer than the normal section length. The 'alarm' setting means that if an alarm occurs during the event, the event will be closed once the alarm is over regardless of when this occurs. This has the effect of limiting the number of alarms to one per event and the events will be shorter than the section length if an alarm has occurred.
CREATE_ANALYSIS_IMAGES - By default during an alarm ZoneMinder records both the raw captured image and one that has been analysed and had areas where motion was detected outlined. This can be very useful during zone configuration or in analysing why events occured. However it also incurs some overhead and in a stable system may no longer be necessary. This parameter allows you to switch the generation of these images off. CREATE_ANALYSIS_IMAGES - By default during an alarm ZoneMinder records both the raw captured image and one that has been analysed and had areas where motion was detected outlined. This can be very useful during zone configuration or in analysing why events occurred. However it also incurs some overhead and in a stable system may no longer be necessary. This parameter allows you to switch the generation of these images off.
WEIGHTED_ALARM_CENTRES - ZoneMinder will always calculate the centre point of an alarm in a zone to give some indication of where on the screen it is. This can be used by the experimental motion tracking feature or your own custom extensions. In the alarmed or filtered pixels mode this is a simple midpoint between the extents of the detected pxiesl. However in the blob method this can instead be calculated using weighted pixel locations to give more accurate positioning for irregularly shaped blobs. This method, while more precise is also slower and so is turned off by default. WEIGHTED_ALARM_CENTRES - ZoneMinder will always calculate the centre point of an alarm in a zone to give some indication of where on the screen it is. This can be used by the experimental motion tracking feature or your own custom extensions. In the alarmed or filtered pixels mode this is a simple midpoint between the extents of the detected pxiesl. However in the blob method this can instead be calculated using weighted pixel locations to give more accurate positioning for irregularly shaped blobs. This method, while more precise is also slower and so is turned off by default.

View File

@ -1,5 +1,5 @@
Options - Servers Options - Servers
--------------- -----------------
.. image:: images/Options_Servers.png .. image:: images/Options_Servers.png

View File

@ -25,9 +25,9 @@ FILTER_EXECUTE_INTERVAL - ZoneMinder allows you to save filters to the database
MAX_RESTART_DELAY - The zmdc (zm daemon control) process controls when processeses are started or stopped and will attempt to restart any that fail. If a daemon fails frequently then a delay is introduced between each restart attempt. If the daemon stills fails then this delay is increased to prevent extra load being placed on the system by continual restarts. This option controls what this maximum delay is. MAX_RESTART_DELAY - The zmdc (zm daemon control) process controls when processeses are started or stopped and will attempt to restart any that fail. If a daemon fails frequently then a delay is introduced between each restart attempt. If the daemon stills fails then this delay is increased to prevent extra load being placed on the system by continual restarts. This option controls what this maximum delay is.
WATCH_CHECK_INTERVAL - The zmwatch daemon checks the image capture performance of the capture daemons to ensure that they have not locked up (rarely a sync error may occur which blocks indefinately). This option determines how often the daemons are checked. WATCH_CHECK_INTERVAL - The zmwatch daemon checks the image capture performance of the capture daemons to ensure that they have not locked up (rarely a sync error may occur which blocks indefinitely). This option determines how often the daemons are checked.
WATCH_MAX_DELAY - The zmwatch daemon checks the image capture performance of the capture daemons to ensure that they have not locked up (rarely a sync error may occur which blocks indefinately). This option determines the maximum delay to allow since the last captured frame. The daemon will be restarted if it has not captured any images after this period though the actual restart may take slightly longer in conjunction with the check interval value above. WATCH_MAX_DELAY - The zmwatch daemon checks the image capture performance of the capture daemons to ensure that they have not locked up (rarely a sync error may occur which blocks indefinitely). This option determines the maximum delay to allow since the last captured frame. The daemon will be restarted if it has not captured any images after this period though the actual restart may take slightly longer in conjunction with the check interval value above.
RUN_AUDIT - The zmaudit daemon exists to check that the saved information in the database and on the filesystem match and are consistent with each other. If an error occurs or if you are using 'fast deletes' it may be that database records are deleted but files remain. In this case, and similar, zmaudit will remove redundant information to synchronise the two data stores. This option controls whether zmaudit is run in the background and performs these checks and fixes continuously. This is recommended for most systems however if you have a very large number of events the process of scanning the database and filesystem may take a long time and impact performance. In this case you may prefer to not have zmaudit running unconditionally and schedule occasional checks at other, more convenient, times. RUN_AUDIT - The zmaudit daemon exists to check that the saved information in the database and on the filesystem match and are consistent with each other. If an error occurs or if you are using 'fast deletes' it may be that database records are deleted but files remain. In this case, and similar, zmaudit will remove redundant information to synchronise the two data stores. This option controls whether zmaudit is run in the background and performs these checks and fixes continuously. This is recommended for most systems however if you have a very large number of events the process of scanning the database and filesystem may take a long time and impact performance. In this case you may prefer to not have zmaudit running unconditionally and schedule occasional checks at other, more convenient, times.

View File

@ -19,7 +19,7 @@ UPLOAD_PORT - You can use filters to instruct ZoneMinder to upload events to a r
UPLOAD_USER - You can use filters to instruct ZoneMinder to upload events to a remote server. This option indicates the username that ZoneMinder should use to log in for transfer. UPLOAD_USER - You can use filters to instruct ZoneMinder to upload events to a remote server. This option indicates the username that ZoneMinder should use to log in for transfer.
UPLOAD_PASS - You can use filters to instruct ZoneMinder to upload events to a remote server. This option indicates the password that ZoneMinder should use to log in for transfer. If you are using certicate based logins for SFTP servers you can leave this option blank. UPLOAD_PASS - You can use filters to instruct ZoneMinder to upload events to a remote server. This option indicates the password that ZoneMinder should use to log in for transfer. If you are using certificate based logins for SFTP servers you can leave this option blank.
UPLOAD_LOC_DIR - You can use filters to instruct ZoneMinder to upload events to a remote server. This option indicates the local directory that ZoneMinder should use for temporary upload files. These are files that are created from events, uploaded and then deleted. UPLOAD_LOC_DIR - You can use filters to instruct ZoneMinder to upload events to a remote server. This option indicates the local directory that ZoneMinder should use for temporary upload files. These are files that are created from events, uploaded and then deleted.

View File

@ -5,7 +5,7 @@ Options - X10
OPT_X10 - If you have an X10 Home Automation setup in your home you can use ZoneMinder to initiate or react to X10 signals if your computer has the appropriate interface controller. This option indicates whether X10 options will be available in the browser client. OPT_X10 - If you have an X10 Home Automation setup in your home you can use ZoneMinder to initiate or react to X10 signals if your computer has the appropriate interface controller. This option indicates whether X10 options will be available in the browser client.
X10_DEVICE - If you have an X10 controller device (e.g. XM10U) connected to your computer this option details which port it is conected on, the default of /dev/ttyS0 maps to serial or com port 1. X10_DEVICE - If you have an X10 controller device (e.g. XM10U) connected to your computer this option details which port it is connected on, the default of /dev/ttyS0 maps to serial or com port 1.
X10_HOUSE_CODE - X10 devices are grouped together by identifying them as all belonging to one House Code. This option details what that is. It should be a single letter between A and P. X10_HOUSE_CODE - X10 devices are grouped together by identifying them as all belonging to one House Code. This option details what that is. It should be a single letter between A and P.

View File

@ -20,7 +20,7 @@ Here is an example of viewing an event stream:
* **A**: Administrative Event options on the event including viewing individual frames * **A**: Administrative Event options on the event including viewing individual frames
* **B**: The actual image stream * **B**: The actual image stream
* **C**: Navigation control * **C**: Navigation control
* **D**: You can switch between watching a single event or Continous mode (where it advances to the next event after playback is complete) * **D**: You can switch between watching a single event or Continuous mode (where it advances to the next event after playback is complete)
* **E**: Event progress bar - how much of the current event has been played back * **E**: Event progress bar - how much of the current event has been played back
You will notice for the first time that alarm images now contain an overlay outlining the blobs that represent the alarmed area. This outline is in the colour defined for that zone and lets you see what it was that caused the alarm. Clicking on one of the thumbnails will take you to a full size window where you can see the image in all its detail and scroll through the various images that make up the event. If you have the ZM_RECORD_EVENT_STATS option on, you will be able to click the 'Stats' link here and get some analysis of the cause of the event. You will notice for the first time that alarm images now contain an overlay outlining the blobs that represent the alarmed area. This outline is in the colour defined for that zone and lets you see what it was that caused the alarm. Clicking on one of the thumbnails will take you to a full size window where you can see the image in all its detail and scroll through the various images that make up the event. If you have the ZM_RECORD_EVENT_STATS option on, you will be able to click the 'Stats' link here and get some analysis of the cause of the event.

102
onvif/README Normal file
View File

@ -0,0 +1,102 @@
ZoneMinder ONVIF support
Copyright (C) 2016 Jan M. Hochstein
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
--------------------------------------------------------------------------
1. PURPOSE
----------
The files in this folder and its subfolders add ONVIF support to zoneminder.
The ONVIF consortium (www.onvif.org) publishes the ONVIF specifications. These
specifications describe ways of connecting to and communicating with network
video devices. Hardware and software that adhere to these specifications are
meant to be interoperable.
2. SUBFOLDERS
-------------
doc/ - Documentation
modules/ - perl modules necessary for SOAP communication
proxy/ - perl SOAP proxy modules generated according to the ONVIF
specifications
scripts/ - application logic
wsdl/ - (empty) this is only used during the proxy generation process
3. LICENSE
----------
Any files in this folder and its subfolders are published under the same
license as this file if they do not carry additional license information.
4. PROXY GENERATION
-------------------
SOAP messages use XML format and need to comply to the schema expected by the
receiver. While it is possible to build messages through string concatenation
it is impractical for all but testing purposes.
Here we use SOAP proxy modules generated by the script wsdl2perl.pl from the
SOAP::WSDL module (http://search.cpan.org/~mkutter/SOAP-WSDL-2.00.10/)
version 2.00.10.
A - Get the input files.
Download these files and any web service (.wsdl) or schema (.xsd)
files referenced therein into the wsdl/ subfolder.
http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl
http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl
http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl
http://www.onvif.org/onvif/ver20/analytics/wsdl/analytics.wsdl
The complete list of files we have during build is:
analytics.wsdl
b-2.xsd
bf-2.xsd
br-2.xsd
brw-2.wsdl
bw-2.wsdl
devicemgmt.wsdl
media.wsdl
onvif.xsd
ptz.wsdl
r-2.xsd
rw-2.wsdl
soap-envelop.xsd
t-1.xsd
wsdd-discovery-1.1-schema-os.xsd
wsdd-discovery-1.1-wsdl-os.wsdl
wsdiscovery-udp.wsdl
wsdl11soap12.xsd
wsdl.xsd
wsnotification.wsdl
xmlmime.xsd
xop-include.xsd
B - Generate the proxy modules using these commands.
wsdl2perl.pl -p ONVIF::Device:: -b proxy/lib file:wsdl/devicemgmt.wsdl
wsdl2perl.pl -p ONVIF::Media:: -b proxy/lib file:wsdl/media.wsdl
wsdl2perl.pl -p ONVIF::PTZ:: -b proxy/lib file:wsdl/ptz.wsdl
wsdl2perl.pl -p ONVIF::Event:: -b proxy/lib file:wsdl/event.wsdl
wsdl2perl.pl -p ONVIF::Analytics:: -b proxy/lib file:wsdl/analytics.wsdl
wsdl2perl.pl -p WSDiscovery:: -b proxy/lib file:wsdl/wsdiscovery-udp.wsdl
wsdl2perl.pl -p WSNotification:: -b proxy/lib file:wsdl/wsnotification.wsdl
I had to tweak SOAP::WSDL a little bit to get correct proxies.

View File

@ -9,7 +9,7 @@ endif(NOT (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR))
# MAKEMAKER_NOECHO_COMMAND previously defined in /scripts/zoneminder/CMakeLists.txt # MAKEMAKER_NOECHO_COMMAND previously defined in /scripts/zoneminder/CMakeLists.txt
# Add build target for the perl modules # Add build target for the perl modules
add_custom_target(zmonvifmodules ALL perl Makefile.PL ${ZM_PERL_MM_PARMS} FIRST_MAKEFILE=MakefilePerl DESTDIR="${CMAKE_CURRENT_BINARY_DIR}/output" ${MAKEMAKER_NOECHO_COMMAND} COMMAND make --makefile=MakefilePerl pure_install COMMENT "Building ZoneMinder perl ONVIF proxy module") add_custom_target(zmonvifmodules ALL perl Makefile.PL ${ZM_PERL_MM_PARMS} FIRST_MAKEFILE=MakefilePerl DESTDIR="${CMAKE_CURRENT_BINARY_DIR}/output" ${MAKEMAKER_NOECHO_COMMAND} COMMAND make -f MakefilePerl pure_install COMMENT "Building ZoneMinder perl ONVIF proxy module")
# Add install target for the perl modules # Add install target for the perl modules
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/output/" DESTINATION "/") install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/output/" DESTINATION "/")

View File

@ -1,7 +1,7 @@
# ========================================================================== # ==========================================================================
# #
# ZoneMinder ONVIF Client module # ZoneMinder ONVIF Client module
# Copyright (C) Jan M. Hochstein # Copyright (C) 2014 Jan M. Hochstein
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License # modify it under the terms of the GNU General Public License

View File

@ -1,4 +1,27 @@
#!/usr/bin/perl # ==========================================================================
#
# ZoneMinder ONVIF Client module
# Copyright (C) 2014 Jan M. Hochstein
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# ==========================================================================
#
# This module contains the implementation of a SOAP message parser
#
package ONVIF::Deserializer::MessageParser; package ONVIF::Deserializer::MessageParser;
use strict; use warnings; use strict; use warnings;

View File

@ -1,3 +1,27 @@
# ==========================================================================
#
# ZoneMinder ONVIF Client module
# Copyright (C) 2014 Jan M. Hochstein
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# ==========================================================================
#
# This module contains the implementation of a SOAP deserializer
#
package ONVIF::Deserializer::XSD; package ONVIF::Deserializer::XSD;
use strict; use strict;
use warnings; use warnings;

View File

@ -1,4 +1,27 @@
#!/usr/bin/perl -w # ==========================================================================
#
# ZoneMinder ONVIF Client module
# Copyright (C) 2014 Jan M. Hochstein
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# ==========================================================================
#
# This module contains the base class for the SOAP serializers
#
package ONVIF::Serializer::Base; package ONVIF::Serializer::Base;
use strict; use strict;
use warnings; use warnings;

View File

@ -1,4 +1,27 @@
#!/usr/bin/perl -w # ==========================================================================
#
# ZoneMinder ONVIF Client module
# Copyright (C) 2014 Jan M. Hochstein
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# ==========================================================================
#
# This module contains the SOAP 1.1 serializer
#
package ONVIF::Serializer::SOAP11; package ONVIF::Serializer::SOAP11;
use strict; use strict;
use warnings; use warnings;

View File

@ -1,4 +1,27 @@
#!/usr/bin/perl -w # ==========================================================================
#
# ZoneMinder ONVIF Client module
# Copyright (C) 2014 Jan M. Hochstein
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# ==========================================================================
#
# This module contains the SOAP 1.2 serializer
#
package ONVIF::Serializer::SOAP12; package ONVIF::Serializer::SOAP12;
use strict; use strict;
use warnings; use warnings;

View File

@ -1,7 +1,7 @@
# ========================================================================== # ==========================================================================
# #
# Perl WS-Discovery implementation # Perl WS-Discovery implementation
# Copyright (C) Jan M. Hochstein # Copyright (C) 2014 Jan M. Hochstein
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License # modify it under the terms of the GNU General Public License

View File

@ -1,7 +1,7 @@
# ========================================================================== # ==========================================================================
# #
# Perl WS-Security header for SOAP::WSDL # Perl WS-Security header for SOAP::WSDL
# Copyright (C) Jan M. Hochstein # Copyright (C) 2014 Jan M. Hochstein
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License # modify it under the terms of the GNU General Public License
@ -26,7 +26,7 @@ use strict;
use warnings; use warnings;
use SOAP::WSDL::Factory::Serializer; use SOAP::WSDL::Factory::Serializer;
use Time::Local; use Time::Local;
use Digest::SHA1; use Digest::SHA;
use MIME::Base64; use MIME::Base64;
@ -94,7 +94,7 @@ sub ws_authen {
my $nonce = $nonce_generator->(); my $nonce = $nonce_generator->();
my $timestamp = timestamp(); my $timestamp = timestamp();
my $pwDigest = Digest::SHA1::sha1( $nonce . $timestamp . $password ); my $pwDigest = Digest::SHA::sha1( $nonce . $timestamp . $password );
my $passwordHash = MIME::Base64::encode_base64($pwDigest,""); my $passwordHash = MIME::Base64::encode_base64($pwDigest,"");
my $nonceHash = MIME::Base64::encode_base64($nonce,""); my $nonceHash = MIME::Base64::encode_base64($nonce,"");

View File

@ -9,7 +9,7 @@ endif(NOT (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR))
# MAKEMAKER_NOECHO_COMMAND previously defined in /scripts/zoneminder/CMakeLists.txt # MAKEMAKER_NOECHO_COMMAND previously defined in /scripts/zoneminder/CMakeLists.txt
# Add build target for the perl modules # Add build target for the perl modules
add_custom_target(zmonvifproxy ALL perl Makefile.PL ${ZM_PERL_MM_PARMS} FIRST_MAKEFILE=MakefilePerl DESTDIR="${CMAKE_CURRENT_BINARY_DIR}/output" ${MAKEMAKER_NOECHO_COMMAND} COMMAND make --makefile=MakefilePerl pure_install COMMENT "Building ZoneMinder perl ONVIF proxy module") add_custom_target(zmonvifproxy ALL perl Makefile.PL ${ZM_PERL_MM_PARMS} FIRST_MAKEFILE=MakefilePerl DESTDIR="${CMAKE_CURRENT_BINARY_DIR}/output" ${MAKEMAKER_NOECHO_COMMAND} COMMAND make -f MakefilePerl pure_install COMMENT "Building ZoneMinder perl ONVIF proxy module")
# Add install target for the perl modules # Add install target for the perl modules
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/output/" DESTINATION "/") install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/output/" DESTINATION "/")

View File

@ -0,0 +1,54 @@
package ONVIF::Analytics::Attributes::actor;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://schemas.xmlsoap.org/soap/envelope/' }
__PACKAGE__->__set_name('actor');
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Attribute
SOAP::WSDL::XSD::Typelib::Builtin::anyURI
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Attributes::actor
=head1 DESCRIPTION
Perl data type class for the XML Schema defined attribute
actor from the namespace http://schemas.xmlsoap.org/soap/envelope/.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Attributes::actor->new($data);
Constructor. The following data structure may be passed to new():
{ value => $value }
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,64 @@
package ONVIF::Analytics::Attributes::contentType;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.w3.org/2005/05/xmlmime' }
__PACKAGE__->__set_name('contentType');
__PACKAGE__->__set_ref();
# atomic simpleType: <attribute><simpleType
use base qw(
SOAP::WSDL::XSD::Typelib::Attribute
);
# derivation by restriction
use base qw(
SOAP::WSDL::XSD::Typelib::Builtin::string);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Attributes::contentType
=head1 DESCRIPTION
Perl data type class for the XML Schema defined attribute
contentType from the namespace http://www.w3.org/2005/05/xmlmime.
This XML element type class has a atomic simpleType as it's base:
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Attributes::contentType->new($data);
Constructor. The following data structure may be passed to new():
{ value => $value }
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,54 @@
package ONVIF::Analytics::Attributes::encodingStyle;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://schemas.xmlsoap.org/soap/envelope/' }
__PACKAGE__->__set_name('encodingStyle');
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Attribute
ONVIF::Analytics::Types::encodingStyle
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Attributes::encodingStyle
=head1 DESCRIPTION
Perl data type class for the XML Schema defined attribute
encodingStyle from the namespace http://schemas.xmlsoap.org/soap/envelope/.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Attributes::encodingStyle->new($data);
Constructor. The following data structure may be passed to new():
{ value => $value }
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,54 @@
package ONVIF::Analytics::Attributes::expectedContentTypes;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.w3.org/2005/05/xmlmime' }
__PACKAGE__->__set_name('expectedContentTypes');
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Attribute
SOAP::WSDL::XSD::Typelib::Builtin::string
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Attributes::expectedContentTypes
=head1 DESCRIPTION
Perl data type class for the XML Schema defined attribute
expectedContentTypes from the namespace http://www.w3.org/2005/05/xmlmime.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Attributes::expectedContentTypes->new($data);
Constructor. The following data structure may be passed to new():
{ value => $value }
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,64 @@
package ONVIF::Analytics::Attributes::mustUnderstand;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://schemas.xmlsoap.org/soap/envelope/' }
__PACKAGE__->__set_name('mustUnderstand');
__PACKAGE__->__set_ref();
# atomic simpleType: <attribute><simpleType
use base qw(
SOAP::WSDL::XSD::Typelib::Attribute
);
# derivation by restriction
use base qw(
SOAP::WSDL::XSD::Typelib::Builtin::boolean);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Attributes::mustUnderstand
=head1 DESCRIPTION
Perl data type class for the XML Schema defined attribute
mustUnderstand from the namespace http://schemas.xmlsoap.org/soap/envelope/.
This XML element type class has a atomic simpleType as it's base:
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Attributes::mustUnderstand->new($data);
Constructor. The following data structure may be passed to new():
{ value => $value }
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,58 @@
package ONVIF::Analytics::Elements::AudioDecoderConfiguration;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver10/schema' }
__PACKAGE__->__set_name('AudioDecoderConfiguration');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::AudioDecoderConfiguration
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::AudioDecoderConfiguration
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
AudioDecoderConfiguration from the namespace http://www.onvif.org/ver10/schema.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::AudioDecoderConfiguration->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::AudioDecoderConfiguration
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,72 @@
package ONVIF::Analytics::Elements::AudioEncoderConfiguration;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver10/schema' }
__PACKAGE__->__set_name('AudioEncoderConfiguration');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::AudioEncoderConfiguration
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::AudioEncoderConfiguration
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
AudioEncoderConfiguration from the namespace http://www.onvif.org/ver10/schema.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::AudioEncoderConfiguration->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::AudioEncoderConfiguration
Encoding => $some_value, # AudioEncoding
Bitrate => $some_value, # int
SampleRate => $some_value, # int
Multicast => { # ONVIF::Analytics::Types::MulticastConfiguration
Address => { # ONVIF::Analytics::Types::IPAddress
Type => $some_value, # IPType
IPv4Address => $some_value, # IPv4Address
IPv6Address => $some_value, # IPv6Address
},
Port => $some_value, # int
TTL => $some_value, # int
AutoStart => $some_value, # boolean
},
SessionTimeout => $some_value, # duration
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,61 @@
package ONVIF::Analytics::Elements::AudioOutputConfiguration;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver10/schema' }
__PACKAGE__->__set_name('AudioOutputConfiguration');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::AudioOutputConfiguration
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::AudioOutputConfiguration
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
AudioOutputConfiguration from the namespace http://www.onvif.org/ver10/schema.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::AudioOutputConfiguration->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::AudioOutputConfiguration
OutputToken => $some_value, # ReferenceToken
SendPrimacy => $some_value, # anyURI
OutputLevel => $some_value, # int
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,59 @@
package ONVIF::Analytics::Elements::AudioSourceConfiguration;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver10/schema' }
__PACKAGE__->__set_name('AudioSourceConfiguration');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::AudioSourceConfiguration
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::AudioSourceConfiguration
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
AudioSourceConfiguration from the namespace http://www.onvif.org/ver10/schema.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::AudioSourceConfiguration->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::AudioSourceConfiguration
SourceToken => $some_value, # ReferenceToken
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,58 @@
package ONVIF::Analytics::Elements::Body;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://schemas.xmlsoap.org/soap/envelope/' }
__PACKAGE__->__set_name('Body');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::Body
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::Body
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
Body from the namespace http://schemas.xmlsoap.org/soap/envelope/.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::Body->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::Body
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,58 @@
package ONVIF::Analytics::Elements::Capabilities;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('Capabilities');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::Capabilities
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::Capabilities
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
Capabilities from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::Capabilities->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::Capabilities
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,143 @@
package ONVIF::Analytics::Elements::CreateAnalyticsModules;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('CreateAnalyticsModules');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %ConfigurationToken_of :ATTR(:get<ConfigurationToken>);
my %AnalyticsModule_of :ATTR(:get<AnalyticsModule>);
__PACKAGE__->_factory(
[ qw( ConfigurationToken
AnalyticsModule
) ],
{
'ConfigurationToken' => \%ConfigurationToken_of,
'AnalyticsModule' => \%AnalyticsModule_of,
},
{
'ConfigurationToken' => 'ONVIF::Analytics::Types::ReferenceToken',
'AnalyticsModule' => 'ONVIF::Analytics::Types::Config',
},
{
'ConfigurationToken' => 'ConfigurationToken',
'AnalyticsModule' => 'AnalyticsModule',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::CreateAnalyticsModules
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
CreateAnalyticsModules from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * ConfigurationToken
$element->set_ConfigurationToken($data);
$element->get_ConfigurationToken();
=item * AnalyticsModule
$element->set_AnalyticsModule($data);
$element->get_AnalyticsModule();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::CreateAnalyticsModules->new($data);
Constructor. The following data structure may be passed to new():
{
ConfigurationToken => $some_value, # ReferenceToken
AnalyticsModule => { # ONVIF::Analytics::Types::Config
Parameters => { # ONVIF::Analytics::Types::ItemList
SimpleItem => ,
ElementItem => {
},
Extension => { # ONVIF::Analytics::Types::ItemListExtension
},
},
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,90 @@
package ONVIF::Analytics::Elements::CreateAnalyticsModulesResponse;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('CreateAnalyticsModulesResponse');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
# There's no variety - empty complexType
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
__PACKAGE__->_factory();
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::CreateAnalyticsModulesResponse
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
CreateAnalyticsModulesResponse from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::CreateAnalyticsModulesResponse->new($data);
Constructor. The following data structure may be passed to new():
,
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,143 @@
package ONVIF::Analytics::Elements::CreateRules;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('CreateRules');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %ConfigurationToken_of :ATTR(:get<ConfigurationToken>);
my %Rule_of :ATTR(:get<Rule>);
__PACKAGE__->_factory(
[ qw( ConfigurationToken
Rule
) ],
{
'ConfigurationToken' => \%ConfigurationToken_of,
'Rule' => \%Rule_of,
},
{
'ConfigurationToken' => 'ONVIF::Analytics::Types::ReferenceToken',
'Rule' => 'ONVIF::Analytics::Types::Config',
},
{
'ConfigurationToken' => 'ConfigurationToken',
'Rule' => 'Rule',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::CreateRules
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
CreateRules from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * ConfigurationToken
$element->set_ConfigurationToken($data);
$element->get_ConfigurationToken();
=item * Rule
$element->set_Rule($data);
$element->get_Rule();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::CreateRules->new($data);
Constructor. The following data structure may be passed to new():
{
ConfigurationToken => $some_value, # ReferenceToken
Rule => { # ONVIF::Analytics::Types::Config
Parameters => { # ONVIF::Analytics::Types::ItemList
SimpleItem => ,
ElementItem => {
},
Extension => { # ONVIF::Analytics::Types::ItemListExtension
},
},
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,90 @@
package ONVIF::Analytics::Elements::CreateRulesResponse;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('CreateRulesResponse');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
# There's no variety - empty complexType
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
__PACKAGE__->_factory();
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::CreateRulesResponse
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
CreateRulesResponse from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::CreateRulesResponse->new($data);
Constructor. The following data structure may be passed to new():
,
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,135 @@
package ONVIF::Analytics::Elements::DeleteAnalyticsModules;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('DeleteAnalyticsModules');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %ConfigurationToken_of :ATTR(:get<ConfigurationToken>);
my %AnalyticsModuleName_of :ATTR(:get<AnalyticsModuleName>);
__PACKAGE__->_factory(
[ qw( ConfigurationToken
AnalyticsModuleName
) ],
{
'ConfigurationToken' => \%ConfigurationToken_of,
'AnalyticsModuleName' => \%AnalyticsModuleName_of,
},
{
'ConfigurationToken' => 'ONVIF::Analytics::Types::ReferenceToken',
'AnalyticsModuleName' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
},
{
'ConfigurationToken' => 'ConfigurationToken',
'AnalyticsModuleName' => 'AnalyticsModuleName',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::DeleteAnalyticsModules
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
DeleteAnalyticsModules from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * ConfigurationToken
$element->set_ConfigurationToken($data);
$element->get_ConfigurationToken();
=item * AnalyticsModuleName
$element->set_AnalyticsModuleName($data);
$element->get_AnalyticsModuleName();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::DeleteAnalyticsModules->new($data);
Constructor. The following data structure may be passed to new():
{
ConfigurationToken => $some_value, # ReferenceToken
AnalyticsModuleName => $some_value, # string
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,90 @@
package ONVIF::Analytics::Elements::DeleteAnalyticsModulesResponse;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('DeleteAnalyticsModulesResponse');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
# There's no variety - empty complexType
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
__PACKAGE__->_factory();
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::DeleteAnalyticsModulesResponse
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
DeleteAnalyticsModulesResponse from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::DeleteAnalyticsModulesResponse->new($data);
Constructor. The following data structure may be passed to new():
,
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,135 @@
package ONVIF::Analytics::Elements::DeleteRules;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('DeleteRules');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %ConfigurationToken_of :ATTR(:get<ConfigurationToken>);
my %RuleName_of :ATTR(:get<RuleName>);
__PACKAGE__->_factory(
[ qw( ConfigurationToken
RuleName
) ],
{
'ConfigurationToken' => \%ConfigurationToken_of,
'RuleName' => \%RuleName_of,
},
{
'ConfigurationToken' => 'ONVIF::Analytics::Types::ReferenceToken',
'RuleName' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
},
{
'ConfigurationToken' => 'ConfigurationToken',
'RuleName' => 'RuleName',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::DeleteRules
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
DeleteRules from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * ConfigurationToken
$element->set_ConfigurationToken($data);
$element->get_ConfigurationToken();
=item * RuleName
$element->set_RuleName($data);
$element->get_RuleName();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::DeleteRules->new($data);
Constructor. The following data structure may be passed to new():
{
ConfigurationToken => $some_value, # ReferenceToken
RuleName => $some_value, # string
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,90 @@
package ONVIF::Analytics::Elements::DeleteRulesResponse;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('DeleteRulesResponse');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
# There's no variety - empty complexType
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
__PACKAGE__->_factory();
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::DeleteRulesResponse
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
DeleteRulesResponse from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::DeleteRulesResponse->new($data);
Constructor. The following data structure may be passed to new():
,
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,62 @@
package ONVIF::Analytics::Elements::Envelope;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://schemas.xmlsoap.org/soap/envelope/' }
__PACKAGE__->__set_name('Envelope');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::Envelope
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::Envelope
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
Envelope from the namespace http://schemas.xmlsoap.org/soap/envelope/.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::Envelope->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::Envelope
Header => { # ONVIF::Analytics::Types::Header
},
Body => { # ONVIF::Analytics::Types::Body
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,63 @@
package ONVIF::Analytics::Elements::Fault;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://schemas.xmlsoap.org/soap/envelope/' }
__PACKAGE__->__set_name('Fault');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::Fault
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::Fault
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
Fault from the namespace http://schemas.xmlsoap.org/soap/envelope/.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::Fault->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::Fault
faultcode => $some_value, # QName
faultstring => $some_value, # string
faultactor => $some_value, # anyURI
detail => { # ONVIF::Analytics::Types::detail
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,121 @@
package ONVIF::Analytics::Elements::GetAnalyticsModules;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('GetAnalyticsModules');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %ConfigurationToken_of :ATTR(:get<ConfigurationToken>);
__PACKAGE__->_factory(
[ qw( ConfigurationToken
) ],
{
'ConfigurationToken' => \%ConfigurationToken_of,
},
{
'ConfigurationToken' => 'ONVIF::Analytics::Types::ReferenceToken',
},
{
'ConfigurationToken' => 'ConfigurationToken',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::GetAnalyticsModules
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
GetAnalyticsModules from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * ConfigurationToken
$element->set_ConfigurationToken($data);
$element->get_ConfigurationToken();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::GetAnalyticsModules->new($data);
Constructor. The following data structure may be passed to new():
{
ConfigurationToken => $some_value, # ReferenceToken
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,129 @@
package ONVIF::Analytics::Elements::GetAnalyticsModulesResponse;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('GetAnalyticsModulesResponse');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %AnalyticsModule_of :ATTR(:get<AnalyticsModule>);
__PACKAGE__->_factory(
[ qw( AnalyticsModule
) ],
{
'AnalyticsModule' => \%AnalyticsModule_of,
},
{
'AnalyticsModule' => 'ONVIF::Analytics::Types::Config',
},
{
'AnalyticsModule' => 'AnalyticsModule',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::GetAnalyticsModulesResponse
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
GetAnalyticsModulesResponse from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * AnalyticsModule
$element->set_AnalyticsModule($data);
$element->get_AnalyticsModule();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::GetAnalyticsModulesResponse->new($data);
Constructor. The following data structure may be passed to new():
{
AnalyticsModule => { # ONVIF::Analytics::Types::Config
Parameters => { # ONVIF::Analytics::Types::ItemList
SimpleItem => ,
ElementItem => {
},
Extension => { # ONVIF::Analytics::Types::ItemListExtension
},
},
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,121 @@
package ONVIF::Analytics::Elements::GetRules;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('GetRules');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %ConfigurationToken_of :ATTR(:get<ConfigurationToken>);
__PACKAGE__->_factory(
[ qw( ConfigurationToken
) ],
{
'ConfigurationToken' => \%ConfigurationToken_of,
},
{
'ConfigurationToken' => 'ONVIF::Analytics::Types::ReferenceToken',
},
{
'ConfigurationToken' => 'ConfigurationToken',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::GetRules
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
GetRules from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * ConfigurationToken
$element->set_ConfigurationToken($data);
$element->get_ConfigurationToken();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::GetRules->new($data);
Constructor. The following data structure may be passed to new():
{
ConfigurationToken => $some_value, # ReferenceToken
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,129 @@
package ONVIF::Analytics::Elements::GetRulesResponse;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('GetRulesResponse');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %Rule_of :ATTR(:get<Rule>);
__PACKAGE__->_factory(
[ qw( Rule
) ],
{
'Rule' => \%Rule_of,
},
{
'Rule' => 'ONVIF::Analytics::Types::Config',
},
{
'Rule' => 'Rule',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::GetRulesResponse
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
GetRulesResponse from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * Rule
$element->set_Rule($data);
$element->get_Rule();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::GetRulesResponse->new($data);
Constructor. The following data structure may be passed to new():
{
Rule => { # ONVIF::Analytics::Types::Config
Parameters => { # ONVIF::Analytics::Types::ItemList
SimpleItem => ,
ElementItem => {
},
Extension => { # ONVIF::Analytics::Types::ItemListExtension
},
},
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,107 @@
package ONVIF::Analytics::Elements::GetServiceCapabilities;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('GetServiceCapabilities');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
__PACKAGE__->_factory(
[ qw(
) ],
{
},
{
},
{
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::GetServiceCapabilities
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
GetServiceCapabilities from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::GetServiceCapabilities->new($data);
Constructor. The following data structure may be passed to new():
{
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,122 @@
package ONVIF::Analytics::Elements::GetServiceCapabilitiesResponse;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('GetServiceCapabilitiesResponse');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %Capabilities_of :ATTR(:get<Capabilities>);
__PACKAGE__->_factory(
[ qw( Capabilities
) ],
{
'Capabilities' => \%Capabilities_of,
},
{
'Capabilities' => 'ONVIF::Analytics::Types::Capabilities',
},
{
'Capabilities' => 'Capabilities',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::GetServiceCapabilitiesResponse
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
GetServiceCapabilitiesResponse from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * Capabilities
$element->set_Capabilities($data);
$element->get_Capabilities();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::GetServiceCapabilitiesResponse->new($data);
Constructor. The following data structure may be passed to new():
{
Capabilities => { # ONVIF::Analytics::Types::Capabilities
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,121 @@
package ONVIF::Analytics::Elements::GetSupportedAnalyticsModules;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('GetSupportedAnalyticsModules');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %ConfigurationToken_of :ATTR(:get<ConfigurationToken>);
__PACKAGE__->_factory(
[ qw( ConfigurationToken
) ],
{
'ConfigurationToken' => \%ConfigurationToken_of,
},
{
'ConfigurationToken' => 'ONVIF::Analytics::Types::ReferenceToken',
},
{
'ConfigurationToken' => 'ConfigurationToken',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::GetSupportedAnalyticsModules
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
GetSupportedAnalyticsModules from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * ConfigurationToken
$element->set_ConfigurationToken($data);
$element->get_ConfigurationToken();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::GetSupportedAnalyticsModules->new($data);
Constructor. The following data structure may be passed to new():
{
ConfigurationToken => $some_value, # ReferenceToken
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,138 @@
package ONVIF::Analytics::Elements::GetSupportedAnalyticsModulesResponse;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('GetSupportedAnalyticsModulesResponse');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %SupportedAnalyticsModules_of :ATTR(:get<SupportedAnalyticsModules>);
__PACKAGE__->_factory(
[ qw( SupportedAnalyticsModules
) ],
{
'SupportedAnalyticsModules' => \%SupportedAnalyticsModules_of,
},
{
'SupportedAnalyticsModules' => 'ONVIF::Analytics::Types::SupportedAnalyticsModules',
},
{
'SupportedAnalyticsModules' => 'SupportedAnalyticsModules',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::GetSupportedAnalyticsModulesResponse
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
GetSupportedAnalyticsModulesResponse from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * SupportedAnalyticsModules
$element->set_SupportedAnalyticsModules($data);
$element->get_SupportedAnalyticsModules();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::GetSupportedAnalyticsModulesResponse->new($data);
Constructor. The following data structure may be passed to new():
{
SupportedAnalyticsModules => { # ONVIF::Analytics::Types::SupportedAnalyticsModules
AnalyticsModuleContentSchemaLocation => $some_value, # anyURI
AnalyticsModuleDescription => { # ONVIF::Analytics::Types::ConfigDescription
Parameters => { # ONVIF::Analytics::Types::ItemListDescription
SimpleItemDescription => ,
ElementItemDescription => ,
Extension => { # ONVIF::Analytics::Types::ItemListDescriptionExtension
},
},
Messages => {
ParentTopic => $some_value, # string
},
Extension => { # ONVIF::Analytics::Types::ConfigDescriptionExtension
},
},
Extension => { # ONVIF::Analytics::Types::SupportedAnalyticsModulesExtension
},
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,121 @@
package ONVIF::Analytics::Elements::GetSupportedRules;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('GetSupportedRules');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %ConfigurationToken_of :ATTR(:get<ConfigurationToken>);
__PACKAGE__->_factory(
[ qw( ConfigurationToken
) ],
{
'ConfigurationToken' => \%ConfigurationToken_of,
},
{
'ConfigurationToken' => 'ONVIF::Analytics::Types::ReferenceToken',
},
{
'ConfigurationToken' => 'ConfigurationToken',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::GetSupportedRules
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
GetSupportedRules from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * ConfigurationToken
$element->set_ConfigurationToken($data);
$element->get_ConfigurationToken();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::GetSupportedRules->new($data);
Constructor. The following data structure may be passed to new():
{
ConfigurationToken => $some_value, # ReferenceToken
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,138 @@
package ONVIF::Analytics::Elements::GetSupportedRulesResponse;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('GetSupportedRulesResponse');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %SupportedRules_of :ATTR(:get<SupportedRules>);
__PACKAGE__->_factory(
[ qw( SupportedRules
) ],
{
'SupportedRules' => \%SupportedRules_of,
},
{
'SupportedRules' => 'ONVIF::Analytics::Types::SupportedRules',
},
{
'SupportedRules' => 'SupportedRules',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::GetSupportedRulesResponse
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
GetSupportedRulesResponse from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * SupportedRules
$element->set_SupportedRules($data);
$element->get_SupportedRules();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::GetSupportedRulesResponse->new($data);
Constructor. The following data structure may be passed to new():
{
SupportedRules => { # ONVIF::Analytics::Types::SupportedRules
RuleContentSchemaLocation => $some_value, # anyURI
RuleDescription => { # ONVIF::Analytics::Types::ConfigDescription
Parameters => { # ONVIF::Analytics::Types::ItemListDescription
SimpleItemDescription => ,
ElementItemDescription => ,
Extension => { # ONVIF::Analytics::Types::ItemListDescriptionExtension
},
},
Messages => {
ParentTopic => $some_value, # string
},
Extension => { # ONVIF::Analytics::Types::ConfigDescriptionExtension
},
},
Extension => { # ONVIF::Analytics::Types::SupportedRulesExtension
},
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,58 @@
package ONVIF::Analytics::Elements::Header;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://schemas.xmlsoap.org/soap/envelope/' }
__PACKAGE__->__set_name('Header');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::Header
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::Header
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
Header from the namespace http://schemas.xmlsoap.org/soap/envelope/.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::Header->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::Header
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,58 @@
package ONVIF::Analytics::Elements::Include;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.w3.org/2004/08/xop/include' }
__PACKAGE__->__set_name('Include');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::Include
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::Include
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
Include from the namespace http://www.w3.org/2004/08/xop/include.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::Include->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::Include
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,207 @@
package ONVIF::Analytics::Elements::Message;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver10/schema' }
__PACKAGE__->__set_name('Message');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS = 'ONVIF::Analytics::Elements::Message::XmlAttr';
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %Source_of :ATTR(:get<Source>);
my %Key_of :ATTR(:get<Key>);
my %Data_of :ATTR(:get<Data>);
my %Extension_of :ATTR(:get<Extension>);
__PACKAGE__->_factory(
[ qw( Source
Key
Data
Extension
) ],
{
'Source' => \%Source_of,
'Key' => \%Key_of,
'Data' => \%Data_of,
'Extension' => \%Extension_of,
},
{
'Source' => 'ONVIF::Analytics::Types::ItemList',
'Key' => 'ONVIF::Analytics::Types::ItemList',
'Data' => 'ONVIF::Analytics::Types::ItemList',
'Extension' => 'ONVIF::Analytics::Types::MessageExtension',
},
{
'Source' => 'Source',
'Key' => 'Key',
'Data' => 'Data',
'Extension' => 'Extension',
}
);
} # end BLOCK
package ONVIF::Analytics::Elements::Message::XmlAttr;
use base qw(SOAP::WSDL::XSD::Typelib::AttributeSet);
{ # BLOCK to scope variables
my %UtcTime_of :ATTR(:get<UtcTime>);
my %PropertyOperation_of :ATTR(:get<PropertyOperation>);
__PACKAGE__->_factory(
[ qw(
UtcTime
PropertyOperation
) ],
{
UtcTime => \%UtcTime_of,
PropertyOperation => \%PropertyOperation_of,
},
{
UtcTime => 'SOAP::WSDL::XSD::Typelib::Builtin::dateTime',
PropertyOperation => 'ONVIF::Analytics::Types::PropertyOperation',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::Message
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
Message from the namespace http://www.onvif.org/ver10/schema.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * Source
$element->set_Source($data);
$element->get_Source();
=item * Key
$element->set_Key($data);
$element->get_Key();
=item * Data
$element->set_Data($data);
$element->get_Data();
=item * Extension
$element->set_Extension($data);
$element->get_Extension();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::Message->new($data);
Constructor. The following data structure may be passed to new():
{
Source => { # ONVIF::Analytics::Types::ItemList
SimpleItem => ,
ElementItem => {
},
Extension => { # ONVIF::Analytics::Types::ItemListExtension
},
},
Key => { # ONVIF::Analytics::Types::ItemList
SimpleItem => ,
ElementItem => {
},
Extension => { # ONVIF::Analytics::Types::ItemListExtension
},
},
Data => { # ONVIF::Analytics::Types::ItemList
SimpleItem => ,
ElementItem => {
},
Extension => { # ONVIF::Analytics::Types::ItemListExtension
},
},
Extension => { # ONVIF::Analytics::Types::MessageExtension
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,89 @@
package ONVIF::Analytics::Elements::MetadataConfiguration;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver10/schema' }
__PACKAGE__->__set_name('MetadataConfiguration');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::MetadataConfiguration
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::MetadataConfiguration
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
MetadataConfiguration from the namespace http://www.onvif.org/ver10/schema.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::MetadataConfiguration->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::MetadataConfiguration
PTZStatus => { # ONVIF::Analytics::Types::PTZFilter
Status => $some_value, # boolean
Position => $some_value, # boolean
},
Analytics => $some_value, # boolean
Multicast => { # ONVIF::Analytics::Types::MulticastConfiguration
Address => { # ONVIF::Analytics::Types::IPAddress
Type => $some_value, # IPType
IPv4Address => $some_value, # IPv4Address
IPv6Address => $some_value, # IPv6Address
},
Port => $some_value, # int
TTL => $some_value, # int
AutoStart => $some_value, # boolean
},
SessionTimeout => $some_value, # duration
AnalyticsEngineConfiguration => { # ONVIF::Analytics::Types::AnalyticsEngineConfiguration
AnalyticsModule => { # ONVIF::Analytics::Types::Config
Parameters => { # ONVIF::Analytics::Types::ItemList
SimpleItem => ,
ElementItem => {
},
Extension => { # ONVIF::Analytics::Types::ItemListExtension
},
},
},
Extension => { # ONVIF::Analytics::Types::AnalyticsEngineConfigurationExtension
},
},
Extension => { # ONVIF::Analytics::Types::MetadataConfigurationExtension
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,192 @@
package ONVIF::Analytics::Elements::MetadataStream;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver10/schema' }
__PACKAGE__->__set_name('MetadataStream');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::MetadataStream
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::MetadataStream
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
MetadataStream from the namespace http://www.onvif.org/ver10/schema.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::MetadataStream->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::MetadataStream
# One of the following elements.
# No occurance checks yet, so be sure to pass just one...
VideoAnalytics => { # ONVIF::Analytics::Types::VideoAnalyticsStream
# One of the following elements.
# No occurance checks yet, so be sure to pass just one...
Frame => { # ONVIF::Analytics::Types::Frame
PTZStatus => { # ONVIF::Analytics::Types::PTZStatus
Position => { # ONVIF::Analytics::Types::PTZVector
PanTilt => ,
Zoom => ,
},
MoveStatus => { # ONVIF::Analytics::Types::PTZMoveStatus
PanTilt => $some_value, # MoveStatus
Zoom => $some_value, # MoveStatus
},
Error => $some_value, # string
UtcTime => $some_value, # dateTime
},
Transformation => { # ONVIF::Analytics::Types::Transformation
Translate => ,
Scale => ,
Extension => { # ONVIF::Analytics::Types::TransformationExtension
},
},
Object => { # ONVIF::Analytics::Types::Object
Appearance => { # ONVIF::Analytics::Types::Appearance
Transformation => { # ONVIF::Analytics::Types::Transformation
Translate => ,
Scale => ,
Extension => { # ONVIF::Analytics::Types::TransformationExtension
},
},
Shape => { # ONVIF::Analytics::Types::ShapeDescriptor
BoundingBox => ,
CenterOfGravity => ,
Polygon => { # ONVIF::Analytics::Types::Polygon
Point => ,
},
Extension => { # ONVIF::Analytics::Types::ShapeDescriptorExtension
},
},
Color => { # ONVIF::Analytics::Types::ColorDescriptor
ColorCluster => {
Color => ,
Weight => $some_value, # float
Covariance => ,
},
Extension => { # ONVIF::Analytics::Types::ColorDescriptorExtension
},
},
Class => { # ONVIF::Analytics::Types::ClassDescriptor
ClassCandidate => {
Type => $some_value, # ClassType
Likelihood => $some_value, # float
},
Extension => { # ONVIF::Analytics::Types::ClassDescriptorExtension
OtherTypes => { # ONVIF::Analytics::Types::OtherType
Type => $some_value, # string
Likelihood => $some_value, # float
},
Extension => { # ONVIF::Analytics::Types::ClassDescriptorExtension2
},
},
},
Extension => { # ONVIF::Analytics::Types::AppearanceExtension
},
},
Behaviour => { # ONVIF::Analytics::Types::Behaviour
Removed => {
},
Idle => {
},
Extension => { # ONVIF::Analytics::Types::BehaviourExtension
},
},
Extension => { # ONVIF::Analytics::Types::ObjectExtension
},
},
ObjectTree => { # ONVIF::Analytics::Types::ObjectTree
Rename => { # ONVIF::Analytics::Types::Rename
from => ,
to => ,
},
Split => { # ONVIF::Analytics::Types::Split
from => ,
to => ,
},
Merge => { # ONVIF::Analytics::Types::Merge
from => ,
to => ,
},
Delete => ,
Extension => { # ONVIF::Analytics::Types::ObjectTreeExtension
},
},
Extension => { # ONVIF::Analytics::Types::FrameExtension
MotionInCells => { # ONVIF::Analytics::Types::MotionInCells
},
Extension => { # ONVIF::Analytics::Types::FrameExtension2
},
},
},
Extension => { # ONVIF::Analytics::Types::VideoAnalyticsStreamExtension
},
},
PTZ => { # ONVIF::Analytics::Types::PTZStream
# One of the following elements.
# No occurance checks yet, so be sure to pass just one...
PTZStatus => { # ONVIF::Analytics::Types::PTZStatus
Position => { # ONVIF::Analytics::Types::PTZVector
PanTilt => ,
Zoom => ,
},
MoveStatus => { # ONVIF::Analytics::Types::PTZMoveStatus
PanTilt => $some_value, # MoveStatus
Zoom => $some_value, # MoveStatus
},
Error => $some_value, # string
UtcTime => $some_value, # dateTime
},
Extension => { # ONVIF::Analytics::Types::PTZStreamExtension
},
},
Event => $some_value, # anyType
Extension => { # ONVIF::Analytics::Types::MetadataStreamExtension
AudioAnalyticsStream => { # ONVIF::Analytics::Types::AudioAnalyticsStream
AudioDescriptor => { # ONVIF::Analytics::Types::AudioDescriptor
},
Extension => { # ONVIF::Analytics::Types::AudioAnalyticsStreamExtension
},
},
Extension => { # ONVIF::Analytics::Types::MetadataStreamExtension2
},
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,143 @@
package ONVIF::Analytics::Elements::ModifyAnalyticsModules;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('ModifyAnalyticsModules');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %ConfigurationToken_of :ATTR(:get<ConfigurationToken>);
my %AnalyticsModule_of :ATTR(:get<AnalyticsModule>);
__PACKAGE__->_factory(
[ qw( ConfigurationToken
AnalyticsModule
) ],
{
'ConfigurationToken' => \%ConfigurationToken_of,
'AnalyticsModule' => \%AnalyticsModule_of,
},
{
'ConfigurationToken' => 'ONVIF::Analytics::Types::ReferenceToken',
'AnalyticsModule' => 'ONVIF::Analytics::Types::Config',
},
{
'ConfigurationToken' => 'ConfigurationToken',
'AnalyticsModule' => 'AnalyticsModule',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::ModifyAnalyticsModules
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
ModifyAnalyticsModules from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * ConfigurationToken
$element->set_ConfigurationToken($data);
$element->get_ConfigurationToken();
=item * AnalyticsModule
$element->set_AnalyticsModule($data);
$element->get_AnalyticsModule();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::ModifyAnalyticsModules->new($data);
Constructor. The following data structure may be passed to new():
{
ConfigurationToken => $some_value, # ReferenceToken
AnalyticsModule => { # ONVIF::Analytics::Types::Config
Parameters => { # ONVIF::Analytics::Types::ItemList
SimpleItem => ,
ElementItem => {
},
Extension => { # ONVIF::Analytics::Types::ItemListExtension
},
},
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,90 @@
package ONVIF::Analytics::Elements::ModifyAnalyticsModulesResponse;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('ModifyAnalyticsModulesResponse');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
# There's no variety - empty complexType
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
__PACKAGE__->_factory();
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::ModifyAnalyticsModulesResponse
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
ModifyAnalyticsModulesResponse from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::ModifyAnalyticsModulesResponse->new($data);
Constructor. The following data structure may be passed to new():
,
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,143 @@
package ONVIF::Analytics::Elements::ModifyRules;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('ModifyRules');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
Class::Std::initialize();
{ # BLOCK to scope variables
my %ConfigurationToken_of :ATTR(:get<ConfigurationToken>);
my %Rule_of :ATTR(:get<Rule>);
__PACKAGE__->_factory(
[ qw( ConfigurationToken
Rule
) ],
{
'ConfigurationToken' => \%ConfigurationToken_of,
'Rule' => \%Rule_of,
},
{
'ConfigurationToken' => 'ONVIF::Analytics::Types::ReferenceToken',
'Rule' => 'ONVIF::Analytics::Types::Config',
},
{
'ConfigurationToken' => 'ConfigurationToken',
'Rule' => 'Rule',
}
);
} # end BLOCK
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::ModifyRules
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
ModifyRules from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=item * ConfigurationToken
$element->set_ConfigurationToken($data);
$element->get_ConfigurationToken();
=item * Rule
$element->set_Rule($data);
$element->get_Rule();
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::ModifyRules->new($data);
Constructor. The following data structure may be passed to new():
{
ConfigurationToken => $some_value, # ReferenceToken
Rule => { # ONVIF::Analytics::Types::Config
Parameters => { # ONVIF::Analytics::Types::ItemList
SimpleItem => ,
ElementItem => {
},
Extension => { # ONVIF::Analytics::Types::ItemListExtension
},
},
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,90 @@
package ONVIF::Analytics::Elements::ModifyRulesResponse;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver20/analytics/wsdl' }
__PACKAGE__->__set_name('ModifyRulesResponse');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;
sub __get_attr_class {
return $XML_ATTRIBUTE_CLASS;
}
# There's no variety - empty complexType
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
__PACKAGE__->_factory();
} # end of BLOCK
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::ModifyRulesResponse
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
ModifyRulesResponse from the namespace http://www.onvif.org/ver20/analytics/wsdl.
=head1 PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
=back
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::ModifyRulesResponse->new($data);
Constructor. The following data structure may be passed to new():
,
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,106 @@
package ONVIF::Analytics::Elements::PTZConfiguration;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver10/schema' }
__PACKAGE__->__set_name('PTZConfiguration');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::PTZConfiguration
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::PTZConfiguration
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
PTZConfiguration from the namespace http://www.onvif.org/ver10/schema.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::PTZConfiguration->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::PTZConfiguration
NodeToken => $some_value, # ReferenceToken
DefaultAbsolutePantTiltPositionSpace => $some_value, # anyURI
DefaultAbsoluteZoomPositionSpace => $some_value, # anyURI
DefaultRelativePanTiltTranslationSpace => $some_value, # anyURI
DefaultRelativeZoomTranslationSpace => $some_value, # anyURI
DefaultContinuousPanTiltVelocitySpace => $some_value, # anyURI
DefaultContinuousZoomVelocitySpace => $some_value, # anyURI
DefaultPTZSpeed => { # ONVIF::Analytics::Types::PTZSpeed
PanTilt => ,
Zoom => ,
},
DefaultPTZTimeout => $some_value, # duration
PanTiltLimits => { # ONVIF::Analytics::Types::PanTiltLimits
Range => { # ONVIF::Analytics::Types::Space2DDescription
URI => $some_value, # anyURI
XRange => { # ONVIF::Analytics::Types::FloatRange
Min => $some_value, # float
Max => $some_value, # float
},
YRange => { # ONVIF::Analytics::Types::FloatRange
Min => $some_value, # float
Max => $some_value, # float
},
},
},
ZoomLimits => { # ONVIF::Analytics::Types::ZoomLimits
Range => { # ONVIF::Analytics::Types::Space1DDescription
URI => $some_value, # anyURI
XRange => { # ONVIF::Analytics::Types::FloatRange
Min => $some_value, # float
Max => $some_value, # float
},
},
},
Extension => { # ONVIF::Analytics::Types::PTZConfigurationExtension
PTControlDirection => { # ONVIF::Analytics::Types::PTControlDirection
EFlip => { # ONVIF::Analytics::Types::EFlip
Mode => $some_value, # EFlipMode
},
Reverse => { # ONVIF::Analytics::Types::Reverse
Mode => $some_value, # ReverseMode
},
Extension => { # ONVIF::Analytics::Types::PTControlDirectionExtension
},
},
Extension => { # ONVIF::Analytics::Types::PTZConfigurationExtension2
},
},
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

View File

@ -0,0 +1,59 @@
package ONVIF::Analytics::Elements::Polygon;
use strict;
use warnings;
{ # BLOCK to scope variables
sub get_xmlns { 'http://www.onvif.org/ver10/schema' }
__PACKAGE__->__set_name('Polygon');
__PACKAGE__->__set_nillable();
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref();
use base qw(
SOAP::WSDL::XSD::Typelib::Element
ONVIF::Analytics::Types::Polygon
);
}
1;
=pod
=head1 NAME
ONVIF::Analytics::Elements::Polygon
=head1 DESCRIPTION
Perl data type class for the XML Schema defined element
Polygon from the namespace http://www.onvif.org/ver10/schema.
=head1 METHODS
=head2 new
my $element = ONVIF::Analytics::Elements::Polygon->new($data);
Constructor. The following data structure may be passed to new():
{ # ONVIF::Analytics::Types::Polygon
Point => ,
},
=head1 AUTHOR
Generated by SOAP::WSDL
=cut

Some files were not shown because too many files have changed in this diff Show More