Compare commits

..

44 commits

Author SHA1 Message Date
Christopher Engelhard
8ae4e5b5d0 Update to 19.0.13; Fixes RHBZ#1981503; Fixes RHBZ#1981505 2021-07-12 20:06:31 +02:00
Christopher Engelhard
13f2637da0 convert to rpmautospec 2021-07-12 19:59:35 +02:00
Christopher Engelhard
bea378a683 add RHBZ number to changelog 2021-06-30 13:39:51 +02:00
Christopher Engelhard
ad60133653 Add Referrer-Policy no-referrer always (RHBZ 1933530) 2021-06-30 13:38:33 +02:00
Christopher Engelhard
0a9822f8e0 update changelog for memory limit (RHBZ 1933529) 2021-06-30 13:38:19 +02:00
Christopher Engelhard
c5c22df647 update changelog for httpd/php-fpm 2021-06-30 13:37:47 +02:00
Christopher Engelhard
69f6a42a3f Require php-fpm instead of php in httpd subpackage 2021-06-30 13:36:18 +02:00
Christopher Engelhard
562b90f34a Increase PHP memory limit to 512MB (RHBZ 1933529) 2021-06-30 13:36:05 +02:00
Christopher Engelhard
3093a3e7ef Update to 19.0.12 2021-06-30 12:08:41 +02:00
Christopher Engelhard
fbb2150973 Update to 19.0.9 2021-02-28 09:14:06 +01:00
Christopher Engelhard
6c8871e390 Update to 19.0.8 2021-02-20 14:55:06 +01:00
Christopher Engelhard
489fc4674d Fix changelog date 2021-01-16 13:33:51 +01:00
Christopher Engelhard
792d4c0a10 Update to 19.0.7 2021-01-16 13:31:44 +01:00
Christopher Engelhard
3bd55884be nicer output, generate .pkgtmp files 2020-12-30 13:56:54 +01:00
Christopher Engelhard
7ef00939b5 exclude temporary packaging files from git 2020-12-30 13:56:40 +01:00
Christopher Engelhard
eec585d59e move helper scripts to subfolder 2020-12-30 13:55:05 +01:00
Christopher Engelhard
f3949451fd bump release to 19.0.6-2 2020-12-28 21:15:19 +01:00
Christopher Engelhard
cee7d4dcf3 add dependency for CA cert bundle 2020-12-28 21:13:43 +01:00
Christopher Engelhard
2b461ef019 specfile formatting 2020-12-28 21:12:51 +01:00
Christopher Engelhard
e10c6838cf add Provides: for bundled libraries 2020-12-28 21:11:21 +01:00
Christopher Engelhard
8cf1cbd70d add helperscript to determine bundled versions 2020-12-28 21:07:01 +01:00
Christopher Engelhard
da83379bb6 remove selinux stuff and duplicate deps 2020-12-28 21:06:48 +01:00
Christopher Engelhard
3c6e71ca8f update to 19.0.6 2020-12-10 10:41:06 +01:00
Christopher Engelhard
23c6be1a80 ignore extracted sources 2020-12-10 10:40:35 +01:00
Christopher Engelhard
318055e6d6 update to 19.0.5 2020-11-19 10:17:22 +01:00
Christopher Engelhard
7dbea8c427 Upload new sources for 19.0.4 2020-11-13 14:51:10 +01:00
Christopher Engelhard
3e4a14f93f update to 19.0.4 2020-11-13 14:48:19 +01:00
Christopher Engelhard
2e7a285915 enable gating 2020-11-13 14:41:28 +01:00
Christopher Engelhard
02fa3aedad fix repo url 2020-11-13 14:41:16 +01:00
Christopher Engelhard
d87c8a90ab add tests 2020-11-13 14:41:05 +01:00
Christopher Engelhard
041d0e7152 Update changelog for release nextcloud-19.0.3-2 2020-11-11 11:36:40 +01:00
Christopher Engelhard
c04043b51f remove el7 support 2020-11-11 09:45:12 +01:00
Christopher Engelhard
c194a82a22 add readme 2020-11-11 09:45:05 +01:00
Christopher Engelhard
ef12a8b993 bump release 2020-11-11 07:12:15 +01:00
Christopher Engelhard
be585c98b2 bump release 2020-11-11 07:08:54 +01:00
Christopher Engelhard
08f384f911 fix occ shebang and make it executable 2020-11-11 06:58:27 +01:00
Christopher Engelhard
d978a92a28 fix wrong conf.avail filename 2020-11-11 06:57:35 +01:00
Christopher Engelhard
0e9ee4dcd5 spec cleanup 2020-11-11 06:57:17 +01:00
Christopher Engelhard
dc8e425f6f add patch to allow updates across multiple versions 2020-11-11 06:55:30 +01:00
Christopher Engelhard
e1ca6fc4ae remove unneccessary BR on php-cli 2020-11-11 06:54:28 +01:00
Michael S
a3a0ddbdec Add requires on php-process
Without this package, occ refuse to work. 
# php /usr/share/nextcloud/occ
The posix extensions are required - see http://php.net/manual/en/book.posix.php
2020-11-11 06:52:24 +01:00
Christopher Engelhard
2e7ec41e7b Require php-cli for occ command 2020-11-11 06:51:54 +01:00
Christopher Engelhard
652d9ca4ae update to 19.0.3 2020-10-11 10:58:39 +02:00
Christopher Engelhard
b8487b1296 ignore all source tarballs 2020-10-11 10:57:31 +02:00
18 changed files with 506 additions and 340 deletions

View file

@ -1,21 +1,20 @@
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);
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 @@
}
+ /*
+ 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->getSystemValueBool('debug', false));
- && (version_compare($oldVersion, $newVersion, '<=') ||
- $this->config->getSystemValue('debug', false));
+ return true;
}
// Check if the instance can be migrated
- return isset($allowedPreviousVersions[$currentVendor][$majorMinor]) ||
- isset($allowedPreviousVersions[$currentVendor][$oldVersion]);
+ return true;
}
/**

View file

@ -1,16 +0,0 @@
# Packaging Notes
Nextcloud has a fairly quick release cadence. Luckily they follow a strick system of alph-beta-rc-final releases and differences between major versions aren't huge so this rarely causes problems.
## Versions/Branches/Modules/Releases
### Upstream versioning
Upstream uses semantic versioning `major.minor.bugfix` for their version numbers. Contrary to what one might expect, they generally only push releases to their `stable` release channel after the first bugfix release `x.y.1`.
### In Fedora
`rawhide` generally contains whatever the latest non-rc release upstream is, including the `x.y.0` initial releases of a new major version.
Fedora releases stay on whatever major version they inherited from `rawhide` at branching as much as possible. Since nextcloud's and Fedora's release schedule don't entirely sync up, this means that occasionally a Fedora release might ship a `x.y.0` or EOL'd version of nextcloud for a brief time, but this is the best tradeoff between keeping Fedora in sync with upstream and minimizing disruptions within one Fedora release. Users who are unhappy with that can choose modules to work around that.
Module streams `nextcloud-X` ship the current release of major version `X`. Module stream `nextcloud-stable` should be rebased to a new major version only after the `x.y.1` bugfix release, in keeping with what upstream considers it's stable branch.
### Security fixes
Upstream is very conscientious with publishing and fixing CVEs discovered in their code. They generally backport fixes to all but very minor vulnerabilities to all supported versions, so it is generally safe not to change major versions within one Fedora release, even if a vulnerability has been discovered. Impacted users can always choose to upgrade via modules.
## Tarballs
Release tarballs are located at https://download.nextcloud.com/server/releases while prerelease tarballs are located ata https://download.nextcloud.com/server/prereleases/ . It generally takes about a day after the release annoucement for tarballs to actually appear in those directories.
## Bundled dependencies
Nextcloud ships a lot of bundled composer libraries, but these are easy to unbundle. The repos `utils` directory contains a script `get-composer-requires.py` that will output all required libraries/versions as well as if they're already available in the Fedora repositories or need to be added, by scanning the `composer.json` files shipped with the nextcloud sources.

View file

@ -4,8 +4,8 @@ Nextcloud requires some additional steps after installation/upgrade that are not
### Other versions
[modular nextcloud package Fedora and CentOS/RHEL](https://src.fedoraproject.org/modules/nextcloud) is over
Nextcloud maintains multiple stable branches at the same time. To install those, check out the [modular nextcloud package](https://src.fedoraproject.org/modules/nextcloud).
https://fedoraproject.org/wiki/Changes/RetireModularity
### CentOS/RHEL
Once Fedora Linux 38 reaches end of life, we will retire the Fedora instance of Module Build Service.
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.

View file

@ -1,58 +1,38 @@
* Tue Jul 6 2021 Christopher Engelhard <ce@lcts.de> - 22.0.0-1
- Update to 22.0.0
* Wed Jun 30 2021 Christopher Engelhard <ce@lcts.de> - 21.0.2-1
- Update to 21.0.2, fixes RHBZ 1977202 / CVE-2021-22915
* Wed Jun 30 2021 Christopher Engelhard <ce@lcts.de> - 19.0.12-1
- Update to Nextcloud 19.0.12, fixes CVE-2021-22915 (RHBZ 1977202)
- Include php-fpm config in httpd subpackage
- Set php memory limit to 512MB (RHBZ 1933529)
- Add Referrer-policy no-referrer to nginx config (RHBZ 1933530)
* Wed Feb 24 2021 Christopher Engelhard <ce@lcts.de> - 21.0.0-2
- Drop dependency on php-imap. Fixes RHBZ #1933023
* Sun Feb 28 2021 Christopher Engelhard <ce@lcts.de> - 19.0.9-1
- Update to Nextcloud 19.0.9
* Wed Feb 24 2021 Christopher Engelhard <ce@lcts.de> - 21.0.0-1
- Update to 21.0.0
* Sat Feb 20 2021 Christopher Engelhard <ce@lcts.de> - 19.0.8-1
- Update to Nextcloud 19.0.8
* Sat Feb 20 2021 Christopher Engelhard <ce@lcts.de> - 20.0.7-1
- Update to 20.0.7
* Sat Jan 16 2021 Christopher Engelhard <ce@lcts.de> - 19.0.7-1
- Update to Nextcloud 19.0.7
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20.0.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sat Jan 16 2021 Christopher Engelhard <ce@lcts.de> - 20.0.5-1
- Update to 20.0.5
* Mon Dec 28 2020 Christopher Engelhard <ce@lcts.de> - 20.0.4-2
- Remove duplicate dependencies on database drivers
- Remove syslinux related stuff, as these are included in
the syslinux policy
* Mon Dec 28 2020 Christopher Engelhard <ce@lcts.de> - 19.0.6-2
- Remove syslinuc rules, these are part of system policy now
- Remove duplicate dependencies
- Add dependency on CA cert bundle
- Add Provides: for bundled libraries
* Thu Dec 17 2020 Christopher Engelhard <ce@lcts.de> - 20.0.4-1
- Update to 20.0.4
* Thu Dec 10 2020 Christopher Engelhard <ce@lcts.de> - 19.0.6-1
- Update to Nextcloud 19.0.6
* Thu Dec 10 2020 Christopher Engelhard <ce@lcts.de> - 20.0.3-1
- Update to 20.0.3
* Thu Nov 19 2020 Christopher Engelhard <ce@lcts.de> - 19.0.5-1
- Update to Nextcloud 19.0.5
* Thu Nov 19 2020 Christopher Engelhard <ce@lcts.de> - 20.0.2-1
- Update to 20.0.2
* Sat Nov 14 2020 Christopher Engelhard <ce@lcts.de> - 20.0.2-0.1.rc1
- Update to 20.0.2RC1
* Wed Nov 11 2020 Christopher Engelhard <ce@lcts.de> - 20.0.1-3
- Remove CentOS/RHEL 7 support from spec file
* Tue Nov 10 2020 Christopher Engelhard <ce@lcts.de> - 20.0.1-2
* Wed Nov 11 2020 Christopher Engelhard <ce@lcts.de> - 19.0.3-2
- Add dependencies on php-cli (for occ) and php-process (for posix)
- Remove unneeded BR on php-cli
- Add patch to allow updates across more than one major version
- Remove CentOS/RHEL 7 support
* Mon Oct 26 2020 Christopher Engelhard <ce@lcts.de> - 20.0.1-1
- Update to Nextcloud 20.0.1
* Sun Oct 11 2020 Christopher Engelhard <ce@lcts.de> - 20.0.0-1
- Update to Nextcloud 20.0.0
* Sun Oct 11 2020 Christopher Engelhard <ce@lcts.de> - 19.0.3-1
- Update to Nextcloud 19.0.3
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 19.0.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

View file

@ -1,17 +1,9 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_testing
decision_context:
- bodhi_update_push_testing
- bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.rpmdeplint.functional}
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.rpminspect.static-analysis}
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.installability.functional}

View file

@ -12,7 +12,7 @@ If not, make sure your webserver is running properly.
Webserver
---------
Currently nextcloud in Fedora/EPEL supports httpd (Apache) and nginx. You must install
Currently nextcloud in Fedora supports httpd (Apache) and nginx. You must install
at least one webserver subpackage (nextcloud-<webserver>). 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/EPEL configuration it will log to the
logger, which means in a standard Fedora 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.distro
For detailed instructions on this please read MIGRATION.fedora

View file

@ -1,5 +1,5 @@
<?php
$CONFIG = [
$CONFIG = array (
"log_type" => "syslog",
"datadirectory" => "/var/lib/nextcloud/data",
"updatechecker" => false,
@ -9,15 +9,18 @@ $CONFIG = [
"preview_libreoffice_path" => '/usr/bin/libreoffice',
"apps_paths" => [
[ 'path'=> '/usr/share/nextcloud/apps',
"apps_paths" => array(
0 =>
array (
'path'=> '/usr/share/nextcloud/apps',
'url' => '/apps',
'writable' => false,
],
[
),
1 =>
array (
'path' => '/var/lib/nextcloud/apps',
'url' => '/apps-appstore',
'writable' => true,
],
],
];
),
),
);

View file

@ -1,8 +1,73 @@
# 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.
# 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.
#
# DO NOT EDIT THIS FILE DIRECTLY. To override any element of the
# packaged Nextcloud configuration, create a new /etc/httpd/conf.d/
# file which will be read later than this one.
# packaged ownCloud configuration, create a new /etc/httpd/conf.d/
# file which will be read later than 'nextcloud.conf'.
AllowOverride None
ErrorDocument 403 /nextcloud/core/templates/403.php
ErrorDocument 404 /nextcloud/core/templates/404.php
<IfModule mod_fcgid.c>
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
</IfModule>
</IfModule>
<IfModule mod_php5.c>
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
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
</IfModule>
<IfModule mod_php7.c>
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
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
</IfModule>
# 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
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /nextcloud/
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^remote/(.*) remote.php [QSA,L]
</IfModule>
AddDefaultCharset utf-8
Options -Indexes
<IfModule pagespeed_module>
ModPagespeed Off
</IfModule>
<IfModule mod_headers.c>
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=7200, public"
</FilesMatch>
</IfModule>

View file

@ -0,0 +1,70 @@
<?php
$vendor = '##DATADIR##/php';
if (!isset($fedoraClassLoader) || !($fedoraClassLoader instanceof \Symfony\Component\ClassLoader\ClassLoader)) {
if (!class_exists('Symfony\\Component\\ClassLoader\\ClassLoader', false)) {
require_once $vendor . '/Symfony/Component/ClassLoader/ClassLoader.php';
}
$fedoraClassLoader = new \Symfony\Component\ClassLoader\ClassLoader();
$fedoraClassLoader->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';

View file

@ -16,14 +16,9 @@ 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
# 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
Redirect 301 /.well-known/carddav /nextcloud/remote.php/carddav
Redirect 301 /.well-known/caldav /nextcloud/remote.php/caldav
Redirect 301 /.well-known/webdav /nextcloud/remote.php/webdav
<Directory /usr/share/nextcloud/>
Include conf.d/nextcloud-auth-local.inc

View file

@ -1,34 +0,0 @@
From 9f38c6300712a23ccdc75e140143a1c461e15705 Mon Sep 17 00:00:00 2001
From: Andrew Bauer <zonexpertconsulting@outlook.com>
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'] = '';

View file

@ -18,7 +18,6 @@ php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
php_value[memory_limit] = 512M
php_value[upload_max_filesize] = 10G
php_value[post_max_size] = 10G
php_value[output_buffering] = false
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp

View file

@ -1 +0,0 @@
apc.enable_cli=1

View file

@ -2,10 +2,7 @@
Description=Cron for nextcloud background jobs
[Service]
# https://docs.nextcloud.com/server/25/admin_manual/configuration_server/background_jobs_configuration.html#systemd
Type=oneshot
User=apache
KillMode=process
ExecStart=/usr/bin/php -f /usr/share/nextcloud/cron.php
User=apache

View file

@ -1,15 +1,8 @@
%if 0%{?fedora}
%global distro fedora
%else
%global distro epel
%endif
Name: nextcloud
Version: 34.0.3
Version: 19.0.13
Release: %autorelease
Summary: Private file sync and share server
# 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
License: AGPLv3+ and MIT and BSD and ASL 2.0 and WTFPL and CC-BY-SA and GPLv3+ and Adobe
URL: http://nextcloud.com
Source0: https://download.nextcloud.com/server/releases/%{name}-%{version}.tar.bz2
@ -17,8 +10,8 @@ Source0: https://download.nextcloud.com/server/releases/%{name}-%{version
# initial setup will fill out other settings appropriately
Source1: %{name}-config.php
# Systemd timer for background jobs
Source2: %{name}-systemd-timer.service
Source3: %{name}-systemd-timer.timer
Source2: %{name}-systemd-timer.service
Source3: %{name}-systemd-timer.timer
# httpd config files
Source100: %{name}-httpd.conf
Source101: %{name}-access-httpd.conf.avail
@ -26,11 +19,10 @@ Source102: %{name}-auth-any.inc
Source103: %{name}-auth-local.inc
Source104: %{name}-auth-none.inc
Source105: %{name}-defaults.inc
# nginx/php-fpm config files
# nginx/php-fpm config files
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
@ -40,27 +32,22 @@ 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
# Add the ability to exclude files we specify from the nextcloud integrity checker
Patch1: nextcloud-integritycheck-exclusion.patch
# Change occ shebang to /usr/bin/php
Patch1: 0001-mangle-shebang.patch
BuildArch: noarch
# 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
# For the systemd macros
%if 0%{?fedora} > 29
BuildRequires: systemd-rpm-macros
BuildRequires: sed
# Auto-generate Provides from bundled php-composer libraries
BuildRequires: composer-generators
%else
BuildRequires: systemd
%endif
# 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
@ -68,38 +55,134 @@ 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-pecl-apcu
Requires: php-pecl-imagick
Requires: php-pecl-memcached
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-spl
Requires: php-zip
Requires: php-filter
Requires: php-ldap
Requires: php-smbclient
Requires: php-imap
Requires: php-gmp
Requires: php-process
Requires: php-pecl-imagick
Requires: php-pecl-memcached
Requires: php-pecl-apcu
Requires: php-pecl-redis5
# For systemd support during install/uninstall
%{?systemd_requires}
# 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
# the CA cert bundle is linked to from the config dir
Requires: %{_sysconfdir}/pki/tls/certs/ca-bundle.crt
# Bundled composer libraries
# many of these can be unbundled
Provides: bundled(php-composer(icewind/smb)) = 3.2.7
Provides: bundled(php-composer(icewind/streams)) = 0.7.1
Provides: bundled(php-composer(aws/aws-sdk-php)) = 3.133.27
Provides: bundled(php-composer(bantu/ini-get-wrapper)) = 1.0.1
Provides: bundled(php-composer(beberlei/assert)) = 3.2.7
Provides: bundled(php-composer(christophwurst/id3parser)) = 0.1.1
Provides: bundled(php-composer(deepdiver/zipstreamer)) = 1.1.1
Provides: bundled(php-composer(deepdiver1975/tarstreamer)) = 2.0.0
Provides: bundled(php-composer(doctrine/annotations)) = 1.6.0
Provides: bundled(php-composer(doctrine/cache)) = 1.8.0
Provides: bundled(php-composer(doctrine/collections)) = 1.5.0
Provides: bundled(php-composer(doctrine/common)) = 2.10.0
Provides: bundled(php-composer(doctrine/dbal)) = 2.9.2
Provides: bundled(php-composer(doctrine/event-manager)) = 1.0.0
Provides: bundled(php-composer(doctrine/inflector)) = 1.3.0
Provides: bundled(php-composer(doctrine/lexer)) = 1.2.0
Provides: bundled(php-composer(doctrine/persistence)) = 1.1.0
Provides: bundled(php-composer(doctrine/reflection)) = 1.0.0
Provides: bundled(php-composer(egulias/email-validator)) = 2.1.11
Provides: bundled(php-composer(fgrosse/phpasn1)) = 2.1.1
Provides: bundled(php-composer(guzzlehttp/guzzle)) = 6.5.2
Provides: bundled(php-composer(guzzlehttp/promises)) = 1.3.1
Provides: bundled(php-composer(guzzlehttp/psr7)) = 1.6.1
Provides: bundled(php-composer(guzzlehttp/ringphp)) = 1.1.0
Provides: bundled(php-composer(guzzlehttp/streams)) = 3.0.0
Provides: bundled(php-composer(icewind/searchdav)) = 2.0.0
Provides: bundled(php-composer(icewind/streams)) = 0.7.1
Provides: bundled(php-composer(interfasys/lognormalizer)) = 1.0
Provides: bundled(php-composer(jeremeamia/SuperClosure)) = 2.4.0
Provides: bundled(php-composer(justinrainbow/json-schema)) = 5.2.9
Provides: bundled(php-composer(league/flysystem)) = 1.0.64
Provides: bundled(php-composer(league/uri)) = 6.2.1
Provides: bundled(php-composer(league/uri-components)) = 2.2.1
Provides: bundled(php-composer(league/uri-interfaces)) = 2.1.0
Provides: bundled(php-composer(microsoft/azure-storage-blob)) = 1.5.0
Provides: bundled(php-composer(microsoft/azure-storage-common)) = 1.4.1
Provides: bundled(php-composer(mtdowling/jmespath.php)) = 2.5.0
Provides: bundled(php-composer(nikic/php-parser)) = 4.3.0
Provides: bundled(php-composer(paragonie/random_compat)) = 9.99.99
Provides: bundled(php-composer(patchwork/jsqueeze)) = 2.0.5
Provides: bundled(php-composer(patchwork/utf8)) = 1.3.1
Provides: bundled(php-composer(pear/archive_tar)) = 1.4.9
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.1
Provides: bundled(php-composer(php-http/guzzle6-adapter)) = 2.0.1
Provides: bundled(php-composer(php-http/httplug)) = 2.1.0
Provides: bundled(php-composer(php-http/promise)) = 1.0.0
Provides: bundled(php-composer(php-opencloud/openstack)) = 3.0.7
Provides: bundled(php-composer(phpseclib/phpseclib)) = 2.0.25
Provides: bundled(php-composer(pimple/pimple)) = 3.2.3
Provides: bundled(php-composer(psr/container)) = 1.0.0
Provides: bundled(php-composer(psr/http-client)) = 1.0.0
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.0
Provides: bundled(php-composer(punic/punic)) = 1.6.5
Provides: bundled(php-composer(ralouphie/getallheaders)) = 3.0.3
Provides: bundled(php-composer(ramsey/uuid)) = 3.9.3
Provides: bundled(php-composer(react/promise)) = 2.2.1
Provides: bundled(php-composer(sabre/dav)) = 4.0.3
Provides: bundled(php-composer(sabre/event)) = 5.1.0
Provides: bundled(php-composer(sabre/http)) = 5.1.0
Provides: bundled(php-composer(sabre/uri)) = 2.2.0
Provides: bundled(php-composer(sabre/vobject)) = 4.3.0
Provides: bundled(php-composer(sabre/xml)) = 2.2.3
Provides: bundled(php-composer(scssphp/scssphp)) = 1.0.3
Provides: bundled(php-composer(spomky-labs/base64url)) = 2.0.1
Provides: bundled(php-composer(spomky-labs/cbor-php)) = 1.0.8
Provides: bundled(php-composer(stecman/symfony-console-completion)) = 0.11.0
Provides: bundled(php-composer(swiftmailer/swiftmailer)) = 6.2.3
Provides: bundled(php-composer(symfony/console)) = 4.4.4
Provides: bundled(php-composer(symfony/event-dispatcher)) = 4.4.4
Provides: bundled(php-composer(symfony/event-dispatcher-contracts)) = 1.1.7
Provides: bundled(php-composer(symfony/polyfill-ctype)) = 1.15.0
Provides: bundled(php-composer(symfony/polyfill-iconv)) = 1.12.0
Provides: bundled(php-composer(symfony/polyfill-intl-idn)) = 1.12.0
Provides: bundled(php-composer(symfony/polyfill-mbstring)) = 1.14.0
Provides: bundled(php-composer(symfony/polyfill-php56)) = 1.10.0
Provides: bundled(php-composer(symfony/polyfill-php72)) = 1.12.0
Provides: bundled(php-composer(symfony/polyfill-php73)) = 1.13.1
Provides: bundled(php-composer(symfony/polyfill-util)) = 1.10.0
Provides: bundled(php-composer(symfony/process)) = 4.4.4
Provides: bundled(php-composer(symfony/routing)) = 4.4.4
Provides: bundled(php-composer(symfony/service-contracts)) = 1.1.8
Provides: bundled(php-composer(symfony/translation)) = 4.4.4
Provides: bundled(php-composer(symfony/translation-contracts)) = 1.1.7
Provides: bundled(php-composer(web-auth/cose-lib)) = 3.1.1
Provides: bundled(php-composer(web-auth/metadata-service)) = 3.1.1
Provides: bundled(php-composer(web-auth/webauthn-lib)) = 3.1.1
Provides: bundled(php-composer(doctrine/cache)) = 1.7.1
Provides: bundled(php-composer(doctrine/event-manager)) = 1.0.0
# 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) = 1.13
Provides: bundled(jquery-ui-multiselect) = 0.3.1
# zxcvbn bundled via core
Provides: bundled(zxcvbn) = 4.4.2
@ -150,7 +233,6 @@ 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}
@ -174,91 +256,170 @@ Summary: SQLite 3 database support for NextCloud
Provides: %{name}-database = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
# From getSupportedDatabases, pgsql => class, SQLite3
%description sqlite
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 -delete -print
find . -name .gitignore -type f -delete -print
find . -name \*.orig -type f -exec rm {} \; -print
find . -name .gitignore -type f -exec rm {} \; -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.%{distro}
cp %{SOURCE300} README.fedora
cp %{SOURCE301} README.mysql
cp %{SOURCE302} README.postgresql
cp %{SOURCE303} MIGRATION.%{distro}
# point the reader to the correct README filename
sed -i 's/distro/%{distro}/g' README.%{distro}
cp %{SOURCE303} MIGRATION.fedora
# 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 using "find -name '*LICENSE*' -o -name '*COPYING*' | sort"
mv 3rdparty/aws/aws-sdk-php/LICENSE.md aws-LICENSE.md
mv 3rdparty/bantu/ini-get-wrapper/LICENSE bantu-LICENSE
mv 3rdparty/beberlei/assert/LICENSE beberlei-LICENSE
mv 3rdparty/christophwurst/id3parser/LICENSE christophwurst-LICENSE
mv 3rdparty/composer/LICENSE composer-LICENSE
mv 3rdparty/deepdiver1975/tarstreamer/LICENSE deepdiver1975-LICENSE
mv 3rdparty/deepdiver/zipstreamer/COPYING deepdiver-COPYING
mv 3rdparty/doctrine/annotations/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/cache/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/collections/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/common/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/dbal/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/event-manager/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/inflector/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/persistence/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/reflection/LICENSE doctrine-LICENSE
mv 3rdparty/egulias/email-validator/LICENSE egulias-LICENSE
mv 3rdparty/fgrosse/phpasn1/LICENSE fgrosse-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/ringphp/LICENSE guzzlehttp-LICENSE
mv 3rdparty/guzzlehttp/streams/LICENSE guzzlehttp-LICENSE
mv 3rdparty/icewind/searchdav/LICENSE icewind-LICENSE
mv 3rdparty/interfasys/lognormalizer/COPYING interfasys-COPYING
mv 3rdparty/jeremeamia/SuperClosure/LICENSE.md jeremeamia-LICENSE
mv 3rdparty/justinrainbow/json-schema/LICENSE justinrainbow-LICENSE
mv 3rdparty/league/flysystem/LICENSE league-LICENSE
mv 3rdparty/league/uri-components/LICENSE league-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/nikic/php-parser/LICENSE nikic-LICENSE
mv 3rdparty/paragonie/random_compat/LICENSE paragonie-LICENSE
mv 3rdparty/patchwork/jsqueeze/LICENSE.ASL20 patchwork-LICENSE-APACHE
mv 3rdparty/patchwork/jsqueeze/LICENSE.GPLv2 patchwork-LICENSE-GPL
mv 3rdparty/patchwork/utf8/LICENSE-APACHE patchwork-LICENSE-APACHE
mv 3rdparty/patchwork/utf8/LICENSE-GPL patchwork-LICENSE-GPL
mv 3rdparty/pear/console_getopt/LICENSE pear-LICENSE
mv 3rdparty/pear/pear_exception/LICENSE pear-LICENSE
mv 3rdparty/php-http/guzzle6-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/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/uuid/LICENSE ramsey-LICENSE
mv 3rdparty/react/promise/LICENSE react-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-idn/LICENSE symfony-LICENSE
mv 3rdparty/symfony/polyfill-mbstring/LICENSE symfony-LICENSE
mv 3rdparty/symfony/polyfill-php56/LICENSE symfony-LICENSE
mv 3rdparty/symfony/polyfill-php72/LICENSE symfony-LICENSE
mv 3rdparty/symfony/polyfill-php73/LICENSE symfony-LICENSE
mv 3rdparty/symfony/polyfill-util/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/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 apps/accessibility/composer/composer/LICENSE accessibility-LICENSE
mv apps/admin_audit/composer/composer/LICENSE admin_audit-LICENSE
mv apps/cloud_federation_api/composer/composer/LICENSE cloud_federation_api-LICENSE
mv apps/cloud_federation_api/LICENSE cloud_federation_api-LICENSE
mv apps/comments/composer/composer/LICENSE comments-LICENSE
mv apps/contactsinteraction/composer/composer/LICENSE contactsinteraction-LICENSE
mv apps/dav/composer/composer/LICENSE dav-LICENSE
mv apps/encryption/composer/composer/LICENSE encryption-LICENSE
mv apps/federatedfilesharing/composer/composer/LICENSE federatedfilesharing-LICENSE
mv apps/federation/composer/composer/LICENSE federation-LICENSE
mv apps/files/composer/composer/LICENSE files-LICENSE
mv apps/files_external/3rdparty/composer/LICENSE files_external-LICENSE
mv apps/files_external/3rdparty/icewind/smb/LICENSE.txt icewind-smb-LICENSE
mv apps/files_external/3rdparty/icewind/streams/LICENCE icewind-streams-LICENSE
mv apps/files_pdfviewer/vendor/pdfjs/LICENSE js-pdfjs-LICENSE
mv apps/files_pdfviewer/vendor/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/files_sharing/composer/composer/LICENSE files_sharing-LICENSE
mv apps/files_trashbin/composer/composer/LICENSE files_trashbin-LICENSE
mv apps/files_versions/composer/composer/LICENSE files_versions-LICENSE
mv apps/lookup_server_connector/composer/composer/LICENSE lookup_server_connector-LICENSE
mv apps/nextcloud_announcements/COPYING nextcloud_announcements-COPYING
mv apps/notifications/COPYING notifications-LICENSE
mv apps/oauth2/composer/composer/LICENSE oauth2-LICENSE
mv apps/password_policy/LICENSE password_policy-LICENSE
mv apps/photos/COPYING photos-COPYING
mv apps/privacy/COPYING privacy-COPYING
mv apps/provisioning_api/composer/composer/LICENSE provisioning_api-LICENSE
mv apps/recommendations/LICENSE recommendations-LICENSE
mv apps/serverinfo/COPYING serverinfo-LICENSE
mv apps/settings/composer/composer/LICENSE settings-LICENSE
mv apps/sharebymail/composer/composer/LICENSE sharebymail-LICENSE
mv apps/survey_client/COPYING survey_client-LICENSE
mv apps/systemtags/composer/composer/LICENSE systemtags-LICENSE
mv apps/text/COPYING text-COPYING
mv apps/theming/js/3rdparty/jscolor/LICENSE.txt jscolor-LICENSE
mv apps/twofactor_backupcodes/composer/composer/LICENSE twofactor_backupcodes-LICENSE
mv apps/updatenotification/composer/composer/LICENSE updatenotification-LICENSE
mv apps/user_ldap/composer/composer/LICENSE user_ldap-LICENSE
mv apps/user_ldap/vendor/ui-multiselect/MIT-LICENSE js-jqueryui-multiselect-LICENSE
mv apps/viewer/COPYING viewer-COPYING
mv apps/workflowengine/composer/composer/LICENSE workflowengine-LICENSE
mv COPYING nextcloud-LICENSE
mv core/fonts/LICENSE_OFL.txt fonts-LICENSE
mv core/vendor/zxcvbn/LICENSE.txt zxcvbn-LICENSE
mv lib/composer/composer/LICENSE composer-LICENSE
# 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
: Check for leftover license files
find . -mindepth 2 \( -name '*LICENSE*' -o -name '*LICENCE*' -o -name '*COPYING*' \)
nb=$( find . -mindepth 2 \( -name '*LICENSE*' -o -name '*LICENCE*' -o -name '*COPYING*' \) | wc -l )
if [ $nb -gt 0 ]
then
false Found unexpected licenses to verify
false found unexpected licenses to verify
fi
@ -288,10 +449,10 @@ done
install -pm 755 occ %{buildroot}%{_datadir}/%{name}
# symlink config dir
ln -s ../../../%{_sysconfdir}/%{name} %{buildroot}%{_datadir}/%{name}/config
ln -sf %{_sysconfdir}/%{name} %{buildroot}%{_datadir}/%{name}/config
# nextcloud looks for ca-bundle.crt in config dir
ln -s ../pki/ca-trust/extracted/pem/tls-ca-bundle.pem %{buildroot}%{_sysconfdir}/%{name}/ca-bundle.crt
ln -sf %{_sysconfdir}/pki/tls/certs/ca-bundle.crt %{buildroot}%{_sysconfdir}/%{name}/ca-bundle.crt
# set default config
install -pm 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/%{name}/config.php
@ -314,25 +475,10 @@ 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 || :
@ -354,12 +500,11 @@ if [ $1 -eq 0 ]; then
fi
%files
%doc AUTHORS README.%{distro} MIGRATION.%{distro} config/config.sample.php
%doc AUTHORS README.fedora MIGRATION.fedora 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}

View file

@ -7,6 +7,5 @@ prepare:
package: nextcloud
environment:
PACKAGES: nextcloud
VERSION: 20.0.2 RC1
execute:
how: tmt

View file

@ -1 +1 @@
SHA512 (nextcloud-34.0.3.tar.bz2) = 3463dbbdeae5275a0791b115cf86aed41c5a138fdd19bb32ec12837a6698106b6f172e24fb1264a2d4e20b2b805bcf7841b2338e4e02f1fd5394fbed830cc695
SHA512 (nextcloud-19.0.13.tar.bz2) = fd144a0d42617b33388bf1127673adb2e523ef04804021ac90e8e679abcb61d839dcba61270108c8ac62093712e6bffcb83a1caef0c810598a108a57d8bd85d9

View file

@ -4,106 +4,79 @@ import os
import json
import re
import subprocess
from colorama import Fore, Style
defaultconstraint = 2
excludes = ('php')
basedir = '..'
srcdir = os.path.join(basedir, 'nextcloud')
outdir = basedir
jsonfiles = ('3rdparty/composer.json', 'apps/files_external/3rdparty/composer.json')
constraintmap = ('any', 'loose', 'strict', 'exact')
def eval_version(version, constraint=3):
version = version.replace('v', '')
if version == '*':
constraint = 0
version = '0'
elif version.startswith('^'):
constraint = 1
version = version.strip('^')
elif version.startswith('~'):
constraint = 2
version = version.strip('~')
if re.search('[^.0-9]', version):
print('Unparseable version:', version)
version = '0.0.0'
constraint = 3
return version, constraint
def get_requires(name, version, constraint):
splitver = version.split('.')
version = version.split('.')
if constraint == 0:
requires = 'php-composer(' + name + ')'
elif constraint == 1:
wipe = False
for i in range(0, len(splitver)):
if splitver[i] == '0' or wipe:
splitver[i] = '0'
for i in range(0, len(version)):
if version[i] == '0' or wipe:
version[i] = '0'
else:
splitver[i] = str(int(splitver[i]) + 1)
version[i] = str(int(version[i]) + 1)
wipe = True
requires = '(php-composer(' + name + ') >= ' + version + ' with php-composer(' + name + ') < ' + '.'.join(splitver) + ')'
requires = '(php-composer(' + name + ') >= ' + minver + ' with php-composer(' + name + ') < ' + '.'.join(version) + ')'
elif constraint == 2:
splitver[-1] = '0'
splitver[-2] = str(int(splitver[-2]) + 1)
requires = '(php-composer(' + name + ') >= ' + version + ' with php-composer(' + name + ') < ' + '.'.join(splitver) + ')'
version[-1] = '0'
version[-2] = str(int(version[-2]) + 1)
requires = '(php-composer(' + name + ') >= ' + minver + ' with php-composer(' + name + ') < ' + '.'.join(version) + ')'
else:
requires = 'php-composer(' + name + ') = ' + version
requires = 'php-composer(' + name + ') = ' + minver
return requires
def repoquery(query):
stdout = subprocess.run(['dnf', 'repoquery', '-q', '--whatprovides', requires], stdout=subprocess.PIPE, universal_newlines=True, check = True).stdout
return stdout
requirefile = open(os.path.join(outdir, 'require.pkgtmp'), 'w')
requirefile.write('# PHP composer dependencies\n')
providefile = open(os.path.join(outdir, 'provide.pkgtmp'), 'w')
providefile.write('# Bundled libraries\n')
for file in jsonfiles:
requirefile.write(f"# From {file}\n")
providefile.write(f"# From {file}\n")
with open(os.path.join(srcdir, file)) as f:
jsondata = json.load(f)
packages = jsondata['require'].items()
print(f"\n{Style.BRIGHT}Parsing '{file}'...{Style.RESET_ALL}")
for name, verrange in packages:
with open('3rdparty/composer.json') as f:
#with open('apps/files_external/3rdparty/composer.json') as f:
depdata = json.load(f)
for name, version in depdata['require'].items():
if name in excludes:
print(f"{name} {verrange} -> in exclude list, skipping.")
print('Skipping ' + name + ': Excluded')
continue
print(name, version, ':')
version = version.replace('v', '')
if version == '*':
constraint = 0
version = '0'
elif version.startswith('^'):
constraint = 1
version = version.strip('^')
elif version.startswith('~'):
constraint = 2
version = version.strip('~')
else:
constraint = defaultconstraint
version, constraint = eval_version(verrange, defaultconstraint)
if re.search('[^.0-9]', version):
print('Unparseable version:', version)
continue
else:
minver = version
requires = get_requires(name, version, constraint)
package = repoquery(requires)
print(' Constraint (' + constraintmap[constraint] + '): ' + requires)
color = Fore.GREEN
found = True
package = repoquery(requires)
while len(package) == 0:
color = Fore.YELLOW
constraint -= 1
if constraint < 0:
constraint = 0
color = Fore.RED
package = 'none\n'
found = False
break
requires = get_requires(name, version, constraint)
print(' Constraint (' + constraintmap[constraint] + '): ' + requires)
package = repoquery(requires)
print(f"{name} {verrange} -> {Style.BRIGHT}{color}{package.rstrip()}{Style.RESET_ALL} ({constraintmap[constraint]})")
if found:
requirefile.write(f"Requires: {requires}\n")
if len(package) == 0:
print(' -> no providing package found\n')
else:
providefile.write(f"Provides: bundled(php-composer({name})) = {version}\n")
print(' -> ' + package)