diff options
author | Remi Collet <fedora@famillecollet.com> | 2017-03-25 08:26:56 +0100 |
---|---|---|
committer | Remi Collet <fedora@famillecollet.com> | 2017-03-25 08:26:56 +0100 |
commit | ff9fe5be0e0ac74625e5ae1538a548eaabc0d5a8 (patch) | |
tree | 5369c3e0bf803b0f05118e65b9efb6dd764ee2a5 | |
parent | 4498738a4235b7fceb27ee17174e4cee4c513f3d (diff) |
pull latest changes from Fedora + cron on EL6
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | owncloud-8.2.3-correct-cli-upgrade-command.patch | 13 | ||||
-rw-r--r-- | owncloud-9.1.4-correct-cli-upgrade.patch | 30 | ||||
-rw-r--r-- | owncloud-README.fedora | 11 | ||||
-rw-r--r-- | owncloud-systemd-timer.service | 8 | ||||
-rw-r--r-- | owncloud-systemd-timer.timer | 10 | ||||
-rw-r--r-- | owncloud.spec | 133 |
7 files changed, 176 insertions, 31 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6ddfb76 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.tar.bz2 +*.src.rpm diff --git a/owncloud-8.2.3-correct-cli-upgrade-command.patch b/owncloud-8.2.3-correct-cli-upgrade-command.patch deleted file mode 100644 index 95779fd..0000000 --- a/owncloud-8.2.3-correct-cli-upgrade-command.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/core/templates/update.admin.php b/core/templates/update.admin.php -index fbd3025..b9b00ef 100644 ---- a/core/templates/update.admin.php -+++ b/core/templates/update.admin.php -@@ -37,7 +37,7 @@ - <input class="updateButton" type="button" value="<?php p($l->t('Start update')) ?>"> - <div class="infogroup"> - <?php p($l->t('To avoid timeouts with larger installations, you can instead run the following command from your installation directory:')) ?> -- <pre>./occ upgrade</pre> -+ <pre>sudo -u apache php /usr/share/owncloud/occ upgrade</pre> - </div> - </div> - diff --git a/owncloud-9.1.4-correct-cli-upgrade.patch b/owncloud-9.1.4-correct-cli-upgrade.patch new file mode 100644 index 0000000..79a8593 --- /dev/null +++ b/owncloud-9.1.4-correct-cli-upgrade.patch @@ -0,0 +1,30 @@ +diff --git a/core/templates/update.admin.php b/core/templates/update.admin.php +index 24b2bee..1013892 100644 +--- a/core/templates/update.admin.php ++++ b/core/templates/update.admin.php +@@ -37,7 +37,7 @@ + <input class="updateButton" type="button" value="<?php p($l->t('Start update')) ?>"> + <div class="infogroup"> + <?php p($l->t('To avoid timeouts with larger installations, you can instead run the following command from your installation directory:')) ?> +- <pre>./occ upgrade</pre> ++ <pre>sudo -u apache php /usr/share/nextcloud/occ upgrade</pre> + </div> + </div> + +diff --git a/core/templates/update.use-cli.php b/core/templates/update.use-cli.php +index 52d40cd..945d4d9 100644 +--- a/core/templates/update.use-cli.php ++++ b/core/templates/update.use-cli.php +@@ -7,8 +7,10 @@ + } else { + p($l->t('Please use the command line updater because automatic updating is disabled in the config.php.')); + } ?><br><br> +- <?php +- print_unescaped($l->t('For help, see the <a target="_blank" rel="noreferrer" href="%s">documentation</a>.', [link_to_docs('admin-cli-upgrade')])); ?><br><br> ++ <code> ++sudo -u apache php /usr/share/nextcloud/occ upgrade ++</code> ++ <br><br> + </div> + </div> + </div> diff --git a/owncloud-README.fedora b/owncloud-README.fedora index df97145..c9fffe5 100644 --- a/owncloud-README.fedora +++ b/owncloud-README.fedora @@ -51,7 +51,7 @@ 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 ownCloud, the initial setup process will populate it with some more settings. Other settings that can be provided in this file are documented at: -https://doc.owncloud.org/server/8.2/admin_manual/configuration_server/config_sample_php_parameters.html +https://doc.owncloud.org/server/9.1/admin_manual/configuration_server/config_sample_php_parameters.html User Data --------- @@ -96,3 +96,12 @@ dnf install 'php-pecl(apcu)' For further information see http://owncloud.org/ and http://doc.owncloud.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 owncloud-cron.timer + diff --git a/owncloud-systemd-timer.service b/owncloud-systemd-timer.service new file mode 100644 index 0000000..1e18b1a --- /dev/null +++ b/owncloud-systemd-timer.service @@ -0,0 +1,8 @@ +[Unit] +Description=Cron for owncloud background jobs + +[Service] +Type=oneshot +ExecStart=/usr/bin/php -f /usr/share/owncloud/cron.php +User=apache + diff --git a/owncloud-systemd-timer.timer b/owncloud-systemd-timer.timer new file mode 100644 index 0000000..75aed99 --- /dev/null +++ b/owncloud-systemd-timer.timer @@ -0,0 +1,10 @@ +[Unit] +Description=This triggers the owncloud cron service + +[Timer] +OnBootSec=5min +OnUnitInactiveSec=15min + +[Install] +WantedBy=timers.target + diff --git a/owncloud.spec b/owncloud.spec index 1e72f2b..04dd266 100644 --- a/owncloud.spec +++ b/owncloud.spec @@ -7,9 +7,16 @@ # # Please preserve changelog entries # + +%if 0%{?fedora} < 19 && 0%{?rhel} < 7 +%global with_systemd 0 +%else +%global with_systemd 1 +%endif + Name: owncloud Version: 9.1.4 -Release: 2%{?dist} +Release: 5%{?dist} Summary: Private file sync and share server Group: Applications/Internet @@ -42,6 +49,10 @@ Source7: %{name}-config.php # Our autoloader for core Source8: %{name}-fedora-autoloader.php +# Systemd timer for background jobs +Source10: %{name}-systemd-timer.service +Source11: %{name}-systemd-timer.timer + # Stop OC from trying to do stuff to .htaccess files. Just calm down, OC. # Distributors are on the case. Patch2: %{name}-9.1.0-dont_update_htacess.patch @@ -56,7 +67,7 @@ Patch4: %{name}-9.1.0-google-autoloader.patch Patch5: %{name}-9.1.0-amazon-autoloader.patch # Display the appropriate upgrade command for fedora/epel users bz#1321417 -Patch6: %{name}-8.2.3-correct-cli-upgrade-command.patch +Patch6: %{name}-9.1.4-correct-cli-upgrade.patch # Disable the integrity checking whilst a better way to deal with it is found Patch7: %{name}-9.1.0-default_integrity_check_disabled.patch @@ -76,6 +87,13 @@ Patch11: %{name}-9.1.1-work-arround-nss-issue.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch +# For the systemd macros +%if %{with_systemd} +%{?systemd_requires} +BuildRequires: systemd +%else +Requires: crontabs +%endif # expand pear macros on install BuildRequires: php-pear @@ -90,41 +108,60 @@ BuildRequires: php-composer(mcnetic/zipstreamer) >= 1.0 BuildRequires: php-composer(mcnetic/zipstreamer) < 2.0 BuildRequires: php-composer(phpseclib/phpseclib) >= 2.0 BuildRequires: php-composer(phpseclib/phpseclib) < 3.0 -BuildRequires: php-opencloud >= 1.9.2 +BuildRequires: php-composer(rackspace/php-opencloud) >= 1.9.2 +BuildRequires: php-composer(rackspace/php-opencloud) < 2.0 BuildRequires: php-composer(jeremeamia/superclosure) >= 2.1.0 +BuildRequires: php-composer(jeremeamia/superclosure) < 3.0 BuildRequires: php-composer(bantu/ini-get-wrapper) >= 1.0.1 +BuildRequires: php-composer(bantu/ini-get-wrapper) < 2.0 BuildRequires: php-composer(natxet/CssMin) >= 3.0.4 +BuildRequires: php-composer(natxet/CssMin) < 4.0 BuildRequires: php-composer(punic/punic) >= 1.6.3 +BuildRequires: php-composer(punic/punic) < 2.0 BuildRequires: php-composer(pear/archive_tar) >= 1.4.1 BuildRequires: php-composer(pear/archive_tar) < 2.0 BuildRequires: php-composer(patchwork/utf8) >= 1.2.6 BuildRequires: php-composer(patchwork/utf8) < 2.0 BuildRequires: php-composer(symfony/console) >= 2.8.3 +BuildRequires: php-composer(symfony/console) < 3.0 BuildRequires: php-composer(symfony/event-dispatcher) >= 2.8.3 +BuildRequires: php-composer(symfony/event-dispatcher) < 3.0 BuildRequires: php-composer(symfony/routing) >= 2.8.1 +BuildRequires: php-composer(symfony/routing) < 3.0 BuildRequires: php-composer(symfony/process) >= 2.8.1 +BuildRequires: php-composer(symfony/process) < 3.0 BuildRequires: php-composer(pimple/pimple) >= 3.0.2 BuildRequires: php-composer(pimple/pimple) < 4.0 BuildRequires: php-composer(ircmaxell/password-compat) >= 1.0.0 +BuildRequires: php-composer(ircmaxell/password-compat) < 2.0 BuildRequires: php-composer(nikic/php-parser) >= 1.4.1 BuildRequires: php-composer(nikic/php-parser) < 2.0 BuildRequires: php-composer(icewind/streams) >= 0.5.2 +BuildRequires: php-composer(icewind/streams) < 1.0 BuildRequires: php-composer(swiftmailer/swiftmailer) >= 5.4.1 +BuildRequires: php-composer(swiftmailer/swiftmailer) < 6.0 BuildRequires: php-composer(guzzlehttp/guzzle) >= 5.3.0 BuildRequires: php-composer(guzzlehttp/guzzle) < 6.0 BuildRequires: php-composer(league/flysystem) >= 1.0.20 +BuildRequires: php-composer(league/flysystem) < 2.0 BuildRequires: php-composer(interfasys/lognormalizer) >= 1.0 +BuildRequires: php-composer(interfasys/lognormalizer) < 2.0 BuildRequires: php-composer(owncloud/tarstreamer) >= 0.1 +BuildRequires: php-composer(owncloud/tarstreamer) < 1.0 BuildRequires: php-composer(patchwork/jsqueeze) >= 2.0 BuildRequires: php-composer(patchwork/jsqueeze) < 3.0 BuildRequires: php-composer(kriswallsmith/assetic) >= 1.3.2-3 BuildRequires: php-composer(kriswallsmith/assetic) < 2.0 -BuildRequires: php-composer(icewind/smb) >= 1.1.0 +BuildRequires: php-composer(icewind/smb) >= 1.1.0 +BuildRequires: php-composer(icewind/smb) < 2.0 %if 0%{?rhel} != 5 BuildRequires: php-pecl(smbclient) >= 0.8.0 %endif -BuildRequires: php-google-apiclient >= 1.0.3 -BuildRequires: php-aws-sdk >= 2.7.0 +BuildRequires: php-composer(google/apiclient) >= 1.1.4 +# Note: 1.1.8 has BC breaks +BuildRequires: php-composer(google/apiclient) < 1.1.8 +BuildRequires: php-composer(aws/aws-sdk-php) >= 2.7.0 +BuildRequires: php-composer(aws/aws-sdk-php) < 3.0 BuildRequires: php-composer(symfony/yaml) >= 2.6.0 BuildRequires: php-composer(symfony/yaml) < 3.0.0 BuildRequires: php-pear(pear.dropbox-php.com/Dropbox) @@ -180,19 +217,24 @@ Requires: php-composer(phpseclib/phpseclib) < 3.0 #Requires: php-composer(rackspace/php-opencloud) >= 1.9.2 # pulls in guzzle/http as a strict requires # guzzle/http package include common, parser and stream too -Requires: php-opencloud >= 1.9.2 +Requires: php-composer(rackspace/php-opencloud) >= 1.9.2 +Requires: php-composer(rackspace/php-opencloud) < 2.0 # "jeremeamia/superclosure": "2.1.0" Requires: php-composer(jeremeamia/superclosure) >= 2.1.0 +Requires: php-composer(jeremeamia/superclosure) < 3.0 # "bantu/ini-get-wrapper": "v1.0.1" Requires: php-composer(bantu/ini-get-wrapper) >= 1.0.1 +Requires: php-composer(bantu/ini-get-wrapper) < 2.0 # "natxet/CssMin": "dev-master" Requires: php-composer(natxet/CssMin) >= 3.0.4 +Requires: php-composer(natxet/CssMin) < 4.0 # "punic/punic": "1.6.3" Requires: php-composer(punic/punic) >= 1.6.3 +Requires: php-composer(punic/punic) < 2.0 # "pear/archive_tar": "1.4.1" Requires: php-composer(pear/archive_tar) >= 1.4.1 @@ -204,12 +246,16 @@ Requires: php-composer(patchwork/utf8) < 2.0 # "symfony/console": "2.8.3" Requires: php-composer(symfony/console) >= 2.8.3 +Requires: php-composer(symfony/console) < 3.0 # "symfony/event-dispatcher": "2.8.3" Requires: php-composer(symfony/event-dispatcher) >= 2.8.3 +Requires: php-composer(symfony/event-dispatcher) < 3.0 # "symfony/routing": "2.8.1" Requires: php-composer(symfony/routing) >= 2.8.1 +Requires: php-composer(symfony/routing) < 3.0 # "symfony/process": "2.8.1" Requires: php-composer(symfony/process) >= 2.8.1 +Requires: php-composer(symfony/process) < 3.0 # "pimple/pimple": "3.0.2" Requires: php-composer(pimple/pimple) >= 3.0.2 @@ -217,6 +263,7 @@ Requires: php-composer(pimple/pimple) < 4.0 # "ircmaxell/password-compat": "1.0.*" Requires: php-composer(ircmaxell/password-compat) >= 1.0.0 +Requires: php-composer(ircmaxell/password-compat) < 2.0 # "nikic/php-parser": "1.4.1" Requires: php-composer(nikic/php-parser) >= 1.4.1 @@ -224,10 +271,12 @@ Requires: php-composer(nikic/php-parser) < 2.0 # "icewind/Streams": "0.5.2" Requires: php-composer(icewind/streams) >= 0.5.2 +Requires: php-composer(icewind/streams) < 1.0 # "swiftmailer/swiftmailer": "@stable" # Version 5.4.1 for autoloader in /usr/share/php Requires: php-composer(swiftmailer/swiftmailer) >= 5.4.1 +Requires: php-composer(swiftmailer/swiftmailer) < 6.0 # "guzzlehttp/guzzle": "5.3.0" # pulls in guzzlehttp/ringphp as strict requires @@ -237,20 +286,23 @@ Requires: php-composer(guzzlehttp/guzzle) < 6.0 # "league/flysystem": "1.0.20" Requires: php-composer(league/flysystem) >= 1.0.20 +Requires: php-composer(league/flysystem) < 2.0 # "pear/pear-core-minimal": "v1.10.1" -# this includes pear/console_getopt and pear/PEAR +# this includes pear/console_getopt and pear/PEAR # which is not listed in composer.json unlike archive_tar Requires: php-composer(pear/pear-core-minimal) >= 1.10.1 # "interfasys/lognormalizer": "v1.0" Requires: php-composer(interfasys/lognormalizer) >= 1.0 +Requires: php-composer(interfasys/lognormalizer) < 2.0 # "deepdiver1975/TarStreamer": "v0.1.0" # Despite the difference in name this is correct # https://github.com/owncloud/3rdparty/tree/master/deepdiver1975/tarstreamer Requires: php-composer(owncloud/tarstreamer) >= 0.1 +Requires: php-composer(owncloud/tarstreamer) < 1.0 # "patchwork/jsqueeze": "^2.0" Requires: php-composer(patchwork/jsqueeze) >= 2.0 @@ -290,7 +342,8 @@ Requires: php-composer(lukasreschke/id3parser) < 1.0.0 #"icewind/smb": "1.1.0" # note that streams is a dep but already required by core anyway -Requires: php-composer(icewind/smb) >= 1.1.0 +Requires: php-composer(icewind/smb) >= 1.1.0 +Requires: php-composer(icewind/smb) < 2.0 # This makes smb external storage usable in performance # and doesn't break things like encryption due to timeouts %if 0%{?rhel} != 5 @@ -314,17 +367,21 @@ Requires: %{_bindir}/smbclient Requires: php-pear(pear.dropbox-php.com/Dropbox) ## Google Drive external storage -Requires: php-google-apiclient >= 1.0.3 +## Version 1.1.4 for autoloader in /usr/share/php +## Note: 1.1.8 has BC breaks +Requires: php-composer(google/apiclient) >= 1.1.4 +Requires: php-composer(google/apiclient) < 1.1.8 ## AWS S3 external storage -Requires: php-aws-sdk >= 2.7.0 +Requires: php-composer(aws/aws-sdk-php) >= 2.7.0 +Requires: php-composer(aws/aws-sdk-php) < 3.0 -## For dependency of apps/gallery +## For dependency of apps/gallery # "symfony/yaml": "~2.6" Requires: php-composer(symfony/yaml) >= 2.6.0 Requires: php-composer(symfony/yaml) < 3.0.0 -%if 0%{?rhel} +%if 0%{?fedora} < 21 && 0%{?rhel} < 7 Requires(post): policycoreutils-python Requires(postun): policycoreutils-python %endif @@ -495,7 +552,7 @@ find -type d -empty -delete # remove extraneous files now we've cleaned up rm "LICENSE INFO" patches.txt -# add our Fedora autoloader +# add our Fedora autoloader cp %{SOURCE8} ./autoload.php # Set the vendor directory to macro based datadir in our autoloader @@ -515,11 +572,15 @@ cat << 'EOF' | tee apps/files_external/3rdparty/autoload.php require_once '%{_datadir}/php/Icewind/Streams/autoload.php'; require_once '%{_datadir}/php/Icewind/SMB/autoload.php'; require_once '%{_datadir}/pear/Dropbox/autoload.php'; -require_once '%{_datadir}/php/Google/autoload.php'; +if (file_exists('%{_datadir}/php/Google1/autoload.php')) { + require_once '%{_datadir}/php/Google1/autoload.php'; +} else { + require_once '%{_datadir}/php/Google/autoload.php'; +} require_once '%{_datadir}/php/Aws/autoload.php'; EOF -# remove gallery external bundled libraries +# remove gallery external bundled libraries rm -r apps/gallery/vendor/{symfony,composer*} rm apps/gallery/composer.lock @@ -604,7 +665,7 @@ for d in $(find . -mindepth 1 -maxdepth 1 -type d | grep -v config); do done for f in {*.php,*.xml,*.html,occ,robots.txt}; do - install -pm 644 "$f" %{buildroot}%{_datadir}/%{name} + install -pm 644 "$f" %{buildroot}%{_datadir}/%{name} done # symlink config dir @@ -637,6 +698,20 @@ install -Dpm 644 %{SOURCE202} \ %{buildroot}%{_sysconfdir}/php-fpm.d/%{name}.conf %endif +%if %{with_systemd} +# Install the systemd timer +install -Dpm 644 %{SOURCE10} %{buildroot}%{_unitdir}/%{name}-cron.service +install -Dpm 644 %{SOURCE11} %{buildroot}%{_unitdir}/%{name}-cron.timer +%else +install -d %{buildroot}%{_sysconfdir}/cron.d/ +cat <<EOF | tee %{buildroot}%{_sysconfdir}/cron.d/%{name} +# Cron for owncloud background jobs + +# Uncomment to activate +# */15 * * * * apache %{_bindir}/php %{_datadir}/owncloud/cron.php +EOF +%endif + %if 0%{?fedora} < 21 && 0%{?rhel} < 7 %post @@ -709,6 +784,7 @@ rm -rf %{buildroot} %doc AUTHORS COPYING-AGPL README.fedora config/config.sample.php %doc *_composer.json + %dir %attr(-,apache,apache) %{_sysconfdir}/%{name} # contains sensitive data (dbpassword, passwordsalt) %config(noreplace) %attr(0600,apache,apache) %{_sysconfdir}/%{name}/config.php @@ -721,6 +797,13 @@ rm -rf %{buildroot} %dir %attr(0750,apache,apache) %{_localstatedir}/lib/%{name}/data %attr(-,apache,apache) %{_localstatedir}/lib/%{name}/apps +%if %{with_systemd} +%{_unitdir}/%{name}-cron.service +%{_unitdir}/%{name}-cron.timer +%else +%config(noreplace) %{_sysconfdir}/cron.d/%{name} +%endif + %files httpd %defattr(-,root,root,-) @@ -747,6 +830,22 @@ rm -rf %{buildroot} %changelog +* Sat Mar 25 2017 Remi Collet <remi@remirepo.net> - 9.1.4-5 +- backport latest Fedora changes +- add disabled /etc/cron.d/owncloud on EL <= 6 + +* Fri Mar 24 2017 Shawn Iwinski <shawn.iwinski@gmail.com> - 9.1.4-5 +- 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 + +* Mon Mar 06 2017 James Hogarth <james.hogarth@gmail.com> - 9.1.4-4 +- A nextcloud slipped in by accident with the systemd timer unit name + +* Tue Feb 28 2017 James Hogarth <james.hogarth@gmail.com> - 9.1.4-3 +- Add optional systemd timer for cron bz#1419344 +- Better message for Fedora users on large installs bz#1410117 + * Fri Feb 17 2017 Remi Collet <remi@remirepo.net> - 9.1.4-2 - apply missing patch (integrity check) |