Added nextcloud-14.0.12-0

This commit is contained in:
ayakael 2019-06-07 14:13:40 -04:00
parent 08e3be21ed
commit c60eebf185
Signed by untrusted user who does not match committer: forge
GPG key ID: D62A472A4AA7D541
17 changed files with 763 additions and 0 deletions

242
apk/nextcloud/APKBUILD Normal file
View file

@ -0,0 +1,242 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
pkgname=nextcloud
pkgver=14.0.12
pkgrel=0
pkgdesc="A safe home for all your data"
url="http://nextcloud.com"
arch="noarch"
license="AGPL-3.0-only"
_php=php7
_php_mods="-ctype -curl -dom -gd -fileinfo -iconv -intl -json -mbstring -openssl
-pcntl -posix -session -simplexml -xml -xmlreader -xmlwriter -zip"
depends="ca-certificates $_php ${_php_mods//-/$_php-}"
makedepends="xmlstarlet"
provides="$pkgname-dav=$pkgver-r$pkgrel
$pkgname-files=$pkgver-r$pkgrel
$pkgname-provisioning_api=$pkgver-r$pkgrel
$pkgname-federatedfilesharing=$pkgver-r$pkgrel
$pkgname-oauth2=$pkgver-r$pkgrel
$pkgname-lookup_server_connector=$pkgver-r$pkgrel
$pkgname-twofactor_backupcodes=$pkgver-r$pkgrel
$pkgname-workflowengine=$pkgver-r$pkgrel
"
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/$pkgname-$pkgver.zip
nextcloud14-dont-chmod.patch
dont-update-htaccess.patch
disable-integrity-check-as-default.patch
app-encryption-info-add-mcrypt.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
"
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 "files", "dav", federatedfilesharing",
# "lookup_server_connector", "provisioning_api", "oauth2",
# "twofactor_backupcodes", "workflowengine"
# here, these should be always installed.
_apps="activity
admin_audit
comments
encryption
federation
files_external
files_pdfviewer
files_sharing
files_texteditor
files_trashbin
files_versions
files_videoplayer
firstrunwizard
gallery
logreader
nextcloud_announcements
notifications
password_policy
serverinfo
sharebymail
survey_client
systemtags
theming
user_external
user_ldap
"
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
# 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() {
default_doc
local target="$subpkgdir"/usr/share/webapps/$pkgname/core/doc
mkdir -p "${target%/*}"
ln -s ../../../doc/$pkgname/core "$target"
}
initscript() {
pkgdesc="Init script that runs Nextcloud with php-fpm"
depends="$pkgname $_php-fpm"
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
install -m 700 -o nextcloud -d "$subpkgdir"/var/tmp/$pkgname
}
pgsql() {
pkgdesc="Nextcloud PostgreSQL support"
depends="$pkgname $_php-pgsql $_php-pdo_pgsql"
mkdir -p "$subpkgdir"
}
sqlite() {
pkgdesc="Nextcloud SQLite support"
depends="$pkgname $_php-sqlite3 $_php-pdo_sqlite"
mkdir -p "$subpkgdir"
}
mysql() {
pkgdesc="Nextcloud MySQL support"
depends="$pkgname $_php-pdo_mysql"
mkdir -p "$subpkgdir"
}
_default_apps() {
pkgdesc="Nextcloud default apps"
depends="$pkgname"
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"
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
files_sharing) app_deps="-federatedfilesharing";;
# XXX: Provides/replaces for backward compatibility with <12.0.0-r2.
files_pdfviewer | files_texteditor | files_videoplayer)
provides="$pkgname-${appname#files_}"
replaces="$provides"
;;
user_ldap)
provides="$pkgname-ldap"
replaces="$provides"
;;
esac
depends="$pkgname $php_deps ${app_deps//-/$pkgname-}"
mkdir -p "$subpkgdir"/$_appsdir
mv "$pkgdir"/$_appsdir/$appname "$subpkgdir"/$_appsdir/
}
sha512sums="
4b9cb1202939ea2f7fa6d31bdcf4c2fdc1dc4606f9cea0fe791be130909d5b7e9c4e102b86ca14d3c928f26bdae9615fca57104e07bda66d2f916e1e67759416 nextcloud-14.0.12.zip
63690b8d8ffe6d4896c5b666aa9d493b501aa3e171c6557e7a003599049f0d36f266a2a257a9535dea055bca1e84208b219c6cd5e4ecd70dd064e1dd1007203a nextcloud14-dont-chmod.patch
aef3c92497d738d6968e0f0b0d415b4953500db24ae14af41ef972665cf7eff00cb6c53dc953845fdbb389c3c965a75b8b14b9247513c05cf4130fe1cfc61731 dont-update-htaccess.patch
d2100a837fef1eeae5f706650ab4c985d9e00f61efa5526ef76c7c1f5811c3906eb6c3c13c151eff9677a0c303faab64411a5a84d6792728bc520d2c618d7d5b disable-integrity-check-as-default.patch
baa9d671643cc27cf0b3259ac25ad97811523aab223c35a30f23776ba4866156f7b04e39511b98e5fc0e7f12774ed44d510b9ce50fc8ccac51a17c70020aa0e6 app-encryption-info-add-mcrypt.patch
de1b433c2fb2582b599cb25e718e454fc4b93543a5a60eee39a03bcccf35d281594611395bdebe02319bedd9a894507eef97010ebdfca381e0f1a09df283d375 iconv-ascii-translit-not-supported.patch
478f5cd7c5d30380ea619d3e8ec623217a06a09b27534266f00297545c7d276b068c5d984673eebc5676e8bac7f45112549498944ce3fa678ac8a69541d7c430 use-external-docs-if-local-not-avail.patch
5f73cd9399fa484ef15bd47e803c93381deffbc7699eceadbb5c27e43b20156806d74e5021a64d28f0165ef87b519e962780651711a37bceb9f0b04455dfdce1 nextcloud-config.php
7388458a9e8b7afd3d3269718306410ffa59c3c23da4bef367a4d7f6d2570136fae9dd421b19c1441e7ffb15a5405e18bb5da67b1a15f9f45e8b98d3fda532ba nextcloud.logrotate
dcc57735d7d4af4a7ebbdd1186d301e51d2ae4675022aea6bf1111222dfa188a3a490ebd6e7c8a7ac30046cb7d93f81cec72a51acbc60d0c10b7fb64630c637a nextcloud.confd
edb699ea6127b231793254115b334006c2d50a0d2ecc846188c3521ddffc3c0e19c5e2944f03cae81e6c645c859258380691081b1c522a22d40939b31db36e8a nextcloud.cron
ee9073a6df4286cba2d1d855cf40863968f20677729b2c7848ab50a70d4915b8e84c957a850a03a707231256c11312e5792e7817dd50afbf73efe767fef2112d fpm-pool.conf
959852e34f010e635470829d66713f3e22c47717ec2c6487759eed2b6aeff9fd1421fe0271d494a02781bd1c98beb2823583623ee2cf03057cd5db794627d6c2 occ"

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
@@ -31,6 +31,7 @@
<dependencies>
<lib>openssl</lib>
+ <lib>mcrypt</lib>
<nextcloud min-version="14" max-version="14" />
</dependencies>

