blob: d600e7f412ad742a21a05930265bb3fef997e3a7 (
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
# Maintainer: Nocifer <apmichalopoulos at gmail dot com>
# Contributor: Mesmer <mesmer@fisica.if.uff.br>
# Contributor: Troy Will <troydwill at gmail dot com>
# Contributor: /dev/rs0 </dev/rs0@secretco.de.com>
# Contributor: Jacek Burghardt <jacek@hebe.us>
# Contributor: Vojtech Aschenbrenner <v@asch.cz>
# Contributor: Jason Gardner <buhrietoe@gmail.com>
# Contributor: Ross melin <rdmelin@gmail.com>
# Contributor (Parabola): Márcio Silva <coadde@lavabit.com>
# Contributor (Parabola): André Silva <emulatorman@lavabit.com>
# Contributor: Charles Spence IV <cspence@unomaha.edu>
# Contributor: Joe Julian <me@joejulian.name>
# Orginally based on a Debian Squeeze package
pkgname=zoneminder
pkgver=1.36.12
pkgrel=2
pkgdesc='A full-featured, open source, state-of-the-art video surveillance software system'
arch=('any')
url='https://www.zoneminder.com/'
license=('GPL2')
depends=('polkit' 'ffmpeg'
'php-apcu' 'php-fpm' 'php-gd'
'perl-archive-zip' 'perl-data-dump' 'perl-date-manip' 'perl-datetime' 'perl-dbd-mysql' 'perl-device-serialport' 'perl-file-slurp'
'perl-image-info' 'perl-libwww' 'perl-mime-lite' 'perl-mime-tools' 'perl-net-sftp-foreign' 'perl-number-bytes-human' 'perl-php-serialization'
'perl-sys-cpu' 'perl-sys-meminfo' 'perl-sys-mmap' 'perl-uri-encode'
# Needed for ONVIF support
'perl-data-uuid' 'perl-io-socket-multicast' 'perl-soap-wsdl' 'perl-xml-libxml' 'perl-xml-parser'
# Needed for SSL support
'perl-lwp-protocol-https'
# Needed for Telemetry support
'perl-json-maybexs'
# Needed for encryption
'perl-crypt-eksblowfish' 'perl-data-entropy'
)
makedepends=('cmake' 'git')
optdepends=('mariadb'
'apache'
'nginx'
'fcgiwrap: required if using nginx'
'spawn-fcgi: required if using nginx'
'multiwatch: required if using nginx'
'pod2man: required for Docker support'
'zmeventnotification: machine learning powered recognition engine & event notification server'
'vlc: provides libvlc, which may achieve better performance with some camera models'
'libvncserver')
conflicts=('zoneminder-git')
backup=("etc/nginx/sites-available/$pkgname.conf"
"etc/httpd/conf/extra/$pkgname.conf"
"etc/php/conf.d/$pkgname.ini")
install=$pkgname.install
source=("$pkgname-git::git+https://github.com/ZoneMinder/zoneminder.git#tag=$pkgver"
"zoneminder-nginx.conf"
"zoneminder-httpd.conf"
"zoneminder-php.ini"
"zoneminder.service"
"zoneminder-tmpfile.conf"
"fcgiwrap-multiwatch.service"
"zmsetup.sh")
sha256sums=('SKIP'
'c60e855428a56cc327214aa13d02a70011bf3b63a94a0d845b1c5ea1fab28ad2'
'1f0d2276861065caf0b6c030ba27a6edb6a2988c7a1ac0fdf4e8fcb856972715'
'2d7f5ac073687be75c7724b0acd3785d8c358e4f65341e60d39eb6006f31389b'
'3e4de227e3154dffa887f2286c339ab3cf456f6d74a400b2786192b7e2b129c0'
'b69ac1deaaf3cf84b4ae4dbab794e1b062823de817f1e3a816ccf5438db440c0'
'e95f9bef77aef647dd633bd9ad75dc099b6d7184684e133f2f20702de83a6260'
'255374c400e01c7666cc7b3e1f06da8445dc57afda631868d33ced62ba631c98')
prepare () {
cd $pkgname-git
# Download and move extra PHP plugins into place
git submodule update --init --recursive
# Fix the launcher
sed -i 's|localhost/zm|localhost:8095|g' misc/$pkgname.desktop.in
}
build() {
cd $pkgname-git
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DZM_CONFIG_DIR=/etc/$pkgname \
-DZM_CONFIG_SUBDIR=/etc/$pkgname/conf.d \
-DZM_RUNDIR=/run/$pkgname \
-DZM_SOCKDIR=/run/$pkgname \
-DZM_LOGDIR=/var/log/$pkgname \
-DZM_TMPDIR=/var/tmp/$pkgname \
-DZM_CONTENTDIR=/var/lib/$pkgname \
-DZM_CACHEDIR=/var/lib/$pkgname/cache \
-DZM_WEBDIR=/usr/share/webapps/$pkgname/www \
-DZM_CGIDIR=/usr/share/webapps/$pkgname/cgi-bin \
-DZM_WEB_USER=http .
make
}
package() {
cd $pkgname-git
make DESTDIR=$pkgdir install
# Set Polkit directory permissions in accordance with Arch policy
chmod 750 $pkgdir/usr/share/polkit-1/rules.d
chown root:polkitd $pkgdir/usr/share/polkit-1/rules.d
# Create ZM_LOGDIR
install -dm755 -o http -g http $pkgdir/var/log/$pkgname
# Create ZM_CONTENTDIR and its subfolders
install -dm775 -o http -g http $pkgdir/var/lib/$pkgname/{cache,events,images}
# Link ZM_CGIDIR and ZM_CACHEDIR inside ZM_WEBDIR and set correct permissions
ln -sf /usr/share/webapps/$pkgname/cgi-bin $pkgdir/usr/share/webapps/$pkgname/www
ln -sf /var/lib/$pkgname/cache $pkgdir/usr/share/webapps/$pkgname/www
chown -Rh http:http $pkgdir/usr/share/webapps/$pkgname
# Link ZM_WEBDIR/api/app/tmp to ZM_TMPDIR
ln -sf /var/tmp/$pkgname $pkgdir/usr/share/webapps/$pkgname/www/api/app/tmp
# Temporary fix for hardcoded /zm/ links (credit goes to @Kubax on AUR)
ln -sf /usr/share/webapps/$pkgname/www $pkgdir/usr/share/webapps/$pkgname/www/zm
# Set correct permissions for ZM_CONFIG_DIR & ZM_CONFIG_SUBDIR
chmod -R 755 $pkgdir/etc/$pkgname
chmod 644 $pkgdir/etc/$pkgname/zm.conf
chmod 644 $pkgdir/etc/$pkgname/conf.d/*
# Nginx conf file
install -Dm644 $srcdir/$pkgname-nginx.conf $pkgdir/etc/nginx/sites-available/$pkgname.conf
# Apache conf file
install -Dm644 $srcdir/$pkgname-httpd.conf $pkgdir/etc/httpd/conf/extra/$pkgname.conf
# systemd service
install -Dm644 $srcdir/$pkgname.service $pkgdir/usr/lib/systemd/system/$pkgname.service
# systemd tmpfile
install -Dm644 $srcdir/$pkgname-tmpfile.conf $pkgdir/usr/lib/tmpfiles.d/$pkgname.conf
# php.ini extension
install -Dm644 $srcdir/$pkgname-php.ini $pkgdir/etc/php/conf.d/$pkgname.ini
# fcgiwrap-multiwatch service
install -Dm644 $srcdir/fcgiwrap-multiwatch.service $pkgdir/usr/lib/systemd/system/fcgiwrap-multiwatch.service
# optional install script
install -Dm755 $srcdir/zmsetup.sh $pkgdir/usr/bin/zmsetup.sh
# logrotate conf file
install -Dm644 misc/logrotate.conf $pkgdir/etc/logrotate.d/$pkgname
# database schemas
install -Dm644 db/zm*.sql $pkgdir/usr/share/$pkgname/db
}
|