Merge branch 'master' of github.com:ZoneMinder/ZoneMinder
This commit is contained in:
commit
da764a605b
|
@ -141,14 +141,17 @@ set(ZM_PERL_SEARCH_PATH "" CACHE PATH
|
||||||
where ZM_PERL_MM_PARMS has been modified such that ZoneMinder's Perl modules are
|
where ZM_PERL_MM_PARMS has been modified such that ZoneMinder's Perl modules are
|
||||||
installed outside Perl's default search path.")
|
installed outside Perl's default search path.")
|
||||||
set(ZM_TARGET_DISTRO "" CACHE STRING
|
set(ZM_TARGET_DISTRO "" CACHE STRING
|
||||||
"Build ZoneMinder for a specific distribution. Currently, valid names are: f21, f20, el6, OS13")
|
"Build ZoneMinder for a specific distribution. Currently, valid names are: f21, f22, el6, el7, OS13")
|
||||||
|
|
||||||
# Reassign some variables if a target distro has been specified
|
# Reassign some variables if a target distro has been specified
|
||||||
if((ZM_TARGET_DISTRO STREQUAL "f21") OR (ZM_TARGET_DISTRO STREQUAL "f20"))
|
if((ZM_TARGET_DISTRO STREQUAL "f21") OR (ZM_TARGET_DISTRO STREQUAL "f22"))
|
||||||
set(ZM_RUNDIR "/var/run/zoneminder")
|
set(ZM_RUNDIR "/var/run/zoneminder")
|
||||||
set(ZM_SOCKDIR "/var/lib/zoneminder/sock")
|
set(ZM_SOCKDIR "/var/lib/zoneminder/sock")
|
||||||
set(ZM_TMPDIR "/var/lib/zoneminder/temp")
|
set(ZM_TMPDIR "/var/lib/zoneminder/temp")
|
||||||
set(ZM_LOGDIR "/var/log/zoneminder")
|
set(ZM_LOGDIR "/var/log/zoneminder")
|
||||||
|
set(ZM_CONFIG_DIR "/etc/zm")
|
||||||
|
set(ZM_WEBDIR "/usr/share/zoneminder/www")
|
||||||
|
set(ZM_CGIDIR "/usr/libexec/zoneminder/cgi-bin")
|
||||||
elseif(ZM_TARGET_DISTRO STREQUAL "el6")
|
elseif(ZM_TARGET_DISTRO STREQUAL "el6")
|
||||||
set(ZM_RUNDIR "/var/run/zoneminder")
|
set(ZM_RUNDIR "/var/run/zoneminder")
|
||||||
set(ZM_SOCKDIR "/var/lib/zoneminder/sock")
|
set(ZM_SOCKDIR "/var/lib/zoneminder/sock")
|
||||||
|
@ -173,7 +176,7 @@ elseif(ZM_TARGET_DISTRO STREQUAL "OS13")
|
||||||
set(ZM_WEB_GROUP "www")
|
set(ZM_WEB_GROUP "www")
|
||||||
set(ZM_WEBDIR "/srv/www/htdocs/zoneminder")
|
set(ZM_WEBDIR "/srv/www/htdocs/zoneminder")
|
||||||
set(ZM_CGIDIR "/srv/www/cgi-bin")
|
set(ZM_CGIDIR "/srv/www/cgi-bin")
|
||||||
endif((ZM_TARGET_DISTRO STREQUAL "f21") OR (ZM_TARGET_DISTRO STREQUAL "f20"))
|
endif((ZM_TARGET_DISTRO STREQUAL "f21") OR (ZM_TARGET_DISTRO STREQUAL "f22"))
|
||||||
|
|
||||||
# Required for certain checks to work
|
# Required for certain checks to work
|
||||||
set(CMAKE_EXTRA_INCLUDE_FILES
|
set(CMAKE_EXTRA_INCLUDE_FILES
|
||||||
|
@ -688,13 +691,13 @@ if(ZM_ONVIF)
|
||||||
endif(ZM_ONVIF)
|
endif(ZM_ONVIF)
|
||||||
|
|
||||||
# Process distro subdirectories
|
# Process distro subdirectories
|
||||||
if((ZM_TARGET_DISTRO STREQUAL "f21") OR (ZM_TARGET_DISTRO STREQUAL "f20"))
|
if((ZM_TARGET_DISTRO STREQUAL "f21") OR (ZM_TARGET_DISTRO STREQUAL "f22"))
|
||||||
add_subdirectory(distros/fedora)
|
add_subdirectory(distros/fedora)
|
||||||
elseif((ZM_TARGET_DISTRO STREQUAL "el6") OR (ZM_TARGET_DISTRO STREQUAL "el7"))
|
elseif((ZM_TARGET_DISTRO STREQUAL "el6") OR (ZM_TARGET_DISTRO STREQUAL "el7"))
|
||||||
add_subdirectory(distros/redhat)
|
add_subdirectory(distros/redhat)
|
||||||
elseif(ZM_TARGET_DISTRO STREQUAL "OS13")
|
elseif(ZM_TARGET_DISTRO STREQUAL "OS13")
|
||||||
add_subdirectory(distros/opensuse)
|
add_subdirectory(distros/opensuse)
|
||||||
endif((ZM_TARGET_DISTRO STREQUAL "f21") OR (ZM_TARGET_DISTRO STREQUAL "f20"))
|
endif((ZM_TARGET_DISTRO STREQUAL "f21") OR (ZM_TARGET_DISTRO STREQUAL "f22"))
|
||||||
|
|
||||||
# Print optional libraries detection status
|
# Print optional libraries detection status
|
||||||
message(STATUS "Optional libraries found:${optlibsfound}")
|
message(STATUS "Optional libraries found:${optlibsfound}")
|
||||||
|
@ -715,7 +718,7 @@ endif(zmconfgen_result EQUAL 0)
|
||||||
if(NOT EXISTS "${ZM_CONFIG_DIR}/zm.conf")
|
if(NOT EXISTS "${ZM_CONFIG_DIR}/zm.conf")
|
||||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zm.conf" DESTINATION "${ZM_CONFIG_DIR}")
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zm.conf" DESTINATION "${ZM_CONFIG_DIR}")
|
||||||
else(NOT EXISTS "${ZM_CONFIG_DIR}/zm.conf")
|
else(NOT EXISTS "${ZM_CONFIG_DIR}/zm.conf")
|
||||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zm.conf.new" DESTINATION "${ZM_CONFIG_DIR}")
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zm.conf" DESTINATION "${ZM_CONFIG_DIR}" RENAME "zm.conf.new")
|
||||||
endif(NOT EXISTS "${ZM_CONFIG_DIR}/zm.conf")
|
endif(NOT EXISTS "${ZM_CONFIG_DIR}/zm.conf")
|
||||||
|
|
||||||
# Uninstall target
|
# Uninstall target
|
||||||
|
|
5
INSTALL
5
INSTALL
|
@ -92,8 +92,9 @@ NOTE: The database server, database name, user and password can be different and
|
||||||
7) Populate the zoneminder database using the script zm_create.sql. This should be found in <prefix>/share/zoneminder/db or in the project/db directory.
|
7) Populate the zoneminder database using the script zm_create.sql. This should be found in <prefix>/share/zoneminder/db or in the project/db directory.
|
||||||
|
|
||||||
8) Create an apache virtual host for ZoneMinder. Make sure to use the same paths as ZM_WEBDIR and ZM_CGIDIR in /etc/zm.conf
|
8) Create an apache virtual host for ZoneMinder. Make sure to use the same paths as ZM_WEBDIR and ZM_CGIDIR in /etc/zm.conf
|
||||||
9) Create other config if desired (e.g. rsyslog, logrotate and such). Some of this can be found in <prefix>/share/zoneminder/misc or project/misc directory
|
9) Verify date.timezone is set to your timezone. This parameter is often found inside the system php.ini file. Consult your distribution's documentation for the proper way to set this value.
|
||||||
10) Setup an appropriate startup script for your system. Two generic startup scripts have been provided, a legacy Sys V Init script and a Systemd service file.
|
10) Create other config if desired (e.g. rsyslog, logrotate and such). Some of this can be found in <prefix>/share/zoneminder/misc or project/misc directory
|
||||||
|
11) Setup an appropriate startup script for your system. Two generic startup scripts have been provided, a legacy Sys V Init script and a Systemd service file.
|
||||||
|
|
||||||
*Sys V Init Setup*
|
*Sys V Init Setup*
|
||||||
- Copy the sys v init script /scripts/zm from the build folder to /etc/init.
|
- Copy the sys v init script /scripts/zm from the build folder to /etc/init.
|
||||||
|
|
|
@ -140,8 +140,6 @@ root@host:~# gdebi /root/zoneminder_1.26.4-1_amd64.deb;
|
||||||
|
|
||||||
#### Fedora / CentOS / RHEL
|
#### Fedora / CentOS / RHEL
|
||||||
|
|
||||||
***DRAFT* ** Needs Testing
|
|
||||||
|
|
||||||
##### Background
|
##### Background
|
||||||
The following method documents how to build ZoneMinder into an RPM package, compatible with Fedora, Redhat, CentOS, and other compatible clones. This is exactly how the RPMS in zmrepo are built.
|
The following method documents how to build ZoneMinder into an RPM package, compatible with Fedora, Redhat, CentOS, and other compatible clones. This is exactly how the RPMS in zmrepo are built.
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ command="$ZM_PATH_BIN/zmpkg.pl"
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
echo -n "Starting $prog: "
|
echo -n "Starting $prog: "
|
||||||
|
export TZ=:/etc/localtime
|
||||||
mkdir -p $RUNDIR && chown www-data:www-data $RUNDIR
|
mkdir -p $RUNDIR && chown www-data:www-data $RUNDIR
|
||||||
mkdir -p $TMPDIR && chown www-data:www-data $TMPDIR
|
mkdir -p $TMPDIR && chown www-data:www-data $TMPDIR
|
||||||
$command start
|
$command start
|
||||||
|
|
|
@ -23,6 +23,7 @@ command="$ZM_PATH_BIN/zmpkg.pl"
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
echo -n "Starting $prog: "
|
echo -n "Starting $prog: "
|
||||||
|
export TZ=:/etc/localtime
|
||||||
mkdir -p $RUNDIR $TMPDIR && chown www-data:www-data $RUNDIR $TMPDIR
|
mkdir -p $RUNDIR $TMPDIR && chown www-data:www-data $RUNDIR $TMPDIR
|
||||||
$command start
|
$command start
|
||||||
RETVAL=$?
|
RETVAL=$?
|
||||||
|
|
|
@ -1,5 +1,14 @@
|
||||||
# CMakeLists.txt for the Fedora Target Distro.
|
# CMakeLists.txt for the Fedora Target Distro.
|
||||||
|
|
||||||
|
# Display a message to show the Fedora build options are being processed.
|
||||||
|
message([STATUS] "Starting Fedora Build Options" ...)
|
||||||
|
|
||||||
|
# Create the ZoneMinder Apache config file
|
||||||
|
configure_file(zoneminder.service.in ${CMAKE_CURRENT_SOURCE_DIR}/zoneminder.service @ONLY)
|
||||||
|
configure_file(zoneminder.conf.in ${CMAKE_CURRENT_SOURCE_DIR}/zoneminder.conf @ONLY)
|
||||||
|
configure_file(zoneminder.tmpfiles.in ${CMAKE_CURRENT_SOURCE_DIR}/zoneminder.tmpfiles @ONLY)
|
||||||
|
configure_file(zoneminder.logrotate.in ${CMAKE_CURRENT_SOURCE_DIR}/zoneminder.logrotate @ONLY)
|
||||||
|
|
||||||
# Download jscalendar & move files into position
|
# Download jscalendar & move files into position
|
||||||
file(DOWNLOAD http://downloads.sourceforge.net/jscalendar/jscalendar-1.0.zip ${CMAKE_CURRENT_SOURCE_DIR}/jscalendar-1.0.zip STATUS download_jsc)
|
file(DOWNLOAD http://downloads.sourceforge.net/jscalendar/jscalendar-1.0.zip ${CMAKE_CURRENT_SOURCE_DIR}/jscalendar-1.0.zip STATUS download_jsc)
|
||||||
if(download_jsc EQUAL 0)
|
if(download_jsc EQUAL 0)
|
||||||
|
|
|
@ -1,113 +1,145 @@
|
||||||
|
What's New
|
||||||
|
==========
|
||||||
|
|
||||||
|
1. The Apache ScriptAlias has been changed from "/cgi-bin/zm/zms" to
|
||||||
|
"/cgi-bin-zm/zms". This has been to done to avoid this bug:
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=973067
|
||||||
|
|
||||||
|
IMPORTANT: ZoneMinder will not update this value during an upgrade. You must
|
||||||
|
manually update ZM_PATH_ZMS yourself under Options. This does not affect
|
||||||
|
new installs.
|
||||||
|
|
||||||
|
2. The ZoneMinder config file, zm.conf, has been moved under /etc/zm.
|
||||||
|
|
||||||
|
3. The ZoneMinder mysql account now requires "Create" permission. This change
|
||||||
|
must be done manually before ZoneMinder will run. See the installation steps
|
||||||
|
below.
|
||||||
|
|
||||||
|
4. A new permission group called "Groups" has been added. This allows the
|
||||||
|
system administrator to assign "view", "edit", or "none" permission to
|
||||||
|
normal users, without giving them access to the rest of the ZoneMinder
|
||||||
|
system. During an upgrade, existing accounts will default to a Groups
|
||||||
|
permission of "none".
|
||||||
|
|
||||||
|
5. This package now requires the HTTPS protocol to access the web portal.
|
||||||
|
Requests using HTTP will auto-redirect to HTTPS. See README.https for
|
||||||
|
more information.
|
||||||
|
|
||||||
|
6. This package ships with the new ZoneMinder API enabled.
|
||||||
|
|
||||||
New installs
|
New installs
|
||||||
============
|
============
|
||||||
|
|
||||||
1. Unless you are already using the MySQL server or you are running it
|
1. This package supports either community-mysql-server or mariadb-server with
|
||||||
remotely you will need to ensure that the server is installed and secured:
|
mariadb being the preferred choice. Unless you are already using MariaDB or
|
||||||
|
Mysql server, you need to ensure that the server is configured to start
|
||||||
|
during boot and properly secured by running:
|
||||||
|
|
||||||
sudo yum install community-mysql-server
|
sudo yum install mariadb-server
|
||||||
|
sudo systemctl enable mariadb
|
||||||
sudo systemctl enable mysqld
|
sudo systemctl start mariadb.service
|
||||||
|
|
||||||
sudo systemctl start mysqld.service
|
|
||||||
|
|
||||||
mysql_secure_installation
|
mysql_secure_installation
|
||||||
|
|
||||||
NOTE: The Fedora team currently recommends mysql-community over mariadb
|
2. Assuming the database is local and using the password for the root account
|
||||||
|
set during the previous step, you will need to create the ZoneMinder
|
||||||
2. Using the password for the root account set during the previous step, you
|
database and configure a database account for ZoneMinder to use:
|
||||||
will need to create the ZoneMinder database, assuming your database server
|
|
||||||
is local:
|
|
||||||
|
|
||||||
mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql
|
|
||||||
mysqladmin -uroot -p reload
|
|
||||||
|
|
||||||
3. The database needs a user. One is not created by default because this would
|
|
||||||
introduce an obvious security issue. The following should set this up:
|
|
||||||
|
|
||||||
|
mysql -u root -p < /usr/share/zoneminder/db/zm_create.sql
|
||||||
mysql -u root -p
|
mysql -u root -p
|
||||||
grant select,insert,update,delete,lock tables,alter,create
|
mysql> grant select,insert,update,delete,lock tables,alter,create
|
||||||
on zm.* to 'zmuser'@localhost identified by 'zmpass';
|
on zm.* to 'zmuser'@localhost identified by 'zmpass';
|
||||||
|
mysql> exit;
|
||||||
|
mysqladmin -u root -p reload
|
||||||
|
|
||||||
Obviously, change at least zmpass to an actual, secure password or
|
The database account credentials, zmuser/zmpass, are arbitrary. Set them to
|
||||||
passphrase. You can change zmuser as well if you like.
|
anything that suits your envinroment.
|
||||||
|
|
||||||
4. Edit /etc/zm.conf and, at the bottom, change ZM_DB_PASS and perhaps
|
3. If you have chosen to change the zoneminder database account credentials to
|
||||||
ZM_DB_USER to match.
|
something other than zmuser/zmpass, you must now edit /etc/zm/zm.conf.
|
||||||
|
Change ZM_DB_USER and ZM_DB_PASS to the values you created in the previous
|
||||||
|
step.
|
||||||
|
|
||||||
5. Edit /etc/php.ini, uncomment the date.timezone line, and add your local
|
4. Edit /etc/php.ini, uncomment the date.timezone line, and add your local
|
||||||
timezone. For whatever reason, PHP will complain loudly if this is not set,
|
timezone. PHP will complain loudly if this is not set, or if it is set
|
||||||
or if it is set incorrectly, and these complaints will show up in the
|
incorrectly, and these complaints will show up in the zoneminder logging
|
||||||
zoneminder logging system as errors.
|
system as errors.
|
||||||
|
|
||||||
If you are not sure of the proper timezone specification to use, look at
|
If you are not sure of the proper timezone specification to use, look at
|
||||||
http://php.net/date.timezone
|
http://php.net/date.timezone
|
||||||
|
|
||||||
6. This package probably does not work with SELinux enabled at the moment. It
|
5. Disable SELinux
|
||||||
may be necessary to disable SELinux for httpd, or even completely for
|
|
||||||
ZoneMinder to function. This will be addressed in a later release. Run
|
We currently do not have the resources to create and maintain an accurate
|
||||||
|
SELinux policy for ZoneMinder on Fedora. We will gladly accept pull
|
||||||
|
reqeusts from anyone who wishes to do the work. In the meantime, SELinux
|
||||||
|
will need to be disabled or put into permissive mode.
|
||||||
|
|
||||||
|
To immediately disbale SELinux for the current seesion, issue the following
|
||||||
|
from the command line:
|
||||||
|
|
||||||
sudo setenforce 0
|
sudo setenforce 0
|
||||||
|
|
||||||
for testing, and edit /etc/sysconfig/selinux to disable it at boot time.
|
To permanently disable SELinux, edit /etc/selinux/config and change the
|
||||||
|
SELINUX line from "enforcing" to "disabled". This change will take
|
||||||
|
effect after a reboot.
|
||||||
|
|
||||||
7. IMPORTANT: Edit /etc/httpd/conf.d/zoneminder.conf and/or
|
|
||||||
/etc/httpd/conf/httpd.conf.
|
|
||||||
|
|
||||||
The httpd.conf file included with this version of Fedora processes the conf.d
|
6. Now start the web server:
|
||||||
folder after the default ScriptAlias directive in the httpd.conf file.
|
|
||||||
Previously, the conf.d folder was processed before the default ScriptAlias
|
|
||||||
directive. This causes a ScriptAlias overlap and breaks Zoneminder's
|
|
||||||
streaming abilities.
|
|
||||||
|
|
||||||
Reference: http://httpd.apache.org/docs/2.4/mod/mod_alias.html#order
|
sudo systemctl enable httpd
|
||||||
Bug Report: https://bugzilla.redhat.com/show_bug.cgi?id=973067
|
sudo systemctl start httpd
|
||||||
|
|
||||||
WORKAROUND #1
|
7. Now start zoneminder:
|
||||||
If you are running zoneminder on a dedicated server then the simplest
|
|
||||||
solution may be to simply comment out the line in httpd.conf that reads:
|
|
||||||
|
|
||||||
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
|
sudo systemctl enable zoneminder
|
||||||
|
sudo systemctl start zoneminder
|
||||||
WORKAROUND #2
|
|
||||||
If you need both the default cgi-bin folder & the zoneminder cgi-bin folder
|
|
||||||
then a solution might be to move the following line before the default
|
|
||||||
ScriptAlias directive in the httpd.conf file:
|
|
||||||
|
|
||||||
IncludeOptional conf.d/*.conf
|
|
||||||
|
|
||||||
8. Now start the web server:
|
|
||||||
|
|
||||||
sudo systemctl enable httpd.service
|
|
||||||
sudo systemctl start httpd.service
|
|
||||||
|
|
||||||
9. Now start zoneminder:
|
|
||||||
|
|
||||||
sudo systemctl enable zoneminder.service
|
|
||||||
sudo systemctl start zoneminder.service
|
|
||||||
|
|
||||||
Upgrades
|
Upgrades
|
||||||
========
|
========
|
||||||
|
|
||||||
1. Update /etc/zm.conf. Check for any new settings and update the version
|
1. Verify /etc/zm/zm.conf.
|
||||||
information. Comparing /etc/zm.conf and /etc/zm.conf.rpmnew should help to
|
|
||||||
do this.
|
|
||||||
|
|
||||||
2. Add additional permissions to the zmuser account:
|
If zm.conf was manually edited before running the upgrade, the installation
|
||||||
|
may not overwrite it. In this case, it will create the file
|
||||||
|
/etc/zm/zm.conf.rpmnew.
|
||||||
|
|
||||||
|
For example, this will happen if you are using database account credentials
|
||||||
|
other than zmuser/zmpass.
|
||||||
|
|
||||||
|
Compare /etc/zm/zm.conf to /etc/zm/zm.conf.rpmnew. Verify that zm.conf
|
||||||
|
contains any new config settings that may be in zm.conf.rpmnew.
|
||||||
|
|
||||||
|
2. Verify permissions of the zmuser account.
|
||||||
|
|
||||||
|
Over time, the database account permissions required for normal operation
|
||||||
|
have changed. Verify the zmuser database account has been granted select,
|
||||||
|
insert, update, delete, lock tables, alter, and create permission to the
|
||||||
|
ZoneMinder database:
|
||||||
|
|
||||||
mysql -u root -p
|
mysql -u root -p
|
||||||
grant lock tables,alter,create on zm.* to
|
mysql> show grants for zmuser@localhost;
|
||||||
'zmuser'@localhost identified by 'zmpass';
|
mysql> exit;
|
||||||
|
|
||||||
Since this is an upgrade, the assumption is that the zmuser account already
|
See step 2 of the Installation section to add missing permissions.
|
||||||
has select, insert, update, and delete permission.
|
|
||||||
|
|
||||||
3. You will need to upgrade the ZoneMinder database as described in the
|
3. Verify the ZoneMinder Apache configuration file in the folder
|
||||||
manual. Only if the previous step was succesful, may you run zmupdate like
|
/etc/httpd/conf.d. You will have a file called "zoneminder.conf" and there
|
||||||
so:
|
may also be a file called "zoneminder.conf.rpmnew". If the rpmnew file
|
||||||
|
exists, inspect it and merge anything new in that file with zoneminder.conf.
|
||||||
|
|
||||||
|
4. Upgrade the database before starting ZoneMinder.
|
||||||
|
|
||||||
|
Most upgrades can be performed by executing the following command:
|
||||||
|
|
||||||
sudo zmupdate.pl --version=<from version>
|
sudo zmupdate.pl
|
||||||
|
|
||||||
|
Recent versions of ZoneMinder don't require any parameters added to the
|
||||||
If unsure then run it this way:
|
zmupdate command. However, if ZoneMinder complains, you may need to call
|
||||||
|
zmupdate in the following manner:
|
||||||
|
|
||||||
sudo zmupdate.pl --user=root --pass=<mysql_root_pwd> --version=<from version>
|
sudo zmupdate.pl --user=root --pass=<mysql_root_pwd> --version=<from version>
|
||||||
|
|
||||||
|
5. Now start zoneminder:
|
||||||
|
|
||||||
|
sudo systemctl start zoneminder
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../redhat/README.https
|
|
@ -0,0 +1 @@
|
||||||
|
../redhat/zoneminder.el7.conf.in
|
|
@ -127,7 +127,7 @@ fi
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%doc AUTHORS COPYING README.md distros/fedora/README.Fedora distros/fedora/jscalendar-doc
|
%doc AUTHORS COPYING README.md distros/fedora/README.Fedora distros/fedora/jscalendar-doc
|
||||||
%config %attr(640,root,%{zmgid_final}) /etc/zm.conf
|
%config %attr(640,root,%{zmgid_final}) /etc/zm/zm.conf
|
||||||
%config(noreplace) %attr(644,root,root) /etc/httpd/conf.d/zoneminder.conf
|
%config(noreplace) %attr(644,root,root) /etc/httpd/conf.d/zoneminder.conf
|
||||||
%config(noreplace) /etc/tmpfiles.d/zoneminder.conf
|
%config(noreplace) /etc/tmpfiles.d/zoneminder.conf
|
||||||
%config(noreplace) /etc/logrotate.d/zoneminder
|
%config(noreplace) /etc/logrotate.d/zoneminder
|
||||||
|
|
|
@ -0,0 +1,409 @@
|
||||||
|
%define zmuid $(id -un)
|
||||||
|
%define zmgid $(id -gn)
|
||||||
|
%define zmuid_final apache
|
||||||
|
%define zmgid_final apache
|
||||||
|
|
||||||
|
%global _hardened_build 1
|
||||||
|
|
||||||
|
### Delete the lines below to build with ffmpeg and/or x10
|
||||||
|
%define _without_ffmpeg 1
|
||||||
|
%define _without_x10 1
|
||||||
|
|
||||||
|
Name: zoneminder
|
||||||
|
Version: 1.28.1
|
||||||
|
Release: 1%{?dist}
|
||||||
|
Summary: A camera monitoring and analysis tool
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
# jscalendar is LGPL (any version): http://www.dynarch.com/projects/calendar/
|
||||||
|
# Mootools is inder the MIT license: http://mootools.net/
|
||||||
|
License: GPLv2+ and LGPLv2+ and MIT
|
||||||
|
URL: http://www.zoneminder.com/
|
||||||
|
|
||||||
|
#Source: https://github.com/ZoneMinder/ZoneMinder/archive/v%{version}.tar.gz
|
||||||
|
Source: ZoneMinder-%{version}.tar.gz
|
||||||
|
|
||||||
|
BuildRequires: cmake gnutls-devel systemd-units bzip2-devel
|
||||||
|
BuildRequires: mariadb-devel pcre-devel libjpeg-turbo-devel
|
||||||
|
BuildRequires: perl(Archive::Tar) perl(Archive::Zip) perl-podlators
|
||||||
|
BuildRequires: perl(Date::Manip) perl(DBD::mysql)
|
||||||
|
BuildRequires: perl(ExtUtils::MakeMaker) perl(LWP::UserAgent)
|
||||||
|
BuildRequires: perl(MIME::Entity) perl(MIME::Lite)
|
||||||
|
BuildRequires: perl(PHP::Serialization) perl(Sys::Mmap)
|
||||||
|
BuildRequires: perl(Time::HiRes) perl(Net::SFTP::Foreign)
|
||||||
|
BuildRequires: perl(Expect) perl(Sys::Syslog)
|
||||||
|
BuildRequires: gcc gcc-c++ vlc-devel libcurl-devel libv4l-devel
|
||||||
|
%{!?_without_ffmpeg:BuildRequires: ffmpeg-devel}
|
||||||
|
%{!?_without_x10:BuildRequires: perl(X10::ActiveHome) perl(Astro::SunTime)}
|
||||||
|
# cmake needs the following installed at build time due to the way it auto-detects certain parameters
|
||||||
|
BuildRequires: httpd polkit-devel
|
||||||
|
%{!?_without_ffmpeg:BuildRequires: ffmpeg}
|
||||||
|
|
||||||
|
Requires: httpd php php-gd php-mysql cambozola polkit net-tools psmisc
|
||||||
|
Requires: libjpeg-turbo vlc-core libcurl
|
||||||
|
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
|
||||||
|
Requires: perl(DBD::mysql) perl(Archive::Tar) perl(Archive::Zip)
|
||||||
|
Requires: perl(MIME::Entity) perl(MIME::Lite) perl(Net::SMTP) perl(Net::FTP)
|
||||||
|
Requires: perl(LWP::Protocol::https)
|
||||||
|
%{!?_without_ffmpeg:Requires: ffmpeg}
|
||||||
|
|
||||||
|
Requires(post): systemd-units systemd-sysv
|
||||||
|
Requires(post): /usr/bin/gpasswd
|
||||||
|
Requires(post): /usr/bin/less
|
||||||
|
Requires(preun): systemd-units
|
||||||
|
Requires(postun): systemd-units
|
||||||
|
|
||||||
|
%description
|
||||||
|
ZoneMinder is a set of applications which is intended to provide a complete
|
||||||
|
solution allowing you to capture, analyse, record and monitor any cameras you
|
||||||
|
have attached to a Linux based machine. It is designed to run on kernels which
|
||||||
|
support the Video For Linux (V4L) interface and has been tested with cameras
|
||||||
|
attached to BTTV cards, various USB cameras and IP network cameras. It is
|
||||||
|
designed to support as many cameras as you can attach to your computer without
|
||||||
|
too much degradation of performance.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n ZoneMinder-%{version}
|
||||||
|
|
||||||
|
# Change the following default values
|
||||||
|
./utils/zmeditconfigdata.sh ZM_PATH_ZMS /cgi-bin/zm/nph-zms
|
||||||
|
./utils/zmeditconfigdata.sh ZM_OPT_CAMBOZOLA yes
|
||||||
|
./utils/zmeditconfigdata.sh ZM_PATH_SWAP /dev/shm
|
||||||
|
./utils/zmeditconfigdata.sh ZM_UPLOAD_FTP_LOC_DIR /var/spool/zoneminder-upload
|
||||||
|
./utils/zmeditconfigdata.sh ZM_OPT_CONTROL yes
|
||||||
|
./utils/zmeditconfigdata.sh ZM_CHECK_FOR_UPDATES no
|
||||||
|
./utils/zmeditconfigdata.sh ZM_DYN_SHOW_DONATE_REMINDER no
|
||||||
|
|
||||||
|
%build
|
||||||
|
%cmake \
|
||||||
|
-DZM_TARGET_DISTRO="f22" \
|
||||||
|
%{?_without_ffmpeg:-DZM_NO_FFMPEG=ON} \
|
||||||
|
%{?_without_x10:-DZM_NO_X10=ON} \
|
||||||
|
.
|
||||||
|
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
|
%install
|
||||||
|
export DESTDIR=%{buildroot}
|
||||||
|
make install
|
||||||
|
|
||||||
|
%post
|
||||||
|
if [ $1 -eq 1 ] ; then
|
||||||
|
# Initial installation
|
||||||
|
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Allow zoneminder access to local video sources, serial ports, and x10
|
||||||
|
/usr/bin/gpasswd -a %{zmuid_final} video
|
||||||
|
/usr/bin/gpasswd -a %{zmuid_final} dialout
|
||||||
|
|
||||||
|
# Upgrade from a previous version of zoneminder
|
||||||
|
if [ $1 -eq 2 ] ; then
|
||||||
|
# Freshen the database
|
||||||
|
/usr/bin/zmupdate.pl -f
|
||||||
|
|
||||||
|
# We can't run this automatically when new sql account permissions need to
|
||||||
|
# be manually added first
|
||||||
|
# Run zmupdate non-interactively
|
||||||
|
#/usr/bin/zmupdate.pl --nointeractive
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Warn the end user to read the README file
|
||||||
|
echo -e "\nVERY IMPORTANT: Before starting ZoneMinder, read README.Fedora to finish the\ninstallation or upgrade!\n"
|
||||||
|
echo -e "\nThe README file is located here: %{_docdir}/%{name}\n"
|
||||||
|
|
||||||
|
%preun
|
||||||
|
if [ $1 -eq 0 ] ; then
|
||||||
|
# Package removal, not upgrade
|
||||||
|
/bin/systemctl --no-reload disable zoneminder.service > /dev/null 2>&1 || :
|
||||||
|
/bin/systemctl stop zoneminder.service > /dev/null 2>&1 || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
%postun
|
||||||
|
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
|
||||||
|
if [ $1 -ge 1 ] ; then
|
||||||
|
# Package upgrade, not uninstall
|
||||||
|
/bin/systemctl try-restart zoneminder.service >/dev/null 2>&1 || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
%triggerun -- zoneminder < 1.25.0-4
|
||||||
|
# Save the current service runlevel info
|
||||||
|
# User must manually run systemd-sysv-convert --apply zoneminder
|
||||||
|
# to migrate them to systemd targets
|
||||||
|
/usr/bin/systemd-sysv-convert --save zoneminder >/dev/null 2>&1 ||:
|
||||||
|
|
||||||
|
# Run these because the SysV package being removed won't do them
|
||||||
|
/sbin/chkconfig --del zoneminder >/dev/null 2>&1 || :
|
||||||
|
/bin/systemctl try-restart zoneminder.service >/dev/null 2>&1 || :
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%doc AUTHORS COPYING README.md distros/fedora/README.Fedora distros/fedora/jscalendar-doc
|
||||||
|
%config %attr(640,root,%{zmgid_final}) /etc/zm/zm.conf
|
||||||
|
%config(noreplace) %attr(644,root,root) /etc/httpd/conf.d/zoneminder.conf
|
||||||
|
%config(noreplace) /etc/tmpfiles.d/zoneminder.conf
|
||||||
|
%config(noreplace) /etc/logrotate.d/zoneminder
|
||||||
|
|
||||||
|
%{_unitdir}/zoneminder.service
|
||||||
|
|
||||||
|
%{_bindir}/zma
|
||||||
|
%{_bindir}/zmaudit.pl
|
||||||
|
%{_bindir}/zmc
|
||||||
|
%{_bindir}/zmcontrol.pl
|
||||||
|
%{_bindir}/zmdc.pl
|
||||||
|
%{_bindir}/zmf
|
||||||
|
%{_bindir}/zmfilter.pl
|
||||||
|
%{_bindir}/zmpkg.pl
|
||||||
|
%{_bindir}/zmstreamer
|
||||||
|
%{_bindir}/zmtrack.pl
|
||||||
|
%{_bindir}/zmtrigger.pl
|
||||||
|
%{_bindir}/zmu
|
||||||
|
%{_bindir}/zmupdate.pl
|
||||||
|
%{_bindir}/zmvideo.pl
|
||||||
|
%{_bindir}/zmwatch.pl
|
||||||
|
%{_bindir}/zmcamtool.pl
|
||||||
|
%{_bindir}/zmsystemctl.pl
|
||||||
|
%{!?_without_x10:%{_bindir}/zmx10.pl}
|
||||||
|
|
||||||
|
%{perl_vendorlib}/ZoneMinder*
|
||||||
|
%{_mandir}/man*/*
|
||||||
|
%dir %{_libexecdir}/zoneminder
|
||||||
|
%{_libexecdir}/zoneminder/cgi-bin
|
||||||
|
%dir %{_datadir}/zoneminder
|
||||||
|
%{_datadir}/zoneminder/db
|
||||||
|
%{_datadir}/zoneminder/www
|
||||||
|
|
||||||
|
%{_datadir}/polkit-1/actions/com.zoneminder.systemctl.policy
|
||||||
|
%{_datadir}/polkit-1/rules.d/com.zoneminder.systemctl.rules
|
||||||
|
|
||||||
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/lib/zoneminder
|
||||||
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/lib/zoneminder/events
|
||||||
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/lib/zoneminder/images
|
||||||
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/lib/zoneminder/sock
|
||||||
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/lib/zoneminder/swap
|
||||||
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/lib/zoneminder/temp
|
||||||
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/log/zoneminder
|
||||||
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /var/spool/zoneminder-upload
|
||||||
|
%dir %attr(755,%{zmuid_final},%{zmgid_final}) /run/zoneminder
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Sat Feb 14 2015 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.28.1
|
||||||
|
- Bump version for 1.28.1 release on Fedora 21.
|
||||||
|
|
||||||
|
* Sun Oct 5 2014 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.28.0
|
||||||
|
- Bump version for 1.28.0 release.
|
||||||
|
|
||||||
|
* Fri Mar 14 2014 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.27
|
||||||
|
- Tweak build requirements for cmake
|
||||||
|
|
||||||
|
* Sat Feb 01 2014 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.27
|
||||||
|
- Add zmcamtool.pl. Bump version for 1.27 release.
|
||||||
|
|
||||||
|
* Mon Dec 16 2013 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.26.5
|
||||||
|
- This is a bug fixe release
|
||||||
|
- RTSP fixes, cmake enhancements, couple other misc fixes
|
||||||
|
|
||||||
|
* Mon Oct 07 2013 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.26.4
|
||||||
|
- Initial cmake build.
|
||||||
|
|
||||||
|
* Sat Oct 05 2013 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.26.4
|
||||||
|
- Fedora specific path changes have been moved to zoneminder-1.26.0-defaults.patch
|
||||||
|
- All files are now part of the zoneminder source tree. Update specfile accordingly.
|
||||||
|
|
||||||
|
* Sat Sep 21 2013 Andrew Bauer <knnniggett@users.sourceforge.net> - 1.26.3
|
||||||
|
- Initial rebuild for ZoneMinder 1.26.3 release.
|
||||||
|
|
||||||
|
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.25.0-13
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 21 2013 Adam Tkac <atkac redhat com> - 1.25.0-12
|
||||||
|
- rebuild due to "jpeg8-ABI" feature drop
|
||||||
|
|
||||||
|
* Mon Jan 7 2013 Remi Collet <rcollet@redhat.com> - 1.25.0-11
|
||||||
|
- fix configuration file for httpd 2.4, #871502
|
||||||
|
|
||||||
|
* Fri Dec 21 2012 Adam Tkac <atkac redhat com> - 1.25.0-10
|
||||||
|
- rebuild against new libjpeg
|
||||||
|
|
||||||
|
* Thu Aug 09 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-9
|
||||||
|
- Add patch to work around v4l2 api breakage in 3.5 kernel.
|
||||||
|
|
||||||
|
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.25.0-8
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jun 23 2012 Petr Pisar <ppisar@redhat.com> - 1.25.0-7
|
||||||
|
- Perl 5.16 rebuild
|
||||||
|
|
||||||
|
* Wed Mar 21 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-6
|
||||||
|
- Fix stupid thinko in sql modifications.
|
||||||
|
|
||||||
|
* Sat Feb 25 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-5
|
||||||
|
- Clean up macro usage.
|
||||||
|
|
||||||
|
* Sat Feb 25 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-4
|
||||||
|
- Convert to systemd.
|
||||||
|
- Add tmpfiles.d configuration since the initscript isn't around to create
|
||||||
|
/run/zoneminder.
|
||||||
|
- Remove some pointless executable permissions.
|
||||||
|
- Add logrotate file.
|
||||||
|
|
||||||
|
* Wed Feb 22 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-3
|
||||||
|
- Update README.Fedora to reference systemctl and mention timezone info in
|
||||||
|
php.ini.
|
||||||
|
- Add proper default for EYEZM_LOG_TO_FILE.
|
||||||
|
|
||||||
|
|
||||||
|
* Thu Feb 09 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-2
|
||||||
|
- Rebuild for new pcre.
|
||||||
|
|
||||||
|
* Thu Jan 19 2012 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.25.0-1
|
||||||
|
- Update to 1.25.0
|
||||||
|
- Fix gcc4.7 build problems.
|
||||||
|
- Drop gcc4.4 build fixes; for whatever reason they now break the build.
|
||||||
|
- Clean up old patches.
|
||||||
|
- Force setting of ZM_TMPDIR and ZM_RUNDIR.
|
||||||
|
|
||||||
|
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.24.4-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Sep 15 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.4-3
|
||||||
|
- Re-add the dist-tag that somehow got lost.
|
||||||
|
|
||||||
|
* Thu Sep 15 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.4-2
|
||||||
|
- Add patch for bug 711780 - fix syntax issue in Mapped.pm.
|
||||||
|
- Undo that patch, and undo another which was the cause of the whole mess.
|
||||||
|
- Fix up other patches so ZM_PATH_BUILD is both defined and useful.
|
||||||
|
- Make sure database creation mods actually take.
|
||||||
|
- Update Fedora-specific docs with some additional info.
|
||||||
|
- Use bundled mootools (javascript, so no guideline violation).
|
||||||
|
- Update download location.
|
||||||
|
- Update the gcrypt patch to actually work.
|
||||||
|
- Upstream changed the tarball without changing the version to patch a
|
||||||
|
vulnerability, so redownload.
|
||||||
|
|
||||||
|
* Sun Aug 14 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.4-1
|
||||||
|
- Initial attempt to upgrade to 1.24.4.
|
||||||
|
- Add patch from BZ 460310 to build against libgcrypt instead of requiring the
|
||||||
|
gnutls openssl libs.
|
||||||
|
|
||||||
|
* Thu Jul 21 2011 Petr Sabata <contyk@redhat.com> - 1.24.3-7.20110324svn3310
|
||||||
|
- Perl mass rebuild
|
||||||
|
|
||||||
|
* Wed Jul 20 2011 Petr Sabata <contyk@redhat.com> - 1.24.3-6.20110324svn3310
|
||||||
|
- Perl mass rebuild
|
||||||
|
|
||||||
|
* Mon May 09 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.3-5.20110324svn3310
|
||||||
|
- Bump for gnutls update.
|
||||||
|
|
||||||
|
* Thu Mar 24 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.3-4.20110324svn3310
|
||||||
|
- Update to latest 1.24.3 subversion. Turns out that what upstream was calling
|
||||||
|
1.24.3 is really just an occasionally updated devel snapshot.
|
||||||
|
- Rebase various patches.
|
||||||
|
|
||||||
|
* Wed Mar 23 2011 Dan Horák <dan@danny.cz> - 1.24.3-3
|
||||||
|
- rebuilt for mysql 5.5.10 (soname bump in libmysqlclient)
|
||||||
|
|
||||||
|
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.24.3-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jan 25 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.3-1
|
||||||
|
- Update to latest upstream version.
|
||||||
|
- Rebase patches.
|
||||||
|
- Initial incomplete attempt to disable v4l1 support.
|
||||||
|
|
||||||
|
* Fri Jan 21 2011 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.2-6
|
||||||
|
- Unbundle cambozola; instead link to the separately pacakged copy.
|
||||||
|
- Remove BuildRoot:, %%clean and buildroot cleaning in %%install.
|
||||||
|
- Git rid of mixed space/tab usage by removing all tabs.
|
||||||
|
- Remove unnecessary Conflicts: line.
|
||||||
|
- Attempt to force short_open_tag on for the code directories.
|
||||||
|
- Move default location of sockets, swaps, logfiles and some temporary files to
|
||||||
|
make more sense and allow things to work better with a future selinux policy.
|
||||||
|
- Fix errors in README.Fedora.
|
||||||
|
|
||||||
|
* Wed Jun 02 2010 Marcela Maslanova <mmaslano@redhat.com> - 1.24.2-5
|
||||||
|
- Mass rebuild with perl-5.12.0
|
||||||
|
|
||||||
|
* Fri Dec 4 2009 Stepan Kasal <skasal@redhat.com> - 1.24.2-4
|
||||||
|
- rebuild against perl 5.10.1
|
||||||
|
- use Perl vendorarch and archlib variables correctly
|
||||||
|
|
||||||
|
* Mon Jul 27 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.24.2-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 22 2009 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.2-2
|
||||||
|
- Bump release since 1.24.2-1 was mistakenly tagged a few months ago.
|
||||||
|
|
||||||
|
* Wed Jul 22 2009 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.24.2-1
|
||||||
|
- Initial update to 1.24.2.
|
||||||
|
- Rebase patches.
|
||||||
|
- Update mootools download location.
|
||||||
|
- Update to mootools 1.2.3.
|
||||||
|
- Add additional dependencies for some optional features.
|
||||||
|
|
||||||
|
* Sat Apr 11 2009 Martin Ebourne <martin@zepler.org> - 1.24.1-3
|
||||||
|
- Remove unused Sys::Mmap perl dependency RPM is finding
|
||||||
|
|
||||||
|
* Sat Apr 11 2009 Martin Ebourne <martin@zepler.org> - 1.24.1-2
|
||||||
|
- Update gcc44 patch to disable -frepo, seems to be broken with gcc44
|
||||||
|
- Added noffmpeg patch to make building outside mock easier
|
||||||
|
|
||||||
|
* Sat Mar 21 2009 Martin Ebourne <martin@zepler.org> - 1.24.1-1
|
||||||
|
- Patch for gcc 4.4 compilation errors
|
||||||
|
- Upgrade to 1.24.1
|
||||||
|
|
||||||
|
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.23.3-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jan 24 2009 Caolán McNamara <caolanm@redhat.com> - 1.23.3-3
|
||||||
|
- rebuild for dependencies
|
||||||
|
|
||||||
|
* Mon Dec 15 2008 Martin Ebourne <martin@zepler.org> - 1.23.3-2
|
||||||
|
- Fix permissions on zm.conf
|
||||||
|
|
||||||
|
* Fri Jul 11 2008 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.23.3-1
|
||||||
|
- Initial attempt at packaging 1.23.
|
||||||
|
|
||||||
|
* Tue Jul 1 2008 Martin Ebourne <martin@zepler.org> - 1.22.3-15
|
||||||
|
- Add perl module compat dependency, bz #453590
|
||||||
|
|
||||||
|
* Tue May 6 2008 Martin Ebourne <martin@zepler.org> - 1.22.3-14
|
||||||
|
- Remove default runlevel, bz #441315
|
||||||
|
|
||||||
|
* Mon Apr 28 2008 Jason L Tibbitts III <tibbs@math.uh.edu> - 1.22.3-13
|
||||||
|
- Backport patch for CVE-2008-1381 from 1.23.3 to 1.22.3.
|
||||||
|
|
||||||
|
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.22.3-12
|
||||||
|
- Autorebuild for GCC 4.3
|
||||||
|
|
||||||
|
* Thu Jan 3 2008 Martin Ebourne <martin@zepler.org> - 1.22.3-11
|
||||||
|
- Fix compilation on gcc 4.3
|
||||||
|
|
||||||
|
* Thu Dec 6 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-10
|
||||||
|
- Rebuild for new openssl
|
||||||
|
|
||||||
|
* Thu Aug 2 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-8
|
||||||
|
- Fix licence tag
|
||||||
|
|
||||||
|
* Thu Jul 12 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-7
|
||||||
|
- Fixes from testing by Jitz including missing dependencies and database creation
|
||||||
|
|
||||||
|
* Sat Jun 30 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-6
|
||||||
|
- Disable crashtrace on ppc
|
||||||
|
|
||||||
|
* Sat Jun 30 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-5
|
||||||
|
- Fix uid for directories in /var/lib/zoneminder
|
||||||
|
|
||||||
|
* Tue Jun 26 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-4
|
||||||
|
- Added perl Archive::Tar dependency
|
||||||
|
- Disabled web interface due to lack of access control on the event images
|
||||||
|
|
||||||
|
* Sun Jun 10 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-3
|
||||||
|
- Changes recommended in review by Jason Tibbitts
|
||||||
|
|
||||||
|
* Mon Apr 2 2007 Martin Ebourne <martin@zepler.org> - 1.22.3-2
|
||||||
|
- Standardised on package name of zoneminder
|
||||||
|
|
||||||
|
* Thu Dec 28 2006 Martin Ebourne <martin@zepler.org> - 1.22.3-1
|
||||||
|
- First version. Uses some parts from zm-1.20.1 by Corey DeLasaux and Serg Oskin
|
|
@ -0,0 +1 @@
|
||||||
|
../redhat/zoneminder.el7.logrotate.in
|
|
@ -0,0 +1,18 @@
|
||||||
|
# ZoneMinder systemd unit file for Fedora
|
||||||
|
# Replace mariadb with community-mysql if using mysql service instead of mariadb
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=ZoneMinder CCTV recording and security system
|
||||||
|
After=network.target mariadb.service httpd.service
|
||||||
|
Requires=mariadb.service httpd.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=@WEB_USER@
|
||||||
|
Type=forking
|
||||||
|
ExecStart=@BINDIR@/zmpkg.pl start
|
||||||
|
ExecReload=@BINDIR@/zmpkg.pl restart
|
||||||
|
ExecStop=@BINDIR@/zmpkg.pl stop
|
||||||
|
PIDFile="@ZM_RUNDIR@/zm.pid"
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -0,0 +1 @@
|
||||||
|
../redhat/zoneminder.tmpfiles.in
|
|
@ -114,8 +114,8 @@ if [ $1 -eq 0 ] ; then
|
||||||
# Package removal, not upgrade
|
# Package removal, not upgrade
|
||||||
/bin/systemctl --no-reload disable zoneminder.service > /dev/null 2>&1 || :
|
/bin/systemctl --no-reload disable zoneminder.service > /dev/null 2>&1 || :
|
||||||
/bin/systemctl stop zoneminder.service > /dev/null 2>&1 || :
|
/bin/systemctl stop zoneminder.service > /dev/null 2>&1 || :
|
||||||
echo -e "\nRemoving ZoneMinder SELinux policy module. Please wait.\n"
|
# echo -e "\nRemoving ZoneMinder SELinux policy module. Please wait.\n"
|
||||||
/usr/sbin/semodule -r local_zoneminder.pp
|
# /usr/sbin/semodule -r local_zoneminder.pp
|
||||||
fi
|
fi
|
||||||
|
|
||||||
%postun
|
%postun
|
||||||
|
|
|
@ -1 +1,3 @@
|
||||||
d @ZM_RUNDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
D @ZM_RUNDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
||||||
|
D @ZM_TMPDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
||||||
|
D @ZM_SOCKDIR@ 0755 @WEB_USER@ @WEB_GROUP@
|
||||||
|
|
|
@ -23,6 +23,7 @@ command="$ZM_PATH_BIN/zmpkg.pl"
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
echo -n "Starting $prog: "
|
echo -n "Starting $prog: "
|
||||||
|
export TZ=:/etc/localtime
|
||||||
mkdir -p $RUNDIR && chown www-data:www-data $RUNDIR
|
mkdir -p $RUNDIR && chown www-data:www-data $RUNDIR
|
||||||
mkdir -p $TMPDIR && chown www-data:www-data $TMPDIR
|
mkdir -p $TMPDIR && chown www-data:www-data $TMPDIR
|
||||||
$command start
|
$command start
|
||||||
|
|
|
@ -23,6 +23,7 @@ command="$ZM_PATH_BIN/zmpkg.pl"
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
echo -n "Starting $prog: "
|
echo -n "Starting $prog: "
|
||||||
|
export TZ=:/etc/localtime
|
||||||
mkdir -p "$RUNDIR" && chown www-data:www-data "$RUNDIR"
|
mkdir -p "$RUNDIR" && chown www-data:www-data "$RUNDIR"
|
||||||
mkdir -p "$TMPDIR" && chown www-data:www-data "$TMPDIR"
|
mkdir -p "$TMPDIR" && chown www-data:www-data "$TMPDIR"
|
||||||
$command start
|
$command start
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Alias /zm /usr/share/zoneminder
|
Alias /zm /usr/share/zoneminder/www
|
||||||
|
|
||||||
<Directory /usr/share/zoneminder>
|
<Directory /usr/share/zoneminder>
|
||||||
php_flag register_globals off
|
php_flag register_globals off
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
var/cache/zoneminder/events usr/share/zoneminder/events
|
var/cache/zoneminder/events usr/share/zoneminder/www/events
|
||||||
var/cache/zoneminder/images usr/share/zoneminder/images
|
var/cache/zoneminder/images usr/share/zoneminder/www/images
|
||||||
var/cache/zoneminder/temp usr/share/zoneminder/temp
|
var/cache/zoneminder/temp usr/share/zoneminder/www/temp
|
||||||
usr/lib/cgi-bin usr/share/zoneminder/cgi-bin
|
usr/lib/cgi-bin usr/lib/zoneminder/cgi-bin
|
||||||
|
|
|
@ -3,15 +3,15 @@
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
abort=false
|
abort=false
|
||||||
if [ -L /usr/share/zoneminder/events ]; then
|
if [ -L /usr/share/zoneminder/www/events ]; then
|
||||||
l=$(readlink /usr/share/zoneminder/events)
|
l=$(readlink /usr/share/zoneminder/www/events)
|
||||||
if [ "$l" != "/var/cache/zoneminder/events" ]; then
|
if [ "$l" != "/var/cache/zoneminder/www/events" ]; then
|
||||||
abort=true
|
abort=true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ -L /usr/share/zoneminder/images ]; then
|
if [ -L /usr/share/zoneminder/www/images ]; then
|
||||||
l=$(readlink /usr/share/zoneminder/images )
|
l=$(readlink /usr/share/zoneminder/www/images )
|
||||||
if [ "$l" != "/var/cache/zoneminder/images" ]; then
|
if [ "$l" != "/var/cache/zoneminder/www/images" ]; then
|
||||||
abort=true
|
abort=true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -19,9 +19,9 @@ fi
|
||||||
if [ "$abort" = "true" ]; then
|
if [ "$abort" = "true" ]; then
|
||||||
cat >&2 << EOF
|
cat >&2 << EOF
|
||||||
Aborting installation of zoneminder due to non-default symlinks in
|
Aborting installation of zoneminder due to non-default symlinks in
|
||||||
/usr/share/zoneminder for the images and/or events directory, which could
|
/usr/share/zoneminder/www for the images and/or events directory, which could
|
||||||
result in loss of data. Please move your data in each of these directories to
|
result in loss of data. Please move your data in each of these directories to
|
||||||
/var/cache/zoneminder before installing zoneminder from the package.
|
/var/cache/zoneminder/www before installing zoneminder from the package.
|
||||||
EOF
|
EOF
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
|
|
|
@ -40,12 +40,12 @@ override_dh_install:
|
||||||
#
|
#
|
||||||
# NOTE: This is a short-term kludge; hopefully changes in the next
|
# NOTE: This is a short-term kludge; hopefully changes in the next
|
||||||
# upstream version will render this unnecessary.
|
# upstream version will render this unnecessary.
|
||||||
rm -rf debian/zoneminder/usr/share/zoneminder/events
|
rm -rf debian/zoneminder/usr/share/zoneminder/www/events
|
||||||
rm -rf debian/zoneminder/usr/share/zoneminder/images
|
rm -rf debian/zoneminder/usr/share/zoneminder/www/images
|
||||||
rm -rf debian/zoneminder/usr/share/zoneminder/temp
|
rm -rf debian/zoneminder/usr/share/zoneminder/temp
|
||||||
dh_link var/cache/zoneminder/events usr/share/zoneminder/events
|
dh_link var/cache/zoneminder/events usr/share/zoneminder/www/events
|
||||||
dh_link var/cache/zoneminder/images usr/share/zoneminder/images
|
dh_link var/cache/zoneminder/images usr/share/zoneminder/www/images
|
||||||
dh_link var/cache/zoneminder/temp usr/share/zoneminder/temp
|
dh_link var/cache/zoneminder/temp usr/share/zoneminder/www/temp
|
||||||
|
|
||||||
#
|
#
|
||||||
# This is a slightly lesser kludge; moving the cgi stuff to
|
# This is a slightly lesser kludge; moving the cgi stuff to
|
||||||
|
@ -53,7 +53,7 @@ override_dh_install:
|
||||||
# having it just in /usr/lib/cgi-bin breaks another bit of
|
# having it just in /usr/lib/cgi-bin breaks another bit of
|
||||||
# behavior.
|
# behavior.
|
||||||
#
|
#
|
||||||
dh_link usr/lib/cgi-bin usr/share/zoneminder/cgi-bin
|
dh_link usr/lib/cgi-bin usr/lib/zoneminder/cgi-bin
|
||||||
|
|
||||||
override_dh_fixperms:
|
override_dh_fixperms:
|
||||||
dh_fixperms
|
dh_fixperms
|
||||||
|
|
|
@ -23,6 +23,7 @@ command="$ZM_PATH_BIN/zmpkg.pl"
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
echo -n "Starting $prog: "
|
echo -n "Starting $prog: "
|
||||||
|
export TZ=:/etc/localtime
|
||||||
mkdir -p "$RUNDIR" && chown www-data:www-data "$RUNDIR"
|
mkdir -p "$RUNDIR" && chown www-data:www-data "$RUNDIR"
|
||||||
mkdir -p "$TMPDIR" && chown www-data:www-data "$TMPDIR"
|
mkdir -p "$TMPDIR" && chown www-data:www-data "$TMPDIR"
|
||||||
$command start
|
$command start
|
||||||
|
|
|
@ -23,6 +23,7 @@ command="$ZM_PATH_BIN/zmpkg.pl"
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
echo -n "Starting $prog: "
|
echo -n "Starting $prog: "
|
||||||
|
export TZ=:/etc/localtime
|
||||||
mkdir -p $RUNDIR && chown www-data:www-data $RUNDIR
|
mkdir -p $RUNDIR && chown www-data:www-data $RUNDIR
|
||||||
mkdir -p $TMPDIR && chown www-data:www-data $TMPDIR
|
mkdir -p $TMPDIR && chown www-data:www-data $TMPDIR
|
||||||
$command start
|
$command start
|
||||||
|
|
|
@ -126,16 +126,25 @@ MAIN: while( $loop ) {
|
||||||
while ( ! ( $dbh and $dbh->ping() ) ) {
|
while ( ! ( $dbh and $dbh->ping() ) ) {
|
||||||
$dbh = zmDbConnect();
|
$dbh = zmDbConnect();
|
||||||
|
|
||||||
last if $dbh;
|
if ( $continuous ) {
|
||||||
if ( $continuous ) {
|
Error("Unable to connect to database");
|
||||||
# if we are running continuously, then just skip to the next
|
# if we are running continuously, then just skip to the next
|
||||||
# interval, otherwise we are a one off run, so wait a second and
|
# interval, otherwise we are a one off run, so wait a second and
|
||||||
# retry until someone kills us.
|
# retry until someone kills us.
|
||||||
sleep( $Config{ZM_AUDIT_CHECK_INTERVAL} );
|
sleep( $Config{ZM_AUDIT_CHECK_INTERVAL} );
|
||||||
} else {
|
} else {
|
||||||
sleep 1;
|
Fatal("Unable to connect to database");
|
||||||
} # end if
|
} # end if
|
||||||
} # end while can't connect to the db
|
} # end while can't connect to the db
|
||||||
|
|
||||||
|
if ( $continuous ) {
|
||||||
|
# if we are running continuously, then just skip to the next
|
||||||
|
# interval, otherwise we are a one off run, so wait a second and
|
||||||
|
# retry until someone kills us.
|
||||||
|
sleep( $Config{ZM_AUDIT_CHECK_INTERVAL} );
|
||||||
|
} else {
|
||||||
|
sleep 1;
|
||||||
|
} # end if
|
||||||
|
|
||||||
if ( ! exists $Config{ZM_AUDIT_MIN_AGE} ) {
|
if ( ! exists $Config{ZM_AUDIT_MIN_AGE} ) {
|
||||||
Fatal("ZM_AUDIT_MIN_AGE is not set in config.");
|
Fatal("ZM_AUDIT_MIN_AGE is not set in config.");
|
||||||
|
@ -366,7 +375,7 @@ MAIN: while( $loop ) {
|
||||||
|
|
||||||
# Remove empty events (with no frames)
|
# Remove empty events (with no frames)
|
||||||
$cleaned = 0;
|
$cleaned = 0;
|
||||||
my $selectEmptyEventsSql = "SELECT * FROM Events as E LEFT JOIN Frames as F ON (E.Id = F.EventId)
|
my $selectEmptyEventsSql = "SELECT E.Id AS Id, E.StartTime, F.EventId FROM Events as E LEFT JOIN Frames as F ON (E.Id = F.EventId)
|
||||||
WHERE isnull(F.EventId) AND now() - interval ".$Config{ZM_AUDIT_MIN_AGE}." second > E.StartTime";
|
WHERE isnull(F.EventId) AND now() - interval ".$Config{ZM_AUDIT_MIN_AGE}." second > E.StartTime";
|
||||||
my $selectEmptyEventsSth = $dbh->prepare_cached( $selectEmptyEventsSql )
|
my $selectEmptyEventsSth = $dbh->prepare_cached( $selectEmptyEventsSql )
|
||||||
or Fatal( "Can't prepare '$selectEmptyEventsSql': ".$dbh->errstr() );
|
or Fatal( "Can't prepare '$selectEmptyEventsSql': ".$dbh->errstr() );
|
||||||
|
|
|
@ -50,6 +50,7 @@ configuring upgrades etc, including on the fly upgrades.
|
||||||
=cut
|
=cut
|
||||||
use strict;
|
use strict;
|
||||||
use bytes;
|
use bytes;
|
||||||
|
use version;
|
||||||
|
|
||||||
# ==========================================================================
|
# ==========================================================================
|
||||||
#
|
#
|
||||||
|
@ -1027,16 +1028,23 @@ if ( $version )
|
||||||
my @files;
|
my @files;
|
||||||
$updateDir = $Config{ZM_PATH_DATA}."/db" if ! $updateDir;
|
$updateDir = $Config{ZM_PATH_DATA}."/db" if ! $updateDir;
|
||||||
opendir( my $dh, $updateDir ) || die "Can't open updateDir $!";
|
opendir( my $dh, $updateDir ) || die "Can't open updateDir $!";
|
||||||
@files = sort grep { (!/^\./) && /^zm_update\-[\d\.]+\.sql$/ && -f "$updateDir/$_" } readdir($dh);
|
#@files = sort grep { (!/^\./) && /^zm_update\-[\d\.]+\.sql$/ && -f "$updateDir/$_" } readdir($dh);
|
||||||
|
#PP - use perl version sort
|
||||||
|
@files = sort {
|
||||||
|
my ($x) = ($a =~ m/^zm_update\-(.*)\.sql$/);
|
||||||
|
my ($y) = ($b =~ m/^zm_update\-(.*)\.sql$/);
|
||||||
|
version->parse($x) <=> version->parse($y)
|
||||||
|
} grep { (!/^\./) && /^zm_update\-[\d\.]+\.sql$/ && -f "$updateDir/$_" } readdir($dh);
|
||||||
closedir $dh;
|
closedir $dh;
|
||||||
if ( ! @files ) {
|
if ( ! @files ) {
|
||||||
die "Should have found upgrade scripts at $updateDir\n";
|
die "Should have found upgrade scripts at $updateDir\n";
|
||||||
} # end if
|
} # end if
|
||||||
|
|
||||||
$dbh->{'AutoCommit'} = 0;
|
$dbh->{'AutoCommit'} = 0;
|
||||||
foreach my $patch ( @files ) {
|
foreach my $patch ( @files ) {
|
||||||
my ( $v ) = $patch =~ /^zm_update\-([\d\.]+)\.sql$/;
|
my ( $v ) = $patch =~ /^zm_update\-([\d\.]+)\.sql$/;
|
||||||
if ( $v ge $version ) {
|
#PP make sure we use version compare
|
||||||
|
if ( version->parse($v) ge version->parse($version) ) {
|
||||||
print( "Upgrading DB to $v from $version\n" );
|
print( "Upgrading DB to $v from $version\n" );
|
||||||
patchDB( $dbh, $v );
|
patchDB( $dbh, $v );
|
||||||
if ( $dbh->errstr() ) {
|
if ( $dbh->errstr() ) {
|
||||||
|
|
|
@ -60,6 +60,12 @@ else
|
||||||
define( "ZM_BASE_PROTOCOL", $protocol );
|
define( "ZM_BASE_PROTOCOL", $protocol );
|
||||||
define( "ZM_BASE_URL", $protocol.'://'.$_SERVER['HTTP_HOST'] );
|
define( "ZM_BASE_URL", $protocol.'://'.$_SERVER['HTTP_HOST'] );
|
||||||
|
|
||||||
|
// Check time zone is set
|
||||||
|
if (!ini_get('date.timezone') || !date_default_timezone_set(ini_get('date.timezone'))) {
|
||||||
|
date_default_timezone_set('UTC');
|
||||||
|
Fatal( "ZoneMinder is not installed properly: php's date.timezone is not set to a valid timezone" );
|
||||||
|
}
|
||||||
|
|
||||||
if ( isset($_GET['skin']) )
|
if ( isset($_GET['skin']) )
|
||||||
$skin = $_GET['skin'];
|
$skin = $_GET['skin'];
|
||||||
elseif ( isset($_COOKIE['zmSkin']) )
|
elseif ( isset($_COOKIE['zmSkin']) )
|
||||||
|
@ -125,6 +131,12 @@ else
|
||||||
require_once( 'includes/lang.php' );
|
require_once( 'includes/lang.php' );
|
||||||
require_once( 'includes/functions.php' );
|
require_once( 'includes/functions.php' );
|
||||||
|
|
||||||
|
// Check for valid content dirs
|
||||||
|
if ( !is_writable(ZM_DIR_EVENTS) || !is_writable(ZM_DIR_IMAGES) )
|
||||||
|
{
|
||||||
|
Fatal( "Cannot write to content dirs('".ZM_DIR_EVENTS."','".ZM_DIR_IMAGES."'). Check that these exist and are owned by the web account user");
|
||||||
|
}
|
||||||
|
|
||||||
if ( isset($_REQUEST['view']) )
|
if ( isset($_REQUEST['view']) )
|
||||||
$view = detaintPath($_REQUEST['view']);
|
$view = detaintPath($_REQUEST['view']);
|
||||||
|
|
||||||
|
|
|
@ -287,15 +287,16 @@ foreach( $displayMonitors as $monitor )
|
||||||
$dclass = "errorText";
|
$dclass = "errorText";
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( !$monitor['zma'] )
|
// https://github.com/ZoneMinder/ZoneMinder/issues/1082
|
||||||
|
if ( !$monitor['zma'] && $monitor['Function']!='Monitor' )
|
||||||
$dclass = "warnText";
|
$dclass = "warnText";
|
||||||
else
|
else
|
||||||
$dclass = "infoText";
|
$dclass = "infoText";
|
||||||
}
|
}
|
||||||
if ( $monitor['Function'] == 'None' )
|
if ( $monitor['Function'] == 'None' )
|
||||||
$fclass = "errorText";
|
$fclass = "errorText";
|
||||||
elseif ( $monitor['Function'] == 'Monitor' )
|
//elseif ( $monitor['Function'] == 'Monitor' )
|
||||||
$fclass = "warnText";
|
// $fclass = "warnText";
|
||||||
else
|
else
|
||||||
$fclass = "infoText";
|
$fclass = "infoText";
|
||||||
if ( !$monitor['Enabled'] )
|
if ( !$monitor['Enabled'] )
|
||||||
|
|
Loading…
Reference in New Issue