269 lines
8.9 KiB
Text
269 lines
8.9 KiB
Text
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
|
|
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
|
|
pkgname=nextcloud
|
|
pkgver=26.0.2
|
|
pkgrel=0
|
|
_replaced_ver=25
|
|
pkgdesc="A safe home for all your data"
|
|
url="https://nextcloud.com/"
|
|
arch="noarch"
|
|
license="AGPL-3.0-only"
|
|
_php=php81
|
|
_php_mods="-bcmath -ctype -curl -dom -gd -fileinfo -gmp -iconv -intl
|
|
-mbstring -opcache -openssl -pcntl -posix -session
|
|
-simplexml -xml -xmlreader -xmlwriter -zip"
|
|
depends="ca-certificates $_php ${_php_mods//-/$_php-}"
|
|
makedepends="xmlstarlet"
|
|
provides="$pkgname-accessibility=$pkgver-r$pkgrel
|
|
$pkgname-bruteforcesettings=$pkgver-r$pkgrel
|
|
$pkgname-contactsinteraction=$pkgver-r$pkgrel
|
|
$pkgname-cloud_federation_api=$pkgver-r$pkgrel
|
|
$pkgname-dav=$pkgver-r$pkgrel
|
|
$pkgname-files=$pkgver-r$pkgrel
|
|
$pkgname-files_videoplayer=$pkgver-r$pkgrel
|
|
$pkgname-federatedfilesharing=$pkgver-r$pkgrel
|
|
$pkgname-lookup_server_connector=$pkgver-r$pkgrel
|
|
$pkgname-oauth2=$pkgver-r$pkgrel
|
|
$pkgname-provisioning_api=$pkgver-r$pkgrel
|
|
$pkgname-related_resources=$pkgver-r$pkgrel
|
|
$pkgname-settings=$pkgver-r$pkgrel
|
|
$pkgname-theming=$pkgver-r$pkgrel
|
|
$pkgname-twofactor_totp=$pkgver-r$pkgrel
|
|
$pkgname-twofactor_backupcodes=$pkgver-r$pkgrel
|
|
$pkgname-viewer=$pkgver-r$pkgrel
|
|
$pkgname-workflowengine=$pkgver-r$pkgrel
|
|
"
|
|
replaces="nextcloud$_replaced_ver"
|
|
install="$pkgname.pre-install $pkgname.pre-upgrade $pkgname.post-upgrade
|
|
$pkgname-initscript.post-install"
|
|
subpackages="$pkgname-doc $pkgname-initscript $pkgname-mysql $pkgname-pgsql $pkgname-sqlite
|
|
$pkgname-default-apps:_default_apps"
|
|
source="https://download.nextcloud.com/server/releases/nextcloud-$pkgver.tar.bz2
|
|
nextcloud-dont-chmod.patch
|
|
dont-update-htaccess.patch
|
|
disable-integrity-check-as-default.patch
|
|
use-external-docs-if-local-not-avail.patch
|
|
|
|
$pkgname-config.php
|
|
$pkgname.logrotate
|
|
$pkgname.confd
|
|
$pkgname.cron
|
|
$pkgname-mysql.cnf
|
|
fpm-pool.conf
|
|
occ
|
|
"
|
|
options="!check"
|
|
pkgusers="nextcloud"
|
|
pkggroups="www-data"
|
|
builddir="$srcdir"/$pkgname
|
|
|
|
# List of bundled apps to separate into subpackages. Keep it in sync!
|
|
# Note: Don't add "bruteforcesettings", "contactsinteraction",
|
|
# "cloud_federation_api", "files", "dav",
|
|
# "federatedfilesharing", "lookup_server_connector", "provisioning_api",
|
|
# "oauth2", "settings", "twofactor_backupcodes", "twofactor_totp",
|
|
# "theming", "viewer", "workflowengine", "related_resources"
|
|
# here, these should be always installed.
|
|
_apps="activity
|
|
admin_audit
|
|
circles
|
|
comments
|
|
dashboard
|
|
encryption
|
|
federation
|
|
files_external
|
|
files_pdfviewer
|
|
files_rightclick
|
|
files_sharing
|
|
files_trashbin
|
|
files_versions
|
|
firstrunwizard
|
|
logreader
|
|
nextcloud_announcements
|
|
notifications
|
|
password_policy
|
|
photos
|
|
privacy
|
|
recommendations
|
|
serverinfo
|
|
support
|
|
sharebymail
|
|
survey_client
|
|
suspicious_login
|
|
systemtags
|
|
text
|
|
user_ldap
|
|
user_status
|
|
weather_status
|
|
"
|
|
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() {
|
|
local basedir="var/lib/$pkgname"
|
|
local datadir="$basedir/data"
|
|
local wwwdir="usr/share/webapps/$pkgname"
|
|
local confdir="etc/$pkgname"
|
|
|
|
mkdir -p "$pkgdir"
|
|
cd "$pkgdir"
|
|
|
|
mkdir -p ./${wwwdir%/*}
|
|
cp -a "$builddir" ./$wwwdir
|
|
|
|
chmod +x ./$wwwdir/occ
|
|
chmod 664 ./$wwwdir/.htaccess \
|
|
./$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 ./$wwwdir/apps/updatenotification \
|
|
./$wwwdir/lib/private/Updater/VersionCheck.php
|
|
|
|
# Replace bundled CA bundle with ours.
|
|
ln -sf /etc/ssl/certs/ca-certificates.crt ./$wwwdir/resources/config/ca-bundle.crt
|
|
|
|
install -d -m 770 -o nextcloud -g www-data \
|
|
./$confdir ./$datadir ./$basedir/apps
|
|
install -d -m 775 -o nextcloud -g www-data \
|
|
./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/apps ./$wwwdir/apps-appstore
|
|
|
|
mv ./$wwwdir/config/* ./$confdir/
|
|
rm -r ./$wwwdir/config
|
|
ln -s /$confdir ./$wwwdir/config
|
|
|
|
mkdir -p ./usr/share/doc/$pkgname
|
|
mv ./$wwwdir/core/doc ./usr/share/doc/$pkgname/core
|
|
|
|
install -m 660 -o nextcloud -g www-data \
|
|
"$srcdir"/$pkgname-config.php ./$confdir/config.php
|
|
|
|
install -m 644 -D "$srcdir"/$pkgname.logrotate ./etc/logrotate.d/$pkgname
|
|
|
|
install -m 755 -D "$srcdir"/occ ./usr/bin/occ
|
|
|
|
# Clean some unnecessary files.
|
|
find . -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() {
|
|
replaces="nextcloud$_replaced_ver-doc"
|
|
default_doc
|
|
|
|
local target="$subpkgdir"/usr/share/webapps/$pkgname/core/doc
|
|
mkdir -p "${target%/*}"
|
|
ln -s ../../../doc/$pkgname/core "$target"
|
|
install -m644 README.alpine "$subpkgdir"/usr/share/webapps/$pkgname/README.alpine
|
|
}
|
|
|
|
initscript() {
|
|
pkgdesc="Init script that runs Nextcloud with php-fpm"
|
|
depends="$pkgname $_php-fpm"
|
|
replaces="nextcloud$_replaced_ver-initscript"
|
|
|
|
local confdir="$subpkgdir/etc/$_php/php-fpm.d"
|
|
local fpm_name="php-fpm${_php#php}"
|
|
|
|
install -m 644 -D "$srcdir"/fpm-pool.conf "$confdir"/$pkgname.conf
|
|
install -m 644 -D "$srcdir"/$pkgname.confd "$subpkgdir"/etc/conf.d/$pkgname
|
|
install -m 755 -D "$srcdir"/$pkgname.cron "$subpkgdir"/etc/periodic/15min/$pkgname
|
|
|
|
mkdir -p "$subpkgdir"/etc/init.d
|
|
ln -s $fpm_name "$subpkgdir"/etc/init.d/$pkgname
|
|
}
|
|
|
|
pgsql() {
|
|
pkgdesc="Nextcloud PostgreSQL support"
|
|
depends="$pkgname $_php-pgsql $_php-pdo_pgsql"
|
|
replaces="nextcloud$_replaced_ver-pgsql"
|
|
mkdir -p "$subpkgdir"
|
|
}
|
|
|
|
sqlite() {
|
|
pkgdesc="Nextcloud SQLite support"
|
|
depends="$pkgname $_php-sqlite3 $_php-pdo_sqlite"
|
|
replaces="nextcloud$_replaced_ver-sqlite"
|
|
mkdir -p "$subpkgdir"
|
|
}
|
|
|
|
mysql() {
|
|
pkgdesc="Nextcloud MySQL support"
|
|
depends="$pkgname $_php-pdo_mysql"
|
|
replaces="nextcloud$_replaced_ver-mysql"
|
|
|
|
mkdir -p "$subpkgdir"
|
|
install -m 644 -D "$srcdir"/$pkgname-mysql.cnf "$subpkgdir"/etc/my.cnf.d/$pkgname.cnf
|
|
}
|
|
|
|
_default_apps() {
|
|
pkgdesc="Nextcloud default apps"
|
|
depends="$pkgname"
|
|
replaces="nextcloud$_replaced_ver-default-apps"
|
|
|
|
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=$(xmlstarlet sel -t -v 'info/name/text()' "$appinfo")
|
|
pkgdesc="Nextcloud ${name:-$appname} app"
|
|
replaces="nextcloud$_replaced_ver-$appname"
|
|
|
|
local php_deps=$(xmlstarlet sel -t -v 'info/dependencies/lib/text()' "$appinfo" \
|
|
| xargs -r -n1 printf "$_php-%s\n")
|
|
local app_deps=""
|
|
|
|
case "$appname" in
|
|
dashboard) app_deps="-accessibility"
|
|
;;
|
|
files_sharing) app_deps="-federatedfilesharing"
|
|
;;
|
|
photos)
|
|
app_deps="-viewer"
|
|
provides="$pkgname-gallery=$pkgver-r$pkgrel"
|
|
replaces="$replaces nextcloud$_replaced_ver-gallery"
|
|
;;
|
|
serverinfo) app_deps="-files_sharing"
|
|
esac
|
|
|
|
depends="$pkgname $php_deps ${app_deps//-/$pkgname-}"
|
|
|
|
mkdir -p "$subpkgdir"/$_appsdir
|
|
mv "$pkgdir"/$_appsdir/$appname "$subpkgdir"/$_appsdir/
|
|
}
|
|
|
|
sha512sums="
|
|
b7e276d19b1cb6591e0155503b549c57be64a87627d7948d161ecdaf17982258369d146d78c21525ef9bf2b4343d40ce98c79a5e2a321f56a3b3bf677304efc5 nextcloud-26.0.2.tar.bz2
|
|
aea0adb2c3a48ec6af2958c6ccfe13adff86316a56084e763b7e6df9e21aa3435b13305b7c15cc2b795e83c9388b05006862f6465c29e3dc2c1fbd8eb8befcb9 nextcloud-dont-chmod.patch
|
|
aef3c92497d738d6968e0f0b0d415b4953500db24ae14af41ef972665cf7eff00cb6c53dc953845fdbb389c3c965a75b8b14b9247513c05cf4130fe1cfc61731 dont-update-htaccess.patch
|
|
d2100a837fef1eeae5f706650ab4c985d9e00f61efa5526ef76c7c1f5811c3906eb6c3c13c151eff9677a0c303faab64411a5a84d6792728bc520d2c618d7d5b disable-integrity-check-as-default.patch
|
|
fa63b5de7e6a44d91af6403bd1f2739f0f785b99a1bd5c978b91d1348fead9059d847c228a90e13844c66be60d4ee9186e4ecb18ac367899a7f153211ac057b4 use-external-docs-if-local-not-avail.patch
|
|
5f73cd9399fa484ef15bd47e803c93381deffbc7699eceadbb5c27e43b20156806d74e5021a64d28f0165ef87b519e962780651711a37bceb9f0b04455dfdce1 nextcloud-config.php
|
|
7388458a9e8b7afd3d3269718306410ffa59c3c23da4bef367a4d7f6d2570136fae9dd421b19c1441e7ffb15a5405e18bb5da67b1a15f9f45e8b98d3fda532ba nextcloud.logrotate
|
|
dcc57735d7d4af4a7ebbdd1186d301e51d2ae4675022aea6bf1111222dfa188a3a490ebd6e7c8a7ac30046cb7d93f81cec72a51acbc60d0c10b7fb64630c637a nextcloud.confd
|
|
bd077495e4caea88f5d5d8f65e6607ecff03671a26cb08cdcad57bd8e82397f75a2a8f49971c6ebdb8d158904784ff13849fa4944263bbd43056ffced70f054c nextcloud.cron
|
|
b9ad5434c384c96608f00d65c45f782e279c6756da8fb706f62ecaf7b7aa420077cb6989da5e85becc47418884ec0672e7db874174454ca679fdca84a50f537f nextcloud-mysql.cnf
|
|
78ef204ee7c12b228c0b7b04333514e561c1c8e19153f5507224fa4fdd112aaaa6331747014f3b72181298f52ecd4223bcff4bd963b49b49153265254b07e79b fpm-pool.conf
|
|
0c2e880f68f76d04fd8264986cc7735597bb7ede846e7e67dec2bf58fcd85cc4e28e03a3c05c7299e56803eecfbc4d035d9e4dbf09508631c9256a38ed59d413 occ
|
|
"
|