mirror of
https://src.fedoraproject.org/rpms/nextcloud.git
synced 2025-01-10 19:01:53 +01:00
Nextcloud 20 is EOLed upstream and no longer supported
This commit is contained in:
parent
560df87e1c
commit
b4f3266e2e
@ -1 +0,0 @@
|
|||||||
1
|
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,3 +0,0 @@
|
|||||||
/nextcloud-*.tar.bz2
|
|
||||||
/nextcloud
|
|
||||||
*.pkgtmp
|
|
@ -1,20 +0,0 @@
|
|||||||
diff -Naur a/lib/private/Updater.php b/lib/private/Updater.php
|
|
||||||
--- a/lib/private/Updater.php 2020-10-24 10:37:44.000000000 +0200
|
|
||||||
+++ b/lib/private/Updater.php 2020-11-10 10:51:10.511861549 +0100
|
|
||||||
@@ -197,14 +197,11 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($currentVendor === 'nextcloud') {
|
|
||||||
- return isset($allowedPreviousVersions[$currentVendor][$majorMinor])
|
|
||||||
- && (version_compare($oldVersion, $newVersion, '<=') ||
|
|
||||||
- $this->config->getSystemValue('debug', false));
|
|
||||||
+ return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if the instance can be migrated
|
|
||||||
- return isset($allowedPreviousVersions[$currentVendor][$majorMinor]) ||
|
|
||||||
- isset($allowedPreviousVersions[$currentVendor][$oldVersion]);
|
|
||||||
+ return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
@ -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>
|
|
11
README.md
11
README.md
@ -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
|
|
||||||
|
|
||||||
Nextcloud maintains multiple stable branches at the same time. To install those, check out the [modular nextcloud package](https://src.fedoraproject.org/modules/nextcloud).
|
|
||||||
|
|
||||||
### CentOS/RHEL
|
|
||||||
|
|
||||||
For CentOS/RHEL 8+, nextcloud is available through the [modular repository](https://src.fedoraproject.org/modules/nextcloud). Due to incompatible PHP versions, nextcloud is no longer available for CentOS/RHEL 7 or older.
|
|
124
changelog
124
changelog
@ -1,124 +0,0 @@
|
|||||||
* Wed Jun 30 2021 Christopher Engelhard <ce@lcts.de> - 20.0.10-1
|
|
||||||
- Update to 20.0.10, fixes multiple CVEs (RHBZ 1934830, RHBZ 1934838,
|
|
||||||
RHBZ 1934840, RHBZ 1977202)
|
|
||||||
- Include php-fpm config in httpd subpackage
|
|
||||||
- Set php memory limit to 512MB (RHBZ 1933529)
|
|
||||||
- Add Referrer-policy no-referrer to nginx config (RHBZ 1933530)
|
|
||||||
|
|
||||||
* Mon Mar 29 2021 Christopher Engelhard <ce@lcts.de> - 20.0.8-2
|
|
||||||
- Remove dependency on php-imap
|
|
||||||
|
|
||||||
* Sat Feb 27 2021 Christopher Engelhard <ce@lcts.de> - 20.0.8-1
|
|
||||||
- Update to 20.0.8
|
|
||||||
|
|
||||||
* 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
|
|
1
dead.package
Normal file
1
dead.package
Normal file
@ -0,0 +1 @@
|
|||||||
|
Nextcloud 20 is EOLed upstream and no longer supported
|
17
gating.yml
17
gating.yml
@ -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}
|
|
@ -1,165 +0,0 @@
|
|||||||
# Migration from owncloud
|
|
||||||
|
|
||||||
When migrating from an existing owncloud install it's possible to use the same database,
|
|
||||||
or to rename the database to reduce confusion.
|
|
||||||
|
|
||||||
Before carrying out the migration it is important to prevent anyone from changing things.
|
|
||||||
|
|
||||||
Of course it's advised to carry out a backup of the database and files before any migration.
|
|
||||||
|
|
||||||
### Prevent people using owncloud
|
|
||||||
sudo -u apache php /usr/share/owncloud/occ maintenance:mode --on
|
|
||||||
|
|
||||||
### Migration whilst keeping owncloud data intact
|
|
||||||
|
|
||||||
This is the safest option as it is nondestructive to owncloud, but it will require
|
|
||||||
double the data storage during the migration.
|
|
||||||
|
|
||||||
#### Copy data over from one location to the other
|
|
||||||
The data layout is identical, it's just the location that differs.
|
|
||||||
```
|
|
||||||
rsync -aPh /var/lib/owncloud/ /var/lib/nextcloud/
|
|
||||||
```
|
|
||||||
|
|
||||||
## Renaming the database
|
|
||||||
This is optional but might serve to confuse less, and prevents any changes to the owncloud
|
|
||||||
database in case there are issues requiring a fallback. Naturally use better credentials and
|
|
||||||
use the correct database names for your setup!
|
|
||||||
|
|
||||||
##### MySQL
|
|
||||||
```
|
|
||||||
mysql -e 'create database nextclouddb;'
|
|
||||||
mysql -e "grant all on nextclouddb.* to 'nextcloud_user'@'localhost' identified by 'nextcloud_pass';"
|
|
||||||
mysqldump -v ownclouddb | mysql -D nextclouddb
|
|
||||||
```
|
|
||||||
|
|
||||||
##### PostgreSQL
|
|
||||||
```
|
|
||||||
sudo -u postgres psql <<EOF
|
|
||||||
/* Create the user for nextcloud */
|
|
||||||
CREATE USER nextcloud_user WITH PASSWORD 'nextcloud_pass';
|
|
||||||
|
|
||||||
/* KILL ALL EXISTING CONNECTION FROM ORIGINAL DB (ownclouddb)*/
|
|
||||||
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity
|
|
||||||
WHERE pg_stat_activity.datname = 'ownclouddb' AND pid <> pg_backend_pid();
|
|
||||||
|
|
||||||
/* CLONE DATABASE TO NEW ONE(nextclouddb) */
|
|
||||||
CREATE DATABASE nextclouddb WITH TEMPLATE ownclouddb OWNER nextcloud_user;
|
|
||||||
|
|
||||||
GRANT ALL PRIVILEGES ON DATABASE nextclouddb TO nextcloud_user;
|
|
||||||
|
|
||||||
/* The tables need to be transferred in owner as well */
|
|
||||||
\c nextclouddb;
|
|
||||||
REASSIGN OWNED BY owncloud_user TO nextcloud_user;
|
|
||||||
EOF
|
|
||||||
|
|
||||||
```
|
|
||||||
Don't forget to update pg_hba.conf to allow access to the new database as the new user!
|
|
||||||
|
|
||||||
```
|
|
||||||
host nextclouddb nextcloud_user ::1/128 password
|
|
||||||
host nextclouddb nextcloud_user 127.0.0.1/32 password
|
|
||||||
```
|
|
||||||
|
|
||||||
### Migration in place without preserving owncloud data
|
|
||||||
|
|
||||||
If there is not sufficient disk then data can be moved, this will break owncloud in the process
|
|
||||||
and there won't be a fallback option if things go wrong beyond restiring data/backups.
|
|
||||||
|
|
||||||
#### Copy data over from one location to the other
|
|
||||||
```
|
|
||||||
mv /var/lib/owncloud/* /var/lib/nextcloud/
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Renaming the database
|
|
||||||
This is even more optional since the old database will be destroyed in the process, but it may serve
|
|
||||||
to lessen confusion later on for future maintenance. Again replace with the desired credentials and
|
|
||||||
database names for your environment.
|
|
||||||
|
|
||||||
Note that since the database sizes are small it's more reliable and safer for the data stores to follow
|
|
||||||
the steps to duplicate the database laid out above.
|
|
||||||
|
|
||||||
##### MySQL
|
|
||||||
```
|
|
||||||
mysql -e 'create database nextclouddb;'
|
|
||||||
mysql -e "grant all on nextclouddb.* to 'nextcloud_user'@'localhost' identified by 'nextcloud_pass';"
|
|
||||||
mysql ownclouddb -sNe 'show tables' | while read table; do mysql -sNe "rename table ownclouddb.$table to nextclouddb.$table;"; done
|
|
||||||
```
|
|
||||||
|
|
||||||
##### PostgreSQL
|
|
||||||
```
|
|
||||||
sudo -u postgres psql <<EOF
|
|
||||||
/* Create the user for nextcloud */
|
|
||||||
CREATE USER nextcloud_user WITH PASSWORD 'nextcloud_pass';
|
|
||||||
|
|
||||||
/* KILL ALL EXISTING CONNECTION FROM ORIGINAL DB (ownclouddb)*/
|
|
||||||
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity
|
|
||||||
WHERE pg_stat_activity.datname = 'ownclouddb' AND pid <> pg_backend_pid();
|
|
||||||
|
|
||||||
/* ALTER DATABASE to rename it */
|
|
||||||
ALTER DATABASE ownclouddb RENAME TO nextclouddb;
|
|
||||||
ALTER DATABASE nextclouddb OWNER TO nextcloud_user;
|
|
||||||
|
|
||||||
GRANT ALL PRIVILEGES ON DATABASE nextclouddb TO nextcloud_user;
|
|
||||||
|
|
||||||
/* The tables need to be transferred in owner as well */
|
|
||||||
\c nextclouddb;
|
|
||||||
REASSIGN OWNED BY owncloud_user TO nextcloud_user;
|
|
||||||
EOF
|
|
||||||
```
|
|
||||||
|
|
||||||
Again remember to update pg_hba.conf so the new database and user can be used.
|
|
||||||
|
|
||||||
### Bring over the old configuration and update paths
|
|
||||||
The config can be copied as-is which will preserve most settings. This is a coarse rename of everything
|
|
||||||
from owncloud to nextcloud, but if the database isn't renamed then this too much. Verify the database
|
|
||||||
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
|
|
||||||
```
|
|
||||||
|
|
||||||
### Enable the nextcloud interface on httpd
|
|
||||||
If using httpd then enable the interface the same way as the README describes for a fresh install
|
|
||||||
```
|
|
||||||
ln -s /etc/httpd/conf.d/nextcloud-access.conf.avail /etc/httpd/conf.d/z-nextcloud-access.conf
|
|
||||||
```
|
|
||||||
|
|
||||||
### Carry out any migration required
|
|
||||||
A migration step for database schemas etc needs to be carried out to ensure everything is correct.
|
|
||||||
|
|
||||||
Although the WebUI will be prompting the standard "click here to update" it is best for this major
|
|
||||||
migration to carry it out at the command line.
|
|
||||||
```
|
|
||||||
sudo -u apache php /usr/share/nextcloud/occ upgrade
|
|
||||||
```
|
|
||||||
|
|
||||||
### Verify that everything looks right
|
|
||||||
It's best at this stage to enter as an admin and have the instance in single user mode only
|
|
||||||
```
|
|
||||||
sudo -u apache php /usr/share/nextcloud/occ maintenance:singleuser --on
|
|
||||||
sudo -u apache php /usr/share/nextcloud/occ maintenance:mode --off
|
|
||||||
```
|
|
||||||
__NOTE__ It is usual for things like webdav to be disabled during singleuser which may prevent seeing
|
|
||||||
files, however just use this to verify the admin screens. On testing apps needed to be disabled
|
|
||||||
and then enabled again for nextcloud to correctly pick them up.
|
|
||||||
|
|
||||||
### Enable allow people to use nextcloud
|
|
||||||
If things are looking good then open the floodgates to everyone else.
|
|
||||||
```
|
|
||||||
sudo -u apache php /usr/share/nextcloud/occ maintenance:singleuser --off
|
|
||||||
```
|
|
||||||
|
|
||||||
### Clean up the owncloud stuff
|
|
||||||
Finally clean up the old owncloud install, replace with the database and user for your own setup.
|
|
||||||
```
|
|
||||||
dnf remove -y owncloud\*
|
|
||||||
rm -rf /var/lib/owncloud /etc/owncloud /etc/httpd/conf.d/*owncloud*
|
|
||||||
# mysql
|
|
||||||
mysql -e "drop database ownclouddb; drop user owncloud_user@'localhost';"
|
|
||||||
# postgres
|
|
||||||
sudo -u postgres psql <<EOF
|
|
||||||
DROP DATABASE ownclouddb;
|
|
||||||
DROP USER owncloud_user;
|
|
||||||
EOF
|
|
||||||
```
|
|
@ -1,118 +0,0 @@
|
|||||||
nextcloud packaging notes
|
|
||||||
========================
|
|
||||||
|
|
||||||
Start
|
|
||||||
------
|
|
||||||
After installation you should be able to access the login/configuration page
|
|
||||||
at the following URL:
|
|
||||||
|
|
||||||
http://localhost/nextcloud/
|
|
||||||
|
|
||||||
If not, make sure your webserver is running properly.
|
|
||||||
|
|
||||||
Webserver
|
|
||||||
---------
|
|
||||||
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
|
|
||||||
complete the initial setup process, do this:
|
|
||||||
|
|
||||||
ln -s /etc/httpd/conf.d/nextcloud-access.conf.avail /etc/httpd/conf.d/z-nextcloud-access.conf
|
|
||||||
|
|
||||||
If you wish to adjust any of the settings it is recommended that you create
|
|
||||||
a new configuration file that will override nextcloud.conf, rather than editing
|
|
||||||
it, so future changes to the packaged file will be respected on your server.
|
|
||||||
If you do not do this, please be careful to check for changes in the packaged
|
|
||||||
configuration file (especially on major nextcloud upgrades) and merge into
|
|
||||||
your modified configuration as appropriate.
|
|
||||||
|
|
||||||
Database
|
|
||||||
--------
|
|
||||||
You can choose between three databases: MySQL, PostgreSQL and SQLite.
|
|
||||||
For each of them there is an nextcloud subpackage (nextcloud-<database>).
|
|
||||||
You are required to install at least one of them. The packages only ensure
|
|
||||||
the necessary requirements to communicate with a database server of that type
|
|
||||||
are installed, they do not require the database server package itself, as
|
|
||||||
you may wish to use a remote database server. If you wish to use a local one,
|
|
||||||
you must ensure it is installed and configured.
|
|
||||||
|
|
||||||
For larger installs you should use MySQL or PostgreSQL.
|
|
||||||
|
|
||||||
If you choose MySQL or PostgreSQL, keep in mind that you must create a database
|
|
||||||
and user for nextcloud manually, before you can finish the setup process. The
|
|
||||||
README.postgresql and README.mysql files provide more details and help with
|
|
||||||
this.
|
|
||||||
|
|
||||||
In addition if using a remote database then then selinux must be configured to
|
|
||||||
allow the webserver to connect to it - see the selinux section further down.
|
|
||||||
|
|
||||||
Configuration
|
|
||||||
-------------
|
|
||||||
You can find the main configuration file at '/etc/nextcloud/config.php'. Until
|
|
||||||
you first access the server it will be just a small stub containing settings
|
|
||||||
that differ in this package from the upstream defaults. After you first access
|
|
||||||
nextcloud, the initial setup process will populate it with some more settings.
|
|
||||||
Other settings that can be provided in this file are documented at:
|
|
||||||
https://docs.nextcloud.com/server/10/admin_manual/configuration_server/config_sample_php_parameters.html
|
|
||||||
|
|
||||||
User Data
|
|
||||||
---------
|
|
||||||
The default data directory is '/var/lib/nextcloud/data'. Every file that is
|
|
||||||
uploaded by your users to nextcloud gets saved into this folder. Consider doing
|
|
||||||
a backup of this directory, together with the database and the main
|
|
||||||
configuration. Note that if you change this location, you must set appropriate
|
|
||||||
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
|
|
||||||
systemd journal: try "journalctl -b -t Nextcloud". You can also change the
|
|
||||||
loglevel or switch to the built-in log mechanism of nextcloud.
|
|
||||||
|
|
||||||
App Store
|
|
||||||
---------
|
|
||||||
If you install additional third party apps using the built-in app store, you
|
|
||||||
can find them in the directory '/var/lib/nextcloud/apps'. This functionality is
|
|
||||||
enabled by default. If this is moved then it's important to configure httpd/nginx
|
|
||||||
appropriately for the correct /nextcloud/apps-appstore path to alias to the new location.
|
|
||||||
|
|
||||||
The app store URL is coded into the core php and does not need to be listed in config.php
|
|
||||||
|
|
||||||
If there are any empty proxy entries in config.php this will prevent connectivity to the store.
|
|
||||||
If not using a proxy it is important to remove any proxy entries from config.php, not just be ""
|
|
||||||
|
|
||||||
Selinux Booleans
|
|
||||||
----------------
|
|
||||||
If you want to use external files (eg remote smb/cifs server) the httpd_can_network_connect
|
|
||||||
selinux boolean should be toggled on. If you want to use libreoffice document conversion
|
|
||||||
then the httpd_execmem should be toggled on and the unoconv package should be installed.
|
|
||||||
|
|
||||||
If not using an external file source but still using an external database then the boolean
|
|
||||||
httpd_can_network_connect_db should be toggled on for access to regular DB ports. The general
|
|
||||||
network connect can alternatiely be used for non-standard ports or for a broader permission
|
|
||||||
in case of future external files requirements.
|
|
||||||
|
|
||||||
Memory caching
|
|
||||||
--------------
|
|
||||||
For performance reasons a memory cache should be configured. In larger installs redis
|
|
||||||
may be required but as a basic lightweight alternative edit config.php as per upstream
|
|
||||||
documentation and install ACPu via:
|
|
||||||
|
|
||||||
dnf install 'php-pecl(apcu)'
|
|
||||||
|
|
||||||
For further information see http://nextcloud.org/ and http://doc.nextcloud.org/
|
|
||||||
|
|
||||||
Scheduling Background Jobs
|
|
||||||
--------------------------
|
|
||||||
The default behaviour is to use the AJAX webcron, however this is fairly inefficient and does not scale very well.
|
|
||||||
|
|
||||||
It's recommended to set the option "Cron" to use the system scheduler and to enable the included systemd timer.
|
|
||||||
|
|
||||||
systemctl enable --now nextcloud-cron.timer
|
|
||||||
|
|
||||||
Migration from owncloud
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
For detailed instructions on this please read MIGRATION.fedora
|
|
@ -1,24 +0,0 @@
|
|||||||
# If symlinked or copied to /etc/httpd/conf.d/z-nextcloud-access.conf
|
|
||||||
# (or any other name that is alphabetically later than
|
|
||||||
# 'nextcloud.conf'), this file will permit access to the ownCloud
|
|
||||||
# installation from any client. Ensure your deployment is correctly
|
|
||||||
# configured and secured before doing this!
|
|
||||||
#
|
|
||||||
# If you SYMLINK this file, you can rely on the ownCloud package to
|
|
||||||
# handle any future changes in the directory or URL hierarchy; this
|
|
||||||
# file will always achieve the high-level goal 'allow access to the
|
|
||||||
# ownCloud installation from any client'. If you COPY this file, you
|
|
||||||
# will have to check for changes to the original in future ownCloud
|
|
||||||
# package updates, and make any appropriate adjustments to your copy.
|
|
||||||
|
|
||||||
<Directory /usr/share/nextcloud/>
|
|
||||||
Include conf.d/nextcloud-auth-any.inc
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
<Directory /var/lib/nextcloud/apps/>
|
|
||||||
Include conf.d/nextcloud-auth-any.inc
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
<Directory /var/lib/nextcloud/assets/>
|
|
||||||
Include conf.d/nextcloud-auth-any.inc
|
|
||||||
</Directory>
|
|
@ -1,12 +0,0 @@
|
|||||||
# Apache config snippet. To be used by /etc/httpd/conf.d/*.conf files
|
|
||||||
# with Include. Allows access from any system.
|
|
||||||
|
|
||||||
<IfModule mod_authz_core.c>
|
|
||||||
# Apache 2.4
|
|
||||||
Require all granted
|
|
||||||
</IfModule>
|
|
||||||
<IfModule !mod_authz_core.c>
|
|
||||||
# Apache 2.2
|
|
||||||
Order Deny,Allow
|
|
||||||
Allow from all
|
|
||||||
</IfModule>
|
|
@ -1,14 +0,0 @@
|
|||||||
# Apache config snippet. To be used by /etc/httpd/conf.d/*.conf files
|
|
||||||
# with Include. Allows access only from local system.
|
|
||||||
|
|
||||||
<IfModule mod_authz_core.c>
|
|
||||||
# Apache 2.4
|
|
||||||
Require local
|
|
||||||
</IfModule>
|
|
||||||
<IfModule !mod_authz_core.c>
|
|
||||||
# Apache 2.2
|
|
||||||
Order Deny,Allow
|
|
||||||
Deny from all
|
|
||||||
Allow from 127.0.0.1
|
|
||||||
Allow from ::1
|
|
||||||
</IfModule>
|
|
@ -1,12 +0,0 @@
|
|||||||
# Apache config snippet. To be used by /etc/httpd/conf.d/*.conf files
|
|
||||||
# with Include. Denies all access.
|
|
||||||
|
|
||||||
<IfModule mod_authz_core.c>
|
|
||||||
# Apache 2.4
|
|
||||||
Require all denied
|
|
||||||
</IfModule>
|
|
||||||
<IfModule !mod_authz_core.c>
|
|
||||||
# Apache 2.2
|
|
||||||
Order Deny,Allow
|
|
||||||
Deny from all
|
|
||||||
</IfModule>
|
|
@ -1,4 +0,0 @@
|
|||||||
upstream php-nextcloud {
|
|
||||||
server unix:/run/php-fpm/nextcloud.sock;
|
|
||||||
}
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
"log_type" => "syslog",
|
|
||||||
"datadirectory" => "/var/lib/nextcloud/data",
|
|
||||||
"updatechecker" => false,
|
|
||||||
"check_for_working_htaccess" => false,
|
|
||||||
"asset-pipeline.enabled" => false,
|
|
||||||
"assetdirectory" => '/var/lib/nextcloud',
|
|
||||||
"preview_libreoffice_path" => '/usr/bin/libreoffice',
|
|
||||||
|
|
||||||
|
|
||||||
"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,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
@ -1,82 +0,0 @@
|
|||||||
rewrite ^/nextcloud$ /nextcloud/ redirect;
|
|
||||||
|
|
||||||
location /nextcloud/ {
|
|
||||||
root /usr/share/;
|
|
||||||
|
|
||||||
# Add headers to serve security related headers
|
|
||||||
# Before enabling Strict-Transport-Security headers please read into this topic first.
|
|
||||||
# add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
|
|
||||||
add_header X-Content-Type-Options nosniff;
|
|
||||||
add_header X-Frame-Options "SAMEORIGIN";
|
|
||||||
add_header X-XSS-Protection "1; mode=block";
|
|
||||||
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
|
|
||||||
client_max_body_size 10G;
|
|
||||||
fastcgi_buffers 64 4K;
|
|
||||||
|
|
||||||
# Disable gzip to avoid the removal of the ETag header
|
|
||||||
gzip off;
|
|
||||||
|
|
||||||
# Uncomment if your server is build with the ngx_pagespeed module
|
|
||||||
# This module is currently not supported.
|
|
||||||
#pagespeed off;
|
|
||||||
|
|
||||||
index index.php;
|
|
||||||
|
|
||||||
error_page 403 /nextcloud/core/templates/403.php;
|
|
||||||
error_page 404 /nextcloud/core/templates/404.php;
|
|
||||||
|
|
||||||
location ~ ^/nextcloud/apps-appstore/(.*)$ {
|
|
||||||
alias /var/lib/nextcloud/apps/$1;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ ^/nextcloud/assets/(.*)$ {
|
|
||||||
alias /var/lib/nextcloud/assets/$1;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ ^/nextcloud/(build|tests|config|lib|3rdparty|templates|data)/ {
|
|
||||||
deny all;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ ^/nextcloud/(?:\.|autotest|occ|issue|indie|db_|console) {
|
|
||||||
deny all;
|
|
||||||
}
|
|
||||||
|
|
||||||
rewrite ^/nextcloud/remote/(.*) /nextcloud/remote.php last;
|
|
||||||
rewrite ^/nextcloud/core/doc/([^\/]+)(?:$|/) /nextcloud/core/doc/$1/index.html;
|
|
||||||
|
|
||||||
try_files $uri $uri/ =404;
|
|
||||||
|
|
||||||
location ~ \.php(?:$|/) {
|
|
||||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
|
||||||
include fastcgi_params;
|
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
|
||||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
|
||||||
# fastcgi_param HTTPS on;
|
|
||||||
fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
|
|
||||||
fastcgi_pass php-nextcloud;
|
|
||||||
fastcgi_intercept_errors on;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Adding the cache control header for js and css files
|
|
||||||
# Make sure it is BELOW the location ~ \.php(?:$|/) { block
|
|
||||||
location ~* \.(?:css|js)$ {
|
|
||||||
add_header Cache-Control "public, max-age=7200";
|
|
||||||
# Optional: Don't log access to assets
|
|
||||||
access_log off;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Optional: Don't log access to other assets
|
|
||||||
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
|
|
||||||
access_log off;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
|||||||
# 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 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>
|
|
@ -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';
|
|
@ -1,50 +0,0 @@
|
|||||||
# DO NOT EDIT THIS FILE DIRECTLY. To override any element of the
|
|
||||||
# packaged ownCloud configuration, create a new /etc/httpd/conf.d/
|
|
||||||
# file which will be read later than 'nextcloud.conf'.
|
|
||||||
#
|
|
||||||
# As the initial setup wizard is active upon installation, access is
|
|
||||||
# initially allowed only from localhost. *AFTER* configuring the
|
|
||||||
# installation correctly and creating the admin account, to allow
|
|
||||||
# access from any host, do this:
|
|
||||||
#
|
|
||||||
# ln -s /etc/httpd/conf.d/nextcloud-access.conf.avail /etc/httpd/conf.d/z-nextcloud-access.conf
|
|
||||||
|
|
||||||
Alias /nextcloud/apps-appstore /var/lib/nextcloud/apps
|
|
||||||
Alias /nextcloud/assets /var/lib/nextcloud/assets
|
|
||||||
Alias /nextcloud /usr/share/nextcloud
|
|
||||||
|
|
||||||
# Allows compliant CalDAV / CardDAV clients to be configured using only
|
|
||||||
# the domain name. For more details see # http://tools.ietf.org/html/rfc6764
|
|
||||||
|
|
||||||
Redirect 301 /.well-known/carddav /nextcloud/remote.php/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
|
|
||||||
Include conf.d/nextcloud-defaults.inc
|
|
||||||
<FilesMatch ^(\.|autotest|occ|issue|indie|db_|console).*>
|
|
||||||
Include conf.d/nextcloud-auth-none.inc
|
|
||||||
</FilesMatch>
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
<Directory /var/lib/nextcloud/apps/>
|
|
||||||
Include conf.d/nextcloud-auth-local.inc
|
|
||||||
Include conf.d/nextcloud-defaults.inc
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
<Directory /var/lib/nextcloud/assets/>
|
|
||||||
Include conf.d/nextcloud-auth-local.inc
|
|
||||||
Include conf.d/nextcloud-defaults.inc
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
# For safety, explicitly deny any access to these locations.
|
|
||||||
# Upstream's .htaccess does something similar with mod_rewrite.
|
|
||||||
|
|
||||||
<Directory /var/lib/nextcloud/data/>
|
|
||||||
Include conf.d/nextcloud-auth-none.inc
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
<DirectoryMatch /usr/share/nextcloud/(3rdparty|lib|config|templates)/>
|
|
||||||
Include conf.d/nextcloud-auth-none.inc
|
|
||||||
</DirectoryMatch>
|
|
@ -1,28 +0,0 @@
|
|||||||
Configure MariaDB / MySQL for ownCloud
|
|
||||||
======================================
|
|
||||||
|
|
||||||
To use MariaDB / MySQL as database backend, you need to do the following:
|
|
||||||
|
|
||||||
1. Make sure that your mysql service is configured and running properly. If this
|
|
||||||
is a fresh install, you will need to run "systemctl enable mysqld.service;
|
|
||||||
systemctl start mysqld.service" (or mariadb.service) as root. It's also
|
|
||||||
strongly advised to run "mysql_secure_installation" after starting the
|
|
||||||
database for the first time.
|
|
||||||
|
|
||||||
2. Log in to the database as privileged user to create the database and a
|
|
||||||
dedicated user account for ownCloud:
|
|
||||||
$ mysql -u root -p
|
|
||||||
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
|
|
||||||
CREATE DATABASE IF NOT EXISTS nextcloud;
|
|
||||||
GRANT ALL PRIVILEGES ON nextcloud.* TO 'username'@'localhost' IDENTIFIED BY 'password';
|
|
||||||
Choose identifier and password accordingly.
|
|
||||||
|
|
||||||
Now you can launch the ownCloud setup screen, select MySQL in the advanced
|
|
||||||
settings and fill in your credentials.
|
|
||||||
|
|
||||||
References
|
|
||||||
==========
|
|
||||||
|
|
||||||
https://fedoraproject.org/wiki/MariaDB
|
|
||||||
https://mariadb.com/kb/en/mariadb/documentation/
|
|
||||||
http://doc.nextcloud.org/server/7.0/admin_manual/configuration/configuration_database.html
|
|
@ -1,26 +0,0 @@
|
|||||||
[nextcloud]
|
|
||||||
user = apache
|
|
||||||
group = apache
|
|
||||||
listen = /run/php-fpm/nextcloud.sock
|
|
||||||
listen.acl_users = apache,nginx
|
|
||||||
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[memory_limit] = 512M
|
|
||||||
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
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
Configure PostgreSQL for ownCloud
|
|
||||||
=================================
|
|
||||||
|
|
||||||
To use PostgreSQL as database backend, you need to do the following:
|
|
||||||
|
|
||||||
1. Make sure that your PostgreSQL service is configured and running properly.
|
|
||||||
If this is a fresh install, you will need to run "postgresql-setup initdb"
|
|
||||||
as root, then "systemctl enable postgresql.service; systemctl start
|
|
||||||
postgresql.service". For more details on initial configuration of PostgreSQL
|
|
||||||
in Fedora, see https://fedoraproject.org/wiki/PostgreSQL
|
|
||||||
|
|
||||||
2. Log in to PostgreSQL as system user to create the database and a dedicated
|
|
||||||
user account for ownCloud:
|
|
||||||
# su - -c "psql" postgres
|
|
||||||
CREATE USER username WITH PASSWORD 'password';
|
|
||||||
CREATE DATABASE nextcloud TEMPLATE template0 ENCODING 'UNICODE';
|
|
||||||
ALTER DATABASE nextcloud OWNER TO username;
|
|
||||||
GRANT ALL PRIVILEGES ON DATABASE nextcloud TO username;
|
|
||||||
Choose identifier and password accordingly.
|
|
||||||
|
|
||||||
3. ownCloud talks to PostgreSQL via TCP/IP, so you need to configure an
|
|
||||||
appropriate authentication mechanism in /var/lib/pgsql/data/pg_hba.conf.
|
|
||||||
For a simple configuration with ownCloud and PostgreSQL on the same host,
|
|
||||||
set the METHOD for the lines that apply to localhost TCP/IP connections
|
|
||||||
to "password". ownCloud does *not* use a socket to communicate with the
|
|
||||||
database, so the 'local' line in pg_hba.conf does *not* apply to it.
|
|
||||||
Note that this will result in the password being sent unencrypted from
|
|
||||||
ownCloud to the PostgreSQL server. For more details, see
|
|
||||||
http://www.postgresql.org/docs/9.3/static/auth-pg-hba-conf.html.
|
|
||||||
|
|
||||||
4. You also need to allow the web server to communicate with the database by
|
|
||||||
TCP/IP: SELinux disallows this by default. Run:
|
|
||||||
# setsebool -P httpd_can_network_connect_db on
|
|
||||||
|
|
||||||
Now you can launch the ownCloud setup screen, select PostgreSQL in the advanced
|
|
||||||
settings and fill in your credentials.
|
|
||||||
|
|
||||||
References
|
|
||||||
==========
|
|
||||||
|
|
||||||
https://fedoraproject.org/wiki/PostgreSQL
|
|
||||||
http://www.postgresql.org/docs
|
|
||||||
http://doc.nextcloud.org/server/7.0/admin_manual/configuration/configuration_database.html
|
|
@ -1,8 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=Cron for nextcloud background jobs
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=oneshot
|
|
||||||
ExecStart=/usr/bin/php -f /usr/share/nextcloud/cron.php
|
|
||||||
User=apache
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=This triggers the nextcloud cron service
|
|
||||||
|
|
||||||
[Timer]
|
|
||||||
OnBootSec=5min
|
|
||||||
OnUnitInactiveSec=15min
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=timers.target
|
|
||||||
|
|
540
nextcloud.spec
540
nextcloud.spec
@ -1,540 +0,0 @@
|
|||||||
Name: nextcloud
|
|
||||||
Version: 20.0.11
|
|
||||||
Release: %autorelease
|
|
||||||
Summary: Private file sync and share server
|
|
||||||
License: AGPLv3+ and MIT and BSD and ASL 2.0 and WTFPL and CC-BY-SA and GPLv3+ and Adobe
|
|
||||||
URL: http://nextcloud.com
|
|
||||||
Source0: https://download.nextcloud.com/server/releases/%{name}-%{version}.tar.bz2
|
|
||||||
|
|
||||||
# basic nextcloud config.php, nextcloud's
|
|
||||||
# initial setup will fill out other settings appropriately
|
|
||||||
Source1: %{name}-config.php
|
|
||||||
# Systemd timer for background jobs
|
|
||||||
Source2: %{name}-systemd-timer.service
|
|
||||||
Source3: %{name}-systemd-timer.timer
|
|
||||||
# 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
|
|
||||||
# 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
|
|
||||||
# Change occ shebang to /usr/bin/php
|
|
||||||
Patch1: 0001-mangle-shebang.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
|
|
||||||
|
|
||||||
# Require one webserver and database backend
|
|
||||||
Requires: %{name}-webserver = %{version}-%{release}
|
|
||||||
Requires: %{name}-database = %{version}-%{release}
|
|
||||||
# Require php CLI for occ command
|
|
||||||
Requires: php-cli
|
|
||||||
# Core PHP libs/extensions required by OC core
|
|
||||||
Requires: php-curl
|
|
||||||
Requires: php-dom
|
|
||||||
Requires: php-exif
|
|
||||||
Requires: php-fileinfo
|
|
||||||
Requires: php-gd
|
|
||||||
Requires: php-iconv
|
|
||||||
Requires: php-json
|
|
||||||
Requires: php-ldap
|
|
||||||
Requires: php-mbstring
|
|
||||||
Requires: php-openssl
|
|
||||||
Requires: php-pcre
|
|
||||||
Requires: php-pdo
|
|
||||||
Requires: php-session
|
|
||||||
Requires: php-simplexml
|
|
||||||
Requires: php-xmlwriter
|
|
||||||
Requires: php-spl
|
|
||||||
Requires: php-zip
|
|
||||||
Requires: php-filter
|
|
||||||
Requires: php-ldap
|
|
||||||
Requires: php-smbclient
|
|
||||||
Requires: php-gmp
|
|
||||||
Requires: php-process
|
|
||||||
Requires: php-pecl-imagick
|
|
||||||
Requires: php-pecl-memcached
|
|
||||||
Requires: php-pecl-apcu
|
|
||||||
Requires: php-pecl-redis5
|
|
||||||
# For systemd support during install/uninstall
|
|
||||||
%{?systemd_requires}
|
|
||||||
# the CA cert bundle is linked to from the config dir
|
|
||||||
Requires: %{_sysconfdir}/pki/tls/certs/ca-bundle.crt
|
|
||||||
|
|
||||||
|
|
||||||
# Bundled composer libraries
|
|
||||||
# many of these can be unbundled
|
|
||||||
Provides: bundled(php-composer(icewind/smb)) = 3.2.7
|
|
||||||
Provides: bundled(php-composer(icewind/streams)) = 0.7.1
|
|
||||||
Provides: bundled(php-composer(aws/aws-sdk-php)) = 3.133.27
|
|
||||||
Provides: bundled(php-composer(bantu/ini-get-wrapper)) = 1.0.1
|
|
||||||
Provides: bundled(php-composer(beberlei/assert)) = 3.2.7
|
|
||||||
Provides: bundled(php-composer(christophwurst/id3parser)) = 0.1.1
|
|
||||||
Provides: bundled(php-composer(deepdiver/zipstreamer)) = 1.1.1
|
|
||||||
Provides: bundled(php-composer(deepdiver1975/tarstreamer)) = 2.0.0
|
|
||||||
Provides: bundled(php-composer(doctrine/annotations)) = 1.6.0
|
|
||||||
Provides: bundled(php-composer(doctrine/cache)) = 1.10.1
|
|
||||||
Provides: bundled(php-composer(doctrine/collections)) = 1.5.0
|
|
||||||
Provides: bundled(php-composer(doctrine/common)) = 2.10.0
|
|
||||||
Provides: bundled(php-composer(doctrine/dbal)) = 2.10.2
|
|
||||||
Provides: bundled(php-composer(doctrine/event-manager)) = 1.1.0
|
|
||||||
Provides: bundled(php-composer(doctrine/inflector)) = 1.3.0
|
|
||||||
Provides: bundled(php-composer(doctrine/lexer)) = 1.2.0
|
|
||||||
Provides: bundled(php-composer(doctrine/persistence)) = 1.1.0
|
|
||||||
Provides: bundled(php-composer(doctrine/reflection)) = 1.0.0
|
|
||||||
Provides: bundled(php-composer(egulias/email-validator)) = 2.1.11
|
|
||||||
Provides: bundled(php-composer(fgrosse/phpasn1)) = 2.1.1
|
|
||||||
Provides: bundled(php-composer(guzzlehttp/guzzle)) = 6.5.2
|
|
||||||
Provides: bundled(php-composer(guzzlehttp/promises)) = 1.3.1
|
|
||||||
Provides: bundled(php-composer(guzzlehttp/psr7)) = 1.6.1
|
|
||||||
Provides: bundled(php-composer(guzzlehttp/ringphp)) = 1.1.0
|
|
||||||
Provides: bundled(php-composer(guzzlehttp/streams)) = 3.0.0
|
|
||||||
Provides: bundled(php-composer(icewind/searchdav)) = 2.0.0
|
|
||||||
Provides: bundled(php-composer(icewind/streams)) = 0.7.1
|
|
||||||
Provides: bundled(php-composer(jeremeamia/SuperClosure)) = 2.4.0
|
|
||||||
Provides: bundled(php-composer(justinrainbow/json-schema)) = 5.2.9
|
|
||||||
Provides: bundled(php-composer(league/flysystem)) = 1.0.64
|
|
||||||
Provides: bundled(php-composer(league/uri)) = 6.2.1
|
|
||||||
Provides: bundled(php-composer(league/uri-components)) = 2.2.1
|
|
||||||
Provides: bundled(php-composer(league/uri-interfaces)) = 2.1.0
|
|
||||||
Provides: bundled(php-composer(microsoft/azure-storage-blob)) = 1.5.0
|
|
||||||
Provides: bundled(php-composer(microsoft/azure-storage-common)) = 1.4.1
|
|
||||||
Provides: bundled(php-composer(mtdowling/jmespath.php)) = 2.5.0
|
|
||||||
Provides: bundled(php-composer(nextcloud/lognormalizer)) = 1.0.0
|
|
||||||
Provides: bundled(php-composer(nikic/php-parser)) = 4.3.0
|
|
||||||
Provides: bundled(php-composer(paragonie/random_compat)) = 9.99.99
|
|
||||||
Provides: bundled(php-composer(patchwork/jsqueeze)) = 2.0.5
|
|
||||||
Provides: bundled(php-composer(patchwork/utf8)) = 1.3.1
|
|
||||||
Provides: bundled(php-composer(pear/archive_tar)) = 1.4.11
|
|
||||||
Provides: bundled(php-composer(pear/console_getopt)) = 1.4.3
|
|
||||||
Provides: bundled(php-composer(pear/pear-core-minimal)) = 1.10.10
|
|
||||||
Provides: bundled(php-composer(pear/pear_exception)) = 1.0.1
|
|
||||||
Provides: bundled(php-composer(php-http/guzzle6-adapter)) = 2.0.1
|
|
||||||
Provides: bundled(php-composer(php-http/httplug)) = 2.1.0
|
|
||||||
Provides: bundled(php-composer(php-http/promise)) = 1.0.0
|
|
||||||
Provides: bundled(php-composer(php-opencloud/openstack)) = 3.0.7
|
|
||||||
Provides: bundled(php-composer(phpseclib/phpseclib)) = 2.0.25
|
|
||||||
Provides: bundled(php-composer(pimple/pimple)) = 3.2.3
|
|
||||||
Provides: bundled(php-composer(psr/container)) = 1.0.0
|
|
||||||
Provides: bundled(php-composer(psr/http-client)) = 1.0.0
|
|
||||||
Provides: bundled(php-composer(psr/http-factory)) = 1.0.1
|
|
||||||
Provides: bundled(php-composer(psr/http-message)) = 1.0.1
|
|
||||||
Provides: bundled(php-composer(psr/log)) = 1.1.0
|
|
||||||
Provides: bundled(php-composer(punic/punic)) = 1.6.5
|
|
||||||
Provides: bundled(php-composer(ralouphie/getallheaders)) = 3.0.3
|
|
||||||
Provides: bundled(php-composer(ramsey/uuid)) = 3.9.3
|
|
||||||
Provides: bundled(php-composer(react/promise)) = 2.2.1
|
|
||||||
Provides: bundled(php-composer(sabre/dav)) = 4.0.3
|
|
||||||
Provides: bundled(php-composer(sabre/event)) = 5.1.0
|
|
||||||
Provides: bundled(php-composer(sabre/http)) = 5.1.0
|
|
||||||
Provides: bundled(php-composer(sabre/uri)) = 2.2.0
|
|
||||||
Provides: bundled(php-composer(sabre/vobject)) = 4.3.0
|
|
||||||
Provides: bundled(php-composer(sabre/xml)) = 2.2.3
|
|
||||||
Provides: bundled(php-composer(scssphp/scssphp)) = 1.0.3
|
|
||||||
Provides: bundled(php-composer(spomky-labs/base64url)) = 2.0.1
|
|
||||||
Provides: bundled(php-composer(spomky-labs/cbor-php)) = 1.0.8
|
|
||||||
Provides: bundled(php-composer(stecman/symfony-console-completion)) = 0.11.0
|
|
||||||
Provides: bundled(php-composer(swiftmailer/swiftmailer)) = 6.2.3
|
|
||||||
Provides: bundled(php-composer(symfony/console)) = 4.4.10
|
|
||||||
Provides: bundled(php-composer(symfony/event-dispatcher)) = 4.4.10
|
|
||||||
Provides: bundled(php-composer(symfony/event-dispatcher-contracts)) = 1.1.7
|
|
||||||
Provides: bundled(php-composer(symfony/polyfill-ctype)) = 1.15.0
|
|
||||||
Provides: bundled(php-composer(symfony/polyfill-iconv)) = 1.12.0
|
|
||||||
Provides: bundled(php-composer(symfony/polyfill-intl-idn)) = 1.12.0
|
|
||||||
Provides: bundled(php-composer(symfony/polyfill-mbstring)) = 1.14.0
|
|
||||||
Provides: bundled(php-composer(symfony/polyfill-php56)) = 1.10.0
|
|
||||||
Provides: bundled(php-composer(symfony/polyfill-php72)) = 1.12.0
|
|
||||||
Provides: bundled(php-composer(symfony/polyfill-php73)) = 1.13.1
|
|
||||||
Provides: bundled(php-composer(symfony/polyfill-php80)) = 1.17.1
|
|
||||||
Provides: bundled(php-composer(symfony/polyfill-util)) = 1.10.0
|
|
||||||
Provides: bundled(php-composer(symfony/process)) = 4.4.10
|
|
||||||
Provides: bundled(php-composer(symfony/routing)) = 4.4.10
|
|
||||||
Provides: bundled(php-composer(symfony/service-contracts)) = 1.1.8
|
|
||||||
Provides: bundled(php-composer(symfony/translation)) = 4.4.10
|
|
||||||
Provides: bundled(php-composer(symfony/translation-contracts)) = 1.1.7
|
|
||||||
Provides: bundled(php-composer(web-auth/cose-lib)) = 3.1.1
|
|
||||||
Provides: bundled(php-composer(web-auth/metadata-service)) = 3.1.1
|
|
||||||
Provides: bundled(php-composer(web-auth/webauthn-lib)) = 3.1.1
|
|
||||||
|
|
||||||
# OpenIconic icons bundled via sabre-dav
|
|
||||||
Provides: bundled(openiconic-fonts) = 1.0.0
|
|
||||||
# jscolor bundled via themeing app
|
|
||||||
Provides: bundled(jscolor) = 2.0.4
|
|
||||||
# jquery-ui-multiselect bundled via user_ldap app
|
|
||||||
Provides: bundled(jquery-ui-multiselect) = 0.3.1
|
|
||||||
# zxcvbn bundled via core
|
|
||||||
Provides: bundled(zxcvbn) = 4.4.2
|
|
||||||
|
|
||||||
%description
|
|
||||||
NextCloud gives you universal access to your files through a web interface or
|
|
||||||
WebDAV. It also provides a platform to easily view & sync your contacts,
|
|
||||||
calendars and bookmarks across all your devices and enables basic editing right
|
|
||||||
on the web. NextCloud is extendable via a simple but powerful API for
|
|
||||||
applications and plugins.
|
|
||||||
|
|
||||||
|
|
||||||
%package httpd
|
|
||||||
Summary: Httpd integration for NextCloud
|
|
||||||
Provides: %{name}-webserver = %{version}-%{release}
|
|
||||||
Requires: %{name} = %{version}-%{release}
|
|
||||||
# PHP dependencies
|
|
||||||
Requires: php-fpm httpd
|
|
||||||
|
|
||||||
%description httpd
|
|
||||||
%{summary}.
|
|
||||||
|
|
||||||
|
|
||||||
%package nginx
|
|
||||||
Summary: Nginx integration for NextCloud
|
|
||||||
Provides: %{name}-webserver = %{version}-%{release}
|
|
||||||
Requires: %{name} = %{version}-%{release}
|
|
||||||
# PHP dependencies
|
|
||||||
Requires: php-fpm nginx
|
|
||||||
|
|
||||||
%description nginx
|
|
||||||
%{summary}.
|
|
||||||
|
|
||||||
|
|
||||||
%package mysql
|
|
||||||
Summary: MySQL database support for NextCloud
|
|
||||||
Provides: %{name}-database = %{version}-%{release}
|
|
||||||
Requires: %{name} = %{version}-%{release}
|
|
||||||
# From getSupportedDatabases, mysql => pdo, mysql
|
|
||||||
Requires: php-mysqlnd
|
|
||||||
|
|
||||||
%description mysql
|
|
||||||
This package ensures the necessary dependencies are in place for NextCloud to
|
|
||||||
work with MySQL / MariaDB databases. It does not require a MySQL / MariaDB
|
|
||||||
server to be installed, as you may well wish to use a remote database
|
|
||||||
server.
|
|
||||||
|
|
||||||
If you want the database to be on the same system as NextCloud itself, you must
|
|
||||||
also install and enable a MySQL / MariaDB server package. See README.mysql for
|
|
||||||
more details.
|
|
||||||
|
|
||||||
%package postgresql
|
|
||||||
Summary: PostgreSQL database support for NextCloud
|
|
||||||
Provides: %{name}-database = %{version}-%{release}
|
|
||||||
Requires: %{name} = %{version}-%{release}
|
|
||||||
# From getSupportedDatabases, pgsql => function, pg_connect
|
|
||||||
Requires: php-pgsql
|
|
||||||
|
|
||||||
%description postgresql
|
|
||||||
This package ensures the necessary dependencies are in place for NextCloud to
|
|
||||||
work with a PostgreSQL database. It does not require the PostgreSQL server
|
|
||||||
package to be installed, as you may well wish to use a remote database
|
|
||||||
server.
|
|
||||||
|
|
||||||
If you want the database to be on the same system as NextCloud itself, you must
|
|
||||||
also install and enable the PostgreSQL server package. See README.postgresql
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
|
|
||||||
%package sqlite
|
|
||||||
Summary: SQLite 3 database support for NextCloud
|
|
||||||
Provides: %{name}-database = %{version}-%{release}
|
|
||||||
Requires: %{name} = %{version}-%{release}
|
|
||||||
# From getSupportedDatabases, pgsql => class, SQLite3
|
|
||||||
|
|
||||||
%description sqlite
|
|
||||||
This package ensures the necessary dependencies are in place for NextCloud to
|
|
||||||
work with an SQLite 3 database stored on the local system.
|
|
||||||
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%autosetup -n %{name} -p1
|
|
||||||
|
|
||||||
# patch backup files and .git stuff
|
|
||||||
find . -name \*.orig -type f -exec rm {} \; -print
|
|
||||||
find . -name .gitignore -type f -exec rm {} \; -print
|
|
||||||
find . -name .github -type d -prune -exec rm -r {} \; -print
|
|
||||||
|
|
||||||
# prepare package doc
|
|
||||||
cp %{SOURCE300} README.fedora
|
|
||||||
cp %{SOURCE301} README.mysql
|
|
||||||
cp %{SOURCE302} README.postgresql
|
|
||||||
cp %{SOURCE303} MIGRATION.fedora
|
|
||||||
|
|
||||||
# Locate license files and put them sensibly in place
|
|
||||||
# find all using "find -name '*LICENSE*' -o -name '*COPYING*' | sort"
|
|
||||||
mv 3rdparty/aws/aws-sdk-php/LICENSE.md aws-LICENSE.md
|
|
||||||
mv 3rdparty/bantu/ini-get-wrapper/LICENSE bantu-LICENSE
|
|
||||||
mv 3rdparty/beberlei/assert/LICENSE beberlei-LICENSE
|
|
||||||
mv 3rdparty/christophwurst/id3parser/LICENSE christophwurst-LICENSE
|
|
||||||
mv 3rdparty/composer/LICENSE composer-LICENSE
|
|
||||||
mv 3rdparty/deepdiver1975/tarstreamer/LICENSE deepdiver1975-LICENSE
|
|
||||||
mv 3rdparty/deepdiver/zipstreamer/COPYING deepdiver-COPYING
|
|
||||||
mv 3rdparty/doctrine/annotations/LICENSE doctrine-LICENSE
|
|
||||||
mv 3rdparty/doctrine/cache/LICENSE doctrine-LICENSE
|
|
||||||
mv 3rdparty/doctrine/collections/LICENSE doctrine-LICENSE
|
|
||||||
mv 3rdparty/doctrine/common/LICENSE doctrine-LICENSE
|
|
||||||
mv 3rdparty/doctrine/dbal/LICENSE doctrine-LICENSE
|
|
||||||
mv 3rdparty/doctrine/event-manager/LICENSE doctrine-LICENSE
|
|
||||||
mv 3rdparty/doctrine/inflector/LICENSE doctrine-LICENSE
|
|
||||||
mv 3rdparty/doctrine/persistence/LICENSE doctrine-LICENSE
|
|
||||||
mv 3rdparty/doctrine/reflection/LICENSE doctrine-LICENSE
|
|
||||||
mv 3rdparty/egulias/email-validator/LICENSE egulias-LICENSE
|
|
||||||
mv 3rdparty/fgrosse/phpasn1/LICENSE fgrosse-LICENSE
|
|
||||||
mv 3rdparty/guzzlehttp/guzzle/LICENSE guzzlehttp-LICENSE
|
|
||||||
mv 3rdparty/guzzlehttp/promises/LICENSE guzzlehttp-LICENSE
|
|
||||||
mv 3rdparty/guzzlehttp/psr7/LICENSE guzzlehttp-LICENSE
|
|
||||||
mv 3rdparty/guzzlehttp/ringphp/LICENSE guzzlehttp-LICENSE
|
|
||||||
mv 3rdparty/guzzlehttp/streams/LICENSE guzzlehttp-LICENSE
|
|
||||||
mv 3rdparty/icewind/searchdav/LICENSE icewind-LICENSE
|
|
||||||
mv 3rdparty/jeremeamia/SuperClosure/LICENSE.md jeremeamia-LICENSE
|
|
||||||
mv 3rdparty/justinrainbow/json-schema/LICENSE justinrainbow-LICENSE
|
|
||||||
mv 3rdparty/league/flysystem/LICENSE league-LICENSE
|
|
||||||
mv 3rdparty/league/uri-components/LICENSE league-LICENSE
|
|
||||||
mv 3rdparty/league/uri-interfaces/LICENSE league-LICENSE
|
|
||||||
mv 3rdparty/league/uri/LICENSE league-LICENSE
|
|
||||||
mv '3rdparty/LICENSE INFO' 3rdparty-LICENSE_INFO
|
|
||||||
mv 3rdparty/microsoft/azure-storage-blob/LICENSE microsoft-LICENSE
|
|
||||||
mv 3rdparty/microsoft/azure-storage-common/LICENSE microsoft-LICENSE
|
|
||||||
mv 3rdparty/mtdowling/jmespath.php/LICENSE mtdowling-LICENSE
|
|
||||||
mv 3rdparty/nextcloud/lognormalizer/COPYING lognormalizer-LICENSE
|
|
||||||
mv 3rdparty/nikic/php-parser/LICENSE nikic-LICENSE
|
|
||||||
mv 3rdparty/paragonie/random_compat/LICENSE paragonie-LICENSE
|
|
||||||
mv 3rdparty/patchwork/jsqueeze/LICENSE.ASL20 patchwork-LICENSE-APACHE
|
|
||||||
mv 3rdparty/patchwork/jsqueeze/LICENSE.GPLv2 patchwork-LICENSE-GPL
|
|
||||||
mv 3rdparty/patchwork/utf8/LICENSE-APACHE patchwork-LICENSE-APACHE
|
|
||||||
mv 3rdparty/patchwork/utf8/LICENSE-GPL patchwork-LICENSE-GPL
|
|
||||||
mv 3rdparty/pear/console_getopt/LICENSE pear-LICENSE
|
|
||||||
mv 3rdparty/pear/pear_exception/LICENSE pear-LICENSE
|
|
||||||
mv 3rdparty/php-http/guzzle6-adapter/LICENSE php-http-LICENSE
|
|
||||||
mv 3rdparty/php-http/httplug/LICENSE php-http-LICENSE
|
|
||||||
mv 3rdparty/php-http/promise/LICENSE php-http-LICENSE
|
|
||||||
mv 3rdparty/php-opencloud/openstack/LICENSE php-opencloud-LICENSE
|
|
||||||
mv 3rdparty/phpseclib/phpseclib/LICENSE phpseclib-LICENSE
|
|
||||||
mv 3rdparty/psr/container/LICENSE psr-LICENSE
|
|
||||||
mv 3rdparty/psr/http-client/LICENSE psr-LICENSE
|
|
||||||
mv 3rdparty/psr/http-factory/LICENSE psr-LICENSE
|
|
||||||
mv 3rdparty/psr/http-message/LICENSE psr-LICENSE
|
|
||||||
mv 3rdparty/psr/log/LICENSE psr-LICENSE
|
|
||||||
mv 3rdparty/punic/punic/LICENSE.txt punic-LICENSE.txt
|
|
||||||
mv 3rdparty/punic/punic/UNICODE-LICENSE.txt punic-UNICODE-LICENSE
|
|
||||||
mv 3rdparty/ralouphie/getallheaders/LICENSE ralouphie-LICENSE
|
|
||||||
mv 3rdparty/ramsey/uuid/LICENSE ramsey-LICENSE
|
|
||||||
mv 3rdparty/react/promise/LICENSE react-LICENSE
|
|
||||||
mv 3rdparty/sabre/dav/lib/DAV/Browser/assets/openiconic/ICON-LICENSE sabre-ICON-LICENSE
|
|
||||||
mv 3rdparty/sabre/dav/LICENSE sabre-LICENSE
|
|
||||||
mv 3rdparty/sabre/event/LICENSE sabre-LICENSE
|
|
||||||
mv 3rdparty/sabre/http/LICENSE sabre-LICENSE
|
|
||||||
mv 3rdparty/sabre/uri/LICENSE sabre-LICENSE
|
|
||||||
mv 3rdparty/sabre/vobject/LICENSE sabre-LICENSE
|
|
||||||
mv 3rdparty/sabre/xml/LICENSE sabre-LICENSE
|
|
||||||
mv 3rdparty/scssphp/scssphp/LICENSE.md scssphp-LICENSE.md
|
|
||||||
mv 3rdparty/spomky-labs/base64url/LICENSE spomky-labs-LICENSE
|
|
||||||
mv 3rdparty/spomky-labs/cbor-php/LICENSE spomky-labs-LICENSE
|
|
||||||
mv 3rdparty/stecman/symfony-console-completion/LICENCE stecman-LICENSE
|
|
||||||
mv 3rdparty/symfony/console/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/event-dispatcher-contracts/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/event-dispatcher/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/polyfill-ctype/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/polyfill-iconv/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/polyfill-intl-idn/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/polyfill-mbstring/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/polyfill-php56/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/polyfill-php72/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/polyfill-php73/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/polyfill-php80/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/polyfill-util/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/process/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/routing/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/service-contracts/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/translation-contracts/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/symfony/translation/LICENSE symfony-LICENSE
|
|
||||||
mv 3rdparty/web-auth/cose-lib/LICENSE web-auth-LICENSE
|
|
||||||
mv 3rdparty/web-auth/metadata-service/LICENSE web-auth-LICENSE
|
|
||||||
mv 3rdparty/web-auth/webauthn-lib/LICENSE web-auth-LICENSE
|
|
||||||
mv apps/accessibility/composer/composer/LICENSE accessibility-LICENSE
|
|
||||||
mv apps/admin_audit/composer/composer/LICENSE admin_audit-LICENSE
|
|
||||||
mv apps/cloud_federation_api/composer/composer/LICENSE cloud_federation_api-LICENSE
|
|
||||||
mv apps/cloud_federation_api/LICENSE cloud_federation_api-LICENSE
|
|
||||||
mv apps/comments/composer/composer/LICENSE comments-LICENSE
|
|
||||||
mv apps/contactsinteraction/composer/composer/LICENSE contactsinteraction-LICENSE
|
|
||||||
mv apps/dav/composer/composer/LICENSE dav-LICENSE
|
|
||||||
mv apps/encryption/composer/composer/LICENSE encryption-LICENSE
|
|
||||||
mv apps/federatedfilesharing/composer/composer/LICENSE federatedfilesharing-LICENSE
|
|
||||||
mv apps/federation/composer/composer/LICENSE federation-LICENSE
|
|
||||||
mv apps/files/composer/composer/LICENSE files-LICENSE
|
|
||||||
mv apps/files_external/3rdparty/composer/LICENSE files_external-LICENSE
|
|
||||||
mv apps/files_external/3rdparty/icewind/smb/LICENSE.txt icewind-smb-LICENSE
|
|
||||||
mv apps/files_external/3rdparty/icewind/streams/LICENCE icewind-streams-LICENSE
|
|
||||||
mv apps/files_pdfviewer/js/pdfjs/LICENSE js-pdfjs-LICENSE
|
|
||||||
mv apps/files_pdfviewer/js/pdfjs/web/cmaps/LICENSE js-pdfjs-cmaps-LICENSE
|
|
||||||
mv apps/files_rightclick/COPYING files_rightclick-COPYING
|
|
||||||
mv apps/files_rightclick/LICENSE files_rightclick-LICENSE
|
|
||||||
mv apps/files_sharing/composer/composer/LICENSE files_sharing-LICENSE
|
|
||||||
mv apps/files_trashbin/composer/composer/LICENSE files_trashbin-LICENSE
|
|
||||||
mv apps/files_versions/composer/composer/LICENSE files_versions-LICENSE
|
|
||||||
mv apps/lookup_server_connector/composer/composer/LICENSE lookup_server_connector-LICENSE
|
|
||||||
mv apps/nextcloud_announcements/COPYING nextcloud_announcements-COPYING
|
|
||||||
mv apps/notifications/COPYING notifications-LICENSE
|
|
||||||
mv apps/oauth2/composer/composer/LICENSE oauth2-LICENSE
|
|
||||||
mv apps/password_policy/LICENSE password_policy-LICENSE
|
|
||||||
mv apps/photos/COPYING photos-COPYING
|
|
||||||
mv apps/privacy/COPYING privacy-COPYING
|
|
||||||
mv apps/provisioning_api/composer/composer/LICENSE provisioning_api-LICENSE
|
|
||||||
mv apps/recommendations/LICENSE recommendations-LICENSE
|
|
||||||
mv apps/serverinfo/COPYING serverinfo-LICENSE
|
|
||||||
mv apps/settings/composer/composer/LICENSE settings-LICENSE
|
|
||||||
mv apps/sharebymail/composer/composer/LICENSE sharebymail-LICENSE
|
|
||||||
mv apps/survey_client/COPYING survey_client-LICENSE
|
|
||||||
mv apps/systemtags/composer/composer/LICENSE systemtags-LICENSE
|
|
||||||
mv apps/text/COPYING text-COPYING
|
|
||||||
mv apps/theming/js/3rdparty/jscolor/LICENSE.txt jscolor-LICENSE
|
|
||||||
mv apps/twofactor_backupcodes/composer/composer/LICENSE twofactor_backupcodes-LICENSE
|
|
||||||
mv apps/updatenotification/composer/composer/LICENSE updatenotification-LICENSE
|
|
||||||
mv apps/user_ldap/composer/composer/LICENSE user_ldap-LICENSE
|
|
||||||
mv apps/user_ldap/vendor/ui-multiselect/MIT-LICENSE js-jqueryui-multiselect-LICENSE
|
|
||||||
mv apps/user_status/composer/composer/LICENSE user_status-LICENSE
|
|
||||||
mv apps/viewer/COPYING viewer-COPYING
|
|
||||||
mv apps/workflowengine/composer/composer/LICENSE workflowengine-LICENSE
|
|
||||||
mv COPYING nextcloud-LICENSE
|
|
||||||
mv core/fonts/LICENSE_OFL.txt fonts-LICENSE
|
|
||||||
mv core/vendor/zxcvbn/LICENSE.txt zxcvbn-LICENSE
|
|
||||||
mv lib/composer/composer/LICENSE composer-LICENSE
|
|
||||||
|
|
||||||
|
|
||||||
%check
|
|
||||||
# Make sure there are no license files left over
|
|
||||||
nb=$( find . -mindepth 2 \( -name '*LICENSE*' -o -name '*LICENCE*' -o -name '*COPYING*' \) | wc -l )
|
|
||||||
if [ $nb -gt 0 ]
|
|
||||||
then
|
|
||||||
false found unexpected licenses to verify
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
%build
|
|
||||||
# Nothing to build
|
|
||||||
|
|
||||||
%install
|
|
||||||
install -dm 755 %{buildroot}%{_datadir}/%{name}
|
|
||||||
|
|
||||||
# create nextcloud datadir
|
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/lib/%{name}/data
|
|
||||||
# create writable app dir for appstore
|
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/lib/%{name}/apps
|
|
||||||
# create nextcloud sysconfdir
|
|
||||||
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
|
|
||||||
|
|
||||||
# install content
|
|
||||||
for d in $(find . -mindepth 1 -maxdepth 1 -type d | grep -v config); do
|
|
||||||
cp -a "$d" %{buildroot}%{_datadir}/%{name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for f in {*.php,*.html,robots.txt}; do
|
|
||||||
install -pm 644 "$f" %{buildroot}%{_datadir}/%{name}
|
|
||||||
done
|
|
||||||
|
|
||||||
# occ should be executable
|
|
||||||
install -pm 755 occ %{buildroot}%{_datadir}/%{name}
|
|
||||||
|
|
||||||
# symlink config dir
|
|
||||||
ln -sf %{_sysconfdir}/%{name} %{buildroot}%{_datadir}/%{name}/config
|
|
||||||
|
|
||||||
# nextcloud looks for ca-bundle.crt in config dir
|
|
||||||
ln -sf %{_sysconfdir}/pki/tls/certs/ca-bundle.crt %{buildroot}%{_sysconfdir}/%{name}/ca-bundle.crt
|
|
||||||
|
|
||||||
# set default config
|
|
||||||
install -pm 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/%{name}/config.php
|
|
||||||
|
|
||||||
# httpd config
|
|
||||||
install -Dpm 644 %{SOURCE100} \
|
|
||||||
%{buildroot}%{_sysconfdir}/httpd/conf.d/%{name}.conf
|
|
||||||
install -Dpm 644 %{SOURCE101} \
|
|
||||||
%{buildroot}%{_sysconfdir}/httpd/conf.d/%{name}-access.conf.avail
|
|
||||||
install -Dpm 644 %{SOURCE102} %{SOURCE103} %{SOURCE104} %{SOURCE105} \
|
|
||||||
%{buildroot}%{_sysconfdir}/httpd/conf.d/
|
|
||||||
|
|
||||||
# nginx config
|
|
||||||
install -Dpm 644 %{SOURCE200} \
|
|
||||||
%{buildroot}%{_sysconfdir}/nginx/default.d/%{name}.conf
|
|
||||||
install -Dpm 644 %{SOURCE201} \
|
|
||||||
%{buildroot}%{_sysconfdir}/nginx/conf.d/%{name}.conf
|
|
||||||
|
|
||||||
# php-fpm config
|
|
||||||
install -Dpm 644 %{SOURCE202} \
|
|
||||||
%{buildroot}%{_sysconfdir}/php-fpm.d/%{name}.conf
|
|
||||||
|
|
||||||
# Install the systemd timer
|
|
||||||
install -Dpm 644 %{SOURCE2} %{buildroot}%{_unitdir}/nextcloud-cron.service
|
|
||||||
install -Dpm 644 %{SOURCE3} %{buildroot}%{_unitdir}/nextcloud-cron.timer
|
|
||||||
|
|
||||||
%post httpd
|
|
||||||
/usr/bin/systemctl reload httpd.service > /dev/null 2>&1 || :
|
|
||||||
/usr/bin/systemctl reload php-fpm.service > /dev/null 2>&1 || :
|
|
||||||
|
|
||||||
%postun httpd
|
|
||||||
if [ $1 -eq 0 ]; then
|
|
||||||
/usr/bin/systemctl reload httpd.service > /dev/null 2>&1 || :
|
|
||||||
/usr/bin/systemctl reload php-fpm.service > /dev/null 2>&1 || :
|
|
||||||
fi
|
|
||||||
|
|
||||||
%post nginx
|
|
||||||
/usr/bin/systemctl reload nginx.service > /dev/null 2>&1 || :
|
|
||||||
/usr/bin/systemctl reload php-fpm.service > /dev/null 2>&1 || :
|
|
||||||
|
|
||||||
%postun nginx
|
|
||||||
if [ $1 -eq 0 ]; then
|
|
||||||
/usr/bin/systemctl reload nginx.service > /dev/null 2>&1 || :
|
|
||||||
/usr/bin/systemctl reload php-fpm.service > /dev/null 2>&1 || :
|
|
||||||
fi
|
|
||||||
|
|
||||||
%files
|
|
||||||
%doc AUTHORS README.fedora MIGRATION.fedora config/config.sample.php
|
|
||||||
%license *-LICENSE
|
|
||||||
%dir %attr(-,apache,apache) %{_sysconfdir}/%{name}
|
|
||||||
# contains sensitive data (dbpassword, passwordsalt)
|
|
||||||
%config(noreplace) %attr(0600,apache,apache) %{_sysconfdir}/%{name}/config.php
|
|
||||||
# need the symlink in confdir but it's not config
|
|
||||||
%{_sysconfdir}/%{name}/ca-bundle.crt
|
|
||||||
%{_datadir}/%{name}
|
|
||||||
%dir %attr(0755,apache,apache) %{_localstatedir}/lib/%{name}
|
|
||||||
# user data must not be world readable
|
|
||||||
%dir %attr(0750,apache,apache) %{_localstatedir}/lib/%{name}/data
|
|
||||||
%attr(-,apache,apache) %{_localstatedir}/lib/%{name}/apps
|
|
||||||
%{_unitdir}/nextcloud-cron.service
|
|
||||||
%{_unitdir}/nextcloud-cron.timer
|
|
||||||
|
|
||||||
%files httpd
|
|
||||||
%config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}.conf
|
|
||||||
%{_sysconfdir}/httpd/conf.d/%{name}-access.conf.avail
|
|
||||||
%{_sysconfdir}/httpd/conf.d/%{name}*.inc
|
|
||||||
%config(noreplace) %{_sysconfdir}/php-fpm.d/%{name}.conf
|
|
||||||
|
|
||||||
%files nginx
|
|
||||||
%config(noreplace) %{_sysconfdir}/nginx/default.d/%{name}.conf
|
|
||||||
%config(noreplace) %{_sysconfdir}/nginx/conf.d/%{name}.conf
|
|
||||||
%config(noreplace) %{_sysconfdir}/php-fpm.d/%{name}.conf
|
|
||||||
|
|
||||||
%files mysql
|
|
||||||
%doc README.mysql
|
|
||||||
%files postgresql
|
|
||||||
%doc README.postgresql
|
|
||||||
%files sqlite
|
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
|
||||||
%autochangelog
|
|
@ -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
|
|
1
sources
1
sources
@ -1 +0,0 @@
|
|||||||
SHA512 (nextcloud-20.0.11.tar.bz2) = 4863a7819a564655db0a7b49a7ca9be642ab5383cdeada5c3ce6fc4529fda522a4427eb4b3ba5e00e4719232fed6c1f9e606e11f38c35f8838f82247359f335b
|
|
@ -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
|
|
@ -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")
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user