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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# TO DO:
# * dependencies of unknown status:
# dev-perl/Device-SerialPort
# dev-perl/MIME-Lite
# dev-perl/MIME-tools
# dev-perl/PHP-Serialization
# virtual/perl-Archive-Tar
# virtual/perl-libnet
# virtual/perl-Module-Load
EAPI=6
inherit versionator perl-functions readme.gentoo-r1 cmake-utils depend.apache flag-o-matic systemd
MY_PN="ZoneMinder"
MY_CRUD_VERSION="3.1.0"
DESCRIPTION="Capture, analyse, record and monitor any cameras attached to your system"
HOMEPAGE="http://www.zoneminder.com/"
SRC_URI="
https://github.com/${MY_PN}/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
https://github.com/FriendsOfCake/crud/archive/v${MY_CRUD_VERSION}.tar.gz -> Crud-${MY_CRUD_VERSION}.tar.gz
"
LICENSE="GPL-2"
KEYWORDS=""
IUSE="curl ffmpeg gcrypt gnutls +mmap +ssl libressl vlc"
SLOT="0"
REQUIRED_USE="
|| ( ssl gnutls )
"
DEPEND="
app-eselect/eselect-php[apache2]
dev-lang/perl:=
dev-lang/php:*[apache2,cgi,curl,gd,inifile,pdo,mysql,mysqli,sockets]
dev-libs/libpcre
dev-perl/Archive-Zip
dev-perl/Class-Std-Fast
dev-perl/Data-Dump
dev-perl/Date-Manip
dev-perl/Data-UUID
dev-perl/DBD-mysql
dev-perl/DBI
dev-perl/IO-Socket-Multicast
dev-perl/SOAP-WSDL
dev-perl/Sys-CPU
dev-perl/Sys-MemInfo
dev-perl/URI-Encode
dev-perl/libwww-perl
sys-auth/polkit
sys-libs/zlib
virtual/ffmpeg
virtual/httpd-php:*
virtual/jpeg:0
virtual/mysql
virtual/perl-ExtUtils-MakeMaker
virtual/perl-Getopt-Long
virtual/perl-Sys-Syslog
virtual/perl-Time-HiRes
www-servers/apache
curl? ( net-misc/curl )
gcrypt? ( dev-libs/libgcrypt:0= )
gnutls? ( net-libs/gnutls )
mmap? ( dev-perl/Sys-Mmap )
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:0= )
)
vlc? ( media-video/vlc[live] )
"
RDEPEND="${DEPEND}"
# 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
S=${WORKDIR}/${MY_PN}-${PV}
PATCHES=(
"${FILESDIR}/${PN}-1.26.5"-automagic.patch
"${FILESDIR}/${PN}-1.28.1"-mysql_include_path.patch
"${FILESDIR}/${PN}-1.30.2"-diskspace.patch
)
MY_ZM_WEBDIR=/usr/share/zoneminder/www
src_prepare() {
cmake-utils_src_prepare
rmdir "${S}/web/api/app/Plugin/Crud" || die
mv "${WORKDIR}/crud-${MY_CRUD_VERSION}" "${S}/web/api/app/Plugin/Crud" || die
}
src_configure() {
append-cxxflags -D__STDC_CONSTANT_MACROS
perl_set_version
mycmakeargs=(
-DZM_PERL_SUBPREFIX=${VENDOR_LIB#/usr}
-DZM_TMPDIR=/var/tmp/zm
-DZM_SOCKDIR=/var/run/zm
-DZM_WEB_USER=apache
-DZM_WEB_GROUP=apache
-DZM_WEBDIR=${MY_ZM_WEBDIR}
-DZM_NO_MMAP="$(usex mmap OFF ON)"
-DZM_NO_X10=OFF
-DZM_NO_FFMPEG="$(usex ffmpeg OFF ON)"
-DZM_NO_CURL="$(usex curl OFF ON)"
-DZM_NO_LIBVLC="$(usex vlc OFF ON)"
-DCMAKE_DISABLE_FIND_PACKAGE_OpenSSL="$(usex ssl OFF ON)"
-DHAVE_GNUTLS="$(usex gnutls ON OFF)"
-DHAVE_GCRYPT="$(usex gcrypt ON OFF)"
)
cmake-utils_src_configure
}
src_install() {
cmake-utils_src_install
# the log directory
keepdir /var/log/zm
fowners apache:apache /var/log/zm
# the logrotate script
insinto /etc/logrotate.d
newins distros/ubuntu1204/zoneminder.logrotate zoneminder
# now we duplicate the work of zmlinkcontent.sh
keepdir /var/lib/zoneminder /var/lib/zoneminder/images /var/lib/zoneminder/events /var/lib/zoneminder/api_tmp
fperms -R 0775 /var/lib/zoneminder
fowners -R apache:apache /var/lib/zoneminder
dosym /var/lib/zoneminder/images ${MY_ZM_WEBDIR}/images
dosym /var/lib/zoneminder/events ${MY_ZM_WEBDIR}/events
dosym /var/lib/zoneminder/api_tmp ${MY_ZM_WEBDIR}/api/app/tmp
# bug 523058
keepdir ${MY_ZM_WEBDIR}/temp
fowners -R apache:apache ${MY_ZM_WEBDIR}/temp
# the configuration file
fperms 0640 /etc/zm.conf
fowners root:apache /etc/zm.conf
# init scripts etc
newinitd "${FILESDIR}"/init.d zoneminder
newconfd "${FILESDIR}"/conf.d zoneminder
# systemd unit file
systemd_dounit "${FILESDIR}"/zoneminder.service
cp "${FILESDIR}"/10_zoneminder.conf-r1 "${T}"/10_zoneminder.conf || die
sed -i "${T}"/10_zoneminder.conf -e "s:%ZM_WEBDIR%:${MY_ZM_WEBDIR}:g" || die
dodoc AUTHORS BUGS ChangeLog INSTALL NEWS README.md TODO "${T}"/10_zoneminder.conf
perl_delete_packlist
readme.gentoo_create_doc
}
pkg_postinst() {
readme.gentoo_print_elog
local v
for v in ${REPLACING_VERSIONS}; do
if ! version_is_at_least ${PV} ${v}; then
elog "You have upgraded zoneminder and may have to upgrade your database now using the 'zmupdate.pl' script."
fi
done
}
|