community/nextcloud: move almost all apps to subpackages

This commit is contained in:
Jakub Jirutka 2017-06-25 01:42:19 +02:00
parent ae8f222e19
commit edde9744d2
3 changed files with 108 additions and 85 deletions

View File

@ -1,4 +1,5 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
pkgname=nextcloud
pkgver=12.0.0
pkgrel=2
@ -10,14 +11,13 @@ _php=php7
_php_mods="-ctype -curl -dom -gd -fileinfo -iconv -json -mbstring -openssl
-posix -session -simplexml -xml -xmlreader -xmlwriter -zlib -zip"
depends="$_php ${_php_mods//-/$_php-}"
_apps="-activity -encryption -firstrunwizard -gallery -ldap -logreader -mysql
-notifications -password_policy -pdfviewer -pgsql -sqlite -texteditor
-videoplayer"
install="$pkgname.pre-install $pkgname.pre-upgrade $pkgname.post-upgrade"
subpackages="$pkgname-initscript ${_apps//-/$pkgname-}"
subpackages="$pkgname-initscript $pkgname-mysql $pkgname-pgsql $pkgname-sqlite
$pkgname-default-apps:_default_apps"
source="https://download.nextcloud.com/server/releases/$pkgname-$pkgver.zip
nextcloud10-dont-chmod-config.patch
dont-update-htaccess.patch
app-encryption-info-add-mcrypt.patch
$pkgname-config.php
$pkgname.logrotate
$pkgname.confd
@ -27,6 +27,44 @@ pkgusers="nextcloud"
pkggroups="www-data"
builddir="$srcdir"/$pkgname
# List of bundled apps to separate into subpackages. Keep it in sync!
# Note: Don't add "files" and "dav" here, these should be always installed.
_apps="activity
admin_audit
comments
encryption
federatedfilesharing
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
provisioning_api
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"
@ -112,89 +150,50 @@ mysql() {
mkdir -p "$subpkgdir"
}
activity() {
pkgdesc="Nextcloud Activity app"
_default_apps() {
pkgdesc="Nextcloud default apps"
depends="$pkgname"
_mv_app pkg activity
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"
}
encryption() {
pkgdesc="Nextcloud Encryption app"
depends="$pkgname $_php-mcrypt"
_mv_app pkg encryption
}
firstrunwizard() {
pkgdesc="Nextcloud Firstrunwizard app"
depends="$pkgname"
_mv_app pkg firstrunwizard
}
gallery() {
pkgdesc="Nextcloud Gallery app"
depends="$pkgname"
_mv_app pkg gallery
}
ldap() {
pkgdesc="Nextcloud LDAP auth backend support"
depends="$pkgname $_php-ldap"
_mv_app pkg user_ldap
}
logreader() {
pkgdesc="Nextcloud Log Reader app"
depends="$pkgname"
_mv_app pkg logreader
}
notifications() {
pkgdesc="Nextcloud Email notification support"
depends="$pkgname"
_mv_app pkg notifications
}
password_policy() {
pkgdesc="Nextcloud Password Policy app"
depends="$pkgname"
_mv_app pkg password_policy
}
pdfviewer() {
pkgdesc="Nextcloud integrated PDF viewer"
depends="$pkgname"
_mv_app pkg files_pdfviewer
}
texteditor() {
pkgdesc="Nextcloud Text Editor app"
depends="$pkgname"
_mv_app pkg files_texteditor
}
videoplayer() {
pkgdesc="Nextcloud Video Viewer app"
depends="nextcloud"
provides="$pkgname-videoviewer"
_mv_app pkg files_videoplayer
}
_mv_app() {
local from="$1"
local dirname="$2"
_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"
local php_deps=$(xmlstarlet sel -t -v 'info/dependencies/lib/text()' "$appinfo" \
| xargs -r -n1 printf "$_php-%s\n")
depends="$pkgname $php_deps"
# XXX: Provides/replaces for backward compatibility with <12.0.0-r2.
case "$appname" in
files_pdfviewer | files_texteditor | files_videoplayer)
provides="$pkgname-${appname#files_}"
replaces="$provides"
;;
user_ldap)
provides="$pkgname-ldap"
replaces="$provides"
;;
esac
mkdir -p "$subpkgdir"/$_appsdir
case "$from" in
pkg) mv "$pkgdir"/$_appsdir/$dirname "$subpkgdir"/$_appsdir/;;
src) mv "$srcdir"/$dirname "$subpkgdir"/$_appsdir/$appname;;
esac
mv "$pkgdir"/$_appsdir/$appname "$subpkgdir"/$_appsdir/
}
sha512sums="0e409eedbcc0f4e1652085c3e384db373858b0cc116c70361a4d066a08afbd6e75792332f95d08773cbed78c1520532886268249d514f2da70acb3ba120420d5 nextcloud-12.0.0.zip
a12a73a38bc009d3307ce97bb32fc62ac93e125a77a3d36b31c9d2212953fa17bd5c31f819e0759a0645b1c285817b067143b0b9c3673ce4ab3043fae426a67c nextcloud10-dont-chmod-config.patch
ec3921d4d463ed82be0be073af8064048a20f638424d1d39ab46db4252036e87ef2614570be91a5cef0c25c6bcaaf1a2725d2468bdb4a0fbee2b504a4dd0fbc8 dont-update-htaccess.patch
8d3cb1436aa79f1ac0a7b4b3370fcfb5c50dbe811e631cabcb8170fb80da5967a88a15bc39cd04eaccffb3177bdf90fcba2a512e28e034e16d6bc9b445d2d137 app-encryption-info-add-mcrypt.patch
9df8ea433d9fb5578a2de366106aa9004502a92557970ee48f9f3de92705a623a461eb410666f0e55d46023d0a324cd185a0b51957a1b72992779a0f7143d23d nextcloud-config.php
f224d72799ee5819979089eb58978225454223bee597c938681a4f6279eb49297fe9250ac54ccf8bcb33ae262bce43d085affb77723492ee662263710d4008c9 nextcloud.logrotate
35cf156839215113b5d8fb8842b4c1e19a50be3c16be7048879fdd808674e4875dbacf3e2dd884fd182258595b7a137d7d3c2dc602a7ff5613c8b65fae0abe67 nextcloud.confd

