Merge branch 'rawhide' into f40

This commit is contained in:
Andrew Bauer 2024-06-24 10:46:49 -05:00
commit bf4374caee
5 changed files with 103 additions and 91 deletions

View File

@ -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-<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 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

View File

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

@ -13,6 +13,9 @@ Alias /nextcloud/apps-appstore /var/lib/nextcloud/apps
Alias /nextcloud/assets /var/lib/nextcloud/assets
Alias /nextcloud /usr/share/nextcloud
# This must be set explicitly in some environments, such as el9
AddType text/javascript .mjs
# Allows compliant CalDAV / CardDAV clients to be configured using only
# the domain name. For more details see # http://tools.ietf.org/html/rfc6764

View File

@ -0,0 +1,34 @@
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($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

@ -1,3 +1,9 @@
%if 0%{?fedora}
%global distro fedora
%else
%global distro epel
%endif
Name: nextcloud
Version: 28.0.6
Release: %autorelease
@ -36,14 +42,12 @@ Source303: %{name}-MIGRATION.fedora
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
Patch2: nextcloud-integritycheck-exclusion.patch
BuildArch: noarch
# For the systemd macros
%if 0%{?fedora} > 29
BuildRequires: systemd-rpm-macros
%else
BuildRequires: systemd
%endif
# expand pear macros on install
BuildRequires: php-pear
@ -88,7 +92,20 @@ Requires: php-zip
Requires: %{_sysconfdir}/pki/tls/certs/ca-bundle.crt
# Bundled composer libraries
# generated with utils/get-bundled-versions.py
# tar xf nextcloud-28.0.6.tar.bz2
# cd nextcloud
# ../utils/get-bundled-versions.py
# many of these can be unbundled
# I think utils/get-composer-requires.py is a tool to check if these are available on Fedora
Provides: bundled(php-composer(hexogen/kdtree)) = 0.2.5
Provides: bundled(php-composer(icewind/smb)) = 3.5.4
Provides: bundled(php-composer(icewind/streams)) = 0.7.7
Provides: bundled(php-composer(bamarni/composer-bin-plugin)) = 1.8.2
Provides: bundled(php-composer(adhocore/cli)) = 1.6.1
Provides: bundled(php-composer(nextcloud/openapi-extractor)) = dev-main
Provides: bundled(php-composer(nikic/php-parser)) = 4.17.1
Provides: bundled(php-composer(phpstan/phpdoc-parser)) = 1.24.2
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.3
@ -99,21 +116,13 @@ Provides: bundled(php-composer(amphp/sync)) = 1.4.2
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)) = 0.4.1
Provides: bundled(php-composer(rubix/ml)) = 2.1.1
Provides: bundled(php-composer(rubix/tensor)) = 2.2.3
Provides: bundled(php-composer(symfony/polyfill-mbstring)) = 1.27.0
Provides: bundled(php-composer(symfony/polyfill-php73)) = 1.26.0
Provides: bundled(php-composer(symfony/polyfill-php80)) = 1.27.0
Provides: bundled(php-composer(adhocore/cli)) = 1.6.1
Provides: bundled(php-composer(nextcloud/openapi-extractor)) = 1.6.1
Provides: bundled(php-composer(nikic/php-parser)) = 4.17.1
Provides: bundled(php-composer(phpstan/phpdoc-parser)) = 1.24.2
Provides: bundled(php-composer(hexogen/kdtree)) = 0.2.5
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.4
Provides: bundled(php-composer(icewind/streams)) = 0.7.7
Provides: bundled(php-composer(bamarni/composer-bin-plugin)) = 1.8.2
Provides: bundled(php-composer(aws/aws-crt-php)) = 1.0.2
Provides: bundled(php-composer(aws/aws-sdk-php)) = 3.240.8
Provides: bundled(php-composer(bantu/ini-get-wrapper)) = 1.0.1
@ -156,7 +165,7 @@ 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.2.1
Provides: bundled(php-composer(phpseclib/phpseclib)) = 2.0.45
Provides: bundled(php-composer(phpseclib/phpseclib)) = 2.0.47
Provides: bundled(php-composer(pimple/pimple)) = 3.5.0
Provides: bundled(php-composer(psr/cache)) = 3.0.0
Provides: bundled(php-composer(psr/clock)) = 1.0.0
@ -305,10 +314,13 @@ find . -name .github -type d -prune -exec rm -r {} \; -print
sed -i -e 's#./\(occ upgrade\)#sudo -u apache php /usr/share/nextcloud/\1#' core/templates/update.admin.php
# 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
@ -318,6 +330,39 @@ find -wholename "*/composer/LICENSE" -exec mv {} composer-LICENSE \;
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
%check
# Make sure there are no license files left over
: Check for leftover license files
@ -421,7 +466,7 @@ 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)