summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Anderson <gentoofan23@gentoo.org>2009-08-03 11:19:59 +0000
committerThomas Anderson <gentoofan23@gentoo.org>2009-08-03 11:19:59 +0000
commite2cfaebd0c1918a31c717eaf65c2eb685b68df31 (patch)
tree98e2ecff8e6874254793dc4d3d7d70044e8a3689 /www-misc
parent.tbz2 filetype support wrt #219412 by Ian Abbott (diff)
downloadgentoo-2-e2cfaebd0c1918a31c717eaf65c2eb685b68df31.tar.gz
gentoo-2-e2cfaebd0c1918a31c717eaf65c2eb685b68df31.tar.bz2
gentoo-2-e2cfaebd0c1918a31c717eaf65c2eb685b68df31.zip
Add www-misc/zoneminder-1.24.2; fixes bug #262019 and security bug #236517.
(Portage version: 2.1.6.13/cvs/Linux x86_64)
Diffstat (limited to 'www-misc')
-rw-r--r--www-misc/zoneminder/ChangeLog12
-rw-r--r--www-misc/zoneminder/files/1.24.2/Makefile.am.patch15
-rw-r--r--www-misc/zoneminder/files/1.24.2/db_upgrade_script_location.patch11
-rw-r--r--www-misc/zoneminder/files/1.24.2/zm_create.sql.in.patch28
-rw-r--r--www-misc/zoneminder/files/1.24.2/zm_remote_camera_http.patch55
-rw-r--r--www-misc/zoneminder/zoneminder-1.24.2.ebuild148
6 files changed, 268 insertions, 1 deletions
diff --git a/www-misc/zoneminder/ChangeLog b/www-misc/zoneminder/ChangeLog
index 6f589ae372fb..32575c1682e6 100644
--- a/www-misc/zoneminder/ChangeLog
+++ b/www-misc/zoneminder/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for www-misc/zoneminder
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/www-misc/zoneminder/ChangeLog,v 1.35 2009/07/16 08:59:19 tove Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-misc/zoneminder/ChangeLog,v 1.36 2009/08/03 11:19:59 gentoofan23 Exp $
+
+*zoneminder-1.24.2 (03 Aug 2009)
+
+ 03 Aug 2009; Thomas Anderson <gentoofan23@gentoo.org>
+ +files/1.24.2/Makefile.am.patch, +zoneminder-1.24.2.ebuild,
+ +files/1.24.2/db_upgrade_script_location.patch,
+ +files/1.24.2/zm_create.sql.in.patch,
+ +files/1.24.2/zm_remote_camera_http.patch:
+ Add www-misc/zoneminder-1.24.2; fixes bug #262019 and security bug
+ #236517.
16 Jul 2009; Torsten Veller <tove@gentoo.org> zoneminder-1.23.3.ebuild,
metadata.xml:
diff --git a/www-misc/zoneminder/files/1.24.2/Makefile.am.patch b/www-misc/zoneminder/files/1.24.2/Makefile.am.patch
new file mode 100644
index 000000000000..90dd4769efbf
--- /dev/null
+++ b/www-misc/zoneminder/files/1.24.2/Makefile.am.patch
@@ -0,0 +1,15 @@
+Index: ZoneMinder-1.23.1/Makefile.am
+===================================================================
+--- ZoneMinder-1.23.1.orig/Makefile.am
++++ ZoneMinder-1.23.1/Makefile.am
+@@ -19,8 +19,8 @@ EXTRA_DIST = \
+ # Yes, you are correct. This is a HACK!
+ install-data-hook:
+ ( cd $(DESTDIR)$(sysconfdir); chown $(webuser):$(webgroup) $(sysconf_DATA); chmod 600 $(sysconf_DATA) )
+- -( if ! test -e $(RUNDIR); then mkdir $(RUNDIR); fi )
+- ( if ! test -e $(ZM_RUNDIR); then mkdir $(ZM_RUNDIR); fi; chown $(webuser):$(webgroup) $(ZM_RUNDIR); chmod u+w $(ZM_RUNDIR) )
++ -( if ! test -e $(DESTDIR)$(RUNDIR); then mkdir $(DESTDIR)$(RUNDIR); fi )
++ ( if ! test -e $(DESTDIR)$(ZM_RUNDIR); then mkdir $(DESTDIR)$(ZM_RUNDIR); fi; chown $(webuser):$(webgroup) $(DESTDIR)$(ZM_RUNDIR); chmod u+w $(DESTDIR)$(ZM_RUNDIR) )
+
+ uninstall-hook:
+ @-( cd $(DESTDIR)$(webdir); rm -rf events graphics images sounds temp )
diff --git a/www-misc/zoneminder/files/1.24.2/db_upgrade_script_location.patch b/www-misc/zoneminder/files/1.24.2/db_upgrade_script_location.patch
new file mode 100644
index 000000000000..41b537c4167a
--- /dev/null
+++ b/www-misc/zoneminder/files/1.24.2/db_upgrade_script_location.patch
@@ -0,0 +1,11 @@
+--- ZoneMinder-1.24.1/zm.conf.in.orig 2009-03-23 13:55:43.000000000 +0000
++++ ZoneMinder-1.24.1/zm.conf.in 2009-03-23 13:57:22.000000000 +0000
+@@ -13,7 +13,7 @@
+ ZM_VERSION=@VERSION@
+
+ # Path to build directory, used mostly for finding DB upgrade scripts
+-ZM_PATH_BUILD=@PATH_BUILD@
++ZM_PATH_BUILD=/usr/share/zoneminder
+
+ # Build time, used to record when to trigger various checks
+ ZM_TIME_BUILD=@TIME_BUILD@
diff --git a/www-misc/zoneminder/files/1.24.2/zm_create.sql.in.patch b/www-misc/zoneminder/files/1.24.2/zm_create.sql.in.patch
new file mode 100644
index 000000000000..55be4e4662cf
--- /dev/null
+++ b/www-misc/zoneminder/files/1.24.2/zm_create.sql.in.patch
@@ -0,0 +1,28 @@
+diff --git ZoneMinder-1.24.2/db/zm_create.sql.in ZoneMinder-1.24.2-ta/db/zm_create.sql.in
+index fc7eb5d..e2bda24 100644
+--- ZoneMinder-1.24.2/db/zm_create.sql.in
++++ ZoneMinder-1.24.2-ta/db/zm_create.sql.in
+@@ -642,7 +642,7 @@ insert into Config set Id = 38, Name = 'ZM_HTTP_TIMEOUT', Value = '2500', Type =
+ insert into Config set Id = 39, Name = 'ZM_MIN_RTP_PORT', Value = '40200', Type = 'integer', DefaultValue = '40200', Hint = 'integer', Pattern = '(?-xism:^(\d+)$)', Format = ' $1 ', Prompt = 'Minimum port that ZoneMinder will listen for RTP traffic on', Help = 'When ZoneMinder communicates with MPEG4 capable cameras using RTP with the unicast method it must open ports for the camera to connect back to for control and streaming purposes. This setting specifies the minimum port number that ZoneMinder will use. Ordinarily two adjacent ports are used for each camera, one for control packets and one for data packets. This port should be set to an even number, you may also need to open up a hole in your firewall to allow cameras to connect back if you wish to use unicasting.', Category = 'network', Readonly = '0', Requires = '';
+ insert into Config set Id = 40, Name = 'ZM_MAX_RTP_PORT', Value = '40499', Type = 'integer', DefaultValue = '40499', Hint = 'integer', Pattern = '(?-xism:^(\d+)$)', Format = ' $1 ', Prompt = 'Maximum port that ZoneMinder will listen for RTP traffic on', Help = 'When ZoneMinder communicates with MPEG4 capable cameras using RTP with the unicast method it must open ports for the camera to connect back to for control and streaming purposes. This setting specifies the maximum port number that ZoneMinder will use. Ordinarily two adjacent ports are used for each camera, one for control packets and one for data packets. This port should be set to an even number, you may also need to open up a hole in your firewall to allow cameras to connect back if you wish to use unicasting. You should also ensure that you have opened up at least two ports for each monitor that will be connecting to unicasting network cameras.', Category = 'network', Readonly = '0', Requires = '';
+ insert into Config set Id = 41, Name = 'ZM_OPT_FFMPEG', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?i-xsm:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Is the ffmpeg video encoder/decoder installed', Help = 'ZoneMinder can optionally encode a series of video images into an MPEG encoded movie file for viewing, downloading or storage. This option allows you to specify whether you have the ffmpeg tools installed. Note that creating MPEG files can be fairly CPU and disk intensive and is not a required option as events can still be reviewed as video streams without it.', Category = 'images', Readonly = '0', Requires = '';
+-insert into Config set Id = 42, Name = 'ZM_PATH_FFMPEG', Value = '/usr/local/bin/ffmpeg', Type = 'string', DefaultValue = '/usr/local/bin/ffmpeg', Hint = '/absolute/path/to/somewhere', Pattern = '(?-xism:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to (optional) ffmpeg mpeg encoder', Help = 'This path should point to where ffmpeg has been installed.', Category = 'images', Readonly = '0', Requires = 'ZM_OPT_FFMPEG=1';
++insert into Config set Id = 42, Name = 'ZM_PATH_FFMPEG', Value = '/usr/bin/ffmpeg', Type = 'string', DefaultValue = '/usr/bin/ffmpeg', Hint = '/absolute/path/to/somewhere', Pattern = '(?-xism:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to (optional) ffmpeg mpeg encoder', Help = 'This path should point to where ffmpeg has been installed.', Category = 'images', Readonly = '0', Requires = 'ZM_OPT_FFMPEG=1';
+ insert into Config set Id = 43, Name = 'ZM_FFMPEG_INPUT_OPTIONS', Value = '', Type = 'string', DefaultValue = '', Hint = 'string', Pattern = '(?-xism:^(.+)$)', Format = ' $1 ', Prompt = 'Additional input options to ffmpeg', Help = 'Ffmpeg can take many options on the command line to control the quality of video produced. This option allows you to specify your own set that apply to the input to ffmpeg (options that are given before the -i option). Check the ffmpeg documentation for a full list of options which may be used here.', Category = 'images', Readonly = '0', Requires = 'ZM_OPT_FFMPEG=1';
+ insert into Config set Id = 44, Name = 'ZM_FFMPEG_OUTPUT_OPTIONS', Value = '-r 25', Type = 'string', DefaultValue = '-r 25', Hint = 'string', Pattern = '(?-xism:^(.+)$)', Format = ' $1 ', Prompt = 'Additional output options to ffmpeg', Help = 'Ffmpeg can take many options on the command line to control the quality of video produced. This option allows you to specify your own set that apply to the output from ffmpeg (options that are given after the -i option). Check the ffmpeg documentation for a full list of options which may be used here. The most common one will often be to force an output frame rate supported by the video encoder.', Category = 'images', Readonly = '0', Requires = 'ZM_OPT_FFMPEG=1';
+ insert into Config set Id = 45, Name = 'ZM_FFMPEG_FORMATS', Value = 'mpg mpeg wmv asf avi* mov swf 3gp**', Type = 'string', DefaultValue = 'mpg mpeg wmv asf avi* mov swf 3gp**', Hint = 'string', Pattern = '(?-xism:^(.+)$)', Format = ' $1 ', Prompt = 'Formats to allow for ffmpeg video generation', Help = 'Ffmpeg can generate video in many different formats. This option allows you to list the ones you want to be able to select. As new formats are supported by ffmpeg you can add them here and be able to use them immediately. Adding a \'*\' after a format indicates that this will be the default format used for web video, adding \'**\' defines the default format for phone video.', Category = 'images', Readonly = '0', Requires = 'ZM_OPT_FFMPEG=1';
+@@ -653,11 +653,11 @@ insert into Config set Id = 49, Name = 'ZM_RECORD_DIAG_IMAGES', Value = '0', Typ
+ insert into Config set Id = 50, Name = 'ZM_EXTRA_DEBUG', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?i-xsm:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Switch additional debugging on', Help = 'ZoneMinder binary components usually have several levels of debug information they can output. Normally this is set to a fairly low level to avoid filling logs too quickly. This options lets you switch on other options that allow you to configure additional debug information to be output. Components will pick up this instruction when they are restarted.', Category = 'debug', Readonly = '0', Requires = '';
+ insert into Config set Id = 51, Name = 'ZM_EXTRA_DEBUG_TARGET', Value = '', Type = 'string', DefaultValue = '', Hint = 'string', Pattern = '(?-xism:^(.+)$)', Format = ' $1 ', Prompt = 'What components should have extra debug enabled', Help = 'There are three scopes of debug available. Leaving this option blank means that all components will use extra debug (not recommended). Setting this option to \'_<component>\', e.g. _zmc, will limit extra debug to that component only. Setting this option to \'_<component>_<identity>\', e.g. \'_zmc_m1\' will limit extra debug to that instance of the component only. This is ordinarily what you probably want to do.', Category = 'debug', Readonly = '0', Requires = 'ZM_EXTRA_DEBUG=1';
+ insert into Config set Id = 52, Name = 'ZM_EXTRA_DEBUG_LEVEL', Value = '0', Type = 'integer', DefaultValue = '0', Hint = '0|1|2|3|4|5|6|7|8|9', Pattern = '(?-xism:^(\d+)$)', Format = ' $1 ', Prompt = 'What level of extra debug should be enabled', Help = 'There are 9 levels of debug available, with higher numbers being more debug and level 0 being no debug. However not all levels are used by all components. Also if there is debug at a high level it is usually likely to be output at such a volume that it may obstruct normal operation. For this reason you should set the level carefully and cautiously until the degree of debug you wish to see is present.', Category = 'debug', Readonly = '0', Requires = 'ZM_EXTRA_DEBUG=1';
+-insert into Config set Id = 53, Name = 'ZM_EXTRA_DEBUG_LOG', Value = '/tmp/zm_debug.log+', Type = 'string', DefaultValue = '/tmp/zm_debug.log+', Hint = 'string', Pattern = '(?-xism:^(.+)$)', Format = ' $1 ', Prompt = 'Where extra debug is output to', Help = 'Depending on your system configuration you may find that only errors, warning and informational messages are logged to your system log. This option allows you to specify an additional target for these messages and debug. This also has the advantage of partitioning debug for the component you are tracing, from messages from other components. Be warned however that if this is a simple filename and you are debugging several components then they will all try and write to the same file with undesirable consequences. Appending a \'+\' to the filename will cause the file to be created with a \'.<pid>\' suffix containing your process id. In this way debug from each run of a component is kept separate. This is the recommended setting as it will also prevent subsequent runs from overwriting the same log.', Category = 'debug', Readonly = '0', Requires = 'ZM_EXTRA_DEBUG=1';
++insert into Config set Id = 53, Name = 'ZM_EXTRA_DEBUG_LOG', Value = '/var/log/zoneminder/zm_debug.log+', Type = 'string', DefaultValue = '/var/log/zoneminder/zm_debug.log+', Hint = 'string', Pattern = '(?-xism:^(.+)$)', Format = ' $1 ', Prompt = 'Where extra debug is output to', Help = 'Depending on your system configuration you may find that only errors, warning and informational messages are logged to your system log. This option allows you to specify an additional target for these messages and debug. This also has the advantage of partitioning debug for the component you are tracing, from messages from other components. Be warned however that if this is a simple filename and you are debugging several components then they will all try and write to the same file with undesirable consequences. Appending a \'+\' to the filename will cause the file to be created with a \'.<pid>\' suffix containing your process id. In this way debug from each run of a component is kept separate. This is the recommended setting as it will also prevent subsequent runs from overwriting the same log.', Category = 'debug', Readonly = '0', Requires = 'ZM_EXTRA_DEBUG=1';
+ insert into Config set Id = 54, Name = 'ZM_DUMP_CORES', Value = '0', Type = 'boolean', DefaultValue = 'no', Hint = 'yes|no', Pattern = '(?i-xsm:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Create core files on unexpected process failure.', Help = 'When an unrecoverable error occurs in a ZoneMinder binary process is has traditionally been trapped and the details written to logs to aid in remote analysis. However in some cases it is easier to diagnose the error if a core file, which is a memory dump of the process at the time of the error, is created. This can be interactively analysed in the debugger and may reveal more or better information than that available from the logs. This option is recommended for advanced users only otherwise leave at the default. Note using this option to trigger core files will mean that there will be no indication in the binary logs that a process has died, they will just stop, however the zmdc log will still contain an entry. Also note that you may have to explicitly enable core file creation on your system via the \'ulimit -c\' command or other means otherwise no file will be created regardless of the value of this option.', Category = 'debug', Readonly = '0', Requires = '';
+ insert into Config set Id = 55, Name = 'ZM_PATH_MAP', Value = '/dev/shm', Type = 'string', DefaultValue = '/dev/shm', Hint = '/absolute/path/to/somewhere', Pattern = '(?-xism:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to the mapped memory files that that ZoneMinder can use', Help = 'ZoneMinder has historically used IPC shared memory for shared data between processes. This has it\'s advantages and limitations. This version of ZoneMinder can use an alternate method, mapped memory, instead with can be enabled with the --enable--mmap directive to configure. This requires less system configuration and is generally more flexible. However it requires each shared data segment to map onto a filesystem file. This option indicates where those mapped files go. You should ensure that this location has sufficient space for these files and for the best performance it should be a tmpfs file system or ramdisk otherwise disk access may render this method slower than the regular shared memory one.', Category = 'paths', Readonly = '0', Requires = '';
+-insert into Config set Id = 56, Name = 'ZM_PATH_SOCKS', Value = '/tmp', Type = 'string', DefaultValue = '/tmp', Hint = '/absolute/path/to/somewhere', Pattern = '(?-xism:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to the various Unix domain socket files that ZoneMinder uses', Help = 'ZoneMinder generally uses Unix domain sockets where possible. This reduces the need for port assignments and prevents external applications from possibly compromising the daemons. However each Unix socket requires a .sock file to be created. This option indicates where those socket files go.', Category = 'paths', Readonly = '0', Requires = '';
+-insert into Config set Id = 57, Name = 'ZM_PATH_LOGS', Value = '/tmp', Type = 'string', DefaultValue = '/tmp', Hint = '/absolute/path/to/somewhere', Pattern = '(?-xism:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to the various logs that the ZoneMinder daemons generate', Help = 'There are various daemons that are used by ZoneMinder to perform various tasks. Most generate helpful log files and this is where they go. They can be deleted if not required for debugging.', Category = 'paths', Readonly = '0', Requires = '';
++insert into Config set Id = 56, Name = 'ZM_PATH_SOCKS', Value = '/var/run/zm', Type = 'string', DefaultValue = '/var/run/zm', Hint = '/absolute/path/to/somewhere', Pattern = '(?-xism:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to the various Unix domain socket files that ZoneMinder uses', Help = 'ZoneMinder generally uses Unix domain sockets where possible. This reduces the need for port assignments and prevents external applications from possibly compromising the daemons. However each Unix socket requires a .sock file to be created. This option indicates where those socket files go.', Category = 'paths', Readonly = '0', Requires = '';
++insert into Config set Id = 57, Name = 'ZM_PATH_LOGS', Value = '/var/log/zoneminder', Type = 'string', DefaultValue = '/var/log/zoneminder', Hint = '/absolute/path/to/somewhere', Pattern = '(?-xism:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to the various logs that the ZoneMinder daemons generate', Help = 'There are various daemons that are used by ZoneMinder to perform various tasks. Most generate helpful log files and this is where they go. They can be deleted if not required for debugging.', Category = 'paths', Readonly = '0', Requires = '';
+ insert into Config set Id = 58, Name = 'ZM_PATH_SWAP', Value = '/tmp', Type = 'string', DefaultValue = '/tmp', Hint = '/absolute/path/to/somewhere', Pattern = '(?-xism:^((?:/[^/]*)+?)/?$)', Format = ' $1 ', Prompt = 'Path to location for temporary swap images used in streaming', Help = 'Buffered playback requires temporary swap images to be stored for each instance of the streaming daemons. This option determines where these images will be stored. The images will actually be stored in sub directories beneath this location and will be automatically cleaned up after a period of time.', Category = 'paths', Readonly = '0', Requires = '';
+ insert into Config set Id = 59, Name = 'ZM_WEB_TITLE_PREFIX', Value = 'ZM', Type = 'string', DefaultValue = 'ZM', Hint = 'string', Pattern = '(?-xism:^(.+)$)', Format = ' $1 ', Prompt = 'The title prefix displayed on each window', Help = 'If you have more than one installation of ZoneMinder it can be helpful to display different titles for each one. Changing this option allows you to customise the window titles to include further information to aid identification.', Category = 'web', Readonly = '0', Requires = '';
+ insert into Config set Id = 60, Name = 'ZM_WEB_RESIZE_CONSOLE', Value = '1', Type = 'boolean', DefaultValue = 'yes', Hint = 'yes|no', Pattern = '(?i-xsm:^([yn]))', Format = ' ($1 =~ /^y/) ? \"yes\" : \"no\" ', Prompt = 'Should the console window resize itself to fit', Help = 'Traditionally the main ZoneMinder web console window has resized itself to shrink to a size small enough to list only the monitors that are actually present. This is intended to make the window more unobtrusize but may not be to everyones tastes, especially if opened in a tab in browsers which support this kind if layout. Switch this option off to have the console window size left to the users preference', Category = 'web', Readonly = '0', Requires = '';
diff --git a/www-misc/zoneminder/files/1.24.2/zm_remote_camera_http.patch b/www-misc/zoneminder/files/1.24.2/zm_remote_camera_http.patch
new file mode 100644
index 000000000000..ca937b65854c
--- /dev/null
+++ b/www-misc/zoneminder/files/1.24.2/zm_remote_camera_http.patch
@@ -0,0 +1,55 @@
+Index: ZoneMinder-1.24.1/src/zm_remote_camera_http.cpp
+===================================================================
+--- ZoneMinder-1.24.1.orig/src/zm_remote_camera_http.cpp
++++ ZoneMinder-1.24.1/src/zm_remote_camera_http.cpp
+@@ -356,6 +356,14 @@ int RemoteCamera::GetResponse()
+ format = JPEG;
+ state = CONTENT;
+ }
++ else if ( !strcasecmp( content_type, "image/mpeg" ) )
++ {
++ // Single image
++ mode = SINGLE_IMAGE;
++ format = JPEG;
++ state = CONTENT;
++
++ }
+ else if ( !strcasecmp( content_type, "image/x-rgb" ) )
+ {
+ // Single image
+@@ -453,6 +461,10 @@ int RemoteCamera::GetResponse()
+ {
+ format = JPEG;
+ }
++ else if ( !strcasecmp( content_type, "image/mpeg" ) )
++ {
++ format = JPEG;
++ }
+ else if ( !strcasecmp( content_type, "image/x-rgb" ) )
+ {
+ format = X_RGB;
+@@ -783,6 +795,13 @@ int RemoteCamera::GetResponse()
+ format = JPEG;
+ state = CONTENT;
+ }
++ else if ( !strcasecmp( content_type, "image/mpeg" ) )
++ {
++ // Single image
++ mode = SINGLE_IMAGE;
++ format = JPEG;
++ state = CONTENT;
++ }
+ else if ( !strcasecmp( content_type, "image/x-rgb" ) )
+ {
+ // Single image
+@@ -947,6 +966,10 @@ int RemoteCamera::GetResponse()
+ {
+ format = JPEG;
+ }
++ else if ( !strcasecmp( content_type, "image/mpeg" ) )
++ {
++ format = JPEG;
++ }
+ else if ( !strcasecmp( content_type, "image/x-rgb" ) )
+ {
+ format = X_RGB;
diff --git a/www-misc/zoneminder/zoneminder-1.24.2.ebuild b/www-misc/zoneminder/zoneminder-1.24.2.ebuild
new file mode 100644
index 000000000000..a38b72f888b8
--- /dev/null
+++ b/www-misc/zoneminder/zoneminder-1.24.2.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-misc/zoneminder/zoneminder-1.24.2.ebuild,v 1.1 2009/08/03 11:19:59 gentoofan23 Exp $
+
+inherit eutils autotools depend.php depend.apache multilib
+
+MY_PV=${PV/_/-}
+MY_PN="ZoneMinder"
+
+PATCH_PV="1.24.2"
+
+DESCRIPTION="ZoneMinder allows you to capture, analyse, record and monitor any cameras attached to your system."
+HOMEPAGE="http://www.zoneminder.com/"
+SRC_URI="http://www.zoneminder.com/downloads/${MY_PN}-${MY_PV}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="debug ffmpeg"
+#IUSE="debug ffmpeg mmap"
+SLOT="0"
+
+DEPEND="app-admin/sudo
+ dev-libs/libpcre
+ >=media-libs/jpeg-6b
+ net-libs/gnutls
+ >=dev-lang/perl-5.6.0
+ virtual/perl-Archive-Tar
+ dev-perl/Archive-Zip
+ dev-perl/DateManip
+ dev-perl/DBD-mysql
+ dev-perl/DBI
+ dev-perl/Device-SerialPort
+ dev-perl/libwww-perl
+ dev-perl/MIME-Lite
+ dev-perl/MIME-tools
+ dev-perl/PHP-Serialization
+ virtual/perl-Getopt-Long
+ virtual/perl-libnet
+ virtual/perl-Module-Load
+ virtual/perl-Sys-Syslog
+ virtual/perl-Time-HiRes"
+
+RDEPEND="dev-perl/DBD-mysql
+ ffmpeg? ( >=media-video/ffmpeg-0.5-r1 )
+ media-libs/netpbm"
+
+# we cannot use need_httpd_cgi here, since we need to setup permissions for the
+# webserver in global scope (/etc/zm.conf etc), so we hardcode apache here.
+need_apache
+need_php_httpd
+
+S="${WORKDIR}"/${MY_PN}-${MY_PV}
+
+pkg_setup() {
+ require_php_with_use mysql sockets apache2
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}"/${PATCH_PV}/Makefile.am.patch
+ epatch "${FILESDIR}"/${PATCH_PV}/zm_create.sql.in.patch
+ epatch "${FILESDIR}"/${PATCH_PV}/zm_remote_camera_http.patch
+ epatch "${FILESDIR}"/${PATCH_PV}/db_upgrade_script_location.patch
+
+ eautoreconf
+}
+
+src_compile() {
+ local myconf
+
+# To enable mmap support we need a dependancy of Sys::Mmap
+# It installs fine via g-cpan, but there's no ebuild currently in portage.
+# if use mmap; then
+# myconf="${myconf} --enable-mmap=yes"
+# else
+# myconf="${myconf} --enable-mmap=no"
+# fi
+
+ if use debug; then
+ myconf="${myconf} --enable-debug=yes --enable-crashtrace=yes"
+ else
+ myconf="${myconf} --enable-debug=no --enable-crashtrace=no"
+ fi
+
+ econf --with-libarch=$(get_libdir) \
+ --with-mysql=/usr \
+ $(use_with ffmpeg) \
+ --with-webdir="${ROOT}var/www/zoneminder/htdocs" \
+ --with-cgidir="${ROOT}var/www/zoneminder/cgi-bin" \
+ --with-webuser=apache \
+ --with-webgroup=apache \
+ ${myconf}
+
+ einfo "${PN} does not parallel build... using forcing make -j1..."
+ emake -j1 || die "emake failed"
+}
+
+src_install() {
+ keepdir /var/run/zm
+ emake -j1 DESTDIR="${D}" install || die "emake install failed"
+
+ fperms 0640 /etc/zm.conf
+
+ keepdir /var/log/${PN}
+ fowners apache:apache /var/log/${PN}
+ fowners apache:apache /var/run/zm
+
+ newinitd "${FILESDIR}"/init.d zoneminder
+ newconfd "${FILESDIR}"/conf.d zoneminder
+
+ dodoc AUTHORS ChangeLog INSTALL NEWS README TODO
+
+ insinto /usr/share/${PN}/db
+ doins db/zm_u* db/zm_create.sql
+
+ insinto /etc/apache2/vhosts.d
+ doins "${FILESDIR}"/10_zoneminder.conf
+
+ for DIR in events images sound; do
+ dodir "${ROOT}"/var/www/zoneminder/htdocs/${DIR}
+ done
+}
+
+pkg_postinst() {
+ elog ""
+ elog "0. If this is a new installation, you will need to create a MySQL database"
+ elog " for ${PN} to use. (see http://www.gentoo.org/doc/en/mysql-howto.xml)."
+ elog " Once you completed that you should execute the following:"
+ elog ""
+ elog " cd /usr/share/${PN}"
+ elog " mysql -u <my_database_user> -p<my_database_pass> <my_zoneminder_db> < db/zm_create.sql"
+ elog ""
+ elog "1. Set your database settings in /etc/zm.conf"
+ elog ""
+ elog "2. Start the ${PN} daemon:"
+ elog ""
+ elog " /etc/init.d/${PN} start"
+ elog ""
+ elog "3. Finally point your browser to http://localhost/${PN}"
+ elog ""
+ elog ""
+ elog "If you are upgrading, you will need to run the zmupdate.pl script:"
+ elog ""
+ elog " /usr/bin/zmupdate.pl version=<from version> [--user=<my_database_user> --pass=<my_database_pass>]"
+ elog ""
+}