View File

@ -0,0 +1,14 @@
mcrypt is not required, but it's recommended to increase file encryption
performance. We're adding it to info.xml just to simplify abuild (all app
dependencies can be read in info.xml).
--- a/apps/encryption/appinfo/info.xml
+++ b/apps/encryption/appinfo/info.xml
@@ -24,6 +24,7 @@
</types>
<dependencies>
<lib>openssl</lib>
+ <lib>mcrypt</lib>
<nextcloud min-version="12" max-version="12" />
</dependencies>
<settings>

View File

@ -2,18 +2,28 @@
ver_old="$2"
if [ $(apk version -t "$ver_old" '12.0.0-r2') = '<' ] \
&& [ "$(ls -A /var/lib/nextcloud/apps)" ]
then
if [ $(apk version -t "$ver_old" '12.0.0-r2') = '<' ]; then
cat >&2 <<-EOF
*
* Nextcloud's bundled apps have been moved from /var/lib/nextcloud/apps
* to /usr/share/webapps/nextcloud/apps. Only apps installed from App Store
* should be stored in /var/lib/nextcloud/apps.
* All Nextcloud's bundled apps (except "files" and "dav") have been moved to
* separate subpackages (e.g. nextcloud-activity). If you want to install
* all apps that are enabled by default at once, run:
*
* It seems that you have installed some apps from App Store, so you have to
* add /var/lib/nextcloud/apps to your apps_paths. Copy "apps_paths" key
* from /etc/nextcloud/config.php.apk-new to your config.php.
* apk add nextcloud-default-apps
*
EOF
if [ "$(ls -A /var/lib/nextcloud/apps)" ]; then
cat >&2 <<-EOF
*
* Nextcloud's bundled apps have been moved from /var/lib/nextcloud/apps
* to /usr/share/webapps/nextcloud/apps. Only apps installed from App Store
* should be stored in /var/lib/nextcloud/apps.
*
* It seems that you have installed some apps from App Store, so you have to
* add /var/lib/nextcloud/apps to your apps_paths. Copy "apps_paths" key
* from /etc/nextcloud/config.php.apk-new to your config.php.
*
EOF
fi
fi