View file

@ -0,0 +1,15 @@
We patch some files and Nextcloud's integrity check doesn't like it...
APK ensures integrity of all installed files, so this Nextcloud's integrity
check doesn't add any value.
--- a/lib/private/IntegrityCheck/Checker.php
+++ b/lib/private/IntegrityCheck/Checker.php
@@ -111,7 +111,7 @@
*/
$isIntegrityCheckDisabled = false;
if ($this->config !== null) {
- $isIntegrityCheckDisabled = $this->config->getSystemValue('integrity.check.disabled', false);
+ $isIntegrityCheckDisabled = $this->config->getSystemValue('integrity.check.disabled', true);
}
if ($isIntegrityCheckDisabled === true) {
return false;

View file

@ -0,0 +1,32 @@
Don't mess with .htaccess files.
Patch ported from https://src.fedoraproject.org/cgit/rpms/nextcloud.git/tree/nextcloud-9.1.0-dont_update_htacess.patch
--- a/core/register_command.php
+++ b/core/register_command.php
@@ -135,7 +135,6 @@
$application->add(new OC\Core\Command\Maintenance\Mimetype\UpdateDB(\OC::$server->getMimeTypeDetector(), \OC::$server->getMimeTypeLoader()));
$application->add(new OC\Core\Command\Maintenance\Mimetype\UpdateJS(\OC::$server->getMimeTypeDetector()));
$application->add(new OC\Core\Command\Maintenance\Mode(\OC::$server->getConfig()));
- $application->add(new OC\Core\Command\Maintenance\UpdateHtaccess());
$application->add(new OC\Core\Command\Maintenance\UpdateTheme(\OC::$server->getMimeTypeDetector(), \OC::$server->getMemCacheFactory()));
$application->add(new OC\Core\Command\Upgrade(\OC::$server->getConfig(), \OC::$server->getLogger(), \OC::$server->query(\OC\Installer::class)));
--- a/lib/private/Updater.php
+++ b/lib/private/Updater.php
@@ -233,14 +233,6 @@
throw new \Exception('Updates between multiple major versions and downgrades are unsupported.');
}
- // Update .htaccess files
- try {
- Setup::updateHtaccess();
- Setup::protectDataDirectory();
- } catch (\Exception $e) {
- throw new \Exception($e->getMessage());
- }
-
// create empty file in data dir, so we can later find
// out that this is indeed an ownCloud data directory
// (in case it didn't exist before)

