# Contributor: Jakub Jirutka # Contributor: Leonardo Arena # Maintainer: Max Rees pkgname=nextcloud pkgver=18.0.3 pkgrel=0 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 openssl 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 !$pkgname-files_texteditor !$pkgname-gallery !$pkgname-user_external " makedepends="libxml2-utils" install="$pkgname.pre-install $pkgname.pre-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 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" # $_bundled_apps are included in the main `nextcloud' package - it can't # work without them. This can be checked against core/shipped.json's # "alwaysEnabled" entries. # # $_apps are separated into subpackages. # # `accessibility' & `support' are still bundled for backwards compatibility. _bundled_apps="accessibility cloud_federation_api dav federatedfilesharing files lookup_server_connector oauth2 provisioning_api settings support twofactor_backupcodes workflowengine " for _i in $_bundled_apps; do provides="$provides $pkgname-$_i=$pkgver-r$pkgrel" done _apps="activity admin_audit comments encryption federation files_external files_pdfviewer files_rightclick files_sharing files_trashbin files_versions files_videoplayer firstrunwizard logreader nextcloud_announcements notifications password_policy photos privacy recommendations serverinfo sharebymail survey_client systemtags text theming user_ldap viewer " for _i in $_apps; do subpackages="$subpackages $pkgname-$_i:_package_app" done # Directory for apps shipped with Nextcloud. _appsdir="usr/share/webapps/$pkgname/apps" package() { _basedir="var/lib/$pkgname" _datadir="$_basedir/data" _wwwdir="usr/share/webapps/$pkgname" _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 _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=$pkgver-r$pkgrel 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=$pkgver-r$pkgrel php7-pgsql php7-pdo_pgsql" mkdir -p "$subpkgdir" } sqlite() { pkgdesc="Nextcloud SQLite support" depends="$pkgname=$pkgver-r$pkgrel php7-sqlite3 php7-pdo_sqlite" mkdir -p "$subpkgdir" } mysql() { pkgdesc="Nextcloud MySQL support" depends="$pkgname=$pkgver-r$pkgrel php7-pdo_mysql" mkdir -p "$subpkgdir" } _default_apps() { pkgdesc="Nextcloud default apps" depends="$pkgname=$pkgver-r$pkgrel" for _path in $pkgdir/$_appsdir/*; do if grep -q '' "$_path/appinfo/info.xml"; then depends="$depends $pkgname-${_path##*/}" fi if ! list_has "${_path##*/}" $_apps \ && ! list_has "${_path##*/}" $_bundled_apps; then warning "Maybe new app: nextcloud-${_path##*/}" fi done mkdir -p "$subpkgdir" } _package_app() { _appname="${subpkgname#$pkgname-}" _appinfo="$pkgdir/$_appsdir/$_appname/appinfo/info.xml" _name="$(xmllint --xpath '//info/name/text()' "$_appinfo" 2>/dev/null)" pkgdesc="Nextcloud ${_name:-$_appname} app" _php_deps="$(xmllint --xpath 'info/dependencies/lib/text()' \ "$_appinfo" 2>/dev/null | sed 's/^/php7-/')" case "$_appname" in files_external) _php_deps="$_php_deps php7-ftp";; # TODO: add php7-imap, php7-smbclient esac case "$_appname" in # Announcements are delivered via the notifications pane nextcloud_announcements) app_deps="$pkgname-notifications";; esac depends="$pkgname=$pkgver-r$pkgrel $_php_deps $app_deps" mkdir -p "$subpkgdir/$_appsdir" mv "$pkgdir/$_appsdir/$_appname" "$subpkgdir/$_appsdir/" } sha512sums="f7ae10f89ca4d1c0da240eefecadcddf15172177c411181a5dd7977b33ac2237805211156dbe229dfc9e71f8da3d1062677b8463f19b4103a757f1fd20af0b73 nextcloud-18.0.3.zip 3336c2f534de1e380d64bb87f07dcaeb617db5b7bb9446ed845e78be917c1c87eb6f7da71a6b4382198d977e21e550b3165d0b276b07b68a0a569a383766c75d dont-chmod.patch aef3c92497d738d6968e0f0b0d415b4953500db24ae14af41ef972665cf7eff00cb6c53dc953845fdbb389c3c965a75b8b14b9247513c05cf4130fe1cfc61731 dont-update-htaccess.patch d2100a837fef1eeae5f706650ab4c985d9e00f61efa5526ef76c7c1f5811c3906eb6c3c13c151eff9677a0c303faab64411a5a84d6792728bc520d2c618d7d5b disable-integrity-check-as-default.patch de1b433c2fb2582b599cb25e718e454fc4b93543a5a60eee39a03bcccf35d281594611395bdebe02319bedd9a894507eef97010ebdfca381e0f1a09df283d375 iconv-ascii-translit-not-supported.patch 9f4c8c3682808995c1a900cf965b65bddf6a4ac340a364f1bbbda7ebb52c5753da0d8290bbce1885202a7e2bd2f1736a0517195a97e37c9eda07005342257030 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"