Update sway 1.7 patch

This commit is contained in:
Charlotte Van Petegem 2022-01-24 09:42:42 +01:00
parent a258bfae48
commit fb51c2f428
No known key found for this signature in database
GPG key ID: 019E764B7184435A

View file

@ -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 <dev.primeos@gmail.com>
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 <git@hilhorst.be>
---
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 <dev.primeos@gmail.com>
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 <dev.primeos@gmail.com>
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 <dev.primeos@gmail.com>
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 <git@hilhorst.be>
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 <dev.primeos@gmail.com>
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 <dev.primeos@gmail.com>
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 <git@hilhorst.be>
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 = [