From 8d52746629d2a3a8f0d49258d3ece2eacc41e97e Mon Sep 17 00:00:00 2001 From: "Charles R. Anderson" Date: Fri, 6 Jan 2017 11:15:19 -0500 Subject: [PATCH 1/3] Change Requires php-mysql --> php-mysqli --- zoneminder.spec | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/zoneminder.spec b/zoneminder.spec index 030d971..03f0f58 100644 --- a/zoneminder.spec +++ b/zoneminder.spec @@ -5,7 +5,7 @@ Name: zoneminder Version: 1.28.1 -Release: 6%{?dist} +Release: 7%{?dist} Summary: A camera monitoring and analysis tool Group: System Environment/Daemons # jscalendar is LGPL (any version): http://www.dynarch.com/projects/calendar/ @@ -49,7 +49,10 @@ BuildRequires: perl(Sys::Mmap) BuildRequires: perl(Sys::Syslog) BuildRequires: perl(Time::HiRes) -Requires: httpd php php-mysql cambozola +Requires: httpd +Requires: php +Requires: php-mysqli +Requires: cambozola 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) @@ -247,6 +250,9 @@ fi %changelog +* Fri Jan 6 2017 Charles R. Anderson - 1.28.1-7 +- Change Requires php-mysql --> php-mysqli + * Mon May 16 2016 Jitka Plesnikova - 1.28.1-6 - Perl 5.24 rebuild From b72ab4a44c84980e724a1a2f7afc38123a2b7329 Mon Sep 17 00:00:00 2001 From: "Charles R. Anderson" Date: Wed, 8 Feb 2017 17:00:31 -0500 Subject: [PATCH 2/3] CVE-2017-5595 (rhbz#1419509) --- zoneminder-1.28.1-cve-2017-5595.patch | 116 ++++++++++++++++++++++++++ zoneminder.spec | 7 +- 2 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 zoneminder-1.28.1-cve-2017-5595.patch diff --git a/zoneminder-1.28.1-cve-2017-5595.patch b/zoneminder-1.28.1-cve-2017-5595.patch new file mode 100644 index 0000000..ea9ce46 --- /dev/null +++ b/zoneminder-1.28.1-cve-2017-5595.patch @@ -0,0 +1,116 @@ +diff -uNr ZoneMinder-1.28.1.orig/web/views/file.php ZoneMinder-1.28.1/web/views/file.php +--- ZoneMinder-1.28.1.orig/web/views/file.php 2015-02-04 21:52:37.000000000 -0500 ++++ ZoneMinder-1.28.1/web/views/file.php 1969-12-31 19:00:00.000000000 -0500 +@@ -1,56 +0,0 @@ +- +diff -uNr ZoneMinder-1.28.1.orig/web/views/image.php ZoneMinder-1.28.1/web/views/image.php +--- ZoneMinder-1.28.1.orig/web/views/image.php 2015-02-04 21:52:37.000000000 -0500 ++++ ZoneMinder-1.28.1/web/views/image.php 2017-02-07 21:12:51.315376682 -0500 +@@ -30,24 +30,26 @@ + if ( empty($_REQUEST['path']) ) + { + $errorText = "No image path"; +-} +-else +-{ +- $path = $_REQUEST['path']; +- if ( !empty($user['MonitorIds']) ) +- { +- $imageOk = false; +- $pathMonId = substr( $path, 0, strspn( $path, "1234567890" ) ); +- foreach ( preg_split( '/["\'\s]*,["\'\s]*/', $user['MonitorIds'] ) as $monId ) +- { +- if ( $pathMonId == $monId ) +- { +- $imageOk = true; +- break; ++} else { ++ $dir_events = realpath(ZM_DIR_EVENTS); ++ $path = realpath($dir_events . '/' . $_REQUEST['path']); ++ $pos = strpos($path, $dir_events); ++ ++ if($pos == 0 && $pos !== false) { ++ if ( !empty($user['MonitorIds']) ) { ++ $imageOk = false; ++ $pathMonId = substr( $path, 0, strspn( $path, "1234567890" ) ); ++ foreach ( preg_split( '/["\'\s]*,["\'\s]*/', $user['MonitorIds'] ) as $monId ) { ++ if ( $pathMonId == $monId ) { ++ $imageOk = true; ++ break; ++ } + } ++ if ( !$imageOk ) ++ $errorText = "No image permissions"; + } +- if ( !$imageOk ) +- $errorText = "No image permissions"; ++ } else { ++ $errorText = "Invalid image path"; + } + } + +diff -uNr ZoneMinder-1.28.1.orig/web/views/Makefile.am ZoneMinder-1.28.1/web/views/Makefile.am +--- ZoneMinder-1.28.1.orig/web/views/Makefile.am 2015-02-04 21:52:37.000000000 -0500 ++++ ZoneMinder-1.28.1/web/views/Makefile.am 2017-02-07 21:03:29.653105953 -0500 +@@ -2,5 +2,4 @@ + + webdir = @WEB_PREFIX@/views + +-dist_web_DATA = file.php \ +- image.php ++dist_web_DATA = image.php diff --git a/zoneminder.spec b/zoneminder.spec index 03f0f58..5d2d507 100644 --- a/zoneminder.spec +++ b/zoneminder.spec @@ -5,7 +5,7 @@ Name: zoneminder Version: 1.28.1 -Release: 7%{?dist} +Release: 8%{?dist} Summary: A camera monitoring and analysis tool Group: System Environment/Daemons # jscalendar is LGPL (any version): http://www.dynarch.com/projects/calendar/ @@ -25,6 +25,7 @@ Source7: zoneminder.logrotate # with zoneminder. As these are javascript, there is no guideline violation # here. #Source8: http://mootools.net/download/get/mootools-1.2.3-core-yc.js +Patch1: zoneminder-1.28.1-cve-2017-5595.patch Patch2: zoneminder-1.28.1-runlevel.patch Patch3: zoneminder-1.28.1-noffmpeg.patch Patch11: zoneminder-1.28.1-gcc47.patch @@ -83,6 +84,7 @@ mv *html *php doc/* README ../jscalendar-doc rmdir doc popd +%patch1 -p1 -b .cve-2017-5595 %patch2 -p1 -b .runlevel %patch3 -p1 -b .noffmpeg %patch11 -p1 -b .gcc47 @@ -250,6 +252,9 @@ fi %changelog +* Tue Feb 7 2017 Charles R. Anderson - 1.28.1-8 +- CVE-2017-5595 (rhbz#1419509) + * Fri Jan 6 2017 Charles R. Anderson - 1.28.1-7 - Change Requires php-mysql --> php-mysqli From 81446bd6277ea0da731402fa82de8eb22905acab Mon Sep 17 00:00:00 2001 From: "Charles R. Anderson" Date: Sun, 13 Aug 2017 20:08:37 -0400 Subject: [PATCH 3/3] Moved to rpmfusion --- .gitignore | 11 - README.Fedora | 82 ----- dead.package | 1 + redalert.wav | Bin 45404 -> 0 bytes sources | 2 - zoneminder-1.28.1-cve-2017-5595.patch | 116 ------ zoneminder-1.28.1-gcc47.patch | 23 -- zoneminder-1.28.1-gcrypt.patch | 103 ------ zoneminder-1.28.1-noffmpeg.patch | 27 -- zoneminder-1.28.1-runlevel.patch | 11 - zoneminder-svn-checkout.sh | 10 - zoneminder.conf | 45 --- zoneminder.logrotate | 8 - zoneminder.service | 12 - zoneminder.spec | 494 -------------------------- 15 files changed, 1 insertion(+), 944 deletions(-) delete mode 100644 .gitignore delete mode 100644 README.Fedora create mode 100644 dead.package delete mode 100644 redalert.wav delete mode 100644 sources delete mode 100644 zoneminder-1.28.1-cve-2017-5595.patch delete mode 100644 zoneminder-1.28.1-gcc47.patch delete mode 100644 zoneminder-1.28.1-gcrypt.patch delete mode 100644 zoneminder-1.28.1-noffmpeg.patch delete mode 100644 zoneminder-1.28.1-runlevel.patch delete mode 100755 zoneminder-svn-checkout.sh delete mode 100644 zoneminder.conf delete mode 100644 zoneminder.logrotate delete mode 100644 zoneminder.service delete mode 100644 zoneminder.spec diff --git a/.gitignore b/.gitignore deleted file mode 100644 index c289abc..0000000 --- a/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -cambozola-0.68.tar.gz -jscalendar-1.0.zip -mootools-1.2.3-core-yc.js -ZoneMinder-1.24.2.tar.gz -/ZoneMinder-1.24.3.tar.gz -/zoneminder-20110324svn.tar.xz -/ZoneMinder-1.24.4.tar.gz -/ZoneMinder-1.25.0.tar.gz -/v1.28.1.tar.gz -*.rpm -ZoneMinder-*/ diff --git a/README.Fedora b/README.Fedora deleted file mode 100644 index 961aadd..0000000 --- a/README.Fedora +++ /dev/null @@ -1,82 +0,0 @@ -New installs -============ - -1. Unless you are already using the MySQL server or you are running it - remotely you will need to ensure that the server is installed and secured: - - yum install mysql-server - systemctl enable mysqld - systemctl start mysqld - mysql_secure_installation - -2. You will need to create the ZoneMinder database. These commands should do - the trick, assuming your database server is local: - - mysql -u root -p < /usr/share/zoneminder/db/zm_create.sql - mysqladmin 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 - grant select,insert,update,delete on zm.* to 'zmuser'@localhost identified by 'zmpass'; - - Obviously, change at least zmpass to an actual, secure password or - passphrase. You can change zmuser as well if you like. - -4. Edit /etc/zm.conf and, at the bottom, change ZM_DB_PASS and perhaps - ZM_DB_USER to match. - -5. 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, - or if it is set incorrectly, and these complaints will show up in the - zoneminder logging system as errors. - - If you are not sure of the proper timezone specification to use, run - timedatectl. - -6. This package probably does not work with SELinux enabled at the moment. It - may be necessary to disable SELinux for httpd, or even completely for - ZoneMinder to function. The policy is being worked on and the issues will be - addressed in a later release. Run - - setenforce 0 - - for testing, and edit /etc/sysconfig/selinux to disable it at boot time. - -7. Enable and start the zoneminder service: - - systemctl enable zoneminder - systemctl start zoneminder - -8. The ZoneMinder web interface is disabled by default (which makes it rather - useless but also secure by default), you will need to edit - /etc/httpd/conf.d/zoneminder.conf to enable it. Afterwards, you can start - the web server: - - systemctl enable httpd.service - systemctl start httpd.service - -9. You should immediately visit http://localhost/zm and secure the system if - it is network facing. To do this: - - a) click Options, then System. - b) check OPT_USE_AUTH. - c) set AUTH_HASH_SECRET to a random string. - d) click Save and refresh the main browser window. - e) You should be prompted to log in; the default username/password is admin/admin. - f) Open Options again, choose the newly visible Users tab. - g) click the admin user and set a password. - - -Upgrades -======== - -1. Update /etc/zm.conf. Check for any new settings and update the version - information. Comparing /etc/zm.conf and /etc/zm.conf.rpmnew should help to - do this. - -2. You will need to upgrade the ZoneMinder database as described in the - manual. This command should be sufficient when run as root: - - zmupdate.pl --version= diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..e29f318 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Moved to rpmfusion diff --git a/redalert.wav b/redalert.wav deleted file mode 100644 index 41e23e0794bdc42f187e51b454767b51727346c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45404 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 -diff -uNr ZoneMinder-1.28.1.orig/web/views/image.php ZoneMinder-1.28.1/web/views/image.php ---- ZoneMinder-1.28.1.orig/web/views/image.php 2015-02-04 21:52:37.000000000 -0500 -+++ ZoneMinder-1.28.1/web/views/image.php 2017-02-07 21:12:51.315376682 -0500 -@@ -30,24 +30,26 @@ - if ( empty($_REQUEST['path']) ) - { - $errorText = "No image path"; --} --else --{ -- $path = $_REQUEST['path']; -- if ( !empty($user['MonitorIds']) ) -- { -- $imageOk = false; -- $pathMonId = substr( $path, 0, strspn( $path, "1234567890" ) ); -- foreach ( preg_split( '/["\'\s]*,["\'\s]*/', $user['MonitorIds'] ) as $monId ) -- { -- if ( $pathMonId == $monId ) -- { -- $imageOk = true; -- break; -+} else { -+ $dir_events = realpath(ZM_DIR_EVENTS); -+ $path = realpath($dir_events . '/' . $_REQUEST['path']); -+ $pos = strpos($path, $dir_events); -+ -+ if($pos == 0 && $pos !== false) { -+ if ( !empty($user['MonitorIds']) ) { -+ $imageOk = false; -+ $pathMonId = substr( $path, 0, strspn( $path, "1234567890" ) ); -+ foreach ( preg_split( '/["\'\s]*,["\'\s]*/', $user['MonitorIds'] ) as $monId ) { -+ if ( $pathMonId == $monId ) { -+ $imageOk = true; -+ break; -+ } - } -+ if ( !$imageOk ) -+ $errorText = "No image permissions"; - } -- if ( !$imageOk ) -- $errorText = "No image permissions"; -+ } else { -+ $errorText = "Invalid image path"; - } - } - -diff -uNr ZoneMinder-1.28.1.orig/web/views/Makefile.am ZoneMinder-1.28.1/web/views/Makefile.am ---- ZoneMinder-1.28.1.orig/web/views/Makefile.am 2015-02-04 21:52:37.000000000 -0500 -+++ ZoneMinder-1.28.1/web/views/Makefile.am 2017-02-07 21:03:29.653105953 -0500 -@@ -2,5 +2,4 @@ - - webdir = @WEB_PREFIX@/views - --dist_web_DATA = file.php \ -- image.php -+dist_web_DATA = image.php diff --git a/zoneminder-1.28.1-gcc47.patch b/zoneminder-1.28.1-gcc47.patch deleted file mode 100644 index c1e2dd5..0000000 --- a/zoneminder-1.28.1-gcc47.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -up ZoneMinder-1.28.1/src/zm_local_camera.cpp.gcc47 ZoneMinder-1.28.1/src/zm_local_camera.cpp ---- ZoneMinder-1.28.1/src/zm_local_camera.cpp.gcc47 2015-02-04 21:52:37.000000000 -0500 -+++ ZoneMinder-1.28.1/src/zm_local_camera.cpp 2015-06-12 11:07:38.295420171 -0400 -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include - #include - #include -diff -up ZoneMinder-1.28.1/src/zm_logger.cpp.gcc47 ZoneMinder-1.28.1/src/zm_logger.cpp ---- ZoneMinder-1.28.1/src/zm_logger.cpp.gcc47 2015-02-04 21:52:37.000000000 -0500 -+++ ZoneMinder-1.28.1/src/zm_logger.cpp 2015-06-12 11:07:38.296420176 -0400 -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - - bool Logger::smInitialised = false; - Logger *Logger::smInstance = 0; -diff -up ZoneMinder-1.28.1/src/zm_thread.h.gcc47 ZoneMinder-1.28.1/src/zm_thread.h diff --git a/zoneminder-1.28.1-gcrypt.patch b/zoneminder-1.28.1-gcrypt.patch deleted file mode 100644 index 0f18ae6..0000000 --- a/zoneminder-1.28.1-gcrypt.patch +++ /dev/null @@ -1,103 +0,0 @@ -diff -up ZoneMinder-1.28.1/configure.ac.gcrypt ZoneMinder-1.28.1/configure.ac ---- ZoneMinder-1.28.1/configure.ac.gcrypt 2015-06-12 11:10:08.256091967 -0400 -+++ ZoneMinder-1.28.1/configure.ac 2015-06-12 11:19:51.190736931 -0400 -@@ -40,7 +40,7 @@ AC_ARG_VAR(ZM_DB_HOST,[Hostname where Zo - AC_ARG_VAR(ZM_DB_NAME,[Name of ZoneMinder database, default zm]) - AC_ARG_VAR(ZM_DB_USER,[Name of ZoneMinder database user, default zmuser]) - AC_ARG_VAR(ZM_DB_PASS,[Password of ZoneMinder database user, default zmpass]) --AC_ARG_VAR(ZM_SSL_LIB,[Library to use for ssl functions, default gnutls]) -+AC_ARG_VAR(ZM_SSL_LIB,[Library to use for MD5 function, default libgcrypt]) - AC_ARG_VAR(ZM_MYSQL_ENGINE,[MySQL engine to use with database, default InnoDB]) - AC_ARG_VAR(ZM_RUNDIR,[Location of transient process files, default /var/run/zm]) - AC_ARG_VAR(ZM_SOCKDIR,[Location of Unix domain socket files, default /var/run/zm]) -@@ -64,7 +64,7 @@ if test "$ZM_DB_PASS" == ""; then - AC_SUBST(ZM_DB_PASS,[zmpass]) - fi - if test "$ZM_SSL_LIB" == ""; then -- AC_SUBST(ZM_SSL_LIB,gnutls) -+ AC_SUBST(ZM_SSL_LIB,libgcrypt) - fi - if test "$ZM_MYSQL_ENGINE" == ""; then - AC_SUBST(ZM_MYSQL_ENGINE,InnoDB) -@@ -314,19 +314,10 @@ AC_CHECK_LIB(pthread,pthread_create,,AC_ - AC_CHECK_LIB(dl,dlsym,,AC_MSG_ERROR(zm requires libdl.a)) - if test "$ZM_SSL_LIB" == "openssl"; then - AC_CHECK_HEADERS(openssl/md5.h,,AC_MSG_WARN(zm requires openssl/md5.h header to be installed for openssl),) --AC_CHECK_LIB(crypto,MD5,,AC_MSG_WARN([libcrypto.a is required for authenticated streaming - use ZM_SSL_LIB option to select gnutls instead])) -+AC_CHECK_LIB(crypto,MD5,,AC_MSG_WARN([libcrypto.a is required for authenticated streaming - use ZM_SSL_LIB option to select libgcrypt instead])) - else --AC_CHECK_HEADERS(gnutls/openssl.h,AC_SUBST(ZM_HAS_GNUTLS_OPENSSL,1),AC_SUBST(ZM_HAS_GNUTLS_OPENSSL,0),) --AC_CHECK_HEADERS(gnutls/gnutls.h,AC_SUBST(ZM_HAS_GNUTLS,1),AC_SUBST(ZM_HAS_GNUTLS,0),) --if test "$ZM_HAS_GNUTLS_OPENSSL" == "0" && test "$ZM_HAS_GNUTLS" == "0"; then --AC_MSG_WARN(gnutls is required for authenticated streaming - use ZM_SSL_LIB option to select openssl instead) --fi --AC_CHECK_HEADERS(gcrypt.h,,AC_MSG_WARN(zm requires libgcrypt headers to be installed for gnutls),) -+AC_CHECK_HEADERS(gcrypt.h,,AC_MSG_WARN(zm requires libgcrypt headers to be installed),) - AC_CHECK_LIB(gcrypt,gcry_check_version,,AC_MSG_WARN([libgcrypt.a is required for authenticated streaming - use ZM_SSL_LIB option to select openssl instead])) --AC_CHECK_LIB(gnutls,gnutls_fingerprint,,AC_MSG_WARN([libgnutls.a is required for authenticated streaming - use ZM_SSL_LIB option to select openssl instead])) --if test "$ZM_HAS_GNUTLS_OPENSSL" == "1"; then --AC_CHECK_LIB(gnutls-openssl,MD5,,AC_MSG_WARN([libgnutls.a is required for authenticated streaming - use ZM_SSL_LIB option to select openssl instead])) --fi - fi - AC_CHECK_LIB(pcre,pcre_compile,,AC_MSG_WARN(libpcre.a may be required for remote/network camera support)) - AC_CHECK_LIB(z,zlibVersion) -@@ -386,14 +377,6 @@ AC_CHECK_HEADERS(curl/curl.h,,,) - if test "$ZM_SSL_LIB" == "openssl"; then - AC_CHECK_DECLS(MD5,,AC_MSG_ERROR([zm requires openssl/md5.h - use ZM_SSL_LIB option to select gnutls instead]),[#include - #include ]) --else --if test "$ZM_HAS_GNUTLS_OPENSSL" == "1"; then --AC_CHECK_DECLS(MD5,,AC_MSG_ERROR([zm requires gnutls/openssl.h - use ZM_SSL_LIB option to select openssl instead]),[#include --#include ]) --else --AC_CHECK_DECLS(gnutls_fingerprint,,AC_MSG_ERROR([zm requires gnutls/gnutls.h - use ZM_SSL_LIB option to select openssl instead]),[#include --#include ]) --fi - fi - AC_CHECK_DECLS(backtrace,,,[#include ]) - AC_CHECK_DECLS(backtrace_symbols,,,[#include ]) -diff -up ZoneMinder-1.28.1/src/zm_user.cpp.gcrypt ZoneMinder-1.28.1/src/zm_user.cpp ---- ZoneMinder-1.28.1/src/zm_user.cpp.gcrypt 2015-02-04 21:52:37.000000000 -0500 -+++ ZoneMinder-1.28.1/src/zm_user.cpp 2015-06-12 11:10:08.256091967 -0400 -@@ -144,6 +144,18 @@ User *zmLoadUser( const char *username, - return( user ); - } - -+#ifdef HAVE_GCRYPT_H -+#define HAVE_DECL_MD5 1 -+#define MD5_DIGEST_LENGTH 16 -+static unsigned char *MD5(const unsigned char *data, unsigned long len, -+ unsigned char *md) -+{ -+ gcry_md_hash_buffer(GCRY_MD_MD5, md, data, len); -+ -+ return md; -+} -+#endif -+ - // Function to validate an authentication string - User *zmLoadAuthUser( const char *auth, bool use_remote_addr ) - { -diff -up ZoneMinder-1.28.1/src/zm_user.h.gcrypt ZoneMinder-1.28.1/src/zm_user.h ---- ZoneMinder-1.28.1/src/zm_user.h.gcrypt 2015-06-12 11:10:08.257091972 -0400 -+++ ZoneMinder-1.28.1/src/zm_user.h 2015-06-12 11:22:11.503378854 -0400 -@@ -23,18 +23,11 @@ - #ifndef ZM_USER_H - #define ZM_USER_H - --#if HAVE_GNUTLS_OPENSSL_H --#include --#endif --#if HAVE_GNUTLS_GNUTLS_H --#include --#endif -- - #if HAVE_GCRYPT_H - #include - #elif HAVE_LIBCRYPTO - #include --#endif // HAVE_L || HAVE_LIBCRYPTO -+#endif // HAVE_GCRYPT_H || HAVE_LIBCRYPTO - - class User - { diff --git a/zoneminder-1.28.1-noffmpeg.patch b/zoneminder-1.28.1-noffmpeg.patch deleted file mode 100644 index fab1a30..0000000 --- a/zoneminder-1.28.1-noffmpeg.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -up ZoneMinder-1.28.1/configure.ac.noffmpeg ZoneMinder-1.28.1/configure.ac ---- ZoneMinder-1.28.1/configure.ac.noffmpeg 2015-06-12 11:01:37.147798556 -0400 -+++ ZoneMinder-1.28.1/configure.ac 2015-06-12 11:04:39.315618375 -0400 -@@ -331,16 +331,16 @@ fi - AC_CHECK_LIB(pcre,pcre_compile,,AC_MSG_WARN(libpcre.a may be required for remote/network camera support)) - AC_CHECK_LIB(z,zlibVersion) - AC_CHECK_LIB(x264,x264_predict_16x16_init) --AC_CHECK_LIB(avutil,av_malloc,,AC_MSG_WARN(libavutil.a may be required for MPEG streaming)) -+dnl AC_CHECK_LIB(avutil,av_malloc,,AC_MSG_WARN(libavutil.a may be required for MPEG streaming)) - # Don't bother to warn about this one --AC_CHECK_LIB(avcore,av_image_copy,,) --AC_CHECK_LIB(avcodec,avcodec_version,,AC_MSG_WARN(libavcodec.a is required for MPEG streaming)) --AC_CHECK_LIB(avformat,avformat_version,,AC_MSG_WARN(libavformat.a is required for MPEG streaming)) -+dnl AC_CHECK_LIB(avcore,av_image_copy,,) -+dnl AC_CHECK_LIB(avcodec,avcodec_version,,AC_MSG_WARN(libavcodec.a is required for MPEG streaming)) -+dnl AC_CHECK_LIB(avformat,avformat_version,,AC_MSG_WARN(libavformat.a is required for MPEG streaming)) - #AC_CHECK_LIB(avcodec,avcodec_open,,AC_MSG_WARN(libavcodec.a is required for MPEG streaming)) - #AC_CHECK_LIB(avformat,av_new_stream,,AC_MSG_WARN(libavformat.a is required for MPEG streaming)) --AC_CHECK_LIB(avdevice,avdevice_register_all,,AC_MSG_WARN(libavdevice.a may be required for MPEG streaming)) --AC_CHECK_LIB(swscale,sws_scale,,,-lswscale) --AC_CHECK_LIB(vlc,libvlc_new,,AC_MSG_WARN(libvlc.a may be required for streaming)) -+dnl AC_CHECK_LIB(avdevice,avdevice_register_all,,AC_MSG_WARN(libavdevice.a may be required for MPEG streaming)) -+dnl AC_CHECK_LIB(swscale,sws_scale,,,-lswscale) -+dnl AC_CHECK_LIB(vlc,libvlc_new,,AC_MSG_WARN(libvlc.a may be required for streaming)) - AC_CHECK_LIB(bz2,BZ2_bzCompress,,AC_MSG_WARN(zm requires libbz2.a for recent versions of ffmpeg)) - AC_CHECK_LIB(z,compress,,) - AC_CHECK_LIB(curl,curl_global_init,,) diff --git a/zoneminder-1.28.1-runlevel.patch b/zoneminder-1.28.1-runlevel.patch deleted file mode 100644 index 427cf34..0000000 --- a/zoneminder-1.28.1-runlevel.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up ZoneMinder-1.28.1/scripts/zm.in.runlevel ZoneMinder-1.28.1/scripts/zm.in ---- ZoneMinder-1.28.1/scripts/zm.in.runlevel 2015-06-12 10:58:22.477921885 -0400 -+++ ZoneMinder-1.28.1/scripts/zm.in 2015-06-12 10:59:53.869333454 -0400 -@@ -1,6 +1,6 @@ - #!/bin/sh - # description: ZoneMinder is the top Linux video camera security and surveillance solution. ZoneMinder is intended for use in single or multi-camera video security applications.Copyright: Philip Coombes, Corey DeLasaux 2003-2008 --# chkconfig: 2345 99 00 -+# chkconfig: - 99 00 - # processname: zmpkg.pl - - # This script is intended for use with legacy SysV init environments ONLY diff --git a/zoneminder-svn-checkout.sh b/zoneminder-svn-checkout.sh deleted file mode 100755 index e30ff4a..0000000 --- a/zoneminder-svn-checkout.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -DATE=$(date +%Y%m%d) - -set -x - -rm -rf zm -svn export http://svn.zoneminder.com/svn/zm/trunk zm -tar cJf zoneminder-${DATE}svn.tar.xz zm - -rm -rf zm diff --git a/zoneminder.conf b/zoneminder.conf deleted file mode 100644 index 597ea2b..0000000 --- a/zoneminder.conf +++ /dev/null @@ -1,45 +0,0 @@ -# The Zoneminder web interface has been disabled by default due to a small -# security issue in the default install. -# -# When using Zoneminder's own authentication, recorded CCTV images are -# accessible from the web directly without passing the authentication. This -# means any attacker could see your CCTV images without a password. In order -# to avoid this you can disable Zoneminder's authentication and configure -# standard Apache authentication (see the Apache documentation for details on -# this). -# -# If you still wish to use Zoneminder's own authentication, or have an -# internal site which needs no authentication, you need to delete the line -# marked below and restart Apache. - -Alias /zm "/usr/share/zoneminder/www" - - Options -Indexes +MultiViews +FollowSymLinks - AllowOverride All - - # Apache 2.4 - Require all granted - - - # Apache 2.2 - Order deny,allow - Allow from all - - # The code unfortunately uses short tags in many places - php_value short_open_tag 1 - - -ScriptAlias /cgi-bin/zm "/usr/libexec/zoneminder/cgi-bin" - - AllowOverride All - Options ExecCGI - - # Apache 2.4 - Require all granted - - - # Apache 2.2 - Order deny,allow - Allow from all - - diff --git a/zoneminder.logrotate b/zoneminder.logrotate deleted file mode 100644 index 7bd1d18..0000000 --- a/zoneminder.logrotate +++ /dev/null @@ -1,8 +0,0 @@ -/var/log/zoneminder/*.log { - missingok - notifempty - sharedscripts - postrotate - /usr/bin/zmpkg.pl logrot 2> /dev/null > /dev/null || : - endscript -} diff --git a/zoneminder.service b/zoneminder.service deleted file mode 100644 index d59fc67..0000000 --- a/zoneminder.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Video security and surveillance system - -[Service] -Type=forking -ExecStart=/usr/bin/zmpkg.pl start -ExecReload=/usr/bin/zmpkg.pl reload -PIDFile=/run/zoneminder/zm.pid - -[Install] -WantedBy=multi-user.target - diff --git a/zoneminder.spec b/zoneminder.spec deleted file mode 100644 index 5d2d507..0000000 --- a/zoneminder.spec +++ /dev/null @@ -1,494 +0,0 @@ -%define zmuid $(id -un) -%define zmgid $(id -gn) -%define zmuid_final apache -%define zmgid_final apache - -Name: zoneminder -Version: 1.28.1 -Release: 8%{?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 -Source2: zoneminder.conf -Source3: redalert.wav -Source4: README.Fedora -Source5: http://downloads.sourceforge.net/jscalendar/jscalendar-1.0.zip -Source6: zoneminder.service -Source7: zoneminder.logrotate -# Need to unravel the proper mootools files to grab from upstream, since the -# number of them keeps multiplying. In the meantime, rely on the ones bundled -# with zoneminder. As these are javascript, there is no guideline violation -# here. -#Source8: http://mootools.net/download/get/mootools-1.2.3-core-yc.js -Patch1: zoneminder-1.28.1-cve-2017-5595.patch -Patch2: zoneminder-1.28.1-runlevel.patch -Patch3: zoneminder-1.28.1-noffmpeg.patch -Patch11: zoneminder-1.28.1-gcc47.patch -Patch12: zoneminder-1.28.1-gcrypt.patch - -BuildRequires: automake gnutls-devel systemd-units -BuildRequires: mysql-devel pcre-devel libjpeg-devel -BuildRequires: polkit-devel -BuildRequires: perl-generators -BuildRequires: perl(Archive::Tar) -BuildRequires: perl(Archive::Zip) -BuildRequires: perl(Date::Manip) -BuildRequires: perl(DBD::mysql) -BuildRequires: perl(DBI) -BuildRequires: perl(ExtUtils::MakeMaker) -BuildRequires: perl(Getopt::Long) -BuildRequires: perl(LWP::UserAgent) -BuildRequires: perl(MIME::Entity) -BuildRequires: perl(MIME::Lite) -BuildRequires: perl(PHP::Serialization) -BuildRequires: perl(Sys::Mmap) -BuildRequires: perl(Sys::Syslog) -BuildRequires: perl(Time::HiRes) - -Requires: httpd -Requires: php -Requires: php-mysqli -Requires: cambozola -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(post): systemd-units systemd-sysv -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} - -# Unpack jscalendar and move some files around -%setup -q -D -T -a 5 -n ZoneMinder-%{version} -mkdir jscalendar-doc -pushd jscalendar-1.0 -mv *html *php doc/* README ../jscalendar-doc -rmdir doc -popd - -%patch1 -p1 -b .cve-2017-5595 -%patch2 -p1 -b .runlevel -%patch3 -p1 -b .noffmpeg -%patch11 -p1 -b .gcc47 -%patch12 -p1 -b .gcrypt -cp %{SOURCE4} README.Fedora -chmod -x src/zm_event.cpp src/zm_user.h - - -%build -autoreconf --install - -OPTS="" -%ifnarch %{ix86} x86_64 - OPTS="$OPTS --disable-crashtrace" -%endif - -export ZM_RUNDIR=/var/run/zoneminder -export ZM_TMPDIR=/var/lib/zoneminder/temp -%configure \ - --with-libarch=%{_lib} \ - --with-mysql=%{_prefix} \ - --with-webdir=%{_datadir}/%{name}/www \ - --with-cgidir=%{_libexecdir}/%{name}/cgi-bin \ - --with-webuser=%{zmuid} \ - --with-webgroup=%{zmgid} \ - --enable-mmap=yes \ - --disable-debug \ - $OPTS - -# Have to do this now because the configure script wipes out modifications made to this file -cat <> db/zm_create.sql -# Fedora change: -# Alter some default paths to match the default URL and selinux expectations -update Config set Value = '/cgi-bin/zm/nph-zms' where Name = 'ZM_PATH_ZMS'; -update Config set Value = '/var/log/zoneminder' where Name = 'ZM_PATH_LOGS'; -update Config set Value = '/var/log/zoneminder/zm_debug_log+' where Name = 'ZM_EXTRA_DEBUG_LOG'; -update Config set Value = '/var/log/zoneminder/zm_xml.log' where Name = 'ZM_EYEZM_LOG_FILE'; -update Config set Value = '/var/lib/zoneminder/sock' where Name = 'ZM_PATH_SOCKS'; -update Config set Value = '/var/lib/zoneminder/swap' where Name = 'ZM_PATH_SWAP'; -update Config set Value = '/var/spool/zoneminder-upload' where Name = 'ZM_UPLOAD_FTP_LOC_DIR'; -EOF - -make %{?_smp_mflags} -%{__perl} -pi -e 's/(ZM_WEB_USER=).*$/${1}%{zmuid_final}/;' \ - -e 's/(ZM_WEB_GROUP=).*$/${1}%{zmgid_final}/;' zm.conf - - -%install -install -d %{buildroot}/%{_localstatedir}/run -make install DESTDIR=%{buildroot} \ - INSTALLDIRS=vendor -rm -rf %{buildroot}/%{perl_vendorarch} %{buildroot}/%{perl_archlib} -rm -f %{buildroot}/%{_bindir}/zmx10.pl - -install -m 755 -d %{buildroot}/var/log/zoneminder -for dir in events images temp -do - install -m 755 -d %{buildroot}/var/lib/zoneminder/$dir - rmdir %{buildroot}/%{_datadir}/zoneminder/www/$dir - ln -sf ../../../../var/lib/zoneminder/$dir %{buildroot}/%{_datadir}/zoneminder/www/$dir -done -install -m 755 -d %{buildroot}/var/lib/zoneminder/sock -install -m 755 -d %{buildroot}/var/lib/zoneminder/swap -install -m 755 -d %{buildroot}/var/spool/zoneminder-upload - -install -D -m 644 %{SOURCE2} %{buildroot}/etc/httpd/conf.d/zoneminder.conf -install -D -m 755 %{SOURCE3} %{buildroot}/%{_datadir}/zoneminder/www/sounds/redalert.wav -install -D -m 644 %{SOURCE6} %{buildroot}/%{_unitdir}/zoneminder.service -install -D -m 644 %{SOURCE7} %{buildroot}/etc/logrotate.d/zoneminder - -# Install jscalendar - this really should be in its own package -install -d -m 755 %{buildroot}/%{_datadir}/%{name}/www/jscalendar -cp -rp jscalendar-1.0/* %{buildroot}/%{_datadir}/zoneminder/www/jscalendar - -# Set up cambozola -pushd %{buildroot}/%{_datadir}/zoneminder/www -ln -s ../../java/cambozola.jar -popd - -install -d -m 755 %{buildroot}/etc/tmpfiles.d -cat > %{buildroot}/etc/tmpfiles.d/zoneminder.conf </dev/null 2>&1 || : -fi - -%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 README.Fedora jscalendar-doc -%config(noreplace) %attr(640,root,%{zmgid_final}) /etc/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 -%{_datadir}/polkit-1/actions/com.zoneminder.systemctl.policy -%{_datadir}/polkit-1/rules.d/com.zoneminder.systemctl.rules - -%{_bindir}/zma -%{_bindir}/zmaudit.pl -%{_bindir}/zmc -%{_bindir}/zmcamtool.pl -%{_bindir}/zmcontrol.pl -%{_bindir}/zmdc.pl -%{_bindir}/zmf -%{_bindir}/zmfilter.pl -%{_bindir}/zmpkg.pl -%{_bindir}/zmstreamer -%{_bindir}/zmsystemctl.pl -%{_bindir}/zmtrack.pl -%{_bindir}/zmtrigger.pl -%{_bindir}/zmu -%{_bindir}/zmupdate.pl -%{_bindir}/zmvideo.pl -%{_bindir}/zmwatch.pl - -%{perl_vendorlib}/ZoneMinder* -%{_mandir}/man*/* -%dir %{_libexecdir}/zoneminder -%{_libexecdir}/zoneminder/cgi-bin -%dir %{_datadir}/zoneminder -%{_datadir}/zoneminder/db -%{_datadir}/zoneminder/www - -%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 -* Tue Feb 7 2017 Charles R. Anderson - 1.28.1-8 -- CVE-2017-5595 (rhbz#1419509) - -* Fri Jan 6 2017 Charles R. Anderson - 1.28.1-7 -- Change Requires php-mysql --> php-mysqli - -* Mon May 16 2016 Jitka Plesnikova - 1.28.1-6 -- Perl 5.24 rebuild - -* Fri Feb 05 2016 Fedora Release Engineering - 1.28.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Fri Jun 19 2015 Fedora Release Engineering - 1.28.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Fri Jun 12 2015 Charles R. Anderson - 1.28.1-3 -- Update patches to apply against 1.28.1 -- Remove unneeded patches -- zmfix no longer provided -- zmcamtool.pl and zmsystemctl.pl added - -* Sat Jun 06 2015 Jitka Plesnikova - 1.28.1-2 -- Perl 5.22 rebuild - -* Mon Sep 01 2014 Jitka Plesnikova - 1.25.0-20 -- Perl 5.20 rebuild - -* Thu Aug 21 2014 Kevin Fenzi - 1.25.0-19 -- Rebuild for rpm bug 1131960 - -* Mon Aug 18 2014 Fedora Release Engineering - 1.25.0-18 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Thu Jun 12 2014 Petr Pisar - 1.25.0-17 -- Allow autotools to install missing files (bug #1059131) -- Fix a format-security warning - -* Sat Jun 07 2014 Fedora Release Engineering - 1.25.0-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Sun Aug 04 2013 Fedora Release Engineering - 1.25.0-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Mon Jul 29 2013 Petr Pisar - 1.25.0-14 -- Perl 5.18 rebuild -- Specify mandatory perl dependencies - -* Fri Feb 15 2013 Fedora Release Engineering - 1.25.0-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Mon Jan 21 2013 Adam Tkac - 1.25.0-12 -- rebuild due to "jpeg8-ABI" feature drop - -* Mon Jan 7 2013 Remi Collet - 1.25.0-11 -- fix configuration file for httpd 2.4, #871502 - -* Fri Dec 21 2012 Adam Tkac - 1.25.0-10 -- rebuild against new libjpeg - -* Thu Aug 09 2012 Jason L Tibbitts III - 1.25.0-9 -- Add patch to work around v4l2 api breakage in 3.5 kernel. - -* Sun Jul 22 2012 Fedora Release Engineering - 1.25.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Sat Jun 23 2012 Petr Pisar - 1.25.0-7 -- Perl 5.16 rebuild - -* Wed Mar 21 2012 Jason L Tibbitts III - 1.25.0-6 -- Fix stupid thinko in sql modifications. - -* Sat Feb 25 2012 Jason L Tibbitts III - 1.25.0-5 -- Clean up macro usage. - -* Sat Feb 25 2012 Jason L Tibbitts III - 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 - 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 - 1.25.0-2 -- Rebuild for new pcre. - -* Thu Jan 19 2012 Jason L Tibbitts III - 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 - 1.24.4-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Thu Sep 15 2011 Jason L Tibbitts III - 1.24.4-3 -- Re-add the dist-tag that somehow got lost. - -* Thu Sep 15 2011 Jason L Tibbitts III - 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 - 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 - 1.24.3-7.20110324svn3310 -- Perl mass rebuild - -* Wed Jul 20 2011 Petr Sabata - 1.24.3-6.20110324svn3310 -- Perl mass rebuild - -* Mon May 09 2011 Jason L Tibbitts III - 1.24.3-5.20110324svn3310 -- Bump for gnutls update. - -* Thu Mar 24 2011 Jason L Tibbitts III - 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 - 1.24.3-3 -- rebuilt for mysql 5.5.10 (soname bump in libmysqlclient) - -* Tue Feb 08 2011 Fedora Release Engineering - 1.24.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Tue Jan 25 2011 Jason L Tibbitts III - 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 - 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 - 1.24.2-5 -- Mass rebuild with perl-5.12.0 - -* Fri Dec 4 2009 Stepan Kasal - 1.24.2-4 -- rebuild against perl 5.10.1 -- use Perl vendorarch and archlib variables correctly - -* Mon Jul 27 2009 Fedora Release Engineering - 1.24.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Wed Jul 22 2009 Jason L Tibbitts III - 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 - 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 - 1.24.1-3 -- Remove unused Sys::Mmap perl dependency RPM is finding - -* Sat Apr 11 2009 Martin Ebourne - 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 - 1.24.1-1 -- Patch for gcc 4.4 compilation errors -- Upgrade to 1.24.1 - -* Wed Feb 25 2009 Fedora Release Engineering - 1.23.3-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Sat Jan 24 2009 Caolán McNamara - 1.23.3-3 -- rebuild for dependencies - -* Mon Dec 15 2008 Martin Ebourne - 1.23.3-2 -- Fix permissions on zm.conf - -* Fri Jul 11 2008 Jason L Tibbitts III - 1.23.3-1 -- Initial attempt at packaging 1.23. - -* Tue Jul 1 2008 Martin Ebourne - 1.22.3-15 -- Add perl module compat dependency, bz #453590 - -* Tue May 6 2008 Martin Ebourne - 1.22.3-14 -- Remove default runlevel, bz #441315 - -* Mon Apr 28 2008 Jason L Tibbitts III - 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 - 1.22.3-12 -- Autorebuild for GCC 4.3 - -* Thu Jan 3 2008 Martin Ebourne - 1.22.3-11 -- Fix compilation on gcc 4.3 - -* Thu Dec 6 2007 Martin Ebourne - 1.22.3-10 -- Rebuild for new openssl - -* Thu Aug 2 2007 Martin Ebourne - 1.22.3-8 -- Fix licence tag - -* Thu Jul 12 2007 Martin Ebourne - 1.22.3-7 -- Fixes from testing by Jitz including missing dependencies and database creation - -* Sat Jun 30 2007 Martin Ebourne - 1.22.3-6 -- Disable crashtrace on ppc - -* Sat Jun 30 2007 Martin Ebourne - 1.22.3-5 -- Fix uid for directories in /var/lib/zoneminder - -* Tue Jun 26 2007 Martin Ebourne - 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 - 1.22.3-3 -- Changes recommended in review by Jason Tibbitts - -* Mon Apr 2 2007 Martin Ebourne - 1.22.3-2 -- Standardised on package name of zoneminder - -* Thu Dec 28 2006 Martin Ebourne - 1.22.3-1 -- First version. Uses some parts from zm-1.20.1 by Corey DeLasaux and Serg Oskin