Merge branch 'storageareas' into optimisations
This commit is contained in:
commit
48d658790a
|
@ -22,6 +22,7 @@ db/zm_create.sql
|
||||||
depcomp
|
depcomp
|
||||||
docs/_build
|
docs/_build
|
||||||
install-sh
|
install-sh
|
||||||
|
install_manifest.txt
|
||||||
misc/CMakeFiles/
|
misc/CMakeFiles/
|
||||||
misc/apache.conf
|
misc/apache.conf
|
||||||
misc/cmake_install.cmake
|
misc/cmake_install.cmake
|
||||||
|
@ -85,11 +86,40 @@ scripts/zmupdate.pl
|
||||||
scripts/zmvideo.pl
|
scripts/zmvideo.pl
|
||||||
scripts/zmwatch.pl
|
scripts/zmwatch.pl
|
||||||
scripts/zmx10.pl
|
scripts/zmx10.pl
|
||||||
|
scripts/zoneminder-zmaudit.pl.8
|
||||||
|
scripts/zoneminder-zmaudit.pl.8.gz
|
||||||
|
scripts/zoneminder-zmcamtool.pl.8
|
||||||
|
scripts/zoneminder-zmcamtool.pl.8.gz
|
||||||
|
scripts/zoneminder-zmcontrol.pl.8
|
||||||
|
scripts/zoneminder-zmcontrol.pl.8.gz
|
||||||
|
scripts/zoneminder-zmdc.pl.8
|
||||||
|
scripts/zoneminder-zmdc.pl.8.gz
|
||||||
|
scripts/zoneminder-zmfilter.pl.8
|
||||||
|
scripts/zoneminder-zmfilter.pl.8.gz
|
||||||
|
scripts/zoneminder-zmpkg.pl.8
|
||||||
|
scripts/zoneminder-zmpkg.pl.8.gz
|
||||||
|
scripts/zoneminder-zmsystemctl.pl.8
|
||||||
|
scripts/zoneminder-zmsystemctl.pl.8.gz
|
||||||
|
scripts/zoneminder-zmtelemetry.pl.8
|
||||||
|
scripts/zoneminder-zmtelemetry.pl.8.gz
|
||||||
|
scripts/zoneminder-zmtrack.pl.8
|
||||||
|
scripts/zoneminder-zmtrack.pl.8.gz
|
||||||
|
scripts/zoneminder-zmtrigger.pl.8
|
||||||
|
scripts/zoneminder-zmtrigger.pl.8.gz
|
||||||
|
scripts/zoneminder-zmupdate.pl.8
|
||||||
|
scripts/zoneminder-zmupdate.pl.8.gz
|
||||||
|
scripts/zoneminder-zmvideo.pl.8
|
||||||
|
scripts/zoneminder-zmvideo.pl.8.gz
|
||||||
|
scripts/zoneminder-zmwatch.pl.8
|
||||||
|
scripts/zoneminder-zmwatch.pl.8.gz
|
||||||
|
scripts/zoneminder-zmx10.pl.8
|
||||||
|
scripts/zoneminder-zmx10.pl.8.gz
|
||||||
src/*.o
|
src/*.o
|
||||||
src/.deps/
|
src/.deps/
|
||||||
src/CMakeFiles/
|
src/CMakeFiles/
|
||||||
src/cmake_install.cmake
|
src/cmake_install.cmake
|
||||||
src/libzm.a
|
src/libzm.a
|
||||||
|
src/nph-zms
|
||||||
src/zm_config.h
|
src/zm_config.h
|
||||||
src/zm_config_defines.h
|
src/zm_config_defines.h
|
||||||
src/zma
|
src/zma
|
||||||
|
@ -97,6 +127,16 @@ src/zmc
|
||||||
src/zmf
|
src/zmf
|
||||||
src/zms
|
src/zms
|
||||||
src/zmu
|
src/zmu
|
||||||
|
src/zoneminder-zma.8
|
||||||
|
src/zoneminder-zma.8.gz
|
||||||
|
src/zoneminder-zmc.8
|
||||||
|
src/zoneminder-zmc.8.gz
|
||||||
|
src/zoneminder-zmf.8
|
||||||
|
src/zoneminder-zmf.8.gz
|
||||||
|
src/zoneminder-zmstreamer.8
|
||||||
|
src/zoneminder-zmstreamer.8.gz
|
||||||
|
src/zoneminder-zmu.8
|
||||||
|
src/zoneminder-zmu.8.gz
|
||||||
stamp-h.in
|
stamp-h.in
|
||||||
stamp-h1
|
stamp-h1
|
||||||
web/CMakeFiles/
|
web/CMakeFiles/
|
||||||
|
@ -104,12 +144,16 @@ web/api/CMakeFiles/
|
||||||
web/api/app/Config/bootstrap.php
|
web/api/app/Config/bootstrap.php
|
||||||
web/api/app/Config/core.php
|
web/api/app/Config/core.php
|
||||||
web/api/cmake_install.cmake
|
web/api/cmake_install.cmake
|
||||||
|
web/cgi-bin/
|
||||||
web/cmake_install.cmake
|
web/cmake_install.cmake
|
||||||
|
web/events/
|
||||||
|
web/images/
|
||||||
web/includes/config.php
|
web/includes/config.php
|
||||||
web/tools/mootools/CMakeFiles/
|
web/tools/mootools/CMakeFiles/
|
||||||
web/tools/mootools/cmake_install.cmake
|
web/tools/mootools/cmake_install.cmake
|
||||||
web/tools/mootools/mootools-core.js
|
web/tools/mootools/mootools-core.js
|
||||||
web/tools/mootools/mootools-more.js
|
web/tools/mootools/mootools-more.js
|
||||||
|
web/undef.log
|
||||||
zm.conf
|
zm.conf
|
||||||
zmconfgen.pl
|
zmconfgen.pl
|
||||||
zmlinkcontent.sh
|
zmlinkcontent.sh
|
||||||
|
|
|
@ -48,4 +48,4 @@ script:
|
||||||
- mysql -uzmuser -pzmpass < db/zm_create.sql
|
- mysql -uzmuser -pzmpass < db/zm_create.sql
|
||||||
- mysql -uzmuser -pzmpass zm < db/test.monitor.sql
|
- mysql -uzmuser -pzmpass zm < db/test.monitor.sql
|
||||||
- sudo zmpkg.pl start
|
- sudo zmpkg.pl start
|
||||||
- sudo zmfilter.pl -f purgewhenfull
|
- sudo zmfilter.pl --filter purgewhenfull
|
||||||
|
|
|
@ -67,6 +67,24 @@ set(CMAKE_CXX_FLAGS_DEBUG "-Wall -D__STDC_CONSTANT_MACROS -g")
|
||||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
|
||||||
|
|
||||||
|
# GCC below 6.0 doesn't support __target__("fpu=neon") attribute, required for compiling ARM Neon code, otherwise compilation fails.
|
||||||
|
# Must use -mfpu=neon compiler flag instead, but only do that for processors that support neon, otherwise strip the neon code alltogether,
|
||||||
|
# because passing -fmpu=neon is unsafe to processors that don't support neon
|
||||||
|
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" AND CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||||
|
IF(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0)
|
||||||
|
EXEC_PROGRAM(grep ARGS " neon " "/proc/cpuinfo" OUTPUT_VARIABLE neonoutput RETURN_VALUE neonresult)
|
||||||
|
IF(neonresult EQUAL 0)
|
||||||
|
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mfpu=neon")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -mfpu=neon")
|
||||||
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -mfpu=neon")
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -mfpu=neon")
|
||||||
|
ELSE(neonresult EQUAL 0)
|
||||||
|
add_definitions(-DZM_STRIP_NEON=1)
|
||||||
|
message(STATUS "ARM Neon is not available on this processor. Neon functions will be absent")
|
||||||
|
ENDIF(neonresult EQUAL 0)
|
||||||
|
ENDIF(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0)
|
||||||
|
ENDIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" AND CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||||
|
|
||||||
# Modules that we need:
|
# Modules that we need:
|
||||||
include (GNUInstallDirs)
|
include (GNUInstallDirs)
|
||||||
include (CheckIncludeFile)
|
include (CheckIncludeFile)
|
||||||
|
@ -403,6 +421,59 @@ else(MYSQLCLIENT_LIBRARIES)
|
||||||
"ZoneMinder requires mysqlclient but it was not found on your system")
|
"ZoneMinder requires mysqlclient but it was not found on your system")
|
||||||
endif(MYSQLCLIENT_LIBRARIES)
|
endif(MYSQLCLIENT_LIBRARIES)
|
||||||
|
|
||||||
|
# x264 (using find_library and find_path)
|
||||||
|
find_library(X264_LIBRARIES x264)
|
||||||
|
if(X264_LIBRARIES)
|
||||||
|
set(HAVE_LIBX264 1)
|
||||||
|
list(APPEND ZM_BIN_LIBS "${X264_LIBRARIES}")
|
||||||
|
find_path(X264_INCLUDE_DIR x264.h)
|
||||||
|
if(X264_INCLUDE_DIR)
|
||||||
|
include_directories("${X264_INCLUDE_DIR}")
|
||||||
|
set(CMAKE_REQUIRED_INCLUDES "${X264_INCLUDE_DIR}")
|
||||||
|
endif(X264_INCLUDE_DIR)
|
||||||
|
mark_as_advanced(FORCE X264_LIBRARIES X264_INCLUDE_DIR)
|
||||||
|
check_include_files("stdint.h;x264.h" HAVE_X264_H)
|
||||||
|
set(optlibsfound "${optlibsfound} x264")
|
||||||
|
else(X264_LIBRARIES)
|
||||||
|
set(optlibsnotfound "${optlibsnotfound} x264")
|
||||||
|
endif(X264_LIBRARIES)
|
||||||
|
|
||||||
|
# mp4v2 (using find_library and find_path)
|
||||||
|
find_library(MP4V2_LIBRARIES mp4v2)
|
||||||
|
if(MP4V2_LIBRARIES)
|
||||||
|
set(HAVE_LIBMP4V2 1)
|
||||||
|
list(APPEND ZM_BIN_LIBS "${MP4V2_LIBRARIES}")
|
||||||
|
|
||||||
|
# mp4v2/mp4v2.h
|
||||||
|
find_path(MP4V2_INCLUDE_DIR mp4v2/mp4v2.h)
|
||||||
|
if(MP4V2_INCLUDE_DIR)
|
||||||
|
include_directories("${MP4V2_INCLUDE_DIR}")
|
||||||
|
set(CMAKE_REQUIRED_INCLUDES "${MP4V2_INCLUDE_DIR}")
|
||||||
|
endif(MP4V2_INCLUDE_DIR)
|
||||||
|
check_include_file("mp4v2/mp4v2.h" HAVE_MP4V2_MP4V2_H)
|
||||||
|
|
||||||
|
# mp4v2.h
|
||||||
|
find_path(MP4V2_INCLUDE_DIR mp4v2.h)
|
||||||
|
if(MP4V2_INCLUDE_DIR)
|
||||||
|
include_directories("${MP4V2_INCLUDE_DIR}")
|
||||||
|
set(CMAKE_REQUIRED_INCLUDES "${MP4V2_INCLUDE_DIR}")
|
||||||
|
endif(MP4V2_INCLUDE_DIR)
|
||||||
|
check_include_file("mp4v2.h" HAVE_MP4V2_H)
|
||||||
|
|
||||||
|
# mp4.h
|
||||||
|
find_path(MP4V2_INCLUDE_DIR mp4.h)
|
||||||
|
if(MP4V2_INCLUDE_DIR)
|
||||||
|
include_directories("${MP4V2_INCLUDE_DIR}")
|
||||||
|
set(CMAKE_REQUIRED_INCLUDES "${MP4V2_INCLUDE_DIR}")
|
||||||
|
endif(MP4V2_INCLUDE_DIR)
|
||||||
|
check_include_file("mp4.h" HAVE_MP4_H)
|
||||||
|
|
||||||
|
mark_as_advanced(FORCE MP4V2_LIBRARIES MP4V2_INCLUDE_DIR)
|
||||||
|
set(optlibsfound "${optlibsfound} mp4v2")
|
||||||
|
else(MP4V2_LIBRARIES)
|
||||||
|
set(optlibsnotfound "${optlibsnotfound} mp4v2")
|
||||||
|
endif(MP4V2_LIBRARIES)
|
||||||
|
|
||||||
set(PATH_FFMPEG "")
|
set(PATH_FFMPEG "")
|
||||||
set(OPT_FFMPEG "no")
|
set(OPT_FFMPEG "no")
|
||||||
# Do not check for ffmpeg if ZM_NO_FFMPEG is on
|
# Do not check for ffmpeg if ZM_NO_FFMPEG is on
|
||||||
|
@ -493,6 +564,23 @@ if(NOT ZM_NO_FFMPEG)
|
||||||
set(optlibsnotfound "${optlibsnotfound} SWScale")
|
set(optlibsnotfound "${optlibsnotfound} SWScale")
|
||||||
endif(SWSCALE_LIBRARIES)
|
endif(SWSCALE_LIBRARIES)
|
||||||
|
|
||||||
|
# rescale (using find_library and find_path)
|
||||||
|
find_library(SWRESAMPLE_LIBRARIES swresample)
|
||||||
|
if(SWRESAMPLE_LIBRARIES)
|
||||||
|
set(HAVE_LIBSWRESAMPLE 1)
|
||||||
|
list(APPEND ZM_BIN_LIBS "${SWRESAMPLE_LIBRARIES}")
|
||||||
|
find_path(SWRESAMPLE_INCLUDE_DIR "libswresample/swresample.h" /usr/include/ffmpeg)
|
||||||
|
if(SWRESAMPLE_INCLUDE_DIR)
|
||||||
|
include_directories("${SWRESAMPLE_INCLUDE_DIR}")
|
||||||
|
set(CMAKE_REQUIRED_INCLUDES "${SWRESAMPLE_INCLUDE_DIR}")
|
||||||
|
endif(SWRESAMPLE_INCLUDE_DIR)
|
||||||
|
mark_as_advanced(FORCE SWRESAMPLE_LIBRARIES SWRESAMPLE_INCLUDE_DIR)
|
||||||
|
check_include_file("libswresample/swresample.h" HAVE_LIBSWRESAMPLE_SWRESAMPLE_H)
|
||||||
|
set(optlibsfound "${optlibsfound} SWResample")
|
||||||
|
else(SWRESAMPLE_LIBRARIES)
|
||||||
|
set(optlibsnotfound "${optlibsnotfound} SWResample")
|
||||||
|
endif(SWRESAMPLE_LIBRARIES)
|
||||||
|
|
||||||
# Find the path to the ffmpeg executable
|
# Find the path to the ffmpeg executable
|
||||||
find_program(FFMPEG_EXECUTABLE
|
find_program(FFMPEG_EXECUTABLE
|
||||||
NAMES ffmpeg avconv
|
NAMES ffmpeg avconv
|
||||||
|
@ -525,6 +613,13 @@ if(NOT ZM_NO_LIBVLC)
|
||||||
endif(LIBVLC_LIBRARIES)
|
endif(LIBVLC_LIBRARIES)
|
||||||
endif(NOT ZM_NO_LIBVLC)
|
endif(NOT ZM_NO_LIBVLC)
|
||||||
|
|
||||||
|
find_package(Boost 1.36.0)
|
||||||
|
if(Boost_FOUND)
|
||||||
|
include_directories(${Boost_INCLUDE_DIRS})
|
||||||
|
set(CMAKE_REQUIRED_INCLUDES "${Boost_INCLUDE_DIRS}")
|
||||||
|
list(APPEND ZM_BIN_LIBS "${Boost_LIBRARIES}")
|
||||||
|
endif()
|
||||||
|
|
||||||
# *** END OF LIBRARY CHECKS ***
|
# *** END OF LIBRARY CHECKS ***
|
||||||
|
|
||||||
# Check for gnutls or crypto
|
# Check for gnutls or crypto
|
||||||
|
|
16
Dockerfile
16
Dockerfile
|
@ -10,7 +10,7 @@ RUN apt-get update && \
|
||||||
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 cmake 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 \
|
||||||
mysql-server libvlc-dev libvlc5 libvlccore-dev libvlccore7 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 \
|
||||||
|
@ -42,22 +42,12 @@ ADD utils/docker/start.sh /tmp/start.sh
|
||||||
# give files in /usr/local/share/zoneminder/
|
# give files in /usr/local/share/zoneminder/
|
||||||
RUN chown -R www-data:www-data /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
|
|
||||||
|
|
||||||
# Adding apache virtual hosts file
|
# Adding apache virtual hosts file
|
||||||
ADD utils/docker/apache-vhost /etc/apache2/sites-available/000-default.conf
|
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
|
ADD utils/docker/phpdate.ini /etc/php5/apache2/conf.d/25-phpdate.ini
|
||||||
|
|
||||||
# Set the root passwd
|
# Expose http ports
|
||||||
RUN echo 'root:root' | chpasswd
|
EXPOSE 80
|
||||||
|
|
||||||
# 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 22 80
|
|
||||||
|
|
||||||
# Initial database and apache setup:
|
# Initial database and apache setup:
|
||||||
RUN "/ZoneMinder/utils/docker/setup.sh"
|
RUN "/ZoneMinder/utils/docker/setup.sh"
|
||||||
|
|
18
README.md
18
README.md
|
@ -1,7 +1,19 @@
|
||||||
ZoneMinder
|
ZoneMinder H264 Patch
|
||||||
==========
|
|
||||||
|
|
||||||
[![Build Status](https://travis-ci.org/ZoneMinder/ZoneMinder.png)](https://travis-ci.org/ZoneMinder/ZoneMinder) [![Bountysource](https://api.bountysource.com/badge/team?team_id=204&style=bounties_received)](https://www.bountysource.com/teams/zoneminder/issues?utm_source=ZoneMinder&utm_medium=shield&utm_campaign=bounties_received)
|
[![Build Status](https://travis-ci.org/ZoneMinder/ZoneMinder.png?branch=feature-h264-videostorage)](https://travis-ci.org/ZoneMinder/ZoneMinder) [![Bountysource](https://api.bountysource.com/badge/team?team_id=204&style=bounties_received)](https://www.bountysource.com/teams/zoneminder/issues?utm_source=ZoneMinder&utm_medium=shield&utm_campaign=bounties_received)
|
||||||
|
|
||||||
|
##Feature-h264-videostorage Branch Details
|
||||||
|
This branch supports direct recording of h264 cameras into MP4 format uisng the h264 Passthrough option, but only with FFMPEG Monitors currently. It also provides h264 encoding for any other monitor type. If you encounter any issues, please open an issue on GitHub and attach it to the h264 milestone. But do remember this is bleeding edge so it will have problems.
|
||||||
|
Thanks to @chriswiggins and @mastertheknife for their work, @SteveGilvarry is now maintaining this branch and welcomes any assistance.
|
||||||
|
|
||||||
|
**The following SQL changes are required, these will be merged to zmupdate once we are ready to merge this branch to master.**
|
||||||
|
```
|
||||||
|
ALTER TABLE `Monitors` ADD `SaveJPEGs` TINYINT NOT NULL DEFAULT '3' AFTER `Deinterlacing` ,
|
||||||
|
ADD `VideoWriter` TINYINT NOT NULL DEFAULT '0' AFTER `SaveJPEGs` ,
|
||||||
|
ADD `EncoderParameters` TEXT NOT NULL AFTER `VideoWriter` ;
|
||||||
|
|
||||||
|
ALTER TABLE `Events` ADD `DefaultVideo` VARCHAR( 64 ) NOT NULL AFTER `AlarmFrames` ;
|
||||||
|
```
|
||||||
|
|
||||||
All documentation for ZoneMinder is now online at https://zoneminder.readthedocs.org
|
All documentation for ZoneMinder is now online at https://zoneminder.readthedocs.org
|
||||||
|
|
||||||
|
|
|
@ -184,6 +184,7 @@ DROP TABLE IF EXISTS `Events`;
|
||||||
CREATE TABLE `Events` (
|
CREATE TABLE `Events` (
|
||||||
`Id` int(10) unsigned NOT NULL auto_increment,
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
`MonitorId` int(10) unsigned NOT NULL default '0',
|
`MonitorId` int(10) unsigned NOT NULL default '0',
|
||||||
|
`StorageId` smallint(5) unsigned default 0,
|
||||||
`Name` varchar(64) NOT NULL default '',
|
`Name` varchar(64) NOT NULL default '',
|
||||||
`Cause` varchar(32) NOT NULL default '',
|
`Cause` varchar(32) NOT NULL default '',
|
||||||
`StartTime` datetime default NULL,
|
`StartTime` datetime default NULL,
|
||||||
|
@ -193,6 +194,7 @@ CREATE TABLE `Events` (
|
||||||
`Length` decimal(10,2) NOT NULL default '0.00',
|
`Length` decimal(10,2) NOT NULL default '0.00',
|
||||||
`Frames` int(10) unsigned default NULL,
|
`Frames` int(10) unsigned default NULL,
|
||||||
`AlarmFrames` int(10) unsigned default NULL,
|
`AlarmFrames` int(10) unsigned default NULL,
|
||||||
|
`DefaultVideo` VARCHAR( 64 ) DEFAULT '' NOT NULL,
|
||||||
`TotScore` int(10) unsigned NOT NULL default '0',
|
`TotScore` int(10) unsigned NOT NULL default '0',
|
||||||
`AvgScore` smallint(5) unsigned default '0',
|
`AvgScore` smallint(5) unsigned default '0',
|
||||||
`MaxScore` smallint(5) unsigned default '0',
|
`MaxScore` smallint(5) unsigned default '0',
|
||||||
|
@ -203,6 +205,8 @@ CREATE TABLE `Events` (
|
||||||
`Messaged` tinyint(3) unsigned NOT NULL default '0',
|
`Messaged` tinyint(3) unsigned NOT NULL default '0',
|
||||||
`Executed` tinyint(3) unsigned NOT NULL default '0',
|
`Executed` tinyint(3) unsigned NOT NULL default '0',
|
||||||
`Notes` text,
|
`Notes` text,
|
||||||
|
`StateId` int(10) unsigned NOT NULL,
|
||||||
|
`Orientation` enum('0','90','180','270','hori','vert') NOT NULL default '0',
|
||||||
PRIMARY KEY (`Id`,`MonitorId`),
|
PRIMARY KEY (`Id`,`MonitorId`),
|
||||||
KEY `MonitorId` (`MonitorId`),
|
KEY `MonitorId` (`MonitorId`),
|
||||||
KEY `StartTime` (`StartTime`),
|
KEY `StartTime` (`StartTime`),
|
||||||
|
@ -216,6 +220,7 @@ CREATE TABLE `Events` (
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `Filters`;
|
DROP TABLE IF EXISTS `Filters`;
|
||||||
CREATE TABLE `Filters` (
|
CREATE TABLE `Filters` (
|
||||||
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
`Name` varchar(64) NOT NULL default '',
|
`Name` varchar(64) NOT NULL default '',
|
||||||
`Query` text NOT NULL,
|
`Query` text NOT NULL,
|
||||||
`AutoArchive` tinyint(3) unsigned NOT NULL default '0',
|
`AutoArchive` tinyint(3) unsigned NOT NULL default '0',
|
||||||
|
@ -227,7 +232,9 @@ CREATE TABLE `Filters` (
|
||||||
`AutoExecuteCmd` tinytext,
|
`AutoExecuteCmd` tinytext,
|
||||||
`AutoDelete` tinyint(3) unsigned NOT NULL default '0',
|
`AutoDelete` tinyint(3) unsigned NOT NULL default '0',
|
||||||
`Background` tinyint(1) unsigned NOT NULL default '0',
|
`Background` tinyint(1) unsigned NOT NULL default '0',
|
||||||
PRIMARY KEY (`Name`)
|
`Concurrent` tinyint(1) unsigned NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`Id`),
|
||||||
|
KEY `Name` (`Name`)
|
||||||
) ENGINE=@ZM_MYSQL_ENGINE@;
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
--
|
--
|
||||||
|
@ -319,38 +326,43 @@ CREATE TABLE `Monitors` (
|
||||||
`Id` int(10) unsigned NOT NULL auto_increment,
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
`Name` varchar(64) NOT NULL default '',
|
`Name` varchar(64) NOT NULL default '',
|
||||||
`ServerId` int(10) unsigned,
|
`ServerId` int(10) unsigned,
|
||||||
|
`StorageId` smallint(5) unsigned default 0,
|
||||||
`Type` enum('Local','Remote','File','Ffmpeg','Libvlc','cURL') NOT NULL default 'Local',
|
`Type` enum('Local','Remote','File','Ffmpeg','Libvlc','cURL') NOT NULL default 'Local',
|
||||||
`Function` enum('None','Monitor','Modect','Record','Mocord','Nodect') NOT NULL default 'Monitor',
|
`Function` enum('None','Monitor','Modect','Record','Mocord','Nodect') NOT NULL default 'Monitor',
|
||||||
`Enabled` tinyint(3) unsigned NOT NULL default '1',
|
`Enabled` tinyint(3) unsigned NOT NULL default '1',
|
||||||
`LinkedMonitors` varchar(255) NOT NULL default '',
|
`LinkedMonitors` varchar(255),
|
||||||
`Triggers` set('X10') NOT NULL default '',
|
`Triggers` set('X10') NOT NULL default '',
|
||||||
`Device` tinytext NOT NULL default '',
|
`Device` tinytext NOT NULL default '',
|
||||||
`Channel` tinyint(3) unsigned NOT NULL default '0',
|
`Channel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
`Format` int(10) unsigned NOT NULL default '0',
|
`Format` int(10) unsigned NOT NULL default '0',
|
||||||
`V4LMultiBuffer` tinyint(1) unsigned,
|
`V4LMultiBuffer` tinyint(1) unsigned,
|
||||||
`V4LCapturesPerFrame` tinyint(3) unsigned,
|
`V4LCapturesPerFrame` tinyint(3) unsigned,
|
||||||
`Protocol` varchar(16) NOT NULL default '',
|
`Protocol` varchar(16),
|
||||||
`Method` varchar(16) NOT NULL default '',
|
`Method` varchar(16) NOT NULL default '',
|
||||||
`Host` varchar(64) NOT NULL default '',
|
`Host` varchar(64),
|
||||||
`Port` varchar(8) NOT NULL default '',
|
`Port` varchar(8) NOT NULL default '',
|
||||||
`SubPath` varchar(64) NOT NULL default '',
|
`SubPath` varchar(64) NOT NULL default '',
|
||||||
`Path` varchar(255) NOT NULL default '',
|
`Path` varchar(255),
|
||||||
`Options` varchar(255) not null default '',
|
`Options` varchar(255),
|
||||||
`User` varchar(64) NOT NULL default '',
|
`User` varchar(64),
|
||||||
`Pass` varchar(64) NOT NULL default '',
|
`Pass` varchar(64),
|
||||||
`Width` smallint(5) unsigned NOT NULL default '0',
|
`Width` smallint(5) unsigned NOT NULL default '0',
|
||||||
`Height` smallint(5) unsigned NOT NULL default '0',
|
`Height` smallint(5) unsigned NOT NULL default '0',
|
||||||
`Colours` tinyint(3) unsigned NOT NULL default '1',
|
`Colours` tinyint(3) unsigned NOT NULL default '1',
|
||||||
`Palette` int(10) unsigned NOT NULL default '0',
|
`Palette` int(10) unsigned NOT NULL default '0',
|
||||||
`Orientation` enum('0','90','180','270','hori','vert') NOT NULL default '0',
|
`Orientation` enum('0','90','180','270','hori','vert') NOT NULL default '0',
|
||||||
`Deinterlacing` int(10) unsigned NOT NULL default '0',
|
`Deinterlacing` int(10) unsigned NOT NULL default '0',
|
||||||
`RTSPDescribe` tinyint(1) unsigned NOT NULL default '0',
|
`SaveJPEGs` TINYINT NOT NULL DEFAULT '3' ,
|
||||||
|
`VideoWriter` TINYINT NOT NULL DEFAULT '0',
|
||||||
|
`EncoderParameters` TEXT NOT NULL,
|
||||||
|
`RecordAudio` TINYINT NOT NULL DEFAULT '0',
|
||||||
|
`RTSPDescribe` tinyint(1) unsigned,
|
||||||
`Brightness` mediumint(7) NOT NULL default '-1',
|
`Brightness` mediumint(7) NOT NULL default '-1',
|
||||||
`Contrast` mediumint(7) NOT NULL default '-1',
|
`Contrast` mediumint(7) NOT NULL default '-1',
|
||||||
`Hue` mediumint(7) NOT NULL default '-1',
|
`Hue` mediumint(7) NOT NULL default '-1',
|
||||||
`Colour` mediumint(7) NOT NULL default '-1',
|
`Colour` mediumint(7) NOT NULL default '-1',
|
||||||
`EventPrefix` varchar(32) NOT NULL default 'Event-',
|
`EventPrefix` varchar(32) NOT NULL default 'Event-',
|
||||||
`LabelFormat` varchar(64) NOT NULL default '%N - %y/%m/%d %H:%M:%S',
|
`LabelFormat` varchar(64) default '%N - %y/%m/%d %H:%M:%S',
|
||||||
`LabelX` smallint(5) unsigned NOT NULL default '0',
|
`LabelX` smallint(5) unsigned NOT NULL default '0',
|
||||||
`LabelY` smallint(5) unsigned NOT NULL default '0',
|
`LabelY` smallint(5) unsigned NOT NULL default '0',
|
||||||
`LabelSize` smallint(5) unsigned NOT NULL DEFAULT '1',
|
`LabelSize` smallint(5) unsigned NOT NULL DEFAULT '1',
|
||||||
|
@ -371,14 +383,14 @@ CREATE TABLE `Monitors` (
|
||||||
`RefBlendPerc` tinyint(3) unsigned NOT NULL default '6',
|
`RefBlendPerc` tinyint(3) unsigned NOT NULL default '6',
|
||||||
`AlarmRefBlendPerc` tinyint(3) unsigned NOT NULL default '6',
|
`AlarmRefBlendPerc` tinyint(3) unsigned NOT NULL default '6',
|
||||||
`Controllable` tinyint(3) unsigned NOT NULL default '0',
|
`Controllable` tinyint(3) unsigned NOT NULL default '0',
|
||||||
`ControlId` int(10) unsigned NOT NULL default '0',
|
`ControlId` int(10) unsigned,
|
||||||
`ControlDevice` varchar(255) default NULL,
|
`ControlDevice` varchar(255) default NULL,
|
||||||
`ControlAddress` varchar(255) default NULL,
|
`ControlAddress` varchar(255) default NULL,
|
||||||
`AutoStopTimeout` decimal(5,2) default NULL,
|
`AutoStopTimeout` decimal(5,2) default NULL,
|
||||||
`TrackMotion` tinyint(3) unsigned NOT NULL default '0',
|
`TrackMotion` tinyint(3) unsigned NOT NULL default '0',
|
||||||
`TrackDelay` smallint(5) unsigned NOT NULL default '0',
|
`TrackDelay` smallint(5) unsigned,
|
||||||
`ReturnLocation` tinyint(3) NOT NULL default '-1',
|
`ReturnLocation` tinyint(3) NOT NULL default '-1',
|
||||||
`ReturnDelay` smallint(5) unsigned NOT NULL default '0',
|
`ReturnDelay` smallint(5) unsigned,
|
||||||
`DefaultView` enum('Events','Control') NOT NULL default 'Events',
|
`DefaultView` enum('Events','Control') NOT NULL default 'Events',
|
||||||
`DefaultRate` smallint(5) unsigned NOT NULL default '100',
|
`DefaultRate` smallint(5) unsigned NOT NULL default '100',
|
||||||
`DefaultScale` smallint(5) unsigned NOT NULL default '100',
|
`DefaultScale` smallint(5) unsigned NOT NULL default '100',
|
||||||
|
@ -389,6 +401,8 @@ CREATE TABLE `Monitors` (
|
||||||
PRIMARY KEY (`Id`)
|
PRIMARY KEY (`Id`)
|
||||||
) ENGINE=@ZM_MYSQL_ENGINE@;
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
CREATE INDEX `Monitors_ServerId_idx` ON `Monitors` (`ServerId`);
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `States`
|
-- Table structure for table `States`
|
||||||
-- PP - Added IsActive to track custom run states
|
-- PP - Added IsActive to track custom run states
|
||||||
|
@ -418,6 +432,9 @@ CREATE TABLE `Servers` (
|
||||||
`State_Id` int(10) unsigned,
|
`State_Id` int(10) unsigned,
|
||||||
PRIMARY KEY (`Id`)
|
PRIMARY KEY (`Id`)
|
||||||
) ENGINE=@ZM_MYSQL_ENGINE@;
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
CREATE INDEX `Servers_Name_idx` ON `Servers` (`Name`);
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `Stats`
|
-- Table structure for table `Stats`
|
||||||
--
|
--
|
||||||
|
@ -467,7 +484,7 @@ CREATE TABLE `Users` (
|
||||||
`Id` int(10) unsigned NOT NULL auto_increment,
|
`Id` int(10) unsigned NOT NULL auto_increment,
|
||||||
`Username` varchar(32) character set latin1 collate latin1_bin NOT NULL default '',
|
`Username` varchar(32) character set latin1 collate latin1_bin NOT NULL default '',
|
||||||
`Password` varchar(64) NOT NULL default '',
|
`Password` varchar(64) NOT NULL default '',
|
||||||
`Language` varchar(8) NOT NULL default '',
|
`Language` varchar(8),
|
||||||
`Enabled` tinyint(3) unsigned NOT NULL default '1',
|
`Enabled` tinyint(3) unsigned NOT NULL default '1',
|
||||||
`Stream` enum('None','View') NOT NULL default 'None',
|
`Stream` enum('None','View') NOT NULL default 'None',
|
||||||
`Events` enum('None','View','Edit') NOT NULL default 'None',
|
`Events` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
|
@ -476,8 +493,8 @@ CREATE TABLE `Users` (
|
||||||
`Groups` enum('None','View','Edit') NOT NULL default 'None',
|
`Groups` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
`Devices` enum('None','View','Edit') NOT NULL default 'None',
|
`Devices` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
`System` enum('None','View','Edit') NOT NULL default 'None',
|
`System` enum('None','View','Edit') NOT NULL default 'None',
|
||||||
`MaxBandwidth` varchar(16) NOT NULL default '',
|
`MaxBandwidth` varchar(16),
|
||||||
`MonitorIds` tinytext NOT NULL,
|
`MonitorIds` tinytext,
|
||||||
PRIMARY KEY (`Id`),
|
PRIMARY KEY (`Id`),
|
||||||
UNIQUE KEY `UC_Username` (`Username`)
|
UNIQUE KEY `UC_Username` (`Username`)
|
||||||
) ENGINE=@ZM_MYSQL_ENGINE@;
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
@ -544,6 +561,19 @@ CREATE TABLE `Zones` (
|
||||||
KEY `MonitorId` (`MonitorId`)
|
KEY `MonitorId` (`MonitorId`)
|
||||||
) ENGINE=@ZM_MYSQL_ENGINE@;
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Storage`;
|
||||||
|
CREATE TABLE `Storage` (
|
||||||
|
`Id` smallint(5) unsigned NOT NULL auto_increment,
|
||||||
|
`Path` varchar(64) NOT NULL default '',
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Create a default storage location
|
||||||
|
--
|
||||||
|
insert into Storage VALUES (NULL, '/var/cache/zoneminder/events', 'Default' );
|
||||||
|
|
||||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
@ -564,7 +594,7 @@ insert into Users VALUES (NULL,'admin',password('admin'),'',1,'View','Edit','Edi
|
||||||
--
|
--
|
||||||
-- Add a sample filter to purge the oldest 100 events when the disk is 95% full
|
-- Add a sample filter to purge the oldest 100 events when the disk is 95% full
|
||||||
--
|
--
|
||||||
insert into Filters values ('PurgeWhenFull','{"sort_field":"Id","terms":[{"val":0,"attr":"Archived","op":"="},{"cnj":"and","val":95,"attr":"DiskPercent","op":">="}],"limit":100,"sort_asc":1}',0,0,0,0,0,0,'',1,1);
|
insert into Filters values (NULL,'PurgeWhenFull','{"sort_field":"Id","terms":[{"val":0,"attr":"Archived","op":"="},{"cnj":"and","val":95,"attr":"DiskPercent","op":">="}],"limit":100,"sort_asc":1}',0,0,0,0,0,0,'',1,1,0);
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Add in some sample control protocol definitions
|
-- Add in some sample control protocol definitions
|
||||||
|
@ -595,6 +625,7 @@ INSERT INTO `Controls` VALUES (NULL,'IPCC 7210W','Libvlc','IPCC7210W', 1, 1, 1,
|
||||||
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,'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);
|
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);
|
||||||
INSERT INTO `Controls` VALUES (NULL,'Keekoon','Remote','Keekoon', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 0, 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);
|
INSERT INTO `Controls` VALUES (NULL,'Keekoon','Remote','Keekoon', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 0, 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);
|
||||||
|
INSERT INTO `Controls` VALUES (NULL,'HikVision','Local','',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,20,1,1,1,1,0,0,0,1,1,0,0,0,0,1,1,100,0,0,1,0,0,0,0,1,1,100,1,0,0,0);
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Add some monitor preset values
|
-- Add some monitor preset values
|
||||||
|
@ -667,6 +698,8 @@ INSERT INTO MonitorPresets VALUES (NULL,'Foscam FI9821W FFMPEG H.264','Ffmpeg',N
|
||||||
INSERT INTO MonitorPresets VALUES (NULL,'Loftek Sentinel PTZ, 640x480, mjpeg','Remote','http',0,0,NULL,NULL,'<ip-address>','80','/videostream.cgi?user=<username>&pwd=<password>&resolution=32&rate=11',NULL,640,480,4,NULL,1,'13','','<username>:<pwd>@<ip-address>',100,100);
|
INSERT INTO MonitorPresets VALUES (NULL,'Loftek Sentinel PTZ, 640x480, mjpeg','Remote','http',0,0,NULL,NULL,'<ip-address>','80','/videostream.cgi?user=<username>&pwd=<password>&resolution=32&rate=11',NULL,640,480,4,NULL,1,'13','','<username>:<pwd>@<ip-address>',100,100);
|
||||||
INSERT INTO MonitorPresets VALUES (NULL,'Airlink 777W PTZ, 640x480, mjpeg','Remote','http',0,0,NULL,NULL,'<username>:<password>@<ip-address>','80','/cgi/mjpg/mjpg.cgi',NULL,640,480,4,NULL,1,'7','','<username>:<pwd>@<ip-address>',100,100);
|
INSERT INTO MonitorPresets VALUES (NULL,'Airlink 777W PTZ, 640x480, mjpeg','Remote','http',0,0,NULL,NULL,'<username>:<password>@<ip-address>','80','/cgi/mjpg/mjpg.cgi',NULL,640,480,4,NULL,1,'7','','<username>:<pwd>@<ip-address>',100,100);
|
||||||
INSERT INTO MonitorPresets VALUES (NULL,'SunEyes SP-P1802SWPTZ','Libvlc','/dev/video<?>','0',255,'','rtpMulti','','80','rtsp://<ip-address>:554/11','',1920,1080,0,0.00,1,'16','-speed=64','<ip-address>:<port>',100,33);
|
INSERT INTO MonitorPresets VALUES (NULL,'SunEyes SP-P1802SWPTZ','Libvlc','/dev/video<?>','0',255,'','rtpMulti','','80','rtsp://<ip-address>:554/11','',1920,1080,0,0.00,1,'16','-speed=64','<ip-address>:<port>',100,33);
|
||||||
|
INSERT INTO MonitorPresets VALUES (NULL,'Qihan IP, 1280x720, RTP/RTSP','Ffmpeg','rtsp','rtpRtsp',255,'rtsp','rtpRtsp',NULL,554,'rtsp://<ip-address>/tcp_live/ch0_0',NULL,1280,720,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
INSERT INTO MonitorPresets VALUES (NULL,'Qihan IP, 1920x1080, RTP/RTSP','Ffmpeg','rtsp','rtpRtsp',255,'rtsp','rtpRtsp',NULL,554,'rtsp://<ip-address>/tcp_live/ch0_0',NULL,1920,1080,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Add some zone preset values
|
-- Add some zone preset values
|
||||||
|
@ -685,3 +718,4 @@ INSERT INTO ZonePresets VALUES (7,'Best, high sensitivity','Active','Percent','B
|
||||||
-- This section is autogenerated by zmconfgen.pl
|
-- This section is autogenerated by zmconfgen.pl
|
||||||
-- Do not edit this file as any changes will be overwritten
|
-- Do not edit this file as any changes will be overwritten
|
||||||
--
|
--
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,6 @@
|
||||||
-- This updates a 1.28.109 database to 1.28.110
|
-- This updates a 1.28.109 database to 1.28.110
|
||||||
--
|
--
|
||||||
|
|
||||||
--
|
|
||||||
-- Update Frame table to have a PrimaryKey of ID, insetad of a Composite Primary Key
|
|
||||||
-- Used primarially for compatibility with CakePHP
|
|
||||||
--
|
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
--
|
|
||||||
-- This updates a 1.29.0 database to 1.29.1
|
|
||||||
--
|
|
||||||
--
|
|
||||||
|
|
||||||
-- Increase the size of the Pid field for FreeBSD
|
|
||||||
ALTER TABLE Logs MODIFY Pid int(10);
|
|
|
@ -1,7 +1,110 @@
|
||||||
--
|
--
|
||||||
-- This updates a 1.30.0 database to 1.30.1
|
-- This updates a 1.28.108 database to 1.28.109
|
||||||
--
|
|
||||||
-- Alter type of Messages column from VARCHAR(255) to TEXT
|
|
||||||
--
|
--
|
||||||
|
|
||||||
ALTER TABLE Logs MODIFY Message TEXT;
|
--
|
||||||
|
-- Add Controls definition for Vivotek ePTZ
|
||||||
|
--
|
||||||
|
INSERT INTO Controls
|
||||||
|
SELECT * FROM (SELECT NULL as Id,
|
||||||
|
'Vivotek ePTZ' as Name,
|
||||||
|
'Remote' as Type,
|
||||||
|
'Vivotek_ePTZ' as Protocol,
|
||||||
|
0 as CanWake,
|
||||||
|
0 as CanSleep,
|
||||||
|
1 as CanReset,
|
||||||
|
1 as CanZoom,
|
||||||
|
0 as CanAutoZoom,
|
||||||
|
0 as CanZoomAbs,
|
||||||
|
0 as CanZoomRel,
|
||||||
|
1 as CanZoomCon,
|
||||||
|
0 as MinZoomRange,
|
||||||
|
0 as MaxZoomRange,
|
||||||
|
0 as MinZoomStep,
|
||||||
|
0 as MaxZoomStep,
|
||||||
|
1 as HasZoomSpeed,
|
||||||
|
0 as MinZoomSpeed,
|
||||||
|
5 as MaxZoomSpeed,
|
||||||
|
0 as CanFocus,
|
||||||
|
0 as CanAutoFocus,
|
||||||
|
0 as CanFocusAbs,
|
||||||
|
0 as CanFocusRel,
|
||||||
|
0 as CanFocusCon,
|
||||||
|
0 as MinFocusRange,
|
||||||
|
0 as MaxFocusRange,
|
||||||
|
0 as MinFocusStep,
|
||||||
|
0 as MaxFocusStep,
|
||||||
|
0 as HasFocusSpeed,
|
||||||
|
0 as MinFocusSpeed,
|
||||||
|
0 as MaxFocusSpeed,
|
||||||
|
0 as CanIris,
|
||||||
|
0 as CanAutoIris,
|
||||||
|
0 as CanIrisAbs,
|
||||||
|
0 as CanIrisRel,
|
||||||
|
0 as CanIrisCon,
|
||||||
|
0 as MinIrisRange,
|
||||||
|
0 as MaxIrisRange,
|
||||||
|
0 as MinIrisStep,
|
||||||
|
0 as MaxIrisStep,
|
||||||
|
0 as HasIrisSpeed,
|
||||||
|
0 as MinIrisSpeed,
|
||||||
|
0 as MaxIrisSpeed,
|
||||||
|
0 as CanGain,
|
||||||
|
0 as CanAutoGain,
|
||||||
|
0 as CanGainAbs,
|
||||||
|
0 as CanGainRel,
|
||||||
|
0 as CanGainCon,
|
||||||
|
0 as MinGainRange,
|
||||||
|
0 as MaxGainRange,
|
||||||
|
0 as MinGainStep,
|
||||||
|
0 as MaxGainStep,
|
||||||
|
0 as HasGainSpeed,
|
||||||
|
0 as MinGainSpeed,
|
||||||
|
0 as MaxGainSpeed,
|
||||||
|
0 as CanWhite,
|
||||||
|
0 as CanAutoWhite,
|
||||||
|
0 as CanWhiteAbs,
|
||||||
|
0 as CanWhiteRel,
|
||||||
|
0 as CanWhiteCon,
|
||||||
|
0 as MinWhiteRange,
|
||||||
|
0 as MaxWhiteRange,
|
||||||
|
0 as MinWhiteStep,
|
||||||
|
0 as MaxWhiteStep,
|
||||||
|
0 as HasWhiteSpeed,
|
||||||
|
0 as MinWhiteSpeed,
|
||||||
|
0 as MaxWhiteSpeed,
|
||||||
|
0 as HasPresets,
|
||||||
|
0 as NumPresets,
|
||||||
|
0 as HasHomePreset,
|
||||||
|
0 as CanSetPresets,
|
||||||
|
1 as CanMove,
|
||||||
|
0 as CanMoveDiag,
|
||||||
|
0 as CanMoveMap,
|
||||||
|
0 as CanMoveAbs,
|
||||||
|
0 as CanMoveRel,
|
||||||
|
1 as CanMoveCon,
|
||||||
|
1 as CanPan,
|
||||||
|
0 as MinPanRange,
|
||||||
|
0 as MaxPanRange,
|
||||||
|
0 as MinPanStep,
|
||||||
|
0 as MaxPanStep,
|
||||||
|
1 as HasPanSpeed,
|
||||||
|
0 as MinPanSpeed,
|
||||||
|
5 as MaxPanSpeed,
|
||||||
|
0 as HasTurboPan,
|
||||||
|
0 as TurboPanSpeed,
|
||||||
|
1 as CanTilt,
|
||||||
|
0 as MinTiltRange,
|
||||||
|
0 as MaxTiltRange,
|
||||||
|
0 as MinTiltStep,
|
||||||
|
0 as MaxTiltStep,
|
||||||
|
1 as HasTiltSpeed,
|
||||||
|
0 as MinTiltSpeed,
|
||||||
|
5 as MaxTiltSpeed,
|
||||||
|
0 as HasTurboTilt,
|
||||||
|
0 as TurboTiltSpeed,
|
||||||
|
0 as CanAutoScan,
|
||||||
|
0 as NumScanPaths) AS tmp
|
||||||
|
WHERE NOT EXISTS (
|
||||||
|
SELECT Name FROM Controls WHERE name = 'Vivotek ePTZ'
|
||||||
|
) LIMIT 1;
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
-- This updates a 1.30.9 database to 1.30.10
|
||||||
|
--
|
||||||
|
-- Alter type of Messages column from VARCHAR(255) to TEXT
|
||||||
|
--
|
||||||
|
|
||||||
|
-- ALTER TABLE Logs ALTER Message DROP DEFAULT;
|
||||||
|
ALTER TABLE Logs MODIFY Message TEXT NOT NULL;
|
||||||
|
|
||||||
|
ALTER TABLE Config MODIFY DefaultValue TEXT;
|
|
@ -0,0 +1,19 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.30.10 database to 1.30.11
|
||||||
|
--
|
||||||
|
-- Add StateId Column to Events.
|
||||||
|
--
|
||||||
|
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Events'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'StateId'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column StateId exists in Events'",
|
||||||
|
"ALTER TABLE Events ADD `StateId` int(10) unsigned default NULL AFTER `Notes`"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
|
@ -0,0 +1,7 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.30.10 database to 1.30.11
|
||||||
|
--
|
||||||
|
-- Add StateId Column to Events.
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE Monitors MODIFY EncoderParameters TEXT;
|
|
@ -0,0 +1,7 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.30.10 database to 1.30.11
|
||||||
|
--
|
||||||
|
-- Add StateId Column to Events.
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE Monitors MODIFY Path VARCHAR(255);
|
|
@ -0,0 +1,24 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.30.1 database to 1.30.2
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Update Filters table to have a Concurrent Column
|
||||||
|
--
|
||||||
|
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Filters'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'Concurrent'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column Concurrent already exists in Filters'",
|
||||||
|
"ALTER TABLE Filters ADD COLUMN `Concurrent` tinyint(1) unsigned NOT NULL default '0' AFTER Background"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE Users MODIFY MonitorIds TEXT NOT NULL;
|
|
@ -0,0 +1,22 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.29.0 database to 1.29.1
|
||||||
|
--
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add an Id column and make it the primary key of the Filters table
|
||||||
|
--
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Filters'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'Id'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column Id exists in Filters'",
|
||||||
|
"ALTER TABLE `Filters` DROP PRIMARY KEY, ADD `Id` int(10) unsigned NOT NULL auto_increment PRIMARY KEY FIRST, ADD KEY `Name` (`Name`);"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.30.3 database to 1.30.4
|
||||||
|
--
|
||||||
|
-- No changes required
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE Monitors MODIFY LabelFormat varchar(64);
|
||||||
|
ALTER TABLE Monitors MODIFY Host varchar(64);
|
||||||
|
ALTER TABLE Monitors MODIFY Protocol varchar(16);
|
||||||
|
ALTER TABLE Monitors MODIFY Options varchar(255);
|
||||||
|
ALTER TABLE Monitors MODIFY LinkedMonitors varchar(255);
|
||||||
|
ALTER TABLE Monitors MODIFY User varchar(64);
|
||||||
|
ALTER TABLE Monitors MODIFY Pass varchar(64);
|
||||||
|
ALTER TABLE Monitors MODIFY RTSPDescribe tinyint(1) unsigned;
|
||||||
|
ALTER TABLE Monitors MODIFY ControlId int(10) unsigned;
|
||||||
|
ALTER TABLE Monitors MODIFY TrackDelay smallint(5) unsigned;
|
||||||
|
ALTER TABLE Monitors MODIFY ReturnDelay smallint(5) unsigned;
|
||||||
|
|
||||||
|
ALTER TABLE Users MODIFY MonitorIds tinytext;
|
||||||
|
ALTER TABLE Users MODIFY Language varchar(8);
|
||||||
|
ALTER TABLE Users MODIFY MaxBandwidth varchar(16);
|
|
@ -0,0 +1,60 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.29.0 database to 1.29.1
|
||||||
|
--
|
||||||
|
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.TABLES
|
||||||
|
WHERE table_name = 'Storage'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Storage table exists'",
|
||||||
|
"CREATE TABLE `Storage` (
|
||||||
|
`Id` smallint(5) unsigned NOT NULL auto_increment,
|
||||||
|
`Path` varchar(64) NOT NULL default '',
|
||||||
|
`Name` varchar(64) NOT NULL default '',
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
)"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add StorageId column to Monitors
|
||||||
|
--
|
||||||
|
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Monitors'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'StorageId'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column StorageId exists in Monitors'",
|
||||||
|
"ALTER TABLE Monitors ADD `StorageId` smallint(5) unsigned AFTER `ServerId`"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add StorageId column to Eventss
|
||||||
|
--
|
||||||
|
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Events'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'StorageId'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column StorageId exists in Events'",
|
||||||
|
"ALTER TABLE Events ADD `StorageId` smallint(5) unsigned NOT NULL default 0 AFTER `MonitorId`"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
-- Increase the size of the Pid field for FreeBSD
|
||||||
|
ALTER TABLE Logs MODIFY Pid int(10);
|
|
@ -0,0 +1,73 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.29.0 database to 1.30.0
|
||||||
|
--
|
||||||
|
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Monitors'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'SaveJPEGs'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column SaveJPEGs exists in Monitors'",
|
||||||
|
"ALTER TABLE `Monitors` ADD `SaveJPEGs` TINYINT NOT NULL DEFAULT '3' AFTER `Deinterlacing`"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Monitors'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'VideoWriter'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column VideoWriter exists in Monitors'",
|
||||||
|
"ALTER TABLE `Monitors` ADD `VideoWriter` TINYINT NOT NULL DEFAULT '0' AFTER `SaveJPEGs`"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Monitors'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'EncoderParameters'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column EncoderParameters exists in Monitors'",
|
||||||
|
"ALTER TABLE `Monitors` ADD `EncoderParameters` TEXT NOT NULL AFTER `VideoWriter`"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Events'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'DefaultVideo'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column DefaultVideo exists in Events'",
|
||||||
|
"ALTER TABLE `Events` ADD `DefaultVideo` VARCHAR( 64 ) NOT NULL DEFAULT '' AFTER `AlarmFrames`"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Monitors'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'RecordAudio'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column RecordAudio exists in Monitors'",
|
||||||
|
"ALTER TABLE `Monitors` ADD `RecordAudio` TINYINT NOT NULL DEFAULT '0' AFTER `EncoderParameters`"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
|
@ -0,0 +1,10 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.30.6 database to 1.30.7
|
||||||
|
--
|
||||||
|
-- Changing StorageId to be NOT NULL and default 0
|
||||||
|
--
|
||||||
|
|
||||||
|
UPDATE Monitors SET StorageId = 0 WHERE StorageId IS NULL;
|
||||||
|
ALTER TABLE Monitors MODIFY `StorageId` smallint(5) unsigned NOT NULL default 0;
|
||||||
|
UPDATE Events SET StorageId = 0 WHERE StorageId IS NULL;
|
||||||
|
ALTER TABLE Events MODIFY `StorageId` smallint(5) unsigned NOT NULL default 0;
|
|
@ -0,0 +1,17 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.30.7 database to 1.30.8
|
||||||
|
--
|
||||||
|
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Events'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'Orientation'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column Orientation exists in Events'",
|
||||||
|
"ALTER TABLE `Events` ADD `Orientation` enum('0','90','180','270','hori','vert') NOT NULL default '0' AFTER `Notes`"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
|
@ -0,0 +1,39 @@
|
||||||
|
--
|
||||||
|
-- This updates a 1.30.9 database to 1.30.9
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Update Monitors table to have an Index on ServerId
|
||||||
|
--
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.STATISTICS
|
||||||
|
WHERE table_name = 'Monitors'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND index_name = 'Monitors_ServerId_idx'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Monitors_ServerId Index already exists on Monitors table'",
|
||||||
|
"CREATE INDEX `Monitors_ServerId_idx` ON `Monitors` (`ServerId`)"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Update Server table to have an Index on Name
|
||||||
|
--
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.STATISTICS
|
||||||
|
WHERE table_name = 'Servers'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND index_name = 'Servers_Name_idx'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Servers_Name Index already exists on Servers table'",
|
||||||
|
"CREATE INDEX `Servers_Name_idx` ON `Servers` (`Name`)"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
|
@ -1,8 +1,20 @@
|
||||||
Alias /zm /usr/share/zoneminder/www
|
Alias /zm /usr/share/zoneminder/www
|
||||||
|
|
||||||
|
<IfModule mod_fcgid.c>
|
||||||
|
<Directory /usr/share/zoneminder/www>
|
||||||
|
Options -Indexes +ExecCGI
|
||||||
|
AllowOverride All
|
||||||
|
AddHandler fcgid-script .php
|
||||||
|
FCGIWrapper /usr/bin/php5-cgi
|
||||||
|
Order allow,deny
|
||||||
|
Allow from all
|
||||||
|
</Directory>
|
||||||
|
</IfModule>
|
||||||
|
<IfModule mod_php5.c>
|
||||||
<Directory /usr/share/zoneminder/www>
|
<Directory /usr/share/zoneminder/www>
|
||||||
Options -Indexes +FollowSymLinks
|
Options -Indexes +FollowSymLinks
|
||||||
<IfModule mod_dir.c>
|
<IfModule mod_dir.c>
|
||||||
DirectoryIndex index.php
|
DirectoryIndex index.php
|
||||||
</IfModule>
|
</IfModule>
|
||||||
</Directory>
|
</Directory>
|
||||||
|
</IfModule>
|
||||||
|
|
|
@ -6,14 +6,14 @@ Build-Depends: debhelper (>= 9), cmake
|
||||||
, libphp-serialization-perl
|
, libphp-serialization-perl
|
||||||
, libgnutls28-dev | libgnutls-dev
|
, libgnutls28-dev | libgnutls-dev
|
||||||
, libmysqlclient-dev | libmariadbclient-dev
|
, libmysqlclient-dev | libmariadbclient-dev
|
||||||
, libjpeg8-dev
|
, libjpeg-dev
|
||||||
, libpcre3-dev
|
, libpcre3-dev
|
||||||
, libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev
|
, libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev
|
||||||
|
, libavdevice-dev
|
||||||
, libv4l-dev (>= 0.8.3)
|
, libv4l-dev (>= 0.8.3)
|
||||||
, libbz2-dev
|
, libbz2-dev
|
||||||
, ffmpeg | libav-tools
|
, ffmpeg | libav-tools
|
||||||
, libnetpbm10-dev
|
, libnetpbm10-dev
|
||||||
, libavdevice-dev
|
|
||||||
, 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
|
||||||
|
@ -42,11 +42,11 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
|
||||||
, libsys-cpu-perl, libsys-meminfo-perl
|
, libsys-cpu-perl, libsys-meminfo-perl
|
||||||
, libdata-uuid-perl
|
, libdata-uuid-perl
|
||||||
, libpcre3
|
, libpcre3
|
||||||
, ffmpeg | libav-tools, libavdevice53
|
, ffmpeg | libav-tools, libavdevice53 | libavdevice55 | libavdevice57
|
||||||
, rsyslog | system-log-daemon
|
, rsyslog | system-log-daemon
|
||||||
, netpbm , libjpeg8
|
, netpbm
|
||||||
, zip
|
, zip
|
||||||
, libvlccore5 | libvlccore7, libvlc5
|
, libvlccore5 | libvlccore7 | libvlccore8, libvlc5
|
||||||
, libpolkit-gobject-1-0, php5-gd
|
, 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
|
||||||
|
|
|
@ -27,9 +27,9 @@ override_dh_auto_configure:
|
||||||
override_dh_auto_install:
|
override_dh_auto_install:
|
||||||
dh_auto_install --buildsystem=cmake
|
dh_auto_install --buildsystem=cmake
|
||||||
install -D -m 0644 debian/apache.conf $(INSTDIR)/etc/zm/apache.conf
|
install -D -m 0644 debian/apache.conf $(INSTDIR)/etc/zm/apache.conf
|
||||||
rm $(INSTDIR)/usr/share/zoneminder/www/api/lib/Cake/LICENSE.txt
|
rm -f $(INSTDIR)/usr/share/zoneminder/www/api/lib/Cake/LICENSE.txt
|
||||||
rm $(INSTDIR)/usr/share/zoneminder/www/api/.gitignore
|
rm -f $(INSTDIR)/usr/share/zoneminder/www/api/.gitignore
|
||||||
rm -r $(INSTDIR)/usr/share/zoneminder/www/api/lib/Cake/Test
|
rm -rf $(INSTDIR)/usr/share/zoneminder/www/api/lib/Cake/Test
|
||||||
|
|
||||||
override_dh_auto_test:
|
override_dh_auto_test:
|
||||||
# do not run tests...
|
# do not run tests...
|
||||||
|
|
|
@ -49,10 +49,8 @@ endif("${unzip_jsc}" STREQUAL "")
|
||||||
file(MAKE_DIRECTORY sock swap zoneminder zoneminder-upload events images temp)
|
file(MAKE_DIRECTORY sock swap zoneminder zoneminder-upload events images temp)
|
||||||
|
|
||||||
# Install the empty folders
|
# Install the empty folders
|
||||||
#install(DIRECTORY run DESTINATION /var DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_WRITE GROUP_READ GROUP_EXECUTE WORLD_WRITE WORLD_READ WORLD_EXECUTE)
|
|
||||||
install(DIRECTORY sock swap DESTINATION /var/lib/zoneminder DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
install(DIRECTORY sock swap DESTINATION /var/lib/zoneminder DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||||
install(DIRECTORY zoneminder DESTINATION /var/log DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
install(DIRECTORY zoneminder DESTINATION /var/log DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||||
install(DIRECTORY zoneminder DESTINATION /run DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
|
||||||
install(DIRECTORY zoneminder-upload DESTINATION /var/spool DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
install(DIRECTORY zoneminder-upload DESTINATION /var/spool DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||||
install(DIRECTORY events images temp DESTINATION /var/lib/zoneminder DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
install(DIRECTORY events images temp DESTINATION /var/lib/zoneminder DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||||
|
|
||||||
|
|
|
@ -8,12 +8,15 @@ Requires=mariadb.service nginx.service php-fpm.service fcgiwrap.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
User=@WEB_USER@
|
User=@WEB_USER@
|
||||||
|
Group=@WEB_GROUP@
|
||||||
Type=forking
|
Type=forking
|
||||||
ExecStart=@BINDIR@/zmpkg.pl start
|
ExecStart=@BINDIR@/zmpkg.pl start
|
||||||
ExecReload=@BINDIR@/zmpkg.pl restart
|
ExecReload=@BINDIR@/zmpkg.pl restart
|
||||||
ExecStop=@BINDIR@/zmpkg.pl stop
|
ExecStop=@BINDIR@/zmpkg.pl stop
|
||||||
PIDFile=@ZM_RUNDIR@/zm.pid
|
PIDFile=@ZM_RUNDIR@/zm.pid
|
||||||
Environment=TZ=/etc/localtime
|
Environment=TZ=/etc/localtime
|
||||||
|
RuntimeDirectory=zoneminder
|
||||||
|
RuntimeDirectoryMode=0755
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
D @ZM_RUNDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
|
||||||
D @ZM_TMPDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
D @ZM_TMPDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
||||||
D @ZM_SOCKDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
D @ZM_SOCKDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
||||||
D /var/lib/php/session 770 root @WEB_GROUP@
|
D /var/lib/php/session 770 root @WEB_GROUP@
|
||||||
|
|
|
@ -11,6 +11,9 @@ RewriteRule ^/?(zm)(.*) https://%{SERVER_NAME}/$1$2 [R,L]
|
||||||
|
|
||||||
Alias /zm "@ZM_WEBDIR@"
|
Alias /zm "@ZM_WEBDIR@"
|
||||||
<Directory "@ZM_WEBDIR@">
|
<Directory "@ZM_WEBDIR@">
|
||||||
|
# explicitly set index.php as the only directoryindex
|
||||||
|
DirectoryIndex disabled
|
||||||
|
DirectoryIndex index.php
|
||||||
SSLRequireSSL
|
SSLRequireSSL
|
||||||
Options -Indexes +MultiViews +FollowSymLinks
|
Options -Indexes +MultiViews +FollowSymLinks
|
||||||
AllowOverride All
|
AllowOverride All
|
||||||
|
|
|
@ -7,12 +7,15 @@ Requires=mariadb.service httpd.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
User=@WEB_USER@
|
User=@WEB_USER@
|
||||||
|
Group=@WEB_GROUP@
|
||||||
Type=forking
|
Type=forking
|
||||||
ExecStart=@BINDIR@/zmpkg.pl start
|
ExecStart=@BINDIR@/zmpkg.pl start
|
||||||
ExecReload=@BINDIR@/zmpkg.pl restart
|
ExecReload=@BINDIR@/zmpkg.pl restart
|
||||||
ExecStop=@BINDIR@/zmpkg.pl stop
|
ExecStop=@BINDIR@/zmpkg.pl stop
|
||||||
PIDFile=@ZM_RUNDIR@/zm.pid
|
PIDFile=@ZM_RUNDIR@/zm.pid
|
||||||
Environment=TZ=/etc/localtime
|
Environment=TZ=/etc/localtime
|
||||||
|
RuntimeDirectory=zoneminder
|
||||||
|
RuntimeDirectoryMode=0755
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
D @ZM_RUNDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
|
||||||
D @ZM_TMPDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
D @ZM_TMPDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
||||||
|
D @ZM_TMPDIR@/logs 0755 @WEB_USER@ @WEB_GROUP@
|
||||||
|
D @ZM_TMPDIR@/cache 0755 @WEB_USER@ @WEB_GROUP@
|
||||||
|
D @ZM_TMPDIR@/cache/models 0755 @WEB_USER@ @WEB_GROUP@
|
||||||
|
D @ZM_TMPDIR@/cache/persistent 0755 @WEB_USER@ @WEB_GROUP@
|
||||||
|
D @ZM_TMPDIR@/cache/views 0755 @WEB_USER@ @WEB_GROUP@
|
||||||
D @ZM_SOCKDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
D @ZM_SOCKDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
%global zmuid_final apache
|
%global zmuid_final apache
|
||||||
%global zmgid_final apache
|
%global zmgid_final apache
|
||||||
|
|
||||||
# In some cases older distros do not have this macro defined
|
# Crud is configured as a git submodule
|
||||||
%{!?make_build: %global make_build %{__make} %{?_smp_mflags} }
|
%global crud_version 3.0.10
|
||||||
|
|
||||||
%if "%{zmuid_final}" == "nginx"
|
%if "%{zmuid_final}" == "nginx"
|
||||||
%global with_nginx 1
|
%global with_nginx 1
|
||||||
%global wwwconfdir /etc/nginx/default.d
|
%global wwwconfdir %{_sysconfdir}/nginx/default.d
|
||||||
%else
|
%else
|
||||||
%global wwwconfdir /etc/httpd/conf.d
|
%global wwwconfdir %{_sysconfdir}/httpd/conf.d
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%global sslcert %{_sysconfdir}/pki/tls/certs/localhost.crt
|
%global sslcert %{_sysconfdir}/pki/tls/certs/localhost.crt
|
||||||
|
@ -24,56 +24,87 @@
|
||||||
%global with_init_sysv 1
|
%global with_init_sysv 1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# php-mysql deprecated in f25
|
|
||||||
%if 0%{?fedora} >= 25
|
|
||||||
%global with_php_mysqlnd 1
|
|
||||||
%else
|
|
||||||
%global with_php_mysql 1
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%global readme_suffix %{?rhel:Redhat%{?rhel}}%{!?rhel:Fedora}
|
%global readme_suffix %{?rhel:Redhat%{?rhel}}%{!?rhel:Fedora}
|
||||||
%global _hardened_build 1
|
%global _hardened_build 1
|
||||||
|
|
||||||
Name: zoneminder
|
Name: zoneminder
|
||||||
Version: 1.30.1
|
Version: 1.30.2
|
||||||
Release: 2%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: A camera monitoring and analysis tool
|
Summary: A camera monitoring and analysis tool
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
# jscalendar is LGPL (any version): http://www.dynarch.com/projects/calendar/
|
# jscalendar is LGPL (any version): http://www.dynarch.com/projects/calendar/
|
||||||
# Mootools is inder the MIT license: http://mootools.net/
|
# Mootools is inder the MIT license: http://mootools.net/
|
||||||
# CakePHP is under the MIT license: https://github.com/cakephp/cakephp
|
# CakePHP is under the MIT license: https://github.com/cakephp/cakephp
|
||||||
|
# Crud is under the MIT license: https://github.com/FriendsOfCake/crud
|
||||||
License: GPLv2+ and LGPLv2+ and MIT
|
License: GPLv2+ and LGPLv2+ and MIT
|
||||||
URL: http://www.zoneminder.com/
|
URL: http://www.zoneminder.com/
|
||||||
|
|
||||||
Source: ZoneMinder-%{version}.tar.gz
|
Source0: https://github.com/ZoneMinder/ZoneMinder/archive/%{version}.tar.gz#/zoneminder-%{version}.tar.gz
|
||||||
|
Source1: https://github.com/FriendsOfCake/crud/archive/v%{crud_version}.tar.gz#/crud-%{crud_version}.tar.gz
|
||||||
|
|
||||||
%{?with_init_systemd:BuildRequires: systemd-devel mariadb-devel perl-podlators}
|
%{?with_init_systemd:BuildRequires: systemd-devel}
|
||||||
|
%{?with_init_systemd:BuildRequires: mariadb-devel}
|
||||||
|
%{?with_init_systemd:BuildRequires: perl-podlators}
|
||||||
%{?with_init_sysv:BuildRequires: mysql-devel}
|
%{?with_init_sysv:BuildRequires: mysql-devel}
|
||||||
|
%{?el6:BuildRequires: epel-rpm-macros}
|
||||||
BuildRequires: cmake >= 2.8.7
|
BuildRequires: cmake >= 2.8.7
|
||||||
BuildRequires: gnutls-devel bzip2-devel
|
BuildRequires: gnutls-devel
|
||||||
BuildRequires: pcre-devel libjpeg-turbo-devel
|
BuildRequires: bzip2-devel
|
||||||
BuildRequires: perl(Archive::Tar) perl(Archive::Zip)
|
BuildRequires: pcre-devel
|
||||||
BuildRequires: perl(Date::Manip) perl(DBD::mysql)
|
BuildRequires: libjpeg-turbo-devel
|
||||||
BuildRequires: perl(ExtUtils::MakeMaker) perl(LWP::UserAgent)
|
BuildRequires: findutils
|
||||||
BuildRequires: perl(MIME::Entity) perl(MIME::Lite)
|
BuildRequires: coreutils
|
||||||
BuildRequires: perl(PHP::Serialization) perl(Sys::Mmap)
|
BuildRequires: perl
|
||||||
BuildRequires: perl(Time::HiRes) perl(Net::SFTP::Foreign)
|
BuildRequires: perl-generators
|
||||||
BuildRequires: perl(Expect) perl(Sys::Syslog)
|
BuildRequires: perl(Archive::Tar)
|
||||||
BuildRequires: gcc gcc-c++ vlc-devel libcurl-devel libv4l-devel
|
BuildRequires: perl(Archive::Zip)
|
||||||
BuildRequires: ffmpeg-devel polkit-devel
|
BuildRequires: perl(Date::Manip)
|
||||||
|
BuildRequires: perl(DBD::mysql)
|
||||||
|
BuildRequires: perl(ExtUtils::MakeMaker)
|
||||||
|
BuildRequires: perl(LWP::UserAgent)
|
||||||
|
BuildRequires: perl(MIME::Entity)
|
||||||
|
BuildRequires: perl(MIME::Lite)
|
||||||
|
BuildRequires: perl(PHP::Serialization)
|
||||||
|
BuildRequires: perl(Sys::Mmap)
|
||||||
|
BuildRequires: perl(Time::HiRes)
|
||||||
|
BuildRequires: perl(Net::SFTP::Foreign)
|
||||||
|
BuildRequires: perl(Expect)
|
||||||
|
BuildRequires: perl(Sys::Syslog)
|
||||||
|
BuildRequires: gcc
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: vlc-devel
|
||||||
|
BuildRequires: libcurl-devel
|
||||||
|
BuildRequires: libv4l-devel
|
||||||
|
BuildRequires: ffmpeg-devel
|
||||||
|
BuildRequires: polkit-devel
|
||||||
|
|
||||||
%{?with_nginx:Requires: nginx fcgiwrap php-fpm}
|
%{?with_nginx:Requires: nginx}
|
||||||
|
%{?with_nginx:Requires: fcgiwrap}
|
||||||
|
%{?with_nginx:Requires: php-fpm}
|
||||||
%{!?with_nginx:Requires: httpd}
|
%{!?with_nginx:Requires: httpd}
|
||||||
%{?with_php_mysqlnd:Requires: php-mysqlnd}
|
%{!?with_nginx:Requires: php}
|
||||||
%{?with_php_mysql:Requires: php-mysql}
|
Requires: php-mysqli
|
||||||
Requires: php-common php-gd cambozola polkit net-tools psmisc
|
Requires: php-common
|
||||||
Requires: libjpeg-turbo vlc-core libcurl ffmpeg
|
Requires: php-gd
|
||||||
|
Requires: cambozola
|
||||||
|
Requires: net-tools
|
||||||
|
Requires: psmisc
|
||||||
|
Requires: polkit
|
||||||
|
Requires: libjpeg-turbo
|
||||||
|
Requires: vlc-core
|
||||||
|
Requires: ffmpeg
|
||||||
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)
|
||||||
Requires: perl(MIME::Entity) perl(MIME::Lite) perl(Net::SMTP) perl(Net::FTP)
|
Requires: perl(Archive::Tar)
|
||||||
Requires: perl(LWP::Protocol::https) perl(X10::ActiveHome) perl(Astro::SunTime)
|
Requires: perl(Archive::Zip)
|
||||||
|
Requires: perl(MIME::Entity)
|
||||||
|
Requires: perl(MIME::Lite)
|
||||||
|
Requires: perl(Net::SMTP)
|
||||||
|
Requires: perl(Net::FTP)
|
||||||
|
Requires: perl(LWP::Protocol::https)
|
||||||
|
|
||||||
%{?with_init_systemd:Requires(post): systemd systemd-sysv}
|
%{?with_init_systemd:Requires(post): systemd}
|
||||||
|
%{?with_init_systemd:Requires(post): systemd-sysv}
|
||||||
%{?with_init_systemd:Requires(preun): systemd}
|
%{?with_init_systemd:Requires(preun): systemd}
|
||||||
%{?with_init_systemd:Requires(postun): systemd}
|
%{?with_init_systemd:Requires(postun): systemd}
|
||||||
|
|
||||||
|
@ -100,12 +131,15 @@ too much degradation of performance.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -n ZoneMinder-%{version}
|
%autosetup -n ZoneMinder-%{version}
|
||||||
|
%autosetup -a 1 -n ZoneMinder-%{version}
|
||||||
|
rmdir ./web/api/app/Plugin/Crud
|
||||||
|
mv -f crud-%{crud_version} ./web/api/app/Plugin/Crud
|
||||||
|
|
||||||
# Change the following default values
|
# Change the following default values
|
||||||
./utils/zmeditconfigdata.sh ZM_PATH_ZMS /cgi-bin-zm/nph-zms
|
./utils/zmeditconfigdata.sh ZM_PATH_ZMS /cgi-bin-zm/nph-zms
|
||||||
./utils/zmeditconfigdata.sh ZM_OPT_CAMBOZOLA yes
|
./utils/zmeditconfigdata.sh ZM_OPT_CAMBOZOLA yes
|
||||||
./utils/zmeditconfigdata.sh ZM_PATH_SWAP /dev/shm
|
./utils/zmeditconfigdata.sh ZM_PATH_SWAP /dev/shm
|
||||||
./utils/zmeditconfigdata.sh ZM_UPLOAD_FTP_LOC_DIR /var/spool/zoneminder-upload
|
./utils/zmeditconfigdata.sh ZM_UPLOAD_FTP_LOC_DIR %{_localstatedir}/spool/zoneminder-upload
|
||||||
./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
|
||||||
|
@ -240,9 +274,9 @@ rm -rf %{_docdir}/%{name}-%{version}
|
||||||
%files
|
%files
|
||||||
%license COPYING
|
%license COPYING
|
||||||
%doc AUTHORS README.md distros/redhat/readme/README.%{readme_suffix} distros/redhat/readme/README.https distros/redhat/jscalendar-doc
|
%doc AUTHORS README.md distros/redhat/readme/README.%{readme_suffix} distros/redhat/readme/README.https distros/redhat/jscalendar-doc
|
||||||
%config(noreplace) %attr(640,root,%{zmgid_final}) /etc/zm/zm.conf
|
%config(noreplace) %attr(640,root,%{zmgid_final}) %{_sysconfdir}/zm/zm.conf
|
||||||
%config(noreplace) %attr(644,root,root) %{wwwconfdir}/zoneminder.conf
|
%config(noreplace) %attr(644,root,root) %{wwwconfdir}/zoneminder.conf
|
||||||
%config(noreplace) /etc/logrotate.d/zoneminder
|
%config(noreplace) %{_sysconfdir}/logrotate.d/zoneminder
|
||||||
|
|
||||||
%if 0%{?with_nginx}
|
%if 0%{?with_nginx}
|
||||||
%config(noreplace) %{_sysconfdir}/php-fpm.d/zoneminder.conf
|
%config(noreplace) %{_sysconfdir}/php-fpm.d/zoneminder.conf
|
||||||
|
@ -284,11 +318,9 @@ rm -rf %{_docdir}/%{name}-%{version}
|
||||||
%{perl_vendorlib}/WSSecurity*
|
%{perl_vendorlib}/WSSecurity*
|
||||||
%{perl_vendorlib}/WSNotification*
|
%{perl_vendorlib}/WSNotification*
|
||||||
%{_mandir}/man*/*
|
%{_mandir}/man*/*
|
||||||
%dir %{_libexecdir}/zoneminder
|
|
||||||
%{_libexecdir}/zoneminder/cgi-bin
|
%{_libexecdir}/zoneminder/
|
||||||
%dir %{_datadir}/zoneminder
|
%{_datadir}/zoneminder/
|
||||||
%{_datadir}/zoneminder/db
|
|
||||||
%{_datadir}/zoneminder/www
|
|
||||||
|
|
||||||
%{_datadir}/polkit-1/actions/com.zoneminder.systemctl.policy
|
%{_datadir}/polkit-1/actions/com.zoneminder.systemctl.policy
|
||||||
%{_datadir}/polkit-1/rules.d/com.zoneminder.systemctl.rules
|
%{_datadir}/polkit-1/rules.d/com.zoneminder.systemctl.rules
|
||||||
|
@ -299,11 +331,17 @@ rm -rf %{_docdir}/%{name}-%{version}
|
||||||
%dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_sharedstatedir}/zoneminder/sock
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_sharedstatedir}/zoneminder/sock
|
||||||
%dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_sharedstatedir}/zoneminder/swap
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_sharedstatedir}/zoneminder/swap
|
||||||
%dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_sharedstatedir}/zoneminder/temp
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_sharedstatedir}/zoneminder/temp
|
||||||
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/log/zoneminder
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_localstatedir}/log/zoneminder
|
||||||
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/spool/zoneminder-upload
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) %{_localstatedir}/spool/zoneminder-upload
|
||||||
%dir %attr(755,%{zmuid_final},%{zmgid_final}) %ghost /run/zoneminder
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) %ghost %{_localstatedir}/run/zoneminder
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Mar 30 2017 Andrew Bauer <zonexpertconsulting@outlook.com> - 1.30.2-2
|
||||||
|
- 1.30.2 release
|
||||||
|
|
||||||
|
* Wed Feb 08 2017 Andrew Bauer <zonexpertconsulting@outlook.com> - 1.30.2-1
|
||||||
|
- Bump version for 1.30.2 release candidate 1
|
||||||
|
|
||||||
* Wed Dec 28 2016 Andrew Bauer <zonexpertconsulting@outlook.com> - 1.30.1-2
|
* Wed Dec 28 2016 Andrew Bauer <zonexpertconsulting@outlook.com> - 1.30.1-2
|
||||||
- Changes from rpmfusion #4393
|
- Changes from rpmfusion #4393
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,51 @@
|
||||||
|
zoneminder (1.30.2-trusty-2016051301) trusty; urgency=medium
|
||||||
|
|
||||||
|
* fixes
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Fri, 13 May 2016 09:45:49 -0400
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016051201) trusty; urgency=medium
|
||||||
|
|
||||||
|
* web ui fixies
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Thu, 12 May 2016 20:01:21 -0400
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016051101) trusty; urgency=medium
|
||||||
|
|
||||||
|
* fix zms
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Wed, 11 May 2016 11:36:08 -0400
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016050901) trusty; urgency=medium
|
||||||
|
|
||||||
|
*
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Mon, 09 May 2016 21:08:56 -0400
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016050501) trusty; urgency=medium
|
||||||
|
|
||||||
|
* add some more debug
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Thu, 05 May 2016 10:20:23 -0400
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016050201) trusty; urgency=medium
|
||||||
|
|
||||||
|
* add Servers support to API
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Mon, 02 May 2016 10:45:24 -0400
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016042901) trusty; urgency=medium
|
||||||
|
|
||||||
|
* zone edit fixes
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Fri, 29 Apr 2016 10:46:18 -0400
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016042801) trusty; urgency=medium
|
||||||
|
|
||||||
|
* Merge video
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Thu, 28 Apr 2016 12:54:08 -0400
|
||||||
|
|
||||||
zoneminder (1.28.1+1-vivid-SNAPSHOT2015081701) vivid; urgency=medium
|
zoneminder (1.28.1+1-vivid-SNAPSHOT2015081701) vivid; urgency=medium
|
||||||
|
|
||||||
* include api, switch to cmake build
|
* include api, switch to cmake build
|
||||||
|
|
|
@ -5,7 +5,9 @@ Maintainer: Dmitry Smirnov <onlyjob@debian.org>
|
||||||
Uploaders: Vagrant Cascadian <vagrant@debian.org>
|
Uploaders: Vagrant Cascadian <vagrant@debian.org>
|
||||||
Build-Depends: debhelper (>= 9), python-sphinx | python3-sphinx, apache2-dev, dh-linktree
|
Build-Depends: debhelper (>= 9), python-sphinx | python3-sphinx, apache2-dev, dh-linktree
|
||||||
,cmake
|
,cmake
|
||||||
|
,libx264-dev, libmp4v2-dev
|
||||||
,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
|
||||||
|
,libboost1.55-dev
|
||||||
,libbz2-dev
|
,libbz2-dev
|
||||||
,libgcrypt-dev
|
,libgcrypt-dev
|
||||||
,libcurl4-gnutls-dev
|
,libcurl4-gnutls-dev
|
||||||
|
@ -34,6 +36,7 @@ Package: zoneminder
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
|
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
|
||||||
,javascript-common
|
,javascript-common
|
||||||
|
,libmp4v2-2, libx264-142
|
||||||
,libav-tools|ffmpeg
|
,libav-tools|ffmpeg
|
||||||
,libdate-manip-perl
|
,libdate-manip-perl
|
||||||
,libdbd-mysql-perl
|
,libdbd-mysql-perl
|
||||||
|
|
|
@ -58,8 +58,10 @@ override_dh_auto_install:
|
||||||
|
|
||||||
override_dh_fixperms:
|
override_dh_fixperms:
|
||||||
dh_fixperms
|
dh_fixperms
|
||||||
## 637685
|
#
|
||||||
chmod -c o-r $(CURDIR)/debian/zoneminder/etc/zm/zm.conf
|
# As requested by the Debian Webapps Policy Manual §3.2.1
|
||||||
|
chown root:www-data $(CURDIR)/debian/zoneminder/etc/zm/zm.conf
|
||||||
|
chmod 640 $(CURDIR)/debian/zoneminder/etc/zm/zm.conf
|
||||||
|
|
||||||
override_dh_installinit:
|
override_dh_installinit:
|
||||||
dh_installinit --no-start
|
dh_installinit --no-start
|
||||||
|
|
|
@ -2,9 +2,11 @@
|
||||||
missingok
|
missingok
|
||||||
notifempty
|
notifempty
|
||||||
sharedscripts
|
sharedscripts
|
||||||
|
delaycompress
|
||||||
|
compress
|
||||||
postrotate
|
postrotate
|
||||||
/usr/bin/zmpkg.pl logrot >>/dev/null 2>&1 || :
|
/usr/bin/zmpkg.pl logrot >>/dev/null 2>&1 || :
|
||||||
endscript
|
endscript
|
||||||
weekly
|
daily
|
||||||
rotate 3
|
rotate 7
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
zoneminder for Debian
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
There is one manual step to get the web interface working.
|
||||||
|
You need to link /etc/zm/apache.conf to /etc/apache2/conf.d/zoneminder.conf,
|
||||||
|
then reload the apache config (i.e. /etc/init.d/apache2 reload)
|
||||||
|
|
||||||
|
Changing the location for images and events
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
Zoneminder, in its upstream form, stores data in /usr/share/zoneminder/. This
|
||||||
|
package modifies that by changing /usr/share/zoneminder/images and
|
||||||
|
/usr/share/zoneminder/events to symlinks to directories under
|
||||||
|
/var/cache/zoneminder.
|
||||||
|
|
||||||
|
There are numerous places these could be put and ways to do it. But, at the
|
||||||
|
moment, if you change this, an upgrade will fail with a warning about these
|
||||||
|
locations having changed (the reason for this was that previously, an upgrade
|
||||||
|
would silently revert the changes and cause event loss - refer
|
||||||
|
bug #608793).
|
||||||
|
|
||||||
|
If you do want to change the location, here are a couple of suggestions.
|
||||||
|
|
||||||
|
These lines would mount /dev/sdX1 to /video_storage, and then 'link' /video_storage
|
||||||
|
to the locations that ZoneMinder expects them to be at.
|
||||||
|
|
||||||
|
/dev/sdX1 /video_storage ext4 defaults 0 2
|
||||||
|
/video_storage/zoneminder/images /var/cache/zoneminder/images none bind 0 2
|
||||||
|
/video_storage/zoneminder/events /var/cache/zoneminder/events none bind 0 2
|
||||||
|
|
||||||
|
or if you have a separate partition for each:
|
||||||
|
|
||||||
|
/dev/sdX1 /var/cache/zoneminder/images ext4 defaults 0 2
|
||||||
|
/dev/sdX2 /var/cache/zoneminder/events ext4 defaults 0 2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Peter Howard <pjh@northern-ridge.com.au>, Sun, 16 Jan 2010 01:35:51 +1100
|
||||||
|
|
||||||
|
Access to /dev/video*
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
For cameras which require access to /dev/video*, zoneminder may need the
|
||||||
|
www-data user added to the video group in order to see those cameras:
|
||||||
|
|
||||||
|
adduser www-data video
|
||||||
|
|
||||||
|
Note that all web applications running on the zoneminder server will then have
|
||||||
|
access to all video devices on the system.
|
||||||
|
|
||||||
|
-- Vagrant Cascadian <vagrant@debian.org> Sun, 27 Mar 2011 13:06:56 -0700
|
|
@ -0,0 +1,9 @@
|
||||||
|
Alias /zm /usr/share/zoneminder
|
||||||
|
|
||||||
|
<Directory /usr/share/zoneminder>
|
||||||
|
php_flag register_globals off
|
||||||
|
Options Indexes FollowSymLinks
|
||||||
|
<IfModule mod_dir.c>
|
||||||
|
DirectoryIndex index.php
|
||||||
|
</IfModule>
|
||||||
|
</Directory>
|
|
@ -0,0 +1,323 @@
|
||||||
|
zoneminder (1.30.2-trusty-2016033001) trusty; urgency=medium
|
||||||
|
|
||||||
|
* merge master
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Wed, 30 Mar 2016 14:09:48 -0400
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016032901) trusty; urgency=medium
|
||||||
|
|
||||||
|
* filter fixes, merge options rework by Kyle
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Tue, 29 Mar 2016 12:27:57 -0400
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016030702) trusty; urgency=medium
|
||||||
|
|
||||||
|
*
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Mon, 07 Mar 2016 22:14:03 -0500
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016030701) trusty; urgency=medium
|
||||||
|
|
||||||
|
* merge master. with telemetry
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Mon, 07 Mar 2016 21:47:53 -0500
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016022101) trusty; urgency=medium
|
||||||
|
|
||||||
|
* merge zmtrigger fix
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Mon, 22 Feb 2016 09:15:53 -0500
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016021901) trusty; urgency=medium
|
||||||
|
|
||||||
|
* zmtrigger improvements
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Fri, 19 Feb 2016 11:09:57 -0500
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016021701) trusty; urgency=medium
|
||||||
|
|
||||||
|
* printout id, and ip address when failing to connect
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Wed, 17 Feb 2016 09:40:49 -0500
|
||||||
|
|
||||||
|
zoneminder (1.30.2-trusty-2016021001) trusty; urgency=medium
|
||||||
|
|
||||||
|
*
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Wed, 10 Feb 2016 13:06:09 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.111-trusty-2016020101) trusty; urgency=medium
|
||||||
|
|
||||||
|
* Fix video download and use of Storage Areas
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Mon, 01 Feb 2016 13:42:06 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.111-trusty-2016011401) trusty; urgency=medium
|
||||||
|
|
||||||
|
* fix timeline view for storageareas
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Thu, 14 Jan 2016 14:03:41 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.111-trusty-2016010801) trusty; urgency=medium
|
||||||
|
|
||||||
|
* Add better debug and skip when event links are not just digits. Merge multi-server stuff from master.
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Fri, 08 Jan 2016 10:37:16 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.111-trusty-2016010401) trusty; urgency=medium
|
||||||
|
|
||||||
|
* include fix to rotate image dimensions when applying a rotation
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Mon, 04 Jan 2016 13:24:42 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.111-trusty-2016010101) trusty; urgency=medium
|
||||||
|
|
||||||
|
* fix logging with multi-server
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Fri, 01 Jan 2016 17:11:09 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.111-trusty-2015123101) trusty; urgency=medium
|
||||||
|
|
||||||
|
* Add log filtering from multi-server
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Thu, 31 Dec 2015 10:18:03 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.109-trusty-2015122401) trusty; urgency=medium
|
||||||
|
|
||||||
|
* fix delete events not in database in zmaudit.pl
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Thu, 24 Dec 2015 12:38:05 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.109-trusty-2015122301) trusty; urgency=medium
|
||||||
|
|
||||||
|
* todays release
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Wed, 23 Dec 2015 09:33:46 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.109-trusty-2015122202) trusty; urgency=medium
|
||||||
|
|
||||||
|
* more object work and zmaudit
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Tue, 22 Dec 2015 13:13:56 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.109-trusty-2015122201) trusty; urgency=medium
|
||||||
|
|
||||||
|
* merge multi-server, and master stuff, start work on zmaudit storage areas support
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Tue, 22 Dec 2015 11:11:44 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.109-trusty-2015122103) trusty; urgency=medium
|
||||||
|
|
||||||
|
* Fixes
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Mon, 21 Dec 2015 15:20:15 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.109-trusty-2015122102) trusty; urgency=medium
|
||||||
|
|
||||||
|
* fix deleting events
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Mon, 21 Dec 2015 14:49:12 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.109-trusty-2015122101) trusty; urgency=medium
|
||||||
|
|
||||||
|
* Make zmfilter work.
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Mon, 21 Dec 2015 12:32:27 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.109-trusty-2015121803) trusty; urgency=medium
|
||||||
|
|
||||||
|
* merge zmvideo improvements
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Fri, 18 Dec 2015 14:17:56 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.109-trusty-2015121802) trusty; urgency=medium
|
||||||
|
|
||||||
|
* Add some missing files to the autoconf build
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Fri, 18 Dec 2015 12:14:08 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.109-trusty-2015121801) trusty; urgency=medium
|
||||||
|
|
||||||
|
*
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Fri, 18 Dec 2015 11:05:58 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.109-trusty-2015121701) trusty; urgency=medium
|
||||||
|
|
||||||
|
* Merge master + better zmvideo
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Thu, 17 Dec 2015 15:11:18 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-2015112301) trusty; urgency=medium
|
||||||
|
|
||||||
|
* apply fix for zms crash
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Mon, 23 Nov 2015 10:47:49 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-2015110601) trusty; urgency=medium
|
||||||
|
|
||||||
|
* add a FIONREAD test on timeout
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Wed, 22 Jul 2015 09:55:37 -0400
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-2015072201) trusty; urgency=medium
|
||||||
|
|
||||||
|
* add AnalysisFPS
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Wed, 22 Jul 2015 09:55:37 -0400
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-2015071601) trusty; urgency=medium
|
||||||
|
|
||||||
|
* Merge master and zmtrigger
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Thu, 16 Jul 2015 13:15:58 -0400
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-38) trusty; urgency=medium
|
||||||
|
|
||||||
|
* Merge master
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Tue, 14 Jul 2015 10:15:00 -0400
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-37) trusty; urgency=medium
|
||||||
|
|
||||||
|
* merge master api stuff, set sleep after failure to capture to 5000 instead of 5000000
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Fri, 19 Jun 2015 09:59:54 -0400
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-36) trusty; urgency=medium
|
||||||
|
|
||||||
|
* Detect select interuption when no action on our fd
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Thu, 28 May 2015 09:35:59 -0400
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-35) trusty; urgency=medium
|
||||||
|
|
||||||
|
* better logging
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Fri, 22 May 2015 15:30:42 -0400
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-34) trusty; urgency=medium
|
||||||
|
|
||||||
|
* Faster shutdown and changes to ReadData
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Thu, 21 May 2015 15:54:47 -0400
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-33) trusty; urgency=medium
|
||||||
|
|
||||||
|
* update zmaudit some more
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Thu, 14 May 2015 13:44:35 -0400
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-32) trusty; urgency=medium
|
||||||
|
|
||||||
|
* merge zmaudit_updates1
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Wed, 13 May 2015 15:51:56 -0400
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-31) trusty; urgency=medium
|
||||||
|
|
||||||
|
* Merge some fixes and zmaudit improvements
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Wed, 13 May 2015 15:16:19 -0400
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-27) trusty; urgency=medium
|
||||||
|
|
||||||
|
* fflush logs, merge master.
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Mon, 30 Mar 2015 19:28:05 -0400
|
||||||
|
|
||||||
|
zoneminder (1.29.0-vivid-26) vivid; urgency=medium
|
||||||
|
|
||||||
|
* logging improvements, merge RedData changes
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Wed, 04 Mar 2015 16:39:19 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.0-vivid-25) vivid; urgency=medium
|
||||||
|
|
||||||
|
* some change to ReadData
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Mon, 02 Mar 2015 12:57:16 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.0-utopic-24) utopic; urgency=medium
|
||||||
|
|
||||||
|
* merge local_raw
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Mon, 23 Feb 2015 17:49:36 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-23) trusty; urgency=medium
|
||||||
|
|
||||||
|
* more onvif merges, fix to zmfilter
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@testing.internal.point-one.com> Sat, 21 Feb 2015 16:17:01 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.0-trusty-22) trusty; urgency=medium
|
||||||
|
|
||||||
|
* updates from master: merge onvif, default to classic if skin not defined.
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Thu, 19 Feb 2015 18:14:58 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.0-utopic-21) utopic; urgency=medium
|
||||||
|
|
||||||
|
* updates from master, improve monitor probing and support TRENDnet cameras
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Tue, 17 Feb 2015 14:18:52 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.0-wheezy-20) wheezy; urgency=medium
|
||||||
|
|
||||||
|
* zmaudit.pl improvements - double check db before deleting fs event
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Wed, 04 Feb 2015 11:09:22 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.0-utopic-18) utopic; urgency=medium
|
||||||
|
|
||||||
|
* RTSP Timeout fixes
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Wed, 28 Jan 2015 13:49:16 -0500
|
||||||
|
|
||||||
|
zoneminder (1.29.0-utopic-17) utopic; urgency=medium
|
||||||
|
|
||||||
|
* Merge master, use new split-up debian build
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Mon, 26 Jan 2015 11:21:07 -0500
|
||||||
|
|
||||||
|
zoneminder (1.28.0+nmu1) testing; urgency=medium
|
||||||
|
|
||||||
|
* Non-maintainer upload
|
||||||
|
* Split the debian package into several packages
|
||||||
|
* Switch to native source format
|
||||||
|
|
||||||
|
-- Emmanuel Papin <manupap01@gmail.com> Thu, 15 Jan 2015 20:00:08 +0100
|
||||||
|
|
||||||
|
zoneminder (1.28.0-0.2) testing; urgency=medium
|
||||||
|
|
||||||
|
* Non-maintainer upload.
|
||||||
|
* Upstream release for debian jessie
|
||||||
|
* Package dependencies updated
|
||||||
|
* debhelper version upgraded
|
||||||
|
* Standards-Version upgraded
|
||||||
|
* Use debhelper commands instead of standard commands
|
||||||
|
* Install man pages in /usr/share/man (patch added)
|
||||||
|
* Switch to quilt
|
||||||
|
* Switch to systemd
|
||||||
|
* Some lintian fixes
|
||||||
|
|
||||||
|
-- Emmanuel Papin <manupap01@gmail.com> Wed, 26 Nov 2014 00:26:01 +0100
|
||||||
|
|
||||||
|
zoneminder (1.28.0-0.1) stable; urgency=medium
|
||||||
|
|
||||||
|
* Release
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Fri, 17 Oct 2014 09:27:22 -0400
|
||||||
|
|
||||||
|
zoneminder (1.27.99+1-testing-SNAPSHOT2014072901) testing; urgency=medium
|
||||||
|
|
||||||
|
* improve error messages
|
||||||
|
* Make zmupdate re-run the most recent patch so that people running the daily builds get their db updates
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Tue, 29 Jul 2014 14:50:20 -0400
|
||||||
|
|
||||||
|
zoneminder (1.27.0+1-testing-v4ltomonitor-1) testing; urgency=high
|
||||||
|
|
||||||
|
* Snapshot release -
|
||||||
|
|
||||||
|
-- Isaac Connor <iconnor@connortechnology.com> Wed, 09 Jul 2014 21:35:29 -0400
|
|
@ -0,0 +1 @@
|
||||||
|
9
|
|
@ -0,0 +1,122 @@
|
||||||
|
Source: zoneminder
|
||||||
|
Section: net
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Isaac Connor <iconnor@connortechnology.com>
|
||||||
|
Build-Depends: debhelper (>= 9), po-debconf (>= 1.0), autoconf, automake, 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, 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, libdbi-perl, libnet-sftp-foreign-perl, libexpect-perl, libmime-tools-perl, libx264-dev, libmp4v2-dev, libpcre3-dev
|
||||||
|
Standards-Version: 3.9.6
|
||||||
|
|
||||||
|
Package: zoneminder
|
||||||
|
Section: metapackages
|
||||||
|
Architecture: all
|
||||||
|
Depends: ${misc:Depends},
|
||||||
|
libzoneminder-perl (>= ${source:Version}),
|
||||||
|
zoneminder-database (>= ${source:Version}),
|
||||||
|
zoneminder-core (>= ${binary:Version}),
|
||||||
|
zoneminder-ui-base (>= ${source:Version}),
|
||||||
|
zoneminder-ui-classic (>= ${source:Version}),
|
||||||
|
zoneminder-ui-mobile (>= ${source:Version}),
|
||||||
|
zoneminder-ui-xml (>= ${source:Version})
|
||||||
|
Description: Video camera security and surveillance solution (metapackage)
|
||||||
|
ZoneMinder is intended for use in single or multi-camera video security
|
||||||
|
applications, including commercial or home CCTV, theft prevention and child
|
||||||
|
or family member or home monitoring and other care scenarios. It
|
||||||
|
supports capture, analysis, recording, and monitoring of video data coming
|
||||||
|
from one or more video or network cameras attached to a Linux system.
|
||||||
|
ZoneMinder also support web and semi-automatic control of Pan/Tilt/Zoom
|
||||||
|
cameras using a variety of protocols. It is suitable for use as a home
|
||||||
|
video security system and for commercial or professional video security
|
||||||
|
and surveillance. It can also be integrated into a home automation system
|
||||||
|
via X.10 or other protocols.
|
||||||
|
|
||||||
|
Package: libzoneminder-perl
|
||||||
|
Section: perl
|
||||||
|
Architecture: all
|
||||||
|
Depends: ${misc:Depends}, ${perl:Depends}, libdbi-perl,
|
||||||
|
libdevice-serialport-perl, libimage-info-perl, libjson-any-perl,
|
||||||
|
libsys-mmap-perl, liburi-encode-perl, libwww-perl
|
||||||
|
Description: Perl libraries for ZoneMinder
|
||||||
|
ZoneMinder is a video camera security and surveillance solution.
|
||||||
|
.
|
||||||
|
This package provides the libraries for the perl scripts, it can be used to
|
||||||
|
write custom interfaces as well.
|
||||||
|
|
||||||
|
Package: zoneminder-database
|
||||||
|
Section: database
|
||||||
|
Architecture: all
|
||||||
|
Depends: ${misc:Depends}, debconf, dbconfig-common,
|
||||||
|
mysql-client | mariadb-client
|
||||||
|
Recommends: mysql-server | mariadb-server
|
||||||
|
Description: Database management package for ZoneMinder
|
||||||
|
ZoneMinder is a video camera security and surveillance solution.
|
||||||
|
.
|
||||||
|
This package provides the sql files and maintenance scripts to perform all the
|
||||||
|
database operations (installation, upgrade or removal) on a local or a remote
|
||||||
|
server.
|
||||||
|
|
||||||
|
Package: zoneminder-core
|
||||||
|
Section: video
|
||||||
|
Architecture: any
|
||||||
|
Depends: libzoneminder-perl (= ${source:Version}),
|
||||||
|
zoneminder-database (= ${source:Version}), ${shlibs:Depends}, ${misc:Depends},
|
||||||
|
${perl:Depends}, libarchive-tar-perl, libarchive-zip-perl, libdate-manip-perl,
|
||||||
|
libdbi-perl, libmodule-load-conditional-perl, libmime-lite-perl,
|
||||||
|
libmime-tools-perl, libnet-sftp-foreign-perl, libphp-serialization-perl,
|
||||||
|
debconf, ffmpeg | libav-tools, rsyslog | system-log-daemon, zip,
|
||||||
|
policykit-1, apache2, libmp4v2-2, libpcre++0
|
||||||
|
Description: Core binaries and perl scripts for ZoneMinder
|
||||||
|
ZoneMinder is a video camera security and surveillance solution.
|
||||||
|
.
|
||||||
|
This package provides the executable compiled binaries which do the main video
|
||||||
|
processing work and the perl scripts which perform helper and/or external
|
||||||
|
interface tasks.
|
||||||
|
|
||||||
|
Package: zoneminder-core-dbg
|
||||||
|
Priority: extra
|
||||||
|
Section: debug
|
||||||
|
Architecture: any
|
||||||
|
Depends: zoneminder-core (= ${binary:Version}), ${misc:Depends}
|
||||||
|
Description: Debugging symbols for ZoneMinder
|
||||||
|
ZoneMinder is a video camera security and surveillance solution.
|
||||||
|
.
|
||||||
|
This package provides the debugging symbols for the executable compiled
|
||||||
|
binaries.
|
||||||
|
|
||||||
|
Package: zoneminder-ui-base
|
||||||
|
Section: web
|
||||||
|
Architecture: any
|
||||||
|
Depends: zoneminder-core (= ${binary:Version}), ${shlibs:Depends},
|
||||||
|
${misc:Depends}, debconf, apache2, libapache2-mod-php5 | libapache2-mod-fcgid,
|
||||||
|
php5, php5-mysql | php5-mysqlnd, php5-gd
|
||||||
|
Description: Essential files for ZoneMinder's web user interface
|
||||||
|
ZoneMinder is a video camera security and surveillance solution.
|
||||||
|
.
|
||||||
|
This package provides the essential web files and maintenance scripts to set up
|
||||||
|
a basic web environment.
|
||||||
|
|
||||||
|
Package: zoneminder-ui-classic
|
||||||
|
Section: web
|
||||||
|
Architecture: all
|
||||||
|
Depends: zoneminder-ui-base (>= ${source:Version}), ${misc:Depends}
|
||||||
|
Description: Classic web user interface for ZoneMinder
|
||||||
|
ZoneMinder is a video camera security and surveillance solution.
|
||||||
|
.
|
||||||
|
This package provides the classic web user interface.
|
||||||
|
|
||||||
|
Package: zoneminder-ui-mobile
|
||||||
|
Section: web
|
||||||
|
Architecture: all
|
||||||
|
Depends: zoneminder-ui-base (>= ${source:Version}), ${misc:Depends}
|
||||||
|
Description: Mobile web user interface for ZoneMinder
|
||||||
|
ZoneMinder is a video camera security and surveillance solution.
|
||||||
|
.
|
||||||
|
This package provides the web user interface for mobile devices.
|
||||||
|
|
||||||
|
Package: zoneminder-ui-xml
|
||||||
|
Section: web
|
||||||
|
Architecture: all
|
||||||
|
Depends: zoneminder-ui-base (>= ${source:Version}), ${misc:Depends}
|
||||||
|
Description: XML interface for ZoneMinder
|
||||||
|
ZoneMinder is a video camera security and surveillance solution.
|
||||||
|
.
|
||||||
|
This package provides a XML interface mainly intended for use with the eyeZm
|
||||||
|
iPhone Application, but can be used with any other custom programs as well.
|
|
@ -0,0 +1,22 @@
|
||||||
|
Copyright:
|
||||||
|
|
||||||
|
Copyright 2002 Philip Coombes <philip.coombes@zoneminder.com>
|
||||||
|
|
||||||
|
License:
|
||||||
|
|
||||||
|
This package 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 package 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 package; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
On Debian GNU/Linux systems, the text of the GPL can be found in
|
||||||
|
/usr/share/common-licenses/GPL.
|
|
@ -0,0 +1 @@
|
||||||
|
README.md
|
|
@ -0,0 +1,4 @@
|
||||||
|
usr/share/perl5/ZoneMinder
|
||||||
|
usr/share/perl5/ZoneMinder.pm
|
||||||
|
debian/tmp/usr/share/man/man3/ZoneMinder.3pm
|
||||||
|
debian/tmp/usr/share/man/man3/ZoneMinder::*
|
|
@ -0,0 +1,3 @@
|
||||||
|
[type: gettext/rfc822deb] zoneminder-core.templates
|
||||||
|
[type: gettext/rfc822deb] zoneminder-database.templates
|
||||||
|
[type: gettext/rfc822deb] zoneminder-ui-base.templates
|
|
@ -0,0 +1,252 @@
|
||||||
|
# debconf french translation file for ZoneMinder.
|
||||||
|
# Copyright (C) 2001-2008 Philip Coombes
|
||||||
|
# This file is distributed under the same license as the zoneminder package.
|
||||||
|
# First author: Emmanuel Papin <manupap01@gmail.com>, 2014.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: zoneminder\n"
|
||||||
|
"Report-Msgid-Bugs-To: zoneminder@packages.debian.org\n"
|
||||||
|
"POT-Creation-Date: 2014-12-16 12:34+0100\n"
|
||||||
|
"PO-Revision-Date: 2014-12-07 00:40+0100\n"
|
||||||
|
"Last-Translator: Emmanuel Papin <manupap01@gmail.com>\n"
|
||||||
|
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
|
||||||
|
"Language: fr\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#. Type: boolean
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-core.templates:1001
|
||||||
|
msgid "Delete this non empty directory?"
|
||||||
|
msgstr "Supprimer ce répertoire non vide ?"
|
||||||
|
|
||||||
|
#. Type: boolean
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-core.templates:1001
|
||||||
|
msgid ""
|
||||||
|
"A purge of the ZoneMinder package is performed but the directory '/var/cache/"
|
||||||
|
"zoneminder' is not empty so it will not be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Une purge du paquet ZoneMinder est en cours mais le répertoire '/var/cache/"
|
||||||
|
"zoneminder' n'est pas vide et sera donc conservé."
|
||||||
|
|
||||||
|
#. Type: boolean
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-core.templates:1001
|
||||||
|
msgid ""
|
||||||
|
"Please consider that this directory is designed to contain data resulting "
|
||||||
|
"from event detection. Therefore, \"proof of evidence\" could be lost!\""
|
||||||
|
msgstr ""
|
||||||
|
"Veuillez considérer que ce répertoire est conçu pour contenir des données "
|
||||||
|
"résultants de la détection d'événements. Par conséquent, des preuves "
|
||||||
|
"pourraient être perdues !"
|
||||||
|
|
||||||
|
#. Type: boolean
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-core.templates:1001
|
||||||
|
msgid ""
|
||||||
|
"If you are not sure of your decision, please do not delete this directory "
|
||||||
|
"but perform a manual checkup."
|
||||||
|
msgstr ""
|
||||||
|
"Si vous n'êtes pas sûr de votre décision, veuillez conserver ce répertoire "
|
||||||
|
"et effectuer une vérification manuelle."
|
||||||
|
|
||||||
|
#. Type: boolean
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-core.templates:2001
|
||||||
|
msgid "Deletion confirmed?"
|
||||||
|
msgstr "Supression confirmée ?"
|
||||||
|
|
||||||
|
#. Type: boolean
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-core.templates:2001
|
||||||
|
msgid ""
|
||||||
|
"You have allowed the deletion of directory '/var/cache/zoneminder' although "
|
||||||
|
"it may contain critical data."
|
||||||
|
msgstr ""
|
||||||
|
"Vous avez autorisé la suppression du répertoire '/var/cache/zoneminder' bien "
|
||||||
|
"qu'il puisse contenir des données critiques."
|
||||||
|
|
||||||
|
#. Type: select
|
||||||
|
#. Choices
|
||||||
|
#: ../zoneminder-database.templates:1001
|
||||||
|
msgid "local"
|
||||||
|
msgstr "local"
|
||||||
|
|
||||||
|
#. Type: select
|
||||||
|
#. Choices
|
||||||
|
#: ../zoneminder-database.templates:1001
|
||||||
|
msgid "remote"
|
||||||
|
msgstr "distant"
|
||||||
|
|
||||||
|
#. Type: select
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:1002
|
||||||
|
msgid "Database location:"
|
||||||
|
msgstr "Emplacement de la base de donnée :"
|
||||||
|
|
||||||
|
#. Type: select
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:1002
|
||||||
|
msgid ""
|
||||||
|
"A database server is required to run ZoneMinder. The database can be "
|
||||||
|
"installed either locally or remotely on a machine of your network."
|
||||||
|
msgstr ""
|
||||||
|
"Un serveur de base de données est requis pour ZoneMinder. La base de donnée "
|
||||||
|
"peut être installée localement ou à distance sur une machine de votre réseau."
|
||||||
|
|
||||||
|
#. Type: select
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:1002
|
||||||
|
msgid ""
|
||||||
|
"If you choose a remote location, you will have to select the 'tcp/ip' "
|
||||||
|
"connection method and enter the hostname or ip address of the remote machine "
|
||||||
|
"in the next configuration screens."
|
||||||
|
msgstr ""
|
||||||
|
"Si vous choisissez un emplacement distant, vous devrez sélectionner la "
|
||||||
|
"méthode de connexion 'tcp/ip' et entrer le nom réseau ou l'adresse ip de la "
|
||||||
|
"machine distante dans les écrans de configuration suivants."
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:2001
|
||||||
|
msgid "No local database server is available:"
|
||||||
|
msgstr "Aucun serveur local de base de données n'est disponible :"
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:2001
|
||||||
|
msgid ""
|
||||||
|
"Currently ZoneMinder supports mysql or mariadb database server but none of "
|
||||||
|
"them appears to be installed on this machine."
|
||||||
|
msgstr ""
|
||||||
|
"Actuellement ZoneMinder supporte les serveurs de base de données mysql et "
|
||||||
|
"mariadb mais aucun d'entre eux n'est installé sur cette machine."
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:2001
|
||||||
|
msgid ""
|
||||||
|
"In order to complete ZoneMinder's installation, after ending of this "
|
||||||
|
"assistant, please install a compatible database server and then restart the "
|
||||||
|
"assistant by invoking:"
|
||||||
|
msgstr ""
|
||||||
|
"Afin de compléter l'installation de ZoneMinder, après la fermeture de cet "
|
||||||
|
"assitant, veuillez installer un serveur de base de données compatible et "
|
||||||
|
"ensuite redémarrez l'assistant en invoquant :"
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:2001 ../zoneminder-database.templates:3001
|
||||||
|
msgid "$ sudo dpkg-reconfigure zoneminder"
|
||||||
|
msgstr "$ sudo dpkg-reconfigure zoneminder"
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:3001
|
||||||
|
msgid "Remote database servers are not allowed:"
|
||||||
|
msgstr "Les serveurs de base de données distants ne sont pas autorisés :"
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:3001
|
||||||
|
msgid ""
|
||||||
|
"The current configuration of dbconfig-common does not allow installation of "
|
||||||
|
"a database on remote servers."
|
||||||
|
msgstr ""
|
||||||
|
"La configuration actuelle de dbconfig-common ne permet pas l'installation de "
|
||||||
|
"bases de données sur des serveurs distants."
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:3001
|
||||||
|
msgid ""
|
||||||
|
"In order to reconfigure dbconfig-common, please invoke the following command "
|
||||||
|
"after ending of this assistant:"
|
||||||
|
msgstr ""
|
||||||
|
"Afin de reconfigurer dbconfig-common, veuillez invoquer la commande suivante "
|
||||||
|
"après la fermeture de cet assitant :"
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:3001
|
||||||
|
msgid "$ sudo dpkg-reconfigure dbconfig-common"
|
||||||
|
msgstr "$ sudo dpkg-reconfigure dbconfig-common"
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:3001
|
||||||
|
msgid ""
|
||||||
|
"Then, to complete ZoneMinder's installation, please restart this assistant "
|
||||||
|
"by invoking:"
|
||||||
|
msgstr ""
|
||||||
|
"Ensuite, pour compléter l'installation de ZoneMinder, veuillez redémarrer "
|
||||||
|
"cet assistant en invoquant :"
|
||||||
|
|
||||||
|
#. Type: password
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:4001
|
||||||
|
msgid "New password for the ZoneMinder 'admin' user:"
|
||||||
|
msgstr "Nouveau mot de passe pour le compte 'admin' de ZoneMinder :"
|
||||||
|
|
||||||
|
#. Type: password
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:4001
|
||||||
|
msgid "Please enter the password of the default administrative user."
|
||||||
|
msgstr "Veuillez entrer le mot de passe du compte administrateur par défaut."
|
||||||
|
|
||||||
|
#. Type: password
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:4001
|
||||||
|
msgid ""
|
||||||
|
"While not mandatory, it is highly recommended that you set a custom password "
|
||||||
|
"for the administrative 'admin' user."
|
||||||
|
msgstr ""
|
||||||
|
"Bien que cela ne soit pas obligatoire, il est fortement recommandé de "
|
||||||
|
"fournir un mot de passe personnalisé pour le compte administrateur 'admin'."
|
||||||
|
|
||||||
|
#. Type: password
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:4001
|
||||||
|
msgid "If this field is left blank, the password will not be changed."
|
||||||
|
msgstr "Si le champ est laissé vide, le mot de passe ne sera pas changé."
|
||||||
|
|
||||||
|
#. Type: password
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:5001
|
||||||
|
msgid "Repeat password for the ZoneMinder 'admin' user:"
|
||||||
|
msgstr "Répéter le mot de passe pour le compte 'admin' de ZoneMinder :"
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:6001
|
||||||
|
msgid "Password input error"
|
||||||
|
msgstr "Erreur de mot de passe"
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:6001
|
||||||
|
msgid "The two passwords you entered were not the same. Please try again."
|
||||||
|
msgstr ""
|
||||||
|
"Les deux mots de passe saisis ne sont pas les mêmes. Veuillez essayer à "
|
||||||
|
"nouveau."
|
||||||
|
|
||||||
|
#. Type: multiselect
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-ui-base.templates:1001
|
||||||
|
msgid "Web server to reconfigure automatically:"
|
||||||
|
msgstr "Serveur web à reconfigurer automatiquement :"
|
||||||
|
|
||||||
|
#. Type: multiselect
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-ui-base.templates:1001
|
||||||
|
msgid ""
|
||||||
|
"Please choose the web server that should be automatically configured for "
|
||||||
|
"ZoneMinder's web portal access."
|
||||||
|
msgstr ""
|
||||||
|
"Veuillez choisir le serveur web à reconfigurer automatiquement pour l'accès "
|
||||||
|
"au portail web de ZoneMinder."
|
|
@ -0,0 +1,222 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: zoneminder\n"
|
||||||
|
"Report-Msgid-Bugs-To: zoneminder@packages.debian.org\n"
|
||||||
|
"POT-Creation-Date: 2014-12-16 12:34+0100\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#. Type: boolean
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-core.templates:1001
|
||||||
|
msgid "Delete this non empty directory?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: boolean
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-core.templates:1001
|
||||||
|
msgid ""
|
||||||
|
"A purge of the ZoneMinder package is performed but the directory '/var/cache/"
|
||||||
|
"zoneminder' is not empty so it will not be deleted."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: boolean
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-core.templates:1001
|
||||||
|
msgid ""
|
||||||
|
"Please consider that this directory is designed to contain data resulting "
|
||||||
|
"from event detection. Therefore, \"proof of evidence\" could be lost!\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: boolean
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-core.templates:1001
|
||||||
|
msgid ""
|
||||||
|
"If you are not sure of your decision, please do not delete this directory "
|
||||||
|
"but perform a manual checkup."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: boolean
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-core.templates:2001
|
||||||
|
msgid "Deletion confirmed?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: boolean
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-core.templates:2001
|
||||||
|
msgid ""
|
||||||
|
"You have allowed the deletion of directory '/var/cache/zoneminder' although "
|
||||||
|
"it may contain critical data."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: select
|
||||||
|
#. Choices
|
||||||
|
#: ../zoneminder-database.templates:1001
|
||||||
|
msgid "local"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: select
|
||||||
|
#. Choices
|
||||||
|
#: ../zoneminder-database.templates:1001
|
||||||
|
msgid "remote"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: select
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:1002
|
||||||
|
msgid "Database location:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: select
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:1002
|
||||||
|
msgid ""
|
||||||
|
"A database server is required to run ZoneMinder. The database can be "
|
||||||
|
"installed either locally or remotely on a machine of your network."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: select
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:1002
|
||||||
|
msgid ""
|
||||||
|
"If you choose a remote location, you will have to select the 'tcp/ip' "
|
||||||
|
"connection method and enter the hostname or ip address of the remote machine "
|
||||||
|
"in the next configuration screens."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:2001
|
||||||
|
msgid "No local database server is available:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:2001
|
||||||
|
msgid ""
|
||||||
|
"Currently ZoneMinder supports mysql or mariadb database server but none of "
|
||||||
|
"them appears to be installed on this machine."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:2001
|
||||||
|
msgid ""
|
||||||
|
"In order to complete ZoneMinder's installation, after ending of this "
|
||||||
|
"assistant, please install a compatible database server and then restart the "
|
||||||
|
"assistant by invoking:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:2001 ../zoneminder-database.templates:3001
|
||||||
|
msgid "$ sudo dpkg-reconfigure zoneminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:3001
|
||||||
|
msgid "Remote database servers are not allowed:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:3001
|
||||||
|
msgid ""
|
||||||
|
"The current configuration of dbconfig-common does not allow installation of "
|
||||||
|
"a database on remote servers."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:3001
|
||||||
|
msgid ""
|
||||||
|
"In order to reconfigure dbconfig-common, please invoke the following command "
|
||||||
|
"after ending of this assistant:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:3001
|
||||||
|
msgid "$ sudo dpkg-reconfigure dbconfig-common"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:3001
|
||||||
|
msgid ""
|
||||||
|
"Then, to complete ZoneMinder's installation, please restart this assistant "
|
||||||
|
"by invoking:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: password
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:4001
|
||||||
|
msgid "New password for the ZoneMinder 'admin' user:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: password
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:4001
|
||||||
|
msgid "Please enter the password of the default administrative user."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: password
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:4001
|
||||||
|
msgid ""
|
||||||
|
"While not mandatory, it is highly recommended that you set a custom password "
|
||||||
|
"for the administrative 'admin' user."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: password
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:4001
|
||||||
|
msgid "If this field is left blank, the password will not be changed."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: password
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:5001
|
||||||
|
msgid "Repeat password for the ZoneMinder 'admin' user:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:6001
|
||||||
|
msgid "Password input error"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: error
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-database.templates:6001
|
||||||
|
msgid "The two passwords you entered were not the same. Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: multiselect
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-ui-base.templates:1001
|
||||||
|
msgid "Web server to reconfigure automatically:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: multiselect
|
||||||
|
#. Description
|
||||||
|
#: ../zoneminder-ui-base.templates:1001
|
||||||
|
msgid ""
|
||||||
|
"Please choose the web server that should be automatically configured for "
|
||||||
|
"ZoneMinder's web portal access."
|
||||||
|
msgstr ""
|
|
@ -0,0 +1,154 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
# -*- makefile -*-
|
||||||
|
# Sample debian/rules that uses debhelper.
|
||||||
|
# This file was originally written by Joey Hess and Craig Small.
|
||||||
|
# As a special exception, when this file is copied by dh-make into a
|
||||||
|
# dh-make output file, you may use that output file without restriction.
|
||||||
|
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
||||||
|
|
||||||
|
# Uncomment this to turn on verbose mode.
|
||||||
|
#export DH_VERBOSE=1
|
||||||
|
|
||||||
|
# These are used for cross-compiling and for saving the configure script
|
||||||
|
# from having to guess our platform (since we know it already)
|
||||||
|
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
||||||
|
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||||
|
|
||||||
|
CFLAGS = -Wall
|
||||||
|
CPPFLAGS = -D__STDC_CONSTANT_MACROS
|
||||||
|
CXXFLAGS = -DHAVE_LIBCRYPTO
|
||||||
|
|
||||||
|
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
|
||||||
|
DEBOPT = --enable-debug
|
||||||
|
CFLAGS += -g
|
||||||
|
CXXFLAGS += -g
|
||||||
|
else
|
||||||
|
DEBOPT =
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
|
||||||
|
CFLAGS += -O0
|
||||||
|
else
|
||||||
|
CFLAGS += -O2
|
||||||
|
endif
|
||||||
|
|
||||||
|
# These are used to get the most recent version of the original sources from github
|
||||||
|
UURL = $(shell git config --get remote.origin.url)
|
||||||
|
BRANCH = $(shell git rev-parse --abbrev-ref HEAD)
|
||||||
|
HEAD = $(shell git rev-parse HEAD)
|
||||||
|
PKD = $(abspath $(dir $(MAKEFILE_LIST)))
|
||||||
|
PKG = $(word 2,$(shell dpkg-parsechangelog -l$(PKD)/changelog | grep ^Source))
|
||||||
|
VER ?= $(shell dpkg-parsechangelog -l$(PKD)/changelog | perl -ne 'print $$1 if m{^Version:\s+(?:\d+:)?(\d.*)(?:\-|\+nmu\d+.*)};')
|
||||||
|
DTYPE =
|
||||||
|
TARBALL = ../$(PKG)_$(VER)$(DTYPE).orig.tar.xz
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@ --with autoreconf
|
||||||
|
|
||||||
|
override_dh_auto_configure:
|
||||||
|
CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" dh_auto_configure -- \
|
||||||
|
--host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
|
||||||
|
--sysconfdir=/etc/zm --prefix=/usr --mandir=\$${prefix}/share/man \
|
||||||
|
--infodir=\$${prefix}/share/info --with-mysql=/usr \
|
||||||
|
--with-mariadb=/usr --with-webdir=/usr/share/zoneminder \
|
||||||
|
--with-ffmpeg=/usr --with-cgidir=/usr/lib/cgi-bin \
|
||||||
|
--with-webuser=www-data --with-webgroup=www-data \
|
||||||
|
--enable-mmap=yes $(DEBOPT)
|
||||||
|
|
||||||
|
override_dh_clean:
|
||||||
|
# Add here commands to clean up after the build process.
|
||||||
|
[ ! -f Makefile ] || $(MAKE) distclean
|
||||||
|
dh_clean src/zm_config_defines.h
|
||||||
|
#
|
||||||
|
# Delete remaining auto-generated Makefile if Makefile.in exists
|
||||||
|
find $(CURDIR)/ -type f -name "Makefile" | while read file; do \
|
||||||
|
[ -f $$file.in ] && rm -f $$file; \
|
||||||
|
done || true
|
||||||
|
#
|
||||||
|
# Delete remaining auto-generated Makefile.in if Makefile.am exists
|
||||||
|
find $(CURDIR)/ -type f -name "Makefile.in" | while read filein; do \
|
||||||
|
fileam=`echo $$filein | sed 's/\(.*\)\.in/\1\.am/'`; \
|
||||||
|
[ -f $$fileam ] && rm -f $$filein; \
|
||||||
|
done || true
|
||||||
|
|
||||||
|
override_dh_install:
|
||||||
|
dh_install --fail-missing
|
||||||
|
#
|
||||||
|
# NOTE: This is a short-term kludge; hopefully changes in the next
|
||||||
|
# upstream version will render this unnecessary.
|
||||||
|
rm -rf debian/zoneminder/usr/share/zoneminder/events
|
||||||
|
rm -rf debian/zoneminder/usr/share/zoneminder/images
|
||||||
|
rm -rf debian/zoneminder/usr/share/zoneminder/temp
|
||||||
|
# The link stuff for these folders has been moved to
|
||||||
|
# zoneminder-core.links file
|
||||||
|
#
|
||||||
|
# This is a slightly lesser kludge; moving the cgi stuff to
|
||||||
|
# /usr/share/zoneminder/cgi-bin breaks one set of behavior,
|
||||||
|
# having it just in /usr/lib/cgi-bin breaks another bit of
|
||||||
|
# behavior.
|
||||||
|
# The link stuff for /usr/share/zoneminder/cgi-bin has been moved to
|
||||||
|
# zoneminder-ui-base.links file
|
||||||
|
|
||||||
|
override_dh_installinit:
|
||||||
|
dh_installinit --package=zoneminder-core --name=zoneminder
|
||||||
|
|
||||||
|
override_dh_systemd_start:
|
||||||
|
dh_systemd_start --package=zoneminder-core --name=zoneminder \
|
||||||
|
--restart-after-upgrade
|
||||||
|
|
||||||
|
override_dh_systemd_enable:
|
||||||
|
dh_systemd_enable --package=zoneminder-core --name=zoneminder
|
||||||
|
|
||||||
|
override_dh_fixperms:
|
||||||
|
dh_fixperms
|
||||||
|
#
|
||||||
|
# As requested by the Debian Webapps Policy Manual §3.2.1
|
||||||
|
chown root:www-data debian/zoneminder-core/etc/zm/zm.conf
|
||||||
|
chmod 640 debian/zoneminder-core/etc/zm/zm.conf
|
||||||
|
|
||||||
|
override_dh_auto_test:
|
||||||
|
# do not run tests...
|
||||||
|
|
||||||
|
.PHONY: override_dh_strip
|
||||||
|
override_dh_strip:
|
||||||
|
dh_strip --dbg-package=zoneminder-core-dbg
|
||||||
|
|
||||||
|
# Inspired by https://wiki.debian.org/onlyjob/get-orig-source
|
||||||
|
.PHONY: get-orig-source
|
||||||
|
get-orig-source: $(TARBALL) $(info I: $(PKG)_$(VER)$(DTYPE))
|
||||||
|
@
|
||||||
|
|
||||||
|
$(TARBALL):
|
||||||
|
$(if $(wildcard $(PKG)-$(VER)),$(error folder '$(PKG)-$(VER)' exists, aborting...))
|
||||||
|
@echo "# Cloning origin repository..."; \
|
||||||
|
if ! git clone $(UURL) $(PKG)-$(VER); then \
|
||||||
|
$(RM) -r $(PKG)-$(VER); \
|
||||||
|
echo "failed to clone repository, aborting..."; \
|
||||||
|
false; \
|
||||||
|
fi
|
||||||
|
@if [ $(BRANCH) != "master" ]; then \
|
||||||
|
cd $(PKG)-$(VER); \
|
||||||
|
echo "# Not on master branch, fetching origin branch '$(BRANCH)'..."; \
|
||||||
|
git fetch origin $(BRANCH):$(BRANCH) || false; \
|
||||||
|
echo "# Switching to branch '$(BRANCH)'..."; \
|
||||||
|
git checkout $(BRANCH) || false; \
|
||||||
|
fi
|
||||||
|
@echo "# Checking local source..."
|
||||||
|
@if [ $$(cd $(PKG)-$(VER) && git rev-parse HEAD) = $(HEAD) ]; then \
|
||||||
|
echo "even with origin, ok"; \
|
||||||
|
true; \
|
||||||
|
else \
|
||||||
|
echo "not even with origin, aborting..."; \
|
||||||
|
false; \
|
||||||
|
fi
|
||||||
|
@echo "# Setting times..."
|
||||||
|
@cd $(PKG)-$(VER) \
|
||||||
|
&& for F in $$(git ls-tree -r --name-only HEAD | sed -e "s/\s/\*/g"); do \
|
||||||
|
touch --no-dereference -d "$$(git log -1 --format="%ai" -- $$F)" "$$F"; \
|
||||||
|
done
|
||||||
|
@echo "# Cleaning-up..."
|
||||||
|
cd $(PKG)-$(VER) && $(RM) -r .git
|
||||||
|
@echo "# Packing file '$(TARBALL)'..."
|
||||||
|
@find -L "$(PKG)-$(VER)" -xdev -type f -print | sort \
|
||||||
|
| XZ_OPT="-6v" tar -caf "$(TARBALL)" -T- --owner=root --group=root --mode=a+rX \
|
||||||
|
&& $(RM) -r "$(PKG)-$(VER)"
|
|
@ -0,0 +1 @@
|
||||||
|
3.0 (native)
|
|
@ -0,0 +1 @@
|
||||||
|
extend-diff-ignore = "(^|/)(config\.sub|config\.guess|Makefile|aclocal.m4|compile|config.h.in|configure|depcomp|install-sh|missing)$"
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# config maintainer script for zoneminder-core package
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Source the debconf stuff
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,4 @@
|
||||||
|
var/log/zm
|
||||||
|
var/cache/zoneminder/events
|
||||||
|
var/cache/zoneminder/images
|
||||||
|
var/cache/zoneminder/temp
|
|
@ -0,0 +1,4 @@
|
||||||
|
etc/zm
|
||||||
|
usr/bin
|
||||||
|
usr/share/polkit-1/actions
|
||||||
|
usr/share/polkit-1/rules.d
|
|
@ -0,0 +1,3 @@
|
||||||
|
var/cache/zoneminder/events usr/share/zoneminder/events
|
||||||
|
var/cache/zoneminder/images usr/share/zoneminder/images
|
||||||
|
var/cache/zoneminder/temp usr/share/zoneminder/temp
|
|
@ -0,0 +1,80 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# postinst maintainer script for zoneminder-core package
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Source the debconf stuff
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
# Source the config file
|
||||||
|
CONFIGFILE=/etc/zm/zm.conf
|
||||||
|
. $CONFIGFILE
|
||||||
|
|
||||||
|
# Do this when the package is installed, upgraded or reconfigured
|
||||||
|
if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ]; then
|
||||||
|
|
||||||
|
# Retrieve data from dbconfig (inputs from user)
|
||||||
|
. /etc/dbconfig-common/zoneminder.conf
|
||||||
|
|
||||||
|
# ZoneMinder config file handling
|
||||||
|
# Inspired by: http://manpages.debian.org/cgi-bin/man.cgi?query=debconf-devel&sektion=7
|
||||||
|
|
||||||
|
# Backup the config file
|
||||||
|
cp -a -f $CONFIGFILE ${CONFIGFILE}.postinst.bak
|
||||||
|
|
||||||
|
# Redeclare variables if missing in config file
|
||||||
|
test -z $dbc_dbserver || grep -Eq "^ *ZM_DB_HOST=" $CONFIGFILE \
|
||||||
|
|| echo "ZM_DB_HOST=" >> ${CONFIGFILE}.postinst.bak
|
||||||
|
test -z $dbc_dbname || grep -Eq "^ *ZM_DB_NAME=" $CONFIGFILE \
|
||||||
|
|| echo "ZM_DB_NAME=" >> ${CONFIGFILE}.postinst.bak
|
||||||
|
test -z $dbc_dbuser || grep -Eq "^ *ZM_DB_USER=" $CONFIGFILE \
|
||||||
|
|| echo "ZM_DB_USER=" >> ${CONFIGFILE}.postinst.bak
|
||||||
|
test -z $dbc_dbpass || grep -Eq "^ *ZM_DB_PASS=" $CONFIGFILE \
|
||||||
|
|| echo "ZM_DB_PASS=" >> ${CONFIGFILE}.postinst.bak
|
||||||
|
|
||||||
|
# Prevent ZM_DB_HOST to be empty if user selected the 'unix socket' method
|
||||||
|
if test -z $dbc_dbserver; then
|
||||||
|
dbc_dbserver_override="localhost"
|
||||||
|
else
|
||||||
|
dbc_dbserver_override=$dbc_dbserver
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update variables in config file
|
||||||
|
sed -i "s/^ *ZM_DB_HOST=.*/ZM_DB_HOST=$dbc_dbserver_override/" \
|
||||||
|
${CONFIGFILE}.postinst.bak
|
||||||
|
test -z $dbc_dbname || sed -i "s/^ *ZM_DB_NAME=.*/ZM_DB_NAME=$dbc_dbname/" \
|
||||||
|
${CONFIGFILE}.postinst.bak
|
||||||
|
test -z $dbc_dbuser || sed -i "s/^ *ZM_DB_USER=.*/ZM_DB_USER=$dbc_dbuser/" \
|
||||||
|
${CONFIGFILE}.postinst.bak
|
||||||
|
test -z $dbc_dbpass || sed -i "s/^ *ZM_DB_PASS=.*/ZM_DB_PASS=$dbc_dbpass/" \
|
||||||
|
${CONFIGFILE}.postinst.bak
|
||||||
|
|
||||||
|
# Clean-up backup file
|
||||||
|
mv -f ${CONFIGFILE}.postinst.bak $CONFIGFILE
|
||||||
|
|
||||||
|
|
||||||
|
# Set some file permissions
|
||||||
|
chown $ZM_WEB_USER:$ZM_WEB_GROUP /var/log/zm
|
||||||
|
if [ -z "$2" ]; then
|
||||||
|
chown $ZM_WEB_USER:$ZM_WEB_GROUP -R /var/cache/zoneminder
|
||||||
|
fi
|
||||||
|
# As requested by the Debian Webapps Policy Manual §3.2.1
|
||||||
|
chown root:${ZM_WEB_GROUP} $CONFIGFILE
|
||||||
|
chmod 640 $CONFIGFILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Do this every time the package is installed or upgraded
|
||||||
|
# Test for database presence to avoid failure of zmupdate.pl
|
||||||
|
if [ "$dbc_install" = "true" ] && [ "$1" = "configure" ]; then
|
||||||
|
|
||||||
|
# Ensure zoneminder is stopped
|
||||||
|
deb-systemd-invoke stop zoneminder.service || exit $?
|
||||||
|
|
||||||
|
# Run the ZoneMinder update tool
|
||||||
|
zmupdate.pl --nointeractive
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,37 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# postrm maintainer script for zoneminder-core package
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Source the debconf stuff
|
||||||
|
if [ -f /usr/share/debconf/confmodule ]; then
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" = "purge" ]; then
|
||||||
|
|
||||||
|
# Ask the user if we have to remove the cache directory even if not empty
|
||||||
|
if [ -d /var/cache/zoneminder ] \
|
||||||
|
&& [ ! $(find /var/cache/zoneminder -maxdepth 0 -type d -empty 2>/dev/null) ]; then
|
||||||
|
RET=""
|
||||||
|
db_input high zoneminder/ask_delete || true
|
||||||
|
db_go || true
|
||||||
|
db_get zoneminder/ask_delete
|
||||||
|
if [ "$RET" = "true" ]; then
|
||||||
|
RET=""
|
||||||
|
db_input high zoneminder/ask_delete_again || true
|
||||||
|
db_go || true
|
||||||
|
db_get zoneminder/ask_delete_again
|
||||||
|
if [ "$RET" = "true" ]; then
|
||||||
|
rm -rf /var/cache/zoneminder
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
# postrm rm may freeze without that
|
||||||
|
db_stop
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,33 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# preinst maintainer script for zoneminder-core package
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
abort=false
|
||||||
|
if [ -L /usr/share/zoneminder/events ]; then
|
||||||
|
l=$(readlink /usr/share/zoneminder/events)
|
||||||
|
if [ "$l" != "/var/cache/zoneminder/events" ]; then
|
||||||
|
abort=true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -L /usr/share/zoneminder/images ]; then
|
||||||
|
l=$(readlink /usr/share/zoneminder/images )
|
||||||
|
if [ "$l" != "/var/cache/zoneminder/images" ]; then
|
||||||
|
abort=true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$abort" = "true" ]; then
|
||||||
|
cat >&2 << EOF
|
||||||
|
Aborting installation of zoneminder due to non-default symlinks in
|
||||||
|
/usr/share/zoneminder for the images and/or events directory, which could
|
||||||
|
result in loss of data. Please move your data in each of these directories to
|
||||||
|
/var/cache/zoneminder before installing zoneminder from the package.
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,19 @@
|
||||||
|
Template: zoneminder/ask_delete
|
||||||
|
Type: boolean
|
||||||
|
Default: false
|
||||||
|
_Description: Delete this non empty directory?
|
||||||
|
A purge of the ZoneMinder package is performed but the directory
|
||||||
|
'/var/cache/zoneminder' is not empty so it will not be deleted.
|
||||||
|
.
|
||||||
|
Please consider that this directory is designed to contain data resulting from
|
||||||
|
event detection. Therefore, "proof of evidence" could be lost!"
|
||||||
|
.
|
||||||
|
If you are not sure of your decision, please do not delete this directory but
|
||||||
|
perform a manual checkup.
|
||||||
|
|
||||||
|
Template: zoneminder/ask_delete_again
|
||||||
|
Type: boolean
|
||||||
|
Default: false
|
||||||
|
_Description: Deletion confirmed?
|
||||||
|
You have allowed the deletion of directory '/var/cache/zoneminder' although
|
||||||
|
it may contain critical data.
|
|
@ -0,0 +1,90 @@
|
||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: zoneminder
|
||||||
|
# Required-Start: $network $remote_fs $syslog
|
||||||
|
# Required-Stop: $network $remote_fs $syslog
|
||||||
|
# Should-Start: mysql
|
||||||
|
# Should-Stop: mysql
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Control ZoneMinder as a Service
|
||||||
|
### END INIT INFO
|
||||||
|
# description: Control ZoneMinder as a Service
|
||||||
|
# chkconfig: 2345 20 20
|
||||||
|
|
||||||
|
# Source function library.
|
||||||
|
#. /etc/rc.d/init.d/functions
|
||||||
|
|
||||||
|
prog=ZoneMinder
|
||||||
|
ZM_PATH_BIN="/usr/bin"
|
||||||
|
RUNDIR=/var/run/zm
|
||||||
|
TMPDIR=/tmp/zm
|
||||||
|
command="$ZM_PATH_BIN/zmpkg.pl"
|
||||||
|
|
||||||
|
start() {
|
||||||
|
echo -n "Starting $prog: "
|
||||||
|
mkdir -p $RUNDIR && chown www-data:www-data $RUNDIR
|
||||||
|
mkdir -p $TMPDIR && chown www-data:www-data $TMPDIR
|
||||||
|
$command start
|
||||||
|
RETVAL=$?
|
||||||
|
[ $RETVAL = 0 ] && echo success
|
||||||
|
[ $RETVAL != 0 ] && echo failure
|
||||||
|
echo
|
||||||
|
[ $RETVAL = 0 ] && touch /var/lock/zm
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
stop() {
|
||||||
|
echo -n "Stopping $prog: "
|
||||||
|
#
|
||||||
|
# Why is this status check being done?
|
||||||
|
# as $command stop returns 1 if zoneminder
|
||||||
|
# is stopped, which will result in
|
||||||
|
# this returning 1, which will stuff
|
||||||
|
# dpkg when it tries to stop zoneminder before
|
||||||
|
# uninstalling . . .
|
||||||
|
#
|
||||||
|
result=`$command status`
|
||||||
|
if [ ! "$result" = "running" ]; then
|
||||||
|
echo "Zoneminder already stopped"
|
||||||
|
echo
|
||||||
|
RETVAL=0
|
||||||
|
else
|
||||||
|
$command stop
|
||||||
|
RETVAL=$?
|
||||||
|
[ $RETVAL = 0 ] && echo success
|
||||||
|
[ $RETVAL != 0 ] && echo failure
|
||||||
|
echo
|
||||||
|
[ $RETVAL = 0 ] && rm -f /var/lock/zm
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
status() {
|
||||||
|
result=`$command status`
|
||||||
|
if [ "$result" = "running" ]; then
|
||||||
|
echo "ZoneMinder is running"
|
||||||
|
RETVAL=0
|
||||||
|
else
|
||||||
|
echo "ZoneMinder is stopped"
|
||||||
|
RETVAL=1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
'start')
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
'stop')
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
'restart' | 'force-reload')
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
'status')
|
||||||
|
status
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 { start | stop | restart | status }"
|
||||||
|
RETVAL=1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exit $RETVAL
|
|
@ -0,0 +1,19 @@
|
||||||
|
# ZoneMinder systemd unit file
|
||||||
|
# This file is intended to work with debian distributions
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=ZoneMinder CCTV recording and security system
|
||||||
|
After=network.target mysql.service apache2.service
|
||||||
|
Requires=apache2.service
|
||||||
|
Wants=mysql.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=www-data
|
||||||
|
Type=forking
|
||||||
|
ExecStart=/usr/bin/zmpkg.pl start
|
||||||
|
ExecReload=/usr/bin/zmpkg.pl restart
|
||||||
|
ExecStop=/usr/bin/zmpkg.pl stop
|
||||||
|
PIDFile=/var/run/zm/zm.pid
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -0,0 +1 @@
|
||||||
|
d /var/run/zm 0755 www-data www-data
|
|
@ -0,0 +1,142 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# config maintainer script for zoneminder
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Source the debconf stuff
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
# Set the first version in which dbconfig-common was introduced in the package
|
||||||
|
dbc_first_version="1.28.0"
|
||||||
|
|
||||||
|
CONFIGFILE=/etc/zm/zm.conf
|
||||||
|
if [ -e $CONFIGFILE ]; then
|
||||||
|
# Source the config file if exists
|
||||||
|
. $CONFIGFILE
|
||||||
|
elif [ -e ${CONFIGFILE}.dpkg-new ]; then
|
||||||
|
# If no config file, source the config file which is going to be installed
|
||||||
|
# by the core package
|
||||||
|
. ${CONFIGFILE}.dpkg-new
|
||||||
|
else
|
||||||
|
# If no config file is going to be installed, set some default values
|
||||||
|
ZM_DB_HOST=
|
||||||
|
ZM_DB_NAME="zm"
|
||||||
|
ZM_DB_USER="zmuser"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set some variables for the dbconfig-common stuff
|
||||||
|
dbc_dbserver="$ZM_DB_HOST"
|
||||||
|
dbc_dbname="$ZM_DB_NAME"
|
||||||
|
dbc_dbuser="$ZM_DB_USER"
|
||||||
|
|
||||||
|
if [ -f /usr/share/dbconfig-common/dpkg/config ]; then
|
||||||
|
|
||||||
|
# Default use dbconfig-common
|
||||||
|
dbc_install="true"
|
||||||
|
|
||||||
|
# Currently we only support mysql database
|
||||||
|
dbc_dbtypes="mysql"
|
||||||
|
|
||||||
|
# Set authentication method to password
|
||||||
|
dbc_authmethod_user="password"
|
||||||
|
|
||||||
|
# Source the dbconfig-common stuff
|
||||||
|
. /usr/share/dbconfig-common/dpkg/config
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Do this when the package is installed, upgraded or reconfigured
|
||||||
|
# Most of answers are cached so the questions will not be asked again
|
||||||
|
if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ]; then
|
||||||
|
|
||||||
|
# Ask the user if the database shall be installed locally or remotely
|
||||||
|
db_input high zoneminder/debconf_dblocation || true
|
||||||
|
db_go || true
|
||||||
|
db_get zoneminder/debconf_dblocation
|
||||||
|
|
||||||
|
if [ "$RET" = "local" ]; then
|
||||||
|
if [ ! -e "/usr/sbin/mysqld" ]; then
|
||||||
|
# Display a message and exit if the user want a local database but
|
||||||
|
# no database server is available
|
||||||
|
db_input high zoneminder/debconf_dblocalmissingerror || true
|
||||||
|
db_go || true
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
# Set the database server to localhost
|
||||||
|
dbc_dbserver="localhost"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Source the dbconfig main configuration file
|
||||||
|
if [ -f /etc/dbconfig-common/config ]; then
|
||||||
|
. /etc/dbconfig-common/config
|
||||||
|
fi
|
||||||
|
if [ "$dbc_remote_questions_default" = "false" ]; then
|
||||||
|
# Display a message and exit if the dbconfig configuration does not
|
||||||
|
# allow installation of remote databases
|
||||||
|
# Note: To overcome this issue, we could think to override the
|
||||||
|
# default setting by using dbc_remote_questions_default='true' in
|
||||||
|
# maintainer scripts but unfortunately this does not work due to
|
||||||
|
# current dbconfig design
|
||||||
|
# More information here:
|
||||||
|
# https://bugs.launchpad.net/ubuntu/+source/dbconfig-common/+bug/1065331
|
||||||
|
db_input high zoneminder/debconf_dbconfigerror || true
|
||||||
|
db_go || true
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ask the user for all database settings
|
||||||
|
dbc_go zoneminder $@
|
||||||
|
|
||||||
|
# Ask the user for the password of the database administrator if the user
|
||||||
|
# has not yet answered to this question.
|
||||||
|
# This situation may occur if the user skipped the database creation step
|
||||||
|
# when reconfiguring the package.
|
||||||
|
RET=""
|
||||||
|
db_get zoneminder/mysql/admin-pass
|
||||||
|
if [ -z "$RET" ]; then
|
||||||
|
db_input high zoneminder/mysql/admin-pass || true
|
||||||
|
db_go || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Do this only when not upgrading the package (no old version in argument)
|
||||||
|
if [ -z "$2" ]; then
|
||||||
|
# Ask for the password of 'admin' user
|
||||||
|
while :; do
|
||||||
|
RET=""
|
||||||
|
db_input high zoneminder/admin_password || true
|
||||||
|
db_go || true
|
||||||
|
db_get zoneminder/admin_password
|
||||||
|
# If password isn't empty we ask for password verification
|
||||||
|
if [ -z "$RET" ]; then
|
||||||
|
db_fset zoneminder/admin_password seen false
|
||||||
|
db_fset zoneminder/admin_password_again seen false
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
ROOT_PW="$RET"
|
||||||
|
db_input high zoneminder/admin_password_again || true
|
||||||
|
db_go || true
|
||||||
|
db_get zoneminder/admin_password_again
|
||||||
|
if [ "$RET" = "$ROOT_PW" ]; then
|
||||||
|
ROOT_PW=""
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
db_fset zoneminder/password_mismatch seen false
|
||||||
|
db_input critical zoneminder/password_mismatch || true
|
||||||
|
db_set zoneminder/admin_password ""
|
||||||
|
db_set zoneminder/admin_password_again ""
|
||||||
|
db_go || true
|
||||||
|
done
|
||||||
|
else
|
||||||
|
# If we are upgrading the package, set an empty password to disable
|
||||||
|
# password update in ZoneMinder database
|
||||||
|
db_set zoneminder/admin_password ""
|
||||||
|
fi
|
||||||
|
# Set the seen flag to not ask this question again if no password is
|
||||||
|
# provided
|
||||||
|
db_fset zoneminder/admin_password seen true
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,3 @@
|
||||||
|
usr/share/zoneminder/db
|
||||||
|
usr/share/dbconfig-common/data/zoneminder/install
|
||||||
|
usr/share/dbconfig-common/data/zoneminder/upgrade/mysql
|
|
@ -0,0 +1 @@
|
||||||
|
usr/share/zoneminder/db
|
|
@ -0,0 +1,79 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# postinst maintainer script for zoneminder-db package
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Source the debconf stuff
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
mysql_update() {
|
||||||
|
|
||||||
|
# Source the dbconfig stuff
|
||||||
|
. /usr/share/dbconfig-common/internal/mysql
|
||||||
|
|
||||||
|
# Update the password of the hard-coded default 'admin' account
|
||||||
|
test -z $ADMIN_PASSWORD || dbc_mysql_exec_command "UPDATE Users SET Password = password('$ADMIN_PASSWORD') WHERE Username = 'admin';" || true
|
||||||
|
|
||||||
|
# Update the database version
|
||||||
|
dbc_mysql_exec_command "UPDATE Config SET Value = '$DB_VERSION' WHERE Name = 'ZM_DYN_DB_VERSION';" || true
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -f /usr/share/dbconfig-common/dpkg/postinst ]; then
|
||||||
|
|
||||||
|
# Set the first version in which dbconfig-common was introduced in the package
|
||||||
|
dbc_first_version="1.28.0"
|
||||||
|
|
||||||
|
# Set the database type
|
||||||
|
dbc_dbtypes="mysql"
|
||||||
|
|
||||||
|
# Source the dbconfig-common stuff
|
||||||
|
. /usr/share/dbconfig-common/dpkg/postinst
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Do this when the package is installed, upgraded or reconfigured
|
||||||
|
if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ]; then
|
||||||
|
|
||||||
|
# Install sql database create file for dbconfig
|
||||||
|
# (needed at first package installation)
|
||||||
|
if [ ! -f /usr/share/dbconfig-common/data/zoneminder/install/mysql ]; then
|
||||||
|
install -m 644 /usr/share/zoneminder/db/zm_create.sql \
|
||||||
|
/usr/share/dbconfig-common/data/zoneminder/install/mysql
|
||||||
|
# Remove unneeded sql requests
|
||||||
|
# dbconfig will create the underlying database
|
||||||
|
sed -i "/^ *CREATE DATABASE /d" \
|
||||||
|
/usr/share/dbconfig-common/data/zoneminder/install/mysql
|
||||||
|
sed -i "/^ *USE /d" \
|
||||||
|
/usr/share/dbconfig-common/data/zoneminder/install/mysql
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Symlink sql update files for dbconfig (needed when upgrading the package)
|
||||||
|
for sqlfile in /usr/share/zoneminder/db/zm_update-*.sql; do
|
||||||
|
lnk=`echo $sqlfile | sed "s/^\/usr\/share\/zoneminder\/db\/zm_update-\(.*\)\.sql/\1/"`
|
||||||
|
if [ ! -L /usr/share/dbconfig-common/data/zoneminder/upgrade/mysql/$lnk ]; then
|
||||||
|
ln -sf $sqlfile \
|
||||||
|
/usr/share/dbconfig-common/data/zoneminder/upgrade/mysql/$lnk
|
||||||
|
fi
|
||||||
|
done || true
|
||||||
|
|
||||||
|
# Create the underlying database and populate it
|
||||||
|
# dbconfig will take care of applying any updates which are newer than the
|
||||||
|
# previously installed version
|
||||||
|
dbc_go zoneminder $@
|
||||||
|
|
||||||
|
# Get the password of ZoneMinder user 'admin' from debconf
|
||||||
|
db_get zoneminder/admin_password
|
||||||
|
ADMIN_PASSWORD=$RET
|
||||||
|
|
||||||
|
# Remove the password from debconf database
|
||||||
|
test -z $ADMIN_PASSWORD || db_reset zoneminder/admin_password || true
|
||||||
|
|
||||||
|
# Get the lastest database version from dbconfig upgrade folder
|
||||||
|
DB_VERSION=$(ls -rv /usr/share/dbconfig-common/data/zoneminder/upgrade/$dbc_dbtypes | head -1)
|
||||||
|
|
||||||
|
# Update the default admin account and database version
|
||||||
|
mysql_update
|
||||||
|
fi
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,34 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# postrm maintainer script for zoneminder-db package
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Source the debconf stuff
|
||||||
|
if [ -f /usr/share/debconf/confmodule ]; then
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Source the dbconfig stuff
|
||||||
|
if [ -f /usr/share/dbconfig-common/dpkg/postrm ]; then
|
||||||
|
. /usr/share/dbconfig-common/dpkg/postrm
|
||||||
|
# Ask the user what do to with dbconfig when removing the package
|
||||||
|
dbc_go zoneminder $@
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then
|
||||||
|
# Remove dbconfig stuff added in postinst script
|
||||||
|
rm -rf /usr/share/dbconfig-common/data/zoneminder
|
||||||
|
# No need to manually remove the zm database, dbconfig take care of this
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" = "purge" ]; then
|
||||||
|
# Delete a potential remaining file used in postinst script
|
||||||
|
rm -f /etc/zm/zm.conf.postinst.bak
|
||||||
|
fi
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
# postrm rm may freeze without that
|
||||||
|
db_stop
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,22 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# prerm script for zoneminder-db package
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Source the debconf stuff if file exists
|
||||||
|
if [ -f /usr/share/debconf/confmodule ]; then
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If dbconfig-common is installed and has been used by zoneminder
|
||||||
|
if [ -f /usr/share/dbconfig-common/dpkg/prerm ] \
|
||||||
|
&& [ -f /etc/dbconfig-common/zoneminder.conf ]; then
|
||||||
|
# Source the dbconfig stuff
|
||||||
|
. /usr/share/dbconfig-common/dpkg/prerm
|
||||||
|
# Ask the user what do to with dbconfig before removing the package
|
||||||
|
dbc_go zoneminder $@
|
||||||
|
fi
|
||||||
|
|
||||||
|
# #DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,58 @@
|
||||||
|
Template: zoneminder/debconf_dblocation
|
||||||
|
Type: select
|
||||||
|
__Choices: local, remote
|
||||||
|
Default: local
|
||||||
|
_Description: Database location:
|
||||||
|
A database server is required to run ZoneMinder. The database can be installed
|
||||||
|
either locally or remotely on a machine of your network.
|
||||||
|
.
|
||||||
|
If you choose a remote location, you will have to select the 'tcp/ip'
|
||||||
|
connection method and enter the hostname or ip address of the remote machine
|
||||||
|
in the next configuration screens.
|
||||||
|
|
||||||
|
Template: zoneminder/debconf_dblocalmissingerror
|
||||||
|
Type: error
|
||||||
|
_Description: No local database server is available:
|
||||||
|
Currently ZoneMinder supports mysql or mariadb database server but none of them
|
||||||
|
appears to be installed on this machine.
|
||||||
|
.
|
||||||
|
In order to complete ZoneMinder's installation, after ending of this assistant,
|
||||||
|
please install a compatible database server and then restart the assistant by
|
||||||
|
invoking:
|
||||||
|
.
|
||||||
|
$ sudo dpkg-reconfigure zoneminder
|
||||||
|
|
||||||
|
Template: zoneminder/debconf_dbconfigerror
|
||||||
|
Type: error
|
||||||
|
_Description: Remote database servers are not allowed:
|
||||||
|
The current configuration of dbconfig-common does not allow installation of
|
||||||
|
a database on remote servers.
|
||||||
|
.
|
||||||
|
In order to reconfigure dbconfig-common, please invoke the following command
|
||||||
|
after ending of this assistant:
|
||||||
|
.
|
||||||
|
$ sudo dpkg-reconfigure dbconfig-common
|
||||||
|
.
|
||||||
|
Then, to complete ZoneMinder's installation, please restart this assistant by
|
||||||
|
invoking:
|
||||||
|
.
|
||||||
|
$ sudo dpkg-reconfigure zoneminder
|
||||||
|
|
||||||
|
Template: zoneminder/admin_password
|
||||||
|
Type: password
|
||||||
|
_Description: New password for the ZoneMinder 'admin' user:
|
||||||
|
Please enter the password of the default administrative user.
|
||||||
|
.
|
||||||
|
While not mandatory, it is highly recommended that you set a custom password
|
||||||
|
for the administrative 'admin' user.
|
||||||
|
.
|
||||||
|
If this field is left blank, the password will not be changed.
|
||||||
|
|
||||||
|
Template: zoneminder/admin_password_again
|
||||||
|
Type: password
|
||||||
|
_Description: Repeat password for the ZoneMinder 'admin' user:
|
||||||
|
|
||||||
|
Template: zoneminder/password_mismatch
|
||||||
|
Type: error
|
||||||
|
_Description: Password input error
|
||||||
|
The two passwords you entered were not the same. Please try again.
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# config maintainer script for zoneminder-ui-base package
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Source the debconf stuff
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
# Do this when the package is installed, upgraded or reconfigured
|
||||||
|
# Most of answers are cached so the questions will not be asked again
|
||||||
|
if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ]; then
|
||||||
|
|
||||||
|
# Ask the user for the web server(s) to configure
|
||||||
|
db_input high zoneminder/webserver || true
|
||||||
|
db_go || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,11 @@
|
||||||
|
debian/apache.conf etc/zm
|
||||||
|
usr/lib/cgi-bin
|
||||||
|
usr/share/zoneminder/ajax
|
||||||
|
usr/share/zoneminder/css
|
||||||
|
usr/share/zoneminder/graphics
|
||||||
|
usr/share/zoneminder/includes
|
||||||
|
usr/share/zoneminder/index.php
|
||||||
|
usr/share/zoneminder/js
|
||||||
|
usr/share/zoneminder/lang
|
||||||
|
usr/share/zoneminder/tools
|
||||||
|
usr/share/zoneminder/views
|
|
@ -0,0 +1 @@
|
||||||
|
usr/lib/cgi-bin usr/share/zoneminder/cgi-bin
|
|
@ -0,0 +1,48 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# postinst maintainer script for zoneminder-ui-base package
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Source the debconf stuff
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
apache_install() {
|
||||||
|
|
||||||
|
mkdir -p /etc/apache2/conf-available
|
||||||
|
ln -sf ../../zm/apache.conf /etc/apache2/conf-available/zoneminder.conf
|
||||||
|
|
||||||
|
COMMON_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true)
|
||||||
|
|
||||||
|
if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
|
||||||
|
. /usr/share/apache2/apache2-maintscript-helper
|
||||||
|
apache2_invoke enconf zoneminder
|
||||||
|
elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then
|
||||||
|
[ -d /etc/apache2/conf.d/ ] && [ ! -L /etc/apache2/conf.d/zoneminder.conf ] && ln -s ../conf-available/zoneminder.conf /etc/apache2/conf.d/zoneminder.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Enable CGI script module in apache (not enabled by default on jessie)
|
||||||
|
a2enmod cgi >/dev/null 2>&1
|
||||||
|
|
||||||
|
# Reload the web server
|
||||||
|
deb-systemd-invoke reload apache2.service || true
|
||||||
|
}
|
||||||
|
|
||||||
|
# Do this when the package is installed, upgraded or reconfigured
|
||||||
|
if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ]; then
|
||||||
|
|
||||||
|
# Configure the web server
|
||||||
|
db_get zoneminder/webserver
|
||||||
|
webservers="$RET"
|
||||||
|
|
||||||
|
for webserver in $webservers; do
|
||||||
|
webserver=${webserver%,}
|
||||||
|
# Currently we only support apache2
|
||||||
|
if [ "$webserver" = "apache2" ] ; then
|
||||||
|
apache_install $1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,41 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# postrm maintainer script for zoneminder-ui-base package
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Source the debconf stuff
|
||||||
|
if [ -f /usr/share/debconf/confmodule ]; then
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
fi
|
||||||
|
|
||||||
|
apache_remove() {
|
||||||
|
COMMON_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true)
|
||||||
|
if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
|
||||||
|
. /usr/share/apache2/apache2-maintscript-helper
|
||||||
|
apache2_invoke disconf zoneminder
|
||||||
|
elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then
|
||||||
|
rm -f /etc/apache2/conf.d/zoneminder.conf
|
||||||
|
fi
|
||||||
|
rm -f /etc/apache2/conf-available/zoneminder.conf
|
||||||
|
# Reload the web server
|
||||||
|
deb-systemd-invoke reload apache2.service || true
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then
|
||||||
|
# Deconfigure the web server
|
||||||
|
db_get zoneminder/webserver
|
||||||
|
for webserver in $RET; do
|
||||||
|
webserver=${webserver%,}
|
||||||
|
# Currently we only support apache2
|
||||||
|
if [ "$webserver" = "apache2" ] ; then
|
||||||
|
apache_remove $1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
# postrm rm may freeze without that
|
||||||
|
db_stop
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,7 @@
|
||||||
|
Template: zoneminder/webserver
|
||||||
|
Type: multiselect
|
||||||
|
Choices: apache2
|
||||||
|
Default: apache2
|
||||||
|
_Description: Web server to reconfigure automatically:
|
||||||
|
Please choose the web server that should be automatically configured for
|
||||||
|
ZoneMinder's web portal access.
|
|
@ -0,0 +1 @@
|
||||||
|
usr/share/zoneminder/skins/classic
|
|
@ -0,0 +1 @@
|
||||||
|
usr/share/zoneminder/skins/mobile
|
|
@ -0,0 +1 @@
|
||||||
|
usr/share/zoneminder/skins/xml
|
|
@ -8,7 +8,7 @@ ScriptAlias /zm/cgi-bin "/usr/lib/zoneminder/cgi-bin"
|
||||||
|
|
||||||
Alias /zm /usr/share/zoneminder/www
|
Alias /zm /usr/share/zoneminder/www
|
||||||
<Directory /usr/share/zoneminder/www>
|
<Directory /usr/share/zoneminder/www>
|
||||||
Options -Indexes +ollowSymLinks
|
Options -Indexes +FollowSymLinks
|
||||||
<IfModule mod_dir.c>
|
<IfModule mod_dir.c>
|
||||||
DirectoryIndex index.php
|
DirectoryIndex index.php
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
|
@ -5,11 +5,10 @@ Maintainer: Dmitry Smirnov <onlyjob@debian.org>
|
||||||
Uploaders: Vagrant Cascadian <vagrant@debian.org>
|
Uploaders: Vagrant Cascadian <vagrant@debian.org>
|
||||||
Build-Depends: debhelper (>= 9), dh-systemd, python-sphinx | python3-sphinx, apache2-dev, dh-linktree
|
Build-Depends: debhelper (>= 9), dh-systemd, python-sphinx | python3-sphinx, apache2-dev, dh-linktree
|
||||||
,cmake
|
,cmake
|
||||||
,libavdevice-dev (>= 6:10~)
|
,libx264-dev, libmp4v2-dev
|
||||||
,libavcodec-dev (>= 6:10~)
|
,libavcodec-dev, libavformat-dev, libswscale-dev
|
||||||
,libavformat-dev (>= 6:10~)
|
,libavutil-dev, libavdevice-dev
|
||||||
,libavutil-dev (>= 6:10~)
|
,libboost-dev
|
||||||
,libswscale-dev (>= 6:10~)
|
|
||||||
,libbz2-dev
|
,libbz2-dev
|
||||||
,libgcrypt-dev
|
,libgcrypt-dev
|
||||||
,libcurl4-gnutls-dev
|
,libcurl4-gnutls-dev
|
||||||
|
@ -38,11 +37,10 @@ Package: zoneminder
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
|
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
|
||||||
,javascript-common
|
,javascript-common
|
||||||
|
,libmp4v2-2, libx264-142|libx264-148, libswscale-ffmpeg3|libswscale4|libswscale3
|
||||||
,ffmpeg | libav-tools
|
,ffmpeg | libav-tools
|
||||||
,libdate-manip-perl
|
,libdate-manip-perl, libmime-lite-perl, libmime-tools-perl
|
||||||
,libdbd-mysql-perl
|
,libdbd-mysql-perl
|
||||||
,libmime-lite-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
|
||||||
|
|
|
@ -58,8 +58,10 @@ override_dh_auto_install:
|
||||||
|
|
||||||
override_dh_fixperms:
|
override_dh_fixperms:
|
||||||
dh_fixperms
|
dh_fixperms
|
||||||
## 637685
|
#
|
||||||
chmod -c o-r $(CURDIR)/debian/zoneminder/etc/zm/zm.conf
|
# As requested by the Debian Webapps Policy Manual §3.2.1
|
||||||
|
chown root:www-data $(CURDIR)/debian/zoneminder/etc/zm/zm.conf
|
||||||
|
chmod 640 $(CURDIR)/debian/zoneminder/etc/zm/zm.conf
|
||||||
|
|
||||||
override_dh_installinit:
|
override_dh_installinit:
|
||||||
dh_installinit --no-start
|
dh_installinit --no-start
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
3.0 (native)
|
1.0
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
version=3
|
|
||||||
|
|
||||||
opts=\
|
|
||||||
repacksuffix=+dfsg,\
|
|
||||||
dversionmangle=s{\+dfsg\d*}{},\
|
|
||||||
https://github.com/ZoneMinder/ZoneMinder/releases \
|
|
||||||
.*/ZoneMinder/archive/v(.*).tar.gz
|
|
|
@ -1,3 +1,4 @@
|
||||||
/var/cache/zoneminder/events /usr/share/zoneminder/www/events
|
/var/cache/zoneminder/events /usr/share/zoneminder/www/events
|
||||||
/var/cache/zoneminder/images /usr/share/zoneminder/www/images
|
/var/cache/zoneminder/images /usr/share/zoneminder/www/images
|
||||||
/var/cache/zoneminder/temp /usr/share/zoneminder/www/temp
|
/var/cache/zoneminder/temp /usr/share/zoneminder/www/temp
|
||||||
|
/var/tmp /usr/share/zoneminder/www/api/app/tmp
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
missingok
|
missingok
|
||||||
notifempty
|
notifempty
|
||||||
sharedscripts
|
sharedscripts
|
||||||
|
delaycompress
|
||||||
|
compress
|
||||||
postrotate
|
postrotate
|
||||||
/usr/bin/zmpkg.pl logrot >>/dev/null 2>&1 || :
|
/usr/bin/zmpkg.pl logrot >>/dev/null 2>&1 || :
|
||||||
endscript
|
endscript
|
||||||
|
|
|
@ -12,6 +12,10 @@ if [ "$1" = "configure" ]; then
|
||||||
if [ -z "$2" ]; then
|
if [ -z "$2" ]; then
|
||||||
chown www-data:www-data /var/cache/zoneminder /var/cache/zoneminder/*
|
chown www-data:www-data /var/cache/zoneminder /var/cache/zoneminder/*
|
||||||
fi
|
fi
|
||||||
|
if [ ! -e "/etc/apache2/mods-enabled/cgi.load" ]; then
|
||||||
|
echo "The cgi module is not enabled in apache2. I am enabling it using a2enmod cgi."
|
||||||
|
a2enmod cgi
|
||||||
|
fi
|
||||||
|
|
||||||
# Do this every time the package is installed or upgraded
|
# Do this every time the package is installed or upgraded
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1,6 @@
|
||||||
d /var/run/zm 0755 www-data www-data
|
d /var/run/zm 0755 www-data www-data
|
||||||
d /tmp/zm 0755 www-data www-data
|
d /tmp/zm 0755 www-data www-data
|
||||||
|
d /var/tmp/zm 0755 www-data www-data
|
||||||
|
d /var/tmp/cache 0755 www-data www-data
|
||||||
|
d /var/tmp/cache/models 0755 www-data www-data
|
||||||
|
d /var/tmp/cache/persistent 0755 www-data www-data
|
||||||
|
|
|
@ -40,6 +40,8 @@ Type
|
||||||
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.
|
||||||
|
|
||||||
|
It is important to understand that the available presets are intended merely as a starting point. Since every camera's view is unique, they are not guaranteed to work properly in every case. Presets tend to work acceptably for indoor cameras, where the objects of interest are relatively close and there typically are few or no unwanted objects moving within the cameras view. Presets, on the other hand, tend to not work acceptably for outdoor cameras, where the field of view is typically much wider, objects of interest are farther away, and changing weather patterns can cause false triggers. For outdoor cameras in particular, you will almost certainly have to tune your motion detection zone to get desired results. Please refer to `this guide <http://www.zoneminder.com/wiki/index.php/Understanding_ZoneMinder%27s_Zoning_system_for_Dummies>`__ to learn how to do this.
|
||||||
|
|
||||||
Units
|
Units
|
||||||
* Pixels - Selecting this option will allow many of the following values to be entered (or viewed) in units of pixels.
|
* Pixels - Selecting this option will allow many of the following values to be entered (or viewed) in units of pixels.
|
||||||
* Percentage - Selecting this option will allow may of the following values to be entered (or viewed) as a percentage. The sense of the percentage values refers to the area of the zone and not the image as a whole. This makes trying to work out necessary sizes rather easier.
|
* Percentage - Selecting this option will allow may of the following values to be entered (or viewed) as a percentage. The sense of the percentage values refers to the area of the zone and not the image as a whole. This makes trying to work out necessary sizes rather easier.
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
The XML images present in this folder have been drawn using http://draw.io
|
||||||
|
To edit images, simple go to draw.io and load the .xml files
|
Binary file not shown.
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 93 KiB |
File diff suppressed because one or more lines are too long
|
@ -27,3 +27,4 @@ zmfilter\[[[:digit:]]+\]: INF \[Deleting event [[:digit:]]+\]$
|
||||||
zmtelemetry\[[[:digit:]]+\]: INF \[Telemetry data uploaded successfully.\]$
|
zmtelemetry\[[[:digit:]]+\]: INF \[Telemetry data uploaded successfully.\]$
|
||||||
zmtelemetry\[[[:digit:]]+\]: INF \[Sending data to ZoneMinder Telemetry server.\]$
|
zmtelemetry\[[[:digit:]]+\]: INF \[Sending data to ZoneMinder Telemetry server.\]$
|
||||||
zmtelemetry\[[[:digit:]]+\]: INF \[Collec?ting data to send to ZoneMinder Telemetry server.\]$
|
zmtelemetry\[[[:digit:]]+\]: INF \[Collec?ting data to send to ZoneMinder Telemetry server.\]$
|
||||||
|
web_php\[[[:digit:]]+\]: INF \[Login successful for user "[[:alnum:]]+"\]$
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
@ZM_LOGDIR@/*.log {
|
@ZM_LOGDIR@/*.log {
|
||||||
missingok
|
missingok
|
||||||
notifempty
|
notifempty
|
||||||
|
delaycompress
|
||||||
|
compress
|
||||||
sharedscripts
|
sharedscripts
|
||||||
postrotate
|
postrotate
|
||||||
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
|
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
|
||||||
|
|
|
@ -12,7 +12,7 @@ Type=forking
|
||||||
ExecStart=@BINDIR@/zmpkg.pl start
|
ExecStart=@BINDIR@/zmpkg.pl start
|
||||||
ExecReload=@BINDIR@/zmpkg.pl restart
|
ExecReload=@BINDIR@/zmpkg.pl restart
|
||||||
ExecStop=@BINDIR@/zmpkg.pl stop
|
ExecStop=@BINDIR@/zmpkg.pl stop
|
||||||
PIDFile="@ZM_RUNDIR@/zm.pid"
|
PIDFile=@ZM_RUNDIR@/zm.pid
|
||||||
Environment=TZ=:/etc/localtime
|
Environment=TZ=:/etc/localtime
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
|
# Ack! Nasty hack to get modules Makefile regenerated if wiped with make clean
|
||||||
|
all-local: ZoneMinder/Makefile
|
||||||
|
|
||||||
|
ZoneMinder/Makefile: ZoneMinder/Makefile.PL
|
||||||
|
( cd ZoneMinder; perl Makefile.PL )
|
||||||
|
|
||||||
|
bin_SCRIPTS = \
|
||||||
|
zmdc.pl \
|
||||||
|
zmaudit.pl \
|
||||||
|
zmfilter.pl \
|
||||||
|
zmtrigger.pl \
|
||||||
|
zmx10.pl \
|
||||||
|
zmwatch.pl \
|
||||||
|
zmpkg.pl \
|
||||||
|
zmupdate.pl \
|
||||||
|
zmvideo.pl \
|
||||||
|
zmcontrol.pl \
|
||||||
|
zmtrack.pl \
|
||||||
|
zmcamtool.pl \
|
||||||
|
zmsystemctl.pl \
|
||||||
|
zmtelemetry.pl
|
||||||
|
|
||||||
|
SUBDIRS = \
|
||||||
|
. \
|
||||||
|
ZoneMinder
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
zmdc.pl.in \
|
||||||
|
zmaudit.pl.in \
|
||||||
|
zmfilter.pl.in \
|
||||||
|
zmtrigger.pl.in \
|
||||||
|
zmx10.pl.in \
|
||||||
|
zmwatch.pl.in \
|
||||||
|
zmpkg.pl.in \
|
||||||
|
zmupdate.pl.in \
|
||||||
|
zmvideo.pl.in \
|
||||||
|
zmcontrol.pl.in \
|
||||||
|
zmtrack.pl.in \
|
||||||
|
zmcamtool.pl.in \
|
||||||
|
zmsystemctl.pl.in \
|
||||||
|
zmtelemtry.pl.in \
|
||||||
|
ZoneMinder/Makefile.PL \
|
||||||
|
ZoneMinder/README \
|
||||||
|
ZoneMinder/Changes \
|
||||||
|
ZoneMinder/META.yml \
|
||||||
|
ZoneMinder/MANIFEST \
|
||||||
|
ZoneMinder/t/ZoneMinder.t \
|
||||||
|
ZoneMinder/lib/ZoneMinder.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Base.pm.in \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Config.pm.in \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Event.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Filter.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Monitor.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Object.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Server.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Storage.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Logger.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/General.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Database.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Memory.pm.in \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Memory/Shared.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/ConfigAdmin.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/ConfigData.pm.in \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Control \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Handle.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Spawning.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Inet.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Unix.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/File.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Channel/Serial.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Connection.pm \
|
||||||
|
ZoneMinder/lib/ZoneMinder/Trigger/Connection/Example.pm \
|
||||||
|
zm.in \
|
||||||
|
zmdbbackup.in \
|
||||||
|
zmdbrestore.in \
|
||||||
|
zmeventdump.in \
|
||||||
|
zmlogrotate.conf.in
|
||||||
|
|
|
@ -129,7 +129,7 @@ BEGIN {
|
||||||
} # end BEGIN
|
} # end BEGIN
|
||||||
|
|
||||||
sub loadConfigFromDB {
|
sub loadConfigFromDB {
|
||||||
print( "Loading config from DB\n" );
|
print( "Loading config from DB" );
|
||||||
my $dbh = ZoneMinder::Database::zmDbConnect();
|
my $dbh = ZoneMinder::Database::zmDbConnect();
|
||||||
if ( !$dbh ) {
|
if ( !$dbh ) {
|
||||||
print( "Error: unable to load options from database: $DBI::errstr\n" );
|
print( "Error: unable to load options from database: $DBI::errstr\n" );
|
||||||
|
@ -160,11 +160,12 @@ sub loadConfigFromDB {
|
||||||
$option_count++;;
|
$option_count++;;
|
||||||
}
|
}
|
||||||
$sth->finish();
|
$sth->finish();
|
||||||
|
print( " $option_count entries\n" );
|
||||||
return( $option_count );
|
return( $option_count );
|
||||||
} # end sub loadConfigFromDB
|
} # end sub loadConfigFromDB
|
||||||
|
|
||||||
sub saveConfigToDB {
|
sub saveConfigToDB {
|
||||||
print( "Saving config to DB\n" );
|
print( "Saving config to DB " . @options . " entries\n" );
|
||||||
my $dbh = ZoneMinder::Database::zmDbConnect();
|
my $dbh = ZoneMinder::Database::zmDbConnect();
|
||||||
if ( !$dbh ) {
|
if ( !$dbh ) {
|
||||||
print( "Error: unable to save options to database: $DBI::errstr\n" );
|
print( "Error: unable to save options to database: $DBI::errstr\n" );
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,411 @@
|
||||||
|
# ==========================================================================
|
||||||
|
#
|
||||||
|
# ZoneMinder HikVision Control Protocol Module
|
||||||
|
# Copyright (C) 2016 Terry Sanders
|
||||||
|
#
|
||||||
|
# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ==========================================================================
|
||||||
|
#
|
||||||
|
# This module contains an implementation of the HikVision ISAPI camera control
|
||||||
|
# protocol
|
||||||
|
#
|
||||||
|
package ZoneMinder::Control::HikVision;
|
||||||
|
|
||||||
|
use 5.006;
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
require ZoneMinder::Base;
|
||||||
|
require ZoneMinder::Control;
|
||||||
|
|
||||||
|
our @ISA = qw(ZoneMinder::Control);
|
||||||
|
|
||||||
|
# ==========================================================================
|
||||||
|
#
|
||||||
|
# HiKVision ISAPI Control Protocol
|
||||||
|
#
|
||||||
|
# Set the following:
|
||||||
|
# ControlAddress: username:password@camera_webaddress:port
|
||||||
|
# ControlDevice: IP Camera Model
|
||||||
|
#
|
||||||
|
# ==========================================================================
|
||||||
|
|
||||||
|
use ZoneMinder::Logger qw(:all);
|
||||||
|
|
||||||
|
use Time::HiRes qw( usleep );
|
||||||
|
|
||||||
|
use LWP::UserAgent;
|
||||||
|
use HTTP::Cookies;
|
||||||
|
|
||||||
|
my $ChannelID = 1; # Usually...
|
||||||
|
my $DefaultFocusSpeed = 50; # Should be between 1 and 100
|
||||||
|
my $DefaultIrisSpeed = 50; # Should be between 1 and 100
|
||||||
|
|
||||||
|
sub new {
|
||||||
|
my $class = shift;
|
||||||
|
my $id = shift;
|
||||||
|
my $self = ZoneMinder::Control->new( $id );
|
||||||
|
bless( $self, $class );
|
||||||
|
srand( time() );
|
||||||
|
return $self;
|
||||||
|
}
|
||||||
|
|
||||||
|
our $AUTOLOAD;
|
||||||
|
|
||||||
|
sub AUTOLOAD {
|
||||||
|
my $self = shift;
|
||||||
|
my $class = ref($self) || croak( "$self not object" );
|
||||||
|
my $name = $AUTOLOAD;
|
||||||
|
$name =~ s/.*://;
|
||||||
|
if ( exists($self->{$name}) )
|
||||||
|
{
|
||||||
|
return( $self->{$name} );
|
||||||
|
}
|
||||||
|
Fatal( "Can't access $name member of object of class $class" );
|
||||||
|
}
|
||||||
|
sub open {
|
||||||
|
my $self = shift;
|
||||||
|
$self->loadMonitor();
|
||||||
|
#
|
||||||
|
# Create a UserAgent for the requests
|
||||||
|
#
|
||||||
|
$self->{UA} = LWP::UserAgent->new();
|
||||||
|
$self->{UA}->cookie_jar( {} );
|
||||||
|
#
|
||||||
|
# Extract the username/password host/port from ControlAddress
|
||||||
|
#
|
||||||
|
my ($user,$pass,$host,$port);
|
||||||
|
if( $self->{Monitor}{ControlAddress} =~ /^([^:]+):([^@]+)@(.+)/ ) { # user:pass@host...
|
||||||
|
$user = $1;
|
||||||
|
$pass = $2;
|
||||||
|
$host = $3;
|
||||||
|
}
|
||||||
|
elsif( $self->{Monitor}{ControlAddress} =~ /^([^@]+)@(.+)/ ) { # user@host...
|
||||||
|
$user = $1;
|
||||||
|
$host = $2;
|
||||||
|
}
|
||||||
|
else { # Just a host
|
||||||
|
$host = $self->{Monitor}{ControlAddress};
|
||||||
|
}
|
||||||
|
# Check if it is a host and port or just a host
|
||||||
|
if( $host =~ /([^:]+):(.+)/ ) {
|
||||||
|
$host = $1;
|
||||||
|
$port = $2;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$port = 80;
|
||||||
|
}
|
||||||
|
# Save the credentials
|
||||||
|
if( defined($user) ) {
|
||||||
|
$self->{UA}->credentials( "$host:$port", $self->{Monitor}{ControlDevice}, $user, $pass );
|
||||||
|
}
|
||||||
|
# Save the base url
|
||||||
|
$self->{BaseURL} = "http://$host:$port";
|
||||||
|
}
|
||||||
|
sub PutCmd {
|
||||||
|
my $self = shift;
|
||||||
|
my $cmd = shift;
|
||||||
|
my $content = shift;
|
||||||
|
my $req = HTTP::Request->new(PUT => "$self->{BaseURL}/$cmd");
|
||||||
|
if(defined($content)) {
|
||||||
|
$req->content_type("application/x-www-form-urlencoded; charset=UTF-8");
|
||||||
|
$req->content('<?xml version="1.0" encoding="UTF-8"?>' . "\n" . $content);
|
||||||
|
}
|
||||||
|
my $res = $self->{UA}->request($req);
|
||||||
|
unless( $res->is_success ) {
|
||||||
|
#
|
||||||
|
# The camera timeouts connections at short intervals. When this
|
||||||
|
# happens the user agent connects again and uses the same auth tokens.
|
||||||
|
# The camera rejects this and asks for another token but the UserAgent
|
||||||
|
# just gives up. Because of this I try the request again and it should
|
||||||
|
# succeed the second time if the credentials are correct.
|
||||||
|
#
|
||||||
|
if($res->code == 401) {
|
||||||
|
$res = $self->{UA}->request($req);
|
||||||
|
unless( $res->is_success ) {
|
||||||
|
#
|
||||||
|
# It has failed authentication. The odds are
|
||||||
|
# that the user has set some paramater incorrectly
|
||||||
|
# so check the realm against the ControlDevice
|
||||||
|
# entry and send a message if different
|
||||||
|
#
|
||||||
|
my $auth = $res->headers->www_authenticate;
|
||||||
|
foreach (split(/\s*,\s*/,$auth)) {
|
||||||
|
if( $_ =~ /^realm\s*=\s*"([^"]+)"/i ) {
|
||||||
|
if( $self->{Monitor}{ControlDevice} ne $1 ) {
|
||||||
|
Info "Control Device appears to be incorrect.";
|
||||||
|
Info "Control Device should be set to \"$1\".";
|
||||||
|
Info "Control Device currently set to \"$self->{Monitor}{ControlDevice}\".";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#
|
||||||
|
# Check for username/password
|
||||||
|
#
|
||||||
|
if( $self->{Monitor}{ControlAddress} =~ /.+:(.+)@.+/ ) {
|
||||||
|
Info "Check username/password is correct";
|
||||||
|
} elsif ( $self->{Monitor}{ControlAddress} =~ /^[^:]+@.+/ ) {
|
||||||
|
Info "No password in Control Address. Should there be one?";
|
||||||
|
} elsif ( $self->{Monitor}{ControlAddress} =~ /^:.+@.+/ ) {
|
||||||
|
Info "Password but no username in Control Address.";
|
||||||
|
} else {
|
||||||
|
Info "Missing username and password in Control Address.";
|
||||||
|
}
|
||||||
|
Fatal $res->status_line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Fatal $res->status_line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#
|
||||||
|
# The move continuous functions all call moveVector
|
||||||
|
# with the direction to move in. This includes zoom
|
||||||
|
#
|
||||||
|
sub moveVector {
|
||||||
|
my $self = shift;
|
||||||
|
my $pandirection = shift;
|
||||||
|
my $tiltdirection = shift;
|
||||||
|
my $zoomdirection = shift;
|
||||||
|
my $params = shift;
|
||||||
|
my $command; # The ISAPI/PTZ command
|
||||||
|
|
||||||
|
# Calculate autostop time
|
||||||
|
my $duration = $self->getParam( $params, 'autostop', 0 ) * $self->{Monitor}{AutoStopTimeout};
|
||||||
|
# Change from microseconds to milliseconds
|
||||||
|
$duration = int($duration/1000);
|
||||||
|
my $momentxml;
|
||||||
|
if( $duration ) {
|
||||||
|
$momentxml = "<Momentary><duration>$duration</duration></Momentary>";
|
||||||
|
$command = "ISAPI/PTZCtrl/channels/$ChannelID/momentary";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$momentxml = "";
|
||||||
|
$command = "ISAPI/PTZCtrl/channels/$ChannelID/continuous";
|
||||||
|
}
|
||||||
|
# Calculate movement speeds
|
||||||
|
my $x = $pandirection * $self->getParam( $params, 'panspeed', 0 );
|
||||||
|
my $y = $tiltdirection * $self->getParam( $params, 'tiltspeed', 0 );
|
||||||
|
my $z = $zoomdirection * $self->getParam( $params, 'speed', 0 );
|
||||||
|
# Create the XML
|
||||||
|
my $xml = "<PTZData><pan>$x</pan><tilt>$y</tilt><zoom>$z</zoom>$momentxml</PTZData>";
|
||||||
|
# Send it to the camera
|
||||||
|
$self->PutCmd($command,$xml);
|
||||||
|
}
|
||||||
|
sub moveStop { $_[0]->moveVector( 0, 0, 0, splice(@_,1)); }
|
||||||
|
sub moveConUp { $_[0]->moveVector( 0, 1, 0, splice(@_,1)); }
|
||||||
|
sub moveConUpRight { $_[0]->moveVector( 1, 1, 0, splice(@_,1)); }
|
||||||
|
sub moveConRight { $_[0]->moveVector( 1, 0, 0, splice(@_,1)); }
|
||||||
|
sub moveConDownRight { $_[0]->moveVector( 1, -1, 0, splice(@_,1)); }
|
||||||
|
sub moveConDown { $_[0]->moveVector( 0, -1, 0, splice(@_,1)); }
|
||||||
|
sub moveConDownLeft { $_[0]->moveVector( -1, -1, 0, splice(@_,1)); }
|
||||||
|
sub moveConLeft { $_[0]->moveVector( -1, 0, 0, splice(@_,1)); }
|
||||||
|
sub moveConUpLeft { $_[0]->moveVector( -1, 1, 0, splice(@_,1)); }
|
||||||
|
sub zoomConTele { $_[0]->moveVector( 0, 0, 1, splice(@_,1)); }
|
||||||
|
sub zoomConWide { $_[0]->moveVector( 0, 0,-1, splice(@_,1)); }
|
||||||
|
#
|
||||||
|
# Presets including Home set and clear
|
||||||
|
#
|
||||||
|
sub presetGoto {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
my $preset = $self->getParam($params,'preset');
|
||||||
|
$self->PutCmd("ISAPI/PTZCtrl/channels/$ChannelID/presets/$preset/goto");
|
||||||
|
}
|
||||||
|
sub presetSet {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
my $preset = $self->getParam($params,'preset');
|
||||||
|
my $xml = "<PTZPreset><id>$preset</id></PTZPreset>";
|
||||||
|
$self->PutCmd("ISAPI/PTZCtrl/channels/$ChannelID/presets/$preset",$xml);
|
||||||
|
}
|
||||||
|
sub presetHome {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
$self->PutCmd("ISAPI/PTZCtrl/channels/$ChannelID/homeposition/goto");
|
||||||
|
}
|
||||||
|
#
|
||||||
|
# Focus controls all call Focus with a +/- speed
|
||||||
|
#
|
||||||
|
sub Focus {
|
||||||
|
my $self = shift;
|
||||||
|
my $speed = shift;
|
||||||
|
my $xml = "<FocusData><focus>$speed</focus></FocusData>";
|
||||||
|
$self->PutCmd("ISAPI/System/Video/inputs/channels/$ChannelID/focus",$xml);
|
||||||
|
}
|
||||||
|
sub focusConNear {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
|
||||||
|
# Calculate autostop time
|
||||||
|
my $duration = $self->getParam( $params, 'autostop', 0 ) * $self->{Monitor}{AutoStopTimeout};
|
||||||
|
# Get the focus speed
|
||||||
|
my $speed = $self->getParam( $params, 'speed', $DefaultFocusSpeed );
|
||||||
|
$self->Focus(-$speed);
|
||||||
|
if($duration) {
|
||||||
|
usleep($duration);
|
||||||
|
$self->moveStop($params);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sub Near {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
$self->Focus(-$DefaultFocusSpeed);
|
||||||
|
}
|
||||||
|
sub focusAbsNear {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
|
||||||
|
# Get the focus speed
|
||||||
|
my $speed = $self->getParam( $params, 'speed', $DefaultFocusSpeed );
|
||||||
|
$self->Focus(-$speed);
|
||||||
|
}
|
||||||
|
sub focusRelNear {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
# Get the focus speed
|
||||||
|
my $speed = $self->getParam( $params, 'speed', $DefaultFocusSpeed );
|
||||||
|
$self->Focus(-$speed);
|
||||||
|
}
|
||||||
|
sub focusConFar {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
|
||||||
|
# Calculate autostop time
|
||||||
|
my $duration = $self->getParam( $params, 'autostop', 0 ) * $self->{Monitor}{AutoStopTimeout};
|
||||||
|
# Get the focus speed
|
||||||
|
my $speed = $self->getParam( $params, 'speed', $DefaultFocusSpeed );
|
||||||
|
$self->Focus($speed);
|
||||||
|
if($duration) {
|
||||||
|
usleep($duration);
|
||||||
|
$self->moveStop($params);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sub Far {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
$self->Focus($DefaultFocusSpeed);
|
||||||
|
}
|
||||||
|
sub focusAbsFar {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
|
||||||
|
# Get the focus speed
|
||||||
|
my $speed = $self->getParam( $params, 'speed', $DefaultFocusSpeed );
|
||||||
|
$self->Focus($speed);
|
||||||
|
}
|
||||||
|
sub focusRelFar {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
|
||||||
|
# Get the focus speed
|
||||||
|
my $speed = $self->getParam( $params, 'speed', $DefaultFocusSpeed );
|
||||||
|
$self->Focus($speed);
|
||||||
|
}
|
||||||
|
#
|
||||||
|
# Iris controls all call Iris with a +/- speed
|
||||||
|
#
|
||||||
|
sub Iris {
|
||||||
|
my $self = shift;
|
||||||
|
my $speed = shift;
|
||||||
|
|
||||||
|
my $xml = "<IrisData><iris>$speed</iris></IrisData>";
|
||||||
|
$self->PutCmd("ISAPI/System/Video/inputs/channels/$ChannelID/iris",$xml);
|
||||||
|
}
|
||||||
|
sub irisConClose {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
|
||||||
|
# Calculate autostop time
|
||||||
|
my $duration = $self->getParam( $params, 'autostop', 0 ) * $self->{Monitor}{AutoStopTimeout};
|
||||||
|
# Get the iris speed
|
||||||
|
my $speed = $self->getParam( $params, 'speed', $DefaultIrisSpeed );
|
||||||
|
$self->Iris(-$speed);
|
||||||
|
if($duration) {
|
||||||
|
usleep($duration);
|
||||||
|
$self->moveStop($params);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sub Close {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
|
||||||
|
$self->Iris(-$DefaultIrisSpeed);
|
||||||
|
}
|
||||||
|
sub irisAbsClose {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
|
||||||
|
# Get the iris speed
|
||||||
|
my $speed = $self->getParam( $params, 'speed', $DefaultIrisSpeed );
|
||||||
|
$self->Iris(-$speed);
|
||||||
|
}
|
||||||
|
sub irisRelClose {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
|
||||||
|
# Get the iris speed
|
||||||
|
my $speed = $self->getParam( $params, 'speed', $DefaultIrisSpeed );
|
||||||
|
$self->Iris(-$speed);
|
||||||
|
}
|
||||||
|
sub irisConOpen {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
|
||||||
|
# Calculate autostop time
|
||||||
|
my $duration = $self->getParam( $params, 'autostop', 0 ) * $self->{Monitor}{AutoStopTimeout};
|
||||||
|
# Get the iris speed
|
||||||
|
my $speed = $self->getParam( $params, 'speed', $DefaultIrisSpeed );
|
||||||
|
$self->Iris($speed);
|
||||||
|
if($duration) {
|
||||||
|
usleep($duration);
|
||||||
|
$self->moveStop($params);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sub Open {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
|
||||||
|
$self->Iris($DefaultIrisSpeed);
|
||||||
|
}
|
||||||
|
sub irisAbsOpen {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
|
||||||
|
# Get the iris speed
|
||||||
|
my $speed = $self->getParam( $params, 'speed', $DefaultIrisSpeed );
|
||||||
|
$self->Iris($speed);
|
||||||
|
}
|
||||||
|
sub irisRelOpen {
|
||||||
|
my $self = shift;
|
||||||
|
my $params = shift;
|
||||||
|
|
||||||
|
# Get the iris speed
|
||||||
|
my $speed = $self->getParam( $params, 'speed', $DefaultIrisSpeed );
|
||||||
|
$self->Iris($speed);
|
||||||
|
}
|
||||||
|
#
|
||||||
|
# reset (reboot) the device
|
||||||
|
#
|
||||||
|
sub reset {
|
||||||
|
my $self = shift;
|
||||||
|
|
||||||
|
$self->PutCmd("ISAPI/System/reboot");
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
|
@ -1,27 +1,34 @@
|
||||||
|
# ==========================================================================
|
||||||
|
#
|
||||||
|
# ZoneMinder SunEyes SP-P1802SWPTZ IP Control Protocol Module, $Date: 2017-03-19 23:00:00 +1000 (Sat, 19 March 2017) $, $Revision: 0002 $
|
||||||
|
# Copyright (C) 2001-2008 Philip Coombes
|
||||||
|
# Modified for use with Foscam FI8918W IP Camera by Dave Harris
|
||||||
|
# Modified Feb 2011 by Howard Durdle (http://durdl.es/x) to:
|
||||||
|
# fix horizontal panning, add presets and IR on/off
|
||||||
|
# use Control Device field to pass username and password
|
||||||
|
# Modified May 2014 by Arun Horne (http://arunhorne.co.uk) to:
|
||||||
|
# use HTTP basic auth as required by firmware 11.37.x.x upward
|
||||||
# Modified on Sep 28 2015 by Bobby Billingsley
|
# Modified on Sep 28 2015 by Bobby Billingsley
|
||||||
# Changes made
|
# Changes made
|
||||||
# - Copied FI8918W.pm to SPP1802SWPTZ.pm
|
# - Copied FI8918W.pm to SPP1802SWPTZ.pm
|
||||||
# - modified to control a SunEyes SP-P1802SWPTZ
|
# - modified to control a SunEyes SP-P1802SWPTZ
|
||||||
|
# Modified on 13 March 2017 by Steve Gilvarry
|
||||||
# ==========================================================================
|
# -Address license and copyright issues
|
||||||
# ZoneMinder SunEyes SP-P1802SWPTZ IP Control Protocol Module
|
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# This program is free software; you can redistribute it and/or
|
||||||
# the terms of the GNU General Public License as published by the Free Software
|
# modify it under the terms of the GNU General Public License
|
||||||
# Foundation; either version 2 of the License, or (at your option) any later
|
# as published by the Free Software Foundation; either version 2
|
||||||
# version.
|
# of the License, or (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
# This program is distributed in the hope that it will be useful,
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
#
|
#
|
||||||
# ==========================================================================
|
|
||||||
#
|
|
||||||
# This module contains the implementation of the SunEyes SP-P1802SWPTZ IP
|
# This module contains the implementation of the SunEyes SP-P1802SWPTZ IP
|
||||||
# camera control protocol
|
# camera control protocol
|
||||||
#
|
#
|
||||||
|
|
|
@ -75,9 +75,11 @@ sub zmDbConnect {
|
||||||
if ( $force ) {
|
if ( $force ) {
|
||||||
zmDbDisconnect();
|
zmDbDisconnect();
|
||||||
}
|
}
|
||||||
if ( !defined( $dbh ) ) {
|
my $options = shift;
|
||||||
|
|
||||||
|
if ( ( ! defined( $dbh ) ) or ! $dbh->ping() ) {
|
||||||
|
my ( $host, $portOrSocket ) = ( $ZoneMinder::Config::Config{ZM_DB_HOST} =~ /^([^:]+)(?::(.+))?$/ );
|
||||||
my $socket;
|
my $socket;
|
||||||
my ( $host, $portOrSocket ) = ( $Config{ZM_DB_HOST} =~ /^([^:]+)(?::(.+))?$/ );
|
|
||||||
|
|
||||||
if ( defined($portOrSocket) ) {
|
if ( defined($portOrSocket) ) {
|
||||||
if ( $portOrSocket =~ /^\// ) {
|
if ( $portOrSocket =~ /^\// ) {
|
||||||
|
@ -89,7 +91,7 @@ sub zmDbConnect {
|
||||||
$socket = ";host=".$Config{ZM_DB_HOST};
|
$socket = ";host=".$Config{ZM_DB_HOST};
|
||||||
}
|
}
|
||||||
$dbh = DBI->connect( "DBI:mysql:database=".$Config{ZM_DB_NAME}
|
$dbh = DBI->connect( "DBI:mysql:database=".$Config{ZM_DB_NAME}
|
||||||
.$socket
|
.$socket . ($options?';'.join(';', map { $_.'='.$$options{$_} } keys %{$options} ) : '' )
|
||||||
, $Config{ZM_DB_USER}
|
, $Config{ZM_DB_USER}
|
||||||
, $Config{ZM_DB_PASS}
|
, $Config{ZM_DB_PASS}
|
||||||
);
|
);
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue