diff --git a/0000-disable-update-version-check.patch b/0000-disable-update-version-check.patch index fa63f39..4a77733 100644 --- a/0000-disable-update-version-check.patch +++ b/0000-disable-update-version-check.patch @@ -1,20 +1,21 @@ -diff -Naur a/lib/private/Updater.php b/lib/private/Updater.php ---- a/lib/private/Updater.php 2020-10-24 10:37:44.000000000 +0200 -+++ b/lib/private/Updater.php 2020-11-10 10:51:10.511861549 +0100 -@@ -197,14 +197,11 @@ +diff --git a/lib/private/Updater.php b/lib/private/Updater.php +index 5a14bb17507..38dcb55db7f 100644 +--- a/lib/private/Updater.php ++++ b/lib/private/Updater.php +@@ -174,10 +174,13 @@ + $this->config->setAppValue('core', 'vendor', $currentVendor); } ++ /* ++ Fedora package: ++ Remove updater version check, we know that updates across more than one ++ version are possible ++ */ if ($currentVendor === 'nextcloud') { - return isset($allowedPreviousVersions[$currentVendor][$majorMinor]) -- && (version_compare($oldVersion, $newVersion, '<=') || -- $this->config->getSystemValue('debug', false)); +- && (version_compare($oldVersion, $newVersion, '<=') +- || $this->config->getSystemValueBool('debug', false)); + return true; } // Check if the instance can be migrated -- return isset($allowedPreviousVersions[$currentVendor][$majorMinor]) || -- isset($allowedPreviousVersions[$currentVendor][$oldVersion]); -+ return true; - } - - /** diff --git a/README.md b/README.md index 9db76d6..e294b77 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ Nextcloud requires some additional steps after installation/upgrade that are not ### Other versions -Nextcloud maintains multiple stable branches at the same time. To install those, check out the [modular nextcloud package](https://src.fedoraproject.org/modules/nextcloud). +[modular nextcloud package Fedora and CentOS/RHEL](https://src.fedoraproject.org/modules/nextcloud) is over -### CentOS/RHEL +https://fedoraproject.org/wiki/Changes/RetireModularity -For CentOS/RHEL 8+, nextcloud is available through the [modular repository](https://src.fedoraproject.org/modules/nextcloud). Due to incompatible PHP versions, nextcloud is no longer available for CentOS/RHEL 7 or older. +Once Fedora Linux 38 reaches end of life, we will retire the Fedora instance of Module Build Service. diff --git a/nextcloud-README.fedora b/nextcloud-README.fedora index b64fc8d..748b6cf 100644 --- a/nextcloud-README.fedora +++ b/nextcloud-README.fedora @@ -12,7 +12,7 @@ If not, make sure your webserver is running properly. Webserver --------- -Currently nextcloud in Fedora supports httpd (Apache) and nginx. You must install +Currently nextcloud in Fedora/EPEL supports httpd (Apache) and nginx. You must install at least one webserver subpackage (nextcloud-). These packages include additional configuration files for the webservers. Remote access is disabled by default on httpd. To enable access from any host for Apache **AFTER** you @@ -67,7 +67,7 @@ ownership and SELinux context attributes. Logging ------- As specified by the configuration file, nextcloud sends messages to the system -logger, which means in a standard Fedora configuration it will log to the +logger, which means in a standard Fedora/EPEL configuration it will log to the systemd journal: try "journalctl -b -t Nextcloud". You can also change the loglevel or switch to the built-in log mechanism of nextcloud. @@ -115,4 +115,4 @@ systemctl enable --now nextcloud-cron.timer Migration from owncloud ----------------------- -For detailed instructions on this please read MIGRATION.fedora +For detailed instructions on this please read MIGRATION.distro diff --git a/nextcloud-config.php b/nextcloud-config.php index 96aa36e..3bec0f6 100644 --- a/nextcloud-config.php +++ b/nextcloud-config.php @@ -1,5 +1,5 @@ "syslog", "datadirectory" => "/var/lib/nextcloud/data", "updatechecker" => false, @@ -9,18 +9,15 @@ $CONFIG = array ( "preview_libreoffice_path" => '/usr/bin/libreoffice', - "apps_paths" => array( - 0 => - array ( - 'path'=> '/usr/share/nextcloud/apps', + "apps_paths" => [ + [ 'path'=> '/usr/share/nextcloud/apps', 'url' => '/apps', 'writable' => false, - ), - 1 => - array ( + ], + [ 'path' => '/var/lib/nextcloud/apps', 'url' => '/apps-appstore', 'writable' => true, - ), - ), -); + ], + ], +]; diff --git a/nextcloud-defaults.inc b/nextcloud-defaults.inc index c9ceec5..fef3ec6 100644 --- a/nextcloud-defaults.inc +++ b/nextcloud-defaults.inc @@ -1,76 +1,8 @@ -# These are based on the .htaccess file shipped by ownCloud, with -# appropriate adjustments for distribution packaging. Some directives -# that are irrelevant to the Fedora/EPEL ecosystem are omitted. This -# file contains directives that should be applied within the /nextcloud -# filesystem; directives that should be applied site-wide when -# ownCloud is installed are placed directly in nextcloud.conf. +# The contents of the default Nextcloud .htaccess file are appended to this +# file during build. Some directives may be irrelevant to the Fedora/EPEL +# ecosystem but are NOT omitted. # # DO NOT EDIT THIS FILE DIRECTLY. To override any element of the -# packaged ownCloud configuration, create a new /etc/httpd/conf.d/ -# file which will be read later than 'nextcloud.conf'. +# packaged Nextcloud configuration, create a new /etc/httpd/conf.d/ +# file which will be read later than this one. -AllowOverride None - -ErrorDocument 403 /nextcloud/core/templates/403.php -ErrorDocument 404 /nextcloud/core/templates/404.php - - - - - SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1 - RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION - - - - SetHandler "proxy:unix:/run/php-fpm/nextcloud.sock|fcgi://localhost" - - - - - php_value upload_max_filesize 10G - php_value post_max_size 10G - php_value memory_limit 512M - php_value mbstring.func_overload 0 - php_value always_populate_raw_post_data -1 - php_value default_charset 'UTF-8' - php_value output_buffering off - - SetEnv htaccessWorking true - - - - - php_value upload_max_filesize 10G - php_value post_max_size 10G - php_value memory_limit 512M - php_value mbstring.func_overload 0 - php_value always_populate_raw_post_data -1 - php_value default_charset 'UTF-8' - php_value output_buffering off - - SetEnv htaccessWorking true - - - -# The rewrites for legacy caldav and carddav URLs are omitted here -# because they do not work with Fedora's ownCloud directory layout. -# See https://github.com/nextcloud/core/issues/243#issuecomment-75426453 - - RewriteEngine on - RewriteBase /nextcloud/ - RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}] - RewriteRule ^remote/(.*) remote.php [QSA,L] - - -AddDefaultCharset utf-8 -Options -Indexes - - - ModPagespeed Off - - - - - Header set Cache-Control "max-age=7200, public" - - diff --git a/nextcloud-fedora-autoloader.php b/nextcloud-fedora-autoloader.php deleted file mode 100644 index a125728..0000000 --- a/nextcloud-fedora-autoloader.php +++ /dev/null @@ -1,70 +0,0 @@ -register(); -} - -// For PEAR components -$fedoraClassLoader->setUseIncludePath(true); - -// Dependencies from 3rdparty composer.json -// "guzzlehttp/guzzle" -require_once $vendor . '/GuzzleHttp/autoload.php'; -// "sabre/dav" -require_once $vendor . '/Sabre/DAV/autoload.php'; -// "doctrine/dbal" -require_once $vendor . '/Doctrine/DBAL/autoload.php'; -// mcnetic/zipstreamer" -require_once $vendor . '/ZipStreamer/autoload.php'; -// "phpeclib/phpseclib" -require_once $vendor . '/phpseclib/autoload.php'; -// "rackspace/php-opencloud" -require_once $vendor . '/OpenCloud/autoload.php'; -// "jeremeamia/superclosure" -require_once $vendor . '/SuperClosure/autoload.php'; -// "bantu/ini-get-wrapper" -require_once $vendor . '/bantu/IniGetWrapper/IniGetWrapper.php'; -// "natxet/CssMin" -require_once $vendor . '/natxet/CssMin/autoload.php'; -// "punic/punic" -require_once $vendor . '/Punic/autoload.php'; -// "patchwork/utf8" -require_once $vendor . '/Patchwork/autoload.php'; -// "symfony/console" -require_once $vendor . '/Symfony/Component/Console/autoload.php'; -// "symfony/event-dispatcher" -require_once $vendor . '/Symfony/Component/EventDispatcher/autoload.php'; -// "symfony/routing" -require_once $vendor . '/Symfony/Component/Routing/autoload.php'; -// "symfony/process" -require_once $vendor . '/Symfony/Component/Process/autoload.php'; -// "pimple/pimple" -require_once $vendor . '/Pimple/autoload.php'; -// "ircmaxell/password-compat" -if (file_exists($vendor . '/password_compat/password.php')) { - require_once $vendor . '/password_compat/password.php'; -} -// "nikic/php-parser" -require_once $vendor . '/PhpParser/autoload.php'; -// "icewind/Streams" -require_once $vendor . '/Icewind/Streams/autoload.php'; -// "swiftmailer/swiftmailer -require_once $vendor . '/Swift/swift_required.php'; -// "league/flysystem" -require_once $vendor . '/League/Flysystem/autoload.php'; -// "interfasys/lognormalizer" -require_once $vendor . '/InterfaSys/LogNormalizer/autoload.php'; -// "deepdiver1975/TarSTreamer" -require_once $vendor . '/ownCloud/TarStreamer/autoload.php'; -// "patchwork/jsqueeze" -require_once $vendor . '/Patchwork/JSqueeze.php'; -// "symfony/polyfill-php{55,56,70}" -require_once $vendor . '/Symfony/Polyfill/autoload.php'; -// "lukasreschke/id3parser": "^0.0.1" -require_once $vendor . '/ID3Parser/autoload.php'; diff --git a/nextcloud-httpd.conf b/nextcloud-httpd.conf index f9ac85d..12c121e 100644 --- a/nextcloud-httpd.conf +++ b/nextcloud-httpd.conf @@ -16,9 +16,12 @@ Alias /nextcloud /usr/share/nextcloud # Allows compliant CalDAV / CardDAV clients to be configured using only # the domain name. For more details see # http://tools.ietf.org/html/rfc6764 -Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav -Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav -Redirect 301 /.well-known/webdav /nextcloud/remote.php/dav +# Nextcloud 29 checks specifically for trailing slash in dav 301 redirects +# https://github.com/nextcloud/server/issues/45033#issuecomment-2079306503 + +Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav/ +Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav/ +Redirect 301 /.well-known/webdav /nextcloud/remote.php/dav/ Redirect 301 /.well-known/webfinger /nextcloud/index.php/.well-known/webfinger Redirect 301 /.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo diff --git a/nextcloud-integritycheck-exclusion.patch b/nextcloud-integritycheck-exclusion.patch new file mode 100644 index 0000000..eeb7ee5 --- /dev/null +++ b/nextcloud-integritycheck-exclusion.patch @@ -0,0 +1,34 @@ +From 9f38c6300712a23ccdc75e140143a1c461e15705 Mon Sep 17 00:00:00 2001 +From: Andrew Bauer +Date: Mon, 24 Jun 2024 10:11:23 -0500 +Subject: [PATCH] silence integrity check for excluded files + +--- + lib/private/IntegrityCheck/Checker.php | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/lib/private/IntegrityCheck/Checker.php b/lib/private/IntegrityCheck/Checker.php +index a6de3cf6030d7..3974483601b08 100644 +--- a/lib/private/IntegrityCheck/Checker.php ++++ b/lib/private/IntegrityCheck/Checker.php +@@ -337,7 +337,20 @@ private function verify(string $signaturePath, string $basePath, string $certifi + $differencesB = array_diff_assoc($currentInstanceHashes, $expectedHashes); + $differences = array_unique(array_merge($differencesA, $differencesB)); + $differenceArray = []; ++ ++ # Nasty hack to silence the integrity checker for files patched during the build process or files we simply don't care about ++ $excludedFilenames = [ ++//sedplaceholder ]; ++ + foreach ($differences as $filename => $hash) { ++ ++ # Skip if the file in question matches our exclusion list ++ foreach ($excludedFilenames as $excludedFilename) { ++ if (strpos($filename, $excludedFilename)!==false) { ++ break 2; ++ } ++ } ++ + // Check if file should not exist in the new signature table + if (!array_key_exists($filename, $expectedHashes)) { + $differenceArray['EXTRA_FILE'][$filename]['expected'] = ''; diff --git a/nextcloud-php.ini b/nextcloud-php.ini new file mode 100644 index 0000000..008bcab --- /dev/null +++ b/nextcloud-php.ini @@ -0,0 +1 @@ +apc.enable_cli=1 diff --git a/nextcloud-systemd-timer.service b/nextcloud-systemd-timer.service index ccff38f..a7efaae 100644 --- a/nextcloud-systemd-timer.service +++ b/nextcloud-systemd-timer.service @@ -2,7 +2,10 @@ Description=Cron for nextcloud background jobs [Service] +# https://docs.nextcloud.com/server/25/admin_manual/configuration_server/background_jobs_configuration.html#systemd Type=oneshot -ExecStart=/usr/bin/php -f /usr/share/nextcloud/cron.php User=apache +KillMode=process +ExecStart=/usr/bin/php -f /usr/share/nextcloud/cron.php + diff --git a/nextcloud.spec b/nextcloud.spec index 7ca9d9f..2b4260b 100644 --- a/nextcloud.spec +++ b/nextcloud.spec @@ -1,8 +1,15 @@ +%if 0%{?fedora} +%global distro fedora +%else +%global distro epel +%endif + Name: nextcloud -Version: 25.0.3 +Version: 34.0.3 Release: %autorelease Summary: Private file sync and share server -License: AGPLv3+ and MIT and BSD and ASL 2.0 and WTFPL and CC-BY-SA and GPLv3+ and Adobe +# Automatically converted from old format: AGPLv3+ and MIT and BSD and ASL 2.0 and WTFPL and CC-BY-SA and GPLv3+ and Adobe - review is highly recommended. +License: AGPL-3.0-or-later AND LicenseRef-Callaway-MIT AND LicenseRef-Callaway-BSD AND Apache-2.0 AND WTFPL AND LicenseRef-Callaway-CC-BY-SA AND GPL-3.0-or-later AND Adobe-2006 URL: http://nextcloud.com Source0: https://download.nextcloud.com/server/releases/%{name}-%{version}.tar.bz2 @@ -23,6 +30,7 @@ Source105: %{name}-defaults.inc Source200: %{name}-default-nginx.conf Source201: %{name}-conf-nginx.conf Source202: %{name}-php-fpm.conf +Source203: %{name}-php.ini # packaging notes and doc Source300: %{name}-README.fedora Source301: %{name}-mysql.txt @@ -32,22 +40,27 @@ Source303: %{name}-MIGRATION.fedora # Remove updater version check, we know that updates across more than one # version are possible Patch0: 0000-disable-update-version-check.patch -# Change occ shebang to /usr/bin/php -Patch1: 0001-mangle-shebang.patch +# Add the ability to exclude files we specify from the nextcloud integrity checker +Patch1: nextcloud-integritycheck-exclusion.patch BuildArch: noarch -# For the systemd macros -%if 0%{?fedora} > 29 + +# Set this to the minimum supported php version Nextcloud will run on +# Exists to prevent accidental building on distros with outdated php's +BuildRequires: php(language) >= 8.2 BuildRequires: systemd-rpm-macros -%else -BuildRequires: systemd -%endif +BuildRequires: sed + +# Auto-generate Provides from bundled php-composer libraries +BuildRequires: composer-generators + # expand pear macros on install BuildRequires: php-pear # Require one webserver and database backend Requires: %{name}-webserver = %{version}-%{release} Requires: %{name}-database = %{version}-%{release} +Requires: php-bcmath # Require php CLI for occ command Requires: php-cli # Core PHP libs/extensions required by OC core @@ -55,192 +68,38 @@ Requires: php-curl Requires: php-dom Requires: php-exif Requires: php-fileinfo +Requires: php-filter Requires: php-gd +Requires: php-gmp Requires: php-iconv +Requires: php-intl Requires: php-json Requires: php-ldap Requires: php-mbstring Requires: php-openssl Requires: php-pcre Requires: php-pdo -Requires: php-session -Requires: php-simplexml -Requires: php-xmlwriter -Requires: php-spl -Requires: php-zip -Requires: php-filter -Requires: php-ldap -Requires: php-smbclient -Requires: php-gmp -Requires: php-process +Requires: php-pecl-apcu Requires: php-pecl-imagick Requires: php-pecl-memcached -Requires: php-pecl-apcu -Requires: php-pecl-redis5 +Requires: (php-pecl-redis6 or php-pecl-redis5) +Requires: php-process +Requires: php-session +Requires: php-simplexml +Requires: php-smbclient +Requires: php-spl +Recommends: php-sodium +Requires: php-opcache +Requires: php-xmlwriter +Requires: php-zip # For systemd support during install/uninstall %{?systemd_requires} -# the CA cert bundle is linked to from the config dir -Requires: %{_sysconfdir}/pki/tls/certs/ca-bundle.crt +# Fedora dropped legacy CA cert bundle symlinks +# See https://fedoraproject.org/wiki/Changes/dropingOfCertPemFile +Requires: %{_sysconfdir}/pki/ca-trust/extracted/pem/tls-ca-bundle.pem -# Bundled composer libraries -# many of these can be unbundled -Provides: bundled(php-composer(amphp/amp)) = 2.6.2 -Provides: bundled(php-composer(amphp/byte-stream)) = 1.8.1 -Provides: bundled(php-composer(amphp/parallel)) = 1.4.1 -Provides: bundled(php-composer(amphp/parser)) = 1.0.0 -Provides: bundled(php-composer(amphp/process)) = 1.1.4 -Provides: bundled(php-composer(amphp/serialization)) = 1.0.0 -Provides: bundled(php-composer(amphp/sync)) = 1.4.2 -Provides: bundled(php-composer(darsyn/ip)) = 4.1.0 -Provides: bundled(php-composer(league/flysystem)) = 2.5.0 -Provides: bundled(php-composer(league/mime-type-detection)) = 1.11.0 -Provides: bundled(php-composer(psr/log)) = 1.1.4 -Provides: bundled(php-composer(rubix/ml)) = 20 -Provides: bundled(php-composer(rubix/tensor)) = 2.2.3 -Provides: bundled(php-composer(symfony/polyfill-mbstring)) = 1.26.0 -Provides: bundled(php-composer(symfony/polyfill-php73)) = 1.26.0 -Provides: bundled(php-composer(symfony/polyfill-php80)) = 1.26.0 -Provides: bundled(php-composer(composer/semver)) = 3.2.5 -Provides: bundled(php-composer(composer/xdebug-handler)) = 2.0.2 -Provides: bundled(php-composer(doctrine/annotations)) = 1.13.2 -Provides: bundled(php-composer(doctrine/lexer)) = 1.2.1 -Provides: bundled(php-composer(friendsofphp/php-cs-fixer)) = 2.19.2 -Provides: bundled(php-composer(nextcloud/coding-standard)) = 0.5.0 -Provides: bundled(php-composer(php-cs-fixer/diff)) = 1.3.1 -Provides: bundled(php-composer(psr/cache)) = 1.0.1 -Provides: bundled(php-composer(psr/container)) = 1.1.1 -Provides: bundled(php-composer(psr/event-dispatcher)) = 1.0.0 -Provides: bundled(php-composer(psr/log)) = 1.1.4 -Provides: bundled(php-composer(symfony/console)) = 5.3.7 -Provides: bundled(php-composer(symfony/deprecation-contracts)) = 2.4.0 -Provides: bundled(php-composer(symfony/event-dispatcher)) = 5.3.7 -Provides: bundled(php-composer(symfony/event-dispatcher-contracts)) = 2.4.0 -Provides: bundled(php-composer(symfony/filesystem)) = 5.3.4 -Provides: bundled(php-composer(symfony/finder)) = 5.3.7 -Provides: bundled(php-composer(symfony/options-resolver)) = 5.3.7 -Provides: bundled(php-composer(symfony/polyfill-ctype)) = 1.23.0 -Provides: bundled(php-composer(symfony/polyfill-intl-grapheme)) = 1.23.1 -Provides: bundled(php-composer(symfony/polyfill-intl-normalizer)) = 1.23.0 -Provides: bundled(php-composer(symfony/polyfill-mbstring)) = 1.23.1 -Provides: bundled(php-composer(symfony/polyfill-php70)) = 1.20.0 -Provides: bundled(php-composer(symfony/polyfill-php72)) = 1.23.0 -Provides: bundled(php-composer(symfony/polyfill-php73)) = 1.23.0 -Provides: bundled(php-composer(symfony/polyfill-php80)) = 1.23.1 -Provides: bundled(php-composer(symfony/process)) = 5.3.7 -Provides: bundled(php-composer(symfony/service-contracts)) = 2.4.0 -Provides: bundled(php-composer(symfony/stopwatch)) = 5.3.4 -Provides: bundled(php-composer(symfony/string)) = 5.3.7 -Provides: bundled(php-composer(christian-riesen/base32)) = 1.6.0 -Provides: bundled(php-composer(rullzer/easytotp)) = 0.1.4 -Provides: bundled(php-composer(icewind/smb)) = 3.5.2 -Provides: bundled(php-composer(icewind/streams)) = 0.7.4 -Provides: bundled(php-composer(aws/aws-crt-php)) = 1.0.2 -Provides: bundled(php-composer(aws/aws-sdk-php)) = 3.242.1 -Provides: bundled(php-composer(bantu/ini-get-wrapper)) = 1.0.1 -Provides: bundled(php-composer(beberlei/assert)) = 3.3.1 -Provides: bundled(php-composer(brick/math)) = 0.9.2 -Provides: bundled(php-composer(christophwurst/id3parser)) = 0.1.4 -Provides: bundled(php-composer(composer/package-versions-deprecated)) = 1.11.99.4 -Provides: bundled(php-composer(cweagans/composer-patches)) = 1.7.1 -Provides: bundled(php-composer(deepdiver/zipstreamer)) = 2.0.0 -Provides: bundled(php-composer(deepdiver1975/tarstreamer)) = 2.0.0 -Provides: bundled(php-composer(doctrine/cache)) = 2.1.1 -Provides: bundled(php-composer(doctrine/dbal)) = 3.1.4 -Provides: bundled(php-composer(doctrine/deprecations)) = 0.5.3 -Provides: bundled(php-composer(doctrine/event-manager)) = 1.1.1 -Provides: bundled(php-composer(doctrine/lexer)) = 1.2.3 -Provides: bundled(php-composer(egulias/email-validator)) = 3.1.1 -Provides: bundled(php-composer(fgrosse/phpasn1)) = 2.3.0 -Provides: bundled(php-composer(fusonic/linq)) = 1.1.0 -Provides: bundled(php-composer(fusonic/opengraph)) = 2.2.0 -Provides: bundled(php-composer(giggsey/libphonenumber-for-php)) = 8.12.38 -Provides: bundled(php-composer(giggsey/locale)) = 2.1 -Provides: bundled(php-composer(guzzlehttp/guzzle)) = 7.5.0 -Provides: bundled(php-composer(guzzlehttp/promises)) = 1.5.2 -Provides: bundled(php-composer(guzzlehttp/psr7)) = 2.4.3 -Provides: bundled(php-composer(guzzlehttp/uri-template)) = 0.2.0 -Provides: bundled(php-composer(icewind/searchdav)) = 3.0.1 -Provides: bundled(php-composer(icewind/streams)) = 0.7.5 -Provides: bundled(php-composer(justinrainbow/json-schema)) = 5.2.10 -Provides: bundled(php-composer(laravel/serializable-closure)) = 1.2.0 -Provides: bundled(php-composer(league/uri)) = 6.4.0 -Provides: bundled(php-composer(league/uri-interfaces)) = 2.2.0 -Provides: bundled(php-composer(mexitek/phpcolors)) = 1.0.4 -Provides: bundled(php-composer(microsoft/azure-storage-blob)) = 1.5.4 -Provides: bundled(php-composer(microsoft/azure-storage-common)) = 1.5.2 -Provides: bundled(php-composer(mlocati/ip-lib)) = 1.18.0 -Provides: bundled(php-composer(mtdowling/jmespath.php)) = 2.6.1 -Provides: bundled(php-composer(nextcloud/lognormalizer)) = 1.0.0 -Provides: bundled(php-composer(nikic/php-parser)) = 4.10.5 -Provides: bundled(php-composer(opis/closure)) = 3.6.3 -Provides: bundled(php-composer(pear/archive_tar)) = 1.4.14 -Provides: bundled(php-composer(pear/console_getopt)) = 1.4.3 -Provides: bundled(php-composer(pear/pear-core-minimal)) = 1.10.10 -Provides: bundled(php-composer(pear/pear_exception)) = 1.0.2 -Provides: bundled(php-composer(php-ds/php-ds)) = 1.3.0 -Provides: bundled(php-composer(php-http/guzzle7-adapter)) = 1.0.0 -Provides: bundled(php-composer(php-http/httplug)) = 2.2.0 -Provides: bundled(php-composer(php-http/promise)) = 1.1.0 -Provides: bundled(php-composer(php-opencloud/openstack)) = 3.1.0 -Provides: bundled(php-composer(phpseclib/phpseclib)) = 2.0.38 -Provides: bundled(php-composer(pimple/pimple)) = 3.5.0 -Provides: bundled(php-composer(psr/container)) = 1.1.1 -Provides: bundled(php-composer(psr/event-dispatcher)) = 1.0.0 -Provides: bundled(php-composer(psr/http-client)) = 1.0.1 -Provides: bundled(php-composer(psr/http-factory)) = 1.0.1 -Provides: bundled(php-composer(psr/http-message)) = 1.0.1 -Provides: bundled(php-composer(psr/log)) = 1.1.4 -Provides: bundled(php-composer(punic/punic)) = 1.6.5 -Provides: bundled(php-composer(ralouphie/getallheaders)) = 3.0.3 -Provides: bundled(php-composer(ramsey/collection)) = 1.1.3 -Provides: bundled(php-composer(ramsey/uuid)) = 4.1.1 -Provides: bundled(php-composer(sabre/dav)) = 4.4.0 -Provides: bundled(php-composer(sabre/event)) = 5.1.4 -Provides: bundled(php-composer(sabre/http)) = 5.1.5 -Provides: bundled(php-composer(sabre/uri)) = 2.2.2 -Provides: bundled(php-composer(sabre/vobject)) = 4.4.2 -Provides: bundled(php-composer(sabre/xml)) = 2.2.5 -Provides: bundled(php-composer(scssphp/scssphp)) = 1.8.1 -Provides: bundled(php-composer(spomky-labs/base64url)) = 2.0.4 -Provides: bundled(php-composer(spomky-labs/cbor-php)) = 2.0.1 -Provides: bundled(php-composer(stecman/symfony-console-completion)) = 0.11.0 -Provides: bundled(php-composer(swiftmailer/swiftmailer)) = 6.3.0 -Provides: bundled(php-composer(symfony/console)) = 4.4.30 -Provides: bundled(php-composer(symfony/css-selector)) = 5.4.11 -Provides: bundled(php-composer(symfony/deprecation-contracts)) = 2.5.2 -Provides: bundled(php-composer(symfony/dom-crawler)) = 5.4.11 -Provides: bundled(php-composer(symfony/event-dispatcher)) = 4.4.30 -Provides: bundled(php-composer(symfony/event-dispatcher-contracts)) = 1.1.9 -Provides: bundled(php-composer(symfony/http-foundation)) = 5.4.10 -Provides: bundled(php-composer(symfony/polyfill-ctype)) = 1.23.0 -Provides: bundled(php-composer(symfony/polyfill-iconv)) = 1.27.0 -Provides: bundled(php-composer(symfony/polyfill-intl-grapheme)) = 1.23.1 -Provides: bundled(php-composer(symfony/polyfill-intl-idn)) = 1.27.0 -Provides: bundled(php-composer(symfony/polyfill-intl-normalizer)) = 1.27.0 -Provides: bundled(php-composer(symfony/polyfill-mbstring)) = 1.27.0 -Provides: bundled(php-composer(symfony/polyfill-php72)) = 1.27.0 -Provides: bundled(php-composer(symfony/polyfill-php73)) = 1.23.0 -Provides: bundled(php-composer(symfony/polyfill-php80)) = 1.26.0 -Provides: bundled(php-composer(symfony/process)) = 4.4.30 -Provides: bundled(php-composer(symfony/routing)) = 4.4.30 -Provides: bundled(php-composer(symfony/service-contracts)) = 2.4.0 -Provides: bundled(php-composer(symfony/translation)) = 4.4.41 -Provides: bundled(php-composer(symfony/translation-contracts)) = 2.4.0 -Provides: bundled(php-composer(thecodingmachine/safe)) = 1.3.3 -Provides: bundled(php-composer(web-auth/cose-lib)) = 3.3.9 -Provides: bundled(php-composer(web-auth/metadata-service)) = 3.3.9 -Provides: bundled(php-composer(web-auth/webauthn-lib)) = 3.3.9 -Provides: bundled(php-composer(doctrine/lexer)) = 1.2.1 -Provides: bundled(php-composer(symfony/polyfill-intl-idn)) = 1.22.1 -Provides: bundled(php-composer(symfony/polyfill-intl-normalizer)) = 1.22.1 -Provides: bundled(php-composer(symfony/polyfill-php72)) = 1.22.1 - -# OpenIconic icons bundled via sabre-dav -Provides: bundled(openiconic-fonts) = 1.0.0 -# jscolor bundled via themeing app -Provides: bundled(jscolor) = 2.0.4 # jquery-ui-multiselect bundled via user_ldap app -Provides: bundled(jquery-ui-multiselect) = 0.3.1 +Provides: bundled(jquery-ui-multiselect) = 1.13 # zxcvbn bundled via core Provides: bundled(zxcvbn) = 4.4.2 @@ -291,6 +150,7 @@ If you want the database to be on the same system as NextCloud itself, you must also install and enable a MySQL / MariaDB server package. See README.mysql for more details. + %package postgresql Summary: PostgreSQL database support for NextCloud Provides: %{name}-database = %{version}-%{release} @@ -319,293 +179,77 @@ Requires: %{name} = %{version}-%{release} This package ensures the necessary dependencies are in place for NextCloud to work with an SQLite 3 database stored on the local system. - %prep %autosetup -n %{name} -p1 +# Fix php shebang in occ +sed -ri 's\^#!/usr/bin/env php$\#!%{_bindir}/php\' occ + # patch backup files and .git stuff -find . -name \*.orig -type f -exec rm {} \; -print -find . -name .gitignore -type f -exec rm {} \; -print +find . -name \*.orig -type f -delete -print +find . -name .gitignore -type f -delete -print find . -name .github -type d -prune -exec rm -r {} \; -print +# fix CLI upgrade advice on splash screen +if ! file=$(grep -l 'occ upgrade' dist/*.map); then + echo "Could not find the occ upgrade instructions in dist/*.map" + exit 1 +fi +echo "Updating occ upgrade instructions in $file" +sed -i -e 's#\./\(occ upgrade\)#sudo -u apache php /usr/share/nextcloud/\1#' $file + # prepare package doc -cp %{SOURCE300} README.fedora +cp %{SOURCE300} README.%{distro} cp %{SOURCE301} README.mysql cp %{SOURCE302} README.postgresql -cp %{SOURCE303} MIGRATION.fedora +cp %{SOURCE303} MIGRATION.%{distro} + +# point the reader to the correct README filename +sed -i 's/distro/%{distro}/g' README.%{distro} # Locate license files and put them sensibly in place # get rid of all composer licenses find -wholename "*/composer/LICENSE" -exec mv {} composer-LICENSE \; -# find all remaining using "find -name '*LICENCE*' -name '*LICENSE*' -o -name '*COPYING*' | sort" -mv 3rdparty/aws/aws-sdk-php/LICENSE aws-LICENSE -mv 3rdparty/aws/aws-sdk-php/THIRD-PARTY-LICENSES aws-sdk-php-THIRD-PARTY-LICENSES -mv 3rdparty/aws/aws-crt-php/LICENSE aws-crt-php-LICENSE -mv 3rdparty/bantu/ini-get-wrapper/LICENSE bantu-LICENSE -mv 3rdparty/beberlei/assert/LICENSE beberlei-LICENSE -mv 3rdparty/brick/math/LICENSE brick-LICENSE -mv 3rdparty/christophwurst/id3parser/LICENSE christophwurst-LICENSE -mv 3rdparty/composer/package-versions-deprecated/LICENSE composer-LICENSE -mv 3rdparty/deepdiver1975/tarstreamer/LICENSE deepdiver1975-LICENSE -mv 3rdparty/deepdiver/zipstreamer/COPYING deepdiver-COPYING -mv 3rdparty/doctrine/cache/LICENSE doctrine-LICENSE -mv 3rdparty/doctrine/dbal/LICENSE doctrine-LICENSE -mv 3rdparty/doctrine/event-manager/LICENSE doctrine-LICENSE -mv 3rdparty/egulias/email-validator/LICENSE egulias-LICENSE -mv 3rdparty/fgrosse/phpasn1/LICENSE fgrosse-LICENSE -mv 3rdparty/giggsey/libphonenumber-for-php/LICENSE giggsey-LICENSE -mv 3rdparty/giggsey/locale/LICENSE giggsey-LICENSE -mv 3rdparty/guzzlehttp/guzzle/LICENSE guzzlehttp-LICENSE -mv 3rdparty/guzzlehttp/promises/LICENSE guzzlehttp-LICENSE -mv 3rdparty/guzzlehttp/psr7/LICENSE guzzlehttp-LICENSE -mv 3rdparty/guzzlehttp/uri-template/LICENSE.md guzzlehttp-LICENSE -mv 3rdparty/icewind/searchdav/LICENSE icewind-LICENSE -mv 3rdparty/justinrainbow/json-schema/LICENSE justinrainbow-LICENSE -mv 3rdparty/league/uri-interfaces/LICENSE league-LICENSE -mv 3rdparty/league/uri/LICENSE league-LICENSE -mv '3rdparty/LICENSE INFO' 3rdparty-LICENSE_INFO -mv 3rdparty/microsoft/azure-storage-blob/LICENSE microsoft-LICENSE -mv 3rdparty/microsoft/azure-storage-common/LICENSE microsoft-LICENSE -mv 3rdparty/mtdowling/jmespath.php/LICENSE mtdowling-LICENSE -mv 3rdparty/nextcloud/lognormalizer/COPYING lognormalizer-LICENSE -mv 3rdparty/nikic/php-parser/LICENSE nikic-LICENSE -mv 3rdparty/opis/closure/LICENSE opis-LICENSE -mv 3rdparty/pear/console_getopt/LICENSE pear-LICENSE -mv 3rdparty/pear/pear_exception/LICENSE pear-LICENSE -mv 3rdparty/php-ds/php-ds/LICENSE php-ds-LICENSE -mv 3rdparty/php-http/guzzle7-adapter/LICENSE php-http-LICENSE -mv 3rdparty/php-http/httplug/LICENSE php-http-LICENSE -mv 3rdparty/php-http/promise/LICENSE php-http-LICENSE -mv 3rdparty/php-opencloud/openstack/LICENSE php-opencloud-LICENSE -mv 3rdparty/phpseclib/phpseclib/LICENSE phpseclib-LICENSE -mv 3rdparty/psr/event-dispatcher/LICENSE psr-LICENSE -mv 3rdparty/psr/container/LICENSE psr-LICENSE -mv 3rdparty/psr/http-client/LICENSE psr-LICENSE -mv 3rdparty/psr/http-factory/LICENSE psr-LICENSE -mv 3rdparty/psr/http-message/LICENSE psr-LICENSE -mv 3rdparty/psr/log/LICENSE psr-LICENSE -mv 3rdparty/punic/punic/LICENSE.txt punic-LICENSE.txt -mv 3rdparty/punic/punic/UNICODE-LICENSE.txt punic-UNICODE-LICENSE -mv 3rdparty/ralouphie/getallheaders/LICENSE ralouphie-LICENSE -mv 3rdparty/ramsey/collection/LICENSE ramsey-LICENSE -mv 3rdparty/ramsey/uuid/LICENSE ramsey-LICENSE -mv 3rdparty/sabre/dav/lib/DAV/Browser/assets/openiconic/ICON-LICENSE sabre-ICON-LICENSE -mv 3rdparty/sabre/dav/LICENSE sabre-LICENSE -mv 3rdparty/sabre/event/LICENSE sabre-LICENSE -mv 3rdparty/sabre/http/LICENSE sabre-LICENSE -mv 3rdparty/sabre/uri/LICENSE sabre-LICENSE -mv 3rdparty/sabre/vobject/LICENSE sabre-LICENSE -mv 3rdparty/sabre/xml/LICENSE sabre-LICENSE -mv 3rdparty/scssphp/scssphp/LICENSE.md scssphp-LICENSE.md -mv 3rdparty/spomky-labs/base64url/LICENSE spomky-labs-LICENSE -mv 3rdparty/spomky-labs/cbor-php/LICENSE spomky-labs-LICENSE -mv 3rdparty/stecman/symfony-console-completion/LICENCE stecman-LICENSE -mv 3rdparty/symfony/console/LICENSE symfony-LICENSE -mv 3rdparty/symfony/event-dispatcher-contracts/LICENSE symfony-LICENSE -mv 3rdparty/symfony/event-dispatcher/LICENSE symfony-LICENSE -mv 3rdparty/symfony/polyfill-ctype/LICENSE symfony-LICENSE -mv 3rdparty/symfony/polyfill-iconv/LICENSE symfony-LICENSE -mv 3rdparty/symfony/polyfill-intl-grapheme/LICENSE symfony-LICENSE -mv 3rdparty/symfony/polyfill-intl-idn/LICENSE symfony-LICENSE -mv 3rdparty/symfony/polyfill-intl-normalizer/LICENSE symfony-LICENSE -mv 3rdparty/symfony/polyfill-mbstring/LICENSE symfony-LICENSE -mv 3rdparty/symfony/polyfill-php72/LICENSE symfony-LICENSE -mv 3rdparty/symfony/polyfill-php73/LICENSE symfony-LICENSE -mv 3rdparty/symfony/polyfill-php80/LICENSE symfony-LICENSE -mv 3rdparty/symfony/process/LICENSE symfony-LICENSE -mv 3rdparty/symfony/routing/LICENSE symfony-LICENSE -mv 3rdparty/symfony/service-contracts/LICENSE symfony-LICENSE -mv 3rdparty/symfony/translation-contracts/LICENSE symfony-LICENSE -mv 3rdparty/symfony/translation/LICENSE symfony-LICENSE -mv 3rdparty/thecodingmachine/safe/LICENSE thecodingmachine-LICENSE -mv 3rdparty/web-auth/cose-lib/LICENSE web-auth-LICENSE -mv 3rdparty/web-auth/metadata-service/LICENSE web-auth-LICENSE -mv 3rdparty/web-auth/webauthn-lib/LICENSE web-auth-LICENSE -mv 3rdparty/cweagans/composer-patches/LICENSE.md composer-patches-LICENSE.md -mv 3rdparty/symfony/deprecation-contracts/LICENSE deprecation-contracts-LICENSE -mv apps/activity/js/activity-sidebar.js.LICENSE.txt activity-sidebar.js-LICENSE -mv apps/activity/js/activity-dashboard.js.LICENSE.txt activity-dashboard.js-LICENSE.txt -mv apps/circles/LICENSE circles-LICENSE -mv apps/cloud_federation_api/LICENSE cloud_federation_api-LICENSE -mv apps/files_external/3rdparty/icewind/smb/LICENSE.txt icewind-LICENSE -mv apps/files_external/3rdparty/icewind/streams/LICENCE icewind-LICENSE -mv apps/files_pdfviewer/js/files_pdfviewer-workersrc.js.LICENSE.txt files_pdfviewer-workersrc.js-LICENSE -mv apps/files_pdfviewer/js/files_pdfviewer-main.js.LICENSE.txt files_pdfviewer-main.js-LICENSE -mv apps/files_pdfviewer/js/files_pdfviewer-public.js.LICENSE.txt files_pdfviewer-public.js-LICENSE -mv apps/files_pdfviewer/js/pdfjs/LICENSE js-pdfjs-LICENSE -mv apps/files_pdfviewer/js/pdfjs/web/cmaps/LICENSE js-pdfjs-cmaps-LICENSE -mv apps/files_rightclick/COPYING files_rightclick-COPYING -mv apps/files_rightclick/LICENSE files_rightclick-LICENSE -mv apps/logreader/js/logreader-main.js.LICENSE.txt logreader-main.js-LICENSE -mv apps/nextcloud_announcements/COPYING nextcloud_announcements-COPYING -mv apps/notifications/COPYING notifications-LICENSE -mv apps/notifications/js/notifications-main.js.LICENSE.txt notifications-main.js-LICENSE -mv apps/password_policy/LICENSE password_policy-LICENSE -mv apps/password_policy/js/password_policy-settings.js.LICENSE.txt password_policy-settings.js-LICENSE -mv apps/photos/COPYING photos-COPYING -mv apps/photos/js/photos-main.js.LICENSE.txt photos-main.js-LICENSE -mv apps/privacy/COPYING privacy-COPYING -mv apps/privacy/js/privacy-main.js.LICENSE.txt privacy-main.js-LICENSE -mv apps/recommendations/LICENSE recommendations-LICENSE -mv apps/serverinfo/COPYING serverinfo-LICENSE -mv apps/survey_client/COPYING survey_client-LICENSE -mv apps/text/COPYING text-COPYING -mv apps/text/js/vendors.js.LICENSE.txt vendors.js-LICENSE.txt -mv apps/text/js/editor.js.LICENSE.txt editor.js.LICENSE.txt -mv apps/text/js/text-files.js.LICENSE.txt text-files.js-LICENSE.txt -mv apps/text/js/text-public.js.LICENSE.txt text-public.js-LICENSE.txt -mv apps/text/js/text-text.js.LICENSE.txt text-text.js-LICENSE.txt -mv apps/text/js/text-viewer.js.LICENSE.txt text-viewer.js-LICENSE.txt -mv apps/theming/js/3rdparty/jscolor/LICENSE.txt jscolor-LICENSE -mv apps/user_ldap/js/vendor/ui-multiselect/MIT-LICENSE js-jqueryui-multiselect-LICENSE -mv apps/viewer/COPYING viewer-COPYING -mv apps/viewer/js/viewer-main.js.LICENSE.txt viewer-main.js-LICENSE -mv COPYING nextcloud-LICENSE -mv core/fonts/LICENSE_OFL.txt fonts-LICENSE -mv core/vendor/zxcvbn/LICENSE.txt zxcvbn-LICENSE -mv apps/files_pdfviewer/COPYING files_pdfviewer-COPYING -mv apps/files_pdfviewer/js/pdfjs/web/standard_fonts/LICENSE_FOXIT standard_fonts-LICENSE_FOXIT -mv apps/files_pdfviewer/js/pdfjs/web/standard_fonts/LICENSE_LIBERATION standard_fonts-LICENSE_LIBERATION -mv apps/firstrunwizard/js/firstrunwizard-main.js.LICENSE.txt firstrunwizard-main.js-LICENSE.txt -mv apps/photos/js/photos-vendors-node_modules_nextcloud_vue_dist_Components_ActionButton_js-node_modules_nextcloud_vue-208129.js.LICENSE.txt photos-vendors-node_modules_nextcloud_vue_dist_Components_ActionButton_js-node_modules_nextcloud_vue-208129.js-LICENSE.txt -mv apps/notifications/js/notifications-settings.js.LICENSE.txt notifications-settings.js-LICENSE.txt -mv dist/settings-vue-settings-personal-security.js.LICENSE.txt settings-vue-settings-personal-security.js.LICENSE.txt -mv dist/core-login.js.LICENSE.txt core-login.js-LICENSE.txt -mv dist/files-sidebar.js.LICENSE.txt files-sidebar.js-LICENSE.txt -mv dist/core-recommendedapps.js.LICENSE.txt core-recommendedapps.js-LICENSE.txt -mv dist/files_sharing-main.js.LICENSE.txt files_sharing-main.js-LICENSE.txt -mv dist/dav-settings-personal-availability.js.LICENSE.txt dav-settings-personal-availability.js-LICENSE.txt -mv dist/weather_status-weather-status.js.LICENSE.txt weather_status-weather-status.js-LICENSE.txt -mv dist/core-profile.js.LICENSE.txt core-profile.js-LICENSE.txt -mv dist/settings-vue-settings-admin-basic-settings.js.LICENSE.txt settings-vue-settings-admin-basic-settings.js-LICENSE.txt -mv dist/settings-vue-settings-admin-security.js.LICENSE.txt settings-vue-settings-admin-security.js-LICENSE.txt -mv dist/core-files_client.js.LICENSE.txt core-files_client.js-LICENSE.txt -mv dist/systemtags-systemtags.js.LICENSE.txt systemtags-systemtags.js-LICENSE.txt -mv dist/comments-comments.js.LICENSE.txt comments-comments.js-LICENSE.txt -mv dist/files_versions-files_versions.js.LICENSE.txt files_versions-files_versions.js.LICENSE.txt -mv dist/twofactor_backupcodes-settings.js.LICENSE.txt twofactor_backupcodes-settings.js-LICENSE.txt -mv dist/updatenotification-updatenotification.js.LICENSE.txt updatenotification-updatenotification.js-LICENSE.txt -mv dist/settings-vue-settings-admin-delegation.js.LICENSE.txt settings-vue-settings-admin-delegation.js-LICENSE.txt -mv dist/core-systemtags.js.LICENSE.txt core-systemtags.js-LICENSE.txt -mv dist/comments-comments-app.js.LICENSE.txt comments-comments-app.js-LICENSE.txt -mv dist/core-files_fileinfo.js.LICENSE.txt core-files_fileinfo.js-LICENSE.txt -mv dist/files-main.js.LICENSE.txt files-main.js-LICENSE.txt -mv dist/core-main.js.LICENSE.txt core-main.js-LICENSE.txt -mv dist/files_sharing-additionalScripts.js.LICENSE.txt files_sharing-additionalScripts.js-LICENSE.txt -mv dist/settings-vue-settings-apps-users-management.js.LICENSE.txt settings-vue-settings-apps-users-management.js-LICENSE.txt -mv dist/settings-vue-settings-nextcloud-pdf.js.LICENSE.txt settings-vue-settings-nextcloud-pdf.js-LICENSE.txt -mv dist/settings-vue-settings-personal-info.js.LICENSE.txt settings-vue-settings-personal-info.js-LICENSE.txt -mv dist/settings-vue-settings-personal-webauthn.js.LICENSE.txt settings-vue-settings-personal-webauthn.js-LICENSE.txt -mv dist/user_status-dashboard.js.LICENSE.txt user_status-dashboard.js-LICENSE.txt -mv dist/user_status-menu.js.LICENSE.txt user_status-menu.js-LICENSE.txt -mv dist/workflowengine-workflowengine.js.LICENSE.txt workflowengine-workflowengine.js-LICENSE.txt -mv dist/comments-comments-tab.js.LICENSE.txt comments-comments-tab.js-LICENSE.txt -mv dist/core-install.js.LICENSE.txt core-install.js-LICENSE.txt -mv dist/core-unified-search.js.LICENSE.txt core-unified-search.js-LICENSE.txt -mv dist/dashboard-main.js.LICENSE.txt dashboard-main.js-LICENSE.txt -mv dist/files-personal-settings.js.LICENSE.txt files-personal-settings.js-LICENSE.txt -mv dist/files_sharing-files_sharing_tab.js.LICENSE.txt files_sharing-files_sharing_tab.js-LICENSE.txt -mv dist/files_sharing-personal-settings.js.LICENSE.txt files_sharing-personal-settings.js-LICENSE.txt -mv dist/files_trashbin-files_trashbin.js.LICENSE.txt files_trashbin-files_trashbin.js-LICENSE.txt -mv dist/oauth2-oauth2.js.LICENSE.txt oauth2-oauth2.js-LICENSE.txt -mv dist/settings-users-8351.js.LICENSE.txt settings-users-8351.js-LICENSE.txt -mv dist/core-common.js.LICENSE.txt core-common.js-LICENSE.txt -mv dist/settings-vue-settings-personal-password.js.LICENSE.txt settings-vue-settings-personal-password.js.LICENSE.txt -#mv dist/federatedfilesharing-vue-settings-admin.js.LICENSE.txt federatedfilesharing-vue-settings-admin.js.LICENSE.txt -#mv dist/sharebymail-vue-settings-admin-sharebymail.js.LICENSE.txt sharebymail-vue-settings-admin-sharebymail.js.LICENSE.txt -#mv dist/theming-theming-settings.js.LICENSE.txt theming-theming-settings.js.LICENSE.txt -mv apps/suspicious_login/js/settings.js.LICENSE.txt settings.js.LICENSE.txt -mv apps/suspicious_login/vendor/psr/log/LICENSE LICENSE -mv apps/suspicious_login/vendor/symfony/polyfill-mbstring/LICENSE LICENSE -mv apps/suspicious_login/vendor/symfony/polyfill-php80/LICENSE LICENSE -mv apps/suspicious_login/vendor/symfony/polyfill-php73/LICENSE LICENSE -mv apps/suspicious_login/vendor/league/flysystem/LICENSE LICENSE -mv apps/suspicious_login/vendor/league/mime-type-detection/LICENSE LICENSE -mv apps/suspicious_login/vendor/darsyn/ip/LICENSE.md LICENSE.md -mv apps/suspicious_login/vendor/amphp/process/LICENSE LICENSE -mv apps/suspicious_login/vendor/amphp/sync/LICENSE LICENSE -mv apps/suspicious_login/vendor/amphp/amp/LICENSE LICENSE -mv apps/suspicious_login/vendor/amphp/parser/LICENSE LICENSE -mv apps/suspicious_login/vendor/amphp/parallel/LICENSE LICENSE -mv apps/suspicious_login/vendor/amphp/byte-stream/LICENSE LICENSE -mv apps/suspicious_login/vendor/amphp/serialization/LICENSE LICENSE -mv apps/suspicious_login/vendor/rubix/ml/LICENSE LICENSE -mv apps/suspicious_login/vendor/rubix/tensor/lib/JAMA/LICENCE.md LICENCE.md -mv apps/suspicious_login/vendor/rubix/tensor/LICENSE LICENSE -mv apps/suspicious_login/COPYING COPYING -mv apps/related_resources/js/vendors-node_modules_nextcloud_vue_dist_Components_NcRelatedResourcesPanel_js.related_resources.js.LICENSE.txt vendors-node_modules_nextcloud_vue_dist_Components_NcRelatedResourcesPanel_js.related_resources.js.LICENSE.txt -mv apps/related_resources/js/related_resources.js.LICENSE.txt related_resources.js.LICENSE.txt -mv apps/related_resources/LICENSE LICENSE -mv apps/photos/js/photos-vendors-node_modules_nextcloud_upload_dist_index_esm_js-node_modules_nextcloud_vue_dist_Compo-9e098d.js.LICENSE.txt photos-vendors-node_modules_nextcloud_upload_dist_index_esm_js-node_modules_nextcloud_vue_dist_Compo-9e098d.js.LICENSE.txt -mv apps/photos/js/photos-src_services_DavRequest_js-src_components_File_vue.js.LICENSE.txt photos-src_services_DavRequest_js-src_components_File_vue.js.LICENSE.txt -mv apps/photos/js/photos-vendors-node_modules_nextcloud_upload_dist_index_esm_js-node_modules_vue-virtual-grid_dist_vu-bebe85.js.LICENSE.txt photos-vendors-node_modules_nextcloud_upload_dist_index_esm_js-node_modules_vue-virtual-grid_dist_vu-bebe85.js.LICENSE.txt -mv apps/photos/js/photos-src_services_DavRequest_js-src_utils_CancelableRequest_js-src_components_File_vue.js.LICENSE.txt photos-src_services_DavRequest_js-src_utils_CancelableRequest_js-src_components_File_vue.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_GridConfig_js-src_utils_CancelableRequest_js-src_components_EmptyContent_vue-src_c-c08051.js.LICENSE.txt photos-src_mixins_GridConfig_js-src_utils_CancelableRequest_js-src_components_EmptyContent_vue-src_c-c08051.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_AbortControllerMixin_js-src_components_Collection_CollectionCover_vue-src_componen-960c86.js.LICENSE.txt photos-src_mixins_AbortControllerMixin_js-src_components_Collection_CollectionCover_vue-src_componen-960c86.js.LICENSE.txt -mv apps/photos/js/photos-src_views_FaceContent_vue.js.LICENSE.txt photos-src_views_FaceContent_vue.js.LICENSE.txt -mv apps/photos/js/photos-vendors-node_modules_nextcloud_vue_dist_Components_ActionButton_js-node_modules_nextcloud_vue-535d92.js.LICENSE.txt photos-vendors-node_modules_nextcloud_vue_dist_Components_ActionButton_js-node_modules_nextcloud_vue-535d92.js.LICENSE.txt -mv apps/photos/js/photos-vendors-node_modules_nextcloud_upload_dist_index_esm_js.js.LICENSE.txt photos-vendors-node_modules_nextcloud_upload_dist_index_esm_js.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesByMonthMixin_js-node_modules_vue-material-desig-ab9ff7.js.LICENSE.txt photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesByMonthMixin_js-node_modules_vue-material-desig-ab9ff7.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_FetchFilesMixin_js-node_modules_vue-material-design-icons_ImagePlus_vue-src_compon-c78281.js.LICENSE.txt photos-src_mixins_FetchFilesMixin_js-node_modules_vue-material-design-icons_ImagePlus_vue-src_compon-c78281.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_AbortControllerMixin_js-src_services_DavRequest_js-src_components_File_vue.js.LICENSE.txt photos-src_mixins_AbortControllerMixin_js-src_services_DavRequest_js-src_components_File_vue.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesByMonthMixin_js-src_components_Actions_ActionDo-a6eb03.js.LICENSE.txt photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesByMonthMixin_js-src_components_Actions_ActionDo-a6eb03.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesByMonthMixin_js-node_modules_vue-material-desig-f0a37f.js.LICENSE.txt photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesByMonthMixin_js-node_modules_vue-material-desig-f0a37f.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_AbortControllerMixin_js-src_components_VirtualScrolling_vue-src_views_Albums_vue.js.LICENSE.txt photos-src_mixins_AbortControllerMixin_js-src_components_VirtualScrolling_vue-src_views_Albums_vue.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_FetchAlbumsMixin_js-src_components_Albums_AlbumForm_vue.js.LICENSE.txt photos-src_mixins_FetchAlbumsMixin_js-src_components_Albums_AlbumForm_vue.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_FetchAlbumsMixin_js-node_modules_vue-material-design-icons_Plus_vue-src_components-4c933a.js.LICENSE.txt photos-src_mixins_FetchAlbumsMixin_js-node_modules_vue-material-design-icons_Plus_vue-src_components-4c933a.js.LICENSE.txt -mv apps/photos/js/photos-public.js.LICENSE.txt photos-public.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesSelectionMixin_js-node_modules_vue-material-des-bd2ac8.js.LICENSE.txt photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesSelectionMixin_js-node_modules_vue-material-des-bd2ac8.js.LICENSE.txt -mv apps/photos/js/photos-node_modules_vue-material-design-icons_PackageVariant_vue-node_modules_vue-material-design-ic-4e283b.js.LICENSE.txt photos-node_modules_vue-material-design-icons_PackageVariant_vue-node_modules_vue-material-design-ic-4e283b.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_GridConfig_js-src_components_EmptyContent_vue-src_components_FolderTagPreview_vue--cac48e.js.LICENSE.txt photos-src_mixins_GridConfig_js-src_components_EmptyContent_vue-src_components_FolderTagPreview_vue--cac48e.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_FetchAlbumsMixin_js-node_modules_vue-material-design-icons_Plus_vue-src_components-b06a7d.js.LICENSE.txt photos-src_mixins_FetchAlbumsMixin_js-node_modules_vue-material-design-icons_Plus_vue-src_components-b06a7d.js.LICENSE.txt -mv apps/photos/js/photos-src_views_Timeline_vue.js.LICENSE.txt photos-src_views_Timeline_vue.js.LICENSE.txt -mv apps/photos/js/photos-src_views_Tags_vue.js.LICENSE.txt photos-src_views_Tags_vue.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesByMonthMixin_js-node_modules_vue-material-desig-cf825a.js.LICENSE.txt photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesByMonthMixin_js-node_modules_vue-material-desig-cf825a.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_AbortControllerMixin_js-src_components_CollectionCover_vue-src_components_Collecti-e80ab0.js.LICENSE.txt photos-src_mixins_AbortControllerMixin_js-src_components_CollectionCover_vue-src_components_Collecti-e80ab0.js.LICENSE.txt -mv apps/photos/js/photos-src_views_SharedAlbums_vue.js.LICENSE.txt photos-src_views_SharedAlbums_vue.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_FetchAlbumsMixin_js-node_modules_vue-material-design-icons_Plus_vue-src_components-f20774.js.LICENSE.txt photos-src_mixins_FetchAlbumsMixin_js-node_modules_vue-material-design-icons_Plus_vue-src_components-f20774.js.LICENSE.txt -mv apps/photos/js/photos-src_views_SharedAlbumContent_vue.js.LICENSE.txt photos-src_views_SharedAlbumContent_vue.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_AbortControllerMixin_js-src_mixins_FilesSelectionMixin_js-src_components_File_vue--80ca54.js.LICENSE.txt photos-src_mixins_AbortControllerMixin_js-src_mixins_FilesSelectionMixin_js-src_components_File_vue--80ca54.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_FetchSharedAlbumsMixin_js-src_components_HeaderNavigation_vue.js.LICENSE.txt photos-src_mixins_FetchSharedAlbumsMixin_js-src_components_HeaderNavigation_vue.js.LICENSE.txt -mv apps/photos/js/photos-node_modules_vue-material-design-icons_PackageVariant_vue-node_modules_vue-material-design-ic-36962a.js.LICENSE.txt photos-node_modules_vue-material-design-icons_PackageVariant_vue-node_modules_vue-material-design-ic-36962a.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_AbortControllerMixin_js-src_views_Albums_vue.js.LICENSE.txt photos-src_mixins_AbortControllerMixin_js-src_views_Albums_vue.js.LICENSE.txt -mv apps/photos/js/photos-vendors-node_modules_nextcloud_vue_dist_ncvuecomponents_js.js.LICENSE.txt photos-vendors-node_modules_nextcloud_vue_dist_ncvuecomponents_js.js.LICENSE.txt -mv apps/photos/js/photos-src_views_AlbumContent_vue.js.LICENSE.txt photos-src_views_AlbumContent_vue.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_AbortControllerMixin_js-node_modules_vue-material-design-icons_Send_vue-src_views_-9eb30b.js.LICENSE.txt photos-src_mixins_AbortControllerMixin_js-node_modules_vue-material-design-icons_Send_vue-src_views_-9eb30b.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesSelectionMixin_js-node_modules_vue-material-des-d0b874.js.LICENSE.txt photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesSelectionMixin_js-node_modules_vue-material-des-d0b874.js.LICENSE.txt -mv apps/photos/js/photos-src_views_Folders_vue.js.LICENSE.txt photos-src_views_Folders_vue.js.LICENSE.txt -mv apps/photos/js/photos-vendors-node_modules_vue-virtual-grid_dist_vue-virtual-grid_es_js.js.LICENSE.txt photos-vendors-node_modules_vue-virtual-grid_dist_vue-virtual-grid_es_js.js.LICENSE.txt -mv apps/photos/js/photos-node_modules_vue-material-design-icons_AlertCircle_vue-node_modules_vue-material-design-icons-5becbc.js.LICENSE.txt photos-node_modules_vue-material-design-icons_AlertCircle_vue-node_modules_vue-material-design-icons-5becbc.js.LICENSE.txt -mv apps/photos/js/photos-src_views_Faces_vue.js.LICENSE.txt photos-src_views_Faces_vue.js.LICENSE.txt -mv apps/photos/js/photos-src_services_Albums_js-src_components_HeaderNavigation_vue.js.LICENSE.txt photos-src_services_Albums_js-src_components_HeaderNavigation_vue.js.LICENSE.txt -mv apps/recommendations/js/files_recommendation-main.js.LICENSE.txt files_recommendation-main.js.LICENSE.txt -mv apps/recommendations/js/files_recommendation-dashboard.js.LICENSE.txt files_recommendation-dashboard.js.LICENSE.txt -mv apps/bruteforcesettings/js/bruteforcesettings-main.js.LICENSE.txt bruteforcesettings-main.js.LICENSE.txt -mv apps/bruteforcesettings/LICENSE LICENSE -mv apps/twofactor_totp/js/twofactor_totp-main-settings.js.LICENSE.txt twofactor_totp-main-settings.js.LICENSE.txt -mv apps/twofactor_totp/js/twofactor_totp-main-login-setup.js.LICENSE.txt twofactor_totp-main-login-setup.js.LICENSE.txt -mv apps/twofactor_totp/vendor/christian-riesen/base32/LICENSE LICENSE -mv apps/twofactor_totp/vendor/rullzer/easytotp/LICENSE LICENSE -mv apps/twofactor_totp/COPYING COPYING -mv apps/activity/js/activity-adminSettings.js.LICENSE.txt activity-adminSettings.js.LICENSE.txt -mv apps/activity/js/activity-personalSettings.js.LICENSE.txt activity-personalSettings.js.LICENSE.txt -mv apps/notifications/js/notifications-admin-settings.js.LICENSE.txt notifications-admin-settings.js.LICENSE.txt -mv apps/photos/js/photos-src_mixins_AbortControllerMixin_js-src_views_Faces_vue.js.LICENSE.txt photos-src_mixins_AbortControllerMixin_js-src_views_Faces_vue.js.LICENSE.txt -mv apps/photos/js/photos-node_modules_vue-material-design-icons_AccountBoxMultipleOutline_vue-src_components_FaceCover_vue.js.LICENSE.txt photos-node_modules_vue-material-design-icons_AccountBoxMultipleOutline_vue-src_components_FaceCover_vue.js.LICENSE.txt -mv apps/dav/img/LICENSES.md dav-img-LICENSES.md -mv 3rdparty/mexitek/phpcolors/LICENSE LICENSE -mv 3rdparty/fusonic/linq/LICENSE LICENSE -mv 3rdparty/fusonic/opengraph/LICENSE LICENSE -mv 3rdparty/laravel/serializable-closure/LICENSE.md LICENSE.md -mv 3rdparty/symfony/css-selector/LICENSE LICENSE -mv 3rdparty/symfony/http-foundation/LICENSE LICENSE -mv 3rdparty/symfony/dom-crawler/LICENSE LICENSE -mv 3rdparty/mlocati/ip-lib/LICENSE.txt LICENSE.txt -mv dist/federatedfilesharing-vue-settings-admin.js.LICENSE.txt federatedfilesharing-vue-settings-admin.js.LICENSE.txt -mv dist/sharebymail-vue-settings-admin-sharebymail.js.LICENSE.txt sharebymail-vue-settings-admin-sharebymail.js.LICENSE.txt -mv dist/theming-theming-settings.js.LICENSE.txt theming-theming-settings.js.LICENSE.txt +# Deal with licenses automatically +find . -mindepth 2 \( -name '*LICENSE*' -o -name '*LICENCE*' \) | { while read a ; do mv "$a" $(echo $a | sed "s_^./__" | tr "/ " "__" )-LICENSE ; done ; } +find . -mindepth 2 -name '*COPYING*' | { while read a ; do mv "$a" $(echo $a | sed "s_^./__" | tr "/ " "__" )-COPYING ; done ; } +# case-sensitive list of partial matches to exclude from the nextcloud integrity checker +# include readme, license, other docs, and any files we move or patch during the build +excludedFilenames=" +README +readme +LICENSE +LICENCE +license +copying +COPYING +AUTHORS +htaccess +gitignore +user.ini +update.admin.php +Updater.php +occ +Checker.php +" + +# nextcloud source files use tabs rather than spaces, ew +tabs=" " +cr=" +" + +# Add quotes, commas, and escaped newlines +for f in $excludedFilenames; do + formattedlist="$formattedlist$tabs'$f',\\$cr" +done + +# look for our sed placeholder we patched in earlier, then insert our formatted list of keywords +sed -i "s|//sedplaceholder|${formattedlist}|" lib/private/IntegrityCheck/Checker.php + +# Build nextcloud-defaults.inc from upstream .htaccess. We will install it later. +cat .htaccess >> %{SOURCE105} %check # Make sure there are no license files left over @@ -644,10 +288,10 @@ done install -pm 755 occ %{buildroot}%{_datadir}/%{name} # symlink config dir -ln -sf %{_sysconfdir}/%{name} %{buildroot}%{_datadir}/%{name}/config +ln -s ../../../%{_sysconfdir}/%{name} %{buildroot}%{_datadir}/%{name}/config # nextcloud looks for ca-bundle.crt in config dir -ln -sf %{_sysconfdir}/pki/tls/certs/ca-bundle.crt %{buildroot}%{_sysconfdir}/%{name}/ca-bundle.crt +ln -s ../pki/ca-trust/extracted/pem/tls-ca-bundle.pem %{buildroot}%{_sysconfdir}/%{name}/ca-bundle.crt # set default config install -pm 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/%{name}/config.php @@ -670,10 +314,25 @@ install -Dpm 644 %{SOURCE201} \ install -Dpm 644 %{SOURCE202} \ %{buildroot}%{_sysconfdir}/php-fpm.d/%{name}.conf +# php.ini config +install -Dpm 644 %{SOURCE203} \ + %{buildroot}%{_sysconfdir}/php.d/60-%{name}.ini + # Install the systemd timer install -Dpm 644 %{SOURCE2} %{buildroot}%{_unitdir}/nextcloud-cron.service install -Dpm 644 %{SOURCE3} %{buildroot}%{_unitdir}/nextcloud-cron.timer +# If there's a new installation activate the installation wizard +%post +INSTALLED=$(grep -c secret /etc/nextcloud/config.php) +if [ "${INSTALLED}" -eq "0" ]; then + echo "First time installation, enabling installation wizard" + touch %{_sysconfdir}/%{name}/CAN_INSTALL + chown apache:apache %{_sysconfdir}/%{name}/CAN_INSTALL +fi + +/usr/bin/systemctl restart php-fpm.service > /dev/null 2>&1 || : + %post httpd /usr/bin/systemctl reload httpd.service > /dev/null 2>&1 || : /usr/bin/systemctl reload php-fpm.service > /dev/null 2>&1 || : @@ -695,11 +354,12 @@ if [ $1 -eq 0 ]; then fi %files -%doc AUTHORS README.fedora MIGRATION.fedora config/config.sample.php +%doc AUTHORS README.%{distro} MIGRATION.%{distro} config/config.sample.php %license *-LICENSE %dir %attr(-,apache,apache) %{_sysconfdir}/%{name} # contains sensitive data (dbpassword, passwordsalt) %config(noreplace) %attr(0600,apache,apache) %{_sysconfdir}/%{name}/config.php +%config(noreplace) %{_sysconfdir}/php.d/60-%{name}.ini # need the symlink in confdir but it's not config %{_sysconfdir}/%{name}/ca-bundle.crt %{_datadir}/%{name} @@ -730,4 +390,3 @@ fi %changelog %autochangelog - diff --git a/sources b/sources index 2ceb7d1..95997de 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nextcloud-25.0.3.tar.bz2) = 5c9fa141616002c87585c50bba740e3968b30fd901e6b5b4d345197a96021e10e5aeea1507f07ecd3e38bc55336a67510c6045a4f632c8991dee9760e175c6b3 +SHA512 (nextcloud-34.0.3.tar.bz2) = 3463dbbdeae5275a0791b115cf86aed41c5a138fdd19bb32ec12837a6698106b6f172e24fb1264a2d4e20b2b805bcf7841b2338e4e02f1fd5394fbed830cc695