diff options
author | Vladimír Čunát <v@cunat.cz> | 2023-06-17 07:46:50 +0200 |
---|---|---|
committer | Vladimír Čunát <v@cunat.cz> | 2023-06-17 07:46:50 +0200 |
commit | 41d7e84dd89f2d9e64753004257f7603a33aa9fa (patch) | |
tree | 4d15687a860aa5b84b42a78eafa7a44039246dcd /nixos | |
parent | ebaef3ce4c2d9c1d05f0090532fd7d0c732c67e7 (diff) | |
parent | 7cc30fd5372ddafb3373c318507d9932bd74aafe (diff) | |
download | nixpkgs-41d7e84dd89f2d9e64753004257f7603a33aa9fa.tar nixpkgs-41d7e84dd89f2d9e64753004257f7603a33aa9fa.tar.gz nixpkgs-41d7e84dd89f2d9e64753004257f7603a33aa9fa.tar.bz2 nixpkgs-41d7e84dd89f2d9e64753004257f7603a33aa9fa.tar.lz nixpkgs-41d7e84dd89f2d9e64753004257f7603a33aa9fa.tar.xz nixpkgs-41d7e84dd89f2d9e64753004257f7603a33aa9fa.tar.zst nixpkgs-41d7e84dd89f2d9e64753004257f7603a33aa9fa.zip |
Merge branch 'master' into staging-next
Trivial conflict: nixos/doc/manual/release-notes/rl-2311.section.md
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/doc/manual/release-notes/rl-2311.section.md | 6 | ||||
-rw-r--r-- | nixos/modules/services/web-apps/nextcloud.md | 2 | ||||
-rw-r--r-- | nixos/modules/services/web-apps/nextcloud.nix | 16 | ||||
-rw-r--r-- | nixos/tests/all-tests.nix | 1 | ||||
-rw-r--r-- | nixos/tests/nextcloud/default.nix | 2 | ||||
-rw-r--r-- | nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix | 11 | ||||
-rw-r--r-- | nixos/tests/qownnotes.nix | 70 |
7 files changed, 89 insertions, 19 deletions
diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index 4a5804ce5f6..db05d2f65ee 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -50,6 +50,12 @@ - `fontconfig` now defaults to using greyscale antialiasing instead of subpixel antialiasing because of a [recommendation from one of the downstreams](https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/337). You can change this value by configuring [](#opt-fonts.fontconfig.subpixel.rgba) accordingly. +- The latest available version of Nextcloud is v27 (available as `pkgs.nextcloud27`). The installation logic is as follows: + - If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**) + - If [`system.stateVersion`](#opt-system.stateVersion) is >=23.11, `pkgs.nextcloud27` will be installed by default. + - If [`system.stateVersion`](#opt-system.stateVersion) is >=23.05, `pkgs.nextcloud26` will be installed by default. + - Please note that an upgrade from v25 (or older) to v27 directly is not possible. Please upgrade to `nextcloud26` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud26;`](options.html#opt-services.nextcloud.package). + - A new option was added to the virtualisation module that enables specifying explicitly named network interfaces in QEMU VMs. The existing `virtualisation.vlans` is still supported for cases where the name of the network interface is irrelevant. - `services.nginx` gained a `defaultListen` option at server-level with support for PROXY protocol listeners, also `proxyProtocol` is now exposed in `services.nginx.virtualHosts.<name>.listen` option. It is now possible to run PROXY listeners and non-PROXY listeners at a server-level, see [#213510](https://github.com/NixOS/nixpkgs/pull/213510/) for more details. diff --git a/nixos/modules/services/web-apps/nextcloud.md b/nixos/modules/services/web-apps/nextcloud.md index 5be81a18dfe..cbd7b5b3d06 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 `nextcloud26` which is also the latest +The current default by NixOS is `nextcloud27` which is also the latest major version available. ## Basic usage {#module-services-nextcloud-basic-usage} diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index 32ee744f139..a4ec579fddb 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -207,7 +207,7 @@ in { package = mkOption { type = types.package; description = lib.mdDoc "Which package to use for the Nextcloud instance."; - relatedPackages = [ "nextcloud25" "nextcloud26" ]; + relatedPackages = [ "nextcloud25" "nextcloud26" "nextcloud27" ]; }; phpPackage = mkOption { type = types.package; @@ -689,7 +689,7 @@ in { config = mkIf cfg.enable (mkMerge [ { warnings = let - latest = 26; + latest = 27; upgradeWarning = major: nixos: '' A legacy Nextcloud install (from before NixOS ${nixos}) may be installed. @@ -708,10 +708,9 @@ in { Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release. Please migrate your configuration to config.services.nextcloud.poolSettings. '') - ++ (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 (versionOlder cfg.package.version "27") (upgradeWarning 26 "23.11")) ++ (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. @@ -744,7 +743,8 @@ in { '' else if versionOlder stateVersion "22.11" then nextcloud24 else if versionOlder stateVersion "23.05" then nextcloud25 - else nextcloud26 + else if versionOlder stateVersion "23.11" then nextcloud26 + else nextcloud27 ); services.nextcloud.phpPackage = @@ -1065,10 +1065,8 @@ in { services.nextcloud = lib.mkIf cfg.configureRedis { caching.redis = true; extraOptions = { - memcache = { - distributed = ''\OC\Memcache\Redis''; - locking = ''\OC\Memcache\Redis''; - }; + "memcache.distributed" = ''\OC\Memcache\Redis''; + "memcache.locking" = ''\OC\Memcache\Redis''; redis = { host = config.services.redis.servers.nextcloud.unixSocket; port = 0; diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 4857a45b9a0..5e846fc83d1 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -643,6 +643,7 @@ in { qemu-vm-restrictnetwork = handleTest ./qemu-vm-restrictnetwork.nix {}; quorum = handleTest ./quorum.nix {}; quake3 = handleTest ./quake3.nix {}; + qownnotes = handleTest ./qownnotes.nix {}; rabbitmq = handleTest ./rabbitmq.nix {}; radarr = handleTest ./radarr.nix {}; radicale = handleTest ./radicale.nix {}; diff --git a/nixos/tests/nextcloud/default.nix b/nixos/tests/nextcloud/default.nix index 78fe026b4a8..b9f35b398cf 100644 --- a/nixos/tests/nextcloud/default.nix +++ b/nixos/tests/nextcloud/default.nix @@ -26,4 +26,4 @@ foldl }; }) { } - [ 25 26 ] + [ 25 26 27 ] diff --git a/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix b/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix index ce0019e9da4..80151947800 100644 --- a/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix +++ b/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix @@ -40,16 +40,11 @@ in { secretFile = "/etc/nextcloud-secrets.json"; extraOptions.redis = { - host = "/run/redis/redis.sock"; - port = 0; dbindex = 0; timeout = 1.5; # password handled via secretfile below }; - extraOptions.memcache = { - local = "\OC\Memcache\Redis"; - locking = "\OC\Memcache\Redis"; - }; + configureRedis = true; }; services.redis.servers."nextcloud".enable = true; @@ -74,7 +69,7 @@ in { # This file is meant to contain secret options which should # not go into the nix store. Here it is just used to set the - # databyse type to postgres. + # redis password. environment.etc."nextcloud-secrets.json".text = '' { "redis": { @@ -117,6 +112,6 @@ in { ) # redis cache should not be empty - nextcloud.fail("redis-cli KEYS * | grep -q 'empty array'") + nextcloud.fail('test "[]" = "$(redis-cli --json KEYS "*")"') ''; }) diff --git a/nixos/tests/qownnotes.nix b/nixos/tests/qownnotes.nix new file mode 100644 index 00000000000..93801cb9870 --- /dev/null +++ b/nixos/tests/qownnotes.nix @@ -0,0 +1,70 @@ +import ./make-test-python.nix ({ lib, pkgs, ...} : + +{ + name = "qownnotes"; + meta.maintainers = [ lib.maintainers.pbek ]; + + nodes.machine = { ... }: + + { + imports = [ + ./common/user-account.nix + ./common/x11.nix + ]; + + test-support.displayManager.auto.user = "alice"; + environment.systemPackages = [ + pkgs.qownnotes + pkgs.xdotool + ]; + }; + + enableOCR = true; + + testScript = { nodes, ... }: let + aliceDo = cmd: ''machine.succeed("su - alice -c '${cmd}' >&2 &");''; + in '' + with subtest("Ensure X starts"): + start_all() + machine.wait_for_x() + + with subtest("Check QOwnNotes version on CLI"): + ${aliceDo "qownnotes --version"} + + machine.wait_for_console_text("QOwnNotes ${pkgs.qownnotes.version}") + + with subtest("Ensure QOwnNotes starts"): + # start QOwnNotes window + ${aliceDo "qownnotes"} + + machine.wait_for_text("Welcome to QOwnNotes") + machine.screenshot("QOwnNotes-Welcome") + + with subtest("Finish first-run wizard"): + # The wizard should show up now + machine.wait_for_text("Note folder") + machine.send_key("ret") + machine.wait_for_console_text("Note path '/home/alice/Notes' was now created.") + machine.wait_for_text("Panel layout") + machine.send_key("ret") + machine.wait_for_text("Nextcloud") + machine.send_key("ret") + machine.wait_for_text("App metric") + machine.send_key("ret") + + # The main window should now show up + machine.wait_for_text("QOwnNotes - ${pkgs.qownnotes.version}") + machine.wait_for_open_port(22222) + machine.wait_for_console_text("QOwnNotes server listening on port 22222") + + machine.screenshot("QOwnNotes-DemoNote") + + with subtest("Create a new note"): + machine.send_key("ctrl-n") + machine.sleep(1) + machine.send_chars("This is a NixOS test!\n") + machine.wait_for_text("This is a NixOS test!") + + machine.screenshot("QOwnNotes-NewNote") + ''; +}) |