Compare commits

..

1005 Commits

Author SHA1 Message Date
Lukas Reschke 90411cdb01 9.0.55
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-09 11:03:59 +01:00
Lukas Reschke 0820514b66 v9.0.55RC2
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-07 15:46:57 +01:00
Lukas Reschke 8491cfe878 Merge pull request #2467 from nextcloud/backport-1972-invalid-files-from-scanner-9
[stable9] Make sure we don't scan files that can not be accessed
2016-12-05 23:29:01 +01:00
Lukas Reschke 9fee1ac405 Merge pull request #2518 from nextcloud/stable9-rc-1
9.0.55 RC1
2016-12-05 22:23:24 +01:00
Lukas Reschke 1d8913f9d5 9.0.55 RC1
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-05 21:50:19 +01:00
Roeland Jago Douma 3e670cde9c Merge pull request #2488 from nextcloud/update-cache-success-9
[9] only update the cache if the storage operation succeeds
2016-12-02 20:06:07 +01:00
Robin Appelman b9ff7172f2 only update the cache if the storage operation succeeds
Signed-off-by: Robin Appelman <robin@icewind.nl>
2016-12-02 18:56:29 +01:00
Joas Schilling 5a7dfcacc5 Make sure we don't scan files that can not be accessed
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-12-02 11:14:47 +01:00
Morris Jobke 72eb5d14e9 Merge pull request #2455 from nextcloud/stable9-1872
[stable9] Fix misleading SSL/TLS SMTP email configuration
2016-12-02 10:57:47 +01:00
Morris Jobke 9965df71e0 Merge pull request #2453 from nextcloud/stable9-1826
[stable9] Fix post_unshareFromSelf hook parameter format
2016-12-02 10:40:54 +01:00
Morris Jobke 3a3e272102 Merge pull request #2461 from nextcloud/stable9-2010
[stable9] Fixed disappearing of share info in file view
2016-12-02 10:39:26 +01:00
Roeland Jago Douma d0858a4a03 Merge pull request #2458 from nextcloud/stable9-2457
[stable9] Tear down FS between cron jobs (#26223)
2016-12-02 08:16:39 +01:00
Roeland Jago Douma 313b9a0976 Merge pull request #2450 from nextcloud/stable9-1745
[stable9] fix typo
2016-12-02 08:15:10 +01:00
Michael Jobst 8f5b9880cf Fixed disappearing of share info in file view 2016-12-02 01:24:05 +01:00
Vincent Petry 49ba3c0bdc [master] Tear down FS between cron jobs (#26223)
Because some cron jobs do not always properly clean up their FS usage
and others might not clean up before setting up the FS, this could
cause potential side effects.

To make sure we exclude side effects, we tear down the FS between cron
jobs.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-12-02 01:13:55 +01:00
Joas Schilling be28a9e5f0 Fix misleading SSL/TLS SMTP email configuration
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-12-02 01:05:15 +01:00
Vincent Petry a05bdcf1df Fix post_unshareFromSelf hook parameter format
When unsharing from self in a group share situation, the share items
passed to the post_unshareFromSelf hook were using the wrong format in
which the attribute names (ex: "share_type") have non camel-case format.

This fix makes sure that in group sharing case we use the correct
format. It looks like the code was already producing it but in
array_merge it was not using it and adding the unprocessed one.
2016-12-02 00:59:31 +01:00
Thomas Citharel 08f572dd37 fix typo
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2016-12-02 00:40:52 +01:00
Morris Jobke 5fc4d45409 Merge pull request #2446 from nextcloud/stable9-detect-also-a-400-status
[stable9] Catch status code 400
2016-12-01 22:57:13 +01:00
Roeland Jago Douma 8f5509c826 Merge pull request #2439 from nextcloud/stable9-dont-allow-subfolders-for-write-only-shares
[stable9] On write-only shares do not allow to specify subfolders
2016-12-01 20:22:55 +01:00
Lukas Reschke 7e272adf25 [stable9] Catch status code 400
In case the server returns a statuscode 400 we should also gracefully return to the home directory.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-01 19:16:36 +01:00
Lukas Reschke e492474b7c [stable9] On write-only shares do not allow to specify subfolders
In case of a write-only share we should not allow to specify a subfolder as this is unexpected behaviour.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-01 16:16:50 +01:00
Morris Jobke 8468d7af8b Merge pull request #2120 from nextcloud/stable9_2100
[stable9] Fixes not allowed increasing of link share permissions
2016-11-17 21:38:56 +01:00
Roeland Jago Douma 9bd2effca6 Add tests
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-11-15 09:40:41 +01:00
Roeland Jago Douma 9666786655 [stable9] Fixes not allowed increasing of link share permissions
Backport of #2100

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-11-14 15:46:03 +01:00
Morris Jobke aef790a346 Merge pull request #2060 from nextcloud/backport-2058-better-error-message-for-installation-error-9
[stable9] Use a better error message and point the users to the support channels
2016-11-09 14:02:11 +01:00
Joas Schilling ef53c5f75c Correctly catch the "soft errors" now
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-11-09 10:30:52 +01:00
Joas Schilling 37b02fdcae Use a better error message and point the users to the support channels
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-11-09 09:25:47 +01:00
Joas Schilling 3773af9af5 Fix help link
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-11-09 09:23:04 +01:00
Roeland Jago Douma 6f562d0107 Merge pull request #2057 from nextcloud/stable9-fix-public-button
[stable9] fix button on public upload page
2016-11-09 08:14:09 +01:00
Jan-Christoph Borchardt 63edd5aa0e fix button on public upload page
Signed-off-by: Jan-Christoph Borchardt <hey@jancborchardt.net>
2016-11-08 22:54:46 +01:00
Christoph Wurst a7da7f7939 Merge pull request #2049 from nextcloud/stable9-update-containers
[stable9] Update containers to latest version
2016-11-08 15:38:18 +01:00
Morris Jobke 4fa2228a9f Update containers to latest version
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2016-11-08 14:35:26 +01:00
Roeland Jago Douma b23f3755ca Merge pull request #1900 from nextcloud/stable9-php-7.1.0-check
[stable9] console.php also needs a PHP 7.1 check
2016-10-25 10:15:38 +02:00
Morris Jobke 5632d57997 console.php also needs a PHP 7.1 check
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2016-10-25 09:23:10 +02:00
Roeland Jago Douma eb47c20bdc Merge pull request #1770 from nextcloud/backport-1766-force-uid-casing-on-transfer-ownership-9
[stable9] Make sure the UID is correctly cased
2016-10-24 11:36:02 +02:00
Joas Schilling e12e27fa65 Fix issues where some user settings cannot be loaded when the user id differs in case sensitivity
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-10-21 11:25:22 +02:00
Morris Jobke 5212549490 Merge pull request #1819 from nextcloud/stable9-fullscreen-icon
[stable9] add fullscreen icon
2016-10-20 16:42:53 +02:00
Jan-Christoph Borchardt 03fa66a90a add fullscreen icon
Signed-off-by: Jan-Christoph Borchardt <hey@jancborchardt.net>
2016-10-20 13:27:16 +02:00
Joas Schilling 300d60de8a Merge pull request #1799 from nextcloud/backport-1740-numeric-quota-9
[stable9] Make sure we only use numbers as length
2016-10-19 16:13:37 +02:00
Joas Schilling a13ec4d488 Make sure we only use numbers as length
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-10-19 11:43:53 +02:00
Joas Schilling 6902fb578f Make sure the UID is correctly cased
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-10-17 14:38:13 +02:00
Joas Schilling 55f5f5061d Merge pull request #1719 from nextcloud/stable9-backport-1580
[stable9] Unset user PHOTO before setting new one in OCA\DAV\CardDAV\Converter:…
2016-10-12 13:13:48 +02:00
Olivier Mehani 69a58d539d Unset user PHOTO before setting new one in OCA\DAV\CardDAV\Converter::updateCard (#26243)
Signed-off-by: Olivier Mehani <shtrom@ssji.net>

#26242
2016-10-12 11:21:09 +02:00
blizzz f82ef09150 Merge pull request #1698 from nextcloud/backport-1558-remove-notifications-upon-user-deletion-9
[stable9] Remove notifications upon user deletion
2016-10-11 16:48:15 +02:00
Roeland Jago Douma 30bc368a6e Merge pull request #1687 from nextcloud/backport-1638-allow-cross-repository-execution-9
[stable9] Allow to call the files even when you are in another instance atm
2016-10-11 15:23:11 +02:00
Roeland Jago Douma 6fdef86eeb Merge pull request #1690 from nextcloud/backport-1586-fix-multi-translation-names-and-descriptions-9
[stable9] Fix multi translation names and descriptions
2016-10-11 14:29:04 +02:00
Roeland Jago Douma d7dbec5ee5 Merge pull request #1696 from nextcloud/stable9-backport-1679
[stable9] Improve user list rendering perf by not resorting after every add (#2…
2016-10-11 14:25:44 +02:00
Roeland Jago Douma 85cca958e6 Merge pull request #1699 from nextcloud/stable9-backport-1644
[stable9] Set proper web title for apple
2016-10-11 14:22:06 +02:00
Joas Schilling 1d9738006a Only trigger postDelete hooks when the user was deleted...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-10-11 14:18:01 +02:00
Joas Schilling 203c5f745e Make sure that comments, notifications and preferences are deleted
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-10-11 14:18:01 +02:00
Roeland Jago Douma 81d5255989 Set proper web title for apple
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2016-10-11 10:56:50 +02:00
Joas Schilling 1b006b9d6e Remove notifications upon user deletion
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-10-11 10:49:40 +02:00
Vincent Petry 1bc2da1c60 Improve user list rendering perf by not resorting after every add (#26282)
The call to UserList.add() was wrong and was passing "user.lastLogin"
as the sort argument which would cause the list to be resorted over and
over again for every added item after loading the next page of users.
2016-10-11 10:43:43 +02:00
Joas Schilling 4074d90ef1 Better search functionality
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-10-11 10:39:03 +02:00
Joas Schilling a6859fd863 Fix authors that have a mail or homepage
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-10-11 10:38:45 +02:00
Joas Schilling ee2d77279f Fallback from "de" to "de_DE" and the other way around
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-10-11 10:09:21 +02:00
Joas Schilling a61cab80d5 Fix displaying and searching with multiple authors
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-10-11 10:07:35 +02:00
Joas Schilling 45d5f7adc2 Allow multiple names and description
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-10-11 10:06:56 +02:00
Joas Schilling f908feddb5 Allow to call the files even when you are in another instance atm
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-10-11 09:49:27 +02:00
Morris Jobke 2f546eab71 Merge pull request #1647 from nextcloud/stable9-backport-1562
[stable9] log version number in each log line
2016-10-10 08:30:26 +02:00
Joas Schilling 74bb7e1c58 Merge pull request #1650 from nextcloud/stable9-backport-1633
[stable9] Update root certificate list
2016-10-07 13:29:58 +02:00
Lukas Reschke a4c55945df Update root certificate list
Syncs with the newest certificate list by Mozilla.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-10-07 11:01:51 +02:00
Morris Jobke a8d2aacaa2 log version number in each log line
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2016-10-07 10:20:26 +02:00
Lukas Reschke 36750094f8 Make it 9.0.54 2016-09-28 15:23:24 +02:00
Lukas Reschke a217829454 Merge pull request #1556 from nextcloud/stable9-updatestate-can-be-empty
[Stable9] updatestate can be empty
2016-09-28 13:03:32 +02:00
Lukas Reschke 6ac02d4aac UpdateState is empty if no update is available
This leads to log messages such as "Undefined index: updaterEnabled at /media/psf/nextcloud/apps/updatenotification/lib/Controller/AdminController.php#116".
2016-09-28 12:33:57 +02:00
Lukas Reschke d2c51750af Make it 9.0.54 RC4 2016-09-27 16:36:54 +02:00
Lukas Reschke 16a845f357 Make it 9.0.54 RC3 2016-09-27 16:07:52 +02:00
Lukas Reschke 50bfd21dce Merge pull request #1542 from nextcloud/backport-1540-switch-for-autoupdater-control-9
[stable9] Switch for autoupdater control
2016-09-27 16:07:00 +02:00
Joas Schilling 40ad62306d Use the same URL everywhere
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-09-27 15:19:39 +02:00
Joas Schilling 1167e695d3 Respect updater kill switch and fall back to download button
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-09-27 15:14:40 +02:00
Joas Schilling 182f6ec6c6 Return the autoupdater value from the server
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-09-27 15:06:59 +02:00
Lukas Reschke abce80b55a Make it 9.0.54 RC2 2016-09-26 22:32:13 +02:00
Lukas Reschke 2d14612f67 Merge pull request #1501 from nextcloud/stable9-backport-1499
[stable9] Add repair step and revert "Open updater" button
2016-09-26 22:29:09 +02:00
Morris Jobke 91757e7128 Revert "[stable9] Don't show the updater if updater is incompatible"
This reverts commit 5e2bf16db1.
2016-09-26 14:41:30 +02:00
Morris Jobke 2fb10ce629 Add repair step to remove .step file after update
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2016-09-23 14:10:28 +02:00
Morris Jobke 8c133451ac Revert "Fix tests"
This reverts commit 997e4cf3fe.

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2016-09-23 13:59:55 +02:00
Morris Jobke 7a135d8d81 Revert "Show an update button instead of the updater"
This reverts commit b42ee95383.

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2016-09-23 13:59:46 +02:00
Lukas Reschke f7d53513b1 Change version to 9.0.54 2016-09-21 10:40:35 +02:00
Morris Jobke dc54b26d5f Merge pull request #1416 from nextcloud/add-vendor-9
Add vendor to stable9, so the release script can handle all the same
2016-09-16 17:57:49 +02:00
Joas Schilling 1ce3957a23 Add vendor to stable9, so the release script can handle all the same 2016-09-15 12:12:35 +02:00
Lukas Reschke 167f29dd6d Change version to 9.0.54 RC1 2016-09-14 20:16:05 +02:00
Lukas Reschke 678575e38a Change version to 9.0.53 RC1 2016-09-14 20:03:26 +02:00
Morris Jobke a0a382128f Merge pull request #1403 from nextcloud/stable9-backport-1399
[stable9] Move Travis tests to DroneCI
2016-09-14 09:37:39 +02:00
Lukas Reschke 5c3e1211d1 Move Travis tests to DroneCI
Should give us some quicker test execution speed as we're not limited by Travis

Explicitly invoke with "bash"

Install instance already

Use newest litmus container
2016-09-14 09:13:47 +02:00
Roeland Jago Douma c59e607d74 Merge pull request #1392 from nextcloud/stable9-backport-1376
[stable9] Allow increasing permissions for share owner
2016-09-13 15:43:39 +02:00
Vincent Petry c1c21da1f2 Allow increasing permissions for share owner
In some cases, the owner of the share is also recipient through a group
share. The owner must still be able to increase permissions in that
situation.
2016-09-13 12:12:42 +02:00
Morris Jobke bd86ca9976 Merge pull request #1390 from nextcloud/stable9-drone-update
[stable9] Update drone.yml layout
2016-09-13 11:37:13 +02:00
Morris Jobke 603fbd70f4 Update drone.yml layout
* add matrix
* improve cline speed
2016-09-13 10:58:32 +02:00
Morris Jobke 6b77bdb2be Merge pull request #1388 from nextcloud/better-mentions-9
[stable9] Try to mention 3 people that will leave comments
2016-09-13 10:42:33 +02:00
Morris Jobke 99eb6e10f8 add nextcloud-bot to userBlacklist 2016-09-13 10:36:29 +02:00
Joas Schilling a5828a37f5 Try to mention 3 people that will leave comments 2016-09-13 10:36:26 +02:00
Morris Jobke a0d63d4b13 Merge pull request #1344 from nextcloud/stable9-throw-exceptions-not-printable
[stable9] Don't print exception message in HTML
2016-09-09 14:57:18 +02:00
Lukas Reschke a4cfb3ddc1 Don't print exception message in HTML
The exception message is potentially influenced by user input and could thus be confusing (e.g. somebody could try to open a file like "Please send a mail to support@foo.com", and then the message would include that string.

It is thus reasonable to not show the exception message by default. Also for the browser view I added an `exit()` at the end, as otherwise the XML exception would be attached.
2016-09-09 14:17:14 +02:00
Joas Schilling 36c554718f Merge pull request #1325 from nextcloud/backport-1323-show-download-button-for-updates-atm-9
[stable9] Show an download button instead of the updater
2016-09-08 16:58:17 +02:00
Joas Schilling 4071982454 Change updater URL 2016-09-08 12:28:32 +02:00
Morris Jobke 0ffb5e075b Merge pull request #1321 from nextcloud/backport-1301-fix-required-permissions-for-webdav-move-and-copy-9
[stable9] Fix required permissions for webdav move and copy
2016-09-08 12:15:38 +02:00
Joas Schilling 997e4cf3fe Fix tests 2016-09-08 11:16:50 +02:00
Joas Schilling b42ee95383 Show an update button instead of the updater 2016-09-08 11:08:17 +02:00
Joas Schilling 86a673a05a Fix tests 2016-09-08 09:47:49 +02:00
Joas Schilling a69fe583f8 UPDATE permissions qualify for renaming a node 2016-09-08 09:43:12 +02:00
Joas Schilling 338ce725c7 Only require CREATE permissions when the file does not exist yet 2016-09-08 09:41:58 +02:00
Lukas Reschke 83515c90e9 Merge pull request #1313 from nextcloud/stable9-backport-1307
[stable9] Fix layout of success message and text
2016-09-07 22:46:54 +02:00
Morris Jobke 18005be13d Fix layout of success message and text 2016-09-07 19:19:39 +02:00
Roeland Jago Douma afc928d133 Merge pull request #1289 from nextcloud/backport-1284-allow-status.php-before-install-9
[stable9] Allow to call status.php before the instance is installed
2016-09-07 16:29:04 +02:00
Morris Jobke b627ecac92 Merge pull request #1295 from nextcloud/stable9-backport-1292
[stable9] Add icon for the theming app
2016-09-07 09:53:03 +02:00
Felix Epp 624de76e24 Add icon for the theming app 2016-09-07 08:36:27 +02:00
Joas Schilling 930fd6fb56 Also fix "occ status" 2016-09-06 16:13:41 +02:00
Joas Schilling 8ada5e6ca7 Don't throw 500 when not installed 2016-09-06 16:13:32 +02:00
Joas Schilling a9a43e9384 Allow to call status.php before the instance is installed 2016-09-06 16:12:48 +02:00
Roeland Jago Douma 2eb5a3cd12 Merge pull request #1281 from nextcloud/backport-1272-theming-info-capabilities-9
[stable9] Add theming information to capabilities for the client
2016-09-06 15:01:32 +02:00
Joas Schilling 110bd5e36e Fix for Nextcloud9 2016-09-06 11:28:25 +02:00
Joas Schilling 996f2019f7 No background and logo in 10 2016-09-06 11:26:00 +02:00
Joas Schilling 650dc5b396 php 5.4 and 5.5 compatibility 2016-09-06 11:25:52 +02:00
Joas Schilling 4cb4067aac Add image URLs and tests 2016-09-06 11:25:46 +02:00
Joas Schilling 12176e35c7 Add theming information to capabilities for the client 2016-09-06 11:25:22 +02:00
Roeland Jago Douma 28a05a207d Merge pull request #1232 from nextcloud/backport-1224-do-not-allow-linebreak-in-paths-9
[stable9] Do not allow linebreaks and null bytes in paths
2016-09-01 14:08:30 +02:00
Joas Schilling 1352365e8b Add PhantomJS to gitignore 2016-09-01 12:49:38 +02:00
Joas Schilling 5dd211cc88 Also prevent null byte character 2016-09-01 12:49:35 +02:00
Joas Schilling 778ae8abd5 Filter out %0A from paths 2016-09-01 12:49:32 +02:00
Joas Schilling a98e66ddb0 Merge pull request #1182 from nextcloud/backport-870-oracle-support-9
[stable9] Fix oracle support of external storage app
2016-08-31 15:59:36 +02:00
Roeland Jago Douma c04163b9d9 Merge pull request #1208 from nextcloud/backport-1190-addressbook-correctly-handle-multi-values-9
[stable9] Correctly handle multi-values when converting VCards to array
2016-08-31 15:09:18 +02:00
Joas Schilling 4bb1e42687 Add a unit test for all the magic 2016-08-31 12:19:34 +02:00
Joas Schilling d8adb48147 Correctly handle multi-values when converting VCards to array 2016-08-31 12:19:16 +02:00
Joas Schilling b573a1c95c Fix oracle support of external storage app 2016-08-30 10:14:10 +02:00
Roeland Jago Douma d2a96a69a4 Merge pull request #1175 from nextcloud/backport-1128-stable9
[stable9] Users page lazy multiselect group dropdowns
2016-08-30 10:02:06 +02:00
Lukas Reschke 690fc46eff Merge pull request #1153 from nextcloud/stable9-fix-sharedstorage-hooks
Fix paths returned by \OC\Files\Storage\Shared hooks (#25519)
2016-08-30 08:42:28 +02:00
blizzz 43823645a4 Merge pull request #1155 from nextcloud/fix-server-side-share-expiration-setting-stable9
In cases where the server dictates the link share expiration the date…
2016-08-30 00:19:08 +02:00
blizzz 9b29ed08c5 Merge pull request #1141 from nextcloud/backport-1132-prevent-parse-error-on-editing-an-html-comment-9
[stable9] Prevent parse error on editing an HTML comment
2016-08-30 00:14:55 +02:00
Vincent Petry 434d68129d Backport of Users page lazy multiselect group dropdowns #1128 to stable9
Users page lazy multiselect group dropdowns

Instead of pre-rendering all multiselects with lots of group entries,
the current groups are now displayed as simple labels.
Behind the labels there is a pencil icon like for other fields.
When clicking the pencil icon, the dropdown will be spawned and will
open itself.
Upon closing of the dropdown, the label comes back with the updated
selection and the dropdown is destroyed.

Extra non-available groups also in list

Fix group sorting in user list group selection
2016-08-29 23:51:14 +02:00
Roeland Jago Douma e9fb2ec5f3 Merge pull request #1152 from nextcloud/butonic-patch-2
[stable9] lastInsertId requires the prefix (#25786)
2016-08-29 20:28:51 +02:00
Roeland Jago Douma 1062583a2e Merge pull request #1149 from nextcloud/stable9-database-reconnect
[9.0] Before a user is getting scanned the database connection is re-…
2016-08-29 20:27:39 +02:00
Thomas Müller 5856616d95 In cases where the server dictates the link share expiration the date is not updated on consequitive changes and enable/disable actions 2016-08-29 15:10:57 +02:00
Vincent Petry c158acc6ea Fix paths returned by \OC\Files\Storage\Shared hooks (#25519)
Fixes #23620
2016-08-29 15:08:45 +02:00
Jörn Friedrich Dreyer 11fe503bcd [stable9] lastInsertId requires the prefix (#25786)
backport of https://github.com/owncloud/core/pull/25764
2016-08-29 15:07:05 +02:00
Thomas Müller 90cafa3c9b [9.0] Before a user is getting scanned the database connection is re-established 2016-08-29 14:57:18 +02:00
Joas Schilling 6a8deb4a1f Prevent parse error on editing an HTML comment 2016-08-29 14:28:13 +02:00
Roeland Jago Douma d2d1508276 Merge pull request #1004 from nextcloud/backport-978-add-feedback-for-password-change-9
[stable9] Add feedback for password change
2016-08-22 12:16:06 +02:00
Jack Davis 31631d656c 25532_issue_password_update_notification_updated (#25756)
* Password Update Notification

Added an IF ELSE statement to ensure that feedback is provided to the
user on successfully updating a user password in settings.

* Password Update Success Message

Updated the password update success message
2016-08-22 09:58:04 +02:00
Lukas Reschke 584242f8b3 Merge pull request #962 from nextcloud/fix-caldavtester-stable9
[stable9] Move over to new CalDAVTester repo (#25859)
2016-08-19 12:16:41 +02:00
Thomas Müller 8d290916b9 Move over to new CalDAVTester repo (#25859)
* Move over to new caldac tester repo

* no run.py anymore
2016-08-19 10:21:10 +02:00
Morris Jobke f5bbf82478 Merge pull request #933 from nextcloud/backport-930-check-isset-require-9
[stable9] Fix "Undefined index" when the values do not exist
2016-08-18 15:44:50 +02:00
Joas Schilling f7092c981f Fix "Undefined index" when the values do not exist 2016-08-18 12:10:26 +02:00
Joas Schilling 2d025db018 Merge pull request #911 from nextcloud/stable9_864
[Stable9] Ensure the user exists before calling a method on it
2016-08-18 09:31:10 +02:00
Roeland Jago Douma aed78c242d Backport of #864
* 26342061b9
* 264aaf9ffa
2016-08-17 15:55:02 +02:00
Marius Blüm edf08f5eef Merge pull request #901 from nextcloud/backport-890-quota-unlimited-via-api-9
[stable9] Allow to retrieve the quota itself via the provisioning api
2016-08-17 13:20:17 +02:00
Joas Schilling 8aa91478b7 Allow to retrieve the quota itself via the provisioning api 2016-08-17 12:33:58 +02:00
Björn Schießle 1158c473dc Merge pull request #888 from nextcloud/stable9_855
[Stable9] Add files drop capability for clients
2016-08-16 11:38:27 +02:00
Roeland Jago Douma adddd16cbb Add files drop capability for clients 2016-08-15 21:43:30 +02:00
Lukas Reschke f222d6ea5f Merge pull request #818 from nextcloud/jail-root-stable9
getJailedPath expects  to have a trailing /
2016-08-10 16:03:55 +02:00
Lukas Reschke d1b7f50716 Merge pull request #826 from nextcloud/add-warning-for-php7.1-stable9
[stable9] Nextcloud is not compatible with PHP 7.1
2016-08-10 16:03:02 +02:00
Lukas Reschke a6e0935c6a [stable9] Nextcloud is not compatible with PHP 7.1
Make the code fail hard before people update and then experience some half-broken stuff. See also https://github.com/nextcloud/docker-ci/issues/10
2016-08-10 14:28:50 +02:00
Bjoern Schiessle 6f3d9ec024 getJailedPath expects to have a trailing / 2016-08-10 11:35:38 +02:00
Björn Schießle 9dca963283 Merge pull request #793 from nextcloud/stable9-backport-786
[stable9] log class name, ID only is hard to debug
2016-08-09 19:33:49 +02:00
Jörn Friedrich Dreyer a86f2b3377 log class name, ID only is hard to debug 2016-08-09 16:15:55 +02:00
Morris Jobke 7d028c250e Merge pull request #749 from nextcloud/stable9-backport-name-changes
[stable9] correct name
2016-08-05 15:27:29 +02:00
Daniel Hansson d92f6fbd69 ownCloud -> Nextcloud 2016-08-05 14:46:07 +02:00
Björn Schießle b6072bb68c Merge pull request #707 from nextcloud/backport-637-prevent-delete-update-on-group-shares-9
[stable9] Do not allow to delete/update group shares as a group member
2016-08-03 14:53:06 +02:00
Roeland Jago Douma 3387e5d00f Add intergration test 2016-08-03 09:23:12 +02:00
Joas Schilling a5471b4a3e Do not allow to delete/update group shares as a group member 2016-08-03 09:22:18 +02:00
Jan-Christoph Borchardt 37d1277252 Merge pull request #690 from nextcloud/fix-contact-download
[stable9] Added white download icons
2016-08-01 19:07:00 +02:00
Morris Jobke 76d76121ae Merge pull request #594 from nextcloud/ldap-avoidneedlesssetemailonlogin-stable9
[stable9] Prevent setting email and triggering events at login time (#25531)
2016-08-01 18:22:43 +02:00
skjnldsv dd30935a49 Added white download icons 2016-08-01 16:25:55 +02:00
Morris Jobke 18a92c26cf Merge pull request #655 from nextcloud/add-quotaplugin-v2-stable9
[stable9] Adding quota plugin to new dav endpoint
2016-07-30 12:58:22 +02:00
Frédéric LIETART b4bd126008 [stable9] Transifex Owncloud > NextCloud (#669)
* [stable9] Transifex Owncloud > NextCloud

* [Stable9] Transifex Owncloud > Nextcloud
2016-07-30 10:56:30 +02:00
Morris Jobke 393f7f843f Merge pull request #623 from nextcloud/stable9-fix-searchbox-background
[stable9] fix searchbox background
2016-07-30 10:05:15 +02:00
Morris Jobke 176fbf95fd theming tests need to be fixed 2016-07-29 13:19:10 +02:00
Lukas Reschke 971f22edc5 [stable9] Adding quota plugin to new dav endpoint
Backport of https://github.com/nextcloud/server/pull/648
2016-07-29 12:41:53 +02:00
Lukas Reschke 0bda5d1823 Merge pull request #587 from nextcloud/fixing-undefined-OfflineUser-composeAndStoreDisplayName-stable9
[stable9] Fix undefined OfflineUser::composeAndStoreDisplayName()
2016-07-28 17:09:43 +02:00
Morris Jobke fe2ca83a2a Merge pull request #629 from nextcloud/stable9-backport-612
[stable9] libxml - compare against loaded version
2016-07-28 16:59:27 +02:00
Morris Jobke 066ac4f6a8 libxml - compare against loaded version
* if the compiled in version is older than the loaded version Nextcloud doesn't work
* uses the loaded libxml version to check against

fixes #205
2016-07-28 14:18:48 +02:00
Jan-Christoph Borchardt 5bc34c2d8d also adjust log in background color in theme 2016-07-28 10:29:25 +02:00
Jan-Christoph Borchardt 444684821c fix searchbox overlapping on mobile 2016-07-28 10:29:20 +02:00
Marius Blüm fe9dee376d Merge pull request #615 from nextcloud/stable9-ns-server-contributing.md
[stable9] change core to server - backport of #533
2016-07-28 10:01:48 +02:00
Olivier Paroz fb6ad7bb19 change core to server 2016-07-28 09:25:51 +02:00
Björn Schießle a091a438fd Merge pull request #589 from nextcloud/stable9-app-icons
[stable9] Add app icons for Comments and Tags
2016-07-27 12:30:48 +02:00
Vincent Petry fd0f4c6f10 Prevent setting email and triggering events at login time (#25531)
Whenever an LDAP user also has an email address defined in LDAP, the
LDAP code will try and update the email address of the locally known
user. This happens at login time or every time the user's LDAP
attributes are processed.

There is code listening to the email setting hook which updates the
system address book, which also will trigger FS setup due to avatars
and other things.

This fix only sets the email address when really necessary.
2016-07-27 11:33:27 +02:00
Marius Blüm 5974d9c96b Add icon for tags app 2016-07-27 11:16:36 +02:00
Marius Blüm f034686a8c Add icon for comments app 2016-07-27 11:14:30 +02:00
Thomas Müller c35b4f12ff Fix undefined OfflineUser::composeAndStoreDisplayName() - fixes #23248 (#25598) 2016-07-27 11:06:39 +02:00
William Bargent 900267333e Merge pull request #570 from nextcloud/stable9-fix-theme-logo-position
[stable9] fix theme logo position
2016-07-27 09:14:56 +01:00
Julius Haertl 608dbc64d9 Theming: Fix preview and center alignment of logo 2016-07-26 13:30:06 +02:00
Lukas Reschke a494e4f712 Adjust tests 2016-07-26 13:28:54 +02:00
Jos Poortvliet f02eabb6a7 Update header.css
make the logo look good on the login page
2016-07-26 13:26:48 +02:00
Jos Poortvliet fa814b9715 Update themingcontroller.php 2016-07-26 13:26:42 +02:00
Joas Schilling fa361ba968 Merge pull request #552 from nextcloud/stable9-backport-547
[stable9] Fix error message while restoring all files
2016-07-25 14:32:32 +02:00
Morris Jobke 034276400e Fix error message while restoring all files
* use $_POST['files'] only of ssinlge files are restored
* fixes #528
2016-07-25 13:00:51 +02:00
Joas Schilling 6175e5d05b Merge pull request #549 from nextcloud/backport-530-theming-autoloading-9
[stable9] Make sure we try to autoload the class
2016-07-25 11:01:30 +02:00
Joas Schilling d2396b900f Merge pull request #546 from nextcloud/stable9-backport-451
fix Github link in Personal and Admin settings Version note
2016-07-25 09:55:17 +02:00
Joas Schilling 593608f25c Make sure we try to autoload the class 2016-07-25 09:46:07 +02:00
Jan-Christoph Borchardt e517282d1c fix Github link in Personal and Admin settings Version note 2016-07-25 08:45:45 +02:00
Roeland Douma 3be8f7a369 Merge pull request #491 from nextcloud/backport-460-html-decoded-error-message-when-uploading-folder
Fix the HTML encoding when uploading a folder in FF when using french…
2016-07-22 21:49:47 +02:00
Joas Schilling b42bce7439 Merge pull request #518 from nextcloud/rebrand-stable9
Rebrand stable9
2016-07-22 12:13:38 +02:00
Joas Schilling 7177e31b96 Merge pull request #516 from nextcloud/run-le-script-9
[stable9] Run the license script
2016-07-22 11:41:34 +02:00
Roeland Douma 34f72b3d6b Merge pull request #514 from nextcloud/backport-505-license-mailmap-9
[stable9] license and mailmap backports
2016-07-22 11:13:51 +02:00
Roeland Douma a760564f59 Merge pull request #511 from nextcloud/backport-496-doc-changes
[stable9] Make the changes from doc fix persistant
2016-07-22 11:11:35 +02:00
Morris Jobke 46ed47766b Rebrand stable9
* adjust issue_template and README
* fixes #426
2016-07-22 10:34:19 +02:00
Joas Schilling 74ed2befe1 Fix typo 2016-07-22 09:54:43 +02:00
Joas Schilling ca6a7d9e6a Run the license script 2016-07-22 09:48:05 +02:00
Roeland Jago Douma c445cc4ad9 Fix e-mail in mailmap 2016-07-22 09:41:17 +02:00
Joas Schilling 540978d2b0 Fix more mailmap entries 2016-07-22 09:41:09 +02:00
Joas Schilling d6a00efd38 Change nickvergessen mailmap entry (#25349) 2016-07-22 09:40:55 +02:00
Lukas Reschke 34a24d813d Add new mailmap file 2016-07-22 09:40:44 +02:00
Bjoern Schiessle 70a1d5bc26 only search the license header for @copyright statements 2016-07-22 09:39:18 +02:00
Joas Schilling 5419b74ef0 Fix the license script 2016-07-22 09:39:07 +02:00
Bjoern Schiessle 4e52b845ea - keep copyright notice and only update the authors list
- check if all changes to a file happened after the fork, this allows the authors to check if the file can be relicensed to AGPLv3 or later
2016-07-22 09:38:56 +02:00
Bjoern Schiessle e685de8b5f no more CLA and switch to AGPLv3 or later 2016-07-22 09:38:43 +02:00
Joas Schilling 7b1951677e Make the changes from https://github.com/nextcloud/documentation/commit/6ccd2c5678b85d35a8673d784bef5c6c89e7ecb9 persistant 2016-07-22 09:19:35 +02:00
Joas Schilling 4672ef91bc Fix the HTML encoding when uploading a folder in FF when using french l10n 2016-07-21 10:14:37 +02:00
Lukas Reschke 87eb86902f Merge pull request #469 from nextcloud/stable9-stringid-fix
[stable9] Cast share id to string (#25402) (#25431)
2016-07-20 16:49:19 +02:00
Björn Schießle 895655d20a Merge pull request #463 from nextcloud/stable9-explode
[stable9] Use explode() instead of split
2016-07-20 15:26:11 +02:00
Thomas Müller 96e2a3a4b2 Cast share id to string (#25402) (#25431) 2016-07-20 15:11:04 +02:00
Lukas Reschke c008346c08 [stable9] Use explode() instead of split
Upstream from https://github.com/owncloud/core/pull/25488
2016-07-20 14:37:34 +02:00
Roeland Douma 2e6f7a66cf Merge pull request #447 from nextcloud/stable9-guzzle
[stable9] Update third-party reference
2016-07-19 21:46:03 +02:00
Lukas Reschke df0951da54 [stable9] Update third-party reference
For https://github.com/nextcloud/3rdparty/pull/6
2016-07-19 20:49:07 +02:00
Björn Schießle 1681433696 Merge pull request #442 from nextcloud/fix-maintenance-mode-9
[stable9] Fix maintenance mode
2016-07-19 16:59:51 +02:00
Joas Schilling 3024f20270 Fix maintenance mode
When the server is in maintenance mode, apps are not loaded.
That means apps/theming/ is not in the allowed paths. So we
need to check without autoloading, whether the class exists.
2016-07-19 10:23:26 +02:00
Björn Schießle 174b297f34 Merge pull request #406 from nextcloud/theming-fixes-stable9
Theming fixes stable9
2016-07-18 16:00:21 +02:00
Joas Schilling 3cdd10b9d7 Add unit tests 2016-07-15 11:55:43 +02:00
Joas Schilling e6ddf775f6 Also load the theming app on CLI 2016-07-15 09:23:22 +02:00
Joas Schilling 06ac822b71 Use the themed Defaults everywhere 2016-07-15 09:22:44 +02:00
Joas Schilling b73e46f471 Better handling of empty slogan 2016-07-15 08:51:30 +02:00
Marius Blüm d35d9d246e Merge pull request #370 from nextcloud/stable9-backport-361
[Stable9] Make theming work with pretty URLs
2016-07-12 06:59:42 +02:00
Lukas Reschke 450926ea1c Implement "getTitle" (#372)
Fixes https://github.com/nextcloud/server/issues/341
2016-07-11 23:31:58 +02:00
oparoz 3c0ba186e1 Fix tests
(cherry picked from commit eceb0db)
2016-07-11 17:42:45 +02:00
oparoz 1f28ed8a0a Make theming work with pretty URLs
In some envs the rewrite rules for pretty URLs apply to all CSS files, so let's not end the route name with that etension.
Fixes #315
(cherry picked from commit 839ee5e)
2016-07-11 17:42:34 +02:00
blizzz 980d900b88 Merge pull request #334 from nextcloud/sync-stable9
Sync stable9
2016-07-07 15:13:34 +02:00
Morris Jobke f593a09360 Revert "occ web executor (#24957)"
This reverts commit 9fcb26910e.
2016-07-07 12:08:10 +02:00
Morris Jobke 4782b92347 Revert "Bypass upgrade page when occ controller is requested (#25363)"
This reverts commit 445a76bb1b.
2016-07-07 12:07:35 +02:00
Morris Jobke 06964b32f3 Revert "Revert "Remove repair steps for broken updater repair""
This reverts commit 1a42979104.
2016-07-07 12:04:57 +02:00
Morris Jobke 11e834ea74 Merge branch 'stable9' into sync-stable9 2016-07-07 12:03:34 +02:00
Morris Jobke e5645a94ec Merge pull request #329 from nextcloud/stable9-backport-327
[stable9] Add PHP 5.4 and 5.5 jobs to CI
2016-07-07 09:44:52 +02:00
Carlos Damken 64a15191e4 Backport 25367 to Stable 9.0 (#25384) 2016-07-06 22:10:52 +02:00
VicDeo 445a76bb1b Bypass upgrade page when occ controller is requested (#25363) 2016-07-06 22:08:58 +02:00
Vincent Petry ad67b3f0b0 Merge pull request #25375 from owncloud/stable9-147c672f5866002d45ec68e99e379449792eeaf8
[stable9] Ignore invalid paths in the JS file list
2016-07-06 18:18:17 +02:00
Vincent Petry 116a6f3938 Merge pull request #25343 from owncloud/stable9-revertrepairrevert
Revert "Remove repair steps for broken updater repair"
2016-07-06 17:49:05 +02:00
Morris Jobke cb86e11ef8 Add PHP 5.4 and 5.5 jobs to CI 2016-07-06 17:07:32 +02:00
Lukas Reschke ca1296c740 Merge pull request #325 from nextcloud/stable9-fix-naming-issue-drone
[stable9] Fix docker image naming issue for CI
2016-07-06 15:34:24 +02:00
Morris Jobke 024919b9de Fix docker image naming issue for CI
* wrongly named PHP7 - it is PHP 5.6
* moved integration tests at the very end
2016-07-06 15:05:27 +02:00
Vincent Petry 3864555390 Merge pull request #25360 from owncloud/stable9-backportshareownerfix
[stable9] Change order of share creation validation
2016-07-06 12:48:26 +02:00
Vincent Petry c92c234059 Ignore invalid paths in the JS file list (#25368) 2016-07-06 12:02:04 +02:00
Vincent Petry a2e0573987 Merge pull request #25298 from owncloud/schiessle-fix-get-contact-stable9
[stable9] get only vcards which match both the address book id and the vcard uri
2016-07-06 11:52:27 +02:00
Vincent Petry 6e27375cbe Merge pull request #25222 from owncloud/web-executor-stable9
[stable9] occ web executor
2016-07-05 12:05:12 +02:00
Vincent Petry ffe1a8bffc Add integration test for sharing with group, then user in group
Add integration test for the use case where a group share exists and
then the same owner creates a direct share to a user in that group.
2016-07-05 11:14:56 +02:00
Lukas Reschke 6d9809ef45 Merge pull request #310 from nextcloud/version-number
Increase version to 9.0.52
2016-07-05 11:07:11 +02:00
Lukas Reschke 04d88bc874 Increase version to 9.0.52 2016-07-05 11:04:01 +02:00
Vincent Petry a2bbc220e0 Change order of share creation validation
Makes sure that the share owner is set before entering the checks that
need it.

Partial backport of afa37d3
2016-07-05 10:59:27 +02:00
Lukas Reschke 179a9c28b7 Merge pull request #308 from nextcloud/use-proper-branding-again
Use proper branding again
2016-07-04 21:09:40 +02:00
Lukas Reschke 70f36b40df Use proper branding again
The merge of the theming app changed these defaults back again.
2016-07-04 20:43:35 +02:00
felixboehm fdb0d4ad52 check if renamed user is still valid by reapplying the ldap filter (#25338) 2016-07-04 14:16:13 +02:00
Vincent Petry 1a42979104 Revert "Remove repair steps for broken updater repair"
This reverts commit 58ed5b9328e9e12dd4319c0730202f385ca0dc5d.
2016-07-04 12:49:46 +02:00
Morris Jobke 01f6f26343 Merge pull request #304 from nextcloud/versions-fix
add additional check if we have a valid uid and filename
2016-07-04 12:24:10 +02:00
Morris Jobke dd8af5c36d Merge pull request #298 from nextcloud/use-parameterized-query
[stable9] Use paramterized parameter for \OC\SystemTag\SystemTagManager
2016-07-04 11:50:06 +02:00
Bjoern Schiessle 717b480a2e add additional check if we have a valid uid and filename 2016-07-04 11:00:50 +02:00
Morris Jobke 42d8ef5a0e Merge pull request #291 from nextcloud/stable9-update-transifex-link
[stable9] We have our own Transifex org now ;)
2016-07-04 08:07:01 +02:00
Lukas Reschke ce70ea3501 [stable9] Use paramterized parameter for \OC\SystemTag\SystemTagManager
$nameSearchPattern was passed in and directly appended to the SQL query. Luckily the code path isn't reached anywhere in Nextcloud or the included apps.
2016-07-03 16:50:28 +02:00
Marius Blüm 0ae10eaf1e We have our own Transifex org now ;) 2016-07-02 14:22:13 +02:00
Lukas Reschke 37a6636840 Merge pull request #287 from nextcloud/rc1-for-9-0-52
9.0.52 RC1
2016-07-01 23:37:31 +02:00
Lukas Reschke bc025ee777 9.0.52 RC1 2016-07-01 23:11:16 +02:00
Lukas Reschke 531e69947f Revert "Revert "[stable9] Don't show the updater if updater is incompatible""
This reverts commit f896470542.
2016-07-01 23:09:32 +02:00
Björn Schießle 12796500e0 Merge pull request #277 from nextcloud/traversal-directory-js
[stable9] Do not allow directory traversal using "../" in JS file list
2016-07-01 18:00:25 +02:00
Björn Schießle 756b0c05b6 Merge pull request #282 from nextcloud/fix-tests
Fix unit test compatibility issues with phpunit 5.2+
2016-07-01 17:11:19 +02:00
Joas Schilling ce6009e475 Fix Single execution of preview tests 2016-07-01 16:41:46 +02:00
Joas Schilling 3399d66c8e Fix Comments tests with phpunit 5.2+ 2016-07-01 16:41:29 +02:00
Joas Schilling eb715dd1b6 Fix Sharing app tests with phpunit 5.2+ 2016-07-01 16:29:53 +02:00
Joas Schilling fd5bdf5e1a Fix Encryption tests with phpunit 5.2+ 2016-07-01 16:22:50 +02:00
Björn Schießle 7e4366ec86 Merge pull request #244 from nextcloud/theming-app-stable9
[stable9] theming app
2016-07-01 16:22:01 +02:00
Joas Schilling 28b3a0a37e Fix DAV tests with phpunit 5.2+ 2016-07-01 16:16:40 +02:00
Joas Schilling 75c172a062 Fix Share Manager tests with phpunit 5.2+ 2016-07-01 16:08:26 +02:00
Joas Schilling 777dbec369 Fix Notification tests with phpunit 5.2+ 2016-07-01 16:05:16 +02:00
Joas Schilling ea9c79b7c0 Fix Appframework tests with phpunit 5.2+ 2016-07-01 16:05:00 +02:00
Joas Schilling 197e94457f Fix AvatarControllerTest with phpunit 5.2+ 2016-07-01 16:04:25 +02:00
Joas Schilling 497c3fbfd7 Also fix the dav test 2016-07-01 15:45:58 +02:00
Joas Schilling 8ab26381a4 Clear the storage wrappers after clearing the hooks 2016-07-01 15:42:19 +02:00
Morris Jobke 6e3bf06c1d Merge pull request #274 from nextcloud/stable9-sync-upstream
[Stable9] sync upstream
2016-07-01 15:20:08 +02:00
Lukas Reschke dea8e29289 Match on 405 2016-07-01 15:19:08 +02:00
Lukas Reschke 8aa0832bd4 Match for /../ 2016-07-01 15:00:31 +02:00
Lukas Reschke 2da43e3751 Do not allow directory traversal using "../"
We should not allow directory traversals using "../" here.

To test access the following URL once with and then without this patch:

http://localhost/server/index.php/apps/files/?dir=../../This+Should+Not+Be+Here
2016-07-01 13:33:00 +02:00
VicDeo 9fcb26910e occ web executor (#24957)
* Initial web executor

* Fix PHPDoc

Fix broken integration test

OccControllerTests do not require database access - moch them all!

Kill unused sprintf
2016-07-01 11:31:57 +02:00
Lukas Reschke 2c785ebdf1 Merge remote-tracking branch 'upstream/stable9' into stable9-sync-upstream 2016-07-01 11:31:15 +02:00
VicDeo 21bdd3005b Fix OC_Helper::rmdirr for nested symlinks (#25255) 2016-07-01 11:31:02 +02:00
Thomas Müller 4ac256ea6c [stable9] Fix decrypt message stable9 (#25188)
* Fix Decrypt message via occ

* Comments fixed

* Fixed reviews

* Originally:
commit 2304e4bda027e61ff1302c55c2f70f8e4c8f47d0
Author: Joas Schilling <nickvergessen@owncloud.com>
Date:   Tue Jun 7 09:13:11 2016 +0200

    Allow to decrypt user '0' files only

* Fix uid comparison
2016-07-01 11:30:39 +02:00
Thomas Müller 4a4103b923 Suppress warnings from DAV migration if there's nothing to do (#25279) 2016-07-01 11:30:14 +02:00
Vincent Petry abdc587b5c Merge pull request #25264 from owncloud/stable9-search-fixsearchfromotherfilelists
[stable9] Fix search result link for file results outside default list
2016-07-01 11:22:35 +02:00
Vincent Petry 98818283e5 Merge pull request #25234 from owncloud/stable9-iedavclient-nullheaders
[stable9] Init the headers in iedavclient.js
2016-07-01 11:22:06 +02:00
Morris Jobke 23cc465b0d Merge pull request #254 from nextcloud/fix-229-stable9
[stable9] get only vcard which match both the address book id and the vcard uri
2016-06-30 17:43:46 +02:00
Bjoern Schiessle 3cb7672b06 initial commit for the theming app 2016-06-30 17:26:03 +02:00
Björn Schießle eed6c6a8b9 Merge pull request #266 from nextcloud/fix-262
[stable9] getShareByToken() should also consider remote shares
2016-06-30 17:17:21 +02:00
Lukas Reschke d52343fc4e Merge pull request #260 from nextcloud/fix-versions-stable9
[stable9] check permissions before rollback
2016-06-30 17:15:28 +02:00
Lukas Reschke 912f07e2a9 Merge pull request #249 from nextcloud/add-exemption-for-acs
[stable9] Add exemption for ACS endpoint
2016-06-30 17:06:11 +02:00
Marius Blüm 1f9735b204 Merge pull request #261 from nextcloud/stable9-fix243
[stable9] targets 3rdparty submodule from Nc instead of oC
2016-06-30 17:05:36 +02:00
Morris Jobke 07c43751d1 Merge pull request #265 from nextcloud/stable9-add-wnd
[stable9] Backport WND
2016-06-30 16:47:29 +02:00
Bjoern Schiessle 347787d92c getShareByToken() should also consider remote shares 2016-06-30 16:45:13 +02:00
Marius Blüm 212ff8ef6f Merge pull request #251 from nextcloud/make-it-user-saml
Mark user_saml official and kill user_shibboleth
2016-06-30 16:36:23 +02:00
Morris Jobke be7980c826 Merge pull request #263 from nextcloud/dav-permission-check-stable9
add some additonal permission checks to the webdav backend
2016-06-30 15:59:21 +02:00
Lukas Reschke da0666e4f0 Name method properly 2016-06-30 15:37:33 +02:00
Lukas Reschke a80af7079d [stable9] Backport WND
Backports:

- https://github.com/nextcloud/server/pull/233
- https://github.com/nextcloud/server/pull/190
- https://github.com/nextcloud/server/pull/188
2016-06-30 15:36:03 +02:00
Lukas Reschke 29929c9728 Merge pull request #240 from nextcloud/password_policy_events_stable9
[stable9] add events to check passwords with the password policy app
2016-06-30 15:06:40 +02:00
Bjoern Schiessle 3491400261 add some additonal permission checks to the webdav backend 2016-06-30 15:05:13 +02:00
Marius Blüm 4b05f1c7b4 targets 3rdparty submodule from Nc instead of oC
* backport of #245
* fixes #243
2016-06-30 14:51:47 +02:00
Lukas Reschke 723cf78169 Merge pull request #259 from nextcloud/stable9-set-disposition
[stable9] Set content-type to "application/octet-stream"
2016-06-30 14:29:11 +02:00
Bjoern Schiessle 1208953ba1 check permissions before rollback 2016-06-30 14:22:40 +02:00
Lukas Reschke 94975af6db [stable9] Set content-type to "application/octet-stream"
Some browsers such as Firefox on Microsoft Windows otherwise do offer to open the file directly which is kinda silly.

Backport of https://github.com/nextcloud/server/pull/258
2016-06-30 13:04:54 +02:00
Bjoern Schiessle 6a61cc0e35 get only vcard which match both the address book id and the vcard uri 2016-06-30 10:46:21 +02:00
Lukas Reschke 5037d097e1 Mark user_saml official and kill user_shibboleth 2016-06-30 00:52:56 +02:00
Lukas Reschke f56ea98993 Add exemption for ACS endpoint
In a SAML scenario we don't get any strict or lax cookie send for
the ACS endpoint. Since we have some legacy code in Nextcloud
(direct PHP files) the enforcement of lax cookies is performed here
instead of the middleware.

This means we cannot exclude some routes from the cookie validation,
which normally is not a problem but is a little bit cumbersome for
this use-case.

Once the old legacy PHP endpoints have been removed we can move
the verification into a middleware and also adds some exemptions.

Not super awesome code to have but the best that I could come up
with that doesn't add another ton of technical debt.
2016-06-29 19:51:27 +02:00
Björn Schießle 1f71285137 get only vcards which match both the address book id and the vcard uri (#25294) 2016-06-29 12:18:28 +02:00
Daniel Molkentin 735411d166 ownCloud 9.0.3 2016-06-29 11:20:32 +02:00
Bjoern Schiessle 27059107f8 add events to check passwords with the password policy app 2016-06-28 11:43:23 +02:00
Lukas Reschke 95f6dd909b Merge pull request #227 from nextcloud/stable9-channel-should-be-inside-config
[stable9] Move OC_Channel to system config
2016-06-27 21:20:36 +02:00
Lukas Reschke 9f7141d26d Move OC_Channel to system config
The Nextcloud and ownCloud updaters allow someone to configure a custom release channel, this can then be used to publish different versions. (e.g. one channel stays on 9.x while another one already gets 10.x)

There is however one big problem with it: The value is effectively stored in the app config, which is stored in the database. So to be able to read the update channel a connection to the database is necessary. This is quite error prone and also causes some of the issues in the original ownCloud updater.

This moves the channel registration to the config.php and also includes a repair step.
2016-06-27 17:13:40 +02:00
Marius Blüm efc4a1b3bf Merge pull request #228 from nextcloud/show-updater-all-the-time
Revert "[stable9] Don't show the updater if updater is incompatible"
2016-06-27 06:53:20 +02:00
Morris Jobke 62391e9776 Merge pull request #210 from Zollak/stable9-config-sample
[stable9] changed ownCloud to Nextcloud, updated config options
2016-06-26 23:59:44 +02:00
Patric Lenhart c9898fac4a removed more options that are not in stable9 2016-06-26 23:32:40 +02:00
Lukas Reschke f896470542 Revert "[stable9] Don't show the updater if updater is incompatible"
This reverts commit 5e2bf16db1.
2016-06-26 17:33:05 +02:00
Patric Lenhart 506e739a20 removed parameter that is not relevant for stable9 2016-06-26 15:17:38 +02:00
Lukas Reschke 49a916fb46 Merge pull request #225 from nextcloud/stable9-upstream-sync
[Stable9] upstream sync
2016-06-26 14:50:58 +02:00
Lukas Reschke dcb5f00461 Merge remote-tracking branch 'upstream/stable9' into stable9-upstream-sync 2016-06-26 12:48:19 +02:00
Vincent Petry fd05ff0392 Hide search results after switching directory
When clicking on a folder result in the search result list, the result
box for "results in another folder" must disappear.
2016-06-24 17:14:12 +02:00
Vincent Petry 3128a2c03e Fix search result link for file results outside default list
When outside the "All files" list, the search result link must properly
redirect to the "All files" list.
2016-06-24 17:14:04 +02:00
Christoph Wurst 907c90165a Merge pull request #25256 from owncloud/stable9-setupchecks-preventreload
[stable9] Don't reload page in case of auth errors during setup checks
2016-06-24 17:12:42 +02:00
Marius Blüm ea327cdea1 Merge pull request #216 from nextcloud/stable9-replace-occurence-of-owncloud-by-nextcloud
[stable9] Replace occurence of "ownCloud" by "Nextcloud"
2016-06-24 15:01:53 +02:00
Marius Blüm 7a3aafda96 Replace occurence of "ownCloud" by "Nextcloud"
* backport of #214
2016-06-24 12:50:43 +02:00
Vincent Petry e366ed6485 Don't reload page in case of auth errors during setup checks
If an error occurs during setup checks, do not let the global ajax
error handler reload the page.
2016-06-24 09:51:26 +02:00
Vincent Petry eb8e151458 Merge pull request #25248 from owncloud/stable9-unique_targets
[stable9] On mount make sure multiple shares with same target map to unique one…
2016-06-23 18:08:54 +02:00
Patric Lenhart 2cf4ae2925 changed ownCloud to Nextcloud, updated config options 2016-06-23 16:11:56 +02:00
Roeland Douma b6192c39d8 On mount make sure multiple shares with same target map to unique ones (#23937)
Scenario:
user0 shares a folder 'foo' with user2
user1 shares a folder 'foo' with user2
user2 logs in

Before: show only the 'foo' from user1

After: show both.

* Added intergration tests
2016-06-23 14:27:51 +02:00
Vincent Petry f44500f77a Init the headers in iedavclient.js 2016-06-22 18:16:32 +02:00
Vincent Petry 3aaa33d9d4 Merge pull request #25228 from owncloud/stable9-enc-revertversionsize
[stable9] Rollback version must also adjust cached size
2016-06-22 18:11:20 +02:00
Vincent Petry 880ff122f1 Rollback version must also adjust cached size 2016-06-22 15:18:19 +02:00
Lukas Reschke bab4f65388 Merge pull request #203 from nextcloud/fix_audit_log-stable9
[stable9] don't try to log the currently logged in user, this fails on cronjobs
2016-06-22 15:09:57 +02:00
Bjoern Schiessle a7766ca72e don't try to log the currently logged in user, this fails on cronjobs. The users are logged anyway 2016-06-22 14:39:07 +02:00
Morris Jobke e26386e372 Merge pull request #200 from nextcloud/stable9-backport-197
[stable9] some text-changes to nextcloud
2016-06-22 11:01:55 +02:00
Björn Schießle 29a83d8ac6 Merge pull request #199 from nextcloud/stable9-backport-194
[stable9] default.php for nextcloud
2016-06-22 10:40:42 +02:00
Joachim Sokolowski b1d60eb738 some text-changes to nextcloud 2016-06-22 10:22:55 +02:00
Joachim Sokolowski e69f0cbdec default.php for nextcloud
changing it to nextcloud
2016-06-22 10:10:09 +02:00
Marius Blüm a9a7e0edee Merge pull request #192 from nextcloud/drop-authtoken
Drop old authtoken table (pre 5.0.0)
2016-06-21 21:28:01 +02:00
Marius Blüm ce3437e755 Merge pull request #193 from nextcloud/stable9-backport-191
[stable9] Add postgres to CI
2016-06-21 21:23:20 +02:00
Morris Jobke 8153290dd6 Add postgres to CI 2016-06-21 16:49:40 +02:00
Morris Jobke ce7d9998dc Drop old authtoken table (pre 5.0.0)
* fixes #155
2016-06-21 16:35:08 +02:00
Vincent Petry 54209abb74 Merge pull request #25197 from owncloud/fix-npe-in-user-ldap-stable9
[stable9] Fix null pointer exception in user_ldap
2016-06-21 16:10:48 +02:00
Vincent Petry ddd4f367c3 Merge pull request #25199 from owncloud/shared-mount-catch-9
[9.0] Catch exceptions while creating shared mounts
2016-06-21 16:07:44 +02:00
Juan Pablo Villafañez bf7a08f62d dd support to know where the storage test comes from (#25166) 2016-06-21 15:04:08 +02:00
Robin Appelman fa9ba64552 Catch exceptions while creating shared mounts 2016-06-21 12:45:33 +02:00
Jörn Friedrich Dreyer 11c1d399af Fix null pointer exception in user_ldap 2016-06-21 11:16:15 +02:00
Lukas Reschke 0236535fd3 Merge pull request #178 from nextcloud/fix-it
[stable9] Branding
2016-06-20 22:43:28 +02:00
Lukas Reschke 851b277a8e Adjust integration test 2016-06-20 22:28:13 +02:00
Lukas Reschke 9a0b78e757 Merge pull request #177 from nextcloud/v9.0.51
v9.0.51
2016-06-20 22:21:35 +02:00
Lukas Reschke a11896766c Some more branding 2016-06-20 22:10:20 +02:00
Lukas Reschke ceea666190 v9.0.51 2016-06-20 21:46:06 +02:00
Morris Jobke 8abf6e0ed1 fixed code 2016-06-20 18:50:56 +02:00
Morris Jobke 555a3b597e fixed translations 2016-06-20 18:50:46 +02:00
Morris Jobke bbe16db5a6 Merge pull request #174 from nextcloud/stable9-upstream-sync
[stable9] Upstream Sync
2016-06-20 18:02:18 +02:00
Vincent Petry dc3db4e1c0 Delay files_sharing's registerMountProviders
This moves registerMountProviders until after the sharing backends were
registered. In some situations registerMountProviders will trigger
listeners which might require filesystem access which itself would
mount shares, which itself requires the sharing backends to be
initialized.
2016-06-20 17:39:00 +02:00
Vincent Petry f11e486025 Make getShareFolder use given view instead of static FS (#25150) 2016-06-20 17:39:00 +02:00
Jörn Friedrich Dreyer cf3b5e3e86 Capped cache for user config 2016-06-20 17:39:00 +02:00
Roeland Jago Douma 07436d089b Do not recurse link share fetching
* Might fix an issue on oracle
2016-06-20 17:38:59 +02:00
Vincent Petry 280c288bc0 Convert Dropbox Forbidden exception to StorageNotAvailableException 2016-06-20 17:37:55 +02:00
Jan-Christoph Borchardt 5e6a724c5c fix grouped input fields, make sure they take precedence 2016-06-20 17:37:50 +02:00
Christoph Wurst 43065e7369 load authentication apps first 2016-06-20 17:37:45 +02:00
Vincent Petry ac56629c86 Capped cache for cache info in UserMountCache 2016-06-20 17:37:38 +02:00
Jörn Friedrich Dreyer 38663e13cc Allow empty host when installing on oracle via CLI (#25034) 2016-06-20 17:37:31 +02:00
Jörn Friedrich Dreyer 459aa933b9 decrease initial users to load to 50
Prevents timeouts on the initial loading of users. proper fix will be in https://github.com/owncloud/core/pull/10994
Workaround for https://github.com/owncloud/core/issues/24734
2016-06-20 17:37:25 +02:00
Thomas Müller 0934153ed2 Use an explicit version of sabre/dav to allow caching on the jenkins slaves - fixes #25087 (#25089) 2016-06-20 17:37:17 +02:00
Vincent Petry 3189c22ff3 Use capped cache for encryption's user access list 2016-06-20 17:37:09 +02:00
Vincent Petry 826654bb70 Merge pull request #25165 from owncloud/stable9-capped-user-cache
[stable9] Capped cache for user config
2016-06-20 17:15:18 +02:00
Vincent Petry 3e3c17a577 Merge pull request #25187 from owncloud/share-app-initorder-stable9
[stable9] Delay files_sharing's registerMountProviders
2016-06-20 17:10:30 +02:00
Morris Jobke 4ca0963973 Merge pull request #170 from nextcloud/fix-references-stable9
[stable9] Fix some ownCloud/Nextcloud references
2016-06-20 16:02:32 +02:00
Björn Schießle 4495b539a5 Merge pull request #172 from nextcloud/fix-references-trash-and-versions-stable9
[stable9] no need to mention ownCloud explicitely in the versions and trash bin app
2016-06-20 15:50:32 +02:00
Bjoern Schiessle 741f5fefea no need to mention ownCloud explicitely 2016-06-20 15:16:04 +02:00
Bjoern Schiessle bf15ec5914 fix references in encryption app 2016-06-20 15:09:08 +02:00
Lukas Reschke 1d5d777c2d Merge pull request #110 from nextcloud/stable9-soften-policy-if-no-cookie-is-sent
Soften the cookie check if no cookies are sent
2016-06-20 15:03:14 +02:00
Bjoern Schiessle 5dd48347ea fix references in the federation app 2016-06-20 15:02:58 +02:00
Bjoern Schiessle 299f854f00 fix references in the federated files sharing provider 2016-06-20 14:50:13 +02:00
Vincent Petry 2f61c2963c Delay files_sharing's registerMountProviders
This moves registerMountProviders until after the sharing backends were
registered. In some situations registerMountProviders will trigger
listeners which might require filesystem access which itself would
mount shares, which itself requires the sharing backends to be
initialized.
2016-06-20 13:48:00 +02:00
Björn Schießle eabf633d66 Merge pull request #161 from nextcloud/stable9-backport-160
[stable9] fix translations
2016-06-20 13:09:47 +02:00
Vincent Petry 0129437cd5 Make getShareFolder use given view instead of static FS (#25150) 2016-06-20 12:02:04 +02:00
Morris Jobke 3a4a0ef009 fix translations 2016-06-20 08:51:26 +02:00
Morris Jobke 03dfb22b46 Merge pull request #134 from hailthemelody/stable9-backport-updater-url
[stable9] revise updater.server.url to reflect nextcloud.org URL
2016-06-19 10:27:44 +02:00
Vincent Petry a3111e8589 Merge pull request #25160 from owncloud/fix-oracle-endless-loop-stable9
Do not recurse link share fetching
2016-06-17 15:24:47 +02:00
Jörn Friedrich Dreyer 0e3682d810 Capped cache for user config 2016-06-17 12:46:28 +02:00
Roeland Jago Douma 2d7bbf4a63 Do not recurse link share fetching
* Might fix an issue on oracle
2016-06-17 11:09:27 +02:00
Vincent Petry 7aa825f7dc Revert "[stable9] Remove shares of the root folder" (#25157) 2016-06-17 11:08:26 +02:00
Vincent Petry b5d3e877f1 Remove shares of the root folder (#25138) 2016-06-17 10:06:08 +02:00
Daniel Molkentin 2ce078e7c3 ownCloud 9.0.3 RC1 2016-06-16 18:25:42 +02:00
Vincent Petry 82384ab91c Merge pull request #25149 from owncloud/backport25146
–emit correct signal when disabling an app
2016-06-16 18:06:48 +02:00
Jörn Friedrich Dreyer 3ac02c9032 –emit correct signal when disabling an app 2016-06-16 17:17:02 +02:00
Vincent Petry f429be1e1d Merge pull request #25137 from owncloud/stable9-backport-25126
[stable9] load authentication apps first
2016-06-16 17:02:52 +02:00
Vincent Petry d55ad778ae Merge pull request #25148 from owncloud/stable9-dropbox-catchratelimit
[stable9] Convert Dropbox Forbidden exception to StorageNotAvailableException
2016-06-16 17:02:42 +02:00
= 6d9a4759d8 revise updater.server.url to reflect nextcloud.org URL, also it's comment 2016-06-16 10:55:25 -04:00
Vincent Petry 5e17e992b0 Convert Dropbox Forbidden exception to StorageNotAvailableException 2016-06-16 16:05:14 +02:00
Vincent Petry b1e60cc349 Merge pull request #25143 from owncloud/stable9-fix-grouped-inputs
[9.0] fix grouped input fields, make sure they take precedence
2016-06-16 12:32:20 +02:00
Jan-Christoph Borchardt 416d4c5141 fix grouped input fields, make sure they take precedence 2016-06-16 11:44:49 +02:00
Christoph Wurst 2656f68d60 load authentication apps first 2016-06-16 11:28:02 +02:00
Vincent Petry ffec0f197b Merge pull request #25118 from owncloud/stable9-fs-usermountcache-capped
[stable9] Capped cache for cache info in UserMountCache
2016-06-16 09:18:43 +02:00
Marius Blüm bbfd0e2821 Merge pull request #118 from nextcloud/stable9-backport-111
[stable9] Fix strengthify issues
2016-06-15 18:57:40 +02:00
Morris Jobke ac5122f45a fix strengthify in personal settings 2016-06-15 17:54:57 +02:00
Morris Jobke 91b089855a fix setup page strengthify
* fixes #105
2016-06-15 17:54:54 +02:00
Morris Jobke 957d35f590 Update strengthify to 0.5.1 2016-06-15 17:54:49 +02:00
Marius Blüm fff42812c7 Merge pull request #114 from nextcloud/stable9-fix-more-button
[stable9] fix padding of 3-dot button on mobile
2016-06-15 17:32:23 +02:00
Morris Jobke ae8f750039 Merge pull request #109 from nextcloud/stable9-ci-integration-tests
[stable9] Add integration tests
2016-06-15 16:17:03 +02:00
Jan-Christoph Borchardt 8ea06c8569 fix padding of 3-dot button on mobile 2016-06-15 15:54:30 +02:00
Vincent Petry 3da5d06aa0 Merge pull request #25052 from owncloud/stable9-webdav-download-mimetype
[stable9] DAV now returns file name with Content-Disposition header
2016-06-15 15:27:36 +02:00
Marius Blüm 76eef55ff6 Merge pull request #108 from nextcloud/stable9-backport-97
[stable9] Change name of the product in update message
2016-06-15 13:26:57 +02:00
Vincent Petry a9c98daffb Capped cache for cache info in UserMountCache 2016-06-15 13:02:39 +02:00
Morris Jobke 7d3bc95fa6 Merge pull request #88 from nextcloud/add-strict-cookie-check-also-to-config-js
[stable9] Add strict config check to config.js
2016-06-15 12:37:39 +02:00
Lukas Reschke bdc6d21da5 Remove duplicate data folder 2016-06-15 12:31:01 +02:00
Morris Jobke 9fc6118247 add temporary cleanup step for CI 2016-06-15 12:30:56 +02:00
Morris Jobke bd278c2081 fix integration tests for new admin_audit app 2016-06-15 12:30:50 +02:00
Morris Jobke 97ae4d8b00 Add integration tests 2016-06-15 12:30:45 +02:00
Morris Jobke 4e323a42ba Change name of the product in update message 2016-06-15 12:25:35 +02:00
Lukas Reschke 202530f4f3 Soften the cookie check if no cookies are sent
When no cookies are sent it is not required to perform any check for the strict or lax cookie, it does not provide any significant security advantage.

It does however interfer with the Android client which requests thumbnails from the unofficial API at `/index.php/apps/files/api/v1/thumbnail/256/256/{filename}`. This endpoint expects the strict cookie to be existent to not leak the existence of files. The Android client authenticates against this endpoint using Basic Auth and without cookies in some cases at least. This will make these endpoints work again with such cases.

To test this issue the following cURL command once without the patch and once with:

> curl http://localhost/index.php/apps/files/api/v1/thumbnail/256/256/welcome.txt  -u admin -v

Without the patch the request is redirected (which the client does not obey) and with the patch the preview is returned.
2016-06-15 11:50:26 +02:00
Vincent Petry c5a60c3ae0 Merge pull request #25084 from owncloud/stable9-enc-cappedcache-getaccesslist
[stable9] Use capped cache for encryption's user access list
2016-06-15 10:42:22 +02:00
Vincent Petry 57d3bb36eb Merge pull request #25105 from owncloud/stable9-initial-userloading-workaround
[stable9] decrease initial users to load to 50
2016-06-15 10:33:30 +02:00
Vincent Petry 173f732b9d Merge pull request #25106 from owncloud/stable9-allow-empty-host-when-installing-on-oracle-via-cli
[stable9] Allow empty host when installing on oracle via CLI (#25034)
2016-06-15 10:14:57 +02:00
Jörn Friedrich Dreyer ea330dfa6a Allow empty host when installing on oracle via CLI (#25034) 2016-06-14 20:09:44 +02:00
Jörn Friedrich Dreyer a0215b191d decrease initial users to load to 50
Prevents timeouts on the initial loading of users. proper fix will be in https://github.com/owncloud/core/pull/10994
Workaround for https://github.com/owncloud/core/issues/24734
2016-06-14 17:48:53 +02:00
Lukas Reschke 7a5093c43e Merge pull request #92 from nextcloud/stable9-fix-htaccess-warning
[stable9] Fix data directory warning
2016-06-14 13:39:55 +02:00
Lukas Reschke 6efe6b47ba Fix data directory warning
Otherwise always the warning is displayed that the data directory is accessible from the internet when URLs without index.php are enabled.

Fixes https://github.com/nextcloud/server/issues/91
2016-06-14 13:29:38 +02:00
Lukas Reschke 326dcd7b66 9.0.50 it is 2016-06-14 12:28:40 +02:00
Thomas Müller 3e846a4821 Use an explicit version of sabre/dav to allow caching on the jenkins slaves - fixes #25087 (#25089) 2016-06-14 12:11:35 +02:00
Lukas Reschke d3374220f5 Merge pull request #75 from nextcloud/brand-to-nextcloud
Brand to nextcloud
2016-06-14 11:42:48 +02:00
Morris Jobke b308b9521a Merge pull request #87 from nextcloud/add-some-basic-cache-busting
[stable9] Add some basic cache busting
2016-06-14 10:57:38 +02:00
Morris Jobke 4a22f79ac3 Merge pull request #86 from nextcloud/adjust-release-string
Adjust release string
2016-06-14 10:55:50 +02:00
Lukas Reschke 6d559ff5cf [stable9] Add strict config check to config.js 2016-06-14 09:18:33 +02:00
Lukas Reschke 3ead2b12ed Add some super basic cache busting
At least the logo should be correct after an update.....
2016-06-14 09:10:52 +02:00
Lukas Reschke ae1ed8c205 Adjust release string 2016-06-14 08:55:25 +02:00
Lukas Reschke b63482bd97 Merge pull request #80 from nextcloud/dont-show-updater-if-updater-is-incompatible
[stable9] Don't show the updater if updater is incompatible
2016-06-14 08:51:38 +02:00
Morris Jobke 447ab7cd99 Merge pull request #84 from nextcloud/stable9-downstream-160613
[Stable9] downstream 16-06-13
2016-06-14 00:02:59 +02:00
Lukas Reschke 5e2bf16db1 [stable9] Don't show the updater if updater is incompatible
Prevents us from breaking instances.
2016-06-13 23:49:46 +02:00
Arthur Schiwon a761fd65f0 Merge branch 'stable9' of https://github.com/owncloud/core into downstream-160613 2016-06-13 23:45:21 +02:00
Morris Jobke a5a42e20f9 Merge pull request #82 from nextcloud/more-branding-yay
[stable9] Add more branding
2016-06-13 23:35:11 +02:00
Morris Jobke ee72b3bf2d Merge pull request #79 from nextcloud/stable9-this-is-nextcloud
[stable9] This is Nextcloud (CONTRIBUTING.md)
2016-06-13 23:32:54 +02:00
Lukas Reschke b73972f3a1 Add more branding
- Shows "Nextcloud will be updated" in the updater screen
- Shows "Nextcloud" if you add a bookmark on iOS instead of "ownCloud"
2016-06-13 22:44:12 +02:00
Marius Blüm a081923ffa [stable9] This is Nextcloud (CONTRIBUTING.md) 2016-06-13 21:33:04 +02:00
Marius Blüm 757ca9593a Merge pull request #78 from nextcloud/stable9-lgtm-noself
[stable9] LGTM: no self approval
2016-06-13 20:28:51 +02:00
Marius Blüm 5c9fa5ade7 [stable9] LGTM: no self approval 2016-06-13 20:19:57 +02:00
Lukas Reschke 9adc2bd5ef Adjust url to Nc docs 2016-06-13 19:35:05 +02:00
Lukas Reschke 7e5b0ad249 Do not link to ownCloud Federation page 2016-06-13 19:33:27 +02:00
Lukas Reschke 5727a0dbe0 Remove translate link
We don't have any translation platform yet
2016-06-13 18:53:51 +02:00
Lukas Reschke ea0e443b88 Merge pull request #72 from nextcloud/stable9-backport-33
[stable9] Add JS Unit tests
2016-06-13 18:20:48 +02:00
Vincent Petry 9e3cf794ea Use capped cache for encryption's user access list 2016-06-13 17:47:57 +02:00
Morris Jobke b6e102d3da place password input directly below label 2016-06-13 16:39:24 +02:00
Morris Jobke 0cbfdf7d8b revert suspicious change - please check this @schiessle & @LukasReschke 2016-06-13 16:30:20 +02:00
Morris Jobke 12df3eb71d fix unit tests 2016-06-13 16:28:52 +02:00
Morris Jobke 74a93290aa Use proper PhantomJS library and run the tests as separate step
* add dependency for phantomjs
2016-06-13 14:20:20 +02:00
Roeland Douma d41d5c48f0 Show the path relative to the requesting user (#25067)
A share can only be requested by 3 'types' of people

* owner
* initiator
* recipient

So we have to get the path as the current user. Since that is the only
path that has any meaning to the user.

- Fixed tests
2016-06-13 12:47:21 +02:00
Roeland Douma 7863987b19 Repair job to fix permissions for avatars (#25068)
Backport of #24898

Cherry-picked:
1b66db72d9
60225284f3
28d9ad2817

But manually since we renamed stuff and the repair procedures changed
2016-06-13 12:47:02 +02:00
Vincent Petry 81761b87e4 DAV now returns file name with Content-Disposition header 2016-06-13 10:50:10 +02:00
Lukas Reschke 577cf92009 Merge pull request #70 from nextcloud/show-spinner-again
[stable9] Show spinner for files_drop again
2016-06-13 10:25:51 +02:00
Lukas Reschke f3b299be78 Show spinner for files_drop again
Somehow the spinner wasn't there anymore after some changes. This makes it appear again.
2016-06-13 01:07:05 +02:00
Lukas Reschke 3e93bd1e68 9.0.0 alpha it is 2016-06-13 00:46:00 +02:00
Lukas Reschke 470f23c8b9 Merge pull request #54 from nextcloud/backport-upload-only-shares
[stable9] Backport files drop feature
2016-06-13 00:26:47 +02:00
Lukas Reschke 4fcc8c9140 Merge pull request #69 from nextcloud/add-owncloud-root-ca
[stable9] Add ownCloud root CA
2016-06-13 00:21:45 +02:00
Arthur Schiwon 7f5048e2e5 smaller files drop fixes
* fix infinite spinner on blacklisted files
* move HTML to template
* indentation
2016-06-13 00:15:09 +02:00
Lukas Reschke bcf693539b Add ownCloud root CA
As the apps from the appstore are at the moment signed by the ownCloud Root CA we have to add it as fallback as well. We can remove that once Nextcloud 10 with new appstore has been released.
2016-06-13 00:08:48 +02:00
Lukas Reschke 145954d360 Merge pull request #68 from nextcloud/stable9-custom-updater-url
[stable9] Use custom updater URL
2016-06-12 23:56:03 +02:00
Lukas Reschke eb7ed2356f [stable9] Use custom updater URL 2016-06-12 23:49:23 +02:00
Lukas Reschke 84607f42dc Link to Nextcloud Android client 2016-06-12 23:14:34 +02:00
Lukas Reschke ce6479e3dc Update certificates to 2096 bit 2016-06-12 23:08:01 +02:00
Lukas Reschke e647ccf375 Merge pull request #67 from nextcloud/signing-certificates
Use new certificates
2016-06-12 22:45:15 +02:00
Lukas Reschke 3f8792a28c Use new certificates 2016-06-12 22:43:00 +02:00
Lukas Reschke df2902a701 Merge pull request #66 from nextcloud/stable9-downstream-160612
[Stable9] downstream 16-06-12
2016-06-12 20:23:47 +02:00
Arthur Schiwon cd7a1eca3f Merge branch 'stable9' of https://github.com/owncloud/core into stable9-downstream-160612 2016-06-12 20:14:19 +02:00
Lukas Reschke fe5a50a21f Merge pull request #65 from nextcloud/add-nextcloud-docs
Add nextcloud docs
2016-06-12 19:48:30 +02:00
Lukas Reschke b4eefc00cd Link to Nextcloud docs 2016-06-12 19:19:46 +02:00
Lukas Reschke b60b0f558e Link to Nextcloud domains in the help section 2016-06-12 19:15:31 +02:00
Lukas Reschke 40950edbab Revert "Remove "Help" link from personal sidebar"
This reverts commit 34ad3f7ada.
2016-06-12 19:12:35 +02:00
Lukas Reschke 689cbb1bbd Merge pull request #64 from nextcloud/stable9-more-patterns-lgtm
[stable9] Match more patterns for LGTM bot
2016-06-12 12:05:48 +02:00
Lukas Reschke 352ad5a5b8 Match more patterns for LGTM bot
Also adds :shipit: and 👍
2016-06-12 12:00:50 +02:00
Lukas Reschke 7ca1eca653 Merge pull request #62 from nextcloud/stable9-pr
Stable9 Upload progress Colour Fix
2016-06-12 11:56:26 +02:00
William Bargent c791a95267 Upload progress nextcloud blue 2016-06-12 10:01:03 +01:00
William Bargent f4206f1412 Sets notification background to white 2016-06-12 09:40:30 +01:00
Lukas Reschke 68c38ae8c2 [stable9] Backport files drop feature 2016-06-11 11:38:16 +02:00
Lukas Reschke 96c3a3a647 Merge pull request #51 from nextcloud/fix-some-more-branding-texts
Adjust some more branding texts
2016-06-11 10:52:52 +02:00
Lukas Reschke 7cc37b08ed Merge pull request #37 from nextcloud/downstream-stable9-160610
Downstream stable9 16-06-10
2016-06-11 10:49:45 +02:00
Lukas Reschke 218e4b48ad Adjust some more branding texts
Replaces ownCloud with Nextcloud in the user-facing messages
2016-06-11 10:46:02 +02:00
Lukas Reschke bd8d50d125 Merge pull request #44 from nextcloud/stable9-add-same-site-cookies
[stable9] Add Same Site Cookie protection
2016-06-11 10:31:24 +02:00
Jan-Christoph Borchardt 7a10bedbc6 Merge pull request #46 from nextcloud/stable9-color-inversion
invert colors of favicons to match header and log in site, white on blue
2016-06-10 18:25:41 +02:00
Jan-Christoph Borchardt d969ceef9e invert colors of favicons to match header and log in site, white on blue 2016-06-10 18:17:48 +02:00
Lukas Reschke 7d92165b99 Merge pull request #43 from nextcloud/stable9-pr
[stable9] Backport auditing app
2016-06-10 18:13:53 +02:00
Marius d152935a80 Merge pull request #40 from nextcloud/stable9-design-nextcloud
backport design change
2016-06-10 18:11:47 +02:00
Lukas Reschke 2c6a5fcf91 Add Same Site Cookie protection 2016-06-10 17:15:43 +02:00
Vincent Petry 851b7ca27f Merge pull request #25054 from owncloud/issue-24536-language-name-reused-for-fallback-languages-stable9
[stable9] Do not use the language name, when it's not the one from the language…
2016-06-10 17:02:48 +02:00
Bjoern Schiessle 22bbb047a0 log events from versions app 2016-06-10 15:49:58 +02:00
Bjoern Schiessle 0880cba816 listen to trash bin and group manager hooks 2016-06-10 15:49:46 +02:00
Lukas Reschke c2571cca41 Add basic audit component to logger
Logs already:
- Share events
- Authentication events
- User management events
- File action events
2016-06-10 15:44:27 +02:00
Lukas Reschke 6c69cdf860 Add user ID to log entries in admin page 2016-06-10 15:44:24 +02:00
Jan-Christoph Borchardt 8d32813c42 backport design change 2016-06-10 15:31:57 +02:00
Joas Schilling b4f14f1f48 Do not use the language name, when it's not the one from the language we want 2016-06-10 12:44:12 +02:00
Arthur Schiwon 674e1d0205 Merge branch 'stable9' of https://github.com/owncloud/core into downstream-stable9-160610 2016-06-10 11:42:07 +02:00
Vincent Petry 9edcdb33c7 Merge pull request #24950 from owncloud/stable9-fixdynamicldapgroupaccess
[stable9] Fixed dynamic group ldap access
2016-06-10 11:07:28 +02:00
Vincent Petry fba4460342 Add unit test for LDAP multi group caching 2016-06-09 18:02:09 +02:00
Vincent Petry 251a24b0cb Merge pull request #25039 from owncloud/stable9-construct-path
[Stable9] Construct path to the version file from the current directory and fil…
2016-06-09 16:21:19 +02:00
Vincent Petry 72b76228fc Merge pull request #25035 from owncloud/stable9-err-reload-delay
[stable9] Delay reloading the page if an ajax error occurs, show notification
2016-06-09 16:15:17 +02:00
Vincent Petry 9dff5501e8 Merge pull request #25045 from owncloud/stable9-admin-datadircheck-fix
[stable9] Use temporary htaccesstest.txt for data dir security check
2016-06-09 15:59:01 +02:00
Vincent Petry 05870bb659 Merge pull request #25044 from owncloud/stable9-scanner-user-not-setup
[stable9] skip scanning for a user when the user is not setup yet
2016-06-09 14:52:44 +02:00
Vincent Petry eb34e95fd3 Use temporary htaccesstest.txt for data dir security check 2016-06-09 11:59:42 +02:00
Robin Appelman d46cb39e3c skip scanning for a user when the user is not setup yet 2016-06-09 11:37:02 +02:00
Victor Dubiniuk f5d83e85b7 Construct path to the version file from the current directory and filename. Fixes #22450 2016-06-08 20:32:51 +03:00
Robin McCorkell 3f16ce7403 Add test for reload delay 2016-06-08 17:33:00 +02:00
Robin McCorkell 40f066ab6d Delay reloading the page if an ajax error occurs, show notification 2016-06-08 17:32:54 +02:00
Marius 73a9afed6d Merge pull request #22 from nextcloud/fix-3rdparty-notice-stable9
[stable9] Print error message again, when 3rdparty submodule is not initialized
2016-06-08 13:25:56 +02:00
Arthur Schiwon a49f5b72c6 Print error message again, when 3rdparty submodule is not initialized
- old code used Response which attempted to use OC::$server which is not
and cannot be intialised at this part of the code.
2016-06-08 12:26:16 +02:00
Lukas Reschke fb4981953d Merge pull request #23 from nextcloud/stable9-ci
Add CI to stable9 🚀
2016-06-08 12:14:25 +02:00
Vincent Petry b37f2e230b Use array_merge when reading cached groups members 2016-06-08 11:24:22 +02:00
Morris Jobke 34727f26d0 skip failing tests 2016-06-07 19:24:56 +02:00
Morris Jobke 557fb01f58 Add drone.io support 2016-06-07 19:11:34 +02:00
VicDeo 7f3f06cdd9 Fix update from 9.0.0 and 9.0.1 (#24854) 2016-06-07 09:46:53 +02:00
Jan-Christoph Borchardt 267692b14c Merge pull request #10 from nextcloud/stable9-remove-links-to-documentation-in-menu
[stable9] Remove "Help" link from personal sidebar
2016-06-06 23:01:47 +02:00
Lukas Reschke 34ad3f7ada Remove "Help" link from personal sidebar
At the moment we want to hide the help link from the personal sidebar as it contains the original ownCloud documentation.

Once we have our own documentation with our proper branding and so on we can reenable this.
2016-06-06 18:45:27 +02:00
Joas Schilling afb4c1e694 Allow public upload when the quota is unlimited (#24988) 2016-06-06 13:48:38 +02:00
Vincent Petry 6e7eb87c80 Merge pull request #24951 from owncloud/backport-24949-internal-server-error-in-sync-client-on-forbidden-directurl
[9.0] Catch the ForbiddenException to make sure it gets handled
2016-06-06 11:34:18 +02:00
Vincent Petry 93699d4224 Merge pull request #24966 from owncloud/stable9-fix-singlefileselect-download
[stable9] File not found when single file in a folde…
2016-06-06 11:28:05 +02:00
Joas Schilling c433218aa1 Catch the ForbiddenException to make sure it gets handled 2016-06-03 15:16:11 +02:00
Dmitry Popov 825d1c105d My fix for #24272, #23613, File not found when single file in a folder (#24800)
* Fixed group share searching for members of
multiple group. Issue #11808.

* Fixed group share searching, continued.

Avoid searching for empty group list in getItemSharedWithUser().
Broke tests in previous commit, #12030.

* Simler check for group count.

* Fix for https://github.com/owncloud/core/issues/24783 , described there

* Now it's #24272, 24783 was a duplicate. Previous change was also not very good. Now we don't create ZIP with a single file inside.
2016-06-02 18:46:03 +02:00
Vincent Petry 7f3bfeffe2 Merge pull request #24921 from owncloud/stable9-backport-24795
[9.0] Allow opening the password reset link in a new window when …
2016-06-02 15:31:36 +02:00
Vincent Petry 4eb87be488 Merge pull request #24944 from owncloud/fix_21173_stable9
stable9: normalize path in getInternalPath
2016-06-02 15:30:47 +02:00
Vincent Petry afe8ee0674 Merge pull request #24958 from owncloud/stable9_24869
[stable9] Use a capped memory cache for the user/group cache
2016-06-02 10:38:30 +02:00
Vincent Petry a780a4c966 Merge pull request #24956 from owncloud/stable9-fix-shareidstring
[stable9] Backport of share id as string fix
2016-06-02 10:11:54 +02:00
Roeland Jago Douma 0efe3ba62e Use a capped memory cache for the user/group cache
For #24403
When upgrading huge installations this can lead to memory problems as
the cache will only grow and grow.

Capping this memory will make sure we don't run out while during normal
operation still basically cache everything.
2016-06-01 21:31:14 +02:00
Vincent Petry 8f04bf3793 Backport of share id as string fix 2016-06-01 17:48:35 +02:00
Arthur Schiwon 087f005936 formatting, white-space changes only 2016-06-01 16:28:02 +02:00
alexweirig f112ece1f2 fixed possible indention problem
spaces -> tab conversion
2016-06-01 16:27:57 +02:00
alexweirig c342dcbcee Fixing group handling
added back the cache processing and fixed
2016-06-01 16:27:52 +02:00
alexweirig 6d74ef71b5 Fixed dynamic group ldap access
getUserGroups:
Using $userDN instead of $uid to query LDAP
Converting groupDN to group name using API instead of substring
Removing cache processing at the end of the method
2016-06-01 16:27:42 +02:00
Vincent Petry 96bf7f5513 Merge pull request #24894 from owncloud/scanner-size-propagation-09
[9.0] trigger size calculation after scanning
2016-06-01 14:53:46 +02:00
Georg Ehrke a08c9b3526 normalize path in getInternalPath 2016-06-01 13:06:59 +02:00
Joas Schilling 69e54bde1f Allow opening the password reset link in a new window when its a URL 2016-06-01 12:15:10 +02:00
Robin Appelman 2ca5f3f957 trigger size calculation after scanning 2016-06-01 10:27:56 +02:00
Joas Schilling 9070fd2c03 Add a warning when the transaction isolation level is not READ_COMMITED (#24915) 2016-05-31 16:11:51 +02:00
Vincent Petry 95cdbd45b8 Merge pull request #24908 from owncloud/stable9-backport-properly-check-for-mbstring
[stable9] Properly check for mbstring extension
2016-05-31 13:52:23 +02:00
Lukas Reschke 2516d07fdd [stable9] Properly check for mbstring extension
mb_detect_encoding is in the fallback we ship in the polyfill library, mb_strcut is not. Thus this lead to a false positive and ownCloud would just break.
2016-05-31 08:15:18 +02:00
Joas Schilling abd8475336 Only show message in the UI when the checker is enabled (#24773) 2016-05-30 14:50:45 +02:00
Vincent Petry 0ec4098955 Merge pull request #24830 from owncloud/stable9-lenz1111-share_download_range_requests_support
[stable9] lenz1111's fantastic share download range requests support
2016-05-30 12:27:16 +02:00
Vincent Petry 761a0b252c Merge pull request #24839 from owncloud/shared-storage-local-9
[9.0] Improve isLocal performance for SharedStorage
2016-05-30 12:23:32 +02:00
Fabian da0ee2ce3a dont update search onResize (#24848) 2016-05-30 11:31:39 +02:00
Björn Schießle b8c4233c7d don't fail on "bad signature" during login. Most likely this happens because (#24837)
the login password changed at the user back-end (e.g ldap). Such failures will
be handled after login correctly by allowing the user to adjust the passwords
2016-05-30 11:19:57 +02:00
Piotr Filiciak 002a7f8294 replaced UnseekableException => NotPermittedException 2016-05-25 15:38:48 +02:00
Robin Appelman 35c32ca721 Improve isLocal performance for SharedStorage 2016-05-25 13:40:34 +02:00
Vincent Petry 8c439643a1 Lowercase class name for unseekableexception
Because 9.1 was PSR-4 and the backport goes back to the old style
2016-05-25 11:13:06 +02:00
Piotr Filiciak 7a791c5472 Code style and doc fix 2016-05-25 11:11:56 +02:00
Piotr Filiciak f29f85709a Http Range requests support in downloads
Http range requests support is required for video preview
2016-05-25 11:11:47 +02:00
Vincent Petry a9c8eee15c Merge pull request #24817 from owncloud/filesystem_check_changes-9
clarify filesystem_check_changes in config.sample.php
2016-05-25 09:40:43 +02:00
Carla Schroder cb8b4740e3 clarify filesystem_check_changes in config.sample.php 2016-05-24 08:14:57 -07:00
Vincent Petry 3d4f29f622 Merge pull request #24417 from owncloud/fix_24182_9.0
[stable9] first call the post_login hooks, before we call getUserFolder.
2016-05-24 10:41:09 +02:00
Vincent Petry 64ec70a70f Merge pull request #24772 from owncloud/backport-24765-boolean-installed-config
[9.0] Make sure we evaluate installed everywhere as a boolean
2016-05-24 10:31:59 +02:00
Joas Schilling b30f4c2799 Make sure we evaluate installed like we do it everywhere 2016-05-23 13:24:03 +02:00
Joas Schilling 3c73e54eb9 Make sure that installed is a boolean 2016-05-23 13:23:51 +02:00
Vincent Petry ad81dff3b4 Merge pull request #24709 from owncloud/backport-24336-remove-password-from-exception-trace-in-dav-auth
Remove the password from the validateUserPass() method as well
2016-05-20 10:35:12 +02:00
Joas Schilling 5da9f10af2 Remove the password from the validateUserPass() method as well 2016-05-19 12:11:31 +02:00
Vincent Petry 173e304be9 Merge pull request #24414 from owncloud/stable9_24405
[Stable9] Use a CappedCache in the user database backend
2016-05-19 10:31:31 +02:00
Vincent Petry ceea3e9104 Merge pull request #24705 from owncloud/locking-mark-reload-free-9
[9.0] free up memory when releasing the last shared lock
2016-05-19 10:28:23 +02:00
Vincent Petry fe1b8adf08 Merge pull request #24676 from owncloud/stable9-fixchunkttl
[stable9] Allow chunk GC mtime tolerance for unfinished part chunks
2016-05-18 18:19:26 +02:00
Robin Appelman e36d70c0de free up memory when releasing the last shared lock 2016-05-18 16:19:35 +02:00
Vincent Petry dfc0a7a4a6 Allow chunk GC mtime tolerance for unfinished part chunks
Whenever part chunks are written, every fwrite in the write loop will
reset the mtime to the current mtime. Only at the end will the touch()
operation set the mtime to now + ttl, in the future.

However the GC code is expecting that every chunk with mtime < now are
old and must be deleted. This causes the GC to sometimes delete part
chunks in which the write loop is slow.

To fix this, a tolerance value is added in the GC code to allow for
more time before a part chunk gets deleted.
2016-05-17 17:15:09 +02:00
Vincent Petry de97110f58 Merge pull request #24441 from owncloud/backport-24432-never-save-app-language-into-request-lang
[9.0] Do not save the language as request lang for apps when we didn't find…
2016-05-17 16:15:05 +02:00
Vincent Petry 56031fe155 Merge pull request #24540 from owncloud/stable9-do-not-automatically-try-to-enable-index-php-less-urls
[Stable9] do not automatically try to enable index php less urls
2016-05-13 16:13:09 +02:00
Vincent Petry 27b12d2901 Merge pull request #24530 from owncloud/backport-24526-forward-user-manager-error-messages-to-ui
[9.0] Pass on the error message from the user manager to the UI
2016-05-13 16:11:55 +02:00
Robin Appelman f8979a9ee2 cap the normalized path cache (#24390) 2016-05-12 16:24:56 +02:00
Lukas Reschke 283347a026 Remove repair steps for broken updater repair (#24438)
That's only required for an update to 9.0.2, the updater server has the required logic to ensure that clients get the right update delivered.
2016-05-12 12:08:54 +02:00
VicDeo 60ec1fc85d Put back pcntl warning (#24295) 2016-05-12 12:08:08 +02:00
Thomas Müller de915934e6 Merge pull request #24538 from owncloud/fix-oracle-ci-stable9
[stable9] Wait a while even after successful connect ...
2016-05-11 19:20:48 +02:00
Thomas Müller 7de566b7c0 Wait a while even after successful conect ... 2016-05-11 18:25:01 +02:00
Thomas Müller d9a2b85059 Merge pull request #24502 from owncloud/stable9-updater-server-configurable
[stable9] Make update server URL configurable
2016-05-11 16:43:41 +02:00
Thomas Müller 877a8f09b4 Merge pull request #24574 from owncloud/stable9_24568
[Stable 9] Fix etag propegation test race condition
2016-05-11 16:29:08 +02:00
Roeland Jago Douma 8aebab9853 Fix test race condition
E-tag propagation replies on the mtime of the file. Order of events:

1. add file 'foo.txt' with content 'bar'
2. Set mtime to now() - 1
3. Check if etag changed.

Now this goes right often when 1 and 2 happen in the same second.
However imagine

1. add file 'foo.txt' with content 'bar' (at t=0.999)
2. Set mtime to now() - 1 (at t=1.001)

Now the mtime will be set to the same time. Thus not chaning the etag.
2016-05-11 14:54:21 +02:00
Lukas Reschke 3505776b6e Make update server URL configurable
Currently testing the updates is a big problem and not really super easy possible. Since we now have a new updater server we should also make this configurable so that people can properly test updates.
2016-05-11 14:37:53 +02:00
Thomas Müller d7da0ac1dc Merge pull request #24384 from owncloud/backport-24327-memory-usage-in-callForAllUsers
[9.0] Better callForAllUsers memory usage
2016-05-11 14:37:13 +02:00
Thomas Müller 6c6cf01af1 Merge pull request #24554 from owncloud/kill-en@pirate-stable9
[stable9] Yo-ho-oh - Murder all band 'o pirates
2016-05-11 13:25:14 +02:00
Thomas Müller 750aeda8b7 Yo-ho-oh - Murder all band 'o pirates - backport of #24550 2016-05-11 11:22:08 +02:00
Joas Schilling decb4789bb Pass on the error message from the user manager to the UI 2016-05-11 11:08:00 +02:00
Thomas Müller 45413d7952 Merge pull request #24541 from owncloud/stable9-backport-23705
[stable9] Fixed 'Help Translate' link
2016-05-11 09:38:56 +02:00
Pau 5d73670686 Fixed 'Help Translate' link 2016-05-10 17:24:56 +02:00
Lukas Reschke b78625e0ae Add repair step for copying the RewriteBase 2016-05-10 17:19:45 +02:00
Lukas Reschke 4e10b81eb0 Move file since stable9 uses old autoloader 2016-05-10 16:53:50 +02:00
Lukas Reschke fefb59e7d0 Do not automatically try to enable index.php-less URLs
The current logic for mod_rewrite relies on the fact that people have properly configured ownCloud, basically it reads from the `overwrite.cli.ur
l` entry and then derives the `RewriteBase` from it.

This usually works. However, since the ownCloud packages seem to install themselves at `/owncloud` (because subfolders are cool or so…) _a lot_ of people have just created a new Virtual Host for it or have simply symlinked the path etc.

This means that `overwrite.cli.url` is wrong, which fails hard if it is used as RewriteBase since Apache does not know where it should serve files from. In the end the ownCloud instance will not be accessible anymore and users will be frustrated. Also some shared hosters like 1&1 (because using shared hosters is so awesome… ;-)) have somewhat dubious Apache configurations or use versions of mod_rewrite from the mediveal age. (because updating is money or so…)

Anyhow. This makes this explicitly an opt-in configuration flag. If `htaccess.RewriteBase` is set then it will configure index.php-less URLs, if
admins set that after installation and don't want to wait until the next ownCloud version they can run `occ maintenance:update:htaccess`.

For ownCloud 9.0 we also have to add a repair step to make sure that instances that already have a RewriteBase configured continue to use it by copying it into the config file. That way all existing URLs stay valid. That one is not in this PR since this is unneccessary in master.

Effectively this reduces another risk of breakage when updating from ownCloud 8 to ownCloud 9.

Fixes https://github.com/owncloud/core/issues/24525, https://github.com/owncloud/core/issues/24426 and probably some more.
2016-05-10 16:49:36 +02:00
Thomas Müller a3bdcfbb90 Merge pull request #24446 from weits/cherry_webdav
solves problem with moving files via WebDAV
2016-05-09 09:17:59 +02:00
Petr Svoboda 7fb631a13b solves problem with moving files via WebDAV
When moving files via WebDAV I sometimes got 

PHP Fatal error:  Nesting level too deep - recursive dependency? in /var/www/owncloud/lib/private/files/view.php on line 729

This small change has fixed the problem for me
2016-05-04 17:23:12 +02:00
Joas Schilling f7f9ef55b6 Do not save the language as request lang for apps when we didn't find any 2016-05-04 14:07:07 +02:00
Björn Schießle 6c797eed82 first call the post_login hooks, before we call getUserFolder.
The login process needs to be completed before we can safely create
the users home folder. For example we need to give encryption a chance
to initialize the users encryption keys in order to copy the skeleton
files correctly
2016-05-03 14:16:17 +02:00
Thomas Müller f9aef7ab9f Fixes #23899 2016-05-03 14:14:59 +02:00
Roeland Jago Douma 1c7ec3a7f5 Use a CappedCache in the user database backend
When running with a user database backend on large installations the
cache can grow to significant sizes. This can be especially problematic
when running big cron/repair jobs.
2016-05-03 13:08:30 +02:00
C Montero-Luque e13d02de2d 9.0.2 2016-05-03 04:37:42 -04:00
Joas Schilling bbcef57d2a When we iterate over all users that might be too much memory 2016-05-02 13:03:56 +02:00
Joas Schilling 13ea66e791 Don't loop over the backends, we already know where the user should be 2016-05-02 13:03:47 +02:00
C Montero-Luque fb82321090 9.0.2 RC2 2016-05-02 04:14:16 -04:00
C. Montero Luque 218a206a6e Merge pull request #24343 from owncloud/stable9_24326
[Stable 9] Make ownCloud work again in php 7.0.6
2016-05-02 04:09:23 -04:00
Roeland Jago Douma a834531aef Make ownCloud work again in php 7.0.6
See https://bugs.php.net/bug.php?id=72117
Basically a bugfix in php caused this issue. So isset is not called more
often. We have to catch this.
2016-05-01 12:31:26 +02:00
Thomas Müller ec1a66b8a6 Merge pull request #24311 from owncloud/more-intelligent-update-detection
[stable9] Check for hash instead of file existence
2016-04-28 07:02:12 +02:00
Lukas Reschke 145810dc20 Check for hash instead of file existence
The previous logic did not necessarily trigger in every case. This logic is more error-resistant, the autoload_classmap.php file has a guaranteed different hash on 9.0.0, 9.0.1 and 9.0.2

Fixes https://github.com/owncloud/updater/issues/342
2016-04-27 15:46:24 +02:00
C Montero-Luque 795f321a19 9.0.2 RC1 2016-04-26 21:22:56 -04:00
C. Montero Luque d359311afc Merge pull request #24294 from owncloud/stable9-remove-pcntl-warning
Remove pcntl warning for 9.0.2
2016-04-26 21:19:30 -04:00
C. Montero Luque 1c23fa5d16 Merge pull request #24289 from owncloud/local-invalid-9
[9.0] error out if a local storage isn't setup correctly
2016-04-26 21:19:23 -04:00
C. Montero Luque fe753fe722 Merge branch 'stable9' into local-invalid-9 2016-04-26 16:46:23 -04:00
C. Montero Luque 62a35d3f7a Merge branch 'stable9' into stable9-remove-pcntl-warning 2016-04-26 16:46:12 -04:00
C. Montero Luque 98820f2af3 Merge pull request #24292 from owncloud/stable9-work-around-more-updater-issues
[stable9] Also exclude __apps
2016-04-26 14:51:09 -04:00
C. Montero Luque 4f5c03e310 Merge pull request #24261 from owncloud/scanner-propagate-9
[9.0] triger the propagator from the command line scanner
2016-04-26 14:50:02 -04:00
C. Montero Luque 36bba77575 Merge pull request #24282 from owncloud/backport-24262-stable9
[stable9] check whether index is set before using it
2016-04-26 14:49:51 -04:00
C. Montero Luque 438d451391 Merge pull request #24281 from owncloud/backport-disable-paste-zone
[stable9] Disable pastezone for jquery.fileupload
2016-04-26 14:49:38 -04:00
Robin Appelman 884c8215f8 add tests 2016-04-26 20:17:17 +02:00
Robin Appelman 06bfd58b2c error out if a local storage isn't setup correctly 2016-04-26 20:17:17 +02:00
Lukas Reschke 9a1688db7c Merge pull request #24278 from owncloud/stable9-more-sanity
[stable9] Don't write empty RewriteBase
2016-04-26 20:16:23 +02:00
Lukas Reschke 7ee7d091f2 Don't write empty RewriteBase
ownCloud may be configured to live at the root folder without a
trailing slash being specified. In this case manually set the
rewrite base to `/`
2016-04-26 20:13:20 +02:00
Victor Dubiniuk ffe561df62 Remove pcntl warning for now 2016-04-26 21:08:33 +03:00
Lukas Reschke 590ed3edda Also exclude __apps
Workaround for https://github.com/owncloud/updater/issues/331 for 9.0.2
2016-04-26 19:18:31 +02:00
Lukas Reschke a70d6f6a62 Disable pastezone for jquery.fileupload
jquery.fileupload offers the [`pastezone`](https://github.com/blueimp/jQuery-File-Upload/wiki/Options#pastezone) functionality. This functionality is enabled by default and if somebody copy-pastes something into Chrome it will automatically trigger an upload of the content to any configured jquery.fileupload element embedded in the JS.

This implementation triggers some problems:

1. The pastezone is defined globally by default (🙈). So if there are multiple fileupload's on a page (such as in the personal settings) then stuff is going to be uploaded to all embedded uploads.
2. Our server code is not able to parse the data. For example for uploads in the files app we expect a file name which is not specified => Just an error is thrown. You can reproduce this by taking a file into your clipboard and in Chrome then pressing <kbd>CTRL + V</kbd>.
3. When copy-pasting some string from MS Office on the personal page a temporary avatar with said content is created.

Considering that this is anyways was never working at all and causes bugs I've set the `pastezone` to `null`. This mens that upload via copy and paste will be disabled.

Lesson learned: Third-party JS libraries can have some weird details.
2016-04-26 14:37:40 +02:00
Arthur Schiwon e542bfd1d7 check whether index is set before using it 2016-04-26 14:36:24 +02:00
Thomas Müller 1087385cae Merge pull request #24259 from owncloud/stable9-mount-unique
[stable9] don't get the config for the same mount multiple times
2016-04-26 14:35:12 +02:00
Thomas Müller 80a31b7565 Merge pull request #24242 from owncloud/stable9-backport-24052
[stable9] Fix LDAP race conditions
2016-04-26 14:34:57 +02:00
Thomas Müller 6c861f71eb Merge pull request #24202 from owncloud/backport-stable9-23972
[9.0] Call private cache methods only for `OC\Files\Cache\Cache`
2016-04-25 23:10:51 +02:00
Thomas Müller bec8465902 Merge pull request #24250 from owncloud/scanner-locking-9
[9.0] add locks in the scanner to prevent multiple scanners running on the …
2016-04-25 23:03:20 +02:00
Thomas Müller b425a0e307 Merge pull request #24236 from owncloud/backport-24214-stable9
[stable9] on clone Connection, do not take over the existing LDAP resource
2016-04-25 23:03:05 +02:00
Robin Appelman 1397d9a93c triger the propagator from the command line scanner 2016-04-25 18:29:57 +02:00
Robin Appelman b375086c47 add test 2016-04-25 17:43:52 +02:00
Robin Appelman d436326e19 don't get the config for the same mount multiple times 2016-04-25 17:43:40 +02:00
Robin Appelman 51f5edd749 add locks in the scanner to prevent multiple scanners running on the same files 2016-04-25 15:46:04 +02:00
Daniel Jagszent 1aa8765177 [9.0] Call private cache methods only for OC\Files\Cache\Cache 2016-04-25 14:55:05 +02:00
Thomas Müller 5925ab99f8 Merge pull request #24241 from owncloud/backport-24240-add-missing-use-statement
Add missing use statement
2016-04-25 14:45:58 +02:00
Joas Schilling dd415b62f5 Add missing use statement 2016-04-25 13:34:20 +02:00
Morris Jobke 5b126cde48 Fix LDAP race conditions
* getFromCache is wrapped in isCached
* inbetween the two calls the cache entry hits it's TTL
* getFromCache returns null
* this fix only checkes if the returned value is null and
  return only non-null values
2016-04-25 13:32:40 +02:00
Arthur Schiwon 8ebde1e74d on clone Connection, do not take over the existing LDAP resource
For one, it solves potential conflicts when using the resource. For the
other, one on the login check (the only place where a clone happens
currently) we do not need to rebind after confirming the user's login
was successful.
2016-04-25 12:41:52 +02:00
Thomas Müller 57b9ae18f0 Merge pull request #24196 from owncloud/backport-24183-change-background-job-sort-order
[9.0] Change the sort order of background jobs to be DESC instead of ASC
2016-04-22 17:26:26 +02:00
Thomas Müller 98431b490e Merge pull request #24195 from owncloud/stable9-fs-initmountpoint-nulluser
[stable9] Throw NoUserException when attempting to init mount point for null user
2016-04-22 17:26:06 +02:00
Thomas Müller a6164472a3 Merge pull request #24180 from owncloud/backport-24145-limit-background-job-runtime-9.0
[9.0] Make sure that CLI cron doesn't run for ever, but makes use of the ne…
2016-04-22 17:23:53 +02:00
Thomas Müller d2b4bf7682 Merge pull request #24158 from owncloud/encryped-size-progation-9
[9.0] dont do optimized size propagation for encrypted files
2016-04-22 15:24:38 +02:00
Thomas Müller bbc720d2d3 Merge pull request #24192 from owncloud/create-personal-calendar-stable9
Personal calendar should be generated even if the birthday calendar a…
2016-04-22 14:23:09 +02:00
Joas Schilling 3e1dc64737 Change the sort order of background jobs to be DESC instead of ASC
In theory, if your instance ever creates more jobs then your system cron can
handle, the default background jobs get never executed anymore. Because
everytime when the joblist returns the next job it looks for the next ID,
however there is always a new next ID, so it will never wrap back to execute
the low IDs. But when we change the sort order to be DESC, we make sure that
these low IDs are always executed, before the system jumps back up to
execute the new IDs.
2016-04-22 14:11:26 +02:00
Vincent Petry 27d12f7a99 Throw NoUserException when attempting to init mount point for null user
In some scenarios initMountPoints is called with an empty user, and
also there is no user in the session.

In such cases, it is unsafe to let the code move on with an empty user.
2016-04-22 14:02:55 +02:00
Thomas Müller 711641e4a9 Personal calendar should be generated even if the birthday calendar already exists - fixes #24082 2016-04-22 13:03:31 +02:00
Thomas Müller 27d6852b3e Merge pull request #24131 from owncloud/dont-transfer-files-to-not-ready-user-stable9
[9.0] Introduce isReadyForUser and verify in file transfer ownership
2016-04-22 10:33:18 +02:00
Joas Schilling 9dc1c6c41f Make sure that CLI cron doesn't run for ever, but makes use of the next spawn 2016-04-22 09:56:18 +02:00
Thomas Müller 81b5df3236 Merge pull request #24172 from owncloud/stable9-certificate
[stable9] Ignore certificate file if it starts with file://
2016-04-22 09:36:32 +02:00
Thomas Müller 6365851672 Merge pull request #24153 from owncloud/stable9-remember-email-when-setting-expiration
[stable9] remember email when setting expiration date
2016-04-21 23:22:01 +02:00
Thomas Müller 7a2a6ce609 Merge pull request #24163 from owncloud/fix-birthday_calendar-acl-stable9
[stable9] Birthday calendar should never have write acl
2016-04-21 23:21:05 +02:00
Lukas Reschke 830a080f0e [stable9] Ignore certificate file if it starts with file:// 2016-04-21 19:00:27 +02:00
Thomas Müller 4e50dd87d5 Birthday calendar should never have write acl - fixes #24154 2016-04-21 16:44:06 +02:00
Thomas Müller ed746a7ec2 Merge pull request #24112 from owncloud/backport-24111-chunking-users-in-background-jobs
[9.0] Chunk the users correctly in the trashbin and versions background job
2016-04-21 16:21:12 +02:00
Robin Appelman 74ed0a8aba dont do optimized size propagation for encrypted files 2016-04-21 14:24:53 +02:00
Robin Appelman 440cf335ad Add unit tests for shared size propagation with encryption 2016-04-21 14:24:49 +02:00
Christoph Wurst e33adcf0df remember email when setting expiration date
fixes #22947
2016-04-21 13:01:17 +02:00
Thomas Müller 68f62ad50a Merge pull request #24129 from owncloud/stable9_24098
[stable9] When the scanner detects a file is changed clear checksum
2016-04-21 12:56:04 +02:00
Thomas Müller 80993b245b Merge pull request #24134 from owncloud/fix-problems-caused-by-updater
[stable9] Add repair step for updater issues
2016-04-21 12:55:42 +02:00
Thomas Müller a4a800fe30 Merge pull request #24136 from owncloud/backport-24135
[stable9] Write .htaccess also from CLI
2016-04-21 12:51:34 +02:00
Lukas Reschke 572ff9c9fe Write .htaccess also from CLI
The new updater as shipped with ownCloud 9.0.x invokes `occ` via `shell_exec`. This means that the `\OC::$CLI` code is used when updating.

This removes the manual `.htaccess` modifications, effectively leading to the fact that URLs without index.php in it stop working. This also affects share URLs which could be considered a rather serious regression.

- User installs 9.0.0 via web
- User shares /s/1234
- User updates to 9.0.1 via ownCloud updater
- Link to /s/1234 is broken, /index.php/s/1234 works
2016-04-20 22:25:02 +02:00
Lukas Reschke 2d373416d8 Add repair step for updater issues
The updater as shipped with ownCloud =< 9.0.1 has several bugs leading to a not properly executed update. For example the third-party changes are not copied.

This pull request:

1. Ships the third-party files changed since ownCloud 9.0.1 in the resources folder. On update the files are replaced. (https://github.com/owncloud/updater/issues/316)
2. Adds updater/* and _oc_upgrade/* as an exemption to the code integrity checker since the updater is updating in the wrong order. (https://github.com/owncloud/updater/issues/318)
2016-04-20 21:40:53 +02:00
Thomas Müller 22f9a12c74 Merge pull request #24108 from owncloud/fix_24032
Allow setting can edit permissions on federated shares in webUI
2016-04-20 20:42:03 +02:00
Thomas Müller fcebd32e37 Merge pull request #24099 from owncloud/fix_23632_9.0
[stable9] init users mount point before recovery
2016-04-20 20:41:35 +02:00
Thomas Müller e2a274fdd3 Merge pull request #23831 from owncloud/backport-23511
[9.0] sidebar click modification
2016-04-20 20:41:03 +02:00
Thomas Müller df544e8dbe Introduce isReadyForUser and verify in file transfer ownership - fixes #23786 2016-04-20 20:25:22 +02:00
Thomas Müller fdab395925 Merge pull request #23576 from owncloud/background-scan-unscanned-9
[9.0] handle completely unscanned storages in the background scanner
2016-04-20 20:22:07 +02:00
Roeland Jago Douma 2296552104 When the scanner detects a file is changed clear checksum
Fixes #23782 and #23783

If the file scanner detects a changed file we clear the checksum while
we update the cache.

* Unit test added
2016-04-20 19:09:26 +02:00
Thomas Müller 98647b8fe4 Merge pull request #24119 from owncloud/fix_24095_9.0
[stable9] preserve information if it is a rename operation or not
2016-04-20 13:47:19 +02:00
Björn Schießle ccddb18cab preserve information if it is a rename operation or not 2016-04-20 12:34:20 +02:00
Roeland Jago Douma 466b7dc05f Allow setting can edit permissions on federated shares in webUI
Fixes #24032

Since we have a slightly different UI for the federated shares our
normal logic fails us. This makes sure to add the correct permissions
when it is a federated share.
2016-04-20 11:14:32 +02:00
Joas Schilling 21970c1b19 Chunk the users correctly in the trashbin and versions background job 2016-04-20 10:39:14 +02:00
Björn Schießle 288b4e21d0 we need to initialize the mount points of the given user before we recover
access to his files
2016-04-19 17:17:39 +02:00
Thomas Müller bd19bbb926 Merge pull request #23924 from josh4trunks/stable9
Backport  #23752 to stable9
2016-04-13 14:11:37 +02:00
Thomas Müller 6f5d30b8ee Merge pull request #23941 from owncloud/stable9-exclude-autoload-static
Exclude autoload_static.php (#23935)
2016-04-13 00:32:49 +02:00
Thomas Müller 57c08cfd77 Fix the exclude path 2016-04-12 16:26:25 +02:00
Lukas Reschke 6e8adea2ab Exclude autoload_static.php (#23935)
Composer 1.1 has since yesterday a new performance improvement that will be automatically used for PHP >= 5.6, however this file is incompatible with older PHP versions and thus we need to exclude it from the checks.

Note that this performance improvement is only used on >= 5.6 so ownCloud will still run fine on older PHP versions as well.
2016-04-12 14:37:10 +02:00
Thomas Müller 4f5d1e9f60 Merge pull request #23930 from owncloud/stable9-backport-23901
[stable9] Catch the AutoloadNotAllowedException also for legacy jobs
2016-04-12 14:27:17 +02:00
Thomas Müller a87d961d01 Merge pull request #23784 from owncloud/stable9-backport-23304
[stable9] Fix PHP memory leak in file_get_contents()
2016-04-12 13:11:28 +02:00
Morris Jobke aecfcf64c4 Catch the AutoloadNotAllowedException also for legacy jobs
* same as #18839 for legacy jobs
* avoids spamming the log with useless entries
2016-04-12 09:16:44 +02:00
Joshua Ruehlig 5408b16728 Backport #23752 to stable9
Fixes orientation of thumbnails and gallery view of JPG's with exif rotation.
2016-04-11 09:40:41 -07:00
Thomas Müller 3e0f106876 Merge pull request #23840 from owncloud/backport-23839-sabre-dav-3.0.9
Update sabre/dav to 3.0.9 on stable9
2016-04-11 14:03:34 +02:00
Joas Schilling 3587531331 Update sabre/dav to 3.0.9 onb stable9 2016-04-11 11:28:23 +02:00
Thomas Müller 847834ee73 Merge pull request #23897 from owncloud/add-VCFExportPlugin-stable9
Adding VCFExportPlugin
2016-04-11 10:17:34 +02:00
Thomas Müller 1d4d45e91f Adding VCFExportPlugin 2016-04-10 20:41:44 +02:00
Joas Schilling d2c11a35b7 Correctly return an empty string for empty files 2016-04-08 15:08:52 +02:00
Thomas Müller c929c4db84 Merge pull request #23801 from owncloud/fix-23496-master-stable9
[stable9] Avoid fatal php error dring cron execution
2016-04-08 14:50:32 +02:00
Thomas Müller 0a79241a0a Merge pull request #23837 from owncloud/stable9-handle-null-in-usermanager
[stable9] Prevent null to be passed into the closure of callForAllUsers
2016-04-08 14:50:15 +02:00
Thomas Müller 8b87837a4d Prevent null to be passed into the closure of callForAllUsers 2016-04-07 14:11:48 +02:00
Erik Pellikka 35d044c121 sidebar click modification 2016-04-07 05:07:15 -04:00
C Montero-Luque 54fc92c372 9.0.1 2016-04-06 17:30:21 -04:00
Thomas Müller 76342fa27d Merge pull request #23572 from owncloud/stabe9-release-notes
[Stable9] release notes
2016-04-06 20:53:59 +02:00
Joas Schilling c43713515b Remove duplicated message 2016-04-06 15:51:25 +02:00
Joas Schilling e5bec54e4e Make the version a string 2016-04-06 15:41:25 +02:00
Victor Dubiniuk b87b27cbd9 Show hint in CLI 2016-04-06 15:34:16 +02:00
Thomas Müller dca6869a89 Merge pull request #23574 from owncloud/sabre-plugin-browser-error-page-stable9
[stable9] Sabre plugin browser error page
2016-04-06 15:32:12 +02:00
C. Montero Luque 1092de539f Merge pull request #23799 from owncloud/dont-collide-with-php-internals
[stable9] Use static method
2016-04-06 09:20:19 -04:00
C. Montero Luque 6e55f93836 Merge branch 'stable9' into dont-collide-with-php-internals 2016-04-06 09:20:11 -04:00
Thomas Müller fa7f1874dd Merge pull request #23805 from owncloud/backport-of-#23760
[stable9] Fix conditional check in MySQL setup
2016-04-06 14:28:57 +02:00
Victor Dubiniuk cfd8cc3fd8 Show release notes 2016-04-05 17:13:31 +03:00
Victor Dubiniuk 118c39d472 Show cli notice for big installations 2016-04-05 17:13:31 +03:00
Victor Dubiniuk b05269826a Add releasenotes class 2016-04-05 17:13:31 +03:00
Daniel Hansson cff3122a37 [stable9] Fix conditional check in MySQL setup
Backport of #23760

Fix conditional check in MySQL setup.
2016-04-05 15:16:02 +02:00
Thomas Müller 19541dd1ce fixes #23496 2016-04-05 14:01:23 +02:00
Lukas Reschke a50619200c Use static method
This is ugly as hell. But if we directly access `\OCP\IUserSession::getUser` here PHP throws a segfault on some servers:

```
gdb /usr/sbin/apache2 --batch --quiet -ex "run -f /etc/apache2/apache2.conf -DNO_DETACH -DONE_PROCESS -DDEBUG $defines" -ex "quit"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.6. Set the 'ServerName' directive globally to suppress this message
warning: the debug information found in "/usr/lib/debug//usr/lib/php5/20121212/mysql.so" does not match "/usr/lib/php5/20121212/mysql.so" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug/usr/lib/php5/20121212/mysql.so" does not match "/usr/lib/php5/20121212/mysql.so" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug//usr/lib/php5/20121212/mysqli.so" does not match "/usr/lib/php5/20121212/mysqli.so" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug/usr/lib/php5/20121212/mysqli.so" does not match "/usr/lib/php5/20121212/mysqli.so" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug//usr/lib/php5/20121212/pdo_mysql.so" does not match "/usr/lib/php5/20121212/pdo_mysql.so" (CRC mismatch).

warning: the debug information found in "/usr/lib/debug/usr/lib/php5/20121212/pdo_mysql.so" does not match "/usr/lib/php5/20121212/pdo_mysql.so" (CRC mismatch).

[New Thread 0x7fffdd206700 (LWP 28386)]
[Thread 0x7fffdd206700 (LWP 28386) exited]
[New Thread 0x7fffdd206700 (LWP 28387)]
[New Thread 0x7fffdc975700 (LWP 28388)]

Program received signal SIGSEGV, Segmentation fault.
zend_parse_parameters (num_args=2, type_spec=type_spec@entry=0x7ffff3f85227 "s|s") at /build/php5-pO28mL/php5-5.5.9+dfsg/Zend/zend_API.c:923
923 /build/php5-pO28mL/php5-5.5.9+dfsg/Zend/zend_API.c: No such file or directory.
A debugging session is active.

    Inferior 1 [process 28382] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]
```

I'm still struggling to get a minimal example of this (also considering that it doesn't happen on every system :party). Anyways, it's a functional workaround until I determined the root cause… (also given the fact that patches may never be backported to distributions 🙈
2016-04-05 12:45:46 +02:00
Morris Jobke 7fdac35654 Fix PHP memory leak in file_get_contents()
* ref https://bugs.php.net/bug.php?id=61961
* ref https://github.com/owncloud/core/issues/20261#issuecomment-180000256
* code is based on the proposal of @chriseqipe
* fixes #20261
2016-04-04 18:14:39 +02:00
Thomas Müller 277c9f4a03 Merge pull request #23764 from owncloud/backport-23743-transfer-ownership
[9.0] Unmount the share before deleting it, so we don't try to use it later on
2016-04-04 16:48:29 +02:00
Thomas Müller 4da4163d14 Merge pull request #23541 from owncloud/backport-23515-menu-language
[9.0] Fix the translations of the User menu
2016-04-04 16:47:39 +02:00
Morris Jobke 85a0dd3689 [stable9] Read available l10n files also from theme folder
* Read available l10n files also from theme folder

The old behaviour was that only languages could be used for an app
that are already present in the apps/$app/l10n folder. If there is
a themed l10n that is not present in the apps default l10n folder
the language could not be used and the texts are not translated.

With this change this is possible and also the l10n files are
loaded even if the default l10n doesn't contain the l10n file.

* Inject server root - allows proper testing and separation of concerns
2016-04-04 13:29:04 +02:00
Thomas Müller f8b1e2cca1 Merge pull request #23723 from owncloud/stable9-also-hide-password-for-private-key-password-update
[stable9] Also replace password in updatePrivateKeyPassword
2016-04-04 10:54:47 +02:00
Thomas Müller 501cb1a147 Merge pull request #23735 from owncloud/stable9-core-globalajaxerrorwhengoingaway
[stable9] Detect user navigating away, don't interpret as ajax error
2016-04-04 10:54:34 +02:00
Joas Schilling dd5f38e351 Inject the Mount Manager 2016-04-04 09:10:43 +02:00
Joas Schilling d857f7caf2 Unmount the share before deleting it, so we don't try to use it later on 2016-04-04 09:10:33 +02:00
C Montero-Luque 6774f60240 9.0.1 RC2 2016-04-01 23:00:23 +02:00
Vincent Petry c58e96e639 Adjust core unit tests for unload/reload cases 2016-04-01 16:55:55 +02:00
Vincent Petry 51ff3e7443 Stronger fix for navigate away detection 2016-04-01 16:55:47 +02:00
Vincent Petry d8261d41cc Firefox returns 303 on cross-domain redirect
Added 303 to catch SSO cross-domain redirect in Firefox.
2016-04-01 16:55:40 +02:00
Vincent Petry 752e6676e1 Detect user navigating away, don't interpret as ajax error
Whenever a user navigates away, all ajax calls will fail with the same
result like a cross-domain redirect (SSO). To distinguish these cases,
we need to detect whether the error is a result of the user navigating
away. For this, we introduce a new flag that will be set in
"beforeunload".

Additional handling was required for false positives in case "beforeunload" is
used (ex: cancelled upload) and the user cancelled the navigation.
2016-04-01 16:55:34 +02:00
Lukas Reschke 78ee14dad5 Also replace password in updatePrivateKeyPassword
Fixes https://github.com/owncloud/core/issues/23717
2016-04-01 11:06:31 +02:00
Thomas Müller 9c800f62dd Merge pull request #23590 from owncloud/fix-themes-for-stable9
[stable9] Fix for themes with .jpg backgrounds
2016-04-01 11:02:42 +02:00
Thomas Müller 059df32542 Merge pull request #23684 from owncloud/stable9-backport-23676
[stable9] Properly handle return values of OC_App::getAppInfo()
2016-04-01 11:02:09 +02:00
Morris Jobke 43579e784f Properly handle return values of OC_App::getAppInfo()
* fixes #23668
2016-04-01 09:16:47 +02:00
Thomas Müller 193a33a8ad Merge pull request #23709 from owncloud/stable9-make-sure-that-encrypted-version-is-set
[stable9] Make sure that the encrypted version is set
2016-04-01 09:08:50 +02:00
Thomas Müller b84746ce36 Merge pull request #23710 from owncloud/fix_encryption_versions_on_external_storages_9.0
[stable9] fix creation of versions of encrypted files on external storages
2016-04-01 09:08:09 +02:00
Bjoern Schiessle 2cb45e71ea fix creation of versions of encrypted files on external storages
in order to create a 1:1 copy of a file if a version gets created
we need to store this information on copyBetweenStorage(). This
allows us to by-pass the encryption wrapper if we read the source file.
2016-03-31 23:18:45 +02:00
Thomas Müller e3cc82df38 Merge pull request #23518 from owncloud/stable9-gdrive-stream-download
[stable9] GDrive stream download with RetryWrapper
2016-03-31 23:14:49 +02:00
Frank Karlitschek 05fd4f2da0 Merge pull request #23522 from owncloud/stable9-dropbox-stream-download
[stable9] Dropbox stream download with RetryWrapper
2016-03-31 21:18:29 +02:00
Lukas Reschke d16553d2d8 Make sure that the encrypted version is set
The code path called when using external storage with WebDAV is using `\OC\Files\Storage\Wrapper\Encryption::getMetaData` which did not contain the actual encrypted version inside the cache entry version. This lead to the following:

1. User uploaded a file
2. File is created and `\OC\Files\Storage\Wrapper\Encryption::getMetaData` is called. It has an empty `encryptedVersion` but sets `encrypted` to either `true` or `false`.
3. The call when updating the file cache will use the old version.
2016-03-31 20:39:35 +02:00
Thomas Müller 8453073fdb Merge pull request #23689 from owncloud/revert-23629
Revert "Explicitly add the current principal to the acl in case of gr…
2016-03-31 12:32:34 +02:00
Thomas Müller b6fb3148c2 Revert "Explicitly add the current principal to the acl in case of group sharing"
This reverts commit 52f4acf23d.
2016-03-31 11:22:47 +02:00
Thomas Müller cfe0a6450e Merge pull request #23673 from owncloud/stable9-fix-sftp-retry-wrapper
[stable9] Use RetryWrapper for SFTP storage
2016-03-31 11:12:29 +02:00
Thomas Müller 5f5e13351a Merge pull request #23552 from owncloud/fix-group-sharing-for-v1-caldav-and-carddav-stable9
Fix group sharing for v1 caldav and carddav stable9
2016-03-31 11:12:12 +02:00
Thomas Müller ef8b75960c Handle group shares of addressbooks on v1 as well ... now FINALLY .... 2016-03-31 09:07:36 +02:00
Thomas Müller f28817aed5 Fix acls for calendar objects and cards - fixes #23273 2016-03-31 09:07:36 +02:00
Thomas Müller cb300d164e Return proper current-user-principal on v1 endpoints - fixes #23306 2016-03-31 09:05:39 +02:00
Thomas Müller e664e582fb Fix group shares on v1 caldav and carddav - fixes #23328 2016-03-31 09:05:39 +02:00
Thomas Müller 9bd5fd23e7 Merge pull request #23629 from owncloud/fix-group-sharing-access-stable9
Explicitly add the current principal to the acl in case of group sharing
2016-03-31 09:04:07 +02:00
Thomas Müller 835e24826d Merge pull request #23640 from owncloud/backport-23545-lock-mountpoint-on-removal
[9.0] Lock the mountpoint while removing
2016-03-31 08:59:28 +02:00
Thomas Müller 8d6aff69a8 Merge pull request #23659 from owncloud/backport-23654-xcache-availablility
[9.0] xcache.var_size with 64M should evaluate to isAvailable
2016-03-31 08:58:18 +02:00
Joas Schilling 7c7e079a36 Lock the mountpoint while removing 2016-03-30 23:50:10 +02:00
Lukas Reschke 1f7b037a59 Use RetryWrapper for SFTP storage
Equivalent to https://github.com/owncloud/core/pull/23442

Required for making encryption work with external storage reliable.
2016-03-30 23:01:42 +02:00
Vincent Petry 99843c06f9 GDrive stream download with RetryWrapper 2016-03-30 18:43:01 +02:00
Thomas Müller ed88f7b8b5 Merge pull request #23664 from owncloud/stable9-share-displayownerfix
[stable9] Fix displaying owner before share icon in file list
2016-03-30 18:42:49 +02:00
Thomas Müller 03f89d8242 Merge pull request #23662 from owncloud/make-google-drive-drumpf-again
[stable9] Use the shipped cacerts.pem instead of the global one
2016-03-30 18:41:36 +02:00
Vincent Petry f981661195 Fix displaying owner before share icon in file list
Initial display of owner was missing
2016-03-30 18:10:56 +02:00
Thomas Müller 424c2b8263 Merge pull request #23652 from owncloud/stable9_23651
[Stable 9] Non moveable mount points should always be UPDATE+DELETE shareable
2016-03-30 17:01:41 +02:00
Thomas Müller 2ab503f70a Merge pull request #23641 from owncloud/avatar-remove-9
[9.0] only remove avatars from the folder we store them in
2016-03-30 17:00:53 +02:00
Thomas Müller cdff098357 Merge pull request #23618 from owncloud/backport-23543-activity-emails-always-short
Backport 23543 activity emails always short
2016-03-30 16:59:22 +02:00
Lukas Reschke 57596e1415 Use the shipped cacerts.pem instead of the global one
The one we ship may cause problems since Equifax is not included anymore (SHA-1 certs) are deprecated. We should just be consistent here and also use the certificate file which is used by the other calls in the library.
2016-03-30 16:55:26 +02:00
Joas Schilling dd8d1c2b94 xcache.var_size with 64M should evaluate to isAvailable 2016-03-30 16:43:28 +02:00
Roeland Jago Douma 2660cf80c3 Non moveable mount points should always be UPDATE+DELETE shareable
Fixes #23536

The new sharing code is much stricter in checking permissions. However
for non moveable mounts the permissions UPDATE+DELETE are not reported
on the mount point.

This is just a quick fix.

* Updated unit tests
2016-03-30 13:42:08 +02:00
Robin Appelman 3cadc45ca5 only remove avatars from the folder we store them in 2016-03-30 10:25:37 +02:00
Thomas Müller 8c9842fbd9 Fix unit test 2016-03-30 10:01:17 +02:00
Thomas Müller 456035a750 Merge pull request #23631 from owncloud/stable9-upload-white
[stable9] correct form of upload-white icon to be same as upload icon
2016-03-30 09:09:20 +02:00
C Montero-Luque fb77aa2e62 9.0.1 RC1 2016-03-29 22:03:08 +02:00
Jan-Christoph Borchardt 3b4999c835 correct form of upload-white icon to be same as upload icon 2016-03-29 19:18:54 +02:00
Thomas Müller 52f4acf23d Explicitly add the current principal to the acl in case of group sharing 2016-03-29 19:09:31 +02:00
Thomas Müller 6b7c694a42 Merge pull request #23582 from owncloud/avatar-save-failure-9
[9.0] dont die when we cant save the resized avatar, log instead
2016-03-29 18:49:22 +02:00
Thomas Müller 605abf9088 Merge pull request #23570 from owncloud/stable9-dav-sharetypes-remote
[stable9] Return remote shares in oc:share-types Webdav property
2016-03-29 18:41:25 +02:00
Joas Schilling b5922e467a Allow the activity app to set the current user when sending emails 2016-03-29 09:12:12 +02:00
Joas Schilling 1733b6e8c8 We are only formatting an object when it's not null 2016-03-29 09:11:48 +02:00
Daniel Hansson c066882309 [stable9] Fix for themes with .jpg backgrounds
Without this all themes with .jpg or .jpeg are broken.
2016-03-26 15:10:04 +01:00
Robin Appelman b456035aa7 dont die when we cant save the resized avatar, log instead 2016-03-25 14:13:17 +01:00
Thomas Müller 03f461591e Merge pull request #23550 from owncloud/backport-23542
[stable9] getAppPath can return false
2016-03-24 22:44:31 +01:00
Robin Appelman 4f78cb1e3d handle completely unscanned storages in the background scanner 2016-03-24 19:41:03 +01:00
Lukas Reschke 1f4e824d0b Add magical regex to catch browsers 2016-03-24 19:03:21 +01:00
Thomas Müller 7a6d4a3287 In case of exception we return an html page in case the client is a browser 2016-03-24 19:03:21 +01:00
Vincent Petry 1f4738c372 Return remote shares in oc:share-types Webdav property
Fixes web UI to properly display the share status icon when an outgoing
remote share exists
2016-03-24 17:22:09 +01:00
Thomas Müller af7c34d9a6 Merge pull request #23401 from owncloud/backport-23282-stable9
[stable9] fix writing to cache when fallback server should be used immediately
2016-03-24 13:30:44 +01:00
Thomas Müller 515ebc02b0 Merge pull request #23539 from owncloud/backport-23530
[stable9] Backport 23530
2016-03-24 13:06:00 +01:00
Lukas Reschke 0bb7644150 getAppPath can return false
Fixes https://github.com/owncloud/core/issues/23533
2016-03-24 12:22:42 +01:00
Thomas Müller c9eadb7b77 Merge pull request #23520 from owncloud/node-get-from-cache-9
[9.0] Query the cache when checking if a node exists
2016-03-24 11:58:48 +01:00
Joas Schilling a381cbc241 Fix the translations of the User menu 2016-03-24 09:17:17 +01:00
Lukas Reschke 2139130ec8 Check if request is sent from official ownCloud client
There are authentication backends such as Shibboleth that do send no Basic Auth credentials for DAV requests. This means that the ownCloud DAV backend would consider these requests coming from an untrusted source and require higher levels of security checks. (e.g. a CSRF check)

While an elegant solution would rely on authenticating via token (so that one can properly ensure that the request came indeed from a trusted client) this is a okay'ish workaround for this problem until we have something more reliable in the authentication code.
2016-03-24 09:00:35 +01:00
Vincent Petry 195cf4111e Dropbox stream download with RetryWrapper 2016-03-23 18:07:13 +01:00
Vincent Petry 443d72ee87 Fix dropbox storage to not store the whole file in memory
Since the library can only store the full response in memory on
download, we use an alternate client lib and set the correct headers to
be able to stream the content to a temp file.
2016-03-23 18:07:13 +01:00
Robin Appelman 5a630c6a0e properly use fileinfo objects 2016-03-23 17:13:32 +01:00
Robin Appelman 24670b4218 set watch policy in test 2016-03-23 17:13:28 +01:00
Robin Appelman c864420d6c improve reuse in getUserFolder 2016-03-23 17:13:24 +01:00
Robin Appelman f77ce8829c pass the fileinfo to the node if available 2016-03-23 17:13:21 +01:00
Robin Appelman 70a5233f69 Query the cache when checking if a node exists 2016-03-23 17:13:17 +01:00
Thomas Müller 5ca10cf6f8 Merge pull request #23308 from owncloud/smb-not-available-9
[9.0] handle connection errors as storage not available in smb
2016-03-23 11:03:15 +01:00
Thomas Müller 0009bf244b Merge pull request #23464 from owncloud/stable9-backport-23443
[stable9] Log more information by default
2016-03-23 09:13:10 +01:00
Thomas Müller 3d0e4bdc82 Merge pull request #23493 from owncloud/stable9_22679
[Stable 9] When the Share API is disabled do not return shares
2016-03-23 08:07:06 +01:00
Thomas Müller 6edf403f3f Merge pull request #23475 from owncloud/stable9-RealRancor-exclude_lost_and_found
[stable9] Exclude lost+found dir in integrity check
2016-03-23 08:06:36 +01:00
Lukas Reschke 43516ebef9 Only use the user session if ownCloud is already installed
When installing ownCloud with autotest and MySQL some log entries may be created which will invoke the logging class. IUserSession has a dependency on the database which will make the installation fail => 💣
2016-03-22 22:27:35 +01:00
C Montero-Luque 53f95373ba 9.0.1 beta 2016-03-22 17:01:51 -04:00
Thomas Müller a9c13dc58a Merge pull request #23361 from owncloud/stable9-gdrive-chunkupload
[stable9] Chunk upload for GDrive
2016-03-22 21:27:14 +01:00
Roeland Jago Douma 7fb32f8358 When the Share API is disabled do not return shares
Fixes #22668

Block everything in the OCS Share API
2016-03-22 19:51:01 +01:00
Thomas Müller 656c7f38b6 Merge pull request #23478 from owncloud/backport-l10n
Backport translations to stable9
2016-03-22 17:44:59 +01:00
Thomas Müller 97dc57a143 Merge pull request #23456 from owncloud/backport-23329-stable9
[stable9] Avatar must be saved after login is done and external storages set up…
2016-03-22 17:40:48 +01:00
Thomas Müller 3b98e8c56d Merge pull request #23467 from owncloud/early-creation-of-birthday-calendar-stable9
Create the contact birthday calendar right away as soon as the comman…
2016-03-22 17:28:11 +01:00
Thomas Müller 1a100c69ba Merge pull request #23473 from owncloud/stable9_23398
[stable 9]  Allow blocking of group sharing
2016-03-22 17:16:23 +01:00
Thomas Müller 03fcbc8ceb Merge pull request #23479 from owncloud/backport-23461-activity-without-sharing
[9.0] Fix "AutoloadNotAllowedException" when files_sharing is disabled
2016-03-22 17:15:24 +01:00
Thomas Müller 49b5b1b08c Merge pull request #23447 from owncloud/smb-permissions-9
[9.0] properly use smb permissions
2016-03-22 17:12:41 +01:00
Thomas Müller 2da2f26e56 Merge pull request #23466 from owncloud/backport-23448-exception-on-enabling-default-app
[9.0] Do not abort with an exception when a default app can not be enabled
2016-03-22 16:26:06 +01:00
Thomas Müller d60f39e4f2 Merge pull request #23442 from owncloud/fix_22286_9.0
[stable9] apply retry wrapper to make sure that we always read/write a complete block
2016-03-22 16:23:54 +01:00
Thomas Müller 329e72a286 Merge pull request #23480 from owncloud/backport-23404-stable9
[stable9] adjust PrincipalUri as returned from Sabre to effective username
2016-03-22 16:20:22 +01:00
Arthur Schiwon 90a2be58f8 adjust PrincipalUri as returned from Sabre to effective username
backport of #23404
2016-03-22 15:24:01 +01:00
Thomas Müller 9b2fdc5358 Merge pull request #23359 from owncloud/streams-0.4-9
[9.0] Update icewind/streams and icewind/smb
2016-03-22 15:10:36 +01:00
Joas Schilling 0d9edd80f1 Fix "AutoloadNotAllowedException" when files_sharing is disabled 2016-03-22 15:01:52 +01:00
Joas Schilling 4fdb2254a4 Backport translations to stable9 2016-03-22 13:10:33 +01:00
RealRancor b3ead7568d Exclude lost+found dir in integrity check 2016-03-22 12:59:18 +01:00
Roeland Jago Douma f8f292ab16 Fix js strings if group sharing is disabled 2016-03-22 12:37:45 +01:00
Roeland Jago Douma c7f1b82b4b Respect disabled group sharing in sharee endpoint
* Fix tests
2016-03-22 12:37:34 +01:00
Roeland Jago Douma aa75cfcf14 Block group sharing in API and in share manager
* Fix tests
2016-03-22 12:37:20 +01:00
Roeland Jago Douma e9fc791e9f Add config to sharemanager 2016-03-22 12:37:08 +01:00
Roeland Jago Douma 4d8c81a2d9 Add allow sharing with groups checkbox to admin page 2016-03-22 12:36:59 +01:00
Thomas Müller ad852ca24a Create the contact birthday calendar right away as soon as the command is executed once - fixes #23203 2016-03-22 10:31:53 +01:00
Joas Schilling 50e94db4d5 Do not abort with an exception when a default app can not be enabled 2016-03-22 10:28:59 +01:00
Thomas Müller ae2c207b6e Merge pull request #23453 from owncloud/generate-birthdays-on-upgrade-stable9
Generate birthdays on upgrade stable9
2016-03-22 10:17:41 +01:00
Thomas Müller f5fe2b4d08 Merge pull request #23462 from owncloud/backport-23422-comments-activities
[9.0] Add comment icons and "You commented" translations
2016-03-22 10:05:25 +01:00
Robin Appelman 77afc18b82 properly use smb permissions 2016-03-22 09:57:38 +01:00
Vincent Petry 3a955ca43c Adjusted 3rdparty submodule commit 2016-03-22 09:46:32 +01:00
Robin Appelman 204288f4a5 update icewind/smb to 1.0.8 2016-03-22 09:46:32 +01:00
Robin Appelman 8af75c734a update icewind/streams to 0.4.0 and icewind/smb to 1.0.7 in files_external 2016-03-22 09:46:32 +01:00
Lukas Reschke 177ad39854 Log more information by default
This modifies the logger to add the following logging information by default:

- Request Method
- Request URL
- Current user
2016-03-22 09:46:02 +01:00
Joas Schilling d59860aacd Add comment icons and "You commented" translations 2016-03-22 08:55:32 +01:00
Arthur Schiwon f6b6813f5f Avatar must be saved after login is done and external storages set up properly, fixes #21555 2016-03-21 22:20:50 +01:00
Thomas Müller da95db78d0 Merge pull request #23436 from owncloud/backport-23388-infinite-cronjob
[9.0] Do not create a new job when it failed to connect atm
2016-03-21 18:05:30 +01:00
Thomas Müller 3d19a179c7 Merge pull request #23383 from owncloud/backport-use-raw-path
[stable9] Use raw PATH_INFO
2016-03-21 18:03:10 +01:00
Thomas Müller 3f4be066f9 Generate birthdays on upgrade from 8.2 as well 2016-03-21 17:53:03 +01:00
Thomas Müller 419adc8d50 Birthday events are generated on upgrade 2016-03-21 17:52:59 +01:00
Bjoern Schiessle 627724bc6a apply retry wrapper to make sure that we always read/write a complete block 2016-03-21 15:18:13 +01:00
Thomas Müller b3fef39006 Merge pull request #23307 from owncloud/stable9-update-sabre3.0.8-fseek-only
[stable9] Update 3rdparty submodule for sabre 3.0.8 update
2016-03-21 14:31:18 +01:00
Thomas Müller 3d9187e231 Merge pull request #23390 from owncloud/stable9-share-keepoptioncheckboxinblocks
[stable9] Keep share checkboxes together
2016-03-21 14:15:40 +01:00
Joas Schilling 1a239b2f0d Do not create a new job when it failed to connect atm 2016-03-21 14:00:29 +01:00
Thomas Müller 6afac05937 Merge pull request #23389 from owncloud/backport-23287-fed-share-action-links
[9.0] Make sure to append the web root as per doc
2016-03-21 11:16:15 +01:00
Thomas Müller 571de654cd Merge pull request #23378 from owncloud/stable9-backport-23370
[stable9] Update avatar on username change if avatar is set
2016-03-21 09:49:32 +01:00
Thomas Müller 546a0929a6 Merge pull request #23163 from owncloud/stable9-wording
[stable9] Adjust wording a bit
2016-03-21 09:48:49 +01:00
Thomas Müller fefaa1fd87 Merge pull request #23293 from owncloud/backport-23108
[stable9] Ensure that stored version is at least 1 for cross-storage copy
2016-03-21 09:48:15 +01:00
Thomas Müller ce0f68c7ce Merge pull request #23382 from owncloud/backport-fix-htaccess-issues
[stable9] Write .htaccess update only if not already written
2016-03-21 09:42:57 +01:00
Thomas Müller 660c0da0a9 Merge pull request #23384 from owncloud/stable9-dav-sharesproperty
[stable9] Add webdav share-types property to fix favorites/tags share status icon
2016-03-21 09:42:36 +01:00
Thomas Müller 179ac2b98c Merge pull request #23387 from owncloud/stable9-systemtags-create-same-prefix
[stable9] Allow creating tags where another one with same prefix exists
2016-03-21 09:42:18 +01:00
Arthur Schiwon d282affec2 fix writing to cache when fallback server should be used immediately 2016-03-18 20:34:23 +01:00
Vincent Petry 8ef8be6be5 Keep share checkboxes together
- removed leading spaces before markup which can affect rendering in
  some cases
- added shareOption CSS class to group and keep share option checkbox +
  label
- moved ".showCruds" arrow into the matching shareOption to keep the
  arrow together with the checkbox
2016-03-18 14:16:26 +01:00
Joas Schilling 064e13511f Make sure to append the web root as per doc 2016-03-18 13:36:51 +01:00
Vincent Petry a7dfc70e2e Allow creating tags where another one with same prefix exists
When creating a new entry, compare the full tag name and not only the
prefix.
2016-03-18 12:32:29 +01:00
Roeland Jago Douma df056e1299 Remove duplicated copyright 2016-03-18 11:38:02 +01:00
Roeland Jago Douma 26deb0a897 Add intergration tests
Intergration tests to ensure the share-types property is set correctly.

* Unshared item
* Shared with user
* Shared with group
* Shared by link
* Shared with user & group & link
2016-03-18 11:37:56 +01:00
Vincent Petry 3c77311397 Display share status info in favorite list
Returns the shareTypes share status info to the favorites file list.
2016-03-18 11:36:43 +01:00
Vincent Petry fb705fa305 Add webdav property for share info in PROPFIND response 2016-03-18 11:36:39 +01:00
Vincent Petry c513317c49 Update 3rdparty submodule for sabre 3.0.8 update 2016-03-18 11:03:41 +01:00
Lukas Reschke d9b632c001 Use raw PATH_INFO
PATH_INFO will be empty at this point and thus the logic in base.php did not catch this. Changing this to "getRawPathInfo" will ensure that the path info is properly read.

Fixes https://github.com/owncloud/core/issues/23199
2016-03-18 10:30:26 +01:00
Lukas Reschke 1fdf790c8f Write .htaccess update only if not already written
The ownCloud update routine also runs the "updateHtaccess" code in case only an application gets updated. This leads to having entries multiple time in the .htaccess file leading to unpredictable behaviour.

With 9.0 we added the "#### DO NOT CHANGE ANYTHING ABOVE THIS LINE ####" entry to the .htaccess file, this change uses it to ensure that only to the .htaccess gets written if the file has not been modified already. Since the .htaccess modifications are optional this is not a big deal.

Without this change updates of applications can break the rewrite rules (ending in endless redirects) as well as breaking the code integrity checker.
2016-03-18 09:18:46 +01:00
Morris Jobke d65c3a77e2 Update avatar on username change if avatar is set
* fixes #20455
2016-03-18 08:51:29 +01:00
Thomas Müller 382b18e85e Merge pull request #23309 from owncloud/backport-23164-stable9
[stable9] Prevent certain DBs throwing exceptions on same-value updates
2016-03-17 20:52:11 +01:00
Thomas Müller 9e5c5c804b Merge pull request #23358 from owncloud/stable9-backport-occ-typos
Some typo corrections in occ command output
2016-03-17 20:50:41 +01:00
Thomas Müller 7d80b20368 Merge pull request #23355 from owncloud/stable9_backport_23346
[Stable 9] Set proper public webdav permissions when public upload disabled
2016-03-17 17:14:13 +01:00
Vincent Petry 1e1c0885c6 Only use GDrive chunks when needed 2016-03-17 16:12:42 +01:00
Vincent Petry 8e0b78c746 Chunk upload for GDrive
Instead of storing the WHOLE file in memory in a PHP variable, use the
library's chunk upload support.
2016-03-17 16:12:38 +01:00
Carla Schroder e7152f495c Some typo corrections in occ command output 2016-03-17 07:05:34 -07:00
Thomas Müller 00ef623f1c Merge pull request #23259 from owncloud/backport-22998
[stable9] Delay check till scanner is used
2016-03-17 14:29:39 +01:00
Roeland Jago Douma 9dfcb55a2f Set proper public webdav permissions when public upload disabled
Fixes #23325

It can happen that a user shares a folder with public upload. And some
time later the admin disables public upload on the server.

To make sure this is handled correctly we need to check the config value
and reduce the permissions.

Fix is kept small to be easy backportable.
2016-03-17 13:54:53 +01:00
Thomas Müller ec4c5a3e75 Merge pull request #23128 from owncloud/contacts_calendar_name_color-stable9
add title and color to birthday calendar
2016-03-17 13:08:03 +01:00
Thomas Müller f46225fa2c Merge pull request #23335 from owncloud/ext-user-mounting-gui-stable9
[stable9] Display external storage GUI even if user mounting disabled
2016-03-17 12:25:53 +01:00
Thomas Müller f28f6a3001 Merge pull request #23302 from owncloud/fed-unshare-with-9
[9.0] Specify the target user when unsharing a federated share
2016-03-17 10:07:19 +01:00
Thomas Müller 25027c31ff Merge pull request #23313 from owncloud/check-syntax-travis-stable9
[stable9] Execute parallel-lint
2016-03-17 09:29:26 +01:00
Joas Schilling b8af6e703a Don't try to execute a dav syntax test 2016-03-17 09:07:55 +01:00
Robin McCorkell 403eb87f4d Display external storage GUI even if user mounting disabled 2016-03-16 22:10:36 +00:00
Thomas Müller ed4ed0e26f Merge pull request #23319 from owncloud/backport-23189-1
[stable9] Require at least libxml 2.7.0
2016-03-16 21:53:33 +01:00
Thomas Müller 24dcdf9d5c Merge pull request #23324 from owncloud/stable9-backport-23253
[stable9] Give swift 15 seconds after startup
2016-03-16 21:53:09 +01:00
Morris Jobke 3a773f4eca Give swift 15 seconds after startup 2016-03-16 18:08:42 +01:00
Lukas Reschke e71ebf334d [stable9] Execute parallel-lint
Backport of #22994 and #23303
2016-03-16 17:31:18 +01:00
Thomas Müller 08b9193919 Merge pull request #23315 from owncloud/travis-stable9
Execute travis on stable9 as well
2016-03-16 17:29:27 +01:00
Lukas Reschke dbcb037639 Require at least libxml 2.7.0
Fixes https://github.com/owncloud/core/issues/23168
2016-03-16 17:13:13 +01:00
Thomas Müller adbc5bbd1f Merge pull request #23271 from owncloud/backport-23192
[stable9] Backport 23192
2016-03-16 16:50:04 +01:00
Thomas Müller 4720719b08 Merge pull request #23270 from owncloud/backport-fix-support-for-php7-in-htaccess
[stable9] Backport fix support for php7 in htaccess
2016-03-16 16:49:38 +01:00
Morris Jobke 7b818d9442 Execute travis on stable9 as well
Backport of #23100 to stable9
2016-03-16 15:39:07 +01:00
Robin McCorkell aa91d50d04 Prevent certain DBs throwing exceptions on same-value updates
A PreconditionNotMetException must only be thrown if explicit
preconditions are specified for setValues(), not if the value is merely
the same as was already in the DB.
2016-03-16 14:50:00 +01:00
Robin Appelman 95cd1671b3 handle connection errors as storage not available in smb 2016-03-16 14:47:03 +01:00
Robin Appelman 8c035ae6f6 Specify the target user when unsharing a federated share 2016-03-16 13:29:04 +01:00
Thomas Müller d54106dada Merge pull request #23264 from owncloud/fix_22907_9.0
allow group shares, even if not all public keys are available
2016-03-16 11:18:51 +01:00
Lukas Reschke f9ad57ee52 Ensure that stored version is at least 1 for cross-storage copy
In case of a move operation from an unencrypted to an encrypted
storage the old encrypted version would stay with "0" while the
correct value would be "1". Thus we manually set the value to "1"
for those cases.

See also https://github.com/owncloud/core/issues/23078
2016-03-16 10:37:41 +01:00
Lukas Reschke cdadd4cd1b Fallback for crappy ancient distributions
Fixes https://github.com/owncloud/core/issues/23181
2016-03-15 17:14:53 +01:00
Lukas Reschke 6f7fc6c5db always_populate_raw_post_data has been removed with PHP 7.0 2016-03-15 17:03:19 +01:00
Lukas Reschke 9ef7340dc7 Add support for custom values in integrity checker 2016-03-15 17:03:16 +01:00
Lukas Reschke d1978a6950 Replace all required values 2016-03-15 17:03:13 +01:00
Lukas Reschke dfc7e6b421 Duplicate block for PHP 7 2016-03-15 17:03:09 +01:00
Thomas Müller b580d26270 Merge pull request #23237 from owncloud/backport-22901
[stable9] Add DAV authenticated also to other scopes
2016-03-15 16:03:35 +01:00
Thomas Müller 5466a800fa Merge pull request #23252 from owncloud/invalid-share-storage-9
[9.0] dont break when there is an invalid share
2016-03-15 15:59:24 +01:00
Bjoern Schiessle 0f372a2a8c allow group shares, even if not all public keys are available 2016-03-15 15:13:55 +01:00
Lukas Reschke 987146d5db Delay check till scanner is used
Fixes https://github.com/owncloud/core/issues/22973 and https://github.com/owncloud/core/issues/22987
2016-03-15 14:39:16 +01:00
Robin Appelman 9d688e655d move failedstorage to core 2016-03-15 12:49:12 +01:00
Robin Appelman f29440dbbc dont break when there is an invalid share 2016-03-15 12:49:06 +01:00
Thomas Müller 5a6b2956d8 Merge pull request #23022 from owncloud/stable9_backport_22602
[stable 9]   Do not check all chunks of a chunked upload if we do not need to
2016-03-15 12:15:45 +01:00
Thomas Müller 99de93a6c6 Merge pull request #23075 from owncloud/backport-23074-oracle-ext-storage
[9.0] Correctly escape join statements and use selectAlias
2016-03-15 12:13:54 +01:00
Thomas Müller 4159187a6e Merge pull request #23229 from owncloud/backport-23218-memcached-exceptions-on-success
[9.0] Fix errors in memcached implementation
2016-03-15 12:10:23 +01:00
Thomas Müller 6f64c99653 Merge pull request #23230 from owncloud/backport-23191
[stable9] Verify the getResponse returns a ResponseInterface
2016-03-15 12:09:55 +01:00
Thomas Müller ce0f28c123 Merge pull request #23231 from owncloud/backport-23190
[stable9] Use proper URLs for search results
2016-03-15 12:07:45 +01:00
Thomas Müller cca3a249fd Merge pull request #23240 from owncloud/backport-23222
backport of #23222
2016-03-15 12:07:15 +01:00
Thomas Müller 0608455b01 Merge pull request #23247 from owncloud/stable9_backport_23226
[stable 9] Generate a valid URL for link notification
2016-03-15 12:06:41 +01:00
Roeland Jago Douma 3a5e90fa03 Generate a valid URL for link notification
fixes #23197

* Updated unit test
2016-03-15 07:34:53 +01:00
Phiber2000 e2c557ab82 backport of #23222 (#23225) 2016-03-14 17:59:40 +01:00
Lukas Reschke e1727477ac Add DAV authenticated also to other scopes
Fixes https://github.com/owncloud/core/issues/22893
2016-03-14 17:57:37 +01:00
Thomas Müller cf232c4182 Merge pull request #23112 from owncloud/backport-23086-stable9
[9.0] remove deprecated ldap_sort
2016-03-14 17:16:36 +01:00
Thomas Müller efa673136e Merge pull request #23223 from owncloud/backport-23091-case-insensitive-group-sharing
[9.0] Case insensitive group sharing
2016-03-14 16:33:51 +01:00
Thomas Müller 3380a3af74 Merge pull request #22949 from owncloud/stable9-fix-group-share-migration-for-calendars-and-contacts
Fix group sharing and sharing permissions - fixes #22932
2016-03-14 16:31:08 +01:00
Thomas Müller 80d0e43fc7 Merge pull request #22933 from owncloud/stable9-backport-22872
[stable9] Update error text for link passwords
2016-03-14 16:20:00 +01:00
Lukas Reschke effc522572 Use proper URLs for search results
Fixes https://github.com/owncloud/core/issues/23136
2016-03-14 16:16:25 +01:00
Thomas Müller 689f3dea45 Merge pull request #22943 from owncloud/backport-22800-stable9
[9.0] don't hide server not available exception, fixes #20536
2016-03-14 16:15:50 +01:00
Lukas Reschke 3a73f97706 Verify the getResponse returns a ResponseInterface
Can also return `null` as per PHPDoc. Regression added by https://github.com/owncloud/core/commit/97f5c095f4018119e15d7c612a685da1dc91a340

Fixes https://github.com/owncloud/core/issues/23145
2016-03-14 16:15:18 +01:00
Thomas Müller a09ffb274b Merge pull request #23065 from owncloud/stable9-add-rewrite-rules-after-setup
[stable9] Add base rewrite rule only when RewriteBase is defined
2016-03-14 16:14:21 +01:00
Thomas Müller 2609bf3500 Merge pull request #23114 from owncloud/no-fatal-error-if-DSTART-is-not-set-stable9
No fatal error if dstart is not set stable9
2016-03-14 16:14:03 +01:00
Joas Schilling 9190885b4e Fix errors in memcached implementation 2016-03-14 16:13:35 +01:00
Thomas Müller f79195853e Merge pull request #23221 from owncloud/backport-23214-url-cache-key-length
[9.0] Shorter cache key for URL entries
2016-03-14 16:08:29 +01:00
Thomas Müller 884a3b9bb4 Merge pull request #23105 from owncloud/readonly-birthday-cal-stable9
The birthday_calendar is read-only
2016-03-14 16:07:42 +01:00
Joas Schilling a9ed80869a Correctly lower the search input as well 2016-03-14 13:48:45 +01:00
Joas Schilling 8e49a99896 Add integration tests for sharee API 2016-03-14 13:48:21 +01:00
Joas Schilling 5b593450c3 Return the correct group casing in sharee api 2016-03-14 13:48:13 +01:00
Joas Schilling 69cf557d0b Shorter cache key for URL entries 2016-03-14 13:34:34 +01:00
Thomas Müller 5c38c1c845 Merge pull request #23156 from owncloud/add-port-support-to-trusteddomain-stable9
Explicitly check for port
2016-03-14 12:30:58 +01:00
Thomas Müller dac69225d2 Merge pull request #23102 from owncloud/stable9-backport-23094
[stable9] Fake LOCK statement for Windows 7, 8 and 10 network mounts
2016-03-13 19:51:26 +01:00
Lukas Reschke f984718921 Adjust wording a bit
**Before:**
> Your PHP version (5.4.16) is no longer supported by PHP. We encourage you to upgrade your PHP version to take advantage of performance and security updates provided by PHP.

**After:**
> You are currently running PHP 5.4.0. We encourage you to upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it.

Fixes https://github.com/owncloud/enterprise/issues/1170
2016-03-11 17:46:21 +01:00
Thomas Müller b752a08d63 Merge pull request #23127 from owncloud/fix-getOwner-on-fileshome-stable9
getOwner is not available on FileHome - fixes #23116
2016-03-11 15:05:20 +01:00
Lukas Reschke 9bc99bb297 Explicitly check for port
The setup uses `\OCP\IRequest::getInsecureServerHost` which in some cases can also include a port. This makes the trusted domain check fail thus.

I've decided to add this here that way because adjusting the setup would require parsing the host properly. This is not something that can be done very good in PHP. Check the following example for why `parse_url` is not our friend: https://3v4l.org/k501Z
2016-03-11 14:54:20 +01:00
Thomas Müller e3de44ea51 Merge pull request #23060 from owncloud/stable9_backport_23056
[stable 9] Add mimetype to OCS Share API output
2016-03-11 14:51:21 +01:00
Thomas Müller aeb480a8c3 Merge pull request #23113 from owncloud/allow-migrating-all-calendars-stable9
Allow to migrate calendars of all users
2016-03-10 23:10:41 +01:00
Georg Ehrke b0c7eba7d0 add title and color to birthday calendar 2016-03-10 22:55:32 +01:00
Thomas Müller e89f27e191 getOwner is not available on FileHome - fixes #23116 2016-03-10 22:51:02 +01:00
Lukas Reschke bd17cc793c Improved rewrite rule
As per https://github.com/owncloud/core/issues/23098 and https://github.com/owncloud/core/issues/23117
2016-03-10 22:18:53 +01:00
Thomas Müller 62a36ee884 The birthday_calendar is read-only 2016-03-10 21:36:11 +01:00
Thomas Müller a58e374956 Merge pull request #22909 from owncloud/backport-22244-prevent-calendar-proppatch
[9.0] Prevent calendar proppatch for share recipients
2016-03-10 21:32:38 +01:00
Roeland Jago Douma 67c4759017 Add intergration tests 2016-03-10 21:20:49 +01:00
Thomas Müller 36b543c490 fixes #23004 2016-03-10 17:59:02 +01:00
Thomas Müller 8465f9b6c6 fixes #23020 2016-03-10 17:58:53 +01:00
Thomas Müller 281a0e9e03 Merge pull request #23096 from owncloud/stable9_backport_23084
[stable 9] Fix MKCOL for IE11 as well
2016-03-10 17:49:01 +01:00
Joas Schilling 7126b64088 Allow to migrate calendars of all users 2016-03-10 17:47:08 +01:00
Arthur Schiwon 38d137c34c remove deprecated ldap_sort 2016-03-10 17:08:25 +01:00
Morris Jobke 098ce188b7 Fake LOCK statement for Windows 7, 8 and 10 network mounts
* fixes #22596
2016-03-10 15:57:33 +01:00
Thomas Müller 730620cfb2 Merge pull request #22912 from owncloud/stable9-diskfreespace-filesworkaround
[stable9] Fix call to disk_free_space when a file is provided
2016-03-10 15:31:38 +01:00
Roeland Jago Douma dd7131512d Fix MKCOL for IE11 as well
Using https://github.com/owncloud/core/pull/22274 we have to patch the
iedavclient.js as well.
2016-03-10 15:18:58 +01:00
Thomas Müller 85168315ab Merge pull request #23071 from owncloud/backport-23032-no-response-on-cli
[9.0] Do not set response status in CLI in case of error
2016-03-10 10:54:25 +01:00
Joas Schilling 09febaad49 Correctly escape join statements and use selectAlias 2016-03-10 10:28:39 +01:00
Thomas Müller 83894b58fe Merge pull request #23016 from owncloud/stable9_backport_23008
[stable 9] Select queries in the default share provider should query for file/folder
2016-03-10 09:10:22 +01:00
Vincent Petry f374368568 Do not set response status in CLI in case of error 2016-03-10 08:57:29 +01:00
Thomas Müller 4030b82c97 Merge pull request #23030 from owncloud/require-xmlreader
[stable9] Add XMLReader as requirement
2016-03-10 08:26:48 +01:00
Thomas Müller 4e90bc017e Merge pull request #22825 from owncloud/backport-22778-stable9
[backport] [stable9] untangle different user manager instances, fixes #22770
2016-03-10 08:26:11 +01:00
Lukas Reschke b315a5ee29 Add base rewrite rule only when RewriteBase is defined
In case Apache is configured with an `Alias` such as with the ownCloud packages the rewrite rules will fail when no valid RewriteBase is configured.
2016-03-09 22:41:32 +01:00
Thomas Müller b017434302 Merge pull request #23024 from owncloud/stable9-backport-22986
[stable9] Remove disabled autocorrect for new file names
2016-03-09 21:44:47 +01:00
Roeland Jago Douma 48cdf38d00 Add mimetype to OCS Share API output
Fixes #23044
2016-03-09 21:28:38 +01:00
Vincent Petry 11f76b2918 Fix call to disk_free_space when a file is provided
In the case of shared files, we have to call free_space() on the file
name. This has the side-effect that when uploading to a local storage
without quota set, it will call disk_free_space with the file name,
which fails.

This fix uses the parent folder in case the given path is a file.
2016-03-09 15:53:37 +01:00
Lukas Reschke 316f86f2a3 Add XMLReader as requirement
The SabreDAV release in 9.0 requires XMLReader, while this is usually compiled in by default some distributions like Gentoo don't.

Without this ownCloud gives a fatal 500 error instead of telling people to enable XMLReader.

Fixes https://github.com/owncloud/core/issues/23003
2016-03-09 15:29:08 +01:00
Thomas Müller bd144efeb1 Merge pull request #22990 from owncloud/stable9-backport-has-key
[stable9] Use "hasKey" instead of checking the value
2016-03-09 15:04:59 +01:00
Morris Jobke 88b9db44a0 Remove disabled autocorrect for new file names
* ref #22784
2016-03-09 14:59:57 +01:00
Roeland Jago Douma 91c7d293ca Added tests
* Unit tests for OC_Filechunking to verify the isComplete function
* Intergration tests to show that shuffling chunks is all fine
2016-03-09 14:48:42 +01:00
Roeland Jago Douma 313b881d2b Do not check all chunks of a chunked upload if we do not need to
Fixes #22601

Before we did a full test on all chunks to verify if a chunked upload
was completed. This is unneeded since if we are missing one chunk we can
already fail.

Also we look from back to front since it is much more likely that we
find a missing chunk thus can error out early.
2016-03-09 14:48:31 +01:00
Roeland Jago Douma 9120448302 Select queries in the default share provider should query for file/folder
There can be leftover calendar and contacts shares in the oc_share
table. We need to filter those out properly.
2016-03-09 13:56:35 +01:00
Thomas Müller d4d4b8d51a Merge pull request #22841 from owncloud/stable9_22830
[Stable 9] Rename and move permissions are set when a file is updatable
2016-03-09 12:27:03 +01:00
Thomas Müller b955ce6141 Merge pull request #22886 from owncloud/stable9-show-version-to-update-to
[stable9] Show version to update to properly
2016-03-09 12:26:53 +01:00
Thomas Müller e2b43c4095 Merge pull request #22908 from owncloud/backport-22904-group-manager-wrong-return
[9.0] Make sure that the return value is an array
2016-03-09 12:26:42 +01:00
Thomas Müller d84cccb911 Merge pull request #22919 from owncloud/backport-double-url-encoding
[stable9] Remove double URL encoding
2016-03-09 12:26:29 +01:00
Thomas Müller c2a16e0584 Merge pull request #22922 from owncloud/stable9-share-archivenamedownloadall
[stable9] Fix archive file name when downloading public share
2016-03-09 12:26:18 +01:00
Thomas Müller d652c87f86 Merge pull request #22924 from owncloud/stable9-versions-fixmtimetooltip
[stable9] Fix tooltip for versions mtime
2016-03-09 12:26:04 +01:00
Thomas Müller 72d4e672b2 Merge pull request #22925 from owncloud/stable9-trash-returnfalseon401
[stable9] Return false on 401 in file list + trash file list
2016-03-09 12:25:47 +01:00
Thomas Müller 95201a829f Merge pull request #22926 from owncloud/stable9-files-newmenu-removebrowsercomplete
[stable9] Remove browser autocomplete in new file menu
2016-03-09 12:25:30 +01:00
Thomas Müller 734b3e1408 Merge pull request #22965 from owncloud/stable9-fix-gdrive
[stable9] Fix compatibility with PHP 5.4
2016-03-09 12:20:24 +01:00
Lukas Reschke ddf56b84d4 Use "hasKey" instead of checking the value
If the check is negative it would depending on the used cache store the value as an empty string. When reading the value this check would thus return "false" even if a value exists.
2016-03-09 09:19:11 +01:00
Lukas Reschke 1975ffa9e7 Fix compatibility with PHP 5.4
Fixes https://github.com/owncloud/core/issues/22960
2016-03-08 19:58:49 +01:00
C Montero-Luque 81f694d83e 9.0.0 2016-03-08 08:48:12 -05:00
Thomas Müller 8d6a6667e5 Fix group sharing and sharing permissions - fixes #22932 2016-03-08 14:45:36 +01:00
Thomas Müller f9a80a9c12 Merge pull request #22945 from owncloud/stable9-fixsharemountrecursion
[stable9] Fix share mounting recursion
2016-03-08 14:42:04 +01:00
Vincent Petry d63f5561fb Fix share mounting recursion 2016-03-08 12:58:46 +01:00
Arthur Schiwon 213dfa2b85 don't hide server not available exception, fixes #20536 2016-03-08 12:40:12 +01:00
Morris Jobke 859303164e Update error text for link passwords
* this removes the old tooltip first before showing
  the new one to update the text - otherwise the old
  text will be shown
2016-03-08 09:00:37 +01:00
Vincent Petry 795331212a Remove browser autocomplete in new file menu 2016-03-07 22:04:36 +01:00
Vincent Petry c9476115b0 Return false on 401 in file list + trash file list
This gives a chance to the global ajax error handler to do its work if
the session expired.
2016-03-07 22:02:19 +01:00
Vincent Petry cfd9c7f6b9 Fix tooltip for versions mtime
It was missing a call to jquery.tooltip
2016-03-07 21:58:17 +01:00
Vincent Petry ebfc8b67d7 Remove "files" arg from download URL in public link page
When no files were specified for download, it means folder download.
In this case, no need to pass an empty "files" argument.
2016-03-07 21:48:15 +01:00
Vincent Petry f9e1d4d56e Fix archive file name when downloading public share
When download a public link share folder using the button on the top
right, it doesn't provide a list of files.

This fix makes sure to trigger the correct logic when no file list was
given.
2016-03-07 21:48:10 +01:00
Lukas Reschke fab42c7cd2 Remove double URL encoding
ZipStreamer as bundled with 9.0 will properly encode the filename already.

Fixes https://github.com/owncloud/core/issues/22836#issuecomment-193336245
2016-03-07 19:33:50 +01:00
C. Montero Luque 9232a124e2 Merge pull request #22913 from owncloud/fix-failing-migration-stable9
Fix failing migration stable9
2016-03-07 11:33:14 -05:00
Thomas Müller b5a06ecd5c Calendar and addressbook migration commands are always available 2016-03-07 15:24:23 +01:00
Thomas Müller 79811b5806 Handle addressbook migration issue by writing the faulty event to the log and continue 2016-03-07 15:24:13 +01:00
Thomas Müller 6413fffdcb Handle calendar migration issue by writing the faulty event to the log and continue 2016-03-07 15:24:03 +01:00
Thomas Müller b3b57621b7 Merge pull request #22897 from owncloud/backport-22896
[9.0] Correctly default to null and add type hint
2016-03-07 14:59:49 +01:00
Thomas Müller 6bfeb4595d Merge pull request #22906 from owncloud/stable9-quota-allowuploadwhenfreespaceisunlimited
[stable9] Fix uploading to fed shares where free space is unlimited
2016-03-07 14:58:31 +01:00
Joas Schilling 5af8ebe3bd Allow to change properties of readonly calendars 2016-03-07 13:58:44 +01:00
Joas Schilling 27f3dcc682 Allow to hide a shared calendar 2016-03-07 13:58:32 +01:00
Thomas Müller b1a1a46193 For 9.0 we don't have the possibility to store calendar and addressbook properties on a per-user basis and therefore we simple don't allow this for now 2016-03-07 13:58:24 +01:00
Joas Schilling 71b3033b35 Make sure that the return value is an array 2016-03-07 13:55:33 +01:00
Vincent Petry c1876ea51c Fix uploading when free space is unlimited
A federated share can report unlimited quota as -3, so the
ajax/upload.php code needs to be adjusted to block uploads when the free
space is unlimited.
2016-03-07 12:41:36 +01:00
Joas Schilling 9ec89b99b1 Correctly default to null and add type hint 2016-03-07 10:55:01 +01:00
C Montero-Luque 0945cb7a0e 9.0.0 RC3 2016-03-06 17:51:05 -05:00
Thomas Müller 6f4712a314 Merge pull request #22884 from owncloud/backport-cache-results
[stable9] Cache results of testRemoteUrl
2016-03-06 19:57:53 +01:00
Thomas Müller d043b6ba91 Merge pull request #22889 from owncloud/stable9-use-custom-header
[stable9] Use custom header
2016-03-06 19:53:19 +01:00
Lukas Reschke ef66729980 Use custom header
PHP in CGI mode eats the Authorization header => 💣
2016-03-05 23:07:11 +01:00
Lukas Reschke 17f5f19187 Show version to update to properly
Properly shows the version that will be updated to.
2016-03-05 22:02:55 +01:00
Lukas Reschke 71e3f7f866 Cache results of testRemoteUrl
Otherwise setting up the storage will result in a HTTP request and thus slowing down ownCloud.

Replaces https://github.com/owncloud/core/pull/22855
2016-03-05 21:09:58 +01:00
C Montero-Luque 0a5f34ab80 9.0.0 RC2 2016-03-04 18:08:02 -05:00
C. Montero Luque 5488bb74fe Merge pull request #22879 from owncloud/stable9-backport-use-clob-for-timezone
[stable9] Use CLOB for timezone
2016-03-04 18:02:45 -05:00
C. Montero Luque 4b85660984 Merge pull request #22871 from owncloud/enable-federation-app-stable9
[stable9] Automatically enabled federation app
2016-03-04 18:02:32 -05:00
C. Montero Luque 5080c34d78 Merge pull request #22867 from owncloud/stable9-backport-22865
[stable9] Run cleanup of expired DB file locks to background job
2016-03-04 17:45:07 -05:00
C. Montero Luque 5d402fc817 Merge pull request #22848 from owncloud/stable9-fileactions-downloadspinnerfix
[stable9] Fix download spinner to work with CSS styles
2016-03-04 16:41:26 -05:00
Lukas Reschke fb62043cc1 [stable9] Use CLOB for timezone
TEXT defaults to a length of 255 which is going to fail in some cases as the timezone can be rather long.

This changes it back to a CLOB as it has been before as well: owncloudarchive/calendar@8d8bb68. I'm not super convinced that CLOB is the best choice here but at least it seems to work.

Fixes #22876

Backport of https://github.com/owncloud/core/pull/22878 to stable9
2016-03-04 22:12:54 +01:00
C. Montero Luque b3c9ed8d5c Merge pull request #22782 from owncloud/backport-22776-doc-fix
Add Versions app header to config.sample.php
2016-03-04 16:10:35 -05:00
Morris Jobke 9737290e39 Run cleanup of expired DB file locks to background job
* fixes #22819

The old way fired a DELETE statement on each destruction of the
DBLockingProvider. Which could cause a lot of queries. It's enough
to run this every 5 minutes in a background job, which in the end
could result in file locks that exists 5 minutes longer - in the
worst case and for not properly released locks.

This makes the DB based locking a lot more performant and could
result in a similar performance to the Redis based locking provider.
2016-03-04 20:13:05 +01:00
C. Montero Luque 121ff350d4 Merge branch 'stable9' into enable-federation-app-stable9 2016-03-04 13:38:02 -05:00
C. Montero Luque bb0c304482 Merge pull request #22861 from owncloud/stable9-trashbin-checkpath
[stable9] Properly check path validity before deleting to trash
2016-03-04 13:33:23 -05:00
Lukas Reschke c9c85b8d4a Adjust OCS test 2016-03-04 17:59:57 +01:00
Lukas Reschke eb59aa8be4 Automatically enabled federation app 2016-03-04 17:40:45 +01:00
Vincent Petry 96d45e90dc Properly check path validity before deleting to trash
This prevents deleting the whole "files" folder of the user whenever
$ownerPath is empty. This can happen in concurrency situations.
2016-03-04 15:33:02 +01:00
Thomas Müller 0655f25406 Merge pull request #22858 from owncloud/stable9-release-channel
[stable9] Add release channel selection back
2016-03-04 15:29:37 +01:00
Thomas Müller 434747f450 Merge pull request #22832 from owncloud/external-unavailable-recheck9
[9.0] allow availability recheck for external storages
2016-03-04 15:29:27 +01:00
Lukas Reschke 7ff2b9232b Add release channel selection back
Allows to select the release channels again and also shows the last check date
2016-03-04 14:39:14 +01:00
Thomas Müller 3d28f364c5 Merge pull request #22852 from owncloud/backport-22851-php54-for-comments
[9.0] ucwords does not support delimiter on 5.4
2016-03-04 14:05:45 +01:00
Joas Schilling 62399f7852 ucwords does not support delimiter on 5.4 2016-03-04 12:20:50 +01:00
Thomas Müller 4fc6deaaf0 Merge pull request #22822 from owncloud/stable9-exclude-assets
[stable9] Exclude the assets folder from integrity check
2016-03-04 11:50:24 +01:00
Vincent Petry e6c6ee8d2a Fix download spinner to work with CSS styles
A recent change replaced img elements with CSS icons for file actions.
This fix adjusts the logic to work properly with CSS icons instead of
images.
2016-03-04 10:50:41 +01:00
Roeland Jago Douma 3673cfae3c Rename and move permissions are set when a file is updatable
* Fix unit tests
2016-03-04 09:37:52 +01:00
Thomas Müller 4da858b3b7 Merge pull request #22829 from owncloud/stable9-revert-22264-read-version-from-info.xml-only
[stable9] Revert "No longer evaluate appinfo/version"
2016-03-04 08:55:52 +01:00
Vincent Petry 8e8f5cdddf Properly set exception in FailedStorage 2016-03-03 20:07:22 +01:00
Robin Appelman f603c57751 allow availability recheck for external storages 2016-03-03 20:07:18 +01:00
Vincent Petry e155f28f5e Revert "No longer evaluate appinfo/version" 2016-03-03 18:42:23 +01:00
Arthur Schiwon dd556d77da untangle different user manager instances, fixes #22770 2016-03-03 17:26:52 +01:00
Lukas Reschke 750fc9ae26 Merge pull request #22818 from owncloud/backport-fix-encryption-on-version-restore
[stable9] Keep "encryptedVersion" when calling `\OC\Files\View::copy`
2016-03-03 16:18:51 +01:00
Lukas Reschke 4186bcbdf2 Exclude the assets folder from integrity check
We should not scan the assets folder as this can contain user specific content. Partially addresses https://github.com/owncloud/core/issues/22803
2016-03-03 16:00:34 +01:00
Lukas Reschke 98f79173ed Keep "encryptedVersion" when calling \OC\Files\View::copy
When calling `\OC\Files\View::copy` we should also keep the version to ensure that the file will always have the correct version attached and can be successfully decrypted.

To test this the following steps are necessary (from https://github.com/owncloud/core/issues/22781#issuecomment-191328982):

1. setup a new ownCloud 9.0 beta2
2. enable encryption
2. upload a docx (5.7MB large)
3. upload the same file again and overwrite the existing file
4. I can download the original file and the first version
5. I restore the first version
6. restored version can no longer be downloaded with the error described above

The manual cache operation in `\OCA\Files_Versions\Storage` is unfortunately necessary since `\OCA\Files_Versions\Storage::copyFileContents` is not using `\OCP\Files\Storage::moveFromStorage` in the case when an object storage is used. Due to the workaround added in https://github.com/owncloud/core/commit/54cea05271b887f1c8062c034741df869bc0f055 the stream is directly copied and thus bypassing the FS.
2016-03-03 14:41:53 +01:00
RealRancor 8d07cb4d85 Add Versions app header to config.sample.php 2016-03-02 15:33:09 +01:00
C Montero-Luque 445957a0e2 9.0.0 RC1 2016-03-01 16:59:42 -05:00
14679 changed files with 623945 additions and 1349655 deletions
+3
View File
@@ -0,0 +1,3 @@
{
"directory": "core/vendor"
}
-86
View File
@@ -1,86 +0,0 @@
FROM ubuntu:noble
ARG DEBIAN_FRONTEND=noninteractive
# PHP
RUN apt-get update -y && \
apt install -y apache2 vim software-properties-common sudo nano gnupg2
RUN apt-get install --no-install-recommends -y \
php8.3 \
php8.3-common \
php8.3-gd \
php8.3-zip \
php8.3-curl \
php8.3-xml \
php8.3-xmlrpc \
php8.3-mbstring \
php8.3-sqlite \
php8.3-xdebug \
php8.3-pgsql \
php8.3-intl \
php8.3-imagick \
php8.3-gmp \
php8.3-apcu \
php8.3-bcmath \
php8.3-redis \
php8.3-soap \
php8.3-imap \
php8.3-opcache \
php8.3-cli \
php8.3-dev \
libmagickcore-6.q16-7-extra \
curl \
lsof \
make \
unzip
# Composer
RUN curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php && \
curl -sS https://composer.github.io/installer.sig -o /tmp/composer-setup.sig && \
php -r "if (hash_file('sha384', '/tmp/composer-setup.php') !== trim(file_get_contents('/tmp/composer-setup.sig'))) { echo 'Composer installation failed, invalid hash'; exit(1); }" && \
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
rm /tmp/composer-setup.php /tmp/composer-setup.sig
RUN echo "xdebug.remote_enable = 1" >> /etc/php/8.3/cli/conf.d/20-xdebug.ini && \
echo "xdebug.remote_autostart = 1" >> /etc/php/8.3/cli/conf.d/20-xdebug.ini && \
echo "apc.enable_cli=1" >> /etc/php/8.3/cli/conf.d/20-apcu.ini
# Autostart XDebug for apache
RUN { \
echo "xdebug.mode=debug"; \
echo "xdebug.start_with_request=yes"; \
} >> /etc/php/8.3/apache2/conf.d/20-xdebug.ini
# Docker
RUN apt-get -y install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable" && \
apt-get update -y && \
apt-get install -y docker-ce docker-ce-cli containerd.io && \
ln -s /var/run/docker-host.sock /var/run/docker.sock
# Dedicated DevContainer user runs Apache
ENV APACHE_RUN_USER=devcontainer
ENV APACHE_RUN_GROUP=devcontainer
RUN useradd -ms /bin/bash ${APACHE_RUN_USER} && \
adduser ${APACHE_RUN_USER} sudo && \
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
sed -ri "s/^export APACHE_RUN_USER=.*$/export APACHE_RUN_USER=${APACHE_RUN_USER}/" "/etc/apache2/envvars" && \
sed -ri "s/^export APACHE_RUN_GROUP=.*$/export APACHE_RUN_GROUP=${APACHE_RUN_GROUP}/" "/etc/apache2/envvars"
USER devcontainer
# NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
RUN bash --login -i -c 'source /home/devcontainer/.bashrc && nvm install 16'
WORKDIR /var/www/html
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-76
View File
@@ -1,76 +0,0 @@
<!--
- SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Nextcloud DevContainer
## Usage
Make sure you have the [VSCode DevContainer](https://code.visualstudio.com/docs/devcontainers/containers) extensions installed. If you open the project, VSCode will ask you if you want to open it inside of the DevContainer. If that's not the case, use <kbd>F1</kbd>&rarr;*Dev Containers: Open Folder in Container*.
Alternatively open the project directly in [GitHub Codespaces](https://github.com/codespaces/new?hide_repo_select=true&ref=master&repo=60243197&skip_quickstart=true).
That's already it. Everything else will be configured automatically by the Containers startup routine.
## Credentials
On first start the Container installs and configures Nextcloud with the following credentials:
**Nextcloud Admin Login**
Username: `admin` <br>
Password: `admin`
**Postgres credentials**
Username: `postgres` <br>
Password: `postgres` <br>
Database: `postgres`
## Services
The following services will be started:
| Service | Local port | Description |
|---------|------------|-------------|
| Nextcloud (served via Apache) | `80` | The main application |
| Mailhog | `8025` | SMTP email delivery for testing |
| Adminer | `8080` | Database viewer. Use credentials from above and connect to `localhost` to get access to the NC database |
## Permissions
The container runs with the user `devcontainer` who is also running the Apache2 process. All mounted source files have
proper permissions so that this user can access everything which is inside the current workspace. If you need to
get root permissions for whatever reason, use `sudo su` or `sudo <command>` (for example `sudo service apache2 restart`).
Everything else (like building the application, adjusting files, ...) should be done as `devcontainer` user.
## NodeJs and NVM
The container comes with [`nvm`](https://github.com/nvm-sh/nvm) and Node 16 installed. This should be sufficient to
build Nextcloud Core sources via `make`. If you need a different Node Version (for example for
app development), you can easily switch between different versions by running:
```bash
# Install and use Node 14
nvm install 14
nvm use 14
# Check version
node -v
# Switch back to Node 16
nvm use 16
# Check version
node -v
```
Note that `nvm` is only installed for the user `devcontainer` and won't work out of the box for
any other user.
## Debugging
The Apache webserver is already configured to automatically try to connect to a debugger process
listening on port `9003`. To start the VSCode debugger process, use the delivered debug profile `Listen for XDebug`.
After you started the VSCode debugger, just navigate to the appropriate Nextcloud URL to get your
debug hits.
-26
View File
@@ -1,26 +0,0 @@
<?php
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
$codespaceName = getenv('CODESPACE_NAME');
$codespaceDomain = getenv('GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN');
$CONFIG = [
'mail_from_address' => 'no-reply',
'mail_smtpmode' => 'smtp',
'mail_sendmailmode' => 'smtp',
'mail_domain' => 'example.com',
'mail_smtphost' => 'localhost',
'mail_smtpport' => '1025',
'memcache.local' => '\OC\Memcache\APCu',
];
if(is_string($codespaceName) && !empty($codespaceName) && is_string($codespaceDomain) && !empty($codespaceDomain)) {
$host = $codespaceName . '-80.' . $codespaceDomain;
$CONFIG['overwritehost'] = $host;
$CONFIG['overwrite.cli.url'] = 'https://' . $host;
$CONFIG['overwriteprotocol'] = 'https';
$CONFIG['trusted_domains'] = [ $host ];
}
-28
View File
@@ -1,28 +0,0 @@
{
"name": "NextcloudServer",
"dockerComposeFile": "docker-compose.yml",
"service": "nextclouddev",
"postCreateCommand": ".devcontainer/setup.sh",
"postStartCommand": ".devcontainer/postStart.sh",
"forwardPorts": [
80,
8080,
8025
],
"customizations": {
"vscode": {
"extensions": [
"felixfbecker.php-debug",
"felixfbecker.php-intellisense",
"ms-azuretools.vscode-docker",
"xdebug.php-debug",
"donjayamanne.githistory"
],
"settings": {
"php.suggest.basic": false
}
}
},
"workspaceFolder": "/var/www/html",
"remoteUser": "devcontainer"
}
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-38
View File
@@ -1,38 +0,0 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
version: '3'
services:
nextclouddev:
build: .
volumes:
- .:/workspace:cached
- /var/run/docker.sock:/var/run/docker-host.sock
- ..:/var/www/html
command: /var/www/html/.devcontainer/entrypoint.sh
ports:
- 80:80
- 8080:8080
- 8025:8025
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: postgres
PGDATA: /data/postgres
volumes:
- db:/data/postgres
network_mode: service:nextclouddev
adminer:
image: adminer
restart: always
network_mode: service:nextclouddev
mailhog:
image: mailhog/mailhog
restart: always
network_mode: service:nextclouddev
volumes:
db:
-8
View File
@@ -1,8 +0,0 @@
#!/bin/bash
#
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
#
sudo service apache2 start
while sleep 1000; do :; done
-14
View File
@@ -1,14 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-8
View File
@@ -1,8 +0,0 @@
#!/bin/bash
#
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
#
# Set git safe.directory
git config --global --add safe.directory /var/www/html
git config --global --add safe.directory /var/www/html/3rdparty
-33
View File
@@ -1,33 +0,0 @@
#!/bin/bash
#
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
#
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" >/dev/null 2>&1 && pwd )"
cd $DIR/
git submodule update --init
# Codespace config
cp .devcontainer/codespace.config.php config/codespace.config.php
# VSCode debugger profile
mkdir -p .vscode && cp .devcontainer/launch.json .vscode/launch.json
# Onetime installation setup
if [[ ! $(sudo -u ${APACHE_RUN_USER} php occ status) =~ installed:[[:space:]]*true ]]; then
echo "Running NC installation"
sudo -u ${APACHE_RUN_USER} php occ maintenance:install \
--verbose \
--database=pgsql \
--database-name=postgres \
--database-host=127.0.0.1 \
--database-port=5432 \
--database-user=postgres \
--database-pass=postgres \
--admin-user admin \
--admin-pass admin
fi
sudo service apache2 restart
+155
View File
@@ -0,0 +1,155 @@
pipeline:
clone:
image: plugins/git
depth: 1
jsunit:
image: nextcloudci/jsunit:jsunit-5
commands:
- ./autotest-js.sh
when:
matrix:
TESTS: jsunit
syntax-php5.4:
image: nextcloudci/php5.4:php5.4-5
commands:
- composer install
- vendor/bin/parallel-lint --exclude vendor/jakub-onderka/ --exclude 3rdparty/symfony/polyfill-php70/Resources/stubs/ --exclude 3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/ --exclude 3rdparty/paragonie/random_compat/lib/ --exclude vendor/composer/autoload_static.php --exclude 3rdparty/composer/autoload_static.php .
when:
matrix:
TESTS: syntax-php5.4
syntax-php5.5:
image: nextcloudci/php5.5:php5.5-5
commands:
- composer install
- vendor/bin/parallel-lint --exclude vendor/jakub-onderka/ --exclude 3rdparty/symfony/polyfill-php70/Resources/stubs/ --exclude 3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/ --exclude 3rdparty/paragonie/random_compat/lib/ --exclude vendor/composer/autoload_static.php --exclude 3rdparty/composer/autoload_static.php .
when:
matrix:
TESTS: syntax-php5.5
syntax-php5.6:
image: nextcloudci/php5.6:php5.6-7
commands:
- composer install
- vendor/bin/parallel-lint --exclude vendor/jakub-onderka/ --exclude 3rdparty/symfony/polyfill-php70/Resources/stubs/ --exclude 3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/ --exclude 3rdparty/paragonie/random_compat/lib/ --exclude vendor/composer/autoload_static.php --exclude 3rdparty/composer/autoload_static.php .
when:
matrix:
TESTS: syntax-php5.6
syntax-php7.0:
image: nextcloudci/php7.0:php7.0-6
commands:
- composer install
- vendor/bin/parallel-lint --exclude vendor/jakub-onderka/ --exclude 3rdparty/symfony/polyfill-php70/Resources/stubs/ --exclude 3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/ --exclude 3rdparty/paragonie/random_compat/lib/ --exclude vendor/composer/autoload_static.php --exclude 3rdparty/composer/autoload_static.php .
when:
matrix:
TESTS: syntax-php7.0
litmus-v1:
image: nextcloudci/litmus-php7.0:litmus-php7.0-4
commands:
- bash tests/travis/install.sh sqlite
- bash apps/dav/tests/travis/litmus-v1/script.sh
when:
matrix:
TESTS: litmus-v1
litmus-v2:
image: nextcloudci/litmus-php7.0:litmus-php7.0-4
commands:
- bash tests/travis/install.sh sqlite
- bash apps/dav/tests/travis/litmus-v2/script.sh
when:
matrix:
TESTS: litmus-v2
caldavtester:
image: nextcloudci/litmus-php7.0:litmus-php7.0-4
commands:
- bash tests/travis/install.sh sqlite
- bash apps/dav/tests/travis/caldav/install.sh
- bash apps/dav/tests/travis/caldav/script.sh
when:
matrix:
TESTS: caldavtester
carddavtester:
image: nextcloudci/litmus-php7.0:litmus-php7.0-4
commands:
- bash tests/travis/install.sh sqlite
- bash apps/dav/tests/travis/carddav/install.sh
- bash apps/dav/tests/travis/carddav/script.sh
when:
matrix:
TESTS: carddavtester
sqlite-php5.4:
image: nextcloudci/php5.4:php5.4-5
commands:
- ./occ maintenance:install --database-name oc_autotest --database-user oc_autotest --admin-user admin --admin-pass admin --database sqlite --database-pass=''
- NOCOVERAGE=true ./autotest.sh sqlite
when:
matrix:
DB: sqlite
PHP: 5.4
sqlite-php5.5:
image: nextcloudci/php5.5:php5.5-5
commands:
- ./occ maintenance:install --database-name oc_autotest --database-user oc_autotest --admin-user admin --admin-pass admin --database sqlite --database-pass=''
- NOCOVERAGE=true ./autotest.sh sqlite
when:
matrix:
DB: sqlite
PHP: 5.5
sqlite:
image: nextcloudci/php5.6:php5.6-7
commands:
- ./occ maintenance:install --database-name oc_autotest --database-user oc_autotest --admin-user admin --admin-pass admin --database sqlite --database-pass=''
- ./autotest.sh sqlite
when:
matrix:
DB: sqlite
PHP: 5.6
postgres:
image: nextcloudci/php5.6:php5.6-7
commands:
- sleep 10 # gives the database enough time to initialize
- ./autotest.sh pgsql
when:
matrix:
DB: postgres
PHP: 5.6
integration:
image: nextcloudci/php5.6:php5.6-7
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh
when:
matrix:
TESTS: integration
matrix:
include:
- TESTS: integration
- TESTS: jsunit
- TESTS: syntax-php5.4
- TESTS: syntax-php5.5
- TESTS: syntax-php5.6
- TESTS: syntax-php7.0
- TESTS: litmus-v1
- TESTS: litmus-v2
- TESTS: caldavtester
- TESTS: carddavtester
- DB: sqlite
PHP: 5.4
- DB: sqlite
PHP: 5.5
- DB: sqlite
PHP: 5.6
- DB: postgres
PHP: 5.6
services:
cache:
image: redis
postgres:
image: postgres
environment:
- POSTGRES_USER=oc_autotest
- POSTGRES_PASSWORD=oc_autotest
when:
matrix:
DB: postgres
-40
View File
@@ -1,40 +0,0 @@
# https://editorconfig.org
# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true
[*.feature]
indent_size = 2
indent_style = space
[*.yml]
indent_size = 2
indent_style = space
[*.md]
trim_trailing_whitespace = false
[*.svg]
insert_final_newline = false
[package*.json]
indent_size = 2
indent_style = space
[build/psalm-baseline.xml]
indent_size = 2
indent_style = space
[config/*config.php]
indent_size = 2
indent_style = space
-14
View File
@@ -1,14 +0,0 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
# Ignoring folders for eslint
node_modules/
3rdparty/
**/vendor/
**/l10n/
**/js/*
*.config.js
tests/lib/
apps-extra
# TODO: remove when comments files is not using handlebar templates anymore
apps/comments/src/templates.js
-39
View File
@@ -1,39 +0,0 @@
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
module.exports = {
globals: {
__webpack_nonce__: true,
_: true,
$: true,
dayNames: true,
escapeHTML: true,
firstDay: true,
moment: true,
oc_userconfig: true,
sinon: true,
},
plugins: [
'cypress',
],
extends: [
'@nextcloud/eslint-config/typescript',
'plugin:cypress/recommended',
],
rules: {
'no-tabs': 'warn',
// TODO: make sure we fix this as this is bad vue coding style.
// Use proper sync modifier
'vue/no-mutating-props': 'warn',
'vue/custom-event-name-casing': ['error', 'kebab-case', {
// allows custom xxxx:xxx events formats
ignores: ['/^[a-z]+(?:-[a-z]+)*:[a-z]+(?:-[a-z]+)*$/u'],
}],
},
settings: {
jsdoc: {
mode: 'typescript',
},
},
}
-6
View File
@@ -1,6 +0,0 @@
# SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
/dist/* binary
/package-lock.json merge=binary
/core/css/*.css* binary
/.devcontainer/*.sh text eol=lf
-71
View File
@@ -1,71 +0,0 @@
# App maintainers
/apps/admin_audit/appinfo/info.xml @luka-nextcloud @blizzz
/apps/cloud_federation_api/appinfo/info.xml @mejo-
/apps/comments/appinfo/info.xml @marcelklehr @Pytal
/apps/contactsinteraction/appinfo/info.xml @kesselb @miaulalala @ChristophWurst @GretaD @hamza221 @st3iny
/apps/dashboard/appinfo/info.xml @julien-nc @juliushaertl
/apps/dav/lib/CalDAV @ChristophWurst @miaulalala @tcitworld
/apps/dav/lib/CardDAV @ChristophWurst @miaulalala @tcitworld
/apps/encryption/appinfo/info.xml @come-nc @icewind1991
/apps/federatedfilesharing/appinfo/info.xml @icewind1991 @danxuliu
/apps/federation/appinfo/info.xml @datenangebot
/apps/files/appinfo/info.xml @skjnldsv @Pytal @ArtificialOwl @come-nc @artonge @icewind1991 @szaimen @susnux @Fenn-CS
/apps/files_external/appinfo/info.xml @icewind1991 @artonge
/apps/files_reminders/appinfo/info.xml @Pytal
/apps/files_sharing/appinfo/info.xml @skjnldsv @come-nc
/apps/files_trashbin/appinfo/info.xml @Pytal @icewind1991
/apps/files_versions/appinfo/info.xml @artonge @icewind1991
/apps/oauth2/appinfo/info.xml @julien-nc @ChristophWurst
/apps/provisioning_api/appinfo/info.xml @provokateurin @nickvergessen
/apps/settings/appinfo/info.xml @Pytal @JuliaKirschenheuter
/apps/sharebymail/appinfo/info.xml @Altahrim
/apps/systemtags/appinfo/info.xml @Antreesy @marcelklehr
/apps/theming/appinfo/info.xml @skjnldsv @juliushaertl
/apps/twofactor_backupcodes/appinfo/info.xml @st3iny @miaulalala @ChristophWurst
/apps/updatenotification/appinfo/info.xml @Pytal @JuliaKirschenheuter
/apps/user_ldap/appinfo/info.xml @come-nc @blizzz
/apps/user_status/appinfo/info.xml @Antreesy @nickvergessen
/apps/weather_status/appinfo/info.xml @julien-nc @juliushaertl
/apps/workflowengine/appinfo/info.xml @blizzz @juliushaertl
# Frontend expertise
/apps/files/src* @skjnldsv
/apps/files_external/src* @skjnldsv
/apps/files_reminders/src* @skjnldsv
/apps/files_sharing/src/actions* @skjnldsv
/apps/files_trashbin/src* @skjnldsv
# Security team
/resources/codesigning @mgallien @miaulalala @nickvergessen
/resources/config/ca-bundle.crt @ChristophWurst @miaulalala @nickvergessen
/.drone.yml @nickvergessen
# Two-Factor Authentication
# https://github.com/nextcloud/wg-two-factor-authentication#members
**/TwoFactorAuth @ChristophWurst @miaulalala @nickvergessen @st3iny
/apps/twofactor_backupcodes @ChristophWurst @miaulalala @nickvergessen @st3iny
/core/templates/twofactor* @ChristophWurst @miaulalala @nickvergessen @st3iny
# Limit login to IP
# Watch login routes for https://github.com/nextcloud/limit_login_to_ip
/core/routes.php @Altahrim
# OpenAPI
openapi*.json @provokateurin
ResponseDefinitions.php @provokateurin
# Talk team
/lib/private/Comments @nickvergessen
/lib/private/Federation @nickvergessen
/lib/private/Talk @nickvergessen
/lib/public/Comments @nickvergessen
/lib/public/Federation @nickvergessen
/lib/public/OCM @nickvergessen
/lib/public/Talk @nickvergessen
/lib/public/UserStatus @nickvergessen
# Personal interest
*/Activity/* @nickvergessen
*/Notifications/* @nickvergessen
/lib/private/Profiler @CarlSchwan
/lib/public/Profiler @CarlSchwan
-79
View File
@@ -1,79 +0,0 @@
<!--
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
## Submitting issues
If you have questions about how to install or use Nextcloud, please direct these to our [forum][forum]. We are also available on [IRC][irc].
### Short version
* The [**issue templates can be found here**][templates] but be aware of the different repositories! See list below. Please always use an issue template when reporting issues.
### Guidelines
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
- Go to one of the repositories, click "issues" and type any word in the top search/command bar.
- You can also filter by appending e. g. "state:open" to the search string.
- More info on [search syntax within github](https://help.github.com/articles/searching-issues)
* This repository ([server](https://github.com/nextcloud/server/issues)) is *only* for issues within the Nextcloud Server code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
* __SECURITY__: Report any potential security bug to us via [our HackerOne page](https://hackerone.com/nextcloud) following our [security policy](https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
* The issues in other components should be reported in their respective repositories: You will find them in our [GitHub Organization](https://github.com/nextcloud/)
* Report the issue using one of our [templates][templates], they include all the information we need to track down the issue.
Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.
[templates]: ./ISSUE_TEMPLATE
[forum]: https://help.nextcloud.com/
[irc]: https://webchat.freenode.net/?channels=nextcloud
## Contributing to Source Code
Thanks for wanting to contribute source code to Nextcloud. That's great!
Please read the [Developer Manuals][devmanual] to learn how to create your first application or how to test the Nextcloud code with PHPUnit.
### Conventional Commits
Please use [Conventional Commits](https://www.conventionalcommits.org) for your commit messages. This helps maintain clarity and consistency across the project, making it easier to understand changes and automate versioning.
```
feat(files_sharing): allow sharing with contacts
```
### Tests
In order to constantly increase the quality of our software we can no longer accept pull request which submit un-tested code.
It is a must have that changed and added code segments are unit tested.
In some areas unit testing is hard (aka almost impossible) as of today - in these areas refactoring WHILE fixing a bug is encouraged to enable unit testing.
### Sign your work
We use the Developer Certificate of Origin (DCO) as a additional safeguard
for the Nextcloud project. This is a well established and widely used
mechanism to assure contributors have confirmed their right to license
their contribution under the project's license.
Please read [contribute/developer-certificate-of-origin][dcofile].
If you can certify it, then just add a line to every git commit message:
```
Signed-off-by: Random J Developer <random@developer.example.org>
```
Use your real name (sorry, no pseudonyms or anonymous contributions).
If you set your `user.name` and `user.email` git configs, you can sign your
commit automatically with `git commit -s`. You can also use git [aliases](https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases)
like `git config --global alias.ci 'commit -s'`. Now you can commit with
`git ci` and the commit will be signed.
### Apply a license
In case you are not sure how to add or update the license header correctly please have a look at [contribute/HowToApplyALicense.md][applyalicense]
[devmanual]: https://docs.nextcloud.com/server/latest/developer_manual/
[dcofile]: https://github.com/nextcloud/server/blob/master/contribute/developer-certificate-of-origin
[applyalicense]: https://github.com/nextcloud/server/blob/master/contribute/HowToApplyALicense.md
## Translations
Please submit translations via [Transifex][transifex].
[transifex]: https://www.transifex.com/nextcloud
-3
View File
@@ -1,3 +0,0 @@
# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
custom: https://nextcloud.com/include/
-227
View File
@@ -1,227 +0,0 @@
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
name: "🐛 Bug report: Nextcloud Server"
description: "Submit a report and help us improve Nextcloud Server"
title: "[Bug]: "
labels: ["bug", "0. Needs triage"]
body:
- type: markdown
attributes:
value: |
### 👍 Thank you for contributing to our project!
Please note this is a **free and open-source** project. Most people take on their own time to help you, so please, be patient.
You can obtain [Enterprise support](https://nextcloud.com/support/) if you run Nextcloud Server in a mission critical environment.
- type: markdown
attributes:
value: |
### 🚨 SECURITY INFO
If you are reporting a security concern, please report it via [our HackerOne page](https://hackerone.com/nextcloud) instead and review our [security policy](https://nextcloud.com/security/).
This allows us to coordinate the fix and release without potentially exposing all Nextcloud servers and users in the meantime.
It also may qualify your report for a bug bounty reward.
Thank you for helping make Nextcloud more secure!
- type: checkboxes
id: before-posting
attributes:
label: "⚠️ This issue respects the following points: ⚠️"
description: All conditions are **required**. Your issue can be closed if these are checked incorrectly.
options:
- label: This is a **bug**, not a question or a configuration/webserver/proxy issue.
required: true
- label: This issue is **not** already reported on [Github](https://github.com/nextcloud/server/issues?q=is%3Aopen+is%3Aissue+label%3Abug) OR [Nextcloud Community Forum](https://help.nextcloud.com/) _(I've searched it)_.
required: true
- label: Nextcloud Server **is** up to date. See [Maintenance and Release Schedule](https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule) for supported versions.
required: true
- label: I agree to follow Nextcloud's [Code of Conduct](https://nextcloud.com/contribute/code-of-conduct/).
required: true
- type: textarea
id: bug-description
attributes:
label: Bug description
description: |
Provide a description of the bug you're experiencing.
Don't just expect someone will guess what your specific problem is and provide full details.
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Steps to reproduce
description: |
Describe the steps to reproduce the bug.
The better your description is _(go 'here', click 'there'...)_ the fastest you'll get an _(accurate)_ answer.
value: |
1.
2.
3.
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: Describe what you expected to happen instead.
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Installation method
description: |
Select installation method you've used.
_Describe the method in the "Additional info" section if you chose "Other"._
options:
- "Community Web installer on a VPS or web space"
- "Community Manual installation with Archive"
- "Community Docker image"
- "Community NextcloudPi appliance"
- "Community SNAP package"
- "Community VM appliance"
- "Other Community project"
- "Official All-in-One appliance"
- type: dropdown
id: nextcloud-version
attributes:
label: Nextcloud Server version
description: |
Select Nextcloud Server version.
_Versions not listed here are not maintained and not supported anymore_
options:
- "27"
- "28"
- "29"
- "master"
validations:
required: true
- type: dropdown
id: system
attributes:
label: Operating system
description: |
Select operating system where Nextcloud Server is installed.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "Debian/Ubuntu"
- "RHEL/CentOS"
- "Other"
- type: dropdown
id: php
attributes:
label: PHP engine version
description: |
Select PHP engine version serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "PHP 8.0"
- "PHP 8.1"
- "PHP 8.2"
- "PHP 8.3"
- "Other"
- type: dropdown
id: webserver
attributes:
label: Web server
description: |
Select Webserver serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "Apache (supported)"
- "Nginx"
- "Other"
- type: dropdown
id: database
attributes:
label: Database engine version
description: |
Select Database engine serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "MySQL"
- "MariaDB"
- "PostgreSQL"
- "SQlite"
- "Oracle"
- "Other"
- type: dropdown
id: fresh
attributes:
label: Is this bug present after an update or on a fresh install?
description: |
Select if bug is present after an update or on a fresh install.
options:
- "Updated from a MINOR version (ex. 22.1 to 22.2)"
- "Upgraded to a MAJOR version (ex. 22 to 23)"
- "Fresh Nextcloud Server install"
- type: dropdown
id: encryption
attributes:
label: Are you using the Nextcloud Server Encryption module?
description: Select if encryption is Enabled on your Nextcloud Server.
options:
- "Encryption is Enabled"
- "Encryption is Disabled"
- type: checkboxes
id: users
attributes:
label: What user-backends are you using?
description: |
Select **all** user-backends Enabled on your Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- label: "Default user-backend _(database)_"
- label: "LDAP/ Active Directory"
- label: "SSO - SAML"
- label: "Other"
- type: textarea
id: configs
attributes:
label: Configuration report
description: |
Provide information about your configuration.
To get this information, execute one of the following commands on the CLI:
```shell
sudo -u www-data php occ config:list system
php occ config:list system
./occ config:list system
```
> NOTE: This will be automatically formatted into code for better readability.
render: shell
- type: textarea
id: apps
attributes:
label: List of activated Apps
description: |
Provide information about your apps.
To get this information, execute one of the following commands on the CLI:
```shell
sudo -u www-data php occ app:list
php occ app:list
./occ app:list
```
> NOTE: This will be automatically formatted into code for better readability.
render: shell
- type: textarea
id: nextcloud-signingstatus
attributes:
label: Nextcloud Signing status
description: |
Provide Nextcloud Signing status.
First, login as Admin user into your Nextcloud, then access this URL:
```shell
https://yournextcloud.tld/index.php/settings/integrity/failed
```
> NOTE: This will be automatically formatted into code for better readability.
render: shell
- type: textarea
id: nextcloud-log
attributes:
label: Nextcloud Logs
description: |
Provide Nextcloud logs lines.
Copy all contents from `data/nextcloud.log` or a RAW from `/settings/admin/logging` section:
> NOTE: This will be automatically formatted into code for better readability.
render: shell
- type: textarea
id: additional-info
attributes:
label: Additional info
description: Any additional information related to the issue (ex. browser console errors, software versions).
-48
View File
@@ -1,48 +0,0 @@
---
name: 🚀 Feature request
about: Suggest an idea for this project
labels: enhancement, 0. Needs triage
---
<!--
Thanks for reporting issues back to Nextcloud!
Note: This is the **issue tracker of Nextcloud**, please do NOT use this to get answers to your questions or get help for fixing your installation. This is a place to report bugs to developers, after your server has been debugged. You can find help debugging your system on our home user forums: https://help.nextcloud.com or, if you use Nextcloud in a large organization, ask our engineers on https://portal.nextcloud.com. See also https://nextcloud.com/support for support options.
Nextcloud is an open source project backed by Nextcloud GmbH. Most of our volunteers are home users and thus primarily care about issues that affect home users. Our paid engineers prioritize issues of our customers. If you are neither a home user nor a customer, consider paying somebody to fix your issue, do it yourself or become a customer.
Guidelines for submitting issues:
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
- Go to https://github.com/nextcloud and type any word in the top search/command bar. You probably see something like "We couldnt find any repositories matching ..." then click "Issues" in the left navigation.
- You can also filter by appending e. g. "state:open" to the search string.
- More info on search syntax within github: https://help.github.com/articles/searching-issues
* This repository https://github.com/nextcloud/server/issues is *only* for issues within the Nextcloud Server code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
* SECURITY: Report any potential security bug to us via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
* The issues in other components should be reported in their respective repositories: You will find them in our GitHub Organization (https://github.com/nextcloud/)
-->
<!--- Please keep this note for other contributors -->
### How to use GitHub
* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are interested into the same feature.
* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
* Subscribe to receive notifications on status change and new comments.
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-12
View File
@@ -1,12 +0,0 @@
# SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
contact_links:
- name: 🚨 Report a security or privacy issue
url: https://hackerone.com/nextcloud
about: Report security and privacy related issues privately to the Nextcloud team, so we can coordinate the fix and release without potentially exposing all Nextcloud servers and users in the meantime.
- name: ❓ Community Support and Help
url: https://help.nextcloud.com/
about: Configuration, webserver/proxy or performance issues and other questions
- name: 💼 Nextcloud Enterprise
url: https://portal.nextcloud.com/
about: If you are a Nextcloud Enterprise customer, or need Professional support, so it can be resolved directly by our dedicated engineers more quickly
-5
View File
@@ -1,5 +0,0 @@
# SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
firstPRMergeComment: >
Thanks for your first pull request and welcome to the community!
Feel free to keep them coming! If you are looking for issues to tackle then have a look at this selection: https://github.com/nextcloud/server/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
-235
View File
@@ -1,235 +0,0 @@
# SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
version: 2
updates:
# Linting and coding style
- package-ecosystem: composer
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# cs-fixer
- package-ecosystem: composer
directory: "/vendor-bin/cs-fixer"
schedule:
interval: weekly
day: saturday
time: "04:10"
timezone: Europe/Copenhagen
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# openapi-extractor
- package-ecosystem: composer
directory: "/vendor-bin/openapi-extractor"
schedule:
interval: weekly
day: saturday
time: "04:20"
timezone: Europe/Brussels
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
- "provokateurin"
# psalm
- package-ecosystem: composer
directory: "/vendor-bin/psalm"
schedule:
interval: weekly
day: saturday
time: "04:30"
timezone: Europe/Madrid
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Main master npm
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 10
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
# Testing master npm
- package-ecosystem: npm
directory: "/build"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
# Testing master composer
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
# Main stableXX npm
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable27
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable28
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable29
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
# Testing StableXX composer
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable27
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable28
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable29
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: monthly
timezone: Europe/Paris
groups:
github-actions:
patterns:
- "*"
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
-23
View File
@@ -1,23 +0,0 @@
<!--
- 🚨 SECURITY INFO
-
- Before sending a pull request that fixes a security issue please report it via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/). This allows us to coordinate the fix and release without potentially exposing all Nextcloud servers and users in the meantime.
-->
* Resolves: # <!-- related github issue -->
## Summary
## TODO
- [ ] ...
## Checklist
- Code is [properly formatted](https://docs.nextcloud.com/server/latest/developer_manual/digging_deeper/continuous_integration.html#linting)
- [Sign-off message](https://github.com/src-d/guide/blob/master/developer-community/fix-DCO.md) is added to all commits
- [ ] Tests ([unit](https://docs.nextcloud.com/server/latest/developer_manual/app_development/tutorial.html#unit-tests), [integration](https://docs.nextcloud.com/server/latest/developer_manual/app_development/tutorial.html#integration-tests), api and/or acceptance) are included
- [ ] Screenshots before/after for front-end changes
- [ ] Documentation ([manuals](https://github.com/nextcloud/documentation/) or wiki) has been updated or is not required
- [ ] [Backports requested](https://github.com/nextcloud/backportbot/#usage) where applicable (ex: critical bugfixes)
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-98
View File
@@ -1,98 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Code checkers
on:
pull_request:
permissions:
contents: read
concurrency:
group: autocheckers-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
autocheckers:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.3']
name: PHP checkers
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@7fdd3ece872ec7ec4c098ae5ab7637d5e0a96067 # v2
with:
php-version: ${{ matrix.php-versions }}
extensions: ctype, json, mbstring
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Check auto loaders
run: bash ./build/autoloaderchecker.sh
- name: Check translations are JSON decodeable
run: php ./build/translation-checker.php
- name: Check translations do not contain triple dot but ellipsis
run: php ./build/triple-dot-checker.php
- name: Check .htaccess does not contain invalid changes
run: php ./build/htaccess-checker.php
- name: Check that all and only expected files are included
run: php ./build/files-checker.php
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, autocheckers]
if: always()
name: autocheckers-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.autocheckers.result != 'success' }}; then exit 1; fi
-40
View File
@@ -1,40 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Block merges for EOL
on: pull_request
permissions:
contents: read
concurrency:
group: block-merge-eol-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
block-merges-eol:
name: Block merges for EOL branches
# Only run on stableXX branches
if: startsWith( github.base_ref, 'stable')
runs-on: ubuntu-latest-low
steps:
- name: Set server major version environment
run: |
# retrieve version number from branch reference
server_major=$(echo "${{ github.base_ref }}" | sed -En 's/stable//p')
echo "server_major=$server_major" >> $GITHUB_ENV
echo "current_month=$(date +%Y-%m)" >> $GITHUB_ENV
- name: Checking if ${{ env.server_major }} is EOL
run: |
curl -s https://raw.githubusercontent.com/nextcloud-releases/updater_server/production/config/major_versions.json \
| jq '.["${{ env.server_major }}"]["eol"] // "9999-99" | . >= "${{ env.current_month }}"' \
| grep -q true
-35
View File
@@ -1,35 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Block merges during freezes
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: block-merge-freeze-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
block-merges-during-freeze:
name: Block merges during freezes
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest-low
steps:
- name: Download version.php from ${{ github.base_ref }}
run: curl 'https://raw.githubusercontent.com/nextcloud/server/${{ github.base_ref }}/version.php' --output version.php
- name: Run check
run: cat version.php | grep 'OC_VersionString' | grep -i -v 'RC'
@@ -1,55 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Block merging with outdated 3rdparty/
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: block-outdated-3rdparty-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
block-outdated-3rdparty:
name: Block merging with outdated 3rdparty/
runs-on: ubuntu-latest-low
steps:
- name: Check requirement
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '3rdparty'
- 'version.php'
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: 3rdparty commit hash on current branch
id: actual
run: |
echo "commit=$(git submodule status | grep ' 3rdparty' | egrep -o '[a-f0-9]{40}')" >> "$GITHUB_OUTPUT"
- name: Last 3rdparty commit on target branch
id: target
run: |
echo "commit=$(git ls-remote https://github.com/nextcloud/3rdparty refs/heads/${{ github.base_ref }} | awk '{ print $1}')" >> "$GITHUB_OUTPUT"
- name: Compare if 3rdparty commits are different
run: |
echo '3rdparty/ seems to not point to the last commit of the dedicated branch:'
echo 'Branch has: ${{ steps.actual.outputs.commit }}'
echo '${{ github.base_ref }} has: ${{ steps.target.outputs.commit }}'
- name: Fail if 3rdparty commits are different
if: ${{ steps.changes.outputs.src != 'false' && steps.actual.outputs.commit != steps.target.outputs.commit }}
run: |
exit 1
@@ -1,34 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Block unconventional commits
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: block-unconventional-commits-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
block-unconventional-commits:
name: Block unconventional commits
runs-on: ubuntu-latest-low
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: webiny/action-conventional-commits@8bc41ff4e7d423d56fa4905f6ff79209a78776c7 # v1.3.0
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-148
View File
@@ -1,148 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Compile Command
on:
issue_comment:
types: [created]
jobs:
init:
runs-on: ubuntu-latest
# On pull requests and if the comment starts with `/compile`
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/compile')
outputs:
git_path: ${{ steps.git-path.outputs.path }}
arg1: ${{ steps.command.outputs.arg1 }}
arg2: ${{ steps.command.outputs.arg2 }}
head_ref: ${{ steps.comment-branch.outputs.head_ref }}
base_ref: ${{ steps.comment-branch.outputs.base_ref }}
steps:
- name: Check actor permission
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v2
with:
require: write
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '+1'
- name: Parse command
uses: skjnldsv/parse-command-comment@5c955203c52424151e6d0e58fb9de8a9f6a605a1 # v2
id: command
# Init path depending on which command is run
- name: Init path
id: git-path
run: |
if ${{ startsWith(steps.command.outputs.arg1, '/') }}; then
echo "path=${{steps.command.outputs.arg1}}" >> $GITHUB_OUTPUT
else
echo "path=${{steps.command.outputs.arg2}}" >> $GITHUB_OUTPUT
fi
- name: Init branch
uses: xt0rted/pull-request-comment-branch@d97294d304604fa98a2600a6e2f916a84b596dc7 # v1
id: comment-branch
process:
runs-on: ubuntu-latest
needs: init
steps:
- name: Restore cached git repository
uses: buildjet/cache@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
with:
path: .git
key: git-repo
- name: Checkout ${{ needs.init.outputs.head_ref }}
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
fetch-depth: 0
ref: ${{ needs.init.outputs.head_ref }}
- name: Setup git
run: |
git config --local user.email 'nextcloud-command@users.noreply.github.com'
git config --local user.name 'nextcloud-command'
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: package-engines-versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }}
cache: npm
- name: Set up npm ${{ steps.package-engines-versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.package-engines-versions.outputs.npmVersion }}'
- name: Rebase to ${{ needs.init.outputs.base_ref }}
if: ${{ contains(needs.init.outputs.arg1, 'rebase') }}
run: |
git fetch origin '${{ needs.init.outputs.base_ref }}:${{ needs.init.outputs.base_ref }}'
git rebase 'origin/${{ needs.init.outputs.base_ref }}'
- name: Install dependencies & build
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: |
npm ci
npm run build --if-present
- name: Commit default
if: ${{ !contains(needs.init.outputs.arg1, 'fixup') && !contains(needs.init.outputs.arg1, 'amend') }}
run: |
git add '${{ github.workspace }}${{ needs.init.outputs.git_path }}'
git commit --signoff -m 'chore(assets): Recompile assets'
- name: Commit fixup
if: ${{ contains(needs.init.outputs.arg1, 'fixup') }}
run: |
git add '${{ github.workspace }}${{ needs.init.outputs.git_path }}'
git commit --fixup=HEAD --signoff
- name: Commit amend
if: ${{ contains(needs.init.outputs.arg1, 'amend') }}
run: |
git add '${{ github.workspace }}${{ needs.init.outputs.git_path }}'
git commit --amend --no-edit --signoff
# Remove any [skip ci] from the amended commit
git commit --amend -m "$(git log -1 --format='%B' | sed '/\[skip ci\]/d')"
- name: Push normally
if: ${{ !contains(needs.init.outputs.arg1, 'rebase') && !contains(needs.init.outputs.arg1, 'amend') }}
run: git push origin '${{ needs.init.outputs.head_ref }}'
- name: Force push
if: ${{ contains(needs.init.outputs.arg1, 'rebase') || contains(needs.init.outputs.arg1, 'amend') }}
run: git push --force origin '${{ needs.init.outputs.head_ref }}'
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: "-1"
@@ -1,62 +0,0 @@
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update 3rdparty command
on:
issue_comment:
types: created
permissions:
contents: read
jobs:
rebase:
runs-on: ubuntu-latest
permissions:
contents: none
# On pull requests and if the comment starts with `/update-3rdparty`
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/update-3rdparty')
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '+1'
- name: Init branch
uses: xt0rted/pull-request-comment-branch@d97294d304604fa98a2600a6e2f916a84b596dc7 # v1
id: comment-branch
- name: Checkout ${{ steps.comment-branch.outputs.head_ref }}
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
ref: ${{ steps.comment-branch.outputs.head_ref }}
- name: Setup git
run: |
git config --local user.email 'nextcloud-command@users.noreply.github.com'
git config --local user.name 'nextcloud-command'
- name: Pull 3rdparty
run: git submodule foreach 'if [ "$sm_path" == "3rdparty" ]; then git pull origin '"'"'${{ github.event.issue.pull_request.base.ref }}'"'"'; fi'
- name: Commit and push changes
run: |
git add 3rdparty
git commit -s -m 'Update submodule 3rdparty to latest ${{ github.event.issue.pull_request.base.ref }}'
git push
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
-171
View File
@@ -1,171 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Cypress
on: pull_request
concurrency:
group: cypress-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
# Adjust APP_NAME if your repository name is different
APP_NAME: ${{ github.event.repository.name }}
# Server requires head_ref instead of base_ref, as we want to test the PR branch
BRANCH: ${{ github.head_ref || github.ref_name }}
jobs:
init:
runs-on: ubuntu-latest
outputs:
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
npmVersion: ${{ steps.versions.outputs.npmVersion }}
env:
PUPPETEER_SKIP_DOWNLOAD: true
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
# We need to checkout submodules for 3rdparty
submodules: true
- name: Check composer.json
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
with:
files: "composer.json"
- name: Install composer dependencies
if: steps.check_composer.outputs.files_exists == 'true'
run: composer install --no-dev
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: "^20"
fallbackNpm: "^10"
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install node dependencies & build app
run: |
npm ci
TESTING=true npm run build --if-present
- name: Show cypress version
run: npm run cypress:version
- name: Save context
uses: buildjet/cache/save@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
with:
key: cypress-context-${{ github.run_id }}
path: ./
cypress:
runs-on: ubuntu-latest
needs: init
strategy:
fail-fast: false
matrix:
# Run multiple copies of the current job in parallel
# Please increase the number or runners as your tests suite grows (0 based index for e2e tests)
containers: ["component", '0', '1', '2', '3', '4', '5']
# Hack as strategy.job-total includes the component and GitHub does not allow math expressions
# Always align this number with the total of e2e runners (max. index + 1)
total-containers: [6]
name: runner ${{ matrix.containers }}
steps:
- name: Restore context
uses: buildjet/cache/restore@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
with:
fail-on-cache-miss: true
key: cypress-context-${{ github.run_id }}
path: ./
- name: Set up node ${{ needs.init.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ needs.init.outputs.nodeVersion }}
- name: Set up npm ${{ needs.init.outputs.npmVersion }}
run: npm i -g 'npm@${{ needs.init.outputs.npmVersion }}'
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
uses: cypress-io/github-action@f88a151c986cab2e339cdbede6a5c4468bb62c17 # v6.7.0
with:
component: ${{ matrix.containers == 'component' }}
group: ${{ matrix.use-cypress-cloud && matrix.containers == 'component' && 'Run component' || matrix.use-cypress-cloud && 'Run E2E' || '' }}
# cypress env
ci-build-id: ${{ matrix.use-cypress-cloud && format('{0}-{1}', github.sha, github.run_number) || '' }}
tag: ${{ matrix.use-cypress-cloud && github.event_name || '' }}
env:
# Needs to be prefixed with CYPRESS_
CYPRESS_BRANCH: ${{ env.BRANCH }}
# https://github.com/cypress-io/github-action/issues/124
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }}
# Needed for some specific code workarounds
TESTING: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
SPLIT: ${{ matrix.total-containers }}
SPLIT_INDEX: ${{ matrix.containers == 'component' && 0 || matrix.containers }}
- name: Upload snapshots
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: always()
with:
name: snapshots_${{ matrix.containers }}
path: cypress/snapshots
- name: Extract NC logs
if: failure() && matrix.containers != 'component'
run: docker logs nextcloud-cypress-tests-${{ env.APP_NAME }} > nextcloud.log
- name: Upload NC logs
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: failure() && matrix.containers != 'component'
with:
name: nc_logs_${{ matrix.containers }}
path: nextcloud.log
- name: Create data dir archive
if: failure() && matrix.containers != 'component'
run: docker exec nextcloud-cypress-tests-server tar -cvjf - data > data.tar
- name: Upload data dir archive
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: failure() && matrix.containers != 'component'
with:
name: nc_data_${{ matrix.containers }}
path: data.tar
summary:
runs-on: ubuntu-latest-low
needs: [init, cypress]
if: always()
name: cypress-summary
steps:
- name: Summary status
run: if ${{ needs.init.result != 'success' || ( needs.cypress.result != 'success' && needs.cypress.result != 'skipped' ) }}; then exit 1; fi
@@ -1,43 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Dependabot
on:
pull_request_target:
branches:
- main
- master
- stable*
permissions:
contents: read
concurrency:
group: dependabot-approve-merge-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
auto-approve-merge:
if: github.actor == 'dependabot[bot]' || github.actor == 'renovate[bot]'
runs-on: ubuntu-latest-low
permissions:
# for hmarr/auto-approve-action to approve PRs
pull-requests: write
steps:
# GitHub actions bot approve
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# Nextcloud bot approve and merge request
- uses: ahmadnassri/action-dependabot-auto-merge@45fc124d949b19b6b8bf6645b6c9d55f4f9ac61a # v2
with:
target: minor
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
-121
View File
@@ -1,121 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external FTP
on:
pull_request:
schedule:
- cron: "5 2 * * *"
concurrency:
group: files-external-ftp-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-ftp:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.1', '8.3']
ftpd: ['proftpd', 'vsftpd', 'pure-ftpd']
include:
- php-versions: '8.1'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-${{ matrix.ftpd }}
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up ftpd
run: |
sudo mkdir /tmp/ftp
sudo chmod -R 0777 /tmp/ftp
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then echo '$6$Q7V2n3q2GRVv5YeQ$/AhLu07H76Asojy7bxGXMY1caKLAbp5Vt82LOZYMkD/8uDzyMAEXwk0c1Bdz1DkBsk2Vh/9SF130mOPavRGMo.' > /tmp/secret.txt; fi
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then echo 'FTP_ROOT=/home/test' > $GITHUB_ENV; fi
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then docker run --name ftp -d --net host -e PASV_ADDRESS=127.0.0.1 -e FTPUSER_NAME=test -v /tmp/secret.txt:/run/secrets/ftp-user-password-secret -v /tmp/ftp:/home/test instantlinux/proftpd; fi
if [[ "${{ matrix.ftpd }}" == 'vsftpd' ]]; then docker run --name ftp -d --net host -e FTP_USER=test -e FTP_PASS=test -e PASV_ADDRESS=127.0.0.1 -v /tmp/ftp:/home/vsftpd/test fauria/vsftpd; fi
if [[ "${{ matrix.ftpd }}" == 'pure-ftpd' ]]; then docker run --name ftp -d --net host -e "PUBLICHOST=localhost" -e FTP_USER_NAME=test -e FTP_USER_PASS=test -e FTP_USER_HOME=/home/test -v /tmp/ftp:/home/test -v /tmp/ftp:/etc/pure-ftpd/passwd stilliard/pure-ftpd; fi
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true,'host' => 'localhost','user' => 'test','password' => 'test', 'root' => '${{ env.FTP_ROOT }}'];" > apps/files_external/tests/config.ftp.php
- name: smoketest ftp
run: |
php -r 'var_dump(file_put_contents("ftp://test:test@localhost${{ env.FTP_ROOT }}/ftp.txt", "asd"));'
php -r 'var_dump(file_get_contents("ftp://test:test@localhost${{ env.FTP_ROOT }}/ftp.txt"));'
php -r 'var_dump(mkdir("ftp://test:test@localhost${{ env.FTP_ROOT }}/asdads"));'
ls -l /tmp/ftp
[ -f /tmp/ftp/ftp.txt ]
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/FtpTest.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.xml
flags: phpunit-files-external-ftp
- name: ftpd logs
if: always()
run: |
docker logs ftp
ftp-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-ftp]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-ftp.result != 'success' }}; then exit 1; fi
-187
View File
@@ -1,187 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external S3
on:
pull_request:
schedule:
- cron: "5 2 * * *"
concurrency:
group: files-external-s3-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-s3-minio:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-s3
services:
minio:
image: bitnami/minio
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- '9000:9000'
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true, 'secret' => 'actually-not-secret', 'passwordsalt' => 'actually-not-secret', 'hostname' => 'localhost','key' => '$OBJECT_STORE_KEY','secret' => '$OBJECT_STORE_SECRET', 'bucket' => 'bucket', 'port' => 9000, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/files_external/tests/config.amazons3.php
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/Amazons3Test.php \
apps/files_external/tests/Storage/VersionedAmazonS3Test.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.xml
flags: phpunit-files-external-s3
- name: S3 logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
files-external-s3-localstack:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.3'
coverage: true
name: php${{ matrix.php-versions }}-s3
services:
localstack:
env:
SERVICES: s3
DEBUG: 1
image: localstack/localstack
ports:
- "4566:4566"
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true,'hostname' => 'localhost','key' => 'ignored','secret' => 'ignored', 'bucket' => 'bucket', 'port' => 4566, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/files_external/tests/config.amazons3.php
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/Amazons3Test.php \
apps/files_external/tests/Storage/VersionedAmazonS3Test.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.xml
flags: phpunit-files-external-s3
- name: S3 logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
s3-external-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-s3-minio, files-external-s3-localstack]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-s3-minio.result != 'success' && needs.files-external-s3-localstack.result != 'success' }}; then exit 1; fi
-111
View File
@@ -1,111 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external sFTP
on:
pull_request:
schedule:
- cron: "5 2 * * *"
concurrency:
group: files-external-sftp-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-sftp:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.1', '8.3']
sftpd: ['openssh']
include:
- php-versions: '8.1'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-${{ matrix.sftpd }}
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up sftpd
run: |
sudo mkdir /tmp/sftp
sudo chown -R 0777 /tmp/sftp
if [[ '${{ matrix.sftpd }}' == 'openssh' ]]; then docker run -p 2222:22 --name sftp -d -v /tmp/sftp:/home/test atmoz/sftp 'test:test:::data'; fi
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true, 'host' => 'localhost:2222','user' => 'test','password' => 'test', 'root' => 'data'];" > apps/files_external/tests/config.sftp.php
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/SftpTest.php \
apps/files_external/tests/Storage/SFTP_KeyTest.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.xml
flags: phpunit-files-external-sftp
- name: sftpd logs
if: always()
run: |
ls -l /tmp/sftp
docker logs sftp
sftp-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-sftp]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-sftp.result != 'success' }}; then exit 1; fi
@@ -1,95 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Samba Kerberos SSO
on:
pull_request:
schedule:
- cron: "5 2 * * *"
concurrency:
group: files-external-smb-kerberos-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-smb-kerberos:
runs-on: ubuntu-22.04
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
name: smb-kerberos-sso
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Checkout user_saml
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
repository: nextcloud/user_saml
path: apps/user_saml
- name: Pull images
run: |
docker pull ghcr.io/icewind1991/samba-krb-test-dc
docker pull ghcr.io/icewind1991/samba-krb-test-apache
docker pull ghcr.io/icewind1991/samba-krb-test-client
docker tag ghcr.io/icewind1991/samba-krb-test-dc icewind1991/samba-krb-test-dc
docker tag ghcr.io/icewind1991/samba-krb-test-apache icewind1991/samba-krb-test-apache
docker tag ghcr.io/icewind1991/samba-krb-test-client icewind1991/samba-krb-test-client
- name: Setup AD-DC
run: |
DC_IP=$(apps/files_external/tests/sso-setup/start-dc.sh)
sleep 1
apps/files_external/tests/sso-setup/start-apache.sh $DC_IP $PWD
echo "DC_IP=$DC_IP" >> $GITHUB_ENV
- name: Set up Nextcloud
run: |
apps/files_external/tests/sso-setup/setup-sso-nc.sh
- name: Test SSO
run: |
apps/files_external/tests/sso-setup/test-sso-smb.sh ${{ env.DC_IP }}
- name: Show logs
if: always()
run: |
FILEPATH=$(docker exec --user 33 apache ./occ log:file | grep "Log file:" | cut -d' ' -f3)
echo "$FILEPATH:"
docker exec --user 33 apache cat $FILEPATH
sftp-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-smb-kerberos]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-smb-kerberos.result != 'success' }}; then exit 1; fi
-110
View File
@@ -1,110 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external SMB
on:
pull_request:
schedule:
- cron: "5 2 * * *"
concurrency:
group: files-external-smb-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-smb:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.1', '8.3']
include:
- php-versions: '8.1'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-smb
services:
samba:
image: ghcr.io/nextcloud/continuous-integration-samba:latest
ports:
- 445:445
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, smbclient, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up smbclient
# This is needed as icewind/smb php library for notify
run: sudo apt-get install -y smbclient
- name: Set up Nextcloud
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ config:system:set --value true --type boolean allow_local_remote_servers
./occ app:enable --force files_external
echo "<?php return ['run'=>true, 'host'=>'localhost', 'user'=>'test', 'password'=>'test', 'root'=>'', 'share'=>'public'];" > apps/files_external/tests/config.smb.php
- name: Wait for smb
run: |
apps/files_external/tests/env/wait-for-connection 127.0.0.1 445 60
- name: PHPUnit
run: composer run test:files_external -- --verbose \
apps/files_external/tests/Storage/SmbTest.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@c16abc29c95fcf9174b58eb7e1abf4c866893bc8 # v4.1.1
with:
files: ./clover.xml
flags: phpunit-files-external-smb
files-external-smb-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-smb]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-smb.result != 'success' }}; then exit 1; fi
-107
View File
@@ -1,107 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external WebDAV
on:
pull_request:
schedule:
- cron: "5 2 * * *"
concurrency:
group: files-external-webdav-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-webdav-apache:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-webdav
services:
apache:
image: ghcr.io/nextcloud/continuous-integration-webdav-apache:latest
ports:
- 8081:80
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ config:system:set --value true --type boolean allow_local_remote_servers
./occ app:enable --force files_external
echo "<?php return ['run' => true, 'host' => 'localhost:8081/webdav/', 'user' => 'test', 'password'=>'pass', 'root' => '', 'wait' => 0];" > apps/files_external/tests/config.webdav.php
- name: Wait for WebDAV
run: |
sleep 5
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://test:pass@localhost:8081/webdav/
- name: PHPUnit
run: composer run test:files_external -- --verbose \
apps/files_external/tests/Storage/WebdavTest.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@c16abc29c95fcf9174b58eb7e1abf4c866893bc8 # v4.1.1
with:
files: ./clover.xml
flags: phpunit-files-external-webdav
files-external-webdav-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-webdav-apache]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-webdav-apache.result != 'success' }}; then exit 1; fi
-95
View File
@@ -1,95 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external generic
on:
pull_request:
schedule:
- cron: "5 2 * * *"
concurrency:
group: files-external-generic-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
files-external-generic:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-generic
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
- name: PHPUnit
run: composer run test:files_external \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.xml
flags: phpunit-files-external-generic
files-external-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-generic ]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-generic.result != 'success' }}; then exit 1; fi
-36
View File
@@ -1,36 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Block fixup and squash commits
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: fixup-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
commit-message-check:
if: github.event.pull_request.draft == false
permissions:
pull-requests: write
name: Block fixup and squash commits
runs-on: ubuntu-latest-low
steps:
- name: Run check
uses: skjnldsv/block-fixup-merge-action@c138ea99e45e186567b64cf065ce90f7158c236a # v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
-125
View File
@@ -1,125 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: DAV integration tests
on:
pull_request:
concurrency:
group: integration-caldav-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/*.php'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- 'build/integration/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
integration-caldav:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.3']
endpoint: ['old', 'new']
service: ['CalDAV', 'CardDAV']
name: ${{ matrix.service }} (${{ matrix.endpoint }} endpoint) php${{ matrix.php-versions }}
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: 'none'
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Python
uses: LizardByte/setup-python-action@master
with:
python-version: '2.7'
- name: Set up CalDAVTester
run: |
git clone --depth=1 https://github.com/apple/ccs-caldavtester.git CalDAVTester
git clone --depth=1 https://github.com/apple/ccs-pycalendar.git pycalendar
- name: Set up Nextcloud
run: |
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
# disable the trashbin, so recurrent deletion of the same object works
./occ config:app:set dav calendarRetentionObligation --value=0
# Prepare users
OC_PASS=user01 ./occ user:add --password-from-env user01
OC_PASS=user02 ./occ user:add --password-from-env user02
# Prepare calendars
./occ dav:create-calendar user01 calendar
./occ dav:create-calendar user01 shared
./occ dav:create-calendar user02 calendar
# Prepare address books
./occ dav:create-addressbook user01 addressbook
./occ dav:create-addressbook user02 addressbook
- name: Run Nextcloud
run: |
php -S localhost:8888 &
- name: Run CalDAVTester
run: |
cp "apps/dav/tests/travis/caldavtest/serverinfo-${{ matrix.endpoint }}${{ matrix.endpoint == 'old' && (matrix.service == 'CardDAV' && '-carddav' || '-caldav') || '' }}-endpoint.xml" "apps/dav/tests/travis/caldavtest/serverinfo.xml"
pushd CalDAVTester
PYTHONPATH="../pycalendar/src" python testcaldav.py --print-details-onfail --basedir "../apps/dav/tests/travis/caldavtest" -o cdt.txt \
"${{ matrix.service }}/current-user-principal.xml" \
"${{ matrix.service }}/sync-report.xml" \
${{ matrix.endpoint == 'new' && format('{0}/sharing-{1}.xml', matrix.service, matrix.service == 'CalDAV' && 'calendars' || 'addressbooks') || ';' }}
popd
- name: Print Nextcloud logs
if: always()
run: |
cat data/nextcloud.log
caldav-integration-summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, integration-caldav]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-caldav.result != 'success' }}; then exit 1; fi
-112
View File
@@ -1,112 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Litmus integration tests
on:
pull_request:
concurrency:
group: integration-litmus-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/*.php'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- 'build/integration/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
integration-litmus:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.3']
endpoint: ['webdav', 'dav']
name: Litmus WebDAV ${{ matrix.endpoint }}
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: 'none'
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
mkdir data
./occ maintenance:install \
--verbose \
--database=sqlite \
--database-name=nextcloud \
--database-user=root \
--database-pass=rootpassword \
--admin-user admin \
--admin-pass admin
./occ config:system:set trusted_domains 2 --value=host.docker.internal:8080
- name: Run Nextcloud
run: |
php -S 0.0.0.0:8080 &
- name: Run Litmus test
run: |
docker run \
--rm \
--add-host=host.docker.internal:host-gateway \
ghcr.io/nextcloud/continuous-integration-litmus-php8.3:latest \
bash -c '\
cd /tmp/litmus/litmus-0.13;
make URL=http://host.docker.internal:8080/remote.php/${{ matrix.endpoint }}${{ matrix.endpoint == 'dav' && '/files/admin' || ''}} CREDS="admin admin" TESTS="basic copymove props largefile" check;
status=$?;
cat debug.log;
exit $status;'
- name: Print Nextcloud logs
if: always()
run: cat data/nextcloud.log
integration-litmus-summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, integration-litmus]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-litmus.result != 'success' }}; then exit 1; fi
@@ -1,119 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: S3 primary storage integration tests
on:
pull_request:
concurrency:
group: integration-s3-primary-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/*.php'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- 'build/integration/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
integration-s3-primary:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.1']
key: ['objectstore', 'objectstore_multibucket']
name: php${{ matrix.php-versions }}-${{ matrix.key }}-minio
services:
redis:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 6379:6379/tcp
minio:
image: bitnami/minio
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: 'none'
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: Set up Nextcloud
run: |
mkdir data
echo '<?php $CONFIG=["${{ matrix.key }}" => ["class" => "OC\Files\ObjectStore\S3", "arguments" => ["bucket" => "nextcloud", "autocreate" => true, "key" => "nextcloud", "secret" => "bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=", "hostname" => "localhost", "port" => 9000, "use_ssl" => false, "use_path_style" => true, "uploadPartSize" => 52428800]]];' > config/config.php
echo '<?php $CONFIG=["redis" => ["host" => "localhost", "port" => 6379], "memcache.local" => "\OC\Memcache\Redis", "memcache.distributed" => "\OC\Memcache\Redis"];' > config/redis.config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f index.php
- name: Integration
run: |
cd build/integration
bash run.sh --tags "~@failure-s3" dav_features/webdav-related.feature
- name: S3 logs
if: always()
run: |
cat data/nextcloud.log
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
s3-primary-integration-summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, integration-s3-primary]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-s3-primary.result != 'success' }}; then exit 1; fi
-168
View File
@@ -1,168 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Integration sqlite
on:
pull_request:
push:
branches:
- main
- master
- stable*
permissions:
contents: read
concurrency:
group: integration-sqlite-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/*.php'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- 'build/integration/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
integration-sqlite:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
test-suite:
- 'capabilities_features'
- 'collaboration_features'
- 'comments_features'
- 'dav_features'
- 'features'
- 'federation_features'
- '--tags ~@large files_features'
- 'filesdrop_features'
- 'openldap_features'
- 'openldap_numerical_features'
- 'ldap_features'
- 'remoteapi_features'
- 'setup_features'
- 'sharees_features'
- 'sharing_features'
- 'videoverification_features'
php-versions: ['8.2']
spreed-versions: ['main']
services:
redis:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 6379:6379/tcp
openldap:
image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-7
ports:
- 389:389
env:
SLAPD_DOMAIN: nextcloud.ci
SLAPD_ORGANIZATION: Nextcloud
SLAPD_PASSWORD: admin
SLAPD_ADDITIONAL_MODULES: memberof
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
submodules: true
- name: Checkout Talk app
if: ${{ matrix.test-suite == 'videoverification_features' }}
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: nextcloud/spreed
path: apps/spreed
ref: ${{ matrix.spreed-versions }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, ldap, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up production dependencies
run: composer i --no-dev
- name: Set up behat dependencies
working-directory: build/integration
run: composer i
- name: Set up Talk dependencies
if: ${{ matrix.test-suite == 'videoverification_features' }}
working-directory: apps/spreed
run: composer i --no-dev
- name: Set up Nextcloud
run: |
mkdir data
./occ maintenance:install --verbose ${{ contains(matrix.test-suite,'ldap') && '--data-dir=/dev/shm/nc_int' || '' }} --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ config:system:set hashing_default_password --value=true --type=boolean
- name: Configure caching
if: ${{ contains(matrix.test-suite,'ldap') }}
run: |
./occ config:system:set redis host --value=localhost
./occ config:system:set redis port --value=6379 --type=integer
./occ config:system:set redis timeout --value=0 --type=integer
./occ config:system:set memcache.local --value='\OC\Memcache\Redis'
./occ config:system:set memcache.distributed --value='\OC\Memcache\Redis'
- name: Run integration
working-directory: build/integration
env:
LDAP_HOST: localhost
run: bash run.sh ${{ matrix.test-suite }} no-tail-log
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, integration-sqlite]
if: always()
name: integration-sqlite-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-sqlite.result != 'success' }}; then exit 1; fi
-95
View File
@@ -1,95 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Lint eslint
on: pull_request
permissions:
contents: read
concurrency:
group: lint-eslint-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '**/src/**'
- '**/appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '.eslintrc.*'
- '.eslintignore'
- '**.js'
- '**.ts'
- '**.vue'
lint:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
name: NPM lint
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: npm ci
- name: Lint
run: npm run lint
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, lint]
if: always()
# This is the summary, we just avoid to rename it so that branch protection rules still match
name: eslint
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
-82
View File
@@ -1,82 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Lint php-cs
on: pull_request
permissions:
contents: read
concurrency:
group: lint-php-cs-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
lint:
runs-on: ubuntu-latest
name: PHP CS fixer lint
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Set up php8.1
uses: shivammathur/setup-php@c665c7a15b5295c2488ac8a87af9cb806cd72198 # v2
with:
php-version: 8.1
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
run: composer i
- name: Lint
run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, lint]
if: always()
# This is the summary, we just avoid to rename it so that branch protection rules still match
name: php-cs
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
-82
View File
@@ -1,82 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Lint php
on: pull_request
permissions:
contents: read
concurrency:
group: lint-php-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
lint:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: [ '8.1', '8.2', '8.3' ]
name: php-lint
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c665c7a15b5295c2488ac8a87af9cb806cd72198 # v2
with:
php-version: ${{ matrix.php-versions }}
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Lint
run: composer run lint
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, lint]
if: always()
name: php-lint-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
-173
View File
@@ -1,173 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Node tests
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: node-tests-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '**/__tests__/**'
- '**/__mocks__/**'
- 'apps/*/src/**'
- 'apps/*/appinfo/info.xml'
- 'core/src/**'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
versions:
runs-on: ubuntu-latest-low
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
outputs:
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
npmVersion: ${{ steps.versions.outputs.npmVersion }}
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'
test:
runs-on: ubuntu-latest
needs: [versions, changes]
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
- name: Set up npm ${{ needs.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ needs.versions.outputs.npmVersion }}'
- name: Install dependencies & build
run: |
npm ci
npm run build --if-present
- name: Test and process coverage
run: npm run test:coverage --if-present
- name: Collect coverage
uses: codecov/codecov-action@5ecb98a3c6b747ed38dc09f787459979aebb39be # v4.3.1
with:
files: ./coverage/lcov.info
jsunit:
runs-on: ubuntu-latest
needs: [versions, changes]
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
env:
CYPRESS_INSTALL_BINARY: 0
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
- name: Set up npm ${{ needs.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ needs.versions.outputs.npmVersion }}'
- name: Install dependencies
run: npm ci
- name: Test
run: npm run test:jsunit
handlebars:
runs-on: ubuntu-latest
needs: [versions, changes]
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
- name: Set up npm ${{ needs.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ needs.versions.outputs.npmVersion }}'
- name: Install dependencies
run: npm ci
- name: Run compile
run: ./build/compile-handlebars-templates.sh
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, test, jsunit, handlebars]
if: always()
name: node-test-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.test.result != 'success' && needs.jsunit.result != 'success' && needs.handlebars.result != 'success' }}; then exit 1; fi
-103
View File
@@ -1,103 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Node
on: pull_request
permissions:
contents: read
concurrency:
group: node-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '**/src/**'
- '**/appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
- 'core/img/**'
build:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
name: NPM build
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install dependencies & build
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: |
npm ci
npm run build --if-present
- name: Check webpack build changes
run: |
bash -c "[[ ! \"`git status --porcelain `\" ]] || (echo 'Please recompile and commit the assets, see the section \"Show changes on failure\" for details' && exit 1)"
- name: Show changes on failure
if: failure()
run: |
git status
git --no-pager diff
exit 1 # make it red to grab attention
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, build]
if: always()
# This is the summary, we just avoid to rename it so that branch protection rules still match
name: node
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.build.result != 'success' }}; then exit 1; fi
-75
View File
@@ -1,75 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Npm audit fix and compile
on:
workflow_dispatch:
schedule:
# At 2:30 on Sundays
- cron: '30 2 * * 0'
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branches: ['main', 'master', 'stable29', 'stable28', 'stable27']
name: npm-audit-fix-${{ matrix.branches }}
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
ref: ${{ matrix.branches }}
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Fix npm audit
id: npm-audit
uses: nextcloud-libraries/npm-audit-action@2a60bd2e79cc77f2cc4d9a3fe40f1a69896f3a87 # v0.1.0
- name: Run npm ci and npm run build
if: always()
env:
CYPRESS_INSTALL_BINARY: 0
run: |
npm ci
npm run build --if-present
- name: Create Pull Request
if: always()
uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e # v6.0.5
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(deps): Fix npm audit'
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: automated/noid/${{ matrix.branches }}-fix-npm-audit
title: '[${{ matrix.branches }}] Fix npm audit'
body: ${{ steps.npm-audit.outputs.markdown }}
labels: |
dependencies
3. to review
-127
View File
@@ -1,127 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Object storage azure
on:
pull_request:
schedule:
- cron: "15 2 * * *"
concurrency:
group: object-storage-azure-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
azure-primary-tests:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.3'
coverage: true
name: php${{ matrix.php-versions }}-azure
services:
azurite:
image: mcr.microsoft.com/azure-storage/azurite
env:
AZURITE_ACCOUNTS: nextcloud:bmV4dGNsb3Vk
ports:
- 10000:10000
options: --health-cmd="nc 127.0.0.1 10000 -z" --health-interval=1s --health-retries=30
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE: azure
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bmV4dGNsb3Vk
run: |
composer install
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit
env:
OBJECT_STORE: azure
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bmV4dGNsb3Vk
run: composer run test -- --group PRIMARY-azure ${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.xml
flags: phpunit-azure
- name: Azurite logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
azure-primary-summary:
runs-on: ubuntu-latest-low
needs: [changes, azure-primary-tests]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.azure-primary-tests.result != 'success' }}; then exit 1; fi
-133
View File
@@ -1,133 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Object storage S3
on:
pull_request:
schedule:
- cron: "15 2 * * *"
concurrency:
group: object-storage-s3-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
s3-primary-tests-minio:
runs-on: ubuntu-22.04
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.3'
coverage: true
name: php${{ matrix.php-versions }}-s3
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
minio:
image: bitnami/minio
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE: s3
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: |
composer install
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: PHPUnit
env:
OBJECT_STORE: s3
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: composer run test -- --group PRIMARY-s3 ${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.xml
flags: phpunit-s3
- name: S3 logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
s3-primary-summary:
runs-on: ubuntu-latest-low
needs: [changes,s3-primary-tests-minio]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.s3-primary-tests-minio.result != 'success' }}; then exit 1; fi
-123
View File
@@ -1,123 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Object storage Swift
on:
pull_request:
schedule:
- cron: "15 2 * * *"
concurrency:
group: object-storage-swift-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
swift-primary-tests:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.3'
coverage: true
name: php${{ matrix.php-versions }}-swift
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
swift:
image: ghcr.io/cscfi/docker-keystone-swift
ports:
- 5000:5000
- 8080:8080
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE: swift
OBJECT_STORE_SECRET: veryfast
run: |
composer install
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit
env:
OBJECT_STORE: swift
OBJECT_STORE_SECRET: veryfast
run: composer run test -- --group PRIMARY-swift ${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.xml
flags: phpunit-swift
- name: Swift logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
swift-primary-summary:
runs-on: ubuntu-latest-low
needs: [changes,swift-primary-tests]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.swift-primary-tests.result != 'success' }}; then exit 1; fi
-45
View File
@@ -1,45 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2024 Arthur Schiwon <blizzz@arthur-schiwon.de>
# SPDX-License-Identifier: MIT
name: OpenAPI
on: pull_request
permissions:
contents: read
concurrency:
group: openapi-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
openapi:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Set up php
uses: shivammathur/setup-php@c665c7a15b5295c2488ac8a87af9cb806cd72198 # v2
with:
php-version: '8.2'
extensions: ctype, curl, dom, fileinfo, gd, json, libxml, mbstring, openssl, pcntl, pdo, posix, session, simplexml, xml, xmlreader, xmlwriter, zip, zlib
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: OpenAPI checker
run: build/openapi-checker.sh
-114
View File
@@ -1,114 +0,0 @@
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Performance testing
on:
pull_request:
concurrency:
group: performance-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
performance-testing:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1']
name: performance-${{ matrix.php-versions }}
steps:
- name: Checkout server before PR
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
ref: ${{ github.event.pull_request.base.ref }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -S localhost:8080 &
- name: Apply blueprint
uses: icewind1991/blueprint@v0.1.2
with:
blueprint: tests/blueprints/basic.toml
ref: ${{ github.event.pull_request.head.ref }}
- name: Run before measurements
uses: nextcloud/profiler@6801ee10fc80f10b444388fb6ca9b36ad8a2ea83
with:
run: |
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
curl -s -u test:test http://localhost:8080/remote.php/dav/files/test/test.txt
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test/many_files
curl -s -u test:test -T README.md http://localhost:8080/remote.php/dav/files/test/new_file.txt
curl -s -u test:test -X DELETE http://localhost:8080/remote.php/dav/files/test/new_file.txt
output: before.json
profiler-branch: master
- name: Apply PR
run: |
git remote add pr '${{ github.event.pull_request.head.repo.clone_url }}'
git fetch pr '${{ github.event.pull_request.head.ref }}'
git checkout -b 'pr/${{ github.event.pull_request.head.ref }}'
git submodule update
./occ upgrade
- name: Run after measurements
id: compare
uses: nextcloud/profiler@6801ee10fc80f10b444388fb6ca9b36ad8a2ea83
with:
run: |
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
curl -s -u test:test http://localhost:8080/remote.php/dav/files/test/test.txt
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test/many_files
curl -s -u test:test -T README.md http://localhost:8080/remote.php/dav/files/test/new_file.txt
curl -s -u test:test -X DELETE http://localhost:8080/remote.php/dav/files/test/new_file.txt
output: after.json
profiler-branch: master
compare-with: before.json
- name: Upload profiles
if: always()
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808
with:
name: profiles
path: |
before.json
after.json
- uses: actions/github-script@v7
if: failure() && steps.compare.outcome == 'failure'
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
let comment = `Possible performance regression detected\n`;
comment += `<details><summary>Show Output</summary>
\`\`\`
${{ steps.compare.outputs.compare }}
\`\`\`
</details>`;
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
})
-66
View File
@@ -1,66 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit 32bits
on:
pull_request:
paths:
- 'version.php'
- '.github/workflows/phpunit-32bits.yml'
workflow_dispatch:
schedule:
- cron: "15 1 * * 1-6"
permissions:
contents: read
concurrency:
group: phpunit-32bits-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
phpunit-32bits:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
container: shivammathur/node:latest-i386
strategy:
matrix:
php-versions: ['8.1','8.3']
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Install tools
run: |
sudo apt-get update
sudo apt-get install -y ffmpeg imagemagick libmagickcore-6.q16-3-extra
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@72ae4ccbe57f82bbe08411e84e2130bd4ba1c10f #v2.25.5
with:
php-version: ${{ matrix.php-versions }}
extensions: ctype, curl, dom, fileinfo, gd, imagick, intl, json, mbstring, openssl, pdo_sqlite, posix, sqlite, xml, zip, apcu
coverage: none
ini-file: development
ini-values:
apc.enabled=on, apc.enable_cli=on, disable_functions= # https://github.com/shivammathur/setup-php/discussions/573
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
composer install
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=autotest --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f index.php
- name: PHPUnit
run: composer run test -- --exclude-group PRIMARY-azure,PRIMARY-s3,PRIMARY-swift,Memcached,Redis,RoutingWeirdness
-142
View File
@@ -1,142 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit MariaDB
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-mariadb-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-mariadb:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.1']
mariadb-versions: ['10.3', '10.5', '10.6', '10.11']
include:
- php-versions: '8.3'
mariadb-versions: '10.6'
coverage: ${{ github.event_name != 'pull_request' }}
name: MariaDB ${{ matrix.mariadb-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
mariadb:
image: mariadb:${{ matrix.mariadb-versions }}
ports:
- 4444:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c665c7a15b5295c2488ac8a87af9cb806cd72198 # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Enable ONLY_FULL_GROUP_BY MariaDB option
run: |
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
echo 'SELECT @@sql_mode;' | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.db.xml
flags: phpunit-mariadb
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-mariadb]
if: always()
name: phpunit-mariadb-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mariadb.result != 'success' }}; then exit 1; fi
-126
View File
@@ -1,126 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit memcached
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-memcached-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-memcached:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: Memcached (PHP ${{ matrix.php-versions }})
services:
memcached:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 11212:11212/tcp
- 11212:11212/udp
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@7fdd3ece872ec7ec4c098ae5ab7637d5e0a96067 # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, memcached, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
run: |
mkdir data
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit memcached tests
run: composer run test -- --group Memcache,Memcached ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.xml
flags: phpunit-memcached
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-memcached]
if: always()
name: phpunit-memcached-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-memcached.result != 'success' }}; then exit 1; fi
-147
View File
@@ -1,147 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit mysql
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-mysql-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-mysql:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.1']
mysql-versions: ['8.0', '8.3']
include:
- mysql-versions: '8.0'
php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
name: MySQL ${{ matrix.mysql-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
mysql:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
ports:
- 4444:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Enable ONLY_FULL_GROUP_BY MySQL option
run: |
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.db.xml
flags: phpunit-mysql
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-mysql]
if: always()
name: phpunit-mysql-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi
-131
View File
@@ -1,131 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
#
# This is the testsuite running all non-database agnostic unit tests
name: PHPUnit nodb
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-nodb-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-nodb:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: No DB unit tests (PHP ${{ matrix.php-versions }})
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@7fdd3ece872ec7ec4c098ae5ab7637d5e0a96067 # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
# Required for tests that use pcntl
ini-values: disable_functions=""
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit nodb testsuite
run: composer run test -- --exclude-group DB,SLOWDB ${{ matrix.coverage && ' --coverage-clover ./clover.nodb.xml' || '' }}
- name: Upload nodb code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.nodb.xml
flags: phpunit-nodb
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-nodb]
if: always()
name: phpunit-nodb-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-nodb.result != 'success' }}; then exit 1; fi
-149
View File
@@ -1,149 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit OCI
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-oci-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-oci:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false' && ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
matrix:
oracle-versions: ['11']
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
name: Oracle ${{ matrix.oracle-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
oracle:
image: ghcr.io/gvenzl/oracle-xe:${{ matrix.oracle-versions }}
# Provide passwords and other environment variables to container
env:
ORACLE_RANDOM_PASSWORD: true
APP_USER: oc_autotest
APP_USER_PASSWORD: nextcloud
# Forward Oracle port
ports:
- 4444:1521/tcp
# Provide healthcheck script options for startup
options: >-
--health-cmd healthcheck.sh
--health-interval 10s
--health-timeout 5s
--health-retries 10
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c665c7a15b5295c2488ac8a87af9cb806cd72198 # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, oci8
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=oci --database-name=XE --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=oc_autotest --database-pass=nextcloud --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.db.xml
flags: phpunit-oci
- name: Run repair steps
run: |
./occ maintenance:repair --include-expensive
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-oci]
if: always()
name: phpunit-oci-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-oci.result != 'success' }}; then exit 1; fi
-146
View File
@@ -1,146 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit PostgreSQL
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-pgsql-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-pgsql:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.1']
# To keep the matrix smaller we ignore PostgreSQL '13', '14', and '15' as we already test 12 and 16 as lower and upper bound
postgres-versions: ['12', '16']
include:
- php-versions: '8.3'
postgres-versions: '16'
coverage: ${{ github.event_name != 'pull_request' }}
name: PostgreSQL ${{ matrix.postgres-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
postgres:
image: ghcr.io/nextcloud/continuous-integration-postgres-${{ matrix.postgres-versions }}:latest
ports:
- 4444:5432/tcp
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --mount type=tmpfs,destination=/var/lib/postgresql/data --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c665c7a15b5295c2488ac8a87af9cb806cd72198 # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit database tests
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.db.xml
flags: phpunit-postgres
- name: Run repair steps
run: |
./occ maintenance:repair --include-expensive
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-pgsql]
if: always()
name: phpunit-pgsql-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-pgsql.result != 'success' }}; then exit 1; fi
-130
View File
@@ -1,130 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit SQLite
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-sqlite-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-sqlite:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.1'
coverage: ${{ github.event_name != 'pull_request' }}
name: SQLite (PHP ${{ matrix.php-versions }})
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout server
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c665c7a15b5295c2488ac8a87af9cb806cd72198 # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: Nextcloud debug information
run: ./occ app:list && echo "======= System config =======" && ./occ config:list system
- name: PHPUnit database tests
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.db.xml
flags: phpunit-sqlite
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-sqlite]
if: always()
name: phpunit-sqlite-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-sqlite.result != 'success' }}; then exit 1; fi
-50
View File
@@ -1,50 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2023 Marcel Klehr <mklehr@gmx.net>
# SPDX-FileCopyrightText: 2023 Joas Schilling <213943+nickvergessen@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Daniel Kesselberg <mail@danielkesselberg.de>
# SPDX-FileCopyrightText: 2023 Florian Steffens <florian.steffens@nextcloud.com>
# SPDX-License-Identifier: MIT
name: 'Ask for feedback on PRs'
on:
schedule:
- cron: '30 1 * * *'
jobs:
pr-feedback:
runs-on: ubuntu-latest
steps:
- name: The get-github-handles-from-website action
uses: marcelklehr/get-github-handles-from-website-action@a739600f6b91da4957f51db0792697afbb2f143c # v1.0.0
id: scrape
with:
website: 'https://nextcloud.com/team/'
- name: Get blocklist
id: blocklist
run: |
blocklist=$(curl https://raw.githubusercontent.com/nextcloud/.github/master/non-community-usernames.txt | paste -s -d, -)
echo "blocklist=$blocklist" >> "$GITHUB_OUTPUT"
- uses: marcelklehr/pr-feedback-action@1883b38a033fb16f576875e0cf45f98b857655c4
with:
feedback-message: |
Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.
We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.
Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6
Thank you for contributing to Nextcloud and we hope to hear from you soon!
(If you believe you should not receive this message, you can add yourself to the [blocklist](https://github.com/nextcloud/.github/blob/master/non-community-usernames.txt).)
days-before-feedback: 14
start-date: '2024-04-30'
exempt-authors: '${{ steps.blocklist.outputs.blocklist }},${{ steps.scrape.outputs.users }},nextcloud-command,nextcloud-android-bot'
exempt-bots: true
-35
View File
@@ -1,35 +0,0 @@
# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Close stale issues
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
stale:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
permissions:
issues: write
steps:
- uses: actions/stale@v9
with:
repo-token: ${{ secrets.COMMAND_BOT_PAT }}
stale-issue-message: >
This issue has been automatically marked as stale because it has not had
recent activity and seems to be missing some essential information.
It will be closed if no further activity occurs. Thank you
for your contributions.
stale-issue-label: 'stale'
only-labels: 'needs info'
labels-to-remove-when-unstale: 'needs info,stale'
exempt-issue-labels: '1. to develop,2. developing,3. to review,4. to release,security'
days-before-stale: 30
days-before-close: 14
# debug-only: true
-103
View File
@@ -1,103 +0,0 @@
# SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Psalm static code analysis
on:
pull_request:
concurrency:
group: static-code-analysis-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
static-code-analysis:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm:ci -- --monochrome --no-progress --output-format=github --update-baseline --report=results.sarif
- name: Show potential changes in Psalm baseline
if: always()
run: git diff -- . ':!lib/composer'
- name: Upload Analysis results to GitHub
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
static-code-analysis-security:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php
uses: shivammathur/setup-php@master
with:
php-version: '8.1'
extensions: ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
- name: Composer install
run: composer i
- name: Psalm taint analysis
run: composer run psalm:ci -- --monochrome --no-progress --output-format=github --report=results.sarif --taint-analysis
- name: Upload Security Analysis results to GitHub
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
static-code-analysis-ocp:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
submodules: true
- name: Set up php
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm:ci -- -c psalm-ocp.xml --monochrome --no-progress --output-format=github --update-baseline
- name: Show potential changes in Psalm baseline
if: always()
run: git diff -- . ':!lib/composer'
@@ -1,45 +0,0 @@
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update CA certificate bundle
on:
workflow_dispatch:
schedule:
- cron: "5 2 * * *"
jobs:
update-ca-certificate-bundle:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branches: ['master', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
name: update-ca-certificate-bundle-${{ matrix.branches }}
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
ref: ${{ matrix.branches }}
submodules: true
- name: Download CA certificate bundle from curl
run: curl --etag-compare build/ca-bundle-etag.txt --etag-save build/ca-bundle-etag.txt --output resources/config/ca-bundle.crt https://curl.se/ca/cacert.pem
- name: Create Pull Request
uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(security): Update CA certificate bundle'
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: 'automated/noid/${{ matrix.branches }}-update-ca-cert-bundle'
title: '[${{ matrix.branches }}] fix(security): Update CA certificate bundle'
body: |
Auto-generated update of CA certificate bundle from [https://curl.se/docs/caextract.html](https://curl.se/docs/caextract.html)
labels: |
dependencies
3. to review
reviewers: ChristophWurst, miaulalala, nickvergessen
@@ -1,48 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update code signing revocation list
on:
workflow_dispatch:
schedule:
- cron: "5 2 * * *"
jobs:
update-code-signing-crl:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branches: ['master', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
name: update-code-signing-crl-${{ matrix.branches }}
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
ref: ${{ matrix.branches }}
submodules: true
- name: Download CRL file from Appstore repository
run: curl --output resources/codesigning/root.crl https://raw.githubusercontent.com/nextcloud/appstore/master/nextcloudappstore/certificate/nextcloud.crl
- name: Verify CRL is from CRT
run: openssl crl -verify -in resources/codesigning/root.crl -CAfile resources/codesigning/root.crt -noout
- name: Create Pull Request
uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(security): Update code signing revocation list'
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: 'automated/noid/${{ matrix.branches }}-update-code-signing-crl'
title: '[${{ matrix.branches }}] fix(security): Update code signing revocation list'
body: |
Auto-generated update of code signing revocation list from [Appstore](https://github.com/nextcloud/appstore/commits/master/nextcloudappstore/certificate/nextcloud.crl)
labels: |
dependencies
3. to review
reviewers: mgallien, miaulalala, nickvergessen
@@ -1,69 +0,0 @@
# SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update Psalm baseline
on:
workflow_dispatch:
schedule:
- cron: "5 2 * * *"
jobs:
update-psalm-baseline:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
fail-fast: false
matrix:
branches: ['master', 'stable29', 'stable28', 'stable27']
name: update-psalm-baseline-${{ matrix.branches }}
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
with:
ref: ${{ matrix.branches }}
submodules: true
- name: Set up php
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer install
- name: Psalm
run: composer run psalm:ci -- --monochrome --no-progress --output-format=text --update-baseline
continue-on-error: true
- name: Psalm OCP
run: composer run psalm:ci -- -c psalm-ocp.xml --monochrome --no-progress --output-format=github --update-baseline
continue-on-error: true
- name: Reset composer
run: |
git clean -f lib/composer
git checkout composer.json composer.lock lib/composer
- name: Create Pull Request
uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'chore(tests): Update psalm baseline'
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: 'automated/noid/${{ matrix.branches }}-update-psalm-baseline'
title: '[${{ matrix.branches }}] Update psalm-baseline.xml'
body: |
Auto-generated update psalm-baseline.xml with fixed psalm warnings
labels: |
automated pr
3. to review
team-reviewers: server-backend
+3 -61
View File
@@ -1,52 +1,30 @@
# SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2011-2016 ownCloud contributors
# SPDX-FileCopyrightText: 2010 ownCloud contributors
# SPDX-License-Identifier: AGPL-3.0-only
# the default generated dir + db file
/data
/owncloud
/config/config.php
/config/*.config.php
/config/mimetype*.json
/config/mount.php
/apps/inc.php
/assets
/.htaccess
/node_modules
/translationfiles
/translationtool.phar
# ignore all apps except core ones
/apps*/*
!/apps/cloud_federation_api
!/apps/comments
!/apps/contactsinteraction
!/apps/dashboard
!/apps/dav
!/apps/files
!/apps/federation
!/apps/federatedfilesharing
!/apps/sharebymail
!/apps/encryption
!/apps/files_external
!/apps/files_reminders
!/apps/files_sharing
!/apps/files_trashbin
!/apps/files_versions
!/apps/lookup_server_connector
!/apps/user_ldap
!/apps/oauth2
!/apps/provisioning_api
!/apps/settings
!/apps/systemtags
!/apps/testing
!/apps/admin_audit
!/apps/updatenotification
!/apps/theming
!/apps/twofactor_backupcodes
!/apps/user_status
!/apps/weather_status
!/apps/webhook_listeners
!/apps/workflowengine
/apps/files_external/3rdparty/irodsphp/PHPUnitTest
/apps/files_external/3rdparty/irodsphp/web
/apps/files_external/3rdparty/irodsphp/prods/test
@@ -54,8 +32,6 @@
/apps/files_external/3rdparty/irodsphp/prods/test*
/apps/files_external/tests/config.*.php
# apps modules
/apps/*/node_modules
# ignore themes except the example and the README
@@ -63,9 +39,6 @@
!/themes/example
!/themes/README
# Love to people that develop the updater
/updater
# just sane ignores
.*.sw[po]
*.bak
@@ -81,8 +54,6 @@ CVS/*
.svn/*
RCS/*
*.backup*
.php_cs.cache
.php-cs-fixer.cache
# kdevelop
.kdev
@@ -96,17 +67,13 @@ RCS/*
.project
.settings
# netbeans
# netbeans
nbproject
# phpStorm
.idea
*.iml
# vscode
.vscode
*.code-workspace
# geany
*.geany
@@ -119,7 +86,7 @@ nbproject
# ack(-grep)
.ackrc
# Mac OS
.DS_Store
@@ -134,11 +101,8 @@ nbproject
/build/node_modules/
# nodejs
/build/bin
/build/lib/
/build/jsdocs/
/build/integration/output/
/build/integration/phpserver.log
/npm-debug.log
/PhantomJS_*
@@ -151,34 +115,12 @@ Vagrantfile
# Tests - auto-generated files
/data-autotest
/tests/.phpunit.result.cache
/tests/coverage*
/tests/css
/tests/karma-coverage
/tests/autoconfig*
/tests/autotest*
/tests/data/lorem-copy.txt
/tests/data/testimage-copy.png
/tests/ui-regression/out/
/tests/ui-regression/node_modules/
/tests/ui-regression/package-lock.json
/config/config-autotest-backup.php
/config/autoconfig.php
clover.xml
/coverage
# Tests - dependencies
tests/acceptance/vendor/
composer.phar
/lib/composer/bin
/lib/composer/bamarni
/vendor-bin/**/vendor
./.htaccess
core/js/mimetypelist.js
# Tests - cypress
cypress/downloads
cypress/snapshots
cypress/videos
-3
View File
@@ -1,6 +1,3 @@
# SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2016 ownCloud, Inc.
# SPDX-License-Identifier: AGPL-3.0-only
[submodule "3rdparty"]
path = 3rdparty
url = https://github.com/nextcloud/3rdparty.git
+39 -75
View File
@@ -7,55 +7,40 @@
<IfModule mod_proxy_fcgi.c>
SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
</IfModule>
<IfModule mod_lsapi.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
</IfModule>
<IfModule mod_env.c>
# Add security and privacy related headers
# Avoid doubled headers by unsetting headers in "onsuccess" table,
# then add headers to "always" table: https://github.com/nextcloud/server/pull/19002
Header onsuccess unset Referrer-Policy
Header always set Referrer-Policy "no-referrer"
Header onsuccess unset X-Content-Type-Options
Header always set X-Content-Type-Options "nosniff"
Header onsuccess unset X-Frame-Options
Header always set X-Frame-Options "SAMEORIGIN"
Header onsuccess unset X-Permitted-Cross-Domain-Policies
Header always set X-Permitted-Cross-Domain-Policies "none"
Header onsuccess unset X-Robots-Tag
Header always set X-Robots-Tag "noindex, nofollow"
Header onsuccess unset X-XSS-Protection
Header always set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block"
Header set X-Robots-Tag "none"
Header set X-Frame-Options "SAMEORIGIN"
Header set X-Download-Options "noopen"
Header set X-Permitted-Cross-Domain-Policies "none"
SetEnv modHeadersAvailable true
</IfModule>
# Add cache control for static resources
<FilesMatch "\.(css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite)$">
<If "%{QUERY_STRING} =~ /(^|&)v=/">
Header set Cache-Control "max-age=15778463, immutable"
</If>
<Else>
Header set Cache-Control "max-age=15778463"
</Else>
</FilesMatch>
# Let browsers cache WOFF files for a week
<FilesMatch "\.woff2?$">
Header set Cache-Control "max-age=604800"
# Add cache control for CSS and JS files
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=7200, public"
</FilesMatch>
</IfModule>
<IfModule mod_php.c>
<IfModule mod_php5.c>
php_value upload_max_filesize 513M
php_value post_max_size 513M
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 0
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
</IfModule>
<IfModule mod_php7.c>
php_value upload_max_filesize 513M
php_value post_max_size 513M
php_value memory_limit 512M
php_value mbstring.func_overload 0
php_value default_charset 'UTF-8'
php_value output_buffering 0
@@ -63,48 +48,27 @@
SetEnv htaccessWorking true
</IfModule>
</IfModule>
<IfModule mod_mime.c>
AddType image/svg+xml svg svgz
AddType application/wasm wasm
AddEncoding gzip svgz
# Serve ESM javascript files (.mjs) with correct mime type
AddType text/javascript js mjs
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>
<IfModule pagespeed_module>
ModPagespeed Off
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} DavClnt
RewriteRule ^$ /remote.php/webdav/ [L,R=302]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
RewriteRule ^remote/(.*) remote.php [QSA,L]
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
RewriteRule ^ocm-provider/?$ index.php [QSA,L]
RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
RewriteRule ^(build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/.*
RewriteRule ^(\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
# Clients like xDavv5 on Android, or Cyberduck, use chunked requests.
# When FastCGI or FPM is used with apache, requests arrive to Nextcloud without any content.
# This leads to the creation of empty files.
# The following directive will force the problematic requests to be buffered before being forwarded to Nextcloud.
# This way, the "Transfer-Encoding" header is removed, the "Content-Length" header is set, and the request content is proxied to Nextcloud.
# Here are more information about the issue:
# - https://docs.cyberduck.io/mountainduck/issues/fastcgi/
# - https://docs.nextcloud.com/server/latest/admin_manual/issues/general_troubleshooting.html#troubleshooting-webdav
<IfModule mod_setenvif.c>
SetEnvIf Transfer-Encoding "chunked" proxy-sendcl=1
<IfModule mod_mime.c>
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>
AddDefaultCharset utf-8
Options -Indexes
<IfModule pagespeed_module>
ModPagespeed Off
</IfModule>
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2014 ownCloud, Inc.
SPDX-License-Identifier: AGPL-3.0-only
+2 -6
View File
@@ -1,5 +1,4 @@
{
"esversion": 11,
"camelcase": true,
"eqeqeq": true,
"immed": true,
@@ -12,10 +11,10 @@
"maxparams": 5,
"curly": true,
"jquery": true,
"maxlen": 120,
"indent": 4,
"browser": true,
"laxbreak": true,
"asi": true,
"globals": {
"console": true,
"it": true,
@@ -29,10 +28,7 @@
"_": true,
"OC": true,
"OCA": true,
"OCP": true,
"t": true,
"n": true,
"escapeHTML": true,
"Promise": true
"n": true
}
}
+2
View File
@@ -0,0 +1,2 @@
pattern = "(?i):shipit:|:\\+1:|LGTM"
self_approval_off=true
+10 -25
View File
@@ -63,8 +63,8 @@ Christian Berendt <berendt@b1-systems.de>
Christian Kampka <christian@kampka.net>
Christian Koch <koch.chris@gmail.com>
Christian Reiner <github@christian-reiner.info> Christian Reiner <arkascha@balder.site>
Christoph Wurst <christoph@winzerhof-wurst.at> Christoph Wurst <ChristophWurst@users.noreply.github.com>
Christoph Wurst <christoph@winzerhof-wurst.at> Christoph Wurst <christoph@owncloud.com>
Christoph Wurst <christoph@owncloud.com> Christoph Wurst <ChristophWurst@users.noreply.github.com>
Christoph Wurst <christoph@owncloud.com> Christoph Wurst <christoph@winzerhof-wurst.at>
Christopher Bunn <b11.chris@gmail.com>
Christopher Schäpers <kondou@ts.unde.re> Christopher <kondou@ts.unde.re>
Christopher Schäpers <kondou@ts.unde.re> kondou <kondou@ts.unde.re>
@@ -82,7 +82,6 @@ Dan Callahan <dan.callahan@gmail.com>
Dan Jones <dan@danneh.org>
Daniel <daniel@mars.(none)>
Daniel Hansson <enoch85@gmail.com>
Daniel Kesselberg <mail@danielkesselberg.de> kesselb <mail@danielkesselberg.de>
Daniel Köb <daniel.koeb@peony.at>
Daniel Molkentin <daniel@molkentin.de>
Daniele E. Domenichelli <daniele.domenichelli@gmail.com>
@@ -101,7 +100,6 @@ derkostka <sebastian.kostka@gmail.com>
Diederik de Haas <diederik@cknow.org>
Dominik Schmidt <dev@dominik-schmidt.de>
Donald Buczek <buczek@molgen.mpg.de>
Donquixote <marjunebatac@gmail.com> Donquixote <marjunebatac@gmailcom>
Doug Neiner <doug@pixelgraphics.us>
drarko <drarko@users.noreply.github.com>
dratini0 <dratini0@gmail.com>
@@ -142,13 +140,12 @@ ganomi <ganomi@gmail.com>
Gaël Beaudoin <gaboo@home.gaboo.org>
geez0x1 <geez0x1@users.noreply.github.com>
gekmihesg <markus@gekmihesg.de>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <dev@georgswebsite.de>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <developer@georgehrke.com>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <georg.stefan.germany@googlemail.com>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <ownclouddev@georgswebsite.de>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <devgeorg@ownCloud.com>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <georg@ownCloud.com>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <georg@owncloud.com>
Georg Ehrke <georg@owncloud.com> Georg Ehrke <dev@georgswebsite.de>
Georg Ehrke <georg@owncloud.com> Georg Ehrke <developer@georgehrke.com>
Georg Ehrke <georg@owncloud.com> Georg Ehrke <georg.stefan.germany@googlemail.com>
Georg Ehrke <georg@owncloud.com> Georg Ehrke <ownclouddev@georgswebsite.de>
Georg Ehrke <georg@owncloud.com> Georg Ehrke <devgeorg@ownCloud.com>
Georg Ehrke <georg@owncloud.com> Georg Ehrke <georg@ownCloud.com>
Golnaz Nilieh <g382nilieh@gmail.com>
Grundik <grundik@ololo.cc>
Guillaume AMAT <guillaume.amat@informatique-libre.com>
@@ -165,7 +162,6 @@ ideaship <ideaship@users.noreply.github.com>
Ignacio Daniel Rostagno <ignaciorostagno@vijona.com.ar>
infoneo <infoneo@yahoo.pl>
Insanemal <insanemal@gmail.com>
Tobias Perschon <tobias@perschon.at> Tobias Perschon <tofuSCHNITZEL@users.noreply.github.com>
Tobias Ramforth <tobias@ramforth.com> Tobias Ramforth <tobias.ramforth@udo.edu>
Tobias Ramforth <tobias@ramforth.com> irgsmirx <tobias.ramforth@udo.edu>
Isaac Rosenberg <irosenb7@gmail.com>
@@ -187,7 +183,6 @@ Jesús Macias <jmacias@solidgear.es> Jesus Macias <jmacias@full-on-net.com>
jknockaert <jasper@knockaert.nl>
Joan <aseques@gmail.com>
Joar Wandborg <git@wandborg.com>
Joas Schilling <coding@schilljs.com> Joas Schilling <213943+nickvergessen@users.noreply.github.com>
Joas Schilling <coding@schilljs.com> Joas Schilling <nickvergessen@gmx.de>
Joas Schilling <coding@schilljs.com> Joas Schilling <nickvergessen@owncloud.com>
joel hansson <joel.hansson@gmail.com>
@@ -215,7 +210,6 @@ Lennart Rosam <lennart.rosam@medien-systempartner.de>
Sebastian Döll <sebastian.doell@libasys.de> libasys <sebastian.doell@libasys.de>
Lode Hoste <zillode@zillode.be>
lolozere <laurent@chedanne.pro>
Louis Chemineau <louis@chmn.me> Louis Chemineau <6653109+artonge@users.noreply.github.com>
Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
Lukas Reschke <lukas@statuscode.ch> Lukas Reschke <lukas@owncloud.com>
Lukas Reschke <lukas@statuscode.ch> Lukas Reschke <lukas@owncloud.org>
@@ -321,8 +315,6 @@ Robin McCorkell <robin@mccorkell.me.uk> Robin McCorkell <rmccorkell@owncloud.com
Rodrigo Hjort <rodrigo.hjort@gmail.com>
Roeland Jago Douma <roeland@famdouma.nl> Roeland Jago Douma <rullzer@owncloud.com>
Roeland Jago Douma <roeland@famdouma.nl> Roeland Douma <rullzer@users.noreply.github.com>
Roeland Jago Douma <roeland@famdouma.nl> Roeland Jago Douma <rullzer@users.noreply.github.com>
Roger Szabo <roger.szabo@web.de> root <roger.szabo@web.de>
rok <brejktru@gmail.com>
Roland Hager <roland.hager@tu-berlin.de>
Roland van Laar <roland@micite.net>
@@ -341,7 +333,6 @@ Sander <brantje@gmail.com>
Sandro Knauß <bugs@sandroknauss.de> Sandro <hefee@taurin.(none)>
Sascha Schmidt <realriot@realriot.de>
Sascha Schneider <development@suntsu.org>
Sascha Wiswedel <sascha.wiswedel@nextcloud.com> Sascha Wiswedel <wiswedel@users.noreply.github.com>
scambra <sergio@entrecables.com>
scolebrook <scolebrook@mac.com>
Scott Arciszewski <scott@arciszewski.me>
@@ -360,8 +351,6 @@ Simon Birnbach <simon@simon-birnbach.de>
Simon Könnecke <simonkoennecke@gmail.com>
Simon Whittaker <simon@swbh.net>
Sjors van der Pluijm <sjors@desjors.nl> Sjors van der Pluijm <sjors@youngguns.nl>
John Molakvoæ <skjnldsv@protonmail.com> John Molakvoæ <skjnldsv@users.noreply.github.com>
John Molakvoæ <skjnldsv@protonmail.com> John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
st3so <st3so@server.fake>
Stefan <mu.stefan@googlemail.com>
Stefan Göckeritz <admin@s-goecker.de>
@@ -384,8 +373,6 @@ tbelau666 <thomas.belau@gmx.de>
TheSFReader <TheSFReader@gmail.com>
Thibaut GRIDEL <tgridel@free.fr>
thomas <thomas@thomas-VirtualBox.(none)>
Thomas Citharel <nextcloud@tcit.fr> Thomas Citharel <tcit@tcit.fr>
Thomas Citharel <nextcloud@tcit.fr> Thomas Citharel <github@tcit.fr>
Thomas Müller <thomas.mueller@tmit.eu> Thomas Mueller <thomas.mueller@tmit.eu>
Thomas Müller <thomas.mueller@tmit.eu> Thomas Müller <DeepDiver1975@users.noreply.github.com>
Thomas Olsen <tol@tanghus>
@@ -411,10 +398,8 @@ Victor Dubiniuk <dubiniuk@owncloud.com> Victor Dubiniuk <victor.dubiniuk@gmail.c
Victor Dubiniuk <dubiniuk@owncloud.com> VicDeo <dubiniuk@owncloud.com>
Victor Dubiniuk <dubiniuk@owncloud.com> VicDeo <victor.dubiniuk@gmail.com>
Vincent Cloutier <vincent1cloutier@gmail.com>
Vincent Petry <vincent@nextcloud.com> Vincent Petry <PVince81@yahoo.fr>
Vincent Petry <vincent@nextcloud.com> Vincent Petry <vincent@vvortex.site>
Vincent Petry <vincent@nextcloud.com> Vincent Petry <pvince81@owncloud.com>
Vinicius Cubas Brand <vinicius@eita.org.br> Vinicius Cubas Brand <viniciuscb@gmail.com>
Vincent Petry <pvince81@owncloud.com> Vincent Petry <PVince81@yahoo.fr>
Vincent Petry <pvince81@owncloud.com> Vincent Petry <vincent@vvortex.site>
Vitaly Kuznetsov <vitty@altlinux.ru>
Vladimir Sapronov <vladimir.sapronov@gmail.com>
Volkan Gezer <volkangezer@gmail.com> Volkan Gezer <wakeup@users.noreply.github.com>
+30
View File
@@ -0,0 +1,30 @@
{
"maxReviewers": 3,
"numFilesToCheck": 5,
"alwaysNotifyForPaths": [
{
"name": "nickvergessen",
"files": [
"lib/private/activity/**",
"lib/private/notification/**",
"lib/public/activity/**",
"lib/public/notification/**"
]
},
{
"name": "Xenopathic",
"files": [
"apps/files_external/**"
]
}
],
"userBlacklist": [
"DeepDiver1975",
"nextcloud-bot",
"owncloud-bot",
"PVince81",
"scrutinizer-auto-fixer",
"th3fallen",
"zander"
]
}
-1
View File
@@ -1 +0,0 @@
**/*.spec.js
-41
View File
@@ -1,41 +0,0 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
require_once './vendor-bin/cs-fixer/vendor/autoload.php';
use Nextcloud\CodingStandard\Config;
$config = new Config();
$config
->getFinder()
->ignoreVCSIgnored(true)
->exclude('config')
->exclude('data')
->notPath('3rdparty')
->notPath('build/integration/vendor')
->notPath('build/lib')
->notPath('build/node_modules')
->notPath('build/stubs')
->notPath('composer')
->notPath('node_modules')
->notPath('vendor')
->in('apps')
->in(__DIR__);
// Ignore additional app directories
$rootDir = new \DirectoryIterator(__DIR__);
foreach ($rootDir as $node) {
if (str_starts_with($node->getFilename(), 'apps')) {
$return = shell_exec('git check-ignore ' . escapeshellarg($node->getFilename() . '/'));
if ($return !== null) {
$config->getFinder()->exclude($node->getFilename());
}
}
}
return $config;
-19
View File
@@ -1,19 +0,0 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- repo: https://github.com/nextcloud/pre-commit-php.git
rev: 1.5.1
hooks:
- id: php-lint
- id: php-cs-fixer
files: \.(php)$
exclude: ^(config|data|composer|lib\/composer)
args: []
-324
View File
File diff suppressed because one or more lines are too long
+1 -19
View File
@@ -1,21 +1,3 @@
# SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2016 ownCloud, Inc.
# SPDX-License-Identifier: AGPL-3.0-only
before_commands:
- 'git submodule update --init --recursive'
build:
nodes:
analysis:
tests:
override:
- php-scrutinizer-run
checks:
php:
excluded_dependencies:
- etsy/phan
filter:
excluded_paths:
- '3rdparty/*'
@@ -35,7 +17,7 @@ filter:
- 'settings/l10n/*'
- 'tests/*'
- 'build/*'
- 'lib/composer/*'
imports:
- javascript
-183
View File
@@ -1,183 +0,0 @@
[main]
host = https://www.transifex.com
lang_map = fi_FI: fi, hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja, bg_BG: bg, cs_CZ: cs
[o:nextcloud:p:nextcloud:r:admin_audit]
file_filter = translationfiles/<lang>/admin_audit.po
source_file = translationfiles/templates/admin_audit.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:cloud_federation_api]
file_filter = translationfiles/<lang>/cloud_federation_api.po
source_file = translationfiles/templates/cloud_federation_api.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:comments]
file_filter = translationfiles/<lang>/comments.po
source_file = translationfiles/templates/comments.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:contactsinteraction]
file_filter = translationfiles/<lang>/contactsinteraction.po
source_file = translationfiles/templates/contactsinteraction.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:core]
file_filter = translationfiles/<lang>/core.po
source_file = translationfiles/templates/core.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:dashboard-shipped-with-server]
file_filter = translationfiles/<lang>/dashboard.po
source_file = translationfiles/templates/dashboard.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:dav]
file_filter = translationfiles/<lang>/dav.po
source_file = translationfiles/templates/dav.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:federatedfilesharing]
file_filter = translationfiles/<lang>/federatedfilesharing.po
source_file = translationfiles/templates/federatedfilesharing.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:federation]
file_filter = translationfiles/<lang>/federation.po
source_file = translationfiles/templates/federation.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files]
file_filter = translationfiles/<lang>/files.po
source_file = translationfiles/templates/files.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_encryption]
file_filter = translationfiles/<lang>/encryption.po
source_file = translationfiles/templates/encryption.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_external]
file_filter = translationfiles/<lang>/files_external.po
source_file = translationfiles/templates/files_external.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_reminders]
file_filter = translationfiles/<lang>/files_reminders.po
source_file = translationfiles/templates/files_reminders.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_sharing]
file_filter = translationfiles/<lang>/files_sharing.po
source_file = translationfiles/templates/files_sharing.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_trashbin]
file_filter = translationfiles/<lang>/files_trashbin.po
source_file = translationfiles/templates/files_trashbin.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_versions]
file_filter = translationfiles/<lang>/files_versions.po
source_file = translationfiles/templates/files_versions.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:lib]
file_filter = translationfiles/<lang>/lib.po
source_file = translationfiles/templates/lib.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:lookup_server_connector]
file_filter = translationfiles/<lang>/lookup_server_connector.po
source_file = translationfiles/templates/lookup_server_connector.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:oauth2]
file_filter = translationfiles/<lang>/oauth2.po
source_file = translationfiles/templates/oauth2.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:provisioning_api]
file_filter = translationfiles/<lang>/provisioning_api.po
source_file = translationfiles/templates/provisioning_api.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:settings-1]
file_filter = translationfiles/<lang>/settings.po
source_file = translationfiles/templates/settings.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:sharebymail]
file_filter = translationfiles/<lang>/sharebymail.po
source_file = translationfiles/templates/sharebymail.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:systemtags]
file_filter = translationfiles/<lang>/systemtags.po
source_file = translationfiles/templates/systemtags.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:theming]
file_filter = translationfiles/<lang>/theming.po
source_file = translationfiles/templates/theming.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:twofactor_backupcodes]
file_filter = translationfiles/<lang>/twofactor_backupcodes.po
source_file = translationfiles/templates/twofactor_backupcodes.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:updatenotification]
file_filter = translationfiles/<lang>/updatenotification.po
source_file = translationfiles/templates/updatenotification.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:user_ldap]
file_filter = translationfiles/<lang>/user_ldap.po
source_file = translationfiles/templates/user_ldap.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:user_status]
file_filter = translationfiles/<lang>/user_status.po
source_file = translationfiles/templates/user_status.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:weather_status]
file_filter = translationfiles/<lang>/weather_status.po
source_file = translationfiles/templates/weather_status.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:workflowengine]
file_filter = translationfiles/<lang>/workflowengine.po
source_file = translationfiles/templates/workflowengine.pot
source_lang = en
type = PO
+3 -3
View File
@@ -1,6 +1,6 @@
; SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
; SPDX-FileCopyrightText: 2014-2016 ownCloud, Inc.
; SPDX-License-Identifier: AGPL-3.0-only
upload_max_filesize=513M
post_max_size=513M
memory_limit=512M
mbstring.func_overload=0
always_populate_raw_post_data=-1
default_charset='UTF-8'
+55 -481
View File
@@ -1,636 +1,210 @@
<!--
- SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
- SPDX-FileCopyrightText: 2016 ownCloud, Inc.
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Authors
Nextcloud is written by:
- AW-UC <git@a-wesemann.de>
- Aaron Ball <nullspoon@oper.io>
- Aaron Wood <aaronjwood@gmail.com>
- Abijeet <abijeetpatro@gmail.com>
- Adam Blakey <adam@blakey.family>
- Adam Williamson <awilliam@redhat.com>
- Administrator "Administrator@WINDOWS-2012"
- Adrian Brzezinski <adrian.brzezinski@eo.pl>
- Akhil <akhil.potukuchi@gmail.com>
- Akhil <akhil@e.email>
- Akhil Potukuchi <akhil.potukuchi@gmail.com>
- Alan Meeson <alan@carefullycalculated.co.uk>
- Administrator <Administrator@WINDOWS-2012>
- Aldo "xoen" Giambelluca <xoen@xoen.org>
- Alecks Gates <alecks.g@gmail.com>
- Alejandro Varela <epma01@gmail.com>
- Alexander A. Klimov <grandmaster@al2klimov.de>
- Alexandre Salomé <alexandre.salome@gmail.com>
- Alex Harpin <development@landsofshadow.co.uk>
- Alex Weirig <alex.weirig@technolink.lu>
- Alexander Bergolth <leo@strike.wu.ac.at>
- Alexander F <32201363+alx-tuilmenau@users.noreply.github.com>
- Allan Nordhøy <epost@anotheragency.no>
- Anderson Luiz Alves <alacn1@gmail.com>
- Andreas Böhler <dev@aboehler.at>
- Andreas Fischer <bantu@owncloud.com>
- Andreas Pflug <dev@admin4.org>
- Andrew Brown <andrew@casabrown.com>
- Andrey Borysenko <andrey.borysenko@nextcloud.com>
- André Gaul <gaul@web-yard.de>
- Andy Xheli <axheli@axtsolutions.com>
- Anna Larch <anna@nextcloud.com>
- Anna Larch <anna.larch@gmx.net>
- Anupam Kumar <kyteinsky@gmail.com>
- ArcticFall <23174635+ArcticFall@users.noreply.github.com>
- Ardinis <Ardinis@users.noreply.github.com>
- Ari Selseng <ari@selseng.net>
- Arne Hamann <kontakt+github@arne.email>
- Arne Hamann <github@arne.email>
- Artem Kochnev <MrJeos@gmail.com>
- Artem Sidorenko <artem@posteo.de>
- Arthur Schiwon <blizzz@arthur-schiwon.de>
- Artur Neumann <artur@jankaritech.com>
- Artur Neumann <info@individual-it.net>
- Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- Asier Iturralde Sarasola <asier.iturralde@gmail.com>
- Axel Helmert <axel.helmert@luka.de>
- Azul <azul@riseup.net>
- Bart Visscher <bartv@thisnet.nl>
- Bartek Przybylski <bart.p.pl@gmail.com>
- Bastien Durel <bastien@durel.org>
- Bastien Ho <bastienho@urbancube.fr>
- Benjamin Diele <benjamin@diele.be>
- Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
- Benjamin Liles <benliles@arch.tamu.edu>
- Bennet Becker <bbecker@pks.mpg.de>
- Bennet Becker <dev@bennet.cc>
- Bernard Spil <Sp1l@users.noreply.github.com>
- Bernd Rederlechner <Bernd.Rederlechner@t-systems.com>
- Bernd Stellwag <burned@zerties.org>
- Bernhard Ostertag <bernieo.code@gmx.de>
- Bernhard Posselt <dev@bernhard-posselt.com>
- Bernhard Reiter <ockham@raz.or.at>
- Bill McGonigle <bill-github.com@bfccomputing.com>
- Birk Borkason <daniel.niccoli@gmail.com>
- Bjoern Schiessle <bjoern@schiessle.org>
- Björn Schießle <bjoern@schiessle.org>
- Bjørn Forsman <bjorn.forsman@gmail.com>
- Blaok <i@blaok.me>
- Boris Rybalkin <ribalkin@gmail.com>
- Borjan Tchakaloff <borjan@tchakaloff.fr>
- Brad Rubenstein <brad@wbr.tech>
- Brandon Kirsch <brandonkirsch@github.com>
- Branko Kokanovic <branko@kokanovic.org>
- Brice Maron <brice@bmaron.net>
- Byron Marohn <combustible@live.com>
- CRA Yoshihito Nakatani <yoshihito.nakatani@craftsman-software.com>
- Carl Csaposs <carl@csaposs.com>
- Carl Schwan <carl@carlschwan.eu>
- Carla Schroder <carla@owncloud.com>
- Carlos Cerrillo <ccerrillo@gmail.com>
- Carlos Ferreira <carlos@reendex.com>
- Carsten Wiedmann <carsten_sttgt@gmx.de>
- Chih-Hsuan Yen <yan12125@gmail.com>
- Christian <16852529+cviereck@users.noreply.github.com>
- Carlos Damken <carlos@damken.com>
- Christian Berendt <berendt@b1-systems.de>
- Christian Jürges <christian@eqipe.ch>
- Christian Kampka <christian@kampka.net>
- Christian Oliff <christianoliff@yahoo.com>
- Christian Weiske <cweiske@cweiske.de>
- Christoph Schaefer "christophł@wolkesicher.de"
- Christoph Seitz <christoph.seitz@posteo.de>
- Christoph Wickert <cwickert@suse.de>
- Christoph Wurst <christoph@winzerhof-wurst.at>
- Christopher Bartz <bartz@dkrz.de>
- Christopher Ng <chrng8@gmail.com>
- Christoph Schaefer <christophł@wolkesicher.de>
- Christoph Wurst <christoph@owncloud.com>
- Christopher Schäpers <kondou@ts.unde.re>
- Christopher T. Johnson <ctjctj@gmail.com>
- Clark Tomlinson <fallen013@gmail.com>
- Claas Augner <github@caugner.de>
- Claus-Justus Heine <himself@claus-justus-heine.de>
- Clement Wong <git@clement.hk>
- Cornelius Kölbel <cornelius.koelbel@netknights.it>
- Cthulhux <git@tuxproject.de>
- Cyrille Bollu <cyrpub@bollu.be>
- Cédric Neukom <github@webguy.ch>
- Côme Chilliet <91878298+come-nc@users.noreply.github.com>
- Côme Chilliet <come.chilliet@nextcloud.com>
- Damjan Georgievski <gdamjan@gmail.com>
- Dan Callahan <dan.callahan@gmail.com>
- Daniel <mail@danielkesselberg.de>
- Daniel Calviño Sánchez <danxuliu@gmail.com>
- Craig Morrissey <craig@owncloud.com>
- Dan Bartram <daneybartram@gmail.com>
- Daniel Hansson <daniel@techandme.se>
- Daniel Hansson <enoch85@gmail.com>
- Daniel Jagszent <daniel@jagszent.de>
- Daniel Kesselberg <mail@danielkesselberg.de>
- Daniel Rudolf <github.com@daniel-rudolf.de>
- Daniel Rudolf <nextcloud.com@daniel-rudolf.de>
- Daniel Schneider <daniel@schneidoa.de>
- Daniel Teichmann <daniel.teichmann@das-netzwerkteam.de>
- Dariusz Olszewski <starypatyk@users.noreply.github.com>
- David <37280718+yeyulantu@users.noreply.github.com>
- Daniel Molkentin <daniel@molkentin.de>
- Daniel Tosello <tosello.daniel@gmail.com>
- David Prévot <taffit@debian.org>
- David Toledo <dtoledo@solidgear.es>
- Denis Mosolov <denismosolov@gmail.com>
- Derek <derek.kelly27@gmail.com>
- Dominik Schmidt <dev@dominik-schmidt.de>
- Donquixote <marjunebatac@gmail.com>
- Dries Mys <dries.mys@my-dreams.be>
- EWouters <6179932+EWouters@users.noreply.github.com>
- Elijah Martin-Merrill <elijah@nyp-itsours.com>
- Ember 'n0emis' Keske <git@n0emis.eu>
- Eric Masseran <rico.masseran@gmail.com>
- Erik van Velzen <erik@evanv.nl>
- Evgeny Golyshev <eugulixes@gmail.com>
- Ezhil Shanmugham <ezhil930@gmail.com>
- Fabian Dreßler <nudelsalat@clouz.de>
- Fabien Potencier <fabien@symfony.com>
- Fabrizio Steiner <fabrizio.steiner@gmail.com>
- Faraz Samapoor <f.samapoor@gmail.com>
- Felix Epp <work@felixepp.de>
- Felix Heidecke <felix@heidecke.me>
- Edward Crompton <edward.crompton@gmail.com>
- Fabian Henze <flyser42@gmx.de>
- Faruk Uzun <farukuzun@collabora.com>
- Felix Böhm <felixboehm@gmx.de>
- Felix Moeller <mail@felixmoeller.de>
- Felix Nieuwenhuizen <felix@tdlrali.com>
- Felix Nüsse <Felix.nuesse@t-online.de>
- Felix Rupp <github@felixrupp.com>
- Ferdinand Thiessen <opensource@fthiessen.de>
- Ferdinand Thiessen <rpm@fthiessen.de>
- Filis Futsarov <filisko@users.noreply.github.com>
- Florent <florent@coppint.com>
- Florian Schunk <florian.schunk@rwth-aachen.de>
- Florian Preinstorfer <nblock@archlinux.us>
- Florian Pritz <bluewind@xinu.at>
- Florian Scholz <FlorianScholz@bgstyle.de>
- Florin Peter <github@florin-peter.de>
- Fon E. Noel NFEBE <opensource@nfebe.com>
- Frank Isemann <frank@isemann.name>
- Frank Karlitschek <frank@karlitschek.de>
- François Freitag <mail@franek.fr>
- François Kubler <francois@kubler.org>
- François Ménabé <francois.menabe@gmail.com>
- Frederic Werner <frederic-github@werner-net.work>
- Frédéric Fortier <frederic.fortier@oronospolytechnique.com>
- Gary Kim <gary@garykim.dev>
- Georg Ehrke <oc.list@georgehrke.com>
- Git'Fellow <12234510+solracsf@users.noreply.github.com>
- Git'Fellow <carlos@reendex.com>
- Glandos <bugs-github@antipoul.fr>
- GrayFix <grayfix@gmail.com>
- Greta Doci <gretadoci@gmail.com>
- GretaD <gretadoci@gmail.com>
- Grigorii K. Shartsev <me@shgk.me>
- Guillaume COMPAGNON <gcompagnon@outlook.com>
- Guillaume Colson <guillaume.colson@univ-lorraine.fr>
- Guillaume Virlet <github@virlet.org>
- Gadzy <dev@gadzy.fr>
- Georg Ehrke <georg@owncloud.com>
- Guillaume AMAT <guillaume.amat@informatique-libre.com>
- Hasso Tepper <hasso@zone.ee>
- Hemanth Kumar Veeranki <hems.india1997@gmail.com>
- Hendrik Leppelsack <hendrik@leppelsack.de>
- Hinrich Mahler <22366557+Bibo-Joshi@users.noreply.github.com>
- Hinrich Mahler <nextcloud@mahlerhome.de>
- Holger Hees <holger.hees@gmail.com>
- HouraisanNEET <HouraisanNEET@users.noreply.github.com>
- Ilja Neumann <ineumann@owncloud.com>
- Ilya Apasov <apasov@users.noreply.github.com>
- Immanuel Pasanec <immanuel.pasanec@compaso.de>
- Hugo Gonzalez Labrador <hglavra@gmail.com>
- Individual IT Services <info@individual-it.net>
- Informatyka Boguslawski sp. z o.o. sp.k., http://www.ib.pl/
- Iscle <albertiscle9@gmail.com>
- J0WI <J0WI@users.noreply.github.com>
- Jaakko Salo <jaakkos@gmail.com>
- Jacob Neplokh <me@jacobneplokh.com>
- Jake Nabasny <jake@nabasny.com>
- Jakob Sack <mail@jakobsack.de>
- Jakub Onderka <ahoj@jakubonderka.cz>
- James Guo <i@ze3kr.com>
- James Letendre <James.Letendre@gmail.com>
- Jan C. Borchardt <hey@jancborchardt.net>
- Jan Messer <jan@mtec-studios.ch>
- Jan-Christoph Borchardt <hey@jancborchardt.net>
- Jan-Philipp Litza <jpl@plutex.de>
- Jan-Philipp Litza <jplitza@users.noreply.github.com>
- JanBartels <j.bartels@arcor.de>
- Janis Köhr <janis.koehr@novatec-gmbh.de>
- Janis Köhr <janiskoehr@icloud.com>
- Jared Boone <jared.boone@gmail.com>
- Jarkko Lehtoranta <devel@jlranta.com>
- Jasper Weyne <jasperweyne@gmail.com>
- Jean-Louis Dupond <jean-louis@dupond.be>
- Jens-Christian Fischer <jens-christian.fischer@switch.ch>
- Jesús Macias <jmacias@solidgear.es>
- Joachim Bauch <bauch@struktur.de>
- Joachim Sokolowski <github@sokolowski.org>
- Joas Schilling <coding@schilljs.com>
- Joel S <joel.devbox@protonmail.com>
- Johan Björk <johanimon@gmail.com>
- Johannes Ernst <jernst@indiecomputing.com>
- Johannes Leuker <j.leuker@hosting.de>
- Johannes Merkel <mail@johannesgge.de>
- Johannes Riedel <joeried@users.noreply.github.com>
- Johannes Riedel <johannes@johannes-riedel.de>
- Johannes Schlichenmaier <johannes@schlichenmaier.info>
- Johannes Willnecker <johannes@willnecker.com>
- John Molakvoæ <skjnldsv@protonmail.com>
- Jonas <jonas@freesources.org>
- Jonas Heinrich <heinrich@synyx.de>
- Jonas Meurer <jonas@freesources.org>
- Jonas Rittershofer <jotoeri@users.noreply.github.com>
- Jonny007-MKD <1-23-4-5@web.de>
- Jos Poortvliet <jos@opensuse.org>
- Jose Quinteiro <github@quinteiro.org>
- Josh Richards <josh.t.richards@gmail.com>
- Joshua Trees <me@jtrees.io>
- Juan Pablo Villafáñez <jvillafanez@solidgear.es>
- Julien Lutran <julien.lutran@corp.ovh.com>
- Julien Veyssier <eneiluj@posteo.net>
- Julien Veyssier <julien-nc@posteo.net>
- Julius Haertl <jus@bitgrid.net>
- Julius Härtl <jus@bitgrid.net>
- Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
- Jost Baron <Jost.Baron@gmx.de>
- Juan Pablo Villafañez <jvillafanez@solidgear.es>
- Jörn Friedrich Dreyer <jfd@butonic.de>
- KB7777 <k.burkowski@gmail.com>
- Kamil Domanski <kdomanski@kdemail.net>
- Kareem <yemkareems@gmail.com>
- Karel Hink <info@karelhink.cz>
- Kate Döen <kate.doeen@nextcloud.com>
- Kawohl <john@owncloud.com>
- Kenneth Newwood <kenneth@newwood.name>
- Kevin Lanni <therealklanni@gmail.com>
- Kevin Ndung'u <kevgathuku@gmail.com>
- Kevin Niehage <k.niehage@syseleven.de>
- Kim Brose <kim.brose@rwth-aachen.de>
- Kirill Popov <kirill.s.popov@gmail.com>
- Klaas Freitag <freitag@owncloud.com>
- Knut Ahlers <knut@ahlers.me>
- Ko- <k.stoffelen@cs.ru.nl>
- Konrad Abicht <hi@inspirito.de>
- Konrad Bucheli <kb@open.ch>
- Kristof Provost <github@sigsegv.be>
- Kyle Fazzari <kyrofa@ubuntu.com>
- Lars <winnetou+github@catolic.de>
- Lars Knickrehm <mail@lars-sh.de>
- Laurens Post <Crote@users.noreply.github.com>
- Laurens Post <lkpost@scept.re>
- Lauris Binde <laurisb@users.noreply.github.com>
- Lee Garrett <lgarrett@rocketjump.eu>
- Lennart Rosam <hello@takuto.de>
- Lennart Rosam <lennart.rosam@medien-systempartner.de>
- Leon Klingele <git@leonklingele.de>
- Leon Klingele <leon@struktur.de>
- Liam Dennehy <liam@wiemax.net>
- Liam JACK <liamjack@users.noreply.github.com>
- Lionel Elie Mamane <lionel@mamane.lu>
- Loki3000 <github@labcms.ru>
- Leonardo Diez <leio10@users.noreply.github.com>
- Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
- Lorenzo Tanganelli <35271287+tanganellilore@users.noreply.github.com>
- Louis <6653109+artonge@users.noreply.github.com>
- Louis Chemineau <louis@chmn.me>
- Loïc Hermann <loic.hermann@sciam.fr>
- Lucas Azevedo <lhs_azevedo@hotmail.com>
- Luka Trovic <luka@nextcloud.com>
- Lukas Reschke <lukas@statuscode.ch>
- Lukas Stabe <lukas@stabe.de>
- Luke Policinski <lpolicinski@gmail.com>
- Magnus Walbeck <mw@mwalbeck.org>
- Maksim Sukharev <antreesy.web@gmail.com>
- Marc Hefter <marchefter@gmail.com>
- Marc Hefter <marchefter@march42.net>
- Marcel Klehr <mklehr@gmx.net>
- Marcel Müller <marcel-mueller@gmx.de>
- Marcel Müller <marcel.mueller@nextcloud.com>
- Marcel Waldvogel <marcel.waldvogel@uni-konstanz.de>
- Marco Ambrosini <marcoambrosini@pm.me>
- Marco Ziech <marco@ziech.net>
- Marin Treselj <marin@pixelipo.com>
- Mario Danic <mario@lovelyhq.com>
- Lyonel Vincent <lyonel@ezix.org>
- Mario Kolling <mario.kolling@serpro.gov.br>
- Marius Blüm <marius@lineone.io>
- Marius David Wieschollek <git.public@mdns.eu>
- Markus Goetz <markus@woboq.com>
- Markus Staab <markus.staab@redaxo.de>
- Markus Zeller <git@markuszeller.com>
- MartB <mart.b@outlook.de>
- Martin Brugnara <martin@0x6d62.eu>
- Martin Konrad <info@martin-konrad.net>
- Martin Konrad <konrad@frib.msu.edu>
- Martin Mattel <martin.mattel@diemattels.at>
- Marvin Thomas Rabe <mrabe@marvinrabe.de>
- Masaki Kawabata Neto <masaki.kawabata@gmail.com>
- MasterOfDeath <rinat.gumirov@mail.ru>
- Matthew Setter <matthew@matthewsetter.com>
- Matthieu Gallien <matthieu.gallien@nextcloud.com>
- Mattia Narducci <mattianarducci1@gmail.com>
- Max <max@nextcloud.com>
- Max Kovalenko <mxss1998@yandex.ru>
- Max Kunzelmann <maxdev@posteo.de>
- Maxence Lange <maxence@artificial-owl.com>
- Maxence Lange <maxence@nextcloud.com>
- Maxence Lange <maxence@pontapreta.net>
- Maxime Besson <maxime.besson@worteks.com>
- Maximilian Martin <maximilian_martin@gmx.de>
- Maxopoly <max@dermax.org>
- MichaIng <28480705+MichaIng@users.noreply.github.com>
- MichaIng <micha@dietpi.com>
- Michael Gapczynski <GapczynskiM@gmail.com>
- Michael Göhler <somebody.here@gmx.de>
- Michael Jobst <mjobst+github@tecratech.de>
- Michael Jobst <mjobst@necls.com>
- Michael Kuhn <github@ikkoku.de>
- Michael Kuhn <michael@ikkoku.de>
- Michael Letzgus <www@chronos.michael-letzgus.de>
- Michael Kuhn <suraia@ikkoku.de>
- Michael Roitzsch <reactorcontrol@icloud.com>
- Michael Weimann <mail@michael-weimann.eu>
- Michael Zamot <michael@zamot.io>
- Michał Węgrzynek <michal.wegrzynek@malloc.com.pl>
- Michiel de Jong <michiel@unhosted.org>
- Micke Nordin <kano@sunet.se>
- Mickey Knox <mickey@netfreaks.org>
- Michael Roth <michael.roth@rz.uni-augsburg.de>
- Michael Telatynski <7t3chguy@gmail.com>
- Michael U <mdusher@users.noreply.github.com>
- Miguel Prokop <miguel.prokop@vtu.com>
- Mikael Hammarin <mikael@try2.se>
- Mikael Nordin <mickenordin@users.noreply.github.com>
- Mikael Saarinen <mikaels@iki.fi>
- Mikhail Sazanov <m@sazanof.ru>
- Mitar <mitar.git@tnode.com>
- Mohammed Abdellatif <m.latief@gmail.com>
- Morris Jobke <hey@morrisjobke.de>
- Mátyás Jani <jzombi@gmail.com>
- nacho <nacho@ownyourbits.com>
- Naoto Kobayashi <naoto.kobayashi4c@gmail.com>
- Nazar Mokrynskyi <nazar@mokrynskyi.com>
- Nick Sweeting <git@sweeting.me>
- Nicolai Ehemann <en@enlightened.de>
- Nicolas Grekas <nicolas.grekas@gmail.com>
- Nicolas SIMIDE <2083596+dems54@users.noreply.github.com>
- Nils <git@to.nilsschnabel.de>
- Nils Wittenbrink <nilswittenbrink@web.de>
- Nina Pypchenko <22447785+nina-py@users.noreply.github.com>
- Nmz <nemesiz@nmz.lt>
- NoSleep82 <52562874+NoSleep82@users.noreply.github.com>
- Noveen Sachdeva <noveen.sachdeva@research.iiit.ac.in>
- Ole Ostergaard <ole.c.ostergaard@gmail.com>
- Ole Ostergaard <ole.ostergaard@knime.com>
- Normal Ra <normalraw@gmail.com>
- Oliver Gasser <oliver.gasser@gmail.com>
- Oliver Kohl D.Sc. <oliver@kohl.bz>
- Oliver Wegner <void1976@gmail.com>
- Olivier Paroz <github@oparoz.com>
- Olivier Paroz <owncloud@interfasys.ch>
- Orzu Ionut <orzu.ionut@gmail.com>
- Otto Sabart <ottosabart@seberm.com>
- Owen Winkler <a_github@midnightcircus.com>
- Pascal de Bruijn <pmjdebruijn@pcode.nl>
- Patrick Paysant <patrick.paysant@linagora.com>
- Patrik Kernstock <info@pkern.at>
- Pauli Järvinen <pauli.jarvinen@gmail.com>
- Pavel Krasikov <klonishe@gmail.com>
- Pawel Boguslawski <pawel.boguslawski@ib.pl>
- Patrick Paysant <ppaysant@linagora.com>
- Pellaeon Lin <nfsmwlin@gmail.com>
- Peter Kubica <peter@kubica.ch>
- Petre T <petre.tudor@dorkfarm.com>
- Petr Svoboda <weits666@gmail.com>
- Phiber2000 <phiber2000@gmx.de>
- Phil Davis <phil.davis@inf.org>
- Philip Gatzka <philip.gatzka@mailbox.org>
- Philipp Kapfer <philipp.kapfer@gmx.at>
- Philipp Schaffrath <github@philipp.schaffrath.email>
- Philipp Staiger <philipp@staiger.it>
- Philippe Jung <phil.jung@free.fr>
- Philippe Le Brouster <plb@nebkha.net>
- Pierre Jochem <pierrejochem@msn.com>
- Pierre Ozoux <pierre@ozoux.net>
- Pierre Rudloff <contact@rudloff.pro>
- Piotr Filiciak <piotr@filiciak.pl>
- Piotr M <mrow4a@yahoo.com>
- Piotr Mrowczynski <mrow4a@yahoo.com>
- Piotr Mrowczynski <piotr@owncloud.com>
- Piotr Mrówczyński <mrow4a@yahoo.com>
- Pytal <24800714+Pytal@users.noreply.github.com>
- Qingping Hou <dave2008713@gmail.com>
- Raghu Nayyar <hey@raghunayyar.com>
- Raghu Nayyar <me@iraghu.com>
- Ralph Krimmel <rkrimme1@gwdg.de>
- Ramiro Aparicio <rapariciog@gmail.com>
- Randolph Carter <RandolphCarter@fantasymail.de>
- Rayn0r <andrew@ilpss8.myfirewall.org>
- RealRancor <Fisch.666@gmx.de>
- RealRancor <fisch.666@gmx.de>
- Rello <Rello@users.noreply.github.com>
- Remco Brenninkmeijer <requist1@starmail.nl>
- Retidurc Silvernight <retidurc@silvernight.social>
- Richard Steinmetz <richard@steinmetz.cloud>
- Richard de Boer <github@tubul.net>
- Rid <rid@cylo.io>
- Rinat Gumirov <rinat.gumirov@mail.ru>
- Robert Dailey <rcdailey@gmail.com>
- Renaud Fortier <Renaud.Fortier@fsaa.ulaval.ca>
- Robin Appelman <robin@icewind.nl>
- Robin McCorkell <robin@mccorkell.me.uk>
- Robin Müller <coder-hugo@users.noreply.github.com>
- Roeland Jago Douma <roeland@famdouma.nl>
- Roger Szabo <roger.szabo@web.de>
- Roland Tapken <roland@bitarbeiter.net>
- Romain Rivière <lecoyote@lecoyote.org>
- Roman Geber <rgeber@owncloudapps.com>
- Roman Kreisel <mail@romankreisel.de>
- Ross Nicoll <jrn@jrn.me.uk>
- Rsplwe <i@rsplwe.com>
- Ruben Homs <ruben@homs.codes>
- RussellAult <RussellAult@users.noreply.github.com>
- Rémy Jacquin <remy@remyj.fr>
- S. Cat <33800996+sparrowjack63@users.noreply.github.com>
- SA <stephen@mthosting.net>
- Sascha Sambale <mastixmc@gmail.com>
- Sam Bull <aa6bs0@sambull.org>
- Sam Tuke <mail@samtuke.com>
- Sam Tuke <samtuke@owncloud.com>
- Samuel <faust64@gmail.com>
- Samuel CHEMLA <chemla.samuel@gmail.com>
- Sander Ruitenbeek <s.ruitenbeek@getgoing.nl>
- Sander Ruitenbeek <sander@grids.be>
- Sandro Lutz <sandro.lutz@temparus.ch>
- Sanpi <sanpi@homecomputing.fr>
- Sascha Wiswedel <sascha.wiswedel@nextcloud.com>
- Scott Dutton <exussum12@users.noreply.github.com>
- Scott Dutton <scott@exussum.co.uk>
- Scott Shambarger <devel@shambarger.net>
- Sander <brantje@gmail.com>
- Sean Comeau <sean@ftlnetworks.ca>
- Sean Molenaar <sean@seanmolenaar.eu>
- Sebastian Döll <sebastian.doell@libasys.de>
- Sebastian Steinmetz <462714+steiny2k@users.noreply.github.com>
- Sebastian Steinmetz <me@sebastiansteinmetz.ch>
- Sebastian Wessalowski <sebastian@wessalowski.org>
- Semih Serhat Karakaya <karakayasemi@itu.edu.tr>
- Senorsen <senorsen.zhang@gmail.com>
- Serge Martin <edb@sigluy.net>
- Sergej Nikolaev <kinolaev@gmail.com>
- Sergej Pupykin <pupykin.s@gmail.com>
- Sergey Shliakhov <husband.sergey@gmail.com>
- Sergio Bertolin <sbertolin@solidgear.es>
- Sergio Bertolín <sbertolin@solidgear.es>
- Serhii Shliakhov <shlyakhov.up@gmail.com>
- Sijmen Schoon <me@sijmenschoon.nl>
- Simon Könnecke <simonkoennecke@gmail.com>
- Simon L <szaimen@e.mail.de>
- Simon Leiner <simon@leiner.me>
- Simon Spannagel <simonspa@kth.se>
- Simounet <contact@simounet.net>
- Sjors van der Pluijm <sjors@desjors.nl>
- Stanimir Bozhilov <stanimir.bozhilov.1998@gmail.com>
- Stanimir Bozhilov <stanimir@audriga.com>
- Stefan <Stefan.Schilling@EXXETA.com>
- Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
- Stefan Rado <owncloud@sradonia.net>
- Stefan Schneider <stefan.schneider@squareweave.com.au>
- Stefan Weiberg <sweiberg@suse.com>
- Stefan Weil <sw@weilnetz.de>
- Steffen Lindner <mail@steffen-lindner.de>
- Stephan Müller <mail@stephanmueller.eu>
- Stephan Orbaugh <stephan.orbaugh@nextcloud.com>
- Stephan Peijnik <speijnik@anexia-it.com>
- Stephen Cuppett <steve@cuppett.com>
- Steven Bühner <buehner@me.com>
- Sujith H <sharidasan@owncloud.com>
- Sujith Haridasan <Sujith_Haridasan@mentor.com>
- Sujith Haridasan <sujith.h@gmail.com>
- Sven Strickroth <email@cs-ware.de>
- Sylvain <git@sylvain.dev>
- Sylvia van Os <sylvia@hackerchick.me>
- Tekhnee <info@tekhnee.org>
- Temtaime <temtaime@gmail.com>
- TheSFReader <TheSFReader@gmail.com>
- Thibaut GRIDEL <tgridel@free.fr>
- Thomas Citharel <nextcloud@tcit.fr>
- Thomas Ebert <thomas.ebert@usability.de>
- Thomas Müller <thomas.mueller@tmit.eu>
- Thomas Pulzer <t.pulzer@kniel.de>
- Thomas Schmidt <tschmidt@suse.de>
- Thomas Tanghus <thomas@tanghus.net>
- Tiago Flores <tiago.flores@yahoo.com.br>
- Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
- Tim Dettrick <t.dettrick@uq.edu.au>
- Tim Obert <tobert@w-commerce.de>
- Tim Terhorst <mynamewastaken+gitlab@gmail.com>
- TimObert <tobert@w-commerce.de>
- Timo Förster <tfoerster@webfoersterei.de>
- Tobia De Koninck <LEDfan@users.noreply.github.com>
- Tobia De Koninck <tobia@ledfan.be>
- Tobias Assmann <tobias.assmann@ecsec.de>
- Tobias Kaminsky <tobias@kaminsky.me>
- Tobias Perschon <tobias@perschon.at>
- Tom Grant <TomG736@users.noreply.github.com>
- Tom Needham <tom@owncloud.com>
- Tomasz Grobelny <tomasz@grobelny.net>
- Tomasz Paluszkiewicz <tomasz.paluszkiewicz@gmail.com>
- Tor Lillqvist <tml@collabora.com>
- UmbrellaCodr <umbrella@biohazard.cc>
- Unknown <anpz.asutp@gmail.com>
- Unpublished <unpublished@gmx.net>
- Valdnet <47037905+Valdnet@users.noreply.github.com>
- Vanessa Pertsch <vanessa.pertsch@nextcloud.com>
- Varun Patil <radialapps@gmail.com>
- Varun Patil <varunpatil@ucla.edu>
- Victor Dubiniuk <dubiniuk@owncloud.com>
- Viktor Szépe <viktor@szepe.net>
- Vincent Chan <plus.vincchan@gmail.com>
- Vincent Cloutier <vincent1cloutier@gmail.com>
- Vincent Petry <pvince81@owncloud.com>
- Vincent Petry <vincent@nextcloud.com>
- Vincent Van Houtte <vvh@aplusv.be>
- Vinicius Cubas Brand <vinicius@eita.org.br>
- Vitor Mattos <vitor@php.rio>
- Vlastimil Pecinka <pecinka@email.cz>
- Volkan Gezer <volkangezer@gmail.com>
- Volker <skydiablo@gmx.net>
- William <william.hak57@gmail.com>
- William Pain <pain.william@gmail.com>
- Xheni Myrtaj <myrtajxheni@gmail.com>
- Xheni Myrtaj <xheni@protonmail.com>
- Xuanwo <xuanwo@yunify.com>
- ZitronePlus <tobiasscharf92@gmail.com>
- acsfer <12234510+acsfer@users.noreply.github.com>
- acsfer <carlos@reendex.com>
- adrien <adrien.waksberg@believedigital.com>
- alanmeeson <alan@carefullycalculated.co.uk>
- aler9 <46489434+aler9@users.noreply.github.com>
- alexweirig <alex.weirig@technolink.lu>
- b108@volgograd "b108@volgograd"
- bbx-github <53237674+bbx-github@users.noreply.github.com>
- bladewing <lukas@ifflaender-family.de>
- bline <scottbeck@gmail.com>
- blizzz <blizzz@arthur-schiwon.de>
- brad2014 <brad2014@users.noreply.github.com>
- brumsel <brumsel@losecatcher.de>
- cahogan <caitlin.hogan@swiftsolar.com>
- call-me-matt <nextcloud@matthiasheinisch.de>
- castillo92 <37965565+castillo92@users.noreply.github.com>
- cetra3 <peter@parashift.com.au>
- cmeh <cmeh@users.noreply.github.com>
- comradekingu <epost@anotheragency.no>
- dartcafe <github@dartcafe.de>
- dampfklon <me@dampfklon.de>
- davidgumberg <davidnoizgumberg@gmail.com>
- davitol <dtoledo@solidgear.es>
- dems54 <2083596+dems54@users.noreply.github.com>
- duritong <peter.meier+github@immerda.ch>
- derkostka <sebastian.kostka@gmail.com>
- eduardo <eduardo@vnexu.net>
- eleith <online+github@eleith.com>
- enoch <lanxenet@hotmail.com>
- essys <essys@users.noreply.github.com>
- exner104 <59639860+exner104@users.noreply.github.com>
- fabian <fabian@web2.0-apps.de>
- felixboehm <felix@webhippie.de>
- fenn-cs <fenn25.fn@gmail.com>
- fnuesse <felix.nuesse@t-online.de>
- fnuesse <fnuesse@techfak.uni-bielefeld.de>
- greta <gretadoci@gmail.com>
- goodkiller <markopraakli@gmail.com>
- helix84 <helix84@centrum.sk>
- hkjolhede <hkjolhede@gmail.com>
- hoellen <dev@hoellen.eu>
- hosting.de, Johannes Leuker <developers@hosting.de>
- howardZa <33491519+howardZa@users.noreply.github.com>
- ideaship <ideaship@users.noreply.github.com>
- j-ed <juergen@eisfair.org>
- j3l11234 <297259024@qq.com>
- jaltek <jaltek@mailbox.org>
- jknockaert <jasper@knockaert.nl>
- jld3103 <jld3103yt@gmail.com>
- josh4trunks <joshruehlig@gmail.com>
- julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
- karakayasemi <karakayasemi@itu.edu.tr>
- kevin147147 <kevintamool@gmail.com>
- korelstar <korelstar@users.noreply.github.com>
- leith abdulla <online-nextcloud@eleith.com>
- lui87kw <lukas.ifflaender@uni-wuerzburg.de>
- luz paz <luzpaz@github.com>
- luz paz <luzpaz@pm.me>
- lynn-stephenson <lynn.stephenson@protonmail.com>
- macjohnny <estebanmarin@gmx.ch>
- marco44 <cousinmarc@gmail.com>
- marc0s <marcos@tenak.net>
- martin-rueegg <martin.rueegg@metaworx.ch>
- martin.mattel@diemattels.at <martin.mattel@diemattels.at>
- martink-p <47943787+martink-p@users.noreply.github.com>
- matt <34400929+call-me-matt@users.noreply.github.com>
- medcloud <42641918+medcloud@users.noreply.github.com>
- michaelletzgus <michaelletzgus@users.noreply.github.com>
- michag86 <micha_g@arcor.de>
- michag86 <michag86@arcor.de>
- mmccarn <mmccarn-github@mmsionline.us>
- nhirokinet <nhirokinet@nhiroki.net>
- nik gaffney <nik@fo.am>
- nishiki <nishiki@yaegashi.fr>
- noiob <8197071+noiob@users.noreply.github.com>
- noveens <noveen.sachdeva@research.iiit.ac.in>
- npmbuildbot[bot] "npmbuildbot[bot]@users.noreply.github.com"
- onehappycat <one.happy.cat@gmx.com>
- phisch <git@philippschaffrath.de>
- pjft <pjft@users.noreply.github.com>
- plumbeo <plumbeo@users.noreply.github.com>
- rakekniven <2069590+rakekniven@users.noreply.github.com>
- rakekniven <mark.ziegler@rakekniven.de>
- raul <raul@nextcloud.com>
- robottod <83244577+robottod@users.noreply.github.com>
- root "root@oc.(none)"
- root <root@localhost.localdomain>
- rubo77 <github@r.z11.de>
- sammo2828 <sammo2828@gmail.com>
- oparoz <owncloud@interfasys.ch>
- root <root@oc.(none)>
- scambra <sergio@entrecables.com>
- scolebrook <scolebrook@mac.com>
- shkdee <louis.traynard@m4x.org>
- simonspa <1677436+simonspa@users.noreply.github.com>
- smichel17 <git@smichel.me>
- sodimel <corentin@244466666.xyz>
- ste101 <stephan_bauer@gmx.de>
- sualko <klaus@jsxc.org>
- szaimen <szaimen@e.mail.de>
- tbartenstein <tbartenstein@users.noreply.github.com>
- tbelau666 <thomas.belau@gmx.de>
- tgrant <tom.grant760@gmail.com>
- timm2k <timm2k@gmx.de>
- tux-rampage <tux-rampage@users.noreply.github.com>
- unclejamal3000 <andreas.pramhaas@posteo.de>
- v1r0x <vinzenz.rosenkranz@gmail.com>
- voxsim "Simon Vocella"
- waleczny <michal@walczak.xyz>
- zorn-v <zorn7@yandex.ru>
- zulan <git@zulan.net>
- Łukasz Buśko <busko.lukasz@pm.me>
- Nextcloud GmbH
- ownCloud GmbH
- ownCloud, Inc.
- voxsim <Simon Vocella>
With help from many libraries and frameworks including:
Open Collaboration Services
-8
View File
@@ -1,8 +0,0 @@
<!--
- SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
Changelog
=========
The change log is at [https://nextcloud.com/changelog/](https://nextcloud.com/changelog/).
-13
View File
@@ -1,13 +0,0 @@
<!--
- SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
In the Nextcloud community, participants from all over the world come together to create Free Software for a free internet. This is made possible by the support, hard work and enthusiasm of thousands of people, including those who create and use Nextcloud software.
Our code of conduct offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.
The Code of Conduct is shared by all contributors and users who engage with the Nextcloud team and its community services. It presents a summary of the shared values and “common sense” thinking in our community.
You can find our full code of conduct on our website: https://nextcloud.com/code-of-conduct/
Please, keep our CoC in mind when you contribute! That way, everyone can be a part of our community in a productive, positive, creative and fun way.
+41
View File
@@ -0,0 +1,41 @@
## Submitting issues
If you have questions about how to install or use Nextcloud, please direct these to our [forum][forum]. We are also available on [IRC][irc].
### Short version
* The [**issue template can be found here**][template] but be aware of the different repositories! See list below. Please always use the issue template when reporting issues.
### Guidelines
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
- Go to one of the repositories, click "issues" and type any word in the top search/command bar.
- You can also filter by appending e. g. "state:open" to the search string.
- More info on [search syntax within github](https://help.github.com/articles/searching-issues)
* This repository ([server](https://github.com/nextcloud/server/issues)) is *only* for issues within the Nextcloud Server code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
* __SECURITY__: Report any potential security bug to us via security@nextcloud.com following our [security policy](https://nextcloud.com/security/) instead of filing an issue in our bug tracker-
* The issues in other components should be reported in their respective repositories: You will find them in our [GitHub Organization](https://github.com/nextcloud/)
* Report the issue using our [template][template], it includes all the information we need to track down the issue.
Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.
[template]: https://raw.github.com/nextcloud/core/master/issue_template.md
[forum]: https://help.nextcloud.com/
[irc]: https://webchat.freenode.net/?channels=nextcloud
## Contributing to Source Code
Thanks for wanting to contribute source code to Nextcloud. That's great!
Please read the [Developer Manuals][devmanual] to learn how to create your first application or how to test the Nextcloud code with PHPUnit.
In order to constantly increase the quality of our software we can no longer accept pull request which submit un-tested code.
It is a must have that changed and added code segments are unit tested.
In some areas unit testing is hard (aka almost impossible) as of today - in these areas refactoring WHILE fixing a bug is encouraged to enable unit testing.
[devmanual]: https://docs.nextcloud.org/server/10/developer_manual/
## Translations
Please submit translations via [Transifex][transifex].
[transifex]: https://www.transifex.com/nextcloud
View File
+3 -9
View File
@@ -1,10 +1,5 @@
<!--
- SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
- SPDX-FileCopyrightText: 2011-2016 ownCloud, Inc.
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
Files in Nextcloud are licensed under the Affero General Public License version 3,
the text of which can be found in `COPYING`, or any later version of the AGPL,
Files in ownCloud are licensed under the Affero General Public License version 3,
the text of which can be found in COPYING-AGPL, or any later version of the AGPL,
unless otherwise noted.
Licensing of components:
@@ -14,8 +9,7 @@ Licensing of components:
* User: AGPL
* XML/RPC: MIT / PHP
* Elementary filetype icons: GPL v3+
* Material UI icons: APACHE LICENSE, VERSION 2.0
All unmodified files from these and other sources retain their original copyright
and license notices: see the relevant individual files.
Attribution information for Nextcloud is contained in the `AUTHORS` file.
Attribution information for ownCloud is contained in the AUTHORS file.
-28
View File
@@ -1,28 +0,0 @@
<!--
- SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Nextcloud Design contribution guidelines
## 👋 Welcome
At Nextcloud we want to make sure to have everything in place to enable designers to contribute making our apps universally accessible and easy to use.
## 🚢 How to contribute design
We have a dedicated page with more in-detail guidelines on our website:
https://nextcloud.com/design/
**TL;DR**
1. Check out open [issues](https://github.com/nextcloud/server/issues) here on GitHub (we label them with `design`)
2. Make sure create publicly accessible assets
3. Add your contributions to an issue and we promise we will review your contribution carefully and foster discussions
[This issue](https://github.com/nextcloud/desktop/issues/877) has examples of other apps, some simple mockups, and specifications about the design. In the discussions in the comments there are updates to the design as well.
[This pull request](https://github.com/nextcloud/desktop/pull/1565) by a developer has the implementation of that issue, the changes they made, and more design discussions and adjustments.
**We encourage you to:**
- Get in touch with the team by joining our [public Talk channel](https://cloud.nextcloud.com/call/gqff69i8)
-235
View File
@@ -1,235 +0,0 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software.
A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.
The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.
An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based on the Program.
To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work.
A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.
The Corresponding Source for a work in source code form is that same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices".
c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or authors of the material; or
e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.
If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.
A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.
Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements.
You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see <http://www.gnu.org/licenses/>.
-235
View File
@@ -1,235 +0,0 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software.
A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.
The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.
An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based on the Program.
To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work.
A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.
The Corresponding Source for a work in source code form is that same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices".
c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or authors of the material; or
e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.
If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.
A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.
Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements.
You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see <http://www.gnu.org/licenses/>.

Some files were not shown because too many files have changed in this diff Show More