Compare commits

..

No commits in common. "rawhide" and "f26" have entirely different histories.

34 changed files with 1237 additions and 608 deletions

View file

@ -1 +0,0 @@
1

5
.gitignore vendored
View file

@ -1,3 +1,2 @@
/nextcloud-*.tar.bz2
/nextcloud
*.pkgtmp
/nextcloud-10.0.3.tar.bz2
/nextcloud-10.0.4.tar.bz2

View file

@ -1,21 +0,0 @@
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->getSystemValueBool('debug', false));
+ return true;
}
// Check if the instance can be migrated

View file

@ -1,9 +0,0 @@
diff -Naur a/occ b/occ
--- a/occ 2020-10-24 10:37:44.000000000 +0200
+++ b/occ 2020-11-10 19:39:56.523178958 +0100
@@ -1,4 +1,4 @@
-#!/usr/bin/env php
+#!/usr/bin/php
<?php
/**
* Copyright (c) 2013 Thomas Müller <thomas.mueller@tmit.eu>

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

@ -1,11 +0,0 @@
### Installation, setup & updating
Nextcloud requires some additional steps after installation/upgrade that are not part of the package update process. After installation/update, visiting your install's website will automatically trigger the internal Nextcloud updater which will take care of these steps. For more details, see this package's documentation files.
### Other versions
[modular nextcloud package Fedora and CentOS/RHEL](https://src.fedoraproject.org/modules/nextcloud) is over
https://fedoraproject.org/wiki/Changes/RetireModularity
Once Fedora Linux 38 reaches end of life, we will retire the Fedora instance of Module Build Service.

126
changelog
View file

@ -1,126 +0,0 @@
* 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
- 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
* 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> - 20.0.7-1
- Update to 20.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
- 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> - 20.0.3-1
- Update to 20.0.3
* 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
- 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
* 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
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 19.0.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sun Jun 28 2020 Ivan Chavero <ichavero@redhat.com> - 19.0.0-1
- Update to Nextcloud 19.0.0
- Update licenses
* Thu Apr 30 2020 Ivan Chavero <ichavero@redhat.com> - 18.0.4-1
- Update to Nextcloud 18.0.4
* Sat Feb 08 2020 Ivan Chavero <ichavero@redhat.com> - 18.0.0-1
- Refactor spec file
- Update to Nextcoud 18.0.0
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 10.0.4-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 10.0.4-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 10.0.4-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Wed Jan 9 2019 Remi Collet <remi@remirepo.net> - 10.0.4-6
- drop dependency on php-password-compat #1658730
- allow php-smbclient 1.0.0 #1663672
- allow doctrine/dbal 2.x
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 10.0.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 10.0.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 10.0.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Mar 25 2017 Shawn Iwinski <shawn.iwinski@gmail.com> - 10.0.4-2
- Add max versions to dependencies to limit each to 1 major version
- Update some dependencies to use php-composer(*) instead of package names
- Prepare for php-composer(google/apiclient) version 2 and new version 1 package
* Tue Feb 28 2017 James Hogarth <james.hogarth@gmail.com> - 10.0.4-1
- update to 10.0.4
- Add migration from owncloud documentation
- Add systemd timer for background jobs
* Wed Feb 08 2017 James Hogarth <james.hogarth@gmail.com> - 10.0.3-1
- update to 10.0.3
* Thu Oct 06 2016 James Hogarth <james.hogarth@gmail.com> - 10.0.1-1
- update to 10.0.1
* Mon Aug 01 2016 James Hogarth <james.hogarth@gmail.com> - 9.0.53-5
- Use lua to have a common srpm between epel7 and fedora
* Fri Jul 29 2016 James Hogarth <james.hogarth@gmail.com> - 9.0.53-4
- Don't unbundle javascript on EPEL7 due to versioning issues
* Fri Jul 29 2016 James Hogarth <james.hogarth@gmail.com> - 9.0.53-3
- Unbundle javascript libraries from core where possible
* Tue Jul 26 2016 James Hogarth <james.hogarth@gmail.com> - 9.0.53-2
- Update the autoloader to use the path from the approved package
* Tue Jul 19 2016 James Hogarth <james.hogarth@gmail.com> - 9.0.53-1
- New release 9.0.53
* Thu Jul 14 2016 James Hogarth <james.hogarth@gmail.com> - 9.0.52-1
- Initial nextcloud build

View file

@ -1,17 +0,0 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_testing
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

@ -0,0 +1,94 @@
diff --git a/console.php b/console.php
index b2724db..149c265 100644
--- a/console.php
+++ b/console.php
@@ -31,22 +31,6 @@ use Symfony\Component\Console\Output\ConsoleOutput;
define('OC_CONSOLE', 1);
-// Show warning if a PHP version below 5.4.0 is used, this has to happen here
-// because base.php will already use 5.4 syntax.
-if (version_compare(PHP_VERSION, '5.4.0') === -1) {
- echo 'This version of Nextcloud requires at least PHP 5.4.0'.PHP_EOL;
- echo 'You are currently running ' . PHP_VERSION . '. Please update your PHP version.'.PHP_EOL;
- return;
-}
-
-// Show warning if PHP 7.1 is used as Nextcloud is not compatible with PHP 7.1 for now
-// @see https://github.com/nextcloud/docker-ci/issues/10
-if (version_compare(PHP_VERSION, '7.1.0') !== -1) {
- echo 'This version of Nextcloud is not compatible with PHP 7.1.<br/>';
- echo 'You are currently running ' . PHP_VERSION . '.';
- return;
-}
-
function exceptionHandler($exception) {
echo "An unhandled exception has been thrown:" . PHP_EOL;
echo $exception;
diff --git a/cron.php b/cron.php
index 4473dba..7a4e1a6 100644
--- a/cron.php
+++ b/cron.php
@@ -30,20 +30,6 @@
*
*/
-// Show warning if a PHP version below 5.4.0 is used
-if (version_compare(PHP_VERSION, '5.4.0') === -1) {
- echo 'This version of Nextcloud requires at least PHP 5.4.0<br/>';
- echo 'You are currently running ' . PHP_VERSION . '. Please update your PHP version.';
- return;
-}
-
-// Show warning if PHP 7.1 is used as Nextcloud is not compatible with PHP 7.1 for now
-// @see https://github.com/nextcloud/docker-ci/issues/10
-if (version_compare(PHP_VERSION, '7.1.0') !== -1) {
- echo 'This version of Nextcloud is not compatible with PHP 7.1.<br/>';
- echo 'You are currently running ' . PHP_VERSION . '.';
- return;
-}
try {
diff --git a/index.php b/index.php
index e72d38c..29920d7 100644
--- a/index.php
+++ b/index.php
@@ -25,22 +25,6 @@
*
*/
-// Show warning if a PHP version below 5.4.0 is used, this has to happen here
-// because base.php will already use 5.4 syntax.
-if (version_compare(PHP_VERSION, '5.4.0') === -1) {
- echo 'This version of Nextcloud requires at least PHP 5.4.0<br/>';
- echo 'You are currently running ' . PHP_VERSION . '. Please update your PHP version.';
- return;
-}
-
-// Show warning if PHP 7.1 is used as Nextcloud is not compatible with PHP 7.1 for now
-// @see https://github.com/nextcloud/docker-ci/issues/10
-if (version_compare(PHP_VERSION, '7.1.0') !== -1) {
- echo 'This version of Nextcloud is not compatible with PHP 7.1.<br/>';
- echo 'You are currently running ' . PHP_VERSION . '.';
- return;
-}
-
try {
require_once __DIR__ . '/lib/base.php';
diff --git a/settings/Controller/CheckSetupController.php b/settings/Controller/CheckSetupController.php
index 86b9b76..ac42177 100644
--- a/settings/Controller/CheckSetupController.php
+++ b/settings/Controller/CheckSetupController.php
@@ -212,9 +212,7 @@ class CheckSetupController extends Controller {
* @return bool
*/
protected function isPhpOutdated() {
- if (version_compare(PHP_VERSION, '5.5.0') === -1) {
- return true;
- }
+ // PHP supported in distribution
return false;
}

View file

@ -0,0 +1,43 @@
diff --git a/core/templates/update.admin.php b/core/templates/update.admin.php
index 87f9396..368a533 100644
--- a/core/templates/update.admin.php
+++ b/core/templates/update.admin.php
@@ -37,7 +37,7 @@
<input class="updateButton" type="button" value="<?php p($l->t('Start update')) ?>">
<div class="infogroup">
<?php p($l->t('To avoid timeouts with larger installations, you can instead run the following command from your installation directory:')) ?>
- <pre>./occ upgrade</pre>
+ <pre>sudo -u apache php /usr/share/nextcloud/occ upgrade</pre>
</div>
</div>
diff --git a/core/templates/update.use-cli.php b/core/templates/update.use-cli.php
index 52d40cd..945d4d9 100644
--- a/core/templates/update.use-cli.php
+++ b/core/templates/update.use-cli.php
@@ -7,8 +7,10 @@
} else {
p($l->t('Please use the command line updater because automatic updating is disabled in the config.php.'));
} ?><br><br>
- <?php
- print_unescaped($l->t('For help, see the <a target="_blank" rel="noreferrer" href="%s">documentation</a>.', [link_to_docs('admin-cli-upgrade')])); ?><br><br>
+ <code>
+sudo -u apache php /usr/share/nextcloud/occ upgrade
+</code>
+ <br><br>
</div>
</div>
</div>
diff --git a/updater/index.php b/updater/index.php
index 017ca70..085c250 100644
--- a/updater/index.php
+++ b/updater/index.php
@@ -1830,7 +1830,7 @@ if(strpos($updaterUrl, 'index.php') === false) {
var el = document.getElementById('step-maintenance-mode')
.getElementsByClassName('output')[0];
if (keepActive) {
- el.innerHTML = 'Maintenance mode will kept active.<br>Now trigger the migration via command line: <code>./occ upgrade</code><br>';
+ el.innerHTML = 'Maintenance mode will kept active.<br>Now trigger the migration via command line: <code>sudo -u apache php /usr/share/nextcloud/occ upgrade</code><br>';
successStep('step-maintenance-mode');
currentStep('step-done');
performStep(11, performStepCallbacks[11]);

View file

@ -0,0 +1,22 @@
From 463e2ea15d6fb71b96363d60c7e4bdc2c020eddf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20M=C3=BCller?= <thomas.mueller@tmit.eu>
Date: Mon, 4 Jul 2016 13:47:03 +0200
Subject: [PATCH] Initialize array elements properly
---
lib/private/App/InfoParser.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/private/App/InfoParser.php b/lib/private/App/InfoParser.php
index c158e5c..843ed02 100644
--- a/lib/private/App/InfoParser.php
+++ b/lib/private/App/InfoParser.php
@@ -141,7 +141,7 @@ function xmlToArray($xml) {
$totalElement = count($xml->{$element});
if (!isset($array[$element])) {
- $array[$element] = "";
+ $array[$element] = $totalElement > 1 ? [] : "";
}
/** @var \SimpleXMLElement $node */
// Has attributes

View file

@ -0,0 +1,15 @@
diff --git a/apps/files_external/lib/Lib/Storage/AmazonS3.php b/apps/files_external/lib/Lib/Storage/AmazonS3.php
index 4bb4312..85e04a3 100644
--- a/apps/files_external/lib/Lib/Storage/AmazonS3.php
+++ b/apps/files_external/lib/Lib/Storage/AmazonS3.php
@@ -35,10 +35,6 @@
namespace OCA\Files_External\Lib\Storage;
-set_include_path(get_include_path() . PATH_SEPARATOR .
- \OC_App::getAppPath('files_external') . '/3rdparty/aws-sdk-php');
-require 'aws-autoloader.php';
-
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
use Icewind\Streams\IteratorDirectory;

View file

@ -0,0 +1,13 @@
diff --git a/lib/private/IntegrityCheck/Checker.php b/lib/private/IntegrityCheck/Checker.php
index d4038f8..7901a2c 100644
--- a/lib/private/IntegrityCheck/Checker.php
+++ b/lib/private/IntegrityCheck/Checker.php
@@ -109,7 +109,7 @@ class Checker {
* too prominent. So please do not add it to config.sample.php.
*/
if ($this->config !== null) {
- $isIntegrityCheckDisabled = $this->config->getSystemValue('integrity.check.disabled', false);
+ $isIntegrityCheckDisabled = $this->config->getSystemValue('integrity.check.disabled', true);
} else {
$isIntegrityCheckDisabled = false;
}

View file

@ -0,0 +1,106 @@
diff --git a/core/Command/Maintenance/UpdateHtaccess.php b/core/Command/Maintenance/UpdateHtaccess.php
deleted file mode 100644
index 2185078..0000000
--- a/core/Command/Maintenance/UpdateHtaccess.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Lukas Reschke <lukas@statuscode.ch>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-namespace OC\Core\Command\Maintenance;
-
-use InvalidArgumentException;
-use OC\Setup;
-use OCP\IConfig;
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-
-class UpdateHtaccess extends Command {
-
- protected function configure() {
- $this
- ->setName('maintenance:update:htaccess')
- ->setDescription('Updates the .htaccess file');
- }
-
- protected function execute(InputInterface $input, OutputInterface $output) {
- \OC\Setup::updateHtaccess();
- $output->writeln('.htaccess has been updated');
- return 0;
- }
-}
diff --git a/core/register_command.php b/core/register_command.php
index 6f20769..09535fe 100644
--- a/core/register_command.php
+++ b/core/register_command.php
@@ -60,7 +60,7 @@ if (\OC::$server->getConfig()->getSystemValue('installed', false)) {
$application->add(new OC\Core\Command\App\Enable(\OC::$server->getAppManager()));
$application->add(new OC\Core\Command\App\GetPath());
$application->add(new OC\Core\Command\App\ListApps(\OC::$server->getAppManager()));
-
+
$application->add(new OC\Core\Command\TwoFactorAuth\Enable(
\OC::$server->getTwoFactorAuthManager(), \OC::$server->getUserManager()
));
@@ -126,7 +126,6 @@ if (\OC::$server->getConfig()->getSystemValue('installed', false)) {
new \OC\Repair(\OC\Repair::getRepairSteps(), \OC::$server->getEventDispatcher()), \OC::$server->getConfig(),
\OC::$server->getEventDispatcher()));
$application->add(new OC\Core\Command\Maintenance\SingleUser(\OC::$server->getConfig()));
- $application->add(new OC\Core\Command\Maintenance\UpdateHtaccess());
$application->add(new OC\Core\Command\Upgrade(\OC::$server->getConfig(), \OC::$server->getLogger()));
diff --git a/lib/private/Setup.php b/lib/private/Setup.php
index 3b3a57c..cd56795 100644
--- a/lib/private/Setup.php
+++ b/lib/private/Setup.php
@@ -379,10 +379,6 @@ class Setup {
// out that this is indeed an ownCloud data directory
file_put_contents($config->getSystemValue('datadirectory', \OC::$SERVERROOT.'/data').'/.ocdata', '');
- // Update .htaccess files
- Setup::updateHtaccess();
- Setup::protectDataDirectory();
-
//try to write logtimezone
if (date_default_timezone_get()) {
$config->setSystemValue('logtimezone', date_default_timezone_get());
diff --git a/lib/private/Updater.php b/lib/private/Updater.php
index 609e965..85d4869 100644
--- a/lib/private/Updater.php
+++ b/lib/private/Updater.php
@@ -237,14 +237,6 @@ class Updater extends BasicEmitter {
throw new \Exception('Updates between multiple major versions and downgrades are unsupported.');
}
- // Update .htaccess files
- try {
- Setup::updateHtaccess();
- Setup::protectDataDirectory();
- } catch (\Exception $e) {
- throw new \Exception($e->getMessage());
- }
-
// create empty file in data dir, so we can later find
// out that this is indeed an ownCloud data directory
// (in case it didn't exist before)

View file

@ -0,0 +1,25 @@
diff --git a/apps/files_external/ajax/oauth1.php b/apps/files_external/ajax/oauth1.php
index e363e6c..d2aefbc 100644
--- a/apps/files_external/ajax/oauth1.php
+++ b/apps/files_external/ajax/oauth1.php
@@ -23,7 +23,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
-require_once __DIR__ . '/../3rdparty/Dropbox/autoload.php';
OCP\JSON::checkAppEnabled('files_external');
OCP\JSON::checkLoggedIn();
diff --git a/apps/files_external/lib/Lib/Storage/Dropbox.php b/apps/files_external/lib/Lib/Storage/Dropbox.php
index f0f62f9..1b20a62 100644
--- a/apps/files_external/lib/Lib/Storage/Dropbox.php
+++ b/apps/files_external/lib/Lib/Storage/Dropbox.php
@@ -34,8 +34,6 @@ use Icewind\Streams\IteratorDirectory;
use Icewind\Streams\RetryWrapper;
use OCP\Files\StorageNotAvailableException;
-require_once __DIR__ . '/../../../3rdparty/Dropbox/autoload.php';
-
class Dropbox extends \OC\Files\Storage\Common {
private $dropbox;

View file

@ -0,0 +1,37 @@
diff --git a/apps/files_external/ajax/oauth2.php b/apps/files_external/ajax/oauth2.php
index 2d1fae2..d8dac91 100644
--- a/apps/files_external/ajax/oauth2.php
+++ b/apps/files_external/ajax/oauth2.php
@@ -26,9 +26,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
-set_include_path(get_include_path().PATH_SEPARATOR.
- \OC_App::getAppPath('files_external').'/3rdparty/google-api-php-client/src');
-require_once 'Google/autoload.php';
OCP\JSON::checkAppEnabled('files_external');
OCP\JSON::checkLoggedIn();
diff --git a/apps/files_external/lib/Lib/Storage/Google.php b/apps/files_external/lib/Lib/Storage/Google.php
index 0b617aa..d40ac36 100644
--- a/apps/files_external/lib/Lib/Storage/Google.php
+++ b/apps/files_external/lib/Lib/Storage/Google.php
@@ -38,10 +38,6 @@ use GuzzleHttp\Exception\RequestException;
use Icewind\Streams\IteratorDirectory;
use Icewind\Streams\RetryWrapper;
-set_include_path(get_include_path().PATH_SEPARATOR.
- \OC_App::getAppPath('files_external').'/3rdparty/google-api-php-client/src');
-require_once 'Google/autoload.php';
-
class Google extends \OC\Files\Storage\Common {
private $client;
@@ -462,7 +458,6 @@ class Google extends \OC\Files\Storage\Common {
$response = $client->get($downloadUrl, [
'headers' => $httpRequest->getRequestHeaders(),
'stream' => true,
- 'verify' => realpath(__DIR__ . '/../../../3rdparty/google-api-php-client/src/Google/IO/cacerts.pem'),
]);
} catch (RequestException $e) {
if(!is_null($e->getResponse())) {

View file

@ -116,7 +116,7 @@ from owncloud to nextcloud, but if the database isn't renamed then this too much
credentials and name in the config file are correct before moving on to the next step.
```
cp /etc/owncloud/config.php /etc/nextcloud/config.php
sed -i 's/owncloud/nextcloud/g' /etc/nextcloud/config.php
sed -i '/owncloud/nextcloud/g' /etc/nextcloud/config.php
```
### Enable the nextcloud interface on httpd

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

@ -0,0 +1,13 @@
diff --git a/settings/Controller/SecuritySettingsController.php b/settings/Controller/SecuritySettingsController.php
index 88b2803..5c6f174 100644
--- a/settings/Controller/SecuritySettingsController.php
+++ b/settings/Controller/SecuritySettingsController.php
@@ -60,7 +60,7 @@ protected function returnSuccess() {
* @return array
*/
public function trustedDomains($newTrustedDomain) {
- $trustedDomains = $this->config->getSystemValue('trusted_domains');
+ $trustedDomains = $this->config->getSystemValue('trusted_domains', []);
$trustedDomains[] = $newTrustedDomain;
$this->config->setSystemValue('trusted_domains', $trustedDomains);

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

@ -12,7 +12,6 @@
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer always;
# set max upload size

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,24 @@
[nextcloud]
user = apache
group = apache
listen = /run/php-fpm/nextcloud.sock
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/nextcloud-slow.log
php_admin_value[error_log] = /var/log/php-fpm/nextcloud-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
php_value[upload_max_filesize] = 10G
php_value[post_max_size] = 10G
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

View file

@ -0,0 +1,68 @@
<?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"
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

@ -15,10 +15,8 @@ php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
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

File diff suppressed because it is too large Load diff

View file

@ -1,12 +0,0 @@
summary: Basic occ functionality
discover:
how: fmf
url: https://src.fedoraproject.org/tests/nextcloud
prepare:
how: install
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-10.0.4.tar.bz2) = 4bb7a760b56088780eee7be83dd4c645703095f8bf11818f3d4cbf52c6636637d8724c3d972df068c54b0d98836ae29cd7c206e6fb5845ee646aeacc098e701d

View file

@ -1,26 +0,0 @@
#!/bin/env python
import os
import json
for root, dirs, files in os.walk("apps"):
for file in files:
if file == 'composer.lock':
with open(os.path.join(root, file)) as f:
lockdata = json.load(f)
try:
for i in lockdata['packages']:
print("Provides: bundled(php-composer(" + i['name'] + ")) = " + i['version'].strip('v'))
except KeyError:
pass
for root, dirs, files in os.walk("3rdparty"):
for file in files:
if file == 'composer.lock':
with open(os.path.join(root, file)) as f:
lockdata = json.load(f)
try:
for i in lockdata['packages']:
print("Provides: bundled(php-composer(" + i['name'] + ")) = " + i['version'].strip('v'))
except KeyError:
pass

View file

@ -1,109 +0,0 @@
#!/bin/env python
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('.')
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'
else:
splitver[i] = str(int(splitver[i]) + 1)
wipe = True
requires = '(php-composer(' + name + ') >= ' + version + ' with php-composer(' + name + ') < ' + '.'.join(splitver) + ')'
elif constraint == 2:
splitver[-1] = '0'
splitver[-2] = str(int(splitver[-2]) + 1)
requires = '(php-composer(' + name + ') >= ' + version + ' with php-composer(' + name + ') < ' + '.'.join(splitver) + ')'
else:
requires = 'php-composer(' + name + ') = ' + version
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:
if name in excludes:
print(f"{name} {verrange} -> in exclude list, skipping.")
continue
version, constraint = eval_version(verrange, defaultconstraint)
requires = get_requires(name, version, constraint)
package = repoquery(requires)
color = Fore.GREEN
found = True
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)
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")
else:
providefile.write(f"Provides: bundled(php-composer({name})) = {version}\n")