197
apk/nextcloud/fpm-pool.conf Normal file
View file

@ -0,0 +1,197 @@
[global]
; Error log file
; Default Value: log/php-fpm.log
error_log = /var/log/nextcloud/php-fpm.log
; Log level
; Possible Values: alert, error, warning, notice, debug
; Default Value: notice
log_level = warning
; If this number of child processes exit with SIGSEGV or SIGBUS within the time
; interval set by emergency_restart_interval then FPM will restart. A value
; of '0' means 'Off'.
; Default Value: 0
emergency_restart_threshold = 10
; Interval of time used by emergency_restart_interval to determine when
; a graceful restart will be initiated. This can be useful to work around
; accidental corruptions in an accelerator's shared memory.
; Available Units: s(econds), m(inutes), h(ours), or d(ays)
; Default Unit: seconds
; Default Value: 0
emergency_restart_interval = 1m
; Time limit for child processes to wait for a reaction on signals from master.
; Available units: s(econds), m(inutes), h(ours), or d(ays)
; Default Unit: seconds
; Default Value: 0
process_control_timeout = 10s
[nextcloud]
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on
; a specific port;
; 'port' - to listen on a TCP socket to all addresses on a
; specific port;
; '/path/to/unix/socket' - to listen on a unix socket (the path is *not*
; relative to chroot!)
; Note: This value is mandatory.
listen = /run/nextcloud/fastcgi.sock
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
; mode is set to 0666
listen.mode = 0660
; Choose how the process manager will control the number of child processes.
; Possible Values:
; static ... a fixed number of child processes.
; dynamic ... the number of child processes are set dynamically.
; ondemand ... no children are created at startup; children will be forked
; when new requests will connect.
; Note: This value is mandatory.
pm = ondemand
; The number of child processes to be created when pm is set to 'static' and the
; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
; This value sets the limit on the number of simultaneous requests that will be
; served.
; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
; Note: This value is mandatory.
pm.max_children = 10
; The number of seconds after which an idle process will be killed.
; Note: Used only when pm is set to 'ondemand'
; Default Value: 10s
pm.process_idle_timeout = 120s
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries. For
; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default Value: 0
pm.max_requests = 500
; The URI to view the FPM status page. If this value is not set, no URI will be
; recognized as a status page.
; Note: The value must start with a leading slash (/). The value can be
; anything, but it may not be a good idea to use the .php extension or it
; may conflict with a real PHP file.
; Default Value: not set
pm.status_path =
; The ping URI to call the monitoring page of FPM. If this value is not set, no
; URI will be recognized as a ping page. This could be used to test from outside
; that FPM is alive and responding, or to
; - create a graph of FPM availability (rrd or such);
; - remove a server from a group if it is not responding (load balancing);
; - trigger alerts for the operating team (24/7).
; Note: The value must start with a leading slash (/). The value can be
; anything, but it may not be a good idea to use the .php extension or it
; may conflict with a real PHP file.
; Default Value: not set
ping.path = /ping
; The timeout for serving a single request after which the worker process will
; be killed. This option should be used when the 'max_execution_time' ini option
; does not stop script execution for some reason. A value of '0' means 'off'.
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
;request_terminate_timeout = 0
; The timeout for serving a single request after which a PHP backtrace will be
; dumped to the 'slowlog' file. A value of '0s' means 'off'.
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
;request_slowlog_timeout = 0
; The log file for slow requests
; Default Value: not set
; Note: slowlog is mandatory if request_slowlog_timeout is set
; Note: the path is *not* relative to chroot.
;slowlog = /var/log/nextcloud/php-fpm.slow.log
; Redirect worker stdout and stderr into main error log. If not set, stdout and
; stderr will be redirected to /dev/null according to FastCGI specs.
; Note: on highloaded environement, this can cause some delay in the page
; process time (several ms).
; Default Value: no
;catch_workers_output = yes
; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from
; the current environment.
; Default Value: clean env
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
; Additional php.ini defines, specific to this pool of workers. These settings
; overwrite the values previously defined in the php.ini. The directives are the
; same as the PHP SAPI:
; php_value/php_flag - you can set classic ini defines which can
; be overwritten from PHP call 'ini_set'.
; php_admin_value/php_admin_flag - these directives won't be overwritten by
; PHP call 'ini_set'
; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no.
;
; Defining 'extension' will load the corresponding shared extension from
; extension_dir. Defining 'disable_functions' or 'disable_classes' will not
; overwrite previously defined php.ini values, but will append the new value
; instead.
;
; Note: path INI options can be relative and will be expanded with the prefix
; (pool, global or /usr/lib/php7.x)
; Allow HTTP file uploads.
php_admin_flag[file_uploads] = true
; Maximal size of a file that can be uploaded via web interface.
php_admin_value[memory_limit] = 512M
php_admin_value[post_max_size] = 513M
php_admin_value[upload_max_filesize] = 513M
; Where to store temporary files.
php_admin_value[session.save_path] = /var/tmp/nextcloud
php_admin_value[sys_temp_dir] = /var/tmp/nextcloud
php_admin_value[upload_tmp_dir] = /var/tmp/nextcloud
; Log errors to specified file.
php_admin_flag[log_errors] = on
php_admin_value[error_log] = /var/log/nextcloud/php.error.log
; OPcache error_log file name. Empty string assumes "stderr"
php_admin_value[opcache.error_log] = /var/log/nextcloud/php.error.log
; Output buffering is a mechanism for controlling how much output data
; (excluding headers and cookies) PHP should keep internally before pushing that
; data to the client. If your application's output exceeds this setting, PHP
; will send that data in chunks of roughly the size you specify.
; This must be disabled for ownCloud.
php_admin_flag[output_buffering] = false
; Overload(replace) single byte functions by mbstring functions.
; This must be disabled for ownCloud.
php_admin_flag[mbstring.func_overload] = false
; Never populate the $HTTP_RAW_POST_DATA variable.
; http://php.net/always-populate-raw-post-data
php_admin_value[always_populate_raw_post_data] = -1
; Disable certain functions for security reasons.
; http://php.net/disable-functions
php_admin_value[disable_functions] = exec,passthru,shell_exec,system,proc_open,curl_multi_exec,show_source
; Set recommended settings for OpCache.
; https://docs.nextcloud.com/server/13/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
php_admin_flag[opcache.enable] = true
php_admin_flag[opcache.enable_cli] = true
php_admin_flag[opcache.save_comments] = true
php_admin_value[opcache.interned_strings_buffer] = 8
php_admin_value[opcache.max_accelerated_files] = 10000
php_admin_value[opcache.memory_consumption] = 128
php_admin_value[opcache.revalidate_freq] = 1

