Compare commits

...
Sign in to create a new pull request.

127 commits

Author SHA1 Message Date
Andrew Bauer
9c7ef9445d 34.0.3 release RHBZ#2515297 2026-08-16 15:57:47 -05:00
Andrew Bauer
4f892068ec 34.0.2 release RHBZ#2506423 2026-07-23 15:22:49 -05:00
Fedora Release Engineering
eb3b5fd33e Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-16 09:32:38 +00:00
Andrew Bauer
f0ed8f15a9 33.0.6 release 2026-06-26 14:53:11 -05:00
Brian J. Murrell
db98a32e09 Dynamically determine which .map file to update the occ upgrade command in
Currently, the .map file in which the message exists to inform the user
how to run the occ upgrade command is hard-coded.  This can change
from release to release and thus is quite fragile.

Instead, figure out which file to update by searching for the "occ upgrade"
command in all of the .map files and use the result of that search in the
update command.

Signed-off-by: Brian J. Murrell <brian@interlinx.bc.ca>
2026-06-09 22:31:01 +00:00
Andrew Bauer
b701ace299 33.0.5 Release 2026-06-08 09:23:08 -05:00
Andrew Bauer
796f9d876b 33.0.4 Release RHBZ#2482794 2026-05-28 13:32:26 -05:00
Andrew Bauer
5c14182672 33.0.3 Release RHBZ#2454311 2026-05-02 11:06:29 -05:00
Andrew Bauer
0224438526 fix cli upgrade advice 2026-04-18 07:49:00 -05:00
Andrew Bauer
a31e3cccd8 33.0.1 release RHBZ#2451773 2026-03-29 15:42:22 -05:00
Andrew Bauer
5fb288a672 32.0.6 release RHBZ#2440650 2026-02-21 16:07:58 -06:00
Andrew Bauer
c4d346f41d 32.0.5 Release RHBZ#2430382 2026-01-17 09:32:35 -06:00
Andrew Bauer
44fa2177d7 32.0.5 Release RHBZ#2430382 2026-01-17 09:16:59 -06:00
Fedora Release Engineering
cd2bac1d17 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-16 22:05:49 +00:00
Andrew Bauer
d67faf73ac 32.0.3 release, fixes RHBZ# 2420196 RHBZ# 2420197 RHBZ# 2420198 RHBZ# 2421368 2025-12-12 08:30:53 -06:00
Andrew Bauer
c34e89c698 32.0.2 release RHBZ#2416087 RHBZ#2415750 RHBZ#2415751 RHBZ#2415752 RHBZ#2415753 2025-11-23 19:43:04 -06:00
Andrew Bauer
d625665feb 32.0.1 release RHBZ#2399899 2025-10-25 15:31:28 -05:00
Andrew Bauer
f267212179 31.0.9 release RHBZ#2388493 RHBZ#2389830 RHBZ#2389831 RHBZ#2389842 RHBZ#2389843 RHBZ#2389814 RHBZ#2389815 2025-09-20 14:28:40 -05:00
Andrew Bauer
cff27361a1 31.0.7 release, fix link to cert bundle RHBZ#2372407 RHBZ#2383716 2025-08-03 16:03:15 -05:00
Fedora Release Engineering
7d4cd2558a Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 22:48:11 +00:00
Andrew Bauer
9dc14f5076 31.0.6 release RHBZ#2372407 2025-07-05 20:23:32 -05:00
Andrew Bauer
f3e2eb4218 31.0.5 release RHBZ#2364462 RHBZ#2366729 RHBZ#2366735 2025-05-26 08:02:07 -05:00
Andrew Bauer
7ab2f104e8 31.04 release RHBZ#2359048 2025-04-19 07:53:07 -05:00
Andrew Bauer
ab682ab5e5 31.0.2 release RHBZ#2345769 RHBZ#2345775 RHBZ#2350414 2025-03-25 12:07:53 -05:00
Andrew Bauer
05c35a1326 31.0.0 release RHBZ#2324262 RHBZ#2336564 2025-03-02 16:29:20 -06:00
Andrew Bauer
7b50c912fe escape period 2025-02-07 07:02:02 -06:00
Andrew Bauer
ced6af0351 use composer-generators to autogenerate php-composer provides 2025-02-03 09:41:01 -06:00
Andrew Bauer
8c7282c8e7 delete bodhi template file 2025-01-23 09:09:24 -06:00
Andrew Bauer
2a1247110d 30.0.5 Release 2025-01-23 08:36:12 -06:00
Fedora Release Engineering
cb014a1f22 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-17 20:04:03 +00:00
Andrew Bauer
9af3572351 30.0.4 release RHBZ#2330565 2024-12-30 09:39:20 -06:00
Andrew Bauer
6e2d37e5ab 32.0.2 release RHBZ#2319576 2024-11-10 18:53:44 -06:00
Andrew Bauer
fc8ec08353 29.0.9 release 2024-11-10 18:13:11 -06:00
Andrew Bauer
31f5ea601e require php-pecl-redis6 or php-pecl-redis5 2024-10-18 09:25:09 -05:00
Andrew Bauer
5f0df84f1e nextcloud 29.0.8 release RHBZ#2310687 2024-10-15 10:04:49 -05:00
Andrew Bauer
5977cd12ba prevent accidental building on distros with old php's 2024-09-05 15:47:57 -05:00
Andrew Bauer
2200403fb8 29.0.6 release RHBZ#2305125 RHBZ#2309499 fixes CVE-2024-39338 2024-09-03 15:39:40 -05:00
Andrew Bauer
e26b2416fb 29.0.6 release RHBZ#2305125 RHBZ#2309499 fixes CVE-2024-39338 2024-09-03 15:39:02 -05:00
Andrew Bauer
c65a6fe4f4 29.0.6 release RHBZ#2305125 RHBZ#2309499 fixes CVE-2024-39338 2024-09-03 15:35:51 -05:00
Andrew Bauer
810deff518 29.0.6 release RHBZ#2305125 RHBZ# 2309499 fixes CVE-2024-39338 2024-09-03 14:39:31 -05:00
Miroslav Suchý
11821f6aa8 convert license to SPDX
This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4
2024-09-02 12:08:12 +02:00
Andrew Bauer
ecf38e3889 29.0.5 release 2024-08-23 11:00:22 -05:00
Fedora Release Engineering
990cb3205c Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 19:28:05 +00:00
Andrew Bauer
c455a1050d update httpd directives using latest upstream htaccess content 2024-07-08 12:46:19 -05:00
Andrew Bauer
57e90b3869 update to 29.0.3 release 2024-07-03 12:23:51 -05:00
Andrew Bauer
704431c4ef implement workaround for rhbz#2279608 2024-06-24 10:32:32 -05:00
Sérgio M. Basto
da145e7dfc Update the list of the bundle software 2024-06-24 01:46:54 +01:00
Andrew Bauer
3461401d17 add epel compatibility 2024-06-22 12:29:35 -05:00
Andrew Bauer
cda4bc06db remove nextcloud-fedora-autoloader.php as it is no longer used 2024-06-22 10:11:58 -05:00
Sérgio M. Basto
104a40bc81 Update nextcloud to 28.0.6 2024-06-06 12:36:23 +01:00
Sérgio M. Basto
09b27f7653 Update nextcloud to 28.0.6 2024-06-05 23:29:40 +01:00
Sérgio M. Basto
662a74cdbf Update nextcloud to 28.0.5 and PR #11
PR #11 Many issues fixed by aviram:
- Better HTTPS handling in Apache configs
- Better cron job compatibility with APC
- Better nextcloud-systemd-timer.service
2024-05-19 19:56:13 +01:00
Sérgio M. Basto
5fe8e1ea11 Fix typo and 2 RPM build warnings
absolute symlink: /etc/nextcloud/ca-bundle.crt -> /etc/pki/tls/certs/ca-bundle.crt
absolute symlink: /usr/share/nextcloud/config -> /etc/nextcloud
2024-04-22 18:47:27 +01:00
Sérgio M. Basto
b379529877 Update nextcloud to 28.0.4 2024-04-21 18:45:35 +01:00
Sérgio M. Basto
9c7713f3ea (#2193123) Add requires php-bcmath php-intl php-sodiumm php-opcache 2024-04-20 21:24:49 +01:00
Sérgio M. Basto
69c14756e5 sort requires alphabetically 2024-04-20 21:23:29 +01:00
Iván Chavero
3598940ccc Merge branch 'rawhide' of ssh://pkgs.fedoraproject.org/rpms/nextcloud into rawhide 2024-04-09 15:46:04 -06:00
Iván Chavero
dc8dd19e99 Update to 28.0.3 2024-04-09 15:45:58 -06:00
Fedora Release Engineering
6e4b536f6d Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-25 08:55:50 +00:00
Fedora Release Engineering
5421d59536 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 09:39:19 +00:00
Iván Chavero
63b1c07960 Fix post install bugs
- Fix CAN_INSTALL permissions
- Restart php-fpm
2023-09-12 20:02:00 -06:00
Iván Chavero
ad714e79e2 Update for 27.0.2
- Update configuration file
- Fix missing CAN_INSTALL file for new installations
- Fix upgrade patch
2023-09-11 19:33:37 -06:00
Fedora Release Engineering
4b147e3fae Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 16:37:20 +00:00
Iván Chavero
748b1f68bd Add sources file 2023-05-18 23:15:16 -06:00
Iván Chavero
5e1f4caff2 Update to 26.0.0 2023-05-18 11:06:37 -06:00
Iván Chavero
39224eb82e Update to 25.0.3 2023-02-21 10:40:13 -06:00
Fedora Release Engineering
6ef46d5fe9 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 21:32:23 +00:00
Iván Chavero
1053fdee18 Update for 25.0.1 2022-11-27 17:51:37 -06:00
Avi Alkalay
d94c4af65d
update to 24.0.5 2022-09-26 15:07:47 -05:00
Avi Alkalay
4d543f424e
Set PHP output_buffering to false to kill nextcloud setup warnings 2022-09-26 15:07:46 -05:00
Avi Alkalay
9e3b394cdc
Add new .well-known redirects 2022-09-26 15:07:46 -05:00
Avi Alkalay
8ea470cd32 use FPM’s specific configuration 2022-09-23 05:56:40 -03:00
Iván Chavero
47c19c6313 Update to 24.0.3 2022-07-29 23:56:50 -06:00
Fedora Release Engineering
eb1820eb9f Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 00:31:30 +00:00
Fedora Release Engineering
193ac7f158 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 21:09:34 +00:00
Christopher Engelhard
c0eb2f9d51 Update to 22.1.0 2021-08-05 11:08:54 +02:00
Fedora Release Engineering
560c9df0eb - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 16:05:25 +00:00
Christopher Engelhard
417c20ec5d convert to rpmautospec 2021-07-12 19:42:37 +02:00
Christopher Engelhard
46041201ef Update to 22.0.0 2021-07-06 19:22:29 +02:00
Christopher Engelhard
36c8256f8f Add Referrer-Policy no-referrer always (RHBZ 1933530) 2021-06-30 12:44:02 +02:00
Christopher Engelhard
cc7fd53e0a update changelog for memory limit (RHBZ 1933529) 2021-06-30 12:38:52 +02:00
Christopher Engelhard
150ec7a301 update changelog for httpd/php-fpm 2021-06-30 12:36:24 +02:00
Christopher Engelhard
6bd25af18e Require php-fpm instead of php in httpd subpackage 2021-06-30 12:26:39 +02:00
Christopher Engelhard
03cae4799e Increase PHP memory limit to 512MB (RHBZ 1933529) 2021-06-30 12:22:21 +02:00
Christopher Engelhard
1ce22856b3 Update to 21.0.2 2021-06-30 12:19:02 +02:00
Christopher Engelhard
5890e801ce Remove dependency on php-imap 2021-02-28 17:50:47 +01:00
Christopher Engelhard
89fa9b3da6 Clean up sources file 2021-02-28 09:26:13 +01:00
Christopher Engelhard
c7217d191d Update to 21.0.0 2021-02-24 10:39:49 +01:00
Christopher Engelhard
09829dc43e Update changelog & release 2021-02-20 13:05:00 +01:00
Christopher Engelhard
0e47473c10 Update to 20.0.7 2021-02-20 13:02:59 +01:00
Fedora Release Engineering
08f49df206 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 21:28:57 +00:00
Christopher Engelhard
98ca85608b Update to 20.0.5 2021-01-16 13:00:30 +01:00
Christopher Engelhard
84fb3520f8 nicer output, generate .pkgtmp files 2 2020-12-30 14:08:09 +01:00
Christopher Engelhard
e091af1f54 nicer output, generate .pkgtmp files 2020-12-30 13:54:10 +01:00
Christopher Engelhard
a57f8ec2fc exclude temporary packaging files from git 2020-12-30 12:14:57 +01:00
Christopher Engelhard
e86f6f7f45 move helper scripts to subfolder 2020-12-30 11:03:33 +01:00
Christopher Engelhard
3f6dac606c Bump release to 20.0.4-2 2020-12-28 20:43:07 +01:00
Christopher Engelhard
ce3ab7ff5f specfile formatting 2020-12-28 20:41:10 +01:00
Christopher Engelhard
67aaf62a2a add provides for bundled libraries 2020-12-28 20:35:54 +01:00
Christopher Engelhard
bbad8d3a8c add helperscript to determine bundled versions 2020-12-28 20:35:36 +01:00
Christopher Engelhard
de0b910396 remove selinux stuff and duplicate deps 2020-12-28 19:51:58 +01:00
Christopher Engelhard
8ca211d5e5 Update to 20.0.4 2020-12-17 13:00:56 +01:00
Christopher Engelhard
5dff3d9c42 update gating 2020-12-17 12:57:10 +01:00
Christopher Engelhard
266fce3bac update to 20.0.3 2020-12-10 10:27:44 +01:00
Christopher Engelhard
ecf481aa18 update to 20.0.2 2020-11-19 11:13:02 +01:00
Christopher Engelhard
a334c7061c upload new sources 2020-11-14 20:13:44 +01:00
Christopher Engelhard
bfe4e54f92 update to 20.0.2RC1 2020-11-14 20:11:36 +01:00
Christopher Engelhard
ed26156816 ignore extracted sources 2020-11-14 20:09:37 +01:00
Christopher Engelhard
bfd9e55213 enable gating 2020-11-12 16:09:30 +01:00
Christopher Engelhard
bbf2ec738b fix repo url 2020-11-11 21:30:03 +01:00
Christopher Engelhard
85d72108c4 add tests 2020-11-11 21:24:30 +01:00
Christopher Engelhard
c47da899c5 Bump release to nextcloud-20.0.1-3 2020-11-11 11:33:05 +01:00
Christopher Engelhard
0eba130f8a remove el7 support 2020-11-11 09:31:10 +01:00
Christopher Engelhard
cb9544c0d0 add readme 2020-11-11 09:19:28 +01:00
Christopher Engelhard
83025bf932 bump release 2020-11-10 20:01:00 +01:00
Christopher Engelhard
f290bf06e4 fix occ shebang and make it executable 2020-11-10 19:44:19 +01:00
Christopher Engelhard
1719ce2670 fix wrong conf.avail filename 2020-11-10 19:41:31 +01:00
Christopher Engelhard
87ca5954cd remove unneccessary BR on php-cli 2020-11-10 19:20:27 +01:00
Christopher Engelhard
b7bf5756d4 spec cleanup 2020-11-10 19:19:45 +01:00
Christopher Engelhard
cc418ada90 Require php-cli for occ command 2020-11-10 19:11:08 +01:00
Christopher Engelhard
0d336cb8f8 add patch to allow updates across multiple versions 2020-11-10 11:01:35 +01:00
Michael S
a88ee0f5d8 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-05 15:32:35 +00:00
Christopher Engelhard
69cfa9eb29 update to 20.0.1 2020-10-26 09:00:22 +01:00
Christopher Engelhard
010fbebdb4 update to 20.0.0 2020-10-11 10:37:20 +02:00
Fedora Release Engineering
503c9f882a - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 09:07:10 +00:00
Ivan Chavero
a4e7ed8572 Update to version 19.0.0 2020-06-28 21:58:53 -05:00
Ivan Chavero
258c03d8a7 Update to Nextcloud 18.0.4 2020-04-30 20:27:40 -05:00
24 changed files with 608 additions and 503 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

6
.gitignore vendored
View file

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

View file

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

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

16
README-PACKAGING.md Normal file
View file

@ -0,0 +1,16 @@
# 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.

11
README.md Normal file
View file

@ -0,0 +1,11 @@
### 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 Normal file
View file

@ -0,0 +1,126 @@
* 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

17
gating.yml Normal file
View file

@ -0,0 +1,17 @@
--- !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

@ -12,7 +12,7 @@ If not, make sure your webserver is running properly.
Webserver 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 at least one webserver subpackage (nextcloud-<webserver>). These packages
include additional configuration files for the webservers. Remote access is 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 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 Logging
------- -------
As specified by the configuration file, nextcloud sends messages to the system 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 systemd journal: try "journalctl -b -t Nextcloud". You can also change the
loglevel or switch to the built-in log mechanism of nextcloud. loglevel or switch to the built-in log mechanism of nextcloud.
@ -115,4 +115,4 @@ systemctl enable --now nextcloud-cron.timer
Migration from owncloud Migration from owncloud
----------------------- -----------------------
For detailed instructions on this please read MIGRATION.fedora For detailed instructions on this please read MIGRATION.distro

View file

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

View file

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

View file

@ -1,73 +1,8 @@
# These are based on the .htaccess file shipped by ownCloud, with # The contents of the default Nextcloud .htaccess file are appended to this
# appropriate adjustments for distribution packaging. Some directives # file during build. Some directives may be irrelevant to the Fedora/EPEL
# that are irrelevant to the Fedora/EPEL ecosystem are omitted. This # ecosystem but are NOT omitted.
# 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 # DO NOT EDIT THIS FILE DIRECTLY. To override any element of the
# packaged ownCloud configuration, create a new /etc/httpd/conf.d/ # packaged Nextcloud configuration, create a new /etc/httpd/conf.d/
# file which will be read later than 'nextcloud.conf'. # file which will be read later than this one.
AllowOverride None
ErrorDocument 403 /nextcloud/core/templates/403.php
ErrorDocument 404 /nextcloud/core/templates/404.php
<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

@ -1,24 +0,0 @@
[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

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

@ -16,9 +16,14 @@ Alias /nextcloud /usr/share/nextcloud
# Allows compliant CalDAV / CardDAV clients to be configured using only # Allows compliant CalDAV / CardDAV clients to be configured using only
# the domain name. For more details see # http://tools.ietf.org/html/rfc6764 # the domain name. For more details see # http://tools.ietf.org/html/rfc6764
Redirect 301 /.well-known/carddav /nextcloud/remote.php/carddav # Nextcloud 29 checks specifically for trailing slash in dav 301 redirects
Redirect 301 /.well-known/caldav /nextcloud/remote.php/caldav # https://github.com/nextcloud/server/issues/45033#issuecomment-2079306503
Redirect 301 /.well-known/webdav /nextcloud/remote.php/webdav
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
<Directory /usr/share/nextcloud/> <Directory /usr/share/nextcloud/>
Include conf.d/nextcloud-auth-local.inc Include conf.d/nextcloud-auth-local.inc

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_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,8 +15,10 @@ php_admin_flag[log_errors] = on
php_value[session.save_handler] = files php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
php_value[memory_limit] = 512M
php_value[upload_max_filesize] = 10G php_value[upload_max_filesize] = 10G
php_value[post_max_size] = 10G php_value[post_max_size] = 10G
php_value[output_buffering] = false
env[HOSTNAME] = $HOSTNAME env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp env[TMP] = /tmp

1
nextcloud-php.ini Normal file
View file

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

View file

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

View file

@ -1,92 +1,107 @@
%if 0%{?fedora}
%global distro fedora
%else
%global distro epel
%endif
Name: nextcloud Name: nextcloud
Version: 18.0.0 Version: 34.0.3
Release: 1%{?dist} Release: %autorelease
Summary: Private file sync and share server 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: AGPLv3+ and MIT and BSD and ASL 2.0 and WTFPL and CC-BY-SA and GPLv3+ and Adobe License: AGPL-3.0-or-later AND LicenseRef-Callaway-MIT AND LicenseRef-Callaway-BSD AND Apache-2.0 AND WTFPL AND LicenseRef-Callaway-CC-BY-SA AND GPL-3.0-or-later AND Adobe-2006
URL: http://nextcloud.com URL: http://nextcloud.com
Source0: https://download.nextcloud.com/server/releases/%{name}-%{version}.tar.bz2 Source0: https://download.nextcloud.com/server/releases/%{name}-%{version}.tar.bz2
Source1: %{name}-httpd.conf # basic nextcloud config.php, nextcloud's
Source2: %{name}-access-httpd.conf.avail
Source200: %{name}-default-nginx.conf
Source201: %{name}-conf-nginx.conf
Source202: %{name}-php-fpm.conf
Source203: %{name}-el7-php-fpm.conf
# Config snippets
Source100: %{name}-auth-any.inc
Source101: %{name}-auth-local.inc
Source102: %{name}-auth-none.inc
Source103: %{name}-defaults.inc
# packaging notes and doc
Source3: %{name}-README.fedora
Source4: %{name}-mysql.txt
Source5: %{name}-postgresql.txt
Source6: %{name}-MIGRATION.fedora
# config.php containing just settings we want to specify, nextcloud's
# initial setup will fill out other settings appropriately # initial setup will fill out other settings appropriately
Source7: %{name}-config.php Source1: %{name}-config.php
# Our autoloader for core
Source8: %{name}-fedora-autoloader.php
# Systemd timer for background jobs # Systemd timer for background jobs
Source10: %{name}-systemd-timer.service Source2: %{name}-systemd-timer.service
Source11: %{name}-systemd-timer.timer Source3: %{name}-systemd-timer.timer
# httpd config files
Source100: %{name}-httpd.conf
Source101: %{name}-access-httpd.conf.avail
Source102: %{name}-auth-any.inc
Source103: %{name}-auth-local.inc
Source104: %{name}-auth-none.inc
Source105: %{name}-defaults.inc
# 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
Source302: %{name}-postgresql.txt
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
BuildArch: noarch BuildArch: noarch
# For the systemd macros # Set this to the minimum supported php version Nextcloud will run on
%{?systemd_requires} # Exists to prevent accidental building on distros with outdated php's
BuildRequires: systemd BuildRequires: php(language) >= 8.2
BuildRequires: systemd-rpm-macros
BuildRequires: sed
# Auto-generate Provides from bundled php-composer libraries
BuildRequires: composer-generators
# expand pear macros on install # expand pear macros on install
BuildRequires: php-pear BuildRequires: php-pear
# For sanity %%check # Require one webserver and database backend
BuildRequires: php-cli
Requires: %{name}-webserver = %{version}-%{release} Requires: %{name}-webserver = %{version}-%{release}
Requires: %{name}-database = %{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 # Core PHP libs/extensions required by OC core
Requires: php-curl Requires: php-curl
Requires: php-dom Requires: php-dom
Requires: php-exif Requires: php-exif
Requires: php-fileinfo Requires: php-fileinfo
Requires: php-filter
Requires: php-gd Requires: php-gd
Requires: php-gmp
Requires: php-iconv Requires: php-iconv
Requires: php-intl
Requires: php-json Requires: php-json
Requires: php-ldap Requires: php-ldap
Requires: php-mbstring Requires: php-mbstring
Requires: php-openssl Requires: php-openssl
Requires: php-pcre Requires: php-pcre
Requires: php-pdo Requires: php-pdo
Requires: php-session Requires: php-pecl-apcu
Requires: php-simplexml
Requires: php-xmlwriter
Requires: php-spl
Requires: php-zip
Requires: php-filter
Requires: php-mysqlnd
Requires: php-pgsql
Requires: php-ldap
Requires: php-smbclient
Requires: php-imap
Requires: php-gmp
Requires: php-pecl-imagick Requires: php-pecl-imagick
Requires: php-pecl-memcached Requires: php-pecl-memcached
Requires: php-pecl-apcu Requires: (php-pecl-redis6 or php-pecl-redis5)
Requires: php-pecl-redis5 Requires: php-process
Requires: php-session
Requires: php-simplexml
Requires: php-smbclient
Requires: php-spl
Recommends: php-sodium
Requires: php-opcache
Requires: php-xmlwriter
Requires: php-zip
# For systemd support during install/uninstall
%{?systemd_requires}
# 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
# jquery-ui-multiselect bundled via user_ldap app
# Need to label the httpd rw stuff correctly until base selinux policy updated Provides: bundled(jquery-ui-multiselect) = 1.13
Requires(post): %{_sbindir}/semanage # zxcvbn bundled via core
Requires(postun): %{_sbindir}/semanage Provides: bundled(zxcvbn) = 4.4.2
%description %description
NextCloud gives you universal access to your files through a web interface or NextCloud gives you universal access to your files through a web interface or
@ -97,39 +112,33 @@ applications and plugins.
%package httpd %package httpd
Summary: Httpd integration for NextCloud Summary: Httpd integration for NextCloud
Provides: %{name}-webserver = %{version}-%{release}
Provides: %{name}-webserver = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
# PHP dependencies # PHP dependencies
Requires: php Requires: php-fpm httpd
%description httpd %description httpd
%{summary}. %{summary}.
%package nginx %package nginx
Summary: Nginx integration for NextCloud Summary: Nginx integration for NextCloud
Provides: %{name}-webserver = %{version}-%{release}
Provides: %{name}-webserver = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
# PHP dependencies # PHP dependencies
Requires: php-fpm nginx Requires: php-fpm nginx
%description nginx %description nginx
%{summary}. %{summary}.
%package mysql %package mysql
Summary: MySQL database support for NextCloud Summary: MySQL database support for NextCloud
Provides: %{name}-database = %{version}-%{release}
Provides: %{name}-database = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
# From getSupportedDatabases, mysql => pdo, mysql # From getSupportedDatabases, mysql => pdo, mysql
Requires: php-mysqlnd Requires: php-mysqlnd
%description mysql %description mysql
This package ensures the necessary dependencies are in place for NextCloud to This package ensures the necessary dependencies are in place for NextCloud to
@ -141,14 +150,13 @@ 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 also install and enable a MySQL / MariaDB server package. See README.mysql for
more details. more details.
%package postgresql %package postgresql
Summary: PostgreSQL database support for NextCloud Summary: PostgreSQL database support for NextCloud
Provides: %{name}-database = %{version}-%{release}
Provides: %{name}-database = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
# From getSupportedDatabases, pgsql => function, pg_connect # From getSupportedDatabases, pgsql => function, pg_connect
Requires: php-pgsql Requires: php-pgsql
%description postgresql %description postgresql
This package ensures the necessary dependencies are in place for NextCloud to This package ensures the necessary dependencies are in place for NextCloud to
@ -162,159 +170,95 @@ for more details.
%package sqlite %package sqlite
Summary: SQLite 3 database support for NextCloud Summary: SQLite 3 database support for NextCloud
Provides: %{name}-database = %{version}-%{release}
Provides: %{name}-database = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
# From getSupportedDatabases, pgsql => class, SQLite3 # From getSupportedDatabases, pgsql => class, SQLite3
%description sqlite %description sqlite
This package ensures the necessary dependencies are in place for NextCloud to This package ensures the necessary dependencies are in place for NextCloud to
work with an SQLite 3 database stored on the local system. work with an SQLite 3 database stored on the local system.
%prep %prep
%autosetup -n %{name} -p1 %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 # patch backup files and .git stuff
find . -name \*.orig -type f -exec rm {} \; -print find . -name \*.orig -type f -delete -print
find . -name .gitignore -type f -exec rm {} \; -print find . -name .gitignore -type f -delete -print
find . -name .github -type d -prune -exec rm -r {} \; -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 # prepare package doc
cp %{SOURCE3} README.fedora cp %{SOURCE300} README.%{distro}
cp %{SOURCE4} README.mysql cp %{SOURCE301} README.mysql
cp %{SOURCE5} README.postgresql cp %{SOURCE302} README.postgresql
cp %{SOURCE6} 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 # Locate license files and put them sensibly in place
mv apps/files_pdfviewer/vendor/pdfjs/LICENSE js-pdfjs-LICENSE # get rid of all composer licenses
mv apps/files_pdfviewer/vendor/pdfjs/web/cmaps/LICENSE js-pdfjs-cmaps-LICENSE find -wholename "*/composer/LICENSE" -exec mv {} composer-LICENSE \;
mv apps/notifications/COPYING notifications-LICENSE
mv apps/password_policy/LICENSE password_policy-LICENSE
mv apps/serverinfo/COPYING serverinfo-LICENSE
mv apps/survey_client/COPYING survey_client-LICENSE
mv apps/user_ldap/vendor/ui-multiselect/MIT-LICENSE js-jqueryui-multiselect-LICENSE
mv COPYING nextcloud-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 ; }
mv core/vendor/zxcvbn/LICENSE.txt zxcvbn-LICENSE # case-sensitive list of partial matches to exclude from the nextcloud integrity checker
mv core/fonts/LICENSE_OFL.txt fonts-LICENSE # include readme, license, other docs, and any files we move or patch during the build
mv lib/composer/composer/LICENSE composer-LICENSE excludedFilenames="
mv 3rdparty/sabre/vobject/LICENSE sabre-LICENSE README
mv 3rdparty/sabre/dav/LICENSE sabre-LICENSE readme
mv 3rdparty/sabre/dav/lib/DAV/Browser/assets/openiconic/ICON-LICENSE sabre-ICON-LICENSE LICENSE
mv 3rdparty/sabre/event/LICENSE sabre-LICENSE LICENCE
mv 3rdparty/sabre/http/LICENSE sabre-LICENSE license
mv 3rdparty/sabre/xml/LICENSE sabre-LICENSE copying
mv 3rdparty/sabre/uri/LICENSE sabre-LICENSE COPYING
mv 3rdparty/nikic/php-parser/LICENSE nikic-LICENSE AUTHORS
mv 3rdparty/bantu/ini-get-wrapper/LICENSE bantu-LICENSE htaccess
mv '3rdparty/LICENSE INFO' 3rdparty-LICENSE_INFO gitignore
mv 3rdparty/egulias/email-validator/LICENSE egulias-LICENSE user.ini
mv 3rdparty/stecman/symfony-console-completion/LICENCE stecman-LICENCE update.admin.php
mv 3rdparty/jeremeamia/SuperClosure/LICENSE.md jeremeamia-LICENSE Updater.php
mv 3rdparty/microsoft/azure-storage-blob/LICENSE microsoft-LICENSE occ
mv 3rdparty/microsoft/azure-storage-common/LICENSE microsoft-LICENSE Checker.php
mv 3rdparty/justinrainbow/json-schema/LICENSE justinrainbow-LICENSE "
mv 3rdparty/doctrine/collections/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/event-manager/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/common/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/persistence/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/reflection/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/inflector/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/cache/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/dbal/LICENSE doctrine-LICENSE
mv 3rdparty/doctrine/annotations/LICENSE doctrine-LICENSE
mv 3rdparty/deepdiver/zipstreamer/COPYING deepdiver-COPYING
mv 3rdparty/mtdowling/jmespath.php/LICENSE mtdowling-LICENSE
mv 3rdparty/punic/punic/LICENSE.txt punic-LICENSE.txt
mv 3rdparty/punic/punic/UNICODE-LICENSE.txt punic-UNICODE-LICENSE
mv 3rdparty/christophwurst/id3parser/LICENSE christophwurst-LICENSE
mv 3rdparty/symfony/event-dispatcher-contracts/LICENSE symfony-LICENSE
mv 3rdparty/symfony/process/LICENSE symfony-LICENSE
mv 3rdparty/symfony/event-dispatcher/LICENSE symfony-LICENSE
mv 3rdparty/symfony/polyfill-php56/LICENSE symfony-LICENSE
mv 3rdparty/symfony/routing/LICENSE symfony-LICENSE
mv 3rdparty/symfony/polyfill-intl-idn/LICENSE symfony-LICENSE
mv 3rdparty/symfony/polyfill-iconv/LICENSE symfony-LICENSE
mv 3rdparty/symfony/polyfill-mbstring/LICENSE symfony-LICENSE
mv 3rdparty/symfony/polyfill-php72/LICENSE symfony-LICENSE
mv 3rdparty/symfony/translation/LICENSE symfony-LICENSE
mv 3rdparty/symfony/console/LICENSE symfony-LICENSE
mv 3rdparty/symfony/polyfill-php73/LICENSE symfony-LICENSE
mv 3rdparty/symfony/translation-contracts/LICENSE symfony-LICENSE
mv 3rdparty/symfony/service-contracts/LICENSE symfony-LICENSE
mv 3rdparty/symfony/polyfill-util/LICENSE symfony-LICENSE
mv 3rdparty/react/promise/LICENSE react-LICENSE
mv 3rdparty/composer/LICENSE composer-LICENSE
mv 3rdparty/icewind/searchdav/LICENSE icewind-LICENSE
mv 3rdparty/aws/aws-sdk-php/LICENSE.md aws-LICENSE.md
mv 3rdparty/interfasys/lognormalizer/COPYING interfasys-COPYING
mv 3rdparty/php-opencloud/openstack/LICENSE php-opencloud-LICENSE
mv 3rdparty/league/flysystem/LICENSE league-LICENSE
mv 3rdparty/phpseclib/phpseclib/LICENSE phpseclib-LICENSE
mv 3rdparty/deepdiver1975/tarstreamer/LICENSE deepdiver1975-LICENSE
mv 3rdparty/patchwork/jsqueeze/LICENSE.GPLv2 patchwork-LICENSE
mv 3rdparty/patchwork/jsqueeze/LICENSE.ASL20 patchwork-LICENSE
mv 3rdparty/patchwork/utf8/LICENSE-GPL patchwork-LICENSE-GPL
mv 3rdparty/patchwork/utf8/LICENSE-APACHE patchwork-LICENSE-APACHE
mv 3rdparty/guzzlehttp/streams/LICENSE guzzlehttp-LICENSE
mv 3rdparty/guzzlehttp/guzzle/LICENSE guzzlehttp-LICENSE
mv 3rdparty/guzzlehttp/promises/LICENSE guzzlehttp-LICENSE
mv 3rdparty/guzzlehttp/ringphp/LICENSE guzzlehttp-LICENSE
mv 3rdparty/guzzlehttp/psr7/LICENSE guzzlehttp-LICENSE
mv 3rdparty/pear/pear_exception/LICENSE pear-LICENSE
mv 3rdparty/pear/console_getopt/LICENSE pear-LICENSE
mv 3rdparty/leafo/scssphp/LICENSE.md leafo-LICENSE
mv 3rdparty/ralouphie/getallheaders/LICENSE ralouphie-LICENSE
mv 3rdparty/psr/log/LICENSE psr-LICENSE
mv 3rdparty/psr/http-message/LICENSE psr-LICENSE
mv 3rdparty/psr/container/LICENSE psr-LICENSE
mv apps/encryption/composer/composer/LICENSE encryption-LICENSE
mv apps/federatedfilesharing/composer/composer/LICENSE federatedfilesharing-LICENSE
mv apps/theming/js/3rdparty/jscolor/LICENSE.txt jscolor-LICENSE
mv apps/viewer/COPYING viewer-COPYING
mv apps/workflowengine/composer/composer/LICENSE workflowengine-LICENSE
mv apps/dav/composer/composer/LICENSE dav-LICENSE
mv apps/nextcloud_announcements/COPYING nextcloud_announcements-COPYING
mv apps/files_trashbin/composer/composer/LICENSE files_trashbin-LICENSE
mv apps/photos/COPYING photos-COPYING
mv apps/comments/composer/composer/LICENSE comments-LICENSE
mv apps/files_external/3rdparty/composer/LICENSE files_external-LICENSE
mv apps/files_external/3rdparty/icewind/streams/LICENCE icewind_streams-LICENCE
mv apps/files_external/3rdparty/icewind/smb/LICENSE.txt icewind_smb-LICENSE
mv apps/oauth2/composer/composer/LICENSE oauth2-LICENSE
mv apps/systemtags/composer/composer/LICENSE systemtags-LICENSE
mv apps/accessibility/composer/composer/LICENSE accessibility-LICENSE
mv apps/updatenotification/composer/composer/LICENSE updatenotification-LICENSE
mv apps/cloud_federation_api/LICENSE cloud_federation_api-LICENSE
mv apps/cloud_federation_api/composer/composer/LICENSE cloud_federation_api-LICENSE
mv apps/provisioning_api/composer/composer/LICENSE provisioning_api-LICENSE
mv apps/admin_audit/composer/composer/LICENSE admin_audit-LICENSE
mv apps/files_sharing/composer/composer/LICENSE files_sharing-LICENSE
mv apps/federation/composer/composer/LICENSE federation-LICENSE
mv apps/recommendations/LICENSE recommendations-LICENSE
mv apps/settings/composer/composer/LICENSE settings-LICENSE
mv apps/user_ldap/composer/composer/LICENSE user_ldap-LICENSE
mv apps/files_rightclick/COPYING files_rightclick-COPYING
mv apps/files_rightclick/LICENSE files_rightclick-LICENSE
mv apps/sharebymail/composer/composer/LICENSE sharebymail-LICENSE
mv apps/privacy/COPYING privacy-COPYING
mv apps/files_versions/composer/composer/LICENSE files_versions-LICENSE
mv apps/files/composer/composer/LICENSE files-LICENSE
mv apps/twofactor_backupcodes/composer/composer/LICENSE twofactor_backupcodes-LICENSE
mv apps/lookup_server_connector/composer/composer/LICENSE lookup_server_connector-LICENSE
mv apps/text/COPYING text-COPYING
# 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 %check
# Make sure there are no license files left over # 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 ) nb=$( find . -mindepth 2 \( -name '*LICENSE*' -o -name '*LICENCE*' -o -name '*COPYING*' \) | wc -l )
if [ $nb -gt 0 ] if [ $nb -gt 0 ]
then then
false found unexpected licenses to verify false Found unexpected licenses to verify
fi fi
@ -336,25 +280,28 @@ for d in $(find . -mindepth 1 -maxdepth 1 -type d | grep -v config); do
cp -a "$d" %{buildroot}%{_datadir}/%{name} cp -a "$d" %{buildroot}%{_datadir}/%{name}
done done
for f in {*.php,*.html,occ,robots.txt}; do for f in {*.php,*.html,robots.txt}; do
install -pm 644 "$f" %{buildroot}%{_datadir}/%{name} install -pm 644 "$f" %{buildroot}%{_datadir}/%{name}
done done
# occ should be executable
install -pm 755 occ %{buildroot}%{_datadir}/%{name}
# symlink config dir # symlink config dir
ln -sf %{_sysconfdir}/%{name} %{buildroot}%{_datadir}/%{name}/config ln -s ../../../%{_sysconfdir}/%{name} %{buildroot}%{_datadir}/%{name}/config
# nextcloud looks for ca-bundle.crt in config dir # nextcloud looks for ca-bundle.crt in config dir
ln -sf %{_sysconfdir}/pki/tls/certs/ca-bundle.crt %{buildroot}%{_sysconfdir}/%{name}/ca-bundle.crt ln -s ../pki/ca-trust/extracted/pem/tls-ca-bundle.pem %{buildroot}%{_sysconfdir}/%{name}/ca-bundle.crt
# set default config # set default config
install -pm 644 %{SOURCE7} %{buildroot}%{_sysconfdir}/%{name}/config.php install -pm 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/%{name}/config.php
# httpd config # httpd config
install -Dpm 644 %{SOURCE1} \ install -Dpm 644 %{SOURCE100} \
%{buildroot}%{_sysconfdir}/httpd/conf.d/%{name}.conf %{buildroot}%{_sysconfdir}/httpd/conf.d/%{name}.conf
install -Dpm 644 %{SOURCE2} \ install -Dpm 644 %{SOURCE101} \
%{buildroot}%{_sysconfdir}/httpd/conf.d/%{name}-access.conf.avail %{buildroot}%{_sysconfdir}/httpd/conf.d/%{name}-access.conf.avail
install -Dpm 644 %{SOURCE100} %{SOURCE101} %{SOURCE102} %{SOURCE103} \ install -Dpm 644 %{SOURCE102} %{SOURCE103} %{SOURCE104} %{SOURCE105} \
%{buildroot}%{_sysconfdir}/httpd/conf.d/ %{buildroot}%{_sysconfdir}/httpd/conf.d/
# nginx config # nginx config
@ -363,37 +310,42 @@ install -Dpm 644 %{SOURCE200} \
install -Dpm 644 %{SOURCE201} \ install -Dpm 644 %{SOURCE201} \
%{buildroot}%{_sysconfdir}/nginx/conf.d/%{name}.conf %{buildroot}%{_sysconfdir}/nginx/conf.d/%{name}.conf
%if 0%{?el7} # php-fpm config
install -Dpm 644 %{SOURCE203} \
%{buildroot}%{_sysconfdir}/php-fpm.d/%{name}.conf
%else
install -Dpm 644 %{SOURCE202} \ install -Dpm 644 %{SOURCE202} \
%{buildroot}%{_sysconfdir}/php-fpm.d/%{name}.conf %{buildroot}%{_sysconfdir}/php-fpm.d/%{name}.conf
%endif
# php.ini config
install -Dpm 644 %{SOURCE203} \
%{buildroot}%{_sysconfdir}/php.d/60-%{name}.ini
# Install the systemd timer # Install the systemd timer
install -Dpm 644 %{SOURCE10} %{buildroot}%{_unitdir}/nextcloud-cron.service install -Dpm 644 %{SOURCE2} %{buildroot}%{_unitdir}/nextcloud-cron.service
install -Dpm 644 %{SOURCE11} %{buildroot}%{_unitdir}/nextcloud-cron.timer 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 %post httpd
/usr/bin/systemctl reload httpd.service > /dev/null 2>&1 || : /usr/bin/systemctl reload httpd.service > /dev/null 2>&1 || :
/usr/bin/systemctl reload php-fpm.service > /dev/null 2>&1 || :
%postun httpd %postun httpd
if [ $1 -eq 0 ]; then if [ $1 -eq 0 ]; then
/usr/bin/systemctl reload httpd.service > /dev/null 2>&1 || : /usr/bin/systemctl reload httpd.service > /dev/null 2>&1 || :
/usr/bin/systemctl reload php-fpm.service > /dev/null 2>&1 || :
fi fi
%post nginx %post nginx
%if 0%{?el7} /usr/bin/systemctl reload nginx.service > /dev/null 2>&1 || :
# Work around missing php session directory for php-fpm in el7 bz#1338444 /usr/bin/systemctl reload php-fpm.service > /dev/null 2>&1 || :
if [ ! -d /var/lib/php/session ]
then
mkdir /var/lib/php/session
fi
/usr/bin/chown apache /var/lib/php/session
%endif
/usr/bin/systemctl reload nginx.service > /dev/null 2>&1 || :
/usr/bin/systemctl reload php-fpm.service > /dev/null 2>&1 || :
%postun nginx %postun nginx
if [ $1 -eq 0 ]; then if [ $1 -eq 0 ]; then
@ -401,48 +353,28 @@ if [ $1 -eq 0 ]; then
/usr/bin/systemctl reload php-fpm.service > /dev/null 2>&1 || : /usr/bin/systemctl reload php-fpm.service > /dev/null 2>&1 || :
fi fi
# the selinux policies only cover owncloud right now
# once this package is accepted pull request for selinux-policy to add
# these will be made
%post
touch '%{_sysconfdir}/%{name}/CAN_INSTALL'
semanage fcontext -a -t httpd_sys_rw_content_t '%{_sysconfdir}/%{name}/config.php' 2>/dev/null || :
semanage fcontext -a -t httpd_sys_rw_content_t '%{_sysconfdir}/%{name}' 2>/dev/null || :
semanage fcontext -a -t httpd_sys_rw_content_t '%{_localstatedir}/lib/%{name}(/.*)?' 2>/dev/null || :
restorecon -R %{_sysconfdir}/%{name} || :
restorecon -R %{_localstatedir}/lib/%{name} || :
%postun
if [ $1 -eq 0 ] ; then
semanage fcontext -d -t httpd_sys_rw_content_t '%{_sysconfdir}/%{name}/config.php' 2>/dev/null || :
semanage fcontext -d -t httpd_sys_rw_content_t '%{_sysconfdir}/%{name}' 2>/dev/null || :
semanage fcontext -d -t httpd_sys_rw_content_t '%{_localstatedir}/lib/%{name}(/.*)?' 2>/dev/null || :
fi
%files %files
%doc AUTHORS README.fedora MIGRATION.fedora config/config.sample.php %doc AUTHORS README.%{distro} MIGRATION.%{distro} config/config.sample.php
%license *-LICENSE %license *-LICENSE
%dir %attr(-,apache,apache) %{_sysconfdir}/%{name} %dir %attr(-,apache,apache) %{_sysconfdir}/%{name}
# contains sensitive data (dbpassword, passwordsalt) # contains sensitive data (dbpassword, passwordsalt)
%config(noreplace) %attr(0600,apache,apache) %{_sysconfdir}/%{name}/config.php %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 # need the symlink in confdir but it's not config
%{_sysconfdir}/%{name}/ca-bundle.crt %{_sysconfdir}/%{name}/ca-bundle.crt
%{_datadir}/%{name} %{_datadir}/%{name}
%dir %attr(0755,apache,apache) %{_localstatedir}/lib/%{name} %dir %attr(0755,apache,apache) %{_localstatedir}/lib/%{name}
# user data must not be world readable # user data must not be world readable
%dir %attr(0750,apache,apache) %{_localstatedir}/lib/%{name}/data %dir %attr(0750,apache,apache) %{_localstatedir}/lib/%{name}/data
%attr(-,apache,apache) %{_localstatedir}/lib/%{name}/apps %attr(-,apache,apache) %{_localstatedir}/lib/%{name}/apps
%{_unitdir}/nextcloud-cron.service %{_unitdir}/nextcloud-cron.service
%{_unitdir}/nextcloud-cron.timer %{_unitdir}/nextcloud-cron.timer
%files httpd %files httpd
%config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}.conf %config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}.conf
%{_sysconfdir}/httpd/conf.d/%{name}-access.conf.avail %{_sysconfdir}/httpd/conf.d/%{name}-access.conf.avail
%{_sysconfdir}/httpd/conf.d/*.inc %{_sysconfdir}/httpd/conf.d/%{name}*.inc
%config(noreplace) %{_sysconfdir}/php-fpm.d/%{name}.conf
%files nginx %files nginx
%config(noreplace) %{_sysconfdir}/nginx/default.d/%{name}.conf %config(noreplace) %{_sysconfdir}/nginx/default.d/%{name}.conf
@ -457,63 +389,4 @@ fi
%changelog %changelog
* Sat Feb 08 2020 Ivan Chavero <ichavero@redhat.com> - 18.0.0-1 %autochangelog
- 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

12
plans/base.fmf Normal file
View file

@ -0,0 +1,12 @@
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-18.0.0.tar.bz2) = c6a3b2bb2abed416fdebecd0c35b2547298370ef8a3a2cc884da877b39ab4a03d205653d94b20fdc0660fa355966771f65a7c0aa1c2117bb5abc85d2f091d4f7 SHA512 (nextcloud-34.0.3.tar.bz2) = 3463dbbdeae5275a0791b115cf86aed41c5a138fdd19bb32ec12837a6698106b6f172e24fb1264a2d4e20b2b805bcf7841b2338e4e02f1fd5394fbed830cc695

26
utils/get-bundled-versions.py Executable file
View file

@ -0,0 +1,26 @@
#!/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

109
utils/get-composer-requires.py Executable file
View file

@ -0,0 +1,109 @@
#!/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")