diff --git a/patches/151902.patch b/patches/151902.patch index 26b68098..a37e4512 100644 --- a/patches/151902.patch +++ b/patches/151902.patch @@ -1,15 +1,155 @@ -From 72181a8b55ef51c2ac3fee3a58f7e97b5aa89700 Mon Sep 17 00:00:00 2001 +From 2e719d1cdab9e81750c19425a1f5c7678b5e73ad Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Thu, 23 Dec 2021 20:19:41 +0100 -Subject: [PATCH 1/8] sway: 1.6.1 -> 1.7-rc1 +Subject: [PATCH] sway: 1.6.1 -> 1.7 +Release notes: https://github.com/swaywm/sway/releases/tag/1.7 + +Notable (backward incompatible) changes: +- The default terminal changed from Alacritty to foot + +Known issues: +- `swaynag` will crash when Sway 1.6.1 is still running while the Nix + package (and thus `swaynag`) is already updated to version 1.7. +- The experimental Ozone/Wayland support of Electron apps will be broken + for a while. Electron version 17 should work but the Chromium fixes + haven't yet been backported to Electron version 16. + +NixOS module: programs.sway.extraPackages: The "alacritty" package was +replaced with "foot". + +VM test: We switched from the OpenGL ES 2.0 renderer to Pixman. The +terminal was also changed to foot but Alacritty is still used for the +XWayland test (since foot doesn't support X11). + +Co-authored-by: Patrick Hilhorst --- - pkgs/applications/window-managers/sway/default.nix | 8 ++++---- - pkgs/top-level/all-packages.nix | 4 +--- - 2 files changed, 5 insertions(+), 7 deletions(-) + nixos/modules/programs/sway.nix | 4 +- + nixos/tests/sway.nix | 47 +++++++++++++------ + .../window-managers/sway/default.nix | 8 ++-- + pkgs/top-level/all-packages.nix | 4 +- + 4 files changed, 39 insertions(+), 24 deletions(-) +diff --git a/nixos/modules/programs/sway.nix b/nixos/modules/programs/sway.nix +index c64e01a20cb3d..bb9904d195606 100644 +--- a/nixos/modules/programs/sway.nix ++++ b/nixos/modules/programs/sway.nix +@@ -90,10 +90,10 @@ in { + extraPackages = mkOption { + type = with types; listOf package; + default = with pkgs; [ +- swaylock swayidle alacritty dmenu ++ swaylock swayidle foot dmenu + ]; + defaultText = literalExpression '' +- with pkgs; [ swaylock swayidle alacritty dmenu ]; ++ with pkgs; [ swaylock swayidle foot dmenu ]; + ''; + example = literalExpression '' + with pkgs; [ +diff --git a/nixos/tests/sway.nix b/nixos/tests/sway.nix +index 3476ebab3e26c..43b8c84730427 100644 +--- a/nixos/tests/sway.nix ++++ b/nixos/tests/sway.nix +@@ -1,4 +1,4 @@ +-import ./make-test-python.nix ({ pkgs, lib, ...} : ++import ./make-test-python.nix ({ pkgs, lib, ... }: + + { + name = "sway"; +@@ -13,19 +13,38 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : + + environment = { + # For glinfo and wayland-info: +- systemPackages = with pkgs; [ mesa-demos wayland-utils ]; ++ systemPackages = with pkgs; [ mesa-demos wayland-utils alacritty ]; + # Use a fixed SWAYSOCK path (for swaymsg): + variables = { + "SWAYSOCK" = "/tmp/sway-ipc.sock"; +- "WLR_RENDERER_ALLOW_SOFTWARE" = "1"; ++ # TODO: Investigate if we can get hardware acceleration to work (via ++ # virtio-gpu and Virgil). We currently have to use the Pixman software ++ # renderer since the GLES2 renderer doesn't work inside the VM (even ++ # with WLR_RENDERER_ALLOW_SOFTWARE): ++ # "WLR_RENDERER_ALLOW_SOFTWARE" = "1"; ++ "WLR_RENDERER" = "pixman"; + }; + # For convenience: + shellAliases = { +- test-x11 = "glinfo | head -n 3 | tee /tmp/test-x11.out && touch /tmp/test-x11-exit-ok"; ++ test-x11 = "glinfo | tee /tmp/test-x11.out && touch /tmp/test-x11-exit-ok"; + test-wayland = "wayland-info | tee /tmp/test-wayland.out && touch /tmp/test-wayland-exit-ok"; + }; ++ ++ # To help with OCR: ++ etc."xdg/foot/foot.ini".text = lib.generators.toINI { } { ++ main = { ++ font = "inconsolata:size=14"; ++ }; ++ colors = rec { ++ foreground = "000000"; ++ background = "ffffff"; ++ regular2 = foreground; ++ }; ++ }; + }; + ++ fonts.fonts = [ pkgs.inconsolata ]; ++ + # Automatically configure and start Sway when logging in on tty1: + programs.bash.loginShellInit = '' + if [ "$(tty)" = "/dev/tty1" ]; then +@@ -61,7 +80,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : + machine.wait_for_file("/run/user/1000/wayland-1") + machine.wait_for_file("/tmp/sway-ipc.sock") + +- # Test XWayland: ++ # Test XWayland (foot does not support X): + machine.succeed( + "su - alice -c 'swaymsg exec WINIT_UNIX_BACKEND=x11 WAYLAND_DISPLAY=invalid alacritty'" + ) +@@ -69,21 +88,22 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : + machine.send_chars("test-x11\n") + machine.wait_for_file("/tmp/test-x11-exit-ok") + print(machine.succeed("cat /tmp/test-x11.out")) ++ machine.copy_from_vm("/tmp/test-x11.out") + machine.screenshot("alacritty_glinfo") + machine.succeed("pkill alacritty") + +- # Start a terminal (Alacritty) on workspace 3: ++ # Start a terminal (foot) on workspace 3: + machine.send_key("alt-3") +- machine.succeed( +- "su - alice -c 'swaymsg exec WINIT_UNIX_BACKEND=wayland DISPLAY=invalid alacritty'" +- ) ++ machine.sleep(3) ++ machine.send_key("alt-ret") + machine.wait_for_text("alice@machine") + machine.send_chars("test-wayland\n") + machine.wait_for_file("/tmp/test-wayland-exit-ok") + print(machine.succeed("cat /tmp/test-wayland.out")) +- machine.screenshot("alacritty_wayland_info") ++ machine.copy_from_vm("/tmp/test-wayland.out") ++ machine.screenshot("foot_wayland_info") + machine.send_key("alt-shift-q") +- machine.wait_until_fails("pgrep alacritty") ++ machine.wait_until_fails("pgrep foot") + + # Test gpg-agent starting pinentry-gnome3 via D-Bus (tests if + # $WAYLAND_DISPLAY is correctly imported into the D-Bus user env): +@@ -104,9 +124,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : + # Exit Sway and verify process exit status 0: + machine.succeed("su - alice -c 'swaymsg exit || true'") + machine.wait_until_fails("pgrep -x sway") +- +- # TODO: Sway currently segfaults after "swaymsg exit" but only in this VM test: +- # machine # [ 104.090032] sway[921]: segfault at 3f800008 ip 00007f7dbdc25f10 sp 00007ffe282182f8 error 4 in libwayland-server.so.0.1.0[7f7dbdc1f000+8000] +- # machine.wait_for_file("/tmp/sway-exit-ok") ++ machine.wait_for_file("/tmp/sway-exit-ok") + ''; + }) diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix -index ec08568f0589c..0b1f0cd3e0e0e 100644 +index ec08568f0589c..72ca71d589605 100644 --- a/pkgs/applications/window-managers/sway/default.nix +++ b/pkgs/applications/window-managers/sway/default.nix @@ -1,5 +1,5 @@ @@ -24,14 +164,14 @@ index ec08568f0589c..0b1f0cd3e0e0e 100644 stdenv.mkDerivation rec { pname = "sway-unwrapped"; - version = "1.6.1"; -+ version = "1.7-rc1"; ++ version = "1.7"; src = fetchFromGitHub { owner = "swaywm"; repo = "sway"; rev = version; - sha256 = "0j4sdbsrlvky1agacc0pcz9bwmaxjmrapjnzscbd2i0cria2fc5j"; -+ sha256 = "1c46p2paywwhvjr6iaw5bhm92wxw0njldg6727xdmfnjj27v5603"; ++ sha256 = "0ss3l258blyf2d0lwd7pi7ga1fxfj8pxhag058k7cmjhs3y30y5l"; }; patches = [ @@ -59,286 +199,3 @@ index 0627a2fb20021..a6e0b133cd068 100644 sway = callPackage ../applications/window-managers/sway/wrapper.nix { }; swaybg = callPackage ../applications/window-managers/sway/bg.nix { }; swayidle = callPackage ../applications/window-managers/sway/idle.nix { }; - -From ebe0d3b6b730529a476f72e3df66bb15e0caeb87 Mon Sep 17 00:00:00 2001 -From: Michael Weiss -Date: Tue, 28 Dec 2021 17:01:06 +0100 -Subject: [PATCH 2/8] nixos/sway: alacritty -> foot (WIP) - ---- - nixos/modules/programs/sway.nix | 4 ++-- - nixos/tests/sway.nix | 3 ++- - 2 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/nixos/modules/programs/sway.nix b/nixos/modules/programs/sway.nix -index c64e01a20cb3d..bb9904d195606 100644 ---- a/nixos/modules/programs/sway.nix -+++ b/nixos/modules/programs/sway.nix -@@ -90,10 +90,10 @@ in { - extraPackages = mkOption { - type = with types; listOf package; - default = with pkgs; [ -- swaylock swayidle alacritty dmenu -+ swaylock swayidle foot dmenu - ]; - defaultText = literalExpression '' -- with pkgs; [ swaylock swayidle alacritty dmenu ]; -+ with pkgs; [ swaylock swayidle foot dmenu ]; - ''; - example = literalExpression '' - with pkgs; [ -diff --git a/nixos/tests/sway.nix b/nixos/tests/sway.nix -index 3476ebab3e26c..63f9099a864f0 100644 ---- a/nixos/tests/sway.nix -+++ b/nixos/tests/sway.nix -@@ -13,7 +13,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : - - environment = { - # For glinfo and wayland-info: -- systemPackages = with pkgs; [ mesa-demos wayland-utils ]; -+ systemPackages = with pkgs; [ mesa-demos wayland-utils alacritty ]; - # Use a fixed SWAYSOCK path (for swaymsg): - variables = { - "SWAYSOCK" = "/tmp/sway-ipc.sock"; -@@ -72,6 +72,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : - machine.screenshot("alacritty_glinfo") - machine.succeed("pkill alacritty") - -+ # TODO: Switch to foot (or add an additional foot test) and use $mod+Return: - # Start a terminal (Alacritty) on workspace 3: - machine.send_key("alt-3") - machine.succeed( - -From 4d2a5a6954d3a380f2298a5704d982e613b74024 Mon Sep 17 00:00:00 2001 -From: Michael Weiss -Date: Sun, 2 Jan 2022 13:26:05 +0100 -Subject: [PATCH 3/8] nixos/tests/sway: Fix the test by switching to the Pixman - renderer - ---- - nixos/tests/sway.nix | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/nixos/tests/sway.nix b/nixos/tests/sway.nix -index 63f9099a864f0..bdcbc0ab113e9 100644 ---- a/nixos/tests/sway.nix -+++ b/nixos/tests/sway.nix -@@ -17,7 +17,12 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : - # Use a fixed SWAYSOCK path (for swaymsg): - variables = { - "SWAYSOCK" = "/tmp/sway-ipc.sock"; -- "WLR_RENDERER_ALLOW_SOFTWARE" = "1"; -+ # TODO: Investigate if we can get hardware acceleration to work (via -+ # virtio-gpu and Virgil). We currently have to use the Pixman software -+ # renderer since the GLES2 renderer doesn't work inside the VM (even -+ # with WLR_RENDERER_ALLOW_SOFTWARE): -+ # "WLR_RENDERER_ALLOW_SOFTWARE" = "1"; -+ "WLR_RENDERER" = "pixman"; - }; - # For convenience: - shellAliases = { - -From 6266655558b22957d079cbec949ef54ed44c8fb7 Mon Sep 17 00:00:00 2001 -From: Michael Weiss -Date: Sun, 2 Jan 2022 13:32:49 +0100 -Subject: [PATCH 4/8] nixos/tests/sway: Verify if Sway exited successfully - ---- - nixos/tests/sway.nix | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - -diff --git a/nixos/tests/sway.nix b/nixos/tests/sway.nix -index bdcbc0ab113e9..5f27f380ee40e 100644 ---- a/nixos/tests/sway.nix -+++ b/nixos/tests/sway.nix -@@ -110,9 +110,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : - # Exit Sway and verify process exit status 0: - machine.succeed("su - alice -c 'swaymsg exit || true'") - machine.wait_until_fails("pgrep -x sway") -- -- # TODO: Sway currently segfaults after "swaymsg exit" but only in this VM test: -- # machine # [ 104.090032] sway[921]: segfault at 3f800008 ip 00007f7dbdc25f10 sp 00007ffe282182f8 error 4 in libwayland-server.so.0.1.0[7f7dbdc1f000+8000] -- # machine.wait_for_file("/tmp/sway-exit-ok") -+ machine.wait_for_file("/tmp/sway-exit-ok") - ''; - }) - -From db073180b0690401a5cb2abd3a0fb0386cb00382 Mon Sep 17 00:00:00 2001 -From: Patrick Hilhorst -Date: Sun, 2 Jan 2022 21:46:54 +0100 -Subject: [PATCH 5/8] nixos/tests/sway: update for sway 1.7 - ---- - nixos/tests/sway.nix | 38 +++++++++++++++++++++++++------------- - 1 file changed, 25 insertions(+), 13 deletions(-) - -diff --git a/nixos/tests/sway.nix b/nixos/tests/sway.nix -index 5f27f380ee40e..33c1ed66f552d 100644 ---- a/nixos/tests/sway.nix -+++ b/nixos/tests/sway.nix -@@ -1,4 +1,4 @@ --import ./make-test-python.nix ({ pkgs, lib, ...} : -+import ./make-test-python.nix ({ pkgs, lib, ... }: - - { - name = "sway"; -@@ -26,11 +26,25 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : - }; - # For convenience: - shellAliases = { -- test-x11 = "glinfo | head -n 3 | tee /tmp/test-x11.out && touch /tmp/test-x11-exit-ok"; -+ test-x11 = "glinfo | tee /tmp/test-x11.out && touch /tmp/test-x11-exit-ok"; - test-wayland = "wayland-info | tee /tmp/test-wayland.out && touch /tmp/test-wayland-exit-ok"; - }; -+ -+ # To help with OCR: -+ etc."xdg/foot/foot.ini".text = lib.generators.toINI { } { -+ main = { -+ font = "inconsolata:size=14"; -+ }; -+ colors = rec { -+ foreground = "000000"; -+ background = "ffffff"; -+ regular2 = foreground; -+ }; -+ }; - }; - -+ fonts.fonts = [ pkgs.inconsolata ]; -+ - # Automatically configure and start Sway when logging in on tty1: - programs.bash.loginShellInit = '' - if [ "$(tty)" = "/dev/tty1" ]; then -@@ -66,30 +80,28 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : - machine.wait_for_file("/run/user/1000/wayland-1") - machine.wait_for_file("/tmp/sway-ipc.sock") - -- # Test XWayland: -+ # Test XWayland (foot does not support X): - machine.succeed( - "su - alice -c 'swaymsg exec WINIT_UNIX_BACKEND=x11 WAYLAND_DISPLAY=invalid alacritty'" - ) - machine.wait_for_text("alice@machine") - machine.send_chars("test-x11\n") - machine.wait_for_file("/tmp/test-x11-exit-ok") -- print(machine.succeed("cat /tmp/test-x11.out")) -- machine.screenshot("alacritty_glinfo") -+ machine.copy_from_vm("/tmp/test-x11.out") -+ machine.screenshot("alacrittyglinfo") - machine.succeed("pkill alacritty") - -- # TODO: Switch to foot (or add an additional foot test) and use $mod+Return: -- # Start a terminal (Alacritty) on workspace 3: -+ # Start a terminal (foot) on workspace 3: - machine.send_key("alt-3") -- machine.succeed( -- "su - alice -c 'swaymsg exec WINIT_UNIX_BACKEND=wayland DISPLAY=invalid alacritty'" -- ) -+ machine.sleep(3) -+ machine.send_key("alt-ret") - machine.wait_for_text("alice@machine") - machine.send_chars("test-wayland\n") - machine.wait_for_file("/tmp/test-wayland-exit-ok") -- print(machine.succeed("cat /tmp/test-wayland.out")) -- machine.screenshot("alacritty_wayland_info") -+ machine.copy_from_vm("/tmp/test-wayland.out") -+ machine.screenshot("foot_wayland_info") - machine.send_key("alt-shift-q") -- machine.wait_until_fails("pgrep alacritty") -+ machine.wait_until_fails("pgrep foot") - - # Test gpg-agent starting pinentry-gnome3 via D-Bus (tests if - # $WAYLAND_DISPLAY is correctly imported into the D-Bus user env): - -From 7f06407d4f5b37c3f9ce7c22a10a49dd2d406a29 Mon Sep 17 00:00:00 2001 -From: Michael Weiss -Date: Sun, 9 Jan 2022 18:46:16 +0100 -Subject: [PATCH 6/8] sway: 1.7-rc1 -> 1.7-rc2 - ---- - pkgs/applications/window-managers/sway/default.nix | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix -index 0b1f0cd3e0e0e..f96ff9e51c4de 100644 ---- a/pkgs/applications/window-managers/sway/default.nix -+++ b/pkgs/applications/window-managers/sway/default.nix -@@ -12,13 +12,13 @@ - - stdenv.mkDerivation rec { - pname = "sway-unwrapped"; -- version = "1.7-rc1"; -+ version = "1.7-rc2"; - - src = fetchFromGitHub { - owner = "swaywm"; - repo = "sway"; - rev = version; -- sha256 = "1c46p2paywwhvjr6iaw5bhm92wxw0njldg6727xdmfnjj27v5603"; -+ sha256 = "1cl1wqh0j9z0i1xqn2cy3r6y6s3awgx1yb5p8nsvy1k58d8805pg"; - }; - - patches = [ - -From 02a162f479aa17a90212acc613c1117a25170d0e Mon Sep 17 00:00:00 2001 -From: Michael Weiss -Date: Sun, 9 Jan 2022 18:59:22 +0100 -Subject: [PATCH 7/8] nixos/tests/sway: Some optional changes - ---- - nixos/tests/sway.nix | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/nixos/tests/sway.nix b/nixos/tests/sway.nix -index 33c1ed66f552d..43b8c84730427 100644 ---- a/nixos/tests/sway.nix -+++ b/nixos/tests/sway.nix -@@ -87,8 +87,9 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: - machine.wait_for_text("alice@machine") - machine.send_chars("test-x11\n") - machine.wait_for_file("/tmp/test-x11-exit-ok") -+ print(machine.succeed("cat /tmp/test-x11.out")) - machine.copy_from_vm("/tmp/test-x11.out") -- machine.screenshot("alacrittyglinfo") -+ machine.screenshot("alacritty_glinfo") - machine.succeed("pkill alacritty") - - # Start a terminal (foot) on workspace 3: -@@ -98,6 +99,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: - machine.wait_for_text("alice@machine") - machine.send_chars("test-wayland\n") - machine.wait_for_file("/tmp/test-wayland-exit-ok") -+ print(machine.succeed("cat /tmp/test-wayland.out")) - machine.copy_from_vm("/tmp/test-wayland.out") - machine.screenshot("foot_wayland_info") - machine.send_key("alt-shift-q") - -From b7808ba8eeda0e6c1810f8cc7754fda25083326f Mon Sep 17 00:00:00 2001 -From: Patrick Hilhorst -Date: Sun, 16 Jan 2022 20:42:55 +0100 -Subject: [PATCH 8/8] sway: 1.7-rc2 -> 1.7-rc3 - ---- - pkgs/applications/window-managers/sway/default.nix | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix -index f96ff9e51c4de..2c17a1a03ea01 100644 ---- a/pkgs/applications/window-managers/sway/default.nix -+++ b/pkgs/applications/window-managers/sway/default.nix -@@ -12,13 +12,13 @@ - - stdenv.mkDerivation rec { - pname = "sway-unwrapped"; -- version = "1.7-rc2"; -+ version = "1.7-rc3"; - - src = fetchFromGitHub { - owner = "swaywm"; - repo = "sway"; - rev = version; -- sha256 = "1cl1wqh0j9z0i1xqn2cy3r6y6s3awgx1yb5p8nsvy1k58d8805pg"; -+ hash = "sha256-kRVWwu6q9PqmXoYO2xrVRYwLaPGVy8CCzR0a9DeFJ8c="; - }; - - patches = [