blob: e21c3bf5458c1251b8c2598442f6f540ee0aaad2 (
plain) (
blame)
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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Max Rees <maxcrees@me.com>
pkgname=nextcloud
pkgver=14.0.3
pkgrel=1
pkgdesc="Self-hosted file sync and groupware server"
url="https://nextcloud.com"
arch="noarch"
options="!check" # No test suite.
license="AGPL-3.0+ AND AGPL-3.0-only AND MIT AND Apache-2.0 AND (MIT OR GPL-2.0-only) AND BSD-3-Clause AND (Apache-2.0 OR GPL-2.0-only) AND GPL-3.0+ AND BSD-2-Clause AND PHP-3.0 AND (Apache-2.0 OR MPL-2.0)"
depends="
ca-certificates
php7
php7-ctype
php7-curl
php7-dom
php7-fileinfo
php7-gd
php7-iconv
php7-intl
php7-json
php7-mbstring
php7-openssl
php7-pcntl
php7-pdo
php7-posix
php7-session
php7-simplexml
php7-xml
php7-xmlreader
php7-xmlwriter
php7-zip
$pkgname-sqlite
"
makedepends="libxml2-utils"
provides="
$pkgname-accessibility=$pkgver-r$pkgrel
$pkgname-dav=$pkgver-r$pkgrel
$pkgname-federatedfilesharing=$pkgver-r$pkgrel
$pkgname-files=$pkgver-r$pkgrel
$pkgname-provisioning_api=$pkgver-r$pkgrel
$pkgname-support=$pkgver-r$pkgrel
"
install="$pkgname.pre-install $pkgname.post-upgrade
$pkgname-initscript.post-install"
pkgusers="nextcloud"
pkggroups="www-data"
subpackages="$pkgname-doc $pkgname-initscript $pkgname-mysql $pkgname-pgsql
$pkgname-sqlite $pkgname-default-apps:_default_apps"
source="https://download.nextcloud.com/server/releases/$pkgname-$pkgver.zip
nextcloud14-dont-chmod.patch
dont-update-htaccess.patch
disable-integrity-check-as-default.patch
iconv-ascii-translit-not-supported.patch
use-external-docs-if-local-not-avail.patch
$pkgname-config.php
$pkgname.logrotate
$pkgname.confd
$pkgname.cron
fpm-pool.conf
occ
"
builddir="$srcdir/$pkgname"
# List of bundled apps to separate into subpackages. Keep it in sync!
# Note: Don't add "files", "dav", and "provisioning_api" here, these should
# be always installed.
_apps="activity
admin_audit
comments
encryption
federation
files_external
files_pdfviewer
files_sharing
files_texteditor
files_trashbin
files_versions
files_videoplayer
firstrunwizard
gallery
logreader
lookup_server_connector
nextcloud_announcements
notifications
oauth2
password_policy
serverinfo
sharebymail
survey_client
systemtags
theming
twofactor_backupcodes
user_external
user_ldap
workflowengine
"
for _i in $_apps; do
subpackages="$subpackages $pkgname-$_i:_package_app"
done
# Directory for apps shipped with Nextcloud.
_appsdir="usr/share/webapps/$pkgname/apps"
build() {
cd "$builddir"
}
package() {
local basedir="var/lib/$pkgname"
local datadir="$basedir/data"
local wwwdir="usr/share/webapps/$pkgname"
local confdir="etc/$pkgname"
mkdir -p "$pkgdir/${wwwdir%/*}"
cp -a "$builddir" "$pkgdir/$wwwdir"
chmod +x "$pkgdir/$wwwdir/occ"
chmod 664 "$pkgdir/$wwwdir/.htaccess" "$pkgdir/$wwwdir/.user.ini"
# Let's not ship upstream's 'updatenotification' app and updater, which
# has zero chance of working and a big chance of blowing things up.
rm -r "$pkgdir/$wwwdir/apps/updatenotification" \
"$pkgdir/$wwwdir/lib/private/Updater"
# Replace bundled CA bundle with ours.
ln -sf /etc/ssl/certs/ca-certificates.crt \
"$pkgdir/$wwwdir/resources/config/ca-bundle.crt"
install -dm 770 -o nextcloud -g www-data \
"$pkgdir/$confdir" "$pkgdir/$datadir" "$pkgdir/$basedir/appstore"
install -dm 775 -o nextcloud -g www-data "$pkgdir/var/log/$pkgname"
# Create symlink from web root to site-apps, so web server can find
# assets w/o explicit configuration for this layout.
ln -s "/$basedir/appstore" "$pkgdir/$wwwdir/appstore"
mv $pkgdir/$wwwdir/config/* "$pkgdir/$confdir/"
rm -r "$pkgdir/$wwwdir/config"
ln -s "/$confdir" "$pkgdir/$wwwdir/config"
mkdir -p "$pkgdir/usr/share/doc/$pkgname"
mv "$pkgdir/$wwwdir/core/doc" "$pkgdir/usr/share/doc/$pkgname/core"
install -m 660 -o nextcloud -g www-data \
"$srcdir/$pkgname-config.php" "$pkgdir/$confdir/config.php"
install -Dm 644 "$srcdir/$pkgname.logrotate" "$pkgdir/etc/logrotate.d/$pkgname"
install -Dm 755 "$srcdir/occ" "$pkgdir/usr/bin/occ"
install -dm 700 -o nextcloud "$pkgdir/var/log/nextcloud"
# Clean some unnecessary files.
find "$pkgdir" -name '.gitignore' -delete \
-o -name '.bower.json' -delete \
-o -name 'README*' -delete \
-o -name 'CHANGELOG*' -delete \
-o -name 'CONTRIBUTING*' -delete
find . -name '.github' -type d -prune -exec rm -r {} \;
}
doc() {
default_doc
local target="$subpkgdir/usr/share/webapps/$pkgname/core/doc"
mkdir -p "${target%/*}"
ln -s "/usr/share/doc/$pkgname/core" "$target"
}
initscript() {
pkgdesc="Init script that runs Nextcloud with php-fpm"
depends="$pkgname php7-fpm"
install -Dm 644 "$srcdir/fpm-pool.conf" "$subpkgdir/etc/php/php-fpm.d/$pkgname.conf"
install -Dm 644 "$srcdir/$pkgname.confd" "$subpkgdir/etc/conf.d/$pkgname"
install -Dm 755 "$srcdir/$pkgname.cron" "$subpkgdir/etc/periodic/15min/$pkgname"
mkdir -p "$subpkgdir/etc/init.d"
ln -s php-fpm "$subpkgdir/etc/init.d/$pkgname"
install -dm 700 -o nextcloud "$subpkgdir/var/tmp/$pkgname"
}
pgsql() {
pkgdesc="Nextcloud PostgreSQL support"
depends="$pkgname php7-pgsql php7-pdo_pgsql"
mkdir -p "$subpkgdir"
}
sqlite() {
pkgdesc="Nextcloud SQLite support"
depends="$pkgname php7-sqlite3 php7-pdo_sqlite"
mkdir -p "$subpkgdir"
}
mysql() {
pkgdesc="Nextcloud MySQL support"
depends="$pkgname php7-pdo_mysql"
mkdir -p "$subpkgdir"
}
_default_apps() {
pkgdesc="Nextcloud default apps"
depends="$pkgname"
local path; for path in $pkgdir/$_appsdir/*; do
if grep -q '<default_enable\s*/>' "$path/appinfo/info.xml"; then
depends="$depends $pkgname-${path##*/}"
fi
done
mkdir -p "$subpkgdir"
}
_package_app() {
local appname="${subpkgname#$pkgname-}"
local appinfo="$pkgdir/$_appsdir/$appname/appinfo/info.xml"
local name="$(xmllint --xpath '//info/name/text()' "$appinfo" 2>/dev/null)"
pkgdesc="Nextcloud ${name:-$appname} app"
case "$appname" in
encryption) php_deps="php7-openssl";;
files_external) php_deps="php7-ftp";;
# TODO: add php7-imap, php7-smbclient
user_external) php_deps="php7-ftp";;
user_ldap) php_deps="php7-ldap";;
esac
case "$appname" in
files_sharing) app_deps="$pkgname-federatedfilesharing";;
# Announcements are delivered via the notifications pane
nextcloud_announcements) app_deps="$pkgname-notifications";;
# workflowengine provides admin panel to manage systemtags
systemtags) app_deps="$pkgname-workflowengine";;
esac
depends="$pkgname $php_deps $app_deps"
mkdir -p "$subpkgdir/$_appsdir"
mv "$pkgdir/$_appsdir/$appname" "$subpkgdir/$_appsdir/"
}
sha512sums="f3b8bf22f4c17e038352a9f6c202d79220b5d9a19a2148c486cf22558d626095ab5c35f02ddf64292165e34572e199c72a44318b5c19a6dd5113f0ee0f6e937f nextcloud-14.0.3.zip
63690b8d8ffe6d4896c5b666aa9d493b501aa3e171c6557e7a003599049f0d36f266a2a257a9535dea055bca1e84208b219c6cd5e4ecd70dd064e1dd1007203a nextcloud14-dont-chmod.patch
aef3c92497d738d6968e0f0b0d415b4953500db24ae14af41ef972665cf7eff00cb6c53dc953845fdbb389c3c965a75b8b14b9247513c05cf4130fe1cfc61731 dont-update-htaccess.patch
d2100a837fef1eeae5f706650ab4c985d9e00f61efa5526ef76c7c1f5811c3906eb6c3c13c151eff9677a0c303faab64411a5a84d6792728bc520d2c618d7d5b disable-integrity-check-as-default.patch
de1b433c2fb2582b599cb25e718e454fc4b93543a5a60eee39a03bcccf35d281594611395bdebe02319bedd9a894507eef97010ebdfca381e0f1a09df283d375 iconv-ascii-translit-not-supported.patch
478f5cd7c5d30380ea619d3e8ec623217a06a09b27534266f00297545c7d276b068c5d984673eebc5676e8bac7f45112549498944ce3fa678ac8a69541d7c430 use-external-docs-if-local-not-avail.patch
4d01c89d5fd86190fb3bd6a5ca97bc623ec55d92cbf030c18c5811d711cea557485d334a6588e458eea4e0b3ad82f4defd7cb5a9d4f393ce4d5b32abf45db596 nextcloud-config.php
7388458a9e8b7afd3d3269718306410ffa59c3c23da4bef367a4d7f6d2570136fae9dd421b19c1441e7ffb15a5405e18bb5da67b1a15f9f45e8b98d3fda532ba nextcloud.logrotate
dcc57735d7d4af4a7ebbdd1186d301e51d2ae4675022aea6bf1111222dfa188a3a490ebd6e7c8a7ac30046cb7d93f81cec72a51acbc60d0c10b7fb64630c637a nextcloud.confd
921b0e5f087f24e705dce62c078dea4d2f524c40a746ed7b19f1cff3405b9ea489c10a6dbcea87be6068f575be565b77b02c9f2c3ae6a7fb85367dbe3b7300c5 nextcloud.cron
b829ed942916660065dd1030f9f35fa2f8c45a36dc791417108761c15b081777c302f305fd6490ea47d0ae41b8589c8d62e01e0f163105bd6b29fd3bed36ddcd fpm-pool.conf
959852e34f010e635470829d66713f3e22c47717ec2c6487759eed2b6aeff9fd1421fe0271d494a02781bd1c98beb2823583623ee2cf03057cd5db794627d6c2 occ"
|