View file

@ -0,0 +1,13 @@
iconv on Alpine does not support conversion to ASCII//TRANSLIT
--- a/apps/user_ldap/lib/Access.php
+++ b/apps/user_ldap/lib/Access.php
@@ -1318,7 +1318,7 @@
}
// Transliteration to ASCII
- $transliterated = @iconv('UTF-8', 'ASCII//TRANSLIT', $name);
+ $transliterated = @iconv('UTF-8', 'ASCII', $name);
if($transliterated !== false) {
// depending on system config iconv can work or not
$name = $transliterated;

View file

@ -0,0 +1,37 @@
<?php
$CONFIG = array (
'datadirectory' => '/var/lib/nextcloud/data',
'logfile' => '/var/log/nextcloud/nextcloud.log',
'apps_paths' => array (
// Read-only location for apps shipped with Nextcloud and installed by apk.
0 => array (
'path' => '/usr/share/webapps/nextcloud/apps',
'url' => '/apps',
'writable' => false,
),
// Writable location for apps installed from AppStore.
1 => array (
'path' => '/var/lib/nextcloud/apps',
'url' => '/apps-appstore',
'writable' => true,
),
),
'updatechecker' => false,
'check_for_working_htaccess' => false,
// Uncomment to enable Zend OPcache.
//'memcache.local' => '\OC\Memcache\APCu',
// Uncomment this and add user nextcloud to the redis group to enable Redis
// cache for file locking. This is highly recommended, see
// https://github.com/nextcloud/server/issues/9305.
//'memcache.locking' => '\OC\Memcache\Redis',
//'redis' => array(
// 'host' => '/run/redis/redis.sock',
// 'port' => 0,
// 'dbindex' => 0,
// 'timeout' => 1.5,
//),
'installed' => false,
);

View file

@ -0,0 +1,24 @@
#!/bin/sh
# It's not needed to be writable for www-data group when running with php-fpm.
for dir in /etc/nextcloud \
/etc/nextcloud/config.php \
/var/lib/nextcloud/data \
/var/lib/nextcloud/apps
do
chmod g-w $dir
done
chgrp root /etc/nextcloud/config.php
# This must be writable (only) by nextcloud user.
chmod 750 /var/log/nextcloud
cat <<EOF
*
* Point your web server to /run/nextcloud/fastcgi.sock and start Nextcloud with
* /etc/init.d/nextcloud start. You can modify php-fpm settings in
* /etc/php7/fpm.d/nextcloud.conf.
*
EOF
exit 0

View file

@ -0,0 +1,8 @@
# Config file for /etc/init.d/nextcloud
name="Nextcloud"
user="nextcloud"
group="www-data"
# Uncomment if you use Nextcloud with Redis for caching.
#rc_need="redis"

View file

@ -0,0 +1,6 @@
#!/bin/sh
# Run only when nextcloud service is started.
if rc-service nextcloud -q status >/dev/null 2>&1; then
su nextcloud -s /bin/sh -c 'php7 -f /usr/share/webapps/nextcloud/cron.php'
fi

View file

@ -0,0 +1,6 @@
/var/log/nextcloud/*.log {
daily
compress
copytruncate
su nextcloud www-data
}

View file

@ -0,0 +1,34 @@
#!/bin/sh
ver_new="$1"
ver_old="$2"
if [ $(apk version -t "$ver_old" '12.0.0-r2') = '<' ]; then
cat >&2 <<-EOF
*
* 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:
*
* 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
if [ "${ver_new%-r*}" != "${ver_old%-r*}" ]; then
echo '* Run "occ upgrade" to finish upgrade of your NextCloud instance!' >&2
fi

View file

@ -0,0 +1,6 @@
#!/bin/sh
addgroup -S -g 82 www-data 2>/dev/null
adduser -S -D -H -h /var/lib/nextcloud -s /sbin/nologin -G www-data -g Nextcloud nextcloud 2>/dev/null
exit 0

View file

@ -0,0 +1,10 @@
#!/bin/sh
ver_old="$2"
apps_link='/usr/share/webapps/nextcloud/apps'
# Remove apps symlink before replacing files to avoid losing installed apps.
# This is a workaround for some issue in apk.
if [ $(apk version -t "$ver_old" '12.0.0-r2') = '<' ] && [ -L "$apps_link" ]; then
rm "$apps_link"
fi

View file

@ -0,0 +1,44 @@
--- a/lib/private/Config.php
+++ b/lib/private/Config.php
@@ -240,9 +240,6 @@
touch ($this->configFilePath);
$filePointer = fopen($this->configFilePath, 'r+');
- // Prevent others not to read the config
- chmod($this->configFilePath, 0640);
-
// File does not exist, this can happen when doing a fresh install
if(!is_resource ($filePointer)) {
// TODO fix this via DI once it is very clear that this doesn't cause side effects due to initialization order
--- a/lib/private/Log/File.php
+++ b/lib/private/Log/File.php
@@ -134,9 +134,6 @@
}
$entry = json_encode($entry, JSON_PARTIAL_OUTPUT_ON_ERROR);
$handle = @fopen($this->logFile, 'a');
- if ((fileperms($this->logFile) & 0777) != 0640) {
- @chmod($this->logFile, 0640);
- }
if ($handle) {
fwrite($handle, $entry."\n");
fclose($handle);
--- a/lib/private/TempManager.php
+++ b/lib/private/TempManager.php
@@ -95,7 +95,6 @@
if($postFix !== '') {
$fileNameWithPostfix = $this->buildFileNameWithSuffix($file, $postFix);
touch($fileNameWithPostfix);
- chmod($fileNameWithPostfix, 0600);
$this->current[] = $fileNameWithPostfix;
return $fileNameWithPostfix;
}
--- a/lib/private/legacy/util.php
+++ b/lib/private/legacy/util.php
@@ -1008,7 +1008,6 @@
. ' cannot be listed by other users.');
$perms = substr(decoct(@fileperms($dataDirectory)), -3);
if (substr($perms, -1) !== '0') {
- chmod($dataDirectory, 0770);
clearstatcache();
$perms = substr(decoct(@fileperms($dataDirectory)), -3);
if ($perms[2] !== '0') {

10
apk/nextcloud/occ Normal file
View file

@ -0,0 +1,10 @@
#!/bin/sh
NEXTCLOUD_DIR='/usr/share/webapps/nextcloud'
: ${NEXTCLOUD_USER:="nextcloud"}
if [ "$(id -un)" != "$NEXTCLOUD_USER" ]; then
exec su -s /bin/sh "$NEXTCLOUD_USER" -c '$0 "$@"' -- $NEXTCLOUD_DIR/occ "$@"
else
exec $NEXTCLOUD_DIR/occ "$@"
fi

View file

@ -0,0 +1,65 @@
From: Jakub Jirutka <jakub@jirutka.cz>
Date: Tue, 27 Jun 2017 02:07:00 +0200
Subject: [PATCH] Show link to external docs if local is not installed
--- a/settings/help.php
+++ b/settings/help.php
@@ -34,22 +34,36 @@
OC_Util::addStyle( "settings", "settings" );
\OC::$server->getNavigationManager()->setActiveEntry('help');
+$localDocs = true;
if(isset($_GET['mode']) and $_GET['mode'] === 'admin') {
- $url=\OCP\Util::linkToAbsolute( 'core', 'doc/admin/index.html' );
+ if (file_exists(\OC::$SERVERROOT . '/core/doc/admin/index.html')) {
+ $url=\OCP\Util::linkToAbsolute( 'core', 'doc/admin/index.html' );
+ } else {
+ $url=\OC::$server->query(\OCP\Defaults::class)->buildDocLinkToKey('admin-manual');
+ $localDocs=false;
+ }
$style1='';
$style2=' active';
}else{
$url=\OCP\Util::linkToAbsolute( 'core', 'doc/user/index.html' );
+ if (file_exists( \OC::$SERVERROOT . '/core/doc/user/index.html' )) {
+ $url=\OCP\Util::linkToAbsolute( 'core', 'doc/user/index.html' );
+ } else {
+ $url=\OC::$server->query(\OCP\Defaults::class)->buildDocLinkToKey('user-manual');
+ $localDocs=false;
+ }
$style1=' active';
$style2='';
}
+
$url1=\OC::$server->getURLGenerator()->linkToRoute('settings_help').'?mode=user';
$url2=\OC::$server->getURLGenerator()->linkToRoute('settings_help').'?mode=admin';
$tmpl = new OC_Template( "settings", "help", "user" );
$tmpl->assign( "admin", OC_User::isAdminUser(OC_User::getUser()));
+$tmpl->assign( "localDocs", $localDocs );
$tmpl->assign( "url", $url );
$tmpl->assign( "url1", $url1 );
$tmpl->assign( "url2", $url2 );
--- a/settings/templates/help.php
+++ b/settings/templates/help.php
@@ -42,6 +42,17 @@
</div>
<div id="app-content" class="help-includes">
+<?php if ($_['localDocs']) { ?>
<iframe src="<?php print_unescaped($_['url']); ?>" class="help-iframe">
</iframe>
+<?php } else { ?>
+ <div class="section">
+ <h2>Local documentation is not installed</h2>
+ <p>Please use
+ <a href="<?php print_unescaped($_['url']); ?>" target="_blank" rel="noreferrer">
+ <?php p($l->t('online documentation')); ?> ↗
+ </a>
+ </p>
+ </div>
+<?php } ?>
</div>