Date: Tuesday, July 6, 2021 @ 19:40:22 Author: dvzrv Revision: 973681
archrelease: copy trunk to community-testing-any Added: nextcloud/repos/community-testing-any/ nextcloud/repos/community-testing-any/PKGBUILD (from rev 973680, nextcloud/trunk/PKGBUILD) nextcloud/repos/community-testing-any/apache.example.conf (from rev 973680, nextcloud/trunk/apache.example.conf) nextcloud/repos/community-testing-any/nextcloud-cron.service (from rev 973680, nextcloud/trunk/nextcloud-cron.service) nextcloud/repos/community-testing-any/nextcloud-cron.timer (from rev 973680, nextcloud/trunk/nextcloud-cron.timer) nextcloud/repos/community-testing-any/nextcloud.config.php (from rev 973680, nextcloud/trunk/nextcloud.config.php) nextcloud/repos/community-testing-any/nextcloud.hook (from rev 973680, nextcloud/trunk/nextcloud.hook) nextcloud/repos/community-testing-any/nextcloud.install (from rev 973680, nextcloud/trunk/nextcloud.install) nextcloud/repos/community-testing-any/nextcloud.occ.sh (from rev 973680, nextcloud/trunk/nextcloud.occ.sh) nextcloud/repos/community-testing-any/nextcloud.sysusers (from rev 973680, nextcloud/trunk/nextcloud.sysusers) nextcloud/repos/community-testing-any/nextcloud.tmpfiles (from rev 973680, nextcloud/trunk/nextcloud.tmpfiles) nextcloud/repos/community-testing-any/nextcloud.uwsgi (from rev 973680, nextcloud/trunk/nextcloud.uwsgi) ------------------------+ PKGBUILD | 124 +++++++++++++++++++++++++++++++++++++++++++++++ apache.example.conf | 21 +++++++ nextcloud-cron.service | 9 +++ nextcloud-cron.timer | 9 +++ nextcloud.config.php | 17 ++++++ nextcloud.hook | 13 ++++ nextcloud.install | 13 ++++ nextcloud.occ.sh | 45 +++++++++++++++++ nextcloud.sysusers | 1 nextcloud.tmpfiles | 8 +++ nextcloud.uwsgi | 82 +++++++++++++++++++++++++++++++ 11 files changed, 342 insertions(+) Copied: nextcloud/repos/community-testing-any/PKGBUILD (from rev 973680, nextcloud/trunk/PKGBUILD) =================================================================== --- community-testing-any/PKGBUILD (rev 0) +++ community-testing-any/PKGBUILD 2021-07-06 19:40:22 UTC (rev 973681) @@ -0,0 +1,124 @@ +# Maintainer: Sergej Pupykin <pupykin.s+a...@gmail.com> +# Maintainer: David Runge <dv...@archlinux.org> + +pkgname=nextcloud +# NOTE: do not package x.0.0 versions as they are considered beta +pkgver=22.0.0 +pkgrel=1 +pkgdesc="A cloud server to store your files centrally on a hardware controlled by you" +arch=('any') +url="https://nextcloud.com" +license=('AGPL3') +depends=('php>=8.0.0' 'php<8.1.0' 'php-gd') +optdepends=( + 'curl: for webcron jobs from within uwsgi' + 'ffmpeg: for preview generation' + 'libreoffice: for preview generation' + 'mariadb: to use a local MariaDB server' + 'memcached: to use a local memcached server' + 'php-apcu: for caching with APCU' + 'php-apache: to use the Apache web server' + 'mod_itk: to use the Apache web server' + 'php-fpm: to run in fastCGI process manager' + 'php-imagick: for preview generation' + 'php-imap: for external user authentication' + 'php-intl: to increase language translation performance and fix sorting' + 'php-memcached: for caching with memcached' + 'php-pgsql: to use the PostgreSQL database backend' + 'php-redis: for caching with redis' + 'php-sqlite: to use the SQLite database backend' + 'postgresql: to use a local PostgreSQL server' + 'redis: to use a local Redis server' + 'smbclient: for SMB/CIFS integration' + 'sudo: for privilege elevation in occ command when not run as root' + 'uwsgi-plugin-php: run as application container' +) +backup=( + "etc/webapps/${pkgname}/config/config.php" + "etc/uwsgi/${pkgname}.ini" +) +# there are no elf files, no need to strip anything +options=(!strip) +install="${pkgname}.install" +source=( + "https://download.nextcloud.com/server/releases/nextcloud-${pkgver}.tar.bz2"{,.asc} + 'apache.example.conf' + "${pkgname}.config.php" + "${pkgname}.hook" + "${pkgname}.occ.sh" + "${pkgname}.sysusers" + "${pkgname}.tmpfiles" + "${pkgname}.uwsgi" + "${pkgname}-cron.service" + "${pkgname}-cron.timer" +) +sha512sums=('ced81296d1080cb224ac96df501721c1a16a8a83f9784ab281d97202ec6611173d60a6a87279e7f36b735a92dd010ed81b0c7561fc7dadde00df10f9b7711cec' + 'SKIP' + '5f9be223225e6ad2772989c440df8585a852ea0be697274384064ec73df47dab2f5d0847c275732fab26c419a713911d8f77ebc2b639bf6e8ede76272b752cde' + '92592f9a76ee534d0ae6d3aedf2257c147337debe7e2d6dbec1daff66a682e3abc74611e08662058de314bf3ea6ff1c85efd678674b782d71251c38786e446f9' + '7b18b73ee369607b8ee3d00d2a054262a7b8f3033fc4873eb333c9b9333d7338870c035910ae123b564a65d7d245730178137311048f0713d5bc524de3654923' + 'daae0331998fc3b135c18330cd8f8405958abce1a913cdbc16accc3c49f2b185a6d44cf4d768eb1eb11d1dd1d81dcc3fe75ec959bd9f4c9c5eb85c450d5ad408' + '1d06f339c43d57e5f5406c2698b815241fd9e39039a9e55f777face510c9a5ddae5ccd4e051393e8f16f391301a6aa03fff2462837a2d3441d969ea7195e7d84' + '51beae1dc7889cda73fa0b9bd578ba0d01272c3293e91946a4179496ed98ac900109dfe6e9e3b83f94096ecd2f17f77b8d2190960e41f47a599f4e6fd594a78a' + '8bc7e76ba986cadf8d3bf35d6fbd8e7e236a61d1372e023c07e60427bacce925737c996d9fbaaeb51ed1066c1d0c8d83a86d7d640ed991b531744ed06629a670' + 'c585af280c2503a5a969fffd53d192a045a1dedd6d3a32901dfa0e226f9ddb4b5d1b1760553e962b061172c0077fcc57b095d8b7c70cafaa8ca84dbfce2eaa24' + 'eb69785a5b0df0e2a11f53f9c2e2dbf75681d7c698e88cbcc5ceed713a558d528511cc576813cc083cbaa28a2c83d543a39436ad4805670348ef22634305b1c8') +b2sums=('5d41337a7577d33f4be2ce5900b97df5582542bf4b51a4de4eff2f62726bcf014d99456ebc775feb16fd625582760e31ee434a23874451a1072822dcd21d5cd6' + 'SKIP' + '7d40d120c28291f1a7537f3e1b5049fa83c9c0af949371345ea9ccdf3de4a0f3a3a06edbc52d9254dba483e4d11acf562cf679b9e379c5dfc2f61dfbfc2e4cef' + '4ad061efbc20b4d0e9f8cfd01c5e8e612fa5af29bce754b77f90c1835b98ee445ef4de3d8c83da91461053622620af14d880eb9014b51f2383c75f1860d479f4' + '772a9571fe7d88dbcbeb46351a188354e237dfe8e020131f2752b3a36cff0ff177423b4cfd6a1a5f28946f86a8581f3e24ee06ebda7260c5f862ca4071908e43' + '150273823fdadcaecf3e2af036067581cb4cf02507c6da2a533ef3c288a2a715d076f83c6d6d4ff13cd336184f595361318faa2acdc68979edfad7afef0b575b' + '1a61a89531636b65dade03cd7edca8747b3e1e880f9bbd4d5a53cffa452d70fe17e345cfed739ae92e99e336d4c1f2633c84a5c84a4ee6da518762bf1396b1db' + 'e7ce2f3dba5ea4a2daf2ce6e6c0fb3ff1afefbbc6067296b11ca3da4194a8ba049b137c4b2ca5411de2a1fd3b8ae28912bf0fd5f50fd9b147727a7f4e52290dc' + '937ae5b89d968d784c7b68e1ca81e7aec11e295b95244fc4bcfec55b3d5f37ef70d5f593086eeb14101c8940a241565730cb6edcdf88165094c4ad27a89bd980' + '9857f3dd219b624869255e0d6c262b60de813b87ac4fd3fccad0a330392f55709e8c2d4b9dfb5ad19df7cc0fc13cc83cead06c9a1d893ee4e4972c4937df0c2b' + 'e6214351ca16bfe97683e838e727d6b5eaa62194878272204034c62aac4a632c9b33cd31aa0570c2eb936d7e9e7ff60190ac05a3a8cc2e27eda423a7d89b6d39') +validpgpkeys=('28806A878AE423A28372792ED75899B9A724937A') # Nextcloud Security <secur...@nextcloud.com> + +prepare() { + mv -v "${pkgname}" "${pkgname}-${pkgver}" +} + +package() { + cd "${pkgname}-${pkgver}" + # sysusers.d integration + install -vDm 644 ../${pkgname}.sysusers \ + "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf" + # tmpfiles.d integration + install -vDm 644 ../${pkgname}.tmpfiles \ + "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf" + # state dir for data and writable apps + install -vdm 755 "${pkgdir}/var/lib/${pkgname}/" + install -vdm 770 "${pkgdir}/var/lib/${pkgname}/data" + install -vdm 755 "${pkgdir}/var/lib/${pkgname}/apps" + # log dir + install -vdm 755 "${pkgdir}/var/log/${pkgname}/" + # uwsgi integration + install -vDm 644 "../${pkgname}.uwsgi" "${pkgdir}/etc/uwsgi/${pkgname}.ini" + # config dir + install -vDm 640 "../${pkgname}.config.php" "${pkgdir}/etc/webapps/${pkgname}/config/config.php" + find config -type f -exec install -vDm 644 {} "${pkgdir}/etc/webapps/${pkgname}/"{} \; + # remove config dir from source so that it is not installed to default location + rm -rf config + + # webapp + find . -type f -exec install -vDm 644 {} "${pkgdir}/usr/share/webapps/${pkgname}/"{} \; + + # symlink config directory into place + ln -sv "/etc/webapps/${pkgname}/config" "${pkgdir}/usr/share/webapps/${pkgname}/" + # add symlink to default writable apps directory + ln -sv "/var/lib/${pkgname}/apps" "${pkgdir}/usr/share/webapps/${pkgname}/wapps" + # install occ command + install -vDm 755 occ -t "${pkgdir}/usr/share/webapps/${pkgname}" + # occ script + install -vDm 755 "../${pkgname}.occ.sh" "${pkgdir}/usr/bin/occ" + # optional pacman hook + install -vDm 644 "../${pkgname}.hook" -t "${pkgdir}/usr/share/doc/${pkgname}/" + # apache example conf + install -vDm 644 ../apache.example.conf -t "${pkgdir}/usr/share/doc/${pkgname}/" + # systemd timer + install -D -t $pkgdir/usr/lib/systemd/system -m 644 \ + "${srcdir}"/${pkgname}-cron.service \ + "${srcdir}"/${pkgname}-cron.timer +} Copied: nextcloud/repos/community-testing-any/apache.example.conf (from rev 973680, nextcloud/trunk/apache.example.conf) =================================================================== --- community-testing-any/apache.example.conf (rev 0) +++ community-testing-any/apache.example.conf 2021-07-06 19:40:22 UTC (rev 973681) @@ -0,0 +1,21 @@ +<IfModule mod_alias.c> + Alias /nextcloud /usr/share/webapps/nextcloud/ +</IfModule> + +<Directory /usr/share/webapps/nextcloud/> + Options FollowSymlinks + AllowOverride all + Require all granted +</Directory> + +<VirtualHost *:80> + ServerAdmin f...@foofarm.com + DocumentRoot /usr/share/webapps/nextcloud + ServerName nextcloud.foo.com + ErrorLog /var/log/httpd/nextcloud.foo.info-error_log + CustomLog /var/log/httpd/nextcloud.foo.info-access_log common +</VirtualHost> + +<IfModule mpm_itk_module> + AssignUserId nextcloud nextcloud +</IfModule> Copied: nextcloud/repos/community-testing-any/nextcloud-cron.service (from rev 973680, nextcloud/trunk/nextcloud-cron.service) =================================================================== --- community-testing-any/nextcloud-cron.service (rev 0) +++ community-testing-any/nextcloud-cron.service 2021-07-06 19:40:22 UTC (rev 973681) @@ -0,0 +1,9 @@ +[Unit] +Description=Nextcloud; run cron.php + +[Service] +User=nextcloud +ExecStart=/usr/bin/php -f /usr/share/webapps/nextcloud/cron.php + +[Install] +WantedBy=basic.target Copied: nextcloud/repos/community-testing-any/nextcloud-cron.timer (from rev 973680, nextcloud/trunk/nextcloud-cron.timer) =================================================================== --- community-testing-any/nextcloud-cron.timer (rev 0) +++ community-testing-any/nextcloud-cron.timer 2021-07-06 19:40:22 UTC (rev 973681) @@ -0,0 +1,9 @@ +[Unit] +Description=Nextcloud; run cron.php periodically + +[Timer] +OnBootSec=5min +OnUnitActiveSec=5min + +[Install] +WantedBy=timers.target \ No newline at end of file Copied: nextcloud/repos/community-testing-any/nextcloud.config.php (from rev 973680, nextcloud/trunk/nextcloud.config.php) =================================================================== --- community-testing-any/nextcloud.config.php (rev 0) +++ community-testing-any/nextcloud.config.php 2021-07-06 19:40:22 UTC (rev 973681) @@ -0,0 +1,17 @@ +<?php +$CONFIG = array ( +'datadirectory' => '/var/lib/nextcloud/data', +'logfile' => '/var/log/nextcloud/nextcloud.log', +'apps_paths' => [ + [ + 'path'=> '/usr/share/webapps/nextcloud/apps', + 'url' => '/apps', + 'writable' => false, + ], + [ + 'path'=> '/var/lib/nextcloud/apps', + 'url' => '/wapps', + 'writable' => true, + ], +], +); Copied: nextcloud/repos/community-testing-any/nextcloud.hook (from rev 973680, nextcloud/trunk/nextcloud.hook) =================================================================== --- community-testing-any/nextcloud.hook (rev 0) +++ community-testing-any/nextcloud.hook 2021-07-06 19:40:22 UTC (rev 973681) @@ -0,0 +1,13 @@ +# Update Nextcloud when core or -apps are touched + +[Trigger] +Operation = Install +Operation = Upgrade +Type = Package +Target = nextcloud +Target = nextcloud-app-* + +[Action] +Description = Updating Nextcloud installation +When = PostTransaction +Exec = /usr/bin/runuser -u nextcloud -- /usr/bin/php /usr/share/webapps/nextcloud/occ upgrade Copied: nextcloud/repos/community-testing-any/nextcloud.install (from rev 973680, nextcloud/trunk/nextcloud.install) =================================================================== --- community-testing-any/nextcloud.install (rev 0) +++ community-testing-any/nextcloud.install 2021-07-06 19:40:22 UTC (rev 973681) @@ -0,0 +1,13 @@ +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + if [ "$(vercmp "$2" '21.0.0-6')" -lt 0 ]; then + printf "WARNING: Major changes introduced to package!\n" + printf " The application is now run as its own user - nextcloud.\n" + printf " Default directories for runtime, state and log files are provided.\n" + printf " A convenience wrapper around occ is provided in /usr/bin/occ.\n" + # directories below /usr/share/webapps/nextcloud are still group-owned by the + # nextcloud user due to nextcloud < 21.0.0 + find /usr/share/webapps/nextcloud -type d -exec chgrp root {} \; + fi +} Copied: nextcloud/repos/community-testing-any/nextcloud.occ.sh (from rev 973680, nextcloud/trunk/nextcloud.occ.sh) =================================================================== --- community-testing-any/nextcloud.occ.sh (rev 0) +++ community-testing-any/nextcloud.occ.sh 2021-07-06 19:40:22 UTC (rev 973681) @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +readonly default_config="/etc/php/php.ini" +readonly default_php_command="/usr/bin/php" +readonly default_user="nextcloud" +readonly preserved_environment_vars="NEXTCLOUD_CONFIG_DIR" + +config="" +php_command="" +user="" + +check_sudo() { + if ! command -v sudo > /dev/null; then + printf "The sudo command is not available.\n" + exit 1 + fi +} + +# allow overriding the php.ini +if [[ -n "${NEXTCLOUD_PHP_CONFIG}" ]] && [[ -f "${NEXTCLOUD_PHP_CONFIG}" ]]; then + config="${NEXTCLOUD_PHP_CONFIG}" +else + config="${default_config}" +fi + +# allow overriding the php executable +if [[ -n "${NEXTCLOUD_PHP}" ]] && command -v "${NEXTCLOUD_PHP}" > /dev/null; then + php_command="${NEXTCLOUD_PHP}" +else + php_command="${default_php_command}" +fi + +# allow overriding the user to run as +if [[ -n "${NEXTCLOUD_USER}" ]] && id "${NEXTCLOUD_USER}" > /dev/null 2>&1; then + user="${NEXTCLOUD_USER}" +else + user="${default_user}" +fi + +if [[ "${UID}" -eq 0 ]]; then + runuser --whitelist-environment="${preserved_environment_vars}" -u "$user" -- "$php_command" -c "${config}" /usr/share/webapps/nextcloud/occ "$@" +else + check_sudo + sudo --preserve-env="${preserved_environment_vars}" -u "$user" "$php_command" -c "${config}" /usr/share/webapps/nextcloud/occ "$@" +fi Copied: nextcloud/repos/community-testing-any/nextcloud.sysusers (from rev 973680, nextcloud/trunk/nextcloud.sysusers) =================================================================== --- community-testing-any/nextcloud.sysusers (rev 0) +++ community-testing-any/nextcloud.sysusers 2021-07-06 19:40:22 UTC (rev 973681) @@ -0,0 +1 @@ +u nextcloud - "Nextcloud user" - - Copied: nextcloud/repos/community-testing-any/nextcloud.tmpfiles (from rev 973680, nextcloud/trunk/nextcloud.tmpfiles) =================================================================== --- community-testing-any/nextcloud.tmpfiles (rev 0) +++ community-testing-any/nextcloud.tmpfiles 2021-07-06 19:40:22 UTC (rev 973681) @@ -0,0 +1,8 @@ +Z /etc/webapps/nextcloud/config - nextcloud nextcloud +z /etc/webapps/nextcloud/ 0755 root root +Z %C/nextcloud - nextcloud nextcloud +d %t/nextcloud 0755 nextcloud nextcloud +z %L/nextcloud 0755 nextcloud nextcloud +d %S/nextcloud 0755 nextcloud nextcloud +d %S/nextcloud/apps 0755 nextcloud nextcloud +d %S/nextcloud/data 0770 nextcloud nextcloud Copied: nextcloud/repos/community-testing-any/nextcloud.uwsgi (from rev 973680, nextcloud/trunk/nextcloud.uwsgi) =================================================================== --- community-testing-any/nextcloud.uwsgi (rev 0) +++ community-testing-any/nextcloud.uwsgi 2021-07-06 19:40:22 UTC (rev 973681) @@ -0,0 +1,82 @@ +[uwsgi] +procname-master = %n +plugins = php +master = true +socket = /run/%n/%n.sock +# uncomment for a stats socket, that can be used with uwsgitop +# stats = /run/%n/%n-stats.sock +uid = nextcloud +gid = nextcloud +processes = 10 +cheaper = 4 +cheaper-step = 1 +idle = 600 +die-on-idle = true + +; reload whenever this config file changes +touch-reload = %p + +cloud_data_dir = /var/lib/nextcloud/data +cloud_writable_apps_dir = /var/lib/nextcloud/apps +chdir = %(cloud_data_dir) + +php-allowed-ext = .php +php-docroot = /usr/share/webapps/%n +php-index = index.php +php-set = date.timezone=Europe/Berlin +php-set = open_basedir=%(cloud_data_dir):%(cloud_writable_apps_dir):/var/lib/%n:/tmp/:/usr/share/webapps/%n:/etc/webapps/%n:/dev/urandom:/usr/lib/php/modules:/run/redis/redis.sock:/var/log/%n/%n.log:/proc/meminfo +php-set = session.save_path=/tmp +php-set = session.gc_maxlifetime 21600 +php-set = session.gc_divisor 500 +php-set = session.gc_probability 1 +php-set = post_max_size=1000M +php-set = upload_max_filesize=1000M +php-set = always_populate_raw_post_data=-1 +php-set = max_input_time=120 +php-set = max_execution_time=60 +php-set = memory_limit=768M +php-set = zend_extension=opcache +php-set = opcache.enable=1 +php-set = opcache.enable_cli=1 +php-set = opcache.interned_strings_buffer=8 +php-set = opcache.max_accelerated_files=10000 +php-set = opcache.memory_consumption=128 +php-set = opcache.save_comments=1 +php-set = opcache.revalidate_freq=1 + +# uncomment if php-apcu is installed and used +# php-set = extension=apcu +php-set = extension=bcmath +php-set = extension=bz2 +php-set = extension=curl +php-set = extension=exif +php-set = extension=ftp +php-set = extension=gd +php-set = extension=gmp +# uncomment if php-imagick is installed and used +# php-set = extension=imagick +# uncomment if php-imap is installed and used +# php-set = extension=imap +# uncomment if php-intl is installed and used +# php-set = extension=intl +php-set = extension=iconv +php-set = extension=ldap +# uncomment if php-memcached is installed and used +# php-set = extension=memcached +php-set = extension=pdo_mysql +# uncomment if php-pgsql is installed and used +# php-set = extension=pdo_pgsql +php-set = extension=pdo_sqlite +# uncomment if php-igbinary is installed and used +# php-set = extension=igbinary +# uncomment if php-redis is installed and used (requires php-igbinary) +# php-set = extension=redis +php-set = extension=sockets +# uncomment if php-xsl is installed and used +# php-set = extension=xsl +php-set = extension=zip + +# change the URL to your own address and uncomment to run a webcron job every five minutes +# cron = -5 -1 -1 -1 -1 curl --silent https://change.me.tld/cron.php 1>/dev/null +# uncomment to run a cron job every five minutes +# cron = -5 -1 -1 -1 -1 php -f /usr/share/webapps/%n/cron.php