projects/aports·blob master · refs

341 lines · 12.0 KiB

1# Contributor: Jakub Jirutka <[email protected]>
2# Contributor: jahway603 <[email protected]>
3# Maintainer: Leonardo Arena <[email protected]>
4_pkgname=nextcloud
5pkgver=34.0.4
6pkgrel=0
7_is_latest=true
8_pkgvermaj=${pkgver%%.*}
9pkgname=nextcloud$_pkgvermaj
10_replaced_ver=$(( _pkgvermaj - 1 ))
11pkgdesc="A safe home for all your data"
12url="https://nextcloud.com/"
13arch="noarch"
14license="AGPL-3.0-only"
15_php=php85
16_php_mods="-bcmath -ctype -curl -dom -gd -fileinfo -gmp -iconv -intl
17 -mbstring -openssl -pcntl -posix -session
18 -simplexml -xml -xmlreader -xmlwriter -zip"
19depends="ca-certificates $_php ${_php_mods//-/$_php-}"
20makedepends="xmlstarlet"
21$_is_latest && provides="$_pkgname=$pkgver-r$pkgrel
22 $_pkgname-accessibility=$pkgver-r$pkgrel
23 $pkgname-accessibility=$pkgver-r$pkgrel
24 $_pkgname-bruteforcesettings=$pkgver-r$pkgrel
25 $pkgname-bruteforcesettings=$pkgver-r$pkgrel
26 $_pkgname-contactsinteraction=$pkgver-r$pkgrel
27 $pkgname-contactsinteraction=$pkgver-r$pkgrel
28 $_pkgname-cloud_federation_api=$pkgver-r$pkgrel
29 $pkgname-cloud_federation_api=$pkgver-r$pkgrel
30 $_pkgname-dav=$pkgver-r$pkgrel
31 $pkgname-dav=$pkgver-r$pkgrel
32 $_pkgname-files=$pkgver-r$pkgrel
33 $pkgname-files=$pkgver-r$pkgrel
34 $_pkgname-files_videoplayer=$pkgver-r$pkgrel
35 $pkgname-files_videoplayer=$pkgver-r$pkgrel
36 $_pkgname-federatedfilesharing=$pkgver-r$pkgrel
37 $pkgname-federatedfilesharing=$pkgver-r$pkgrel
38 $_pkgname-lookup_server_connector=$pkgver-r$pkgrel
39 $pkgname-lookup_server_connector=$pkgver-r$pkgrel
40 $_pkgname-oauth2=$pkgver-r$pkgrel
41 $pkgname-oauth2=$pkgver-r$pkgrel
42 $_pkgname-profile=$pkgver-r$pkgrel
43 $pkgname-profile=$pkgver-r$pkgrel
44 $_pkgname-provisioning_api=$pkgver-r$pkgrel
45 $pkgname-provisioning_api=$pkgver-r$pkgrel
46 $_pkgname-related_resources=$pkgver-r$pkgrel
47 $pkgname-related_resources=$pkgver-r$pkgrel
48 $_pkgname-settings=$pkgver-r$pkgrel
49 $pkgname-settings=$pkgver-r$pkgrel
50 $_pkgname-theming=$pkgver-r$pkgrel
51 $pkgname-theming=$pkgver-r$pkgrel
52 $_pkgname-twofactor_backupcodes=$pkgver-r$pkgrel
53 $pkgname-twofactor_backupcodes=$pkgver-r$pkgrel
54 $_pkgname-twofactor_nextcloud_notification=$pkgver-r$pkgrel
55 $pkgname-twofactor_nextcloud_notification=$pkgver-r$pkgrel
56 $_pkgname-twofactor_totp=$pkgver-r$pkgrel
57 $pkgname-twofactor_totp=$pkgver-r$pkgrel
58 $_pkgname-viewer=$pkgver-r$pkgrel
59 $pkgname-viewer=$pkgver-r$pkgrel
60 $_pkgname-workflowengine=$pkgver-r$pkgrel
61 $pkgname-workflowengine=$pkgver-r$pkgrel
62 " || provides="$pkgname-accessibility=$pkgver-r$pkgrel
63 $pkgname-bruteforcesettings=$pkgver-r$pkgrel
64 $pkgname-contactsinteraction=$pkgver-r$pkgrel
65 $pkgname-cloud_federation_api=$pkgver-r$pkgrel
66 $pkgname-dav=$pkgver-r$pkgrel
67 $pkgname-files=$pkgver-r$pkgrel
68 $pkgname-files_videoplayer=$pkgver-r$pkgrel
69 $pkgname-federatedfilesharing=$pkgver-r$pkgrel
70 $pkgname-lookup_server_connector=$pkgver-r$pkgrel
71 $pkgname-oauth2=$pkgver-r$pkgrel
72 $pkgname-profile=$pkgver-r$pkgrel
73 $pkgname-provisioning_api=$pkgver-r$pkgrel
74 $pkgname-related_resources=$pkgver-r$pkgrel
75 $pkgname-settings=$pkgver-r$pkgrel
76 $pkgname-theming=$pkgver-r$pkgrel
77 $pkgname-twofactor_backupcodes=$pkgver-r$pkgrel
78 $pkgname-twofactor_nextcloud_notification=$pkgver-r$pkgrel
79 $pkgname-twofactor_totp=$pkgver-r$pkgrel
80 $pkgname-viewer=$pkgver-r$pkgrel
81 $pkgname-workflowengine=$pkgver-r$pkgrel
82 "
83replaces="nextcloud$_replaced_ver"
84install="$pkgname.pre-install $pkgname.pre-upgrade $pkgname.post-upgrade $pkgname.post-install
85 $pkgname-initscript.post-install"
86subpackages="$pkgname-doc $pkgname-initscript $pkgname-mysql $pkgname-pgsql $pkgname-sqlite
87 $pkgname-default-apps:_default_apps $pkgname-occ"
88#source="https://download.nextcloud.com/server/releases/nextcloud-$pkgver.tar.bz2
89source="https://download.nextcloud.com/server/releases/nextcloud-$pkgver.tar.bz2
90 check-apps.sh
91 nextcloud-dont-chmod.patch
92 dont-update-htaccess.patch
93 disable-integrity-check-as-default.patch
94 use-external-docs-if-local-not-avail.patch
95
96 $_pkgname-config.php
97 $_pkgname.logrotate
98 $_pkgname.confd
99 $_pkgname.cron
100 $_pkgname-mysql.cnf
101 fpm-pool.conf
102 occ
103 README.alpine
104 "
105pkgusers="nextcloud"
106pkggroups="www-data"
107builddir="$srcdir"/$_pkgname
108
109# List of bundled apps to separate into subpackages. Keep it in sync!
110# NOTE: Don't add "cloud_federation_api", "dav", "federatedfilesharing",
111# "files", "lookup_server_connector", "oauth2", "profile",
112# "provisioning_api", "settings", "theming", "twofactor_backupcodes",
113# "twofactor_nextcloud_notification", "twofactor_totp", "viewer". See
114# "core/shipped.json".
115# And "bruteforcesettings", "contactsinteraction" "workflowengine",
116# "related_resources" in addition. These should be always installed.
117_apps="activity
118 admin_audit
119 app_api
120 appstore
121 circles
122 comments
123 dashboard
124 encryption
125 federation
126 files_downloadlimit
127 files_external
128 files_lock
129 files_pdfviewer
130 files_reminders
131 files_sharing
132 files_trashbin
133 files_versions
134 firstrunwizard
135 logreader
136 nextcloud_announcements
137 notifications
138 office
139 password_policy
140 photos
141 privacy
142 recommendations
143 serverinfo
144 support
145 sharebymail
146 survey_client
147 suspicious_login
148 systemtags
149 text
150 user_ldap
151 user_status
152 weather_status
153 webhook_listeners
154 "
155for _i in $_apps; do
156 subpackages="$subpackages $pkgname-$_i:_package_app"
157done
158
159# Directory for apps shipped with Nextcloud.
160_appsdir="usr/share/webapps/$_pkgname/apps"
161
162package() {
163 local basedir="var/lib/$_pkgname"
164 local datadir="$basedir/data"
165 local wwwdir="usr/share/webapps/$_pkgname"
166 local confdir="etc/$_pkgname"
167
168 mkdir -p "$pkgdir"
169 cd "$pkgdir"
170
171 mkdir -p ./${wwwdir%/*}
172 cp -a "$builddir" ./$wwwdir
173
174 chmod +x ./$wwwdir/occ
175 chmod 664 ./$wwwdir/.htaccess \
176 ./$wwwdir/.user.ini
177
178 # Let's not ship upstream's 'updatenotification' app and updater, which
179 # has zero chance of working and a big chance of blowing things up.
180 rm -r ./$wwwdir/apps/updatenotification \
181 ./$wwwdir/lib/private/Updater/VersionCheck.php
182
183 # Replace bundled CA bundle with ours.
184 ln -sf /etc/ssl/certs/ca-certificates.crt ./$wwwdir/resources/config/ca-bundle.crt
185
186 install -d -m 770 -o nextcloud -g www-data \
187 ./$confdir ./$datadir ./$basedir/apps
188 install -d -m 775 -o nextcloud -g www-data \
189 ./var/log/$_pkgname
190
191 # Create symlink from web root to site-apps, so web server can find
192 # assets w/o explicit configuration for this layout.
193 ln -s /$basedir/apps ./$wwwdir/apps-appstore
194
195 mv ./$wwwdir/config/* ./$confdir/
196 rm -r ./$wwwdir/config
197 ln -s /$confdir ./$wwwdir/config
198
199 mkdir -p ./usr/share/doc/$pkgname
200 mv ./$wwwdir/core/doc ./usr/share/doc/$pkgname/core
201
202 install -m 660 -o nextcloud -g www-data \
203 "$srcdir"/$_pkgname-config.php ./$confdir/config.php
204
205 install -m 644 -D "$srcdir"/$_pkgname.logrotate ./etc/logrotate.d/$_pkgname
206
207 install -m 755 -D "$srcdir"/occ ./usr/bin/occ
208
209 # Clean some unnecessary files.
210 find . -name .gitignore -delete \
211 -o -name .bower.json -delete \
212 -o -name 'README*' -delete \
213 -o -name 'CHANGELOG*' -delete \
214 -o -name 'CONTRIBUTING*' -delete
215 find . -name .github -type d -prune -exec rm -r {} \;
216}
217
218check() {
219 # check that all apps have been dealt with
220 ../check-apps.sh
221}
222
223doc() {
224 replaces="nextcloud$_replaced_ver-doc"
225 $_is_latest && provides="$_pkgname-doc=$pkgver-r$pkgrel"
226 default_doc
227
228 local target="$subpkgdir"/usr/share/webapps/$_pkgname/core/doc
229 mkdir -p "${target%/*}"
230 ln -s ../../../doc/$pkgname/core "$target"
231 install -m644 "$srcdir"/README.alpine "$subpkgdir"/usr/share/webapps/$_pkgname/README.alpine
232}
233
234initscript() {
235 pkgdesc="Init script that runs Nextcloud with php-fpm"
236 depends="$pkgname $_php-fpm"
237 replaces="nextcloud$_replaced_ver-initscript"
238 $_is_latest && provides="$_pkgname-initscript=$pkgver-r$pkgrel"
239
240 local confdir="$subpkgdir/etc/$_php/php-fpm.d"
241 local fpm_name="php-fpm${_php#php}"
242
243 install -m 644 -D "$srcdir"/fpm-pool.conf "$confdir"/$_pkgname.conf
244 install -m 644 -D "$srcdir"/$_pkgname.confd "$subpkgdir"/etc/conf.d/$_pkgname
245 install -m 755 -D "$srcdir"/$_pkgname.cron "$subpkgdir"/etc/periodic/15min/$_pkgname
246
247 mkdir -p "$subpkgdir"/etc/init.d
248 ln -s $fpm_name "$subpkgdir"/etc/init.d/$_pkgname
249}
250
251pgsql() {
252 pkgdesc="Nextcloud PostgreSQL support"
253 depends="$pkgname $_php-pgsql $_php-pdo_pgsql"
254 replaces="nextcloud$_replaced_ver-pgsql"
255 $_is_latest && provides="$_pkgname-pgsql=$pkgver-r$pkgrel"
256 mkdir -p "$subpkgdir"
257}
258
259sqlite() {
260 pkgdesc="Nextcloud SQLite support"
261 depends="$pkgname $_php-sqlite3 $_php-pdo_sqlite"
262 replaces="nextcloud$_replaced_ver-sqlite"
263 $_is_latest && provides="$_pkgname-sqlite=$pkgver-r$pkgrel"
264 mkdir -p "$subpkgdir"
265}
266
267mysql() {
268 pkgdesc="Nextcloud MySQL support"
269 depends="$pkgname $_php-pdo_mysql"
270 replaces="nextcloud$_replaced_ver-mysql"
271 $_is_latest && provides="$_pkgname-mysql=$pkgver-r$pkgrel"
272
273 mkdir -p "$subpkgdir"
274 install -m 644 -D "$srcdir"/$_pkgname-mysql.cnf "$subpkgdir"/etc/my.cnf.d/$_pkgname.cnf
275}
276
277occ() {
278 pkgdesc="Nextcloud OCC cmd"
279 replaces="nextcloud$_replaced_ver-occ"
280 $_is_latest && provides="$_pkgname-occ=$pkgver-r$pkgrel"
281 mkdir -p "$subpkgdir/usr/share/webapps/$_pkgname"
282 amove "usr/share/webapps/$_pkgname/occ"
283 amove "usr/bin/occ"
284}
285
286_default_apps() {
287 pkgdesc="Nextcloud default apps"
288 depends="$pkgname"
289 replaces="nextcloud$_replaced_ver-default-apps"
290 $_is_latest && provides="$_pkgname-default-apps=$pkgver-r$pkgrel"
291
292 local path; for path in "$pkgdir"/"$_appsdir"/*; do
293 if grep -q '<default_enable\s*/>' "$path"/appinfo/info.xml; then
294 depends="$depends $pkgname-${path##*/}"
295 fi
296 done
297
298 mkdir -p "$subpkgdir"
299}
300
301_package_app() {
302 local appname="${subpkgname#"$pkgname"-}"
303 local appinfo="$pkgdir/$_appsdir/$appname/appinfo/info.xml"
304
305 local name=$(xmlstarlet sel -t -v 'info/name/text()' "$appinfo")
306 pkgdesc="Nextcloud ${name:-$appname} app"
307 replaces="nextcloud$_replaced_ver-$appname"
308 $_is_latest && provides="$_pkgname-$appname=$pkgver-r$pkgrel"
309
310 local php_deps=$(xmlstarlet sel -t -v 'info/dependencies/lib/text()' "$appinfo" \
311 | xargs -r -n1 printf "$_php-%s\n")
312 local app_deps=""
313
314 case "$appname" in
315 files_sharing) app_deps="-federatedfilesharing"
316 ;;
317 serverinfo) app_deps="-files_sharing"
318 esac
319
320 depends="$pkgname $php_deps ${app_deps//-/$pkgname-}"
321
322 mkdir -p "$subpkgdir"/$_appsdir
323 mv "$pkgdir"/$_appsdir/$appname "$subpkgdir"/$_appsdir/
324}
325
326sha512sums="
32783ac93832da26ea0f03c03a2860a8769faee4d20582993d22badb5bf3889c5e16f4167d50a09936f9bcf95a3be68eafeee8e4cf3341f23593354fc5049b10f84 nextcloud-34.0.4.tar.bz2
3286af1bb6ff7c19a836ae4f830637d8617eddfc67aa0c2b942b0f592218d1159b4fa9fc4128e000d432abc7d196d7cc17bb14ac0e261d8d8e7a66fe1dba51db583 check-apps.sh
32914a9327477c6a399bf097eaed4a1b87f26a5281f40034c58816d15f5697dc4772617798037d459615d23d9551064eb3dfdc21996ad0400df417f901060606572 nextcloud-dont-chmod.patch
3300ec9c77586bfc8f9e49f591570e6c8a2294af4ed5063566b428814b709412012be6ff8ce8e6680d6a4e247264cee678eaa2a57df11c7909eb8e27990eee87cf0 dont-update-htaccess.patch
33150619b5bb5baf47a358ea03d1e14064c59bd421e519fad1598408ca466ea2793ec8a0b4c5408a06b97ec1e736cb14c7cf1ebbdd7f35f41448d4c7de8975ec617 disable-integrity-check-as-default.patch
3323022d755f4a7b994d0266c7c7457b9ba920002ba1fdaecde293e71ab39571c53a10b35a31f997f65d7e8f7128fff3a78a3d031e2fef6475fa12197ac95341673 use-external-docs-if-local-not-avail.patch
3335f73cd9399fa484ef15bd47e803c93381deffbc7699eceadbb5c27e43b20156806d74e5021a64d28f0165ef87b519e962780651711a37bceb9f0b04455dfdce1 nextcloud-config.php
3347388458a9e8b7afd3d3269718306410ffa59c3c23da4bef367a4d7f6d2570136fae9dd421b19c1441e7ffb15a5405e18bb5da67b1a15f9f45e8b98d3fda532ba nextcloud.logrotate
335dcc57735d7d4af4a7ebbdd1186d301e51d2ae4675022aea6bf1111222dfa188a3a490ebd6e7c8a7ac30046cb7d93f81cec72a51acbc60d0c10b7fb64630c637a nextcloud.confd
336b09aafb85962f0a0878ff0f6f3ff95892bd517191f5bb15a18d2b24c6da7c3b93b93b31d44c177c32b9fc4ecbeae72df26f0e7c16a52e9c9da7aafa1d068b033 nextcloud.cron
337b9ad5434c384c96608f00d65c45f782e279c6756da8fb706f62ecaf7b7aa420077cb6989da5e85becc47418884ec0672e7db874174454ca679fdca84a50f537f nextcloud-mysql.cnf
33878ef204ee7c12b228c0b7b04333514e561c1c8e19153f5507224fa4fdd112aaaa6331747014f3b72181298f52ecd4223bcff4bd963b49b49153265254b07e79b fpm-pool.conf
339c328835bd1e076e0b158a12b2dc1b3a7606c60ccda6e98a8210bfb59a171ca669ef1fa85cf870f79e8752b80e3d98711aba34ac628fad9dfcfd02b7f2622c504 occ
34048504e1f674d28366bfd9a474342667b206e0d55d76ed1e10f35243f34dbf6efa822ed53cf73ac4fcbdaa28230ba483522cfe575366dd85ee6f6ceb4f36036bc README.alpine
341"