summaryrefslogtreecommitdiff
blob: c80807bc0b1cb2867e1e594c7c598b0ddacf932e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# 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.23.3.ebuild,v 1.8 2009/02/08 13:36:02 gentoofan23 Exp $

inherit eutils autotools depend.php depend.apache multilib perl-module

MY_PV=${PV/_/-}
MY_PN="ZoneMinder"

PATCH_PV="1.23.1"

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 ~x86"
IUSE="debug ffmpeg X10"
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-Sys-Syslog
	virtual/perl-Time-HiRes
	X10? ( dev-perl/X10 )"

RDEPEND="dev-perl/DBD-mysql
	ffmpeg? ( >=media-video/ffmpeg-0.4.9_p20080326 )
	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.patch
	sed -i \
		-e 's:ffmpeg/avformat.h:libavformat/avformat.h:' \
		-e 's:ffmpeg/swscale.h:libswscale/swscale.h:' \
		src/zm_mpeg.h || die "404. File not found sedding src/zmpeg.h"
	eautoreconf
}

src_compile() {
	econf --with-libarch=$(get_libdir) \
		--with-mysql=/usr \
		$(use_with ffmpeg ffmpeg /usr) \
		$(use_enable debug) \
		$(use_enable debug crashtrace) \
		--with-webdir="/var/www/zoneminder/htdocs" \
		--with-cgidir="/var/www/zoneminder/cgi-bin" \
		--with-webuser=apache \
		--with-webgroup=apache \
		|| die "econf failed"
	emake || 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 /var/www/zoneminder/htdocs/${DIR}
	done

	fixlocalpod
}

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://localhos/${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 ""
}