From 17b81b4b48c85d96a97c1c732250c75622c82f78 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Fri, 2 Dec 2016 01:37:54 -0500 Subject: [PATCH] Add nextcloud --- src/nextcloud/.SRCINFO | 37 ++++++++++++++++++ src/nextcloud/.gitignore | 8 ++++ src/nextcloud/PKGBUILD | 62 +++++++++++++++++++++++++++++++ src/nextcloud/apache.example.conf | 15 ++++++++ src/nextcloud/nextcloud.install | 10 +++++ src/nextcloud/set-nc-perms.sh | 57 ++++++++++++++++++++++++++++ 6 files changed, 189 insertions(+) create mode 100644 src/nextcloud/.SRCINFO create mode 100644 src/nextcloud/.gitignore create mode 100644 src/nextcloud/PKGBUILD create mode 100644 src/nextcloud/apache.example.conf create mode 100644 src/nextcloud/nextcloud.install create mode 100755 src/nextcloud/set-nc-perms.sh diff --git a/src/nextcloud/.SRCINFO b/src/nextcloud/.SRCINFO new file mode 100644 index 0000000..2e72a9d --- /dev/null +++ b/src/nextcloud/.SRCINFO @@ -0,0 +1,37 @@ +# Generated by mksrcinfo v8 +# Wed Oct 5 10:23:00 UTC 2016 +pkgbase = nextcloud + pkgdesc = A safe home for all your data. Secure, under your control and developed in an open, transparent and trustworthy way + pkgver = 10.0.1 + pkgrel = 1 + url = https://nextcloud.com + install = nextcloud.install + arch = any + license = AGPL + depends = php + depends = php-gd + optdepends = php-apache: to use the Apache web server + optdepends = php-sqlite: to use the SQLite database backend + optdepends = php-pgsql: to use the PostgreSQL database backend + optdepends = php-ldap: LDAP authentication + optdepends = php-intl + optdepends = php-apcu + optdepends = mariadb: to use the MySQL database backend + optdepends = smbclient: to mount SAMBA shares + optdepends = php-mcrypt + optdepends = imagemagick: file preview + optdepends = ffmpeg: file preview + optdepends = libreoffice: file preview + options = !strip + options = emptydirs + source = https://download.nextcloud.com/server/releases/nextcloud-10.0.1.tar.bz2 + source = https://download.nextcloud.com/server/releases/nextcloud-10.0.1.tar.bz2.asc + source = apache.example.conf + source = set-nc-perms.sh + md5sums = dc30ee58858d4f6f2373472264f7d147 + md5sums = SKIP + md5sums = bc2b02b0562b7a58e660e33acd4202bc + md5sums = 0c996a76cf39b2bccde8d74ac062895e + +pkgname = nextcloud + diff --git a/src/nextcloud/.gitignore b/src/nextcloud/.gitignore new file mode 100644 index 0000000..41c065c --- /dev/null +++ b/src/nextcloud/.gitignore @@ -0,0 +1,8 @@ +*.tar.bz2 +*.asc +*.pkg.tar.xz +*.patch +*.pkg.tar + +pkg/ +src/ diff --git a/src/nextcloud/PKGBUILD b/src/nextcloud/PKGBUILD new file mode 100644 index 0000000..131f973 --- /dev/null +++ b/src/nextcloud/PKGBUILD @@ -0,0 +1,62 @@ +# Maintainer: Grey Christoforo + +pkgname=nextcloud +pkgver=10.0.1 +pkgrel=1 +pkgdesc="A safe home for all your data. Secure, under your control and developed in an open, transparent and trustworthy way" +url="https://nextcloud.com" +arch=('any') +license=('AGPL') +depends=('php' 'php-gd') +optdepends=('php-apache: to use the Apache web server' + 'php-sqlite: to use the SQLite database backend' + 'php-pgsql: to use the PostgreSQL database backend' + 'php-ldap: LDAP authentication' + 'php-intl' + 'php-apcu' + 'mariadb: to use the MySQL database backend' + 'smbclient: to mount SAMBA shares' + 'php-mcrypt' + 'imagemagick: file preview' + 'ffmpeg: file preview' + 'libreoffice: file preview') +options=('!strip') +install=${pkgname}.install +validpgpkeys=('28806A878AE423A28372792ED75899B9A724937A') +source=("https://download.nextcloud.com/server/releases/nextcloud-${pkgver}.tar.bz2"{,.asc} + "apache.example.conf" + "set-nc-perms.sh") + +md5sums=('dc30ee58858d4f6f2373472264f7d147' + 'SKIP' + 'bc2b02b0562b7a58e660e33acd4202bc' + '0c996a76cf39b2bccde8d74ac062895e') +_fetchedMD5=$(curl -sS https://download.nextcloud.com/server/releases/nextcloud-${pkgver}.tar.bz2.md5) +IFS=' '; _arrFetchedMD5=($_fetchedMD5); unset IFS; +_fetchedMD5=${_arrFetchedMD5[0]} +md5sums[0]=$_fetchedMD5 + +options=(!strip emptydirs) + +#prepare() { +# cd nextcloud-${pkgver} +#} + +package() { + install -d "${pkgdir}/usr/share/licenses/${pkgname}" + cp "${srcdir}/nextcloud/COPYING-AGPL" "${pkgdir}/usr/share/licenses/${pkgname}" + + mkdir -p "${pkgdir}/usr/share/webapps" + cp -a nextcloud "${pkgdir}/usr/share/webapps/." + + find "${pkgdir}/usr/share/webapps/nextcloud/" -type f -print0 | xargs -0 chmod 0640 + find "${pkgdir}/usr/share/webapps/nextcloud/" -type d -print0 | xargs -0 chmod 0750 + chmod 0664 "${pkgdir}/usr/share/webapps/nextcloud/.user.ini" + chmod 0664 "${pkgdir}/usr/share/webapps/nextcloud/.htaccess" + + install -D -m755 "${srcdir}/set-nc-perms.sh" "${pkgdir}/usr/bin/set-nc-perms" + install -m644 -D "${srcdir}/apache.example.conf" -t "${pkgdir}/etc/webapps/nextcloud" + ln -s /usr/share/webapps/nextcloud/occ "${pkgdir}/usr/bin/occ" +} + +# vim:set ts=2 sw=2 et: diff --git a/src/nextcloud/apache.example.conf b/src/nextcloud/apache.example.conf new file mode 100644 index 0000000..84f452a --- /dev/null +++ b/src/nextcloud/apache.example.conf @@ -0,0 +1,15 @@ +Alias /nextcloud "/usr/share/webapps/nextcloud" + + + Options +FollowSymlinks + AllowOverride All + Require all granted + + + Dav off + + + SetEnv HOME /usr/share/webapps/nextcloud + SetEnv HTTP_HOME /usr/share/webapps/nextcloud + + diff --git a/src/nextcloud/nextcloud.install b/src/nextcloud/nextcloud.install new file mode 100644 index 0000000..5a46de1 --- /dev/null +++ b/src/nextcloud/nextcloud.install @@ -0,0 +1,10 @@ +# arg 1: the new package version +# arg 2: the old package version + +post_install () { + set-nc-perms runtime +} + +post_upgrade() { + set-nc-perms runtime +} diff --git a/src/nextcloud/set-nc-perms.sh b/src/nextcloud/set-nc-perms.sh new file mode 100755 index 0000000..19ddef4 --- /dev/null +++ b/src/nextcloud/set-nc-perms.sh @@ -0,0 +1,57 @@ +#!/usr/bin/env bash +# from https://docs.nextcloud.org/server/9/admin_manual/installation/installation_wizard.html#strong-perms-label +# run with the argument "runtime" to set the proper runtime permissions +# run with the argument "upgrade" to set the proper upgrade permissions + +ncpath='/usr/share/webapps/nextcloud' +htuser='http' +htgroup='http' +rootuser='root' + +runtime() { + printf "Creating possible missing Directories\n" + mkdir -p $ncpath/data + mkdir -p $ncpath/assets + mkdir -p $ncpath/updater + + printf "chmod Files and Directories\n" + find ${ncpath}/ -type f -print0 | xargs -0 chmod 0640 + find ${ncpath}/ -type d -print0 | xargs -0 chmod 0750 + + printf "chown Directories\n" + chown -R ${rootuser}:${htgroup} ${ncpath}/ + chown -R ${htuser}:${htgroup} ${ncpath}/apps/ + chown -R ${htuser}:${htgroup} ${ncpath}/assets/ + chown -R ${htuser}:${htgroup} ${ncpath}/config/ + chown -R ${htuser}:${htgroup} ${ncpath}/data/ + chown -R ${htuser}:${htgroup} ${ncpath}/themes/ + chown -R ${htuser}:${htgroup} ${ncpath}/updater/ + + chmod +x ${ncpath}/occ + + printf "chmod/chown .htaccess\n" + if [ -f ${ncpath}/.htaccess ] + then + chmod 0664 ${ncpath}/.htaccess + chown ${rootuser}:${htgroup} ${ncpath}/.htaccess + fi + if [ -f ${ncpath}/data/.htaccess ] + then + chmod 0664 ${ncpath}/data/.htaccess + chown ${rootuser}:${htgroup} ${ncpath}/data/.htaccess + fi + + printf "chmod/chown .user.ini\n" + if [ -f ${ncpath}/.user.ini ] + then + chmod 0664 ${ncpath}/.user.ini + chown ${rootuser}:${htgroup} ${ncpath}/.htaccess + fi +} + +upgrade() { + printf "Setting upgrade permissions\n" + chown -R ${htuser}:${htgroup} ${ncpath} +} + +$1