From 109166f87e2b9a3d4c57e74dbfc1bce29d998cb6 Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Tue, 21 Mar 2023 16:41:47 +0100 Subject: [PATCH 01/10] nextcloud26: init at 26.0.0 --- pkgs/servers/nextcloud/default.nix | 5 + ...move-custom-dbuser-creation-behavior.patch | 157 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 pkgs/servers/nextcloud/patches/v26/0001-Setup-remove-custom-dbuser-creation-behavior.patch diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix index 33a1825cde36..fabf4864be2d 100644 --- a/pkgs/servers/nextcloud/default.nix +++ b/pkgs/servers/nextcloud/default.nix @@ -60,6 +60,11 @@ in { sha256 = "sha256-wyUeAIOpQwPi1piLNS87Mwgqeacmsw/3RnCbD+hpoaY="; }; + nextcloud26 = generic { + version = "26.0.0"; + sha256 = "sha256-8WMVA2Ou6TZuy1zVJZv2dW7U8HPOp4tfpRXK2noNDD0="; + }; + # tip: get the sha with: # curl 'https://download.nextcloud.com/server/releases/nextcloud-${version}.tar.bz2.sha256' } diff --git a/pkgs/servers/nextcloud/patches/v26/0001-Setup-remove-custom-dbuser-creation-behavior.patch b/pkgs/servers/nextcloud/patches/v26/0001-Setup-remove-custom-dbuser-creation-behavior.patch new file mode 100644 index 000000000000..63177d3162f7 --- /dev/null +++ b/pkgs/servers/nextcloud/patches/v26/0001-Setup-remove-custom-dbuser-creation-behavior.patch @@ -0,0 +1,157 @@ +From 2e32658e52e196ef2e3ef671606da9131f0079d9 Mon Sep 17 00:00:00 2001 +From: Raito Bezarius +Date: Tue, 21 Mar 2023 16:38:29 +0100 +Subject: [PATCH] Setup: remove custom dbuser creation behavior + +Both PostgreSQL and MySQL can be authenticated against from Nextcloud by +supplying a database password. Now, during setup the following things +happen: + +* When using postgres and the db user has elevated permissions, a new + unprivileged db user is created and the settings `dbuser`/`dbpass` are + altered in `config.php`. + +* When using MySQL, the password is **always** regenerated since + 24.0.5/23.0.9[1]. + +I consider both cases problematic: the reason why people do configuration +management is to have it as single source of truth! So, IMHO any +application that silently alters config and thus causes deployed +nodes to diverge from the configuration is harmful for that. + +I guess it was sheer luck that it worked for so long in NixOS because +nobody has apparently used password authentication with a privileged +user to operate Nextcloud (which is a good thing in fact). + +[1] https://github.com/nextcloud/server/pull/33513 + +Original-Author: Maximilian Bosch +--- + lib/private/Setup/MySQL.php | 61 +++----------------------------- + lib/private/Setup/PostgreSQL.php | 39 -------------------- + 2 files changed, 4 insertions(+), 96 deletions(-) + +diff --git a/lib/private/Setup/MySQL.php b/lib/private/Setup/MySQL.php +index 50f566728a9..ce721415e30 100644 +--- a/lib/private/Setup/MySQL.php ++++ b/lib/private/Setup/MySQL.php +@@ -145,62 +145,9 @@ class MySQL extends AbstractDatabase { + * @param IDBConnection $connection + */ + private function createSpecificUser($username, $connection): void { +- $rootUser = $this->dbUser; +- $rootPassword = $this->dbPassword; +- +- //create a random password so we don't need to store the admin password in the config file +- $saveSymbols = str_replace(['\"', '\\', '\'', '`'], '', ISecureRandom::CHAR_SYMBOLS); +- $password = $this->random->generate(22, ISecureRandom::CHAR_ALPHANUMERIC . $saveSymbols) +- . $this->random->generate(2, ISecureRandom::CHAR_UPPER) +- . $this->random->generate(2, ISecureRandom::CHAR_LOWER) +- . $this->random->generate(2, ISecureRandom::CHAR_DIGITS) +- . $this->random->generate(2, $saveSymbols); +- $this->dbPassword = str_shuffle($password); +- +- try { +- //user already specified in config +- $oldUser = $this->config->getValue('dbuser', false); +- +- //we don't have a dbuser specified in config +- if ($this->dbUser !== $oldUser) { +- //add prefix to the admin username to prevent collisions +- $adminUser = substr('oc_' . $username, 0, 16); +- +- $i = 1; +- while (true) { +- //this should be enough to check for admin rights in mysql +- $query = 'SELECT user FROM mysql.user WHERE user=?'; +- $result = $connection->executeQuery($query, [$adminUser]); +- +- //current dbuser has admin rights +- $data = $result->fetchAll(); +- $result->closeCursor(); +- //new dbuser does not exist +- if (count($data) === 0) { +- //use the admin login data for the new database user +- $this->dbUser = $adminUser; +- $this->createDBUser($connection); +- +- break; +- } else { +- //repeat with different username +- $length = strlen((string)$i); +- $adminUser = substr('oc_' . $username, 0, 16 - $length) . $i; +- $i++; +- } +- } +- } else { +- // Reuse existing password if a database config is already present +- $this->dbPassword = $rootPassword; +- } +- } catch (\Exception $ex) { +- $this->logger->info('Can not create a new MySQL user, will continue with the provided user.', [ +- 'exception' => $ex, +- 'app' => 'mysql.setup', +- ]); +- // Restore the original credentials +- $this->dbUser = $rootUser; +- $this->dbPassword = $rootPassword; +- } ++ $this->config->setValues([ ++ 'dbuser' => $this->dbUser, ++ 'dbpassword' => $this->dbPassword, ++ ]); + } + } +diff --git a/lib/private/Setup/PostgreSQL.php b/lib/private/Setup/PostgreSQL.php +index 490cbba69a9..48e7f24f260 100644 +--- a/lib/private/Setup/PostgreSQL.php ++++ b/lib/private/Setup/PostgreSQL.php +@@ -45,45 +45,6 @@ class PostgreSQL extends AbstractDatabase { + $connection = $this->connect([ + 'dbname' => 'postgres' + ]); +- if ($this->tryCreateDbUser) { +- //check for roles creation rights in postgresql +- $builder = $connection->getQueryBuilder(); +- $builder->automaticTablePrefix(false); +- $query = $builder +- ->select('rolname') +- ->from('pg_roles') +- ->where($builder->expr()->eq('rolcreaterole', new Literal('TRUE'))) +- ->andWhere($builder->expr()->eq('rolname', $builder->createNamedParameter($this->dbUser))); +- +- try { +- $result = $query->execute(); +- $canCreateRoles = $result->rowCount() > 0; +- } catch (DatabaseException $e) { +- $canCreateRoles = false; +- } +- +- if ($canCreateRoles) { +- $connectionMainDatabase = $this->connect(); +- //use the admin login data for the new database user +- +- //add prefix to the postgresql user name to prevent collisions +- $this->dbUser = 'oc_' . strtolower($username); +- //create a new password so we don't need to store the admin config in the config file +- $this->dbPassword = \OC::$server->getSecureRandom()->generate(30, ISecureRandom::CHAR_ALPHANUMERIC); +- +- $this->createDBUser($connection); +- +- // Go to the main database and grant create on the public schema +- // The code below is implemented to make installing possible with PostgreSQL version 15: +- // https://www.postgresql.org/docs/release/15.0/ +- // From the release notes: For new databases having no need to defend against insider threats, granting CREATE permission will yield the behavior of prior releases +- // Therefore we assume that the database is only used by one user/service which is Nextcloud +- // Additional services should get installed in a separate database in order to stay secure +- // Also see https://www.postgresql.org/docs/15/ddl-schemas.html#DDL-SCHEMAS-PATTERNS +- $connectionMainDatabase->executeQuery('GRANT CREATE ON SCHEMA public TO "' . addslashes($this->dbUser) . '"'); +- $connectionMainDatabase->close(); +- } +- } + + $this->config->setValues([ + 'dbuser' => $this->dbUser, +-- +2.39.2 + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 08240819d6c4..6cd57720589e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10258,7 +10258,7 @@ with pkgs; grocy = callPackage ../servers/grocy { }; inherit (callPackage ../servers/nextcloud {}) - nextcloud23 nextcloud24 nextcloud25; + nextcloud23 nextcloud24 nextcloud25 nextcloud26; nextcloud23Packages = ( callPackage ../servers/nextcloud/packages { apps = lib.importJSON ../servers/nextcloud/packages/23.json; From 1eddc824e252d9dbec33d205fa6e3445dd5b2807 Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Tue, 21 Mar 2023 16:49:10 +0100 Subject: [PATCH 02/10] nextcloud26Packages: init at various --- pkgs/servers/nextcloud/packages/26.json | 202 ++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 3 + 2 files changed, 205 insertions(+) create mode 100644 pkgs/servers/nextcloud/packages/26.json diff --git a/pkgs/servers/nextcloud/packages/26.json b/pkgs/servers/nextcloud/packages/26.json new file mode 100644 index 000000000000..8d4cae029533 --- /dev/null +++ b/pkgs/servers/nextcloud/packages/26.json @@ -0,0 +1,202 @@ +{ + "bookmarks": { + "sha256": "0xx331bgly91y8ncxk36ha3ncrr2xlivblfi7rix6ffkrdx73yb9", + "url": "https://github.com/nextcloud/bookmarks/releases/download/v13.0.1/bookmarks-13.0.1.tar.gz", + "version": "13.0.1", + "description": "- πŸ“‚ Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- πŸ” Full-text search\n- πŸ“² Synchronize with all your browsers and devices\n- πŸ‘ͺ Share bookmarks with other users and publicly\n- ☠ Find broken links\n- βš› Generate RSS feeds of your collections\n- πŸ“” Read archived versions of your links in case they are depublished\n- πŸ’¬ Create new bookmarks directly from within Nextcloud Talk\n- πŸ’Ό Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP v7.4+\n - PHP extensions:\n - intl: *\n - mbstring: *\n - when using MySQL, use at least v8.0", + "homepage": "https://github.com/nextcloud/bookmarks", + "licenses": [ + "agpl" + ] + }, + "calendar": { + "sha256": "18jlj2g2b57ibcvqiw3pkkky4rr20xi5plyxl1xjn2bp9l3hng4y", + "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.3.0/calendar-v4.3.0.tar.gz", + "version": "4.3.0", + "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* πŸš€ **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* πŸ™‹ **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* πŸ” Search! Find your events at ease\n* β˜‘οΈ Tasks! See tasks with a due date directly in the calendar\n* πŸ™ˆ **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.", + "homepage": "https://github.com/nextcloud/calendar/", + "licenses": [ + "agpl" + ] + }, + "contacts": { + "sha256": "1rdql3m7pg9m044hppyrm3xw329y8h0pzwcmpcinjbjs0vqjssxk", + "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.2.0/contacts-v5.2.0.tar.gz", + "version": "5.2.0", + "description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* πŸš€ **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* πŸŽ‰ **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* πŸ‘₯ **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* πŸ™ˆ **We’re not reinventing the wheel!** Based on the great and open SabreDAV library.", + "homepage": "https://github.com/nextcloud/contacts#readme", + "licenses": [ + "agpl" + ] + }, + "deck": { + "sha256": "1bx95f8rpvfwh0zf5iaks7w252dfbfh7xngljj58a4nwqv9g613q", + "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.9.0/deck-v1.9.0.tar.gz", + "version": "1.9.0", + "description": "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- πŸ“₯ Add your tasks to cards and put them in order\n- πŸ“„ Write down additional notes in Markdown\n- πŸ”– Assign labels for even better organization\n- πŸ‘₯ Share with your team, friends or family\n- πŸ“Ž Attach files and embed them in your Markdown description\n- πŸ’¬ Discuss with your team using comments\n- ⚑ Keep track of changes in the activity stream\n- πŸš€ Get your project organized", + "homepage": "https://github.com/nextcloud/deck", + "licenses": [ + "agpl" + ] + }, + "files_texteditor": { + "sha256": "0rmk14iw34pd81snp3lm01k07wm5j2nh9spcd4j0m43l20b7kxss", + "url": "https://github.com/nextcloud-releases/files_texteditor/releases/download/v2.15.0/files_texteditor.tar.gz", + "version": "2.15.0", + "description": "This application enables Nextcloud users to open, save and edit text files in the web browser. If enabled, an entry called \"Text file\" in the \"New\" button menu at the top of the web browser appears. When clicked, a new text file opens in the browser and the file can be saved into the current Nextcloud directory. Further, when a text file is clicked in the web browser, it will be opened and editable. If the privileges allow, a user can also edit shared files and save these changes back into the web browser.\nMore information is available in the text editor documentation.", + "homepage": "https://github.com/nextcloud/files_texteditor", + "licenses": [ + "agpl" + ] + }, + "forms": { + "sha256": "1hjdwhhx5p9n185b5v0vbxhnarcm83r52hsqq7qwfcfpy86axafr", + "url": "https://github.com/nextcloud/forms/releases/download/v3.2.0/forms.tar.gz", + "version": "3.2.0", + "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **πŸ“ Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **πŸ“Š View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **πŸ”’ Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **πŸ§‘β€πŸ’» Connect to your software:** Easily integrate Forms into your service with our full-fledged [REST-API](https://github.com/nextcloud/forms/blob/main/docs/API.md).\n- **πŸ™‹ Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!", + "homepage": "https://github.com/nextcloud/forms", + "licenses": [ + "agpl" + ] + }, + "groupfolders": { + "sha256": "0v54642rqlgmcncjrwf5bizj0a816l70k8ndfa68hkypbyp4yxm0", + "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v14.0.0/groupfolders-v14.0.0.tar.gz", + "version": "14.0.0", + "description": "Admin configured folders shared with everyone in a group.\n\nFolders can be configured from *Group folders* in the admin settings.\n\nAfter a folder is created, the admin can give access to the folder to one or more groups, control their write/sharing permissions and assign a quota for the folder.\n\nNote: Encrypting the contents of group folders is currently not supported.", + "homepage": "https://github.com/nextcloud/groupfolders", + "licenses": [ + "agpl" + ] + }, + "impersonate": { + "sha256": "0x5ap5s9qm4lffb022yxx1fmpgjk1w2y95cja4zfd5vc70d37r0s", + "url": "https://github.com/nextcloud-releases/impersonate/releases/download/v1.13.0/impersonate-v1.13.0.tar.gz", + "version": "1.13.0", + "description": "By installing the impersonate app of your Nextcloud you enable administrators to impersonate other users on the Nextcloud server. This is especially useful for debugging issues reported by users.\n\nTo impersonate a user an administrator has to simply follow the following four steps:\n\n1. Login as administrator to Nextcloud.\n2. Open users administration interface.\n3. Select the impersonate button on the affected user.\n4. Confirm the impersonation.\n\nThe administrator is then logged-in as the user, to switch back to the regular user account they simply have to press the logout button.\n\n**Note:**\n\n- This app is not compatible with instances that have encryption enabled.\n- While impersonate actions are logged note that actions performed impersonated will be logged as the impersonated user.\n- Impersonating a user is only possible after their first login.", + "homepage": "https://github.com/nextcloud/impersonate", + "licenses": [ + "agpl" + ] + }, + "mail": { + "sha256": "0lx8s7bb0w7d5kvn0np2p4rjjpajbhxf55qqp8ixfjkdcn6gkkxj", + "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.0.0/mail-v3.0.0.tar.gz", + "version": "3.0.0", + "description": "**πŸ’Œ A mail app for Nextcloud**\n\n- **πŸš€ Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **πŸ“₯ Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **πŸ”’ Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **πŸ™ˆ We’re not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **πŸ“¬ Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!", + "homepage": "https://github.com/nextcloud/mail#readme", + "licenses": [ + "agpl" + ] + }, + "news": { + "sha256": "026ggjf6dqbjv8hnj6jj1nnqz0256ck2yg13zhln7zc84lhfzlfd", + "url": "https://github.com/nextcloud/news/releases/download/21.1.0/news.tar.gz", + "version": "21.1.0", + "description": "πŸ“° A RSS/Atom Feed reader App for Nextcloud\n\n- πŸ“² Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- πŸ”„ Automatic updates of your news feeds\n- πŸ†“ Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)", + "homepage": "https://github.com/nextcloud/news", + "licenses": [ + "agpl" + ] + }, + "notes": { + "sha256": "19875sl3wpwnq2wrblfyyxhrp7hpqwazrnmz037yd1vf43crw03d", + "url": "https://github.com/nextcloud-releases/notes/releases/download/v4.7.0/notes.tar.gz", + "version": "4.7.0", + "description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/nextcloud/notes-android), [iOS](https://github.com/nextcloud/notes-ios) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.", + "homepage": "https://github.com/nextcloud/notes", + "licenses": [ + "agpl" + ] + }, + "notify_push": { + "sha256": "1vfa68spnyfivcx0vp49mimf5xg7hsxnifd06imd1c0mw3nlfm4p", + "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.0/notify_push-v0.6.0.tar.gz", + "version": "0.6.0", + "description": "Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions", + "homepage": "", + "licenses": [ + "agpl" + ] + }, + "onlyoffice": { + "sha256": "10axh9a4w8y3iw95xdjn4q8wjg5459dki42xb6cax5ikimyfv07j", + "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v7.8.0/onlyoffice.tar.gz", + "version": "7.8.0", + "description": "ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.", + "homepage": "https://www.onlyoffice.com", + "licenses": [ + "apache" + ] + }, + "polls": { + "sha256": "12298sspxp0ap61z2fjlgnd30fn0gl92xa5m6rnx2jb5i39lh9wr", + "url": "https://github.com/nextcloud/polls/releases/download/v5.0.0-beta4/polls.tar.gz", + "version": "5.0.0-beta4", + "description": "A polls app, similar to Doodle/Dudle with the possibility to restrict access (members, certain groups/users, hidden and public).", + "homepage": "https://github.com/nextcloud/polls", + "licenses": [ + "agpl" + ] + }, + "registration": { + "sha256": "07dqc670qmdb3c8jjnj7azxxspjhiv6m9nrj960y3rjabyzy25m9", + "url": "https://github.com/nextcloud-releases/registration/releases/download/v2.1.0/registration-v2.1.0.tar.gz", + "version": "2.1.0", + "description": "User registration\n\nThis app allows users to register a new account.\n\n# Features\n\n- Add users to a given group\n- Allow-list with email domains (including wildcard) to register with\n- Administrator will be notified via email for new user creation or require approval\n- Supports Nextcloud's Client Login Flow v1 and v2 - allowing registration in the mobile Apps and Desktop clients\n\n# Web form registration flow\n\n1. User enters their email address\n2. Verification link is sent to the email address\n3. User clicks on the verification link\n4. User is lead to a form where they can choose their username and password\n5. New account is created and is logged in automatically", + "homepage": "https://github.com/nextcloud/registration", + "licenses": [ + "agpl" + ] + }, + "spreed": { + "sha256": "0i5n47j8hvngfkiad88j5m37frp3bp4w5r7qaram5dvxmm2rkngc", + "url": "https://github.com/nextcloud-releases/spreed/releases/download/v16.0.0/spreed-v16.0.0.tar.gz", + "version": "16.0.0", + "description": "Chat, video & audio-conferencing using WebRTC\n\n* πŸ’¬ **Chat integration!** Nextcloud Talk comes with a simple text chat. Allowing you to share files from your Nextcloud and mentioning other participants.\n* πŸ‘₯ **Private, group, public and password protected calls!** Just invite somebody, a whole group or send a public link to invite to a call.\n* πŸ’» **Screen sharing!** Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this [Chrome extension](https://chrome.google.com/webstore/detail/screensharing-for-nextclo/kepnpjhambipllfmgmbapncekcmabkol)).\n* πŸš€ **Integration with other Nextcloud apps** like Files, Contacts and Deck. More to come.\n\nAnd in the works for the [coming versions](https://github.com/nextcloud/spreed/milestones/):\n* βœ‹ [Federated calls](https://github.com/nextcloud/spreed/issues/21), to call people on other Nextclouds", + "homepage": "https://github.com/nextcloud/spreed", + "licenses": [ + "agpl" + ] + }, + "tasks": { + "sha256": "0jm13d6nm7cfsw27yfiq1il9xjlh0qrq8xby2yz9dmggn7lk1dx5", + "url": "https://github.com/nextcloud/tasks/releases/download/v0.14.5/tasks.tar.gz", + "version": "0.14.5", + "description": "Once enabled, a new Tasks menu will appear in your Nextcloud apps menu. From there you can add and delete tasks, edit their title, description, start and due dates and mark them as important. Tasks can be shared between users. Tasks can be synchronized using CalDav (each task list is linked to an Nextcloud calendar, to sync it to your local client: Thunderbird, Evolution, KDE Kontact, iCal … - just add the calendar as a remote calendar in your client). You can download your tasks as ICS files using the download button for each calendar.", + "homepage": "https://github.com/nextcloud/tasks/", + "licenses": [ + "agpl" + ] + }, + "twofactor_nextcloud_notification": { + "sha256": "13afyhiy7yk0fcf32792dwabjcixnw5b4hkxykw0xby3hnh0m3l2", + "url": "https://github.com/nextcloud-releases/twofactor_nextcloud_notification/releases/download/v3.6.0/twofactor_nextcloud_notification-v3.6.0.tar.gz", + "version": "3.6.0", + "description": "Allows using any of your logged in devices as second factor", + "homepage": "https://github.com/nextcloud/twofactor_nextcloud_notification", + "licenses": [ + "agpl" + ] + }, + "twofactor_webauthn": { + "sha256": "1f5zamydsl7lr91md2qmz0wzsfvs8q05qpn96x6i7c6886vx18xf", + "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.1.2/twofactor_webauthn-v1.1.2.tar.gz", + "version": "1.1.2", + "description": "A two-factor provider for WebAuthn devices", + "homepage": "https://github.com/nextcloud/twofactor_webauthn#readme", + "licenses": [ + "agpl" + ] + }, + "unsplash": { + "sha256": "0zakbrgjc3i6rl0nqwxfsfwybbqpr50c8c10d6s7r9m4gck0y2bm", + "url": "https://github.com/nextcloud/unsplash/releases/download/v2.2.0/unsplash.tar.gz", + "version": "2.2.0", + "description": "Show a new random featured nature photo in your nextcloud. Now with choosable motives!", + "homepage": "https://github.com/nextcloud/unsplash/", + "licenses": [ + "agpl" + ] + } +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6cd57720589e..a14b68784ea4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10269,6 +10269,9 @@ with pkgs; nextcloud25Packages = ( callPackage ../servers/nextcloud/packages { apps = lib.importJSON ../servers/nextcloud/packages/25.json; }); + nextcloud26Packages = ( callPackage ../servers/nextcloud/packages { + apps = lib.importJSON ../servers/nextcloud/packages/26.json; + }); nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { }; From 9a33d7d9db618ff2fdd213c1b3aca4fcc40e3e64 Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Tue, 21 Mar 2023 16:49:19 +0100 Subject: [PATCH 03/10] nextcloud25Packages: update at various --- pkgs/servers/nextcloud/packages/25.json | 68 ++++++++++++++----------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/pkgs/servers/nextcloud/packages/25.json b/pkgs/servers/nextcloud/packages/25.json index b0c271b54f19..653807333b72 100644 --- a/pkgs/servers/nextcloud/packages/25.json +++ b/pkgs/servers/nextcloud/packages/25.json @@ -1,8 +1,8 @@ { "bookmarks": { - "sha256": "0dkfjafbynkrymsq183sad7zynqr2qls0cld73nvzn3smnvdl2xx", - "url": "https://github.com/nextcloud/bookmarks/releases/download/v12.0.0/bookmarks-12.0.0.tar.gz", - "version": "12.0.0", + "sha256": "1kdpma5f3rb9g29j364lqv6bkar5qgwlvcxmhpmzllwlkmjpc9w8", + "url": "https://github.com/nextcloud/bookmarks/releases/download/v12.1.0/bookmarks-12.1.0.tar.gz", + "version": "12.1.0", "description": "- πŸ“‚ Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- πŸ” Full-text search\n- πŸ“² Synchronize with all your browsers and devices\n- πŸ‘ͺ Share bookmarks with other users and publicly\n- ☠ Find broken links\n- βš› Generate RSS feeds of your collections\n- πŸ“” Read archived versions of your links in case they are depublished\n- πŸ’¬ Create new bookmarks directly from within Nextcloud Talk\n- πŸ’Ό Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP v7.4+\n - PHP extensions:\n - intl: *\n - mbstring: *\n - when using MySQL, use at least v8.0", "homepage": "https://github.com/nextcloud/bookmarks", "licenses": [ @@ -10,9 +10,9 @@ ] }, "calendar": { - "sha256": "0m0ixj4gaaqgnlk492ihkcxrxbww91jyalh40hdgnsryb9wrpkfp", - "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.3.0-alpha1/calendar-v4.3.0-alpha1.tar.gz", - "version": "4.3.0-alpha.1", + "sha256": "18jlj2g2b57ibcvqiw3pkkky4rr20xi5plyxl1xjn2bp9l3hng4y", + "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.3.0/calendar-v4.3.0.tar.gz", + "version": "4.3.0", "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* πŸš€ **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* πŸ™‹ **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* πŸ” Search! Find your events at ease\n* β˜‘οΈ Tasks! See tasks with a due date directly in the calendar\n* πŸ™ˆ **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.", "homepage": "https://github.com/nextcloud/calendar/", "licenses": [ @@ -20,9 +20,9 @@ ] }, "contacts": { - "sha256": "1m00r6cpqyrg2b0p8hg4wqkb3wn643fy63ax7qksp39rn18smrwk", - "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.1.0/contacts-v5.1.0.tar.gz", - "version": "5.1.0", + "sha256": "1rdql3m7pg9m044hppyrm3xw329y8h0pzwcmpcinjbjs0vqjssxk", + "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.2.0/contacts-v5.2.0.tar.gz", + "version": "5.2.0", "description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* πŸš€ **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* πŸŽ‰ **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* πŸ‘₯ **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* πŸ™ˆ **We’re not reinventing the wheel!** Based on the great and open SabreDAV library.", "homepage": "https://github.com/nextcloud/contacts#readme", "licenses": [ @@ -50,10 +50,10 @@ ] }, "forms": { - "sha256": "0b2qvrnhsxdknlc8bpr4hmxqdk18f9vy8ry6nm49k4lbrsfg97nq", - "url": "https://github.com/nextcloud/forms/releases/download/v3.1.0/forms.tar.gz", - "version": "3.1.0", - "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **πŸ“ Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **πŸ“Š View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **πŸ”’ Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **πŸ™‹ Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!", + "sha256": "1hjdwhhx5p9n185b5v0vbxhnarcm83r52hsqq7qwfcfpy86axafr", + "url": "https://github.com/nextcloud/forms/releases/download/v3.2.0/forms.tar.gz", + "version": "3.2.0", + "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **πŸ“ Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **πŸ“Š View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **πŸ”’ Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **πŸ§‘β€πŸ’» Connect to your software:** Easily integrate Forms into your service with our full-fledged [REST-API](https://github.com/nextcloud/forms/blob/main/docs/API.md).\n- **πŸ™‹ Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!", "homepage": "https://github.com/nextcloud/forms", "licenses": [ "agpl" @@ -69,6 +69,16 @@ "agpl" ] }, + "impersonate": { + "sha256": "1whngpqx4b2vdsr8a9j8agdg2c8rm5rbk2vhh92myws55lqlbnz9", + "url": "https://github.com/nextcloud-releases/impersonate/releases/download/v1.12.0/impersonate-v1.12.0.tar.gz", + "version": "1.12.0", + "description": "By installing the impersonate app of your Nextcloud you enable administrators to impersonate other users on the Nextcloud server. This is especially useful for debugging issues reported by users.\n\nTo impersonate a user an administrator has to simply follow the following four steps:\n\n1. Login as administrator to Nextcloud.\n2. Open users administration interface.\n3. Select the impersonate button on the affected user.\n4. Confirm the impersonation.\n\nThe administrator is then logged-in as the user, to switch back to the regular user account they simply have to press the logout button.\n\n**Note:**\n\n- This app is not compatible with instances that have encryption enabled.\n- While impersonate actions are logged note that actions performed impersonated will be logged as the impersonated user.\n- Impersonating a user is only possible after their first login.", + "homepage": "https://github.com/nextcloud/impersonate", + "licenses": [ + "agpl" + ] + }, "keeweb": { "sha256": "1g6bjbzk7rf9x7cblwsc7cmd3fx5zrkib5ra5xzsmqc9aqpy22zh", "url": "https://github.com/jhass/nextcloud-keeweb/releases/download/v0.6.10/keeweb-0.6.10.tar.gz", @@ -80,9 +90,9 @@ ] }, "mail": { - "sha256": "161ksx7g32fkpwxq3vij2vw6sxblv7xrxggsxnx2wj14ik3wxclv", - "url": "https://github.com/nextcloud-releases/mail/releases/download/v2.3.0-alpha.4/mail-v2.3.0-alpha.4.tar.gz", - "version": "2.3.0-alpha.4", + "sha256": "0sk19y9iwnbw6ci4hq9xxrn5qgnlgqlb5hpzc50i706s1z5n9cmc", + "url": "https://github.com/nextcloud-releases/mail/releases/download/v2.2.4/mail-v2.2.4.tar.gz", + "version": "2.2.4", "description": "**πŸ’Œ A mail app for Nextcloud**\n\n- **πŸš€ Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **πŸ“₯ Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **πŸ”’ Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **πŸ™ˆ We’re not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **πŸ“¬ Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!", "homepage": "https://github.com/nextcloud/mail#readme", "licenses": [ @@ -90,9 +100,9 @@ ] }, "news": { - "sha256": "17kz5499jkv43w8wcd1p982hpkw2akgzpv9cjj8qqjhvzv4qr171", - "url": "https://github.com/nextcloud/news/releases/download/21.0.0-beta1/news.tar.gz", - "version": "21.0.0-beta1", + "sha256": "1i7avq4iliz8afrwc9hw7hb13g3223004b2dim7j77l3zsvkfq3h", + "url": "https://github.com/nextcloud/news/releases/download/21.1.0-beta1/news.tar.gz", + "version": "21.1.0-beta1", "description": "πŸ“° A RSS/Atom Feed reader App for Nextcloud\n\n- πŸ“² Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- πŸ”„ Automatic updates of your news feeds\n- πŸ†“ Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)", "homepage": "https://github.com/nextcloud/news", "licenses": [ @@ -120,9 +130,9 @@ ] }, "onlyoffice": { - "sha256": "0gy4n86q7b5qmy609ncibp94v1b3z9msc0129572qz2zyxfqxq3i", - "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v7.6.8/onlyoffice.tar.gz", - "version": "7.6.8", + "sha256": "10axh9a4w8y3iw95xdjn4q8wjg5459dki42xb6cax5ikimyfv07j", + "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v7.8.0/onlyoffice.tar.gz", + "version": "7.8.0", "description": "ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.", "homepage": "https://www.onlyoffice.com", "licenses": [ @@ -130,9 +140,9 @@ ] }, "polls": { - "sha256": "0mqc9zmxrm98byy6v13si3hwii8hx85998c4kv91vk6ad0sfxjhb", - "url": "https://github.com/nextcloud/polls/releases/download/v4.1.2/polls.tar.gz", - "version": "4.1.2", + "sha256": "12298sspxp0ap61z2fjlgnd30fn0gl92xa5m6rnx2jb5i39lh9wr", + "url": "https://github.com/nextcloud/polls/releases/download/v5.0.0-beta4/polls.tar.gz", + "version": "5.0.0-beta4", "description": "A polls app, similar to Doodle/Dudle with the possibility to restrict access (members, certain groups/users, hidden and public).", "homepage": "https://github.com/nextcloud/polls", "licenses": [ @@ -153,7 +163,7 @@ "sha256": "0pav5xcnj55vs04fm1fc2kpaz46k0rdlvv7xn6idwgh860anzp4g", "url": "https://github.com/nextcloud-releases/spreed/releases/download/v15.0.4/spreed-v15.0.4.tar.gz", "version": "15.0.4", - "description": "Chat, video & audio-conferencing using WebRTC\n\n* πŸ’¬ **Chat integration!** Nextcloud Talk comes with a simple text chat. Allowing you to share files from your Nextcloud and mentioning other participants.\n* πŸ‘₯ **Private, group, public and password protected calls!** Just invite somebody, a whole group or send a public link to invite to a call.\n* πŸ’» **Screen sharing!** Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this [Chrome extension](https://chrome.google.com/webstore/detail/screensharing-for-nextclo/kepnpjhambipllfmgmbapncekcmabkol)).\n* πŸš€ **Integration with other Nextcloud apps** like Files, Contacts and Deck. More to come.\n\nAnd in the works for the [coming versions](https://github.com/nextcloud/spreed/milestones/):\n* βœ‹ [Federated calls](https://github.com/nextcloud/spreed/issues/21), to call people on other Nextclouds", + "description": "Chat, video & audio-conferencing using WebRTC\r\n\r\n* πŸ’¬ **Chat integration!** Nextcloud Talk comes with a simple text chat. Allowing you to share files from your Nextcloud and mentioning other participants.\r\n* πŸ‘₯ **Private, group, public and password protected calls!** Just invite somebody, a whole group or send a public link to invite to a call.\r\n* πŸ’» **Screen sharing!** Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this [Chrome extension](https://chrome.google.com/webstore/detail/screensharing-for-nextclo/kepnpjhambipllfmgmbapncekcmabkol)).\r\n* πŸš€ **Integration with other Nextcloud apps** like Files, Contacts and Deck. More to come.\r\n\r\nAnd in the works for the [coming versions](https://github.com/nextcloud/spreed/milestones/):\r\n* βœ‹ [Federated calls](https://github.com/nextcloud/spreed/issues/21), to call people on other Nextclouds", "homepage": "https://github.com/nextcloud/spreed", "licenses": [ "agpl" @@ -190,9 +200,9 @@ ] }, "twofactor_webauthn": { - "sha256": "00nll7jfrmqw537r0g07yq7g9lh1kckiiigxgwyd4nh5j6f56v15", - "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.1.1/twofactor_webauthn-v1.1.1.tar.gz", - "version": "1.1.1", + "sha256": "1f5zamydsl7lr91md2qmz0wzsfvs8q05qpn96x6i7c6886vx18xf", + "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.1.2/twofactor_webauthn-v1.1.2.tar.gz", + "version": "1.1.2", "description": "A two-factor provider for WebAuthn devices", "homepage": "https://github.com/nextcloud/twofactor_webauthn#readme", "licenses": [ From 2f9c4a7e7449e69f76fb57366b6d3f7813589007 Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Tue, 21 Mar 2023 16:49:27 +0100 Subject: [PATCH 04/10] nextcloud24Packages: update at various --- pkgs/servers/nextcloud/packages/24.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pkgs/servers/nextcloud/packages/24.json b/pkgs/servers/nextcloud/packages/24.json index ebafd2b4df8a..018bdb00b14a 100644 --- a/pkgs/servers/nextcloud/packages/24.json +++ b/pkgs/servers/nextcloud/packages/24.json @@ -63,7 +63,7 @@ "sha256": "1payxppd2j0n67kcswb3dkk2a467fahwakxs7wqsfqgqgr9mcbl4", "url": "https://github.com/nextcloud/forms/releases/download/v2.5.2/forms.tar.gz", "version": "2.5.2", - "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **πŸ“ Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **πŸ“Š View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **πŸ”’ Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **πŸ™‹ Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!", + "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **πŸ“ Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **πŸ“Š View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **πŸ”’ Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **πŸ§‘β€πŸ’» Connect to your software:** Easily integrate Forms into your service with our full-fledged [REST-API](https://github.com/nextcloud/forms/blob/main/docs/API.md).\n- **πŸ™‹ Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!", "homepage": "https://github.com/nextcloud/forms", "licenses": [ "agpl" @@ -80,10 +80,10 @@ ] }, "impersonate": { - "sha256": "1k1qm3jilys548g813y179x6rs8aglkvss8b0cmfvjlpmlaxpssx", - "url": "https://github.com/nextcloud-releases/impersonate/releases/download/v1.11.0/impersonate-v1.11.0.tar.gz", - "version": "1.11.0", - "description": "By installing the impersonate app of your Nextcloud you enable administrators to impersonate other users on the Nextcloud server. This is especially useful for debugging issues reported by users.\n\nTo impersonate a user an administrator has to simply follow the following four steps:\n\n1. Login as administrator to Nextcloud\n2. Open the user administration interface\n3. Select the impersonate button on the affected user\n4. Confirm the impersonation\n\nThe administrator is then logged-in as the user, to switch back to the regular user account they simply have to press the logout button.\n\n**Note:**\n\n- This app is not compatible with instances that have encryption enabled.\n- While impersonate actions are logged note that actions performed impersonated will be logged as the impersonated user.\n- Impersonating a user is only possible after their first login.", + "sha256": "1kjibw5rigij51j6vjmx7ykrk61lg98syp7kkr0fzgwzvxrdniah", + "url": "https://github.com/nextcloud-releases/impersonate/releases/download/v1.11.1/impersonate-v1.11.1.tar.gz", + "version": "1.11.1", + "description": "By installing the impersonate app of your Nextcloud you enable administrators to impersonate other users on the Nextcloud server. This is especially useful for debugging issues reported by users.\n\nTo impersonate a user an administrator has to simply follow the following four steps:\n\n1. Login as administrator to Nextcloud.\n2. Open users administration interface.\n3. Select the impersonate button on the affected user.\n4. Confirm the impersonation.\n\nThe administrator is then logged-in as the user, to switch back to the regular user account they simply have to press the logout button.\n\n**Note:**\n\n- This app is not compatible with instances that have encryption enabled.\n- While impersonate actions are logged note that actions performed impersonated will be logged as the impersonated user.\n- Impersonating a user is only possible after their first login.", "homepage": "https://github.com/nextcloud/impersonate", "licenses": [ "agpl" @@ -110,9 +110,9 @@ ] }, "news": { - "sha256": "17kz5499jkv43w8wcd1p982hpkw2akgzpv9cjj8qqjhvzv4qr171", - "url": "https://github.com/nextcloud/news/releases/download/21.0.0-beta1/news.tar.gz", - "version": "21.0.0-beta1", + "sha256": "026ggjf6dqbjv8hnj6jj1nnqz0256ck2yg13zhln7zc84lhfzlfd", + "url": "https://github.com/nextcloud/news/releases/download/21.1.0/news.tar.gz", + "version": "21.1.0", "description": "πŸ“° A RSS/Atom Feed reader App for Nextcloud\n\n- πŸ“² Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- πŸ”„ Automatic updates of your news feeds\n- πŸ†“ Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)", "homepage": "https://github.com/nextcloud/news", "licenses": [ @@ -123,7 +123,7 @@ "sha256": "adddee56456d0115f87a74405a6d62bd5e3af256e86199d87bbff3b2a6876299", "url": "https://github.com/nextcloud/notes/releases/download/v4.5.1/notes.tar.gz", "version": "4.5.1", - "description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/stefan-niedermann/nextcloud-notes), [iOS](https://github.com/owncloud/notes-iOS-App) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.", + "description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/nextcloud/notes-android), [iOS](https://github.com/nextcloud/notes-ios) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.", "homepage": "https://github.com/nextcloud/notes", "licenses": [ "agpl" @@ -140,9 +140,9 @@ ] }, "onlyoffice": { - "sha256": "6117b7b8c5c7133975e4ebf482814cdcd3f94a1b3c76ea1b5eed47bdd1fbfcbb", - "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v7.5.8/onlyoffice.tar.gz", - "version": "7.5.8", + "sha256": "0hscbm7jcnxyg7ib0g16b0sw8nz7rl6qzx90qmki5knhzrf6hf1j", + "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v7.7.0/onlyoffice.tar.gz", + "version": "7.7.0", "description": "ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.", "homepage": "https://www.onlyoffice.com", "licenses": [ From 5e5c4c975ab71e3970d2ad827f710711cca44a86 Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Tue, 21 Mar 2023 16:54:17 +0100 Subject: [PATCH 05/10] nixos/web-apps/nextcloud: introduce nextcloud26 --- nixos/modules/services/web-apps/nextcloud.nix | 6 ++++-- nixos/tests/nextcloud/default.nix | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index 71cb53fb398b..02d47749a1c0 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -673,7 +673,7 @@ in { config = mkIf cfg.enable (mkMerge [ { warnings = let - latest = 25; + latest = 26; upgradeWarning = major: nixos: '' A legacy Nextcloud install (from before NixOS ${nixos}) may be installed. @@ -709,6 +709,7 @@ in { ++ (optional (versionOlder cfg.package.version "23") (upgradeWarning 22 "22.05")) ++ (optional (versionOlder cfg.package.version "24") (upgradeWarning 23 "22.05")) ++ (optional (versionOlder cfg.package.version "25") (upgradeWarning 24 "22.11")) + ++ (optional (versionOlder cfg.package.version "26") (upgradeWarning 25 "23.05")) ++ (optional cfg.enableBrokenCiphersForSSE '' You're using PHP's openssl extension built against OpenSSL 1.1 for Nextcloud. This is only necessary if you're using Nextcloud's server-side encryption. @@ -747,7 +748,8 @@ in { `pkgs.nextcloud`. '' else if versionOlder stateVersion "22.11" then nextcloud24 - else nextcloud25 + else if versionOlder stateVersion "23.05" then nextcloud25 + else nextcloud26 ); services.nextcloud.phpPackage = diff --git a/nixos/tests/nextcloud/default.nix b/nixos/tests/nextcloud/default.nix index b8d3ba75b51a..350486e8c733 100644 --- a/nixos/tests/nextcloud/default.nix +++ b/nixos/tests/nextcloud/default.nix @@ -26,4 +26,4 @@ foldl }; }) { } - [ 24 25 ] + [ 24 25 26 ] From d7a27b38a26b2d4fc6a3cb26a7c92ae2e9eaac5d Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Tue, 21 Mar 2023 17:26:03 +0100 Subject: [PATCH 06/10] =?UTF-8?q?nixos/tests/nextcloud:=20do=20not=20expec?= =?UTF-8?q?t=20failure=20on=20NC=20=E2=89=A526=20with=20respect=20to=20RC4?= =?UTF-8?q?=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nixos/tests/nextcloud/openssl-sse.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nixos/tests/nextcloud/openssl-sse.nix b/nixos/tests/nextcloud/openssl-sse.nix index 7595ee2c67e3..cf7187323ab5 100644 --- a/nixos/tests/nextcloud/openssl-sse.nix +++ b/nixos/tests/nextcloud/openssl-sse.nix @@ -55,6 +55,7 @@ in { nextcloudwithopenssl1.wait_for_unit("multi-user.target") nextcloudwithopenssl1.succeed("nextcloud-occ status") nextcloudwithopenssl1.succeed("curl -sSf http://nextcloudwithopenssl1/login") + nextcloud_version = ${toString nextcloudVersion} with subtest("With OpenSSL 1 SSE can be enabled and used"): nextcloudwithopenssl1.succeed("nextcloud-occ app:enable encryption") @@ -71,12 +72,15 @@ in { nextcloudwithopenssl1.succeed("nextcloud-occ status") with subtest("Existing encrypted files cannot be read, but new files can be added"): - nextcloudwithopenssl1.fail("${withRcloneEnv3} ${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file >&2") + # This will succed starting NC26 because of their custom implementation of openssl_seal + read_existing_file_test = nextcloudwithopenssl1.fail if nextcloud_version < 26 else nextcloudwithopenssl1.succeed + read_existing_file_test("${withRcloneEnv3} ${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file >&2") nextcloudwithopenssl1.succeed("nextcloud-occ encryption:disable") nextcloudwithopenssl1.succeed("${copySharedFile3}") nextcloudwithopenssl1.succeed("grep bye /var/lib/nextcloud/data/root/files/test-shared-file2") nextcloudwithopenssl1.succeed("${withRcloneEnv3} ${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file2 | grep bye") + with subtest("Switch back to OpenSSL 1.1 and ensure that encrypted files are readable again"): nextcloudwithopenssl1.succeed("${openssl1-node}/bin/switch-to-configuration test") nextcloudwithopenssl1.wait_for_open_port(80) From dd96b7d8b4791474e9a14ce1947db1b0d75e8dbc Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Tue, 21 Mar 2023 17:34:23 +0100 Subject: [PATCH 07/10] nextcloud26, nixos/web-apps/nextcloud: drop the autocreate db user patch and wire the default in the NixOS module --- nixos/modules/services/web-apps/nextcloud.nix | 3 + pkgs/servers/nextcloud/default.nix | 3 +- ...move-custom-dbuser-creation-behavior.patch | 157 ------------------ 3 files changed, 5 insertions(+), 158 deletions(-) delete mode 100644 pkgs/servers/nextcloud/patches/v26/0001-Setup-remove-custom-dbuser-creation-behavior.patch diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index 02d47749a1c0..4bc6f8fe8525 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -982,6 +982,9 @@ in { ''; serviceConfig.Type = "oneshot"; serviceConfig.User = "nextcloud"; + # On Nextcloud β‰₯Β 26, it is not necessary to patch the database files to prevent + # an automatic creation of the database user. + environment.NC_setup_create_db_user = lib.mkIf (nextcloudGreaterOrEqualThan "26") "false"; }; nextcloud-cron = { after = [ "nextcloud-setup.service" ]; diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix index fabf4864be2d..c70f7f678932 100644 --- a/pkgs/servers/nextcloud/default.nix +++ b/pkgs/servers/nextcloud/default.nix @@ -15,7 +15,8 @@ let inherit sha256; }; - patches = [ (./patches + "/v${major}/0001-Setup-remove-custom-dbuser-creation-behavior.patch") ]; + # This patch is only necessary for NC version <26. + patches = lib.optional (lib.versionOlder major "26") (./patches + "/v${major}/0001-Setup-remove-custom-dbuser-creation-behavior.patch"); passthru.tests = nixosTests.nextcloud; diff --git a/pkgs/servers/nextcloud/patches/v26/0001-Setup-remove-custom-dbuser-creation-behavior.patch b/pkgs/servers/nextcloud/patches/v26/0001-Setup-remove-custom-dbuser-creation-behavior.patch deleted file mode 100644 index 63177d3162f7..000000000000 --- a/pkgs/servers/nextcloud/patches/v26/0001-Setup-remove-custom-dbuser-creation-behavior.patch +++ /dev/null @@ -1,157 +0,0 @@ -From 2e32658e52e196ef2e3ef671606da9131f0079d9 Mon Sep 17 00:00:00 2001 -From: Raito Bezarius -Date: Tue, 21 Mar 2023 16:38:29 +0100 -Subject: [PATCH] Setup: remove custom dbuser creation behavior - -Both PostgreSQL and MySQL can be authenticated against from Nextcloud by -supplying a database password. Now, during setup the following things -happen: - -* When using postgres and the db user has elevated permissions, a new - unprivileged db user is created and the settings `dbuser`/`dbpass` are - altered in `config.php`. - -* When using MySQL, the password is **always** regenerated since - 24.0.5/23.0.9[1]. - -I consider both cases problematic: the reason why people do configuration -management is to have it as single source of truth! So, IMHO any -application that silently alters config and thus causes deployed -nodes to diverge from the configuration is harmful for that. - -I guess it was sheer luck that it worked for so long in NixOS because -nobody has apparently used password authentication with a privileged -user to operate Nextcloud (which is a good thing in fact). - -[1] https://github.com/nextcloud/server/pull/33513 - -Original-Author: Maximilian Bosch ---- - lib/private/Setup/MySQL.php | 61 +++----------------------------- - lib/private/Setup/PostgreSQL.php | 39 -------------------- - 2 files changed, 4 insertions(+), 96 deletions(-) - -diff --git a/lib/private/Setup/MySQL.php b/lib/private/Setup/MySQL.php -index 50f566728a9..ce721415e30 100644 ---- a/lib/private/Setup/MySQL.php -+++ b/lib/private/Setup/MySQL.php -@@ -145,62 +145,9 @@ class MySQL extends AbstractDatabase { - * @param IDBConnection $connection - */ - private function createSpecificUser($username, $connection): void { -- $rootUser = $this->dbUser; -- $rootPassword = $this->dbPassword; -- -- //create a random password so we don't need to store the admin password in the config file -- $saveSymbols = str_replace(['\"', '\\', '\'', '`'], '', ISecureRandom::CHAR_SYMBOLS); -- $password = $this->random->generate(22, ISecureRandom::CHAR_ALPHANUMERIC . $saveSymbols) -- . $this->random->generate(2, ISecureRandom::CHAR_UPPER) -- . $this->random->generate(2, ISecureRandom::CHAR_LOWER) -- . $this->random->generate(2, ISecureRandom::CHAR_DIGITS) -- . $this->random->generate(2, $saveSymbols); -- $this->dbPassword = str_shuffle($password); -- -- try { -- //user already specified in config -- $oldUser = $this->config->getValue('dbuser', false); -- -- //we don't have a dbuser specified in config -- if ($this->dbUser !== $oldUser) { -- //add prefix to the admin username to prevent collisions -- $adminUser = substr('oc_' . $username, 0, 16); -- -- $i = 1; -- while (true) { -- //this should be enough to check for admin rights in mysql -- $query = 'SELECT user FROM mysql.user WHERE user=?'; -- $result = $connection->executeQuery($query, [$adminUser]); -- -- //current dbuser has admin rights -- $data = $result->fetchAll(); -- $result->closeCursor(); -- //new dbuser does not exist -- if (count($data) === 0) { -- //use the admin login data for the new database user -- $this->dbUser = $adminUser; -- $this->createDBUser($connection); -- -- break; -- } else { -- //repeat with different username -- $length = strlen((string)$i); -- $adminUser = substr('oc_' . $username, 0, 16 - $length) . $i; -- $i++; -- } -- } -- } else { -- // Reuse existing password if a database config is already present -- $this->dbPassword = $rootPassword; -- } -- } catch (\Exception $ex) { -- $this->logger->info('Can not create a new MySQL user, will continue with the provided user.', [ -- 'exception' => $ex, -- 'app' => 'mysql.setup', -- ]); -- // Restore the original credentials -- $this->dbUser = $rootUser; -- $this->dbPassword = $rootPassword; -- } -+ $this->config->setValues([ -+ 'dbuser' => $this->dbUser, -+ 'dbpassword' => $this->dbPassword, -+ ]); - } - } -diff --git a/lib/private/Setup/PostgreSQL.php b/lib/private/Setup/PostgreSQL.php -index 490cbba69a9..48e7f24f260 100644 ---- a/lib/private/Setup/PostgreSQL.php -+++ b/lib/private/Setup/PostgreSQL.php -@@ -45,45 +45,6 @@ class PostgreSQL extends AbstractDatabase { - $connection = $this->connect([ - 'dbname' => 'postgres' - ]); -- if ($this->tryCreateDbUser) { -- //check for roles creation rights in postgresql -- $builder = $connection->getQueryBuilder(); -- $builder->automaticTablePrefix(false); -- $query = $builder -- ->select('rolname') -- ->from('pg_roles') -- ->where($builder->expr()->eq('rolcreaterole', new Literal('TRUE'))) -- ->andWhere($builder->expr()->eq('rolname', $builder->createNamedParameter($this->dbUser))); -- -- try { -- $result = $query->execute(); -- $canCreateRoles = $result->rowCount() > 0; -- } catch (DatabaseException $e) { -- $canCreateRoles = false; -- } -- -- if ($canCreateRoles) { -- $connectionMainDatabase = $this->connect(); -- //use the admin login data for the new database user -- -- //add prefix to the postgresql user name to prevent collisions -- $this->dbUser = 'oc_' . strtolower($username); -- //create a new password so we don't need to store the admin config in the config file -- $this->dbPassword = \OC::$server->getSecureRandom()->generate(30, ISecureRandom::CHAR_ALPHANUMERIC); -- -- $this->createDBUser($connection); -- -- // Go to the main database and grant create on the public schema -- // The code below is implemented to make installing possible with PostgreSQL version 15: -- // https://www.postgresql.org/docs/release/15.0/ -- // From the release notes: For new databases having no need to defend against insider threats, granting CREATE permission will yield the behavior of prior releases -- // Therefore we assume that the database is only used by one user/service which is Nextcloud -- // Additional services should get installed in a separate database in order to stay secure -- // Also see https://www.postgresql.org/docs/15/ddl-schemas.html#DDL-SCHEMAS-PATTERNS -- $connectionMainDatabase->executeQuery('GRANT CREATE ON SCHEMA public TO "' . addslashes($this->dbUser) . '"'); -- $connectionMainDatabase->close(); -- } -- } - - $this->config->setValues([ - 'dbuser' => $this->dbUser, --- -2.39.2 - From 6a0b0a5de9b563254ae886d9e1709acd43e612b5 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 22 Mar 2023 19:56:14 +0100 Subject: [PATCH 08/10] nextcloud: remove compat references to v23 This is not needed anymore because the version is EOL for almost a year now and we don't even have the packages anymore, only the attributes for compatibility for upgrades from older NixOS versions. --- nixos/modules/services/web-apps/nextcloud.nix | 35 +---- pkgs/servers/nextcloud/default.nix | 12 -- pkgs/servers/nextcloud/packages/23.json | 122 ------------------ pkgs/top-level/all-packages.nix | 5 +- 4 files changed, 2 insertions(+), 172 deletions(-) delete mode 100644 pkgs/servers/nextcloud/packages/23.json diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index 4bc6f8fe8525..f42375c3d50d 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -688,20 +688,6 @@ in { `services.nextcloud.package`. ''; - # FIXME(@Ma27) remove as soon as nextcloud properly supports - # mariadb >=10.6. - isUnsupportedMariadb = - # All currently supported Nextcloud versions are affected (https://github.com/nextcloud/server/issues/25436). - (versionOlder cfg.package.version "24") - # This module uses mysql - && (cfg.config.dbtype == "mysql") - # MySQL is managed via NixOS - && config.services.mysql.enable - # We're using MariaDB - && (getName config.services.mysql.package) == "mariadb-server" - # MariaDB is at least 10.6 and thus not supported - && (versionAtLeast (getVersion config.services.mysql.package) "10.6"); - in (optional (cfg.poolConfig != null) '' Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release. Please migrate your configuration to config.services.nextcloud.poolSettings. @@ -726,18 +712,7 @@ in { See on how to achieve this. For more context, here is the implementing pull request: https://github.com/NixOS/nixpkgs/pull/198470 - '') - ++ (optional isUnsupportedMariadb '' - You seem to be using MariaDB at an unsupported version (i.e. at least 10.6)! - Please note that this isn't supported officially by Nextcloud. You can either - - * Switch to `pkgs.mysql` - * Downgrade MariaDB to at least 10.5 - * Work around Nextcloud's problems by specifying `innodb_read_only_compressed=0` - - For further context, please read - https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/15 - ''); + ''); services.nextcloud.package = with pkgs; mkDefault ( @@ -1036,14 +1011,6 @@ in { name = cfg.config.dbuser; ensurePermissions = { "${cfg.config.dbname}.*" = "ALL PRIVILEGES"; }; }]; - # FIXME(@Ma27) Nextcloud isn't compatible with mariadb 10.6, - # this is a workaround. - # See https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/22 - settings = mkIf (versionOlder cfg.package.version "24") { - mysqld = { - innodb_read_only_compressed = 0; - }; - }; initialScript = pkgs.writeText "mysql-init" '' CREATE USER '${cfg.config.dbname}'@'localhost' IDENTIFIED BY '${builtins.readFile( cfg.config.dbpassFile )}'; CREATE DATABASE IF NOT EXISTS ${cfg.config.dbname}; diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix index c70f7f678932..b98da0d064eb 100644 --- a/pkgs/servers/nextcloud/default.nix +++ b/pkgs/servers/nextcloud/default.nix @@ -39,18 +39,6 @@ let }; }; in { - nextcloud23 = throw '' - Nextcloud v23 has been removed from `nixpkgs` as the support for is dropped - by upstream in 2022-12. Please upgrade to at least Nextcloud v24 by declaring - - services.nextcloud.package = pkgs.nextcloud24; - - in your NixOS config. - - WARNING: if you were on Nextcloud 22 on NixOS 22.05 you have to upgrade to Nextcloud 23 - first on 22.05 because Nextcloud doesn't support upgrades across multiple major versions! - ''; - nextcloud24 = generic { version = "24.0.10"; sha256 = "sha256-B6+0gO9wn39BpcR0IsIuMa81DH8TWuDOlTZR9O1qRbk="; diff --git a/pkgs/servers/nextcloud/packages/23.json b/pkgs/servers/nextcloud/packages/23.json deleted file mode 100644 index 38da1996aaf8..000000000000 --- a/pkgs/servers/nextcloud/packages/23.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "bookmarks": { - "sha256": "511aadcda0b1f051191c20cfd7048150536cfb1e748deb11b568bec4e535a173", - "url": "https://github.com/nextcloud/bookmarks/releases/download/v11.0.4/bookmarks-11.0.4.tar.gz", - "version": "11.0.4", - "description": "- πŸ“‚ Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- πŸ” Full-text search\n- πŸ“² Synchronize with all your browsers and devices\n- πŸ‘ͺ Share bookmarks with other users and publicly\n- ☠ Find broken links\n- βš› Generate RSS feeds of your collections\n- πŸ“” Read archived versions of your links in case they are depublished\n- πŸ’¬ Create new bookmarks directly from within Nextcloud Talk\n- πŸ’Ό Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP v7.4+\n - PHP extensions:\n - intl: *\n - mbstring: *\n - when using MySQL, use at least v8.0", - "homepage": "https://github.com/nextcloud/bookmarks", - "licenses": [ - "agpl" - ] - }, - "calendar": { - "sha256": "d6edc166d63204e39135c0e9f00c0f7a6875db89d34a936e16b513c749ac8b8d", - "url": "https://github.com/nextcloud-releases/calendar/releases/download/v3.5.2/calendar-v3.5.2.tar.gz", - "version": "3.5.2", - "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* πŸš€ **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* πŸ™‹ **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* πŸ” Search! Find your events at ease\n* β˜‘οΈ Tasks! See tasks with a due date directly in the calendar\n* πŸ™ˆ **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.", - "homepage": "https://github.com/nextcloud/calendar/", - "licenses": [ - "agpl" - ] - }, - "contacts": { - "sha256": "1938b266c5070573e0435ec31c08a19add96fd99c08c3c1f8309ee8e447093a0", - "url": "https://github.com/nextcloud-releases/contacts/releases/download/v4.2.2/contacts-v4.2.2.tar.gz", - "version": "4.2.2", - "description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* πŸš€ **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* πŸŽ‰ **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* πŸ‘₯ **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* πŸ™ˆ **We’re not reinventing the wheel!** Based on the great and open SabreDAV library.", - "homepage": "https://github.com/nextcloud/contacts#readme", - "licenses": [ - "agpl" - ] - }, - "deck": { - "sha256": "fd9ea1ce98c531c7442a784f693cb047d90fbaee313a820ee648f690697f5e13", - "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.6.4/deck-v1.6.4.tar.gz", - "version": "1.6.4", - "description": "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- πŸ“₯ Add your tasks to cards and put them in order\n- πŸ“„ Write down additional notes in markdown\n- πŸ”– Assign labels for even better organization\n- πŸ‘₯ Share with your team, friends or family\n- πŸ“Ž Attach files and embed them in your markdown description\n- πŸ’¬ Discuss with your team using comments\n- ⚑ Keep track of changes in the activity stream\n- πŸš€ Get your project organized", - "homepage": "https://github.com/nextcloud/deck", - "licenses": [ - "agpl" - ] - }, - "keeweb": { - "sha256": "a3281fcfdb4058971a3b5c838870a8d5b533445c999b8e921fb8758b216dadbc", - "url": "https://github.com/jhass/nextcloud-keeweb/releases/download/v0.6.10/keeweb-0.6.10.tar.gz", - "version": "0.6.10", - "description": "Open Keepass stores inside Nextcloud with Keeweb just by clicking on an *.kdbx file in your Nextcloud.", - "homepage": "https://github.com/jhass/nextcloud-keeweb", - "licenses": [ - "agpl" - ] - }, - "mail": { - "sha256": "0e2c5465436b894ac916222391d94d364592c18b4258fd3aa4b760afa8fa6ad7", - "url": "https://github.com/nextcloud-releases/mail/releases/download/v1.14.3.alpha.1/mail-v1.14.3.alpha.1.tar.gz", - "version": "1.14.3-alpha.1", - "description": "**πŸ’Œ A mail app for Nextcloud**\n\n- **πŸš€ Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **πŸ“₯ Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **πŸ”’ Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **πŸ™ˆ We’re not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **πŸ“¬ Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!", - "homepage": "https://github.com/nextcloud/mail#readme", - "licenses": [ - "agpl" - ] - }, - "news": { - "sha256": "9551781fdbfb6d2c3cd77ee57eae0fb1583c7b54e9720bc955053f51541f4a86", - "url": "https://github.com/nextcloud/news/releases/download/19.0.0/news.tar.gz", - "version": "19.0.0", - "description": "πŸ“° A RSS/Atom Feed reader App for Nextcloud\n\n- πŸ“² Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- πŸ”„ Automatic updates of your news feeds\n- πŸ†“ Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)", - "homepage": "https://github.com/nextcloud/news", - "licenses": [ - "agpl" - ] - }, - "notes": { - "sha256": "adddee56456d0115f87a74405a6d62bd5e3af256e86199d87bbff3b2a6876299", - "url": "https://github.com/nextcloud/notes/releases/download/v4.5.1/notes.tar.gz", - "version": "4.5.1", - "description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/stefan-niedermann/nextcloud-notes), [iOS](https://github.com/owncloud/notes-iOS-App) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.", - "homepage": "https://github.com/nextcloud/notes", - "licenses": [ - "agpl" - ] - }, - "onlyoffice": { - "sha256": "e7170f7cffb50547d51a17f0ad38dfab83040a25ebd80146a840d233093a27f0", - "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v7.4.8/onlyoffice.tar.gz", - "version": "7.4.8", - "description": "ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.", - "homepage": "https://www.onlyoffice.com", - "licenses": [ - "apache" - ] - }, - "polls": { - "sha256": "b6ef0e8b34cdb5169341e30340bc9cefaa1254a1a6020e951f86e828f8591a11", - "url": "https://github.com/nextcloud/polls/releases/download/v3.8.3/polls.tar.gz", - "version": "3.8.3", - "description": "A polls app, similar to Doodle/Dudle with the possibility to restrict access (members, certain groups/users, hidden and public).", - "homepage": "https://github.com/nextcloud/polls", - "licenses": [ - "agpl" - ] - }, - "tasks": { - "sha256": "fdfa3168ac80eaef3e2de5009eee02a369acc8d35dfd8283d1f25423bdf3c532", - "url": "https://github.com/nextcloud/tasks/releases/download/v0.14.5/tasks.tar.gz", - "version": "0.14.5", - "description": "Once enabled, a new Tasks menu will appear in your Nextcloud apps menu. From there you can add and delete tasks, edit their title, description, start and due dates and mark them as important. Tasks can be shared between users. Tasks can be synchronized using CalDav (each task list is linked to an Nextcloud calendar, to sync it to your local client: Thunderbird, Evolution, KDE Kontact, iCal … - just add the calendar as a remote calendar in your client). You can download your tasks as ICS files using the download button for each calendar.", - "homepage": "https://github.com/nextcloud/tasks/", - "licenses": [ - "agpl" - ] - }, - "twofactor_webauthn": { - "sha256": "291c20032cfc1f2fb081cc8721e272bc503d103987c6abb7ce442e497d278d0a", - "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v0.3.3/twofactor_webauthn-v0.3.3.tar.gz", - "version": "0.3.3", - "description": "A two-factor provider for WebAuthn devices", - "homepage": "https://github.com/nextcloud/twofactor_webauthn#readme", - "licenses": [ - "agpl" - ] - } -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a14b68784ea4..7c031a2bbf36 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10258,11 +10258,8 @@ with pkgs; grocy = callPackage ../servers/grocy { }; inherit (callPackage ../servers/nextcloud {}) - nextcloud23 nextcloud24 nextcloud25 nextcloud26; + nextcloud24 nextcloud25 nextcloud26; - nextcloud23Packages = ( callPackage ../servers/nextcloud/packages { - apps = lib.importJSON ../servers/nextcloud/packages/23.json; - }); nextcloud24Packages = ( callPackage ../servers/nextcloud/packages { apps = lib.importJSON ../servers/nextcloud/packages/24.json; }); From cbc539c19fb9f95bb513eb724757bded539a8ae9 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 22 Mar 2023 19:57:23 +0100 Subject: [PATCH 09/10] nixos/nextcloud: minor fixups * Apply review comments. * Default to PHP 8.2 for v26. --- nixos/modules/services/web-apps/nextcloud.nix | 6 +++--- nixos/tests/nextcloud/openssl-sse.nix | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index f42375c3d50d..438b3baf314d 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -204,7 +204,7 @@ in { package = mkOption { type = types.package; description = lib.mdDoc "Which package to use for the Nextcloud instance."; - relatedPackages = [ "nextcloud24" "nextcloud25" ]; + relatedPackages = [ "nextcloud24" "nextcloud25" "nextcloud26" ]; }; phpPackage = mkOption { type = types.package; @@ -728,8 +728,8 @@ in { ); services.nextcloud.phpPackage = - if versionOlder cfg.package.version "24" then pkgs.php80 - else pkgs.php81; + if versionOlder cfg.package.version "26" then pkgs.php81 + else pkgs.php82; } { assertions = [ diff --git a/nixos/tests/nextcloud/openssl-sse.nix b/nixos/tests/nextcloud/openssl-sse.nix index cf7187323ab5..871947e1d2b2 100644 --- a/nixos/tests/nextcloud/openssl-sse.nix +++ b/nixos/tests/nextcloud/openssl-sse.nix @@ -80,7 +80,6 @@ in { nextcloudwithopenssl1.succeed("grep bye /var/lib/nextcloud/data/root/files/test-shared-file2") nextcloudwithopenssl1.succeed("${withRcloneEnv3} ${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file2 | grep bye") - with subtest("Switch back to OpenSSL 1.1 and ensure that encrypted files are readable again"): nextcloudwithopenssl1.succeed("${openssl1-node}/bin/switch-to-configuration test") nextcloudwithopenssl1.wait_for_open_port(80) From 42c78ccc6b27249d89fd6dec7affc2a97fa76d62 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 22 Mar 2023 20:06:31 +0100 Subject: [PATCH 10/10] nixos/nextcloud: release notes --- nixos/doc/manual/release-notes/rl-2305.section.md | 6 ++++++ nixos/modules/services/web-apps/nextcloud.md | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md index 801cd0c6dc8d..ab9f06194680 100644 --- a/nixos/doc/manual/release-notes/rl-2305.section.md +++ b/nixos/doc/manual/release-notes/rl-2305.section.md @@ -158,6 +158,12 @@ In addition to numerous new and upgraded packages, this release has the followin - Deprecated `xlibsWrapper` transitional package has been removed in favour of direct use of its constitutents: `xorg.libX11`, `freetype` and others. +- The latest available version of Nextcloud is v26 (available as `pkgs.nextcloud26`) which uses PHP 8.2 as interpreter by default. The installation logic is as follows: + - If `system.stateVersion` is >=23.05, `pkgs.nextcloud26` will be installed by default. + - If `system.stateVersion` is >=22.11, `pkgs.nextcloud25` will be installed by default. + - Please note that an upgrade from v24 (or older) to v26 directly is not possible. Please upgrade to `nextcloud25` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud25;`](options.html#opt-services.nextcloud.package). + - It's recommended to use the latest version available (i.e. v26) and to specify that using `services.nextcloud.package`. + - .NET 5.0 was removed due to being end-of-life, use a newer, supported .NET version - https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core - The iputils package, which is installed by default, no longer provides the diff --git a/nixos/modules/services/web-apps/nextcloud.md b/nixos/modules/services/web-apps/nextcloud.md index 014807f3da23..7ef3cca281f9 100644 --- a/nixos/modules/services/web-apps/nextcloud.md +++ b/nixos/modules/services/web-apps/nextcloud.md @@ -5,7 +5,7 @@ self-hostable cloud platform. The server setup can be automated using [services.nextcloud](#opt-services.nextcloud.enable). A desktop client is packaged at `pkgs.nextcloud-client`. -The current default by NixOS is `nextcloud25` which is also the latest +The current default by NixOS is `nextcloud26` which is also the latest major version available. ## Basic usage {#module-services-nextcloud-basic-usage}