| 1 | # Contributor: Jakub Jirutka <[email protected]> |
| 2 | # Contributor: jahway603 <[email protected]> |
| 3 | # Maintainer: Leonardo Arena <[email protected]> |
| 4 | _pkgname=nextcloud |
| 5 | pkgver=34.0.4 |
| 6 | pkgrel=0 |
| 7 | _is_latest=true |
| 8 | _pkgvermaj=${pkgver%%.*} |
| 9 | pkgname=nextcloud$_pkgvermaj |
| 10 | _replaced_ver=$(( _pkgvermaj - 1 )) |
| 11 | pkgdesc="A safe home for all your data" |
| 12 | url="https://nextcloud.com/" |
| 13 | arch="noarch" |
| 14 | license="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" |
| 19 | depends="ca-certificates $_php ${_php_mods//-/$_php-}" |
| 20 | makedepends="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 | " |
| 83 | replaces="nextcloud$_replaced_ver" |
| 84 | install="$pkgname.pre-install $pkgname.pre-upgrade $pkgname.post-upgrade $pkgname.post-install |
| 85 | $pkgname-initscript.post-install" |
| 86 | subpackages="$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 |
| 89 | source="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 | " |
| 105 | pkgusers="nextcloud" |
| 106 | pkggroups="www-data" |
| 107 | builddir="$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 | " |
| 155 | for _i in $_apps; do |
| 156 | subpackages="$subpackages $pkgname-$_i:_package_app" |
| 157 | done |
| 158 | |
| 159 | # Directory for apps shipped with Nextcloud. |
| 160 | _appsdir="usr/share/webapps/$_pkgname/apps" |
| 161 | |
| 162 | package() { |
| 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 | |
| 218 | check() { |
| 219 | # check that all apps have been dealt with |
| 220 | ../check-apps.sh |
| 221 | } |
| 222 | |
| 223 | doc() { |
| 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 | |
| 234 | initscript() { |
| 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 | |
| 251 | pgsql() { |
| 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 | |
| 259 | sqlite() { |
| 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 | |
| 267 | mysql() { |
| 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 | |
| 277 | occ() { |
| 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 | |
| 326 | sha512sums=" |
| 327 | 83ac93832da26ea0f03c03a2860a8769faee4d20582993d22badb5bf3889c5e16f4167d50a09936f9bcf95a3be68eafeee8e4cf3341f23593354fc5049b10f84 nextcloud-34.0.4.tar.bz2 |
| 328 | 6af1bb6ff7c19a836ae4f830637d8617eddfc67aa0c2b942b0f592218d1159b4fa9fc4128e000d432abc7d196d7cc17bb14ac0e261d8d8e7a66fe1dba51db583 check-apps.sh |
| 329 | 14a9327477c6a399bf097eaed4a1b87f26a5281f40034c58816d15f5697dc4772617798037d459615d23d9551064eb3dfdc21996ad0400df417f901060606572 nextcloud-dont-chmod.patch |
| 330 | 0ec9c77586bfc8f9e49f591570e6c8a2294af4ed5063566b428814b709412012be6ff8ce8e6680d6a4e247264cee678eaa2a57df11c7909eb8e27990eee87cf0 dont-update-htaccess.patch |
| 331 | 50619b5bb5baf47a358ea03d1e14064c59bd421e519fad1598408ca466ea2793ec8a0b4c5408a06b97ec1e736cb14c7cf1ebbdd7f35f41448d4c7de8975ec617 disable-integrity-check-as-default.patch |
| 332 | 3022d755f4a7b994d0266c7c7457b9ba920002ba1fdaecde293e71ab39571c53a10b35a31f997f65d7e8f7128fff3a78a3d031e2fef6475fa12197ac95341673 use-external-docs-if-local-not-avail.patch |
| 333 | 5f73cd9399fa484ef15bd47e803c93381deffbc7699eceadbb5c27e43b20156806d74e5021a64d28f0165ef87b519e962780651711a37bceb9f0b04455dfdce1 nextcloud-config.php |
| 334 | 7388458a9e8b7afd3d3269718306410ffa59c3c23da4bef367a4d7f6d2570136fae9dd421b19c1441e7ffb15a5405e18bb5da67b1a15f9f45e8b98d3fda532ba nextcloud.logrotate |
| 335 | dcc57735d7d4af4a7ebbdd1186d301e51d2ae4675022aea6bf1111222dfa188a3a490ebd6e7c8a7ac30046cb7d93f81cec72a51acbc60d0c10b7fb64630c637a nextcloud.confd |
| 336 | b09aafb85962f0a0878ff0f6f3ff95892bd517191f5bb15a18d2b24c6da7c3b93b93b31d44c177c32b9fc4ecbeae72df26f0e7c16a52e9c9da7aafa1d068b033 nextcloud.cron |
| 337 | b9ad5434c384c96608f00d65c45f782e279c6756da8fb706f62ecaf7b7aa420077cb6989da5e85becc47418884ec0672e7db874174454ca679fdca84a50f537f nextcloud-mysql.cnf |
| 338 | 78ef204ee7c12b228c0b7b04333514e561c1c8e19153f5507224fa4fdd112aaaa6331747014f3b72181298f52ecd4223bcff4bd963b49b49153265254b07e79b fpm-pool.conf |
| 339 | c328835bd1e076e0b158a12b2dc1b3a7606c60ccda6e98a8210bfb59a171ca669ef1fa85cf870f79e8752b80e3d98711aba34ac628fad9dfcfd02b7f2622c504 occ |
| 340 | 48504e1f674d28366bfd9a474342667b206e0d55d76ed1e10f35243f34dbf6efa822ed53cf73ac4fcbdaa28230ba483522cfe575366dd85ee6f6ceb4f36036bc README.alpine |
| 341 | " |