Alyssa Ross (6): chromiumOSPackages.vm_protos: set full go_package chromiumOSPackages.modemmanager: disable patches chromiumOSPackages.modemmanager-next: add gtk-doc chromiumOSPackages.libqmi: disable QRTR linux_cros: fix build wlroots: update Spectrum patches ...ayland-downgrade-to-wl_compositor-v3.patch | 64 ++++++----- ...til-support-virtio_wl-shm-allocation.patch | 11 +- ...-mk-don-t-leak-source-absolute-paths.patch | 4 +- ...ommon-mk-.gn-don-t-hardcode-env-path.patch | 4 +- .../os-specific/linux/chromium-os/default.nix | 3 +- .../linux/chromium-os/libqmi/default.nix | 4 +- .../chromium-os/modem-manager/default.nix | 2 + .../linux/chromium-os/modem-manager/next.nix | 6 +- ...er-don-t-leak-source-absolute-paths.patch} | 6 +- ...tools-sommelier-Switch-to-the-stabl.patch} | 6 +- .../linux/chromium-os/sommelier/default.nix | 4 +- ...-goproto_library-source_relative-opt.patch | 48 +++++++++ ...tools-proto-set-go_package-correctly.patch | 102 ++++++++++++++++++ .../linux/chromium-os/vm_protos/default.nix | 5 + 14 files changed, 222 insertions(+), 47 deletions(-) rename pkgs/os-specific/linux/chromium-os/sommelier/{0003-sommelier-don-t-leak-source-absolute-paths.patch => 0005-sommelier-don-t-leak-source-absolute-paths.patch} (82%) rename pkgs/os-specific/linux/chromium-os/sommelier/{0004-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch => 0006-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch} (99%) create mode 100644 pkgs/os-specific/linux/chromium-os/vm_protos/0003-common-mk-add-goproto_library-source_relative-opt.patch create mode 100644 pkgs/os-specific/linux/chromium-os/vm_protos/0004-vm_tools-proto-set-go_package-correctly.patch base-commit: cab13e087c80c4e7476bb7df432e2b7deb56563d -- 2.32.0
This will be required by future versions of protoc-gen-go. (Current versions already warn about it.) --- ...-mk-don-t-leak-source-absolute-paths.patch | 4 +- ...ommon-mk-.gn-don-t-hardcode-env-path.patch | 4 +- ...er-don-t-leak-source-absolute-paths.patch} | 6 +- ...tools-sommelier-Switch-to-the-stabl.patch} | 6 +- .../linux/chromium-os/sommelier/default.nix | 4 +- ...-goproto_library-source_relative-opt.patch | 48 +++++++++ ...tools-proto-set-go_package-correctly.patch | 102 ++++++++++++++++++ .../linux/chromium-os/vm_protos/default.nix | 5 + 8 files changed, 167 insertions(+), 12 deletions(-) rename pkgs/os-specific/linux/chromium-os/sommelier/{0003-sommelier-don-t-leak-source-absolute-paths.patch => 0005-sommelier-don-t-leak-source-absolute-paths.patch} (82%) rename pkgs/os-specific/linux/chromium-os/sommelier/{0004-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch => 0006-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch} (99%) create mode 100644 pkgs/os-specific/linux/chromium-os/vm_protos/0003-common-mk-add-goproto_library-source_relative-opt.patch create mode 100644 pkgs/os-specific/linux/chromium-os/vm_protos/0004-vm_tools-proto-set-go_package-correctly.patch diff --git a/pkgs/os-specific/linux/chromium-os/common-mk/0001-common-mk-don-t-leak-source-absolute-paths.patch b/pkgs/os-specific/linux/chromium-os/common-mk/0001-common-mk-don-t-leak-source-absolute-paths.patch index 03ec2b1df64..c2e33dbde66 100644 --- a/pkgs/os-specific/linux/chromium-os/common-mk/0001-common-mk-don-t-leak-source-absolute-paths.patch +++ b/pkgs/os-specific/linux/chromium-os/common-mk/0001-common-mk-don-t-leak-source-absolute-paths.patch @@ -1,7 +1,7 @@ From ae0c98ed2715c685b0cb97ac6e5d65101168b625 Mon Sep 17 00:00:00 2001 From: Alyssa Ross <hi@alyssa.is> Date: Sun, 24 Nov 2019 16:56:11 +0000 -Subject: [PATCH 1/4] common-mk: don't leak source-absolute paths +Subject: [PATCH 1/6] common-mk: don't leak source-absolute paths Source-absolute paths like //vm_tools/whatever were being leaked to subprocesses, which of course didn't know how to understand them. @@ -203,5 +203,5 @@ index e64aedabe0..fb9fb4231d 100644 } } -- -2.31.1 +2.32.0 diff --git a/pkgs/os-specific/linux/chromium-os/common-mk/0002-common-mk-.gn-don-t-hardcode-env-path.patch b/pkgs/os-specific/linux/chromium-os/common-mk/0002-common-mk-.gn-don-t-hardcode-env-path.patch index 95f29531fec..a6ac5b1e9ac 100644 --- a/pkgs/os-specific/linux/chromium-os/common-mk/0002-common-mk-.gn-don-t-hardcode-env-path.patch +++ b/pkgs/os-specific/linux/chromium-os/common-mk/0002-common-mk-.gn-don-t-hardcode-env-path.patch @@ -1,7 +1,7 @@ From 7d33bcd724ec79d00281c2752f9642be25782370 Mon Sep 17 00:00:00 2001 From: Alyssa Ross <hi@alyssa.is> Date: Sun, 24 Nov 2019 17:20:46 +0000 -Subject: [PATCH 2/4] common-mk: .gn: don't hardcode env path +Subject: [PATCH 2/6] common-mk: .gn: don't hardcode env path This is needlessly non-portable. --- @@ -19,5 +19,5 @@ index e7dba8c91c..e29fcd61ee 100644 -script_executable = "/usr/bin/env" +script_executable = "env" -- -2.31.1 +2.32.0 diff --git a/pkgs/os-specific/linux/chromium-os/sommelier/0003-sommelier-don-t-leak-source-absolute-paths.patch b/pkgs/os-specific/linux/chromium-os/sommelier/0005-sommelier-don-t-leak-source-absolute-paths.patch similarity index 82% rename from pkgs/os-specific/linux/chromium-os/sommelier/0003-sommelier-don-t-leak-source-absolute-paths.patch rename to pkgs/os-specific/linux/chromium-os/sommelier/0005-sommelier-don-t-leak-source-absolute-paths.patch index c37876988f9..d40ff8f022c 100644 --- a/pkgs/os-specific/linux/chromium-os/sommelier/0003-sommelier-don-t-leak-source-absolute-paths.patch +++ b/pkgs/os-specific/linux/chromium-os/sommelier/0005-sommelier-don-t-leak-source-absolute-paths.patch @@ -1,7 +1,7 @@ -From e3995d3367ae642f3eb0b4c395813af47464a65f Mon Sep 17 00:00:00 2001 +From 04bdfd44bbaa9f619d3ff03cad3273c46493396e Mon Sep 17 00:00:00 2001 From: Alyssa Ross <hi@alyssa.is> Date: Sun, 1 Dec 2019 17:04:04 +0000 -Subject: [PATCH 3/4] sommelier: don't leak source-absolute paths +Subject: [PATCH 5/6] sommelier: don't leak source-absolute paths --- vm_tools/sommelier/wayland_protocol.gni | 2 +- @@ -21,5 +21,5 @@ index f894adf81d..28bb5a006b 100644 } } -- -2.31.1 +2.32.0 diff --git a/pkgs/os-specific/linux/chromium-os/sommelier/0004-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch b/pkgs/os-specific/linux/chromium-os/sommelier/0006-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch similarity index 99% rename from pkgs/os-specific/linux/chromium-os/sommelier/0004-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch rename to pkgs/os-specific/linux/chromium-os/sommelier/0006-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch index 5db01538eae..c7b1eeafc0d 100644 --- a/pkgs/os-specific/linux/chromium-os/sommelier/0004-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch +++ b/pkgs/os-specific/linux/chromium-os/sommelier/0006-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch @@ -1,7 +1,7 @@ -From ac39fe3d341cc33dfd5f47d5301c2a6aaf743a34 Mon Sep 17 00:00:00 2001 +From e97193872755e44aae51dd88e9323d8a069a40ca Mon Sep 17 00:00:00 2001 From: Alyssa Ross <hi@alyssa.is> Date: Fri, 2 Apr 2021 17:55:55 +0000 -Subject: [PATCH 4/4] Revert "Revert "vm_tools: sommelier: Switch to the stable +Subject: [PATCH 6/6] Revert "Revert "vm_tools: sommelier: Switch to the stable version of xdg-shell"" This reverts commit 32050c0ea6c00c16999915856b40a6a6b8b41bb9. @@ -1836,5 +1836,5 @@ index 79bcf6a3b3..d3157cd8a9 100644 struct wl_list link; }; -- -2.31.1 +2.32.0 diff --git a/pkgs/os-specific/linux/chromium-os/sommelier/default.nix b/pkgs/os-specific/linux/chromium-os/sommelier/default.nix index c995689c4f5..b45ab330c34 100644 --- a/pkgs/os-specific/linux/chromium-os/sommelier/default.nix +++ b/pkgs/os-specific/linux/chromium-os/sommelier/default.nix @@ -7,8 +7,8 @@ common-mk { platformSubdir = "vm_tools/sommelier"; platform2Patches = [ - ./0003-sommelier-don-t-leak-source-absolute-paths.patch - ./0004-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch + ./0005-sommelier-don-t-leak-source-absolute-paths.patch + ./0006-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch ]; buildInputs = [ diff --git a/pkgs/os-specific/linux/chromium-os/vm_protos/0003-common-mk-add-goproto_library-source_relative-opt.patch b/pkgs/os-specific/linux/chromium-os/vm_protos/0003-common-mk-add-goproto_library-source_relative-opt.patch new file mode 100644 index 00000000000..e921abd8032 --- /dev/null +++ b/pkgs/os-specific/linux/chromium-os/vm_protos/0003-common-mk-add-goproto_library-source_relative-opt.patch @@ -0,0 +1,48 @@ +From 211eea8e623c9e9beb61f38720c718f080bae883 Mon Sep 17 00:00:00 2001 +From: Alyssa Ross <hi@alyssa.is> +Date: Mon, 28 Jun 2021 17:10:46 +0000 +Subject: [PATCH 3/6] common-mk: add goproto_library source_relative opt + +We need this for the go_package changes in protoc-gen-go 1.5.x. If we +didn't use source-relative paths, the full module path would be +repeated in the output location, so we'd get paths like +src/chromiumos/vm_tools/vm_crash/chromiumos/vm_tools/vm_crash/vm_crash.pb.go. + +To avoid the duplication, we either need to set source_relative, or +set proto_out_dir to just go/src. The latter isn't workable, because +then everything two libraries that both use common.proto will both +generate outputs called "go/src/common.pb.go", which will upset GN. + +Reviewed-by: Cole Helbling <cole.e.helbling@outlook.com> +--- + common-mk/proto_library.gni | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/common-mk/proto_library.gni b/common-mk/proto_library.gni +index fb9fb4231d..23645a134f 100644 +--- a/common-mk/proto_library.gni ++++ b/common-mk/proto_library.gni +@@ -225,6 +225,9 @@ template("proto_library") { + # proto_lib_dirs (optional) + # Directories to search for protos a proto file depends on. + # proto_in_dir and "${sysroot}/usr/share/proto" are added by default. ++# source_relative (optional) ++# If true, the output file is placed in the same relative directory as the ++# input file (but under proto_out_dir). + template("goproto_library") { + action(target_name) { + forward_variables_from(invoker, +@@ -254,6 +257,10 @@ template("goproto_library") { + + go_plugin_parameters = [] + ++ if (defined(invoker.source_relative) && invoker.source_relative) { ++ go_plugin_parameters += [ "paths=source_relative" ] ++ } ++ + if (defined(invoker.gen_grpc) && invoker.gen_grpc) { + go_plugin_parameters += [ "plugins=grpc" ] + } +-- +2.32.0 + diff --git a/pkgs/os-specific/linux/chromium-os/vm_protos/0004-vm_tools-proto-set-go_package-correctly.patch b/pkgs/os-specific/linux/chromium-os/vm_protos/0004-vm_tools-proto-set-go_package-correctly.patch new file mode 100644 index 00000000000..d77bcf2bdef --- /dev/null +++ b/pkgs/os-specific/linux/chromium-os/vm_protos/0004-vm_tools-proto-set-go_package-correctly.patch @@ -0,0 +1,102 @@ +From fae12c5b06864c0a9687320735c9bed9219c30c8 Mon Sep 17 00:00:00 2001 +From: Alyssa Ross <hi@alyssa.is> +Date: Wed, 16 Jun 2021 16:09:01 +0000 +Subject: [PATCH 4/6] vm_tools: proto: set go_package correctly + +protoc-gen-go 1.5.x has become a lot stricter about this. We have to +use import_mapping for common.proto because it ends up being included +in multiple Go libraries. I'm not sure why it needs to be built once +per library, but that's the way it works. + +Reviewed-by: Cole Helbling <cole.e.helbling@outlook.com> +--- + vm_tools/proto/BUILD.gn | 5 +++++ + vm_tools/proto/tremplin.proto | 2 +- + vm_tools/proto/vm_crash.proto | 2 +- + vm_tools/proto/vm_guest.proto | 1 + + vm_tools/proto/vm_host.proto | 1 + + 5 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/vm_tools/proto/BUILD.gn b/vm_tools/proto/BUILD.gn +index 79c9b94c9f..aadc40165c 100644 +--- a/vm_tools/proto/BUILD.gn ++++ b/vm_tools/proto/BUILD.gn +@@ -60,6 +60,8 @@ goproto_library("vm-crash-gorpcs") { + proto_in_dir = "./" + proto_out_dir = "go/src/chromiumos/vm_tools/vm_crash" + gen_grpc = true ++ source_relative = true ++ import_mapping = [ "common.proto=chromiumos/vm_tools/vm_crash" ] + sources = [ + "${proto_in_dir}/common.proto", + "${proto_in_dir}/vm_crash.proto", +@@ -97,6 +99,7 @@ goproto_library("tremplin-gorpcs") { + proto_in_dir = "./" + proto_out_dir = "go/src/chromiumos/vm_tools/tremplin_proto" + gen_grpc = true ++ source_relative = true + sources = [ "${proto_in_dir}/tremplin.proto" ] + } + +@@ -120,6 +123,8 @@ goproto_library("vm-gorpcs") { + proto_in_dir = "./" + proto_out_dir = "go/src/chromiumos/vm_tools/vm_rpc" + gen_grpc = true ++ source_relative = true ++ import_mapping = [ "common.proto=chromiumos/vm_tools/vm_rpc" ] + sources = [ + "${proto_in_dir}/common.proto", + "${proto_in_dir}/vm_guest.proto", +diff --git a/vm_tools/proto/tremplin.proto b/vm_tools/proto/tremplin.proto +index aac76f7a9e..e6a7bbed0e 100644 +--- a/vm_tools/proto/tremplin.proto ++++ b/vm_tools/proto/tremplin.proto +@@ -8,7 +8,7 @@ option cc_enable_arenas = true; + + // This file defines services for tremplin, the container springboard service. + package vm_tools.tremplin; +-option go_package = "tremplin_proto"; ++option go_package = "chromiumos/vm_tools/tremplin_proto"; + + // This needs to be duplicated because the gyp rule for building + // go code makes it difficult to have imports. +diff --git a/vm_tools/proto/vm_crash.proto b/vm_tools/proto/vm_crash.proto +index 6e4f62fe13..3cd4279989 100644 +--- a/vm_tools/proto/vm_crash.proto ++++ b/vm_tools/proto/vm_crash.proto +@@ -7,7 +7,7 @@ syntax = "proto3"; + option cc_enable_arenas = true; + + package vm_tools.cicerone; +-option go_package = "vm_crash"; ++option go_package = "chromiumos/vm_tools/vm_crash"; + + import "common.proto"; + +diff --git a/vm_tools/proto/vm_guest.proto b/vm_tools/proto/vm_guest.proto +index 86f11d0812..d0946078d5 100644 +--- a/vm_tools/proto/vm_guest.proto ++++ b/vm_tools/proto/vm_guest.proto +@@ -8,6 +8,7 @@ option cc_enable_arenas = true; + + // This file defines services that will be running in the guest VM. + package vm_tools; ++option go_package = "chromiumos/vm_tools/vm_rpc"; + + import "common.proto"; + import "google/protobuf/timestamp.proto"; +diff --git a/vm_tools/proto/vm_host.proto b/vm_tools/proto/vm_host.proto +index a8bd066f61..19759b0271 100644 +--- a/vm_tools/proto/vm_host.proto ++++ b/vm_tools/proto/vm_host.proto +@@ -8,6 +8,7 @@ option cc_enable_arenas = true; + + // This file defines services that will be running on the host for the VM. + package vm_tools; ++option go_package = "chromiumos/vm_tools/vm_rpc"; + + import "common.proto"; + +-- +2.32.0 + diff --git a/pkgs/os-specific/linux/chromium-os/vm_protos/default.nix b/pkgs/os-specific/linux/chromium-os/vm_protos/default.nix index e87d0c57e78..cded9c988b3 100644 --- a/pkgs/os-specific/linux/chromium-os/vm_protos/default.nix +++ b/pkgs/os-specific/linux/chromium-os/vm_protos/default.nix @@ -7,6 +7,11 @@ common-mk { nativeBuildInputs = [ go-protobuf ]; buildInputs = [ grpc openssl protobuf ]; + platform2Patches = [ + ./0003-common-mk-add-goproto_library-source_relative-opt.patch + ./0004-vm_tools-proto-set-go_package-correctly.patch + ]; + NIX_CFLAGS_COMPILE = [ "-Wno-error=array-bounds" "-Wno-error=deprecated-declarations" -- 2.32.0
This is an ancient version of ModemManager, so any patches applied for the current upstream release are very unlikely to apply. --- I think we can probably drop this package to be honest, but I don't want to block the Nixpkgs update on that. pkgs/os-specific/linux/chromium-os/modem-manager/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/os-specific/linux/chromium-os/modem-manager/default.nix b/pkgs/os-specific/linux/chromium-os/modem-manager/default.nix index c6a5a44b67e..f1d6cbdd465 100644 --- a/pkgs/os-specific/linux/chromium-os/modem-manager/default.nix +++ b/pkgs/os-specific/linux/chromium-os/modem-manager/default.nix @@ -15,6 +15,8 @@ modemmanager.overrideAttrs ( sha256 = "12wlak8zx914zix4vv5a8sl0nyi58v7593h4gjchgv3i8ysgj9ah"; }; + patches = []; + nativeBuildInputs = nativeBuildInputs ++ [ autoreconfHook libtool intltool libxslt ]; buildInputs = buildInputs ++ [ dbus_glib ]; -- 2.32.0
Recent upstream Nixpkgs no longer includes this, but we still need it. --- pkgs/os-specific/linux/chromium-os/modem-manager/next.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/chromium-os/modem-manager/next.nix b/pkgs/os-specific/linux/chromium-os/modem-manager/next.nix index 17d95c2b3bc..d008470b682 100644 --- a/pkgs/os-specific/linux/chromium-os/modem-manager/next.nix +++ b/pkgs/os-specific/linux/chromium-os/modem-manager/next.nix @@ -1,5 +1,5 @@ -{ modemmanager, lib, fetchFromGitiles, upstreamInfo, autoreconfHook -, autoconf-archive, libqmi, libxslt +{ modemmanager, lib, fetchFromGitiles, upstreamInfo +, autoreconfHook, autoconf-archive, gtk-doc, libqmi, libxslt }: (modemmanager.override { inherit libqmi; }).overrideAttrs ( @@ -12,7 +12,7 @@ upstreamInfo.components."src/third_party/modemmanager-next"; nativeBuildInputs = nativeBuildInputs ++ - [ autoreconfHook autoconf-archive libxslt ]; + [ autoreconfHook autoconf-archive gtk-doc libxslt ]; passthru = passthru // { updateScript = ../update.py; -- 2.32.0
--- pkgs/os-specific/linux/chromium-os/libqmi/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/chromium-os/libqmi/default.nix b/pkgs/os-specific/linux/chromium-os/libqmi/default.nix index ec4f44c7047..b96b5224b57 100644 --- a/pkgs/os-specific/linux/chromium-os/libqmi/default.nix +++ b/pkgs/os-specific/linux/chromium-os/libqmi/default.nix @@ -13,7 +13,9 @@ libqmi.overrideAttrs ( nativeBuildInputs = nativeBuildInputs ++ [ autoreconfHook autoconf-archive gtk-doc docbook-xsl-nons ]; - configureFlags = configureFlags ++ [ "--enable-gtk-doc" ]; + # ModemManager tests fail with QRTR in Chromium OS 91. + # Will hopefully be fixed in CrOS 92. + configureFlags = configureFlags ++ [ "--enable-gtk-doc" "--disable-qrtr" ]; passthru = passthru // { updateScript = ../update.py; -- 2.32.0
This patch is already included in the Chromium kernel. --- pkgs/os-specific/linux/chromium-os/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/chromium-os/default.nix b/pkgs/os-specific/linux/chromium-os/default.nix index 6eb9f335ff3..efdf600756f 100644 --- a/pkgs/os-specific/linux/chromium-os/default.nix +++ b/pkgs/os-specific/linux/chromium-os/default.nix @@ -30,7 +30,8 @@ let }; linux_5_4 = callPackage ../kernel/linux-cros.nix { - inherit (linux_5_4) kernelPatches; + kernelPatches = + lib.remove kernelPatches.rtl8761b_support linux_5_4.kernelPatches; }; linux = self.linux_5_4; -- 2.32.0
--- ...ayland-downgrade-to-wl_compositor-v3.patch | 64 +++++++++++-------- ...til-support-virtio_wl-shm-allocation.patch | 11 ++-- 2 files changed, 45 insertions(+), 30 deletions(-) diff --git a/pkgs/development/libraries/wlroots/0001-backend-wayland-downgrade-to-wl_compositor-v3.patch b/pkgs/development/libraries/wlroots/0001-backend-wayland-downgrade-to-wl_compositor-v3.patch index 400bcea368b..e6d934419f0 100644 --- a/pkgs/development/libraries/wlroots/0001-backend-wayland-downgrade-to-wl_compositor-v3.patch +++ b/pkgs/development/libraries/wlroots/0001-backend-wayland-downgrade-to-wl_compositor-v3.patch @@ -1,4 +1,4 @@ -From 32c2af6d7091a5964056f2d3006e333d3602bd82 Mon Sep 17 00:00:00 2001 +From fae720321c2e8e4d57c9c6554d4f025b1808747c Mon Sep 17 00:00:00 2001 From: Alyssa Ross <hi@alyssa.is> Date: Tue, 25 Aug 2020 17:34:48 +0000 Subject: [PATCH 1/2] backend/wayland: downgrade to wl_compositor v3 @@ -9,25 +9,25 @@ Rather than calculating exact surface-relative damage regions instead of the previous buffer-relative ones, just damage the whole surface. It'll do for now. --- - backend/wayland/backend.c | 6 +++++- - backend/wayland/output.c | 4 +++- - include/backend/wayland.h | 1 + - 3 files changed, 9 insertions(+), 2 deletions(-) + backend/wayland/backend.c | 6 +++++- + backend/wayland/output.c | 11 +++++++++-- + include/backend/wayland.h | 1 + + 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/backend/wayland/backend.c b/backend/wayland/backend.c -index 8de63acf..b1fddfc7 100644 +index 771f4405..fc798292 100644 --- a/backend/wayland/backend.c +++ b/backend/wayland/backend.c -@@ -101,7 +101,7 @@ static void registry_global(void *data, struct wl_registry *registry, +@@ -210,7 +210,7 @@ static void registry_global(void *data, struct wl_registry *registry, if (strcmp(iface, wl_compositor_interface.name) == 0) { wl->compositor = wl_registry_bind(registry, name, - &wl_compositor_interface, 4); + &wl_compositor_interface, wl_compositor_version()); } else if (strcmp(iface, wl_seat_interface.name) == 0) { - wl->seat = wl_registry_bind(registry, name, + struct wl_seat *wl_seat = wl_registry_bind(registry, name, &wl_seat_interface, 5); -@@ -244,6 +244,10 @@ bool wlr_backend_is_wl(struct wlr_backend *b) { +@@ -373,6 +373,10 @@ bool wlr_backend_is_wl(struct wlr_backend *b) { return b->impl == &backend_impl; } @@ -39,32 +39,46 @@ index 8de63acf..b1fddfc7 100644 struct wlr_wl_backend *wl = wl_container_of(listener, wl, local_display_destroy); diff --git a/backend/wayland/output.c b/backend/wayland/output.c -index bd17fa20..d91c5cc0 100644 +index 542185ce..5c5ff93d 100644 --- a/backend/wayland/output.c +++ b/backend/wayland/output.c -@@ -262,7 +262,9 @@ static bool output_commit(struct wlr_output *wlr_output) { +@@ -319,7 +319,9 @@ static bool output_commit(struct wlr_output *wlr_output) { - wl_surface_attach(output->surface, buffer->wl_buffer, 0, 0); + wl_surface_attach(output->surface, buffer->wl_buffer, 0, 0); -- if (damage == NULL) { -+ if (wl_compositor_version() < 4) { -+ wl_surface_damage(output->surface, 0, 0, INT32_MAX, INT32_MAX); -+ } else if (damage == NULL) { - wl_surface_damage_buffer(output->surface, - 0, 0, INT32_MAX, INT32_MAX); - } else { +- if (damage == NULL) { ++ if (wl_compositor_version() < 4) { ++ wl_surface_damage(output->surface, 0, 0, INT32_MAX, INT32_MAX); ++ } else if (damage == NULL) { + wl_surface_damage_buffer(output->surface, + 0, 0, INT32_MAX, INT32_MAX); + } else { +@@ -381,7 +383,12 @@ static bool output_set_cursor(struct wlr_output *wlr_output, + } + + wl_surface_attach(surface, buffer->wl_buffer, 0, 0); +- wl_surface_damage_buffer(surface, 0, 0, INT32_MAX, INT32_MAX); ++ ++ if (wl_compositor_version() < 4) ++ wl_surface_damage(surface, 0, 0, INT32_MAX, INT32_MAX); ++ else ++ wl_surface_damage_buffer(surface, 0, 0, INT32_MAX, INT32_MAX); ++ + wl_surface_commit(surface); + } else { + wl_surface_attach(surface, NULL, 0, 0); diff --git a/include/backend/wayland.h b/include/backend/wayland.h -index 9a8a404b..9d7b5eb4 100644 +index 5d69c248..344dffb1 100644 --- a/include/backend/wayland.h +++ b/include/backend/wayland.h -@@ -114,6 +114,7 @@ void create_wl_pointer(struct wl_pointer *wl_pointer, struct wlr_wl_output *outp - void create_wl_keyboard(struct wl_keyboard *wl_keyboard, struct wlr_wl_backend *wl); - struct wlr_wl_input_device *create_wl_input_device( - struct wlr_wl_backend *backend, enum wlr_input_device_type type); +@@ -131,6 +131,7 @@ struct wlr_wl_input_device *create_wl_input_device( + bool create_wl_seat(struct wl_seat *wl_seat, struct wlr_wl_backend *wl); + void destroy_wl_seats(struct wlr_wl_backend *wl); + void destroy_wl_buffer(struct wlr_wl_buffer *buffer); +uint32_t wl_compositor_version(void); extern const struct wl_seat_listener seat_listener; -- -2.27.0 +2.31.1 diff --git a/pkgs/development/libraries/wlroots/0002-util-support-virtio_wl-shm-allocation.patch b/pkgs/development/libraries/wlroots/0002-util-support-virtio_wl-shm-allocation.patch index 90e81596ab4..cd25aedf35a 100644 --- a/pkgs/development/libraries/wlroots/0002-util-support-virtio_wl-shm-allocation.patch +++ b/pkgs/development/libraries/wlroots/0002-util-support-virtio_wl-shm-allocation.patch @@ -1,4 +1,4 @@ -From 7a85901b79c8a3c82167b446ee20fc46f50b0e1c Mon Sep 17 00:00:00 2001 +From 8dc7c4e472f6c23e20aee6a7041d260344ffd918 Mon Sep 17 00:00:00 2001 From: Alyssa Ross <hi@alyssa.is> Date: Sat, 23 May 2020 03:42:33 +0000 Subject: [PATCH 2/2] util: support virtio_wl shm allocation @@ -51,16 +51,17 @@ index 00000000..d9f9f045 + +#endif diff --git a/util/meson.build b/util/meson.build -index 14cd59c5..87311b98 100644 +index 5e31cbbe..a39cc9bd 100644 --- a/util/meson.build +++ b/util/meson.build -@@ -6,4 +6,6 @@ wlr_files += files( - 'shm.c', +@@ -7,5 +7,7 @@ wlr_files += files( 'signal.c', 'time.c', + 'token.c', + 'virtio_wl.c', + 'virtio_wl_shm.c', ) + diff --git a/util/shm.c b/util/shm.c index f7c7303e..d8110904 100644 --- a/util/shm.c @@ -277,5 +278,5 @@ index 00000000..b2109310 + return r; +} -- -2.27.0 +2.31.1 -- 2.32.0
On Thu Jul 29, 2021 at 3:09 AM PDT, Alyssa Ross wrote:
> Alyssa Ross (6):
> chromiumOSPackages.vm_protos: set full go_package
> chromiumOSPackages.modemmanager: disable patches
> chromiumOSPackages.modemmanager-next: add gtk-doc
> chromiumOSPackages.libqmi: disable QRTR
> linux_cros: fix build
> wlroots: update Spectrum patches
>
> ...ayland-downgrade-to-wl_compositor-v3.patch | 64 ++++++-----
> ...til-support-virtio_wl-shm-allocation.patch | 11 +-
> ...-mk-don-t-leak-source-absolute-paths.patch | 4 +-
> ...ommon-mk-.gn-don-t-hardcode-env-path.patch | 4 +-
> .../os-specific/linux/chromium-os/default.nix | 3 +-
> .../linux/chromium-os/libqmi/default.nix | 4 +-
> .../chromium-os/modem-manager/default.nix | 2 +
> .../linux/chromium-os/modem-manager/next.nix | 6 +-
> ...er-don-t-leak-source-absolute-paths.patch} | 6 +-
> ...tools-sommelier-Switch-to-the-stabl.patch} | 6 +-
> .../linux/chromium-os/sommelier/default.nix | 4 +-
> ...-goproto_library-source_relative-opt.patch | 48 +++++++++
> ...tools-proto-set-go_package-correctly.patch | 102 ++++++++++++++++++
> .../linux/chromium-os/vm_protos/default.nix | 5 +
> 14 files changed, 222 insertions(+), 47 deletions(-)
> rename pkgs/os-specific/linux/chromium-os/sommelier/{0003-sommelier-don-t-leak-source-absolute-paths.patch => 0005-sommelier-don-t-leak-source-absolute-paths.patch} (82%)
> rename pkgs/os-specific/linux/chromium-os/sommelier/{0004-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch => 0006-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch} (99%)
> create mode 100644 pkgs/os-specific/linux/chromium-os/vm_protos/0003-common-mk-add-goproto_library-source_relative-opt.patch
> create mode 100644 pkgs/os-specific/linux/chromium-os/vm_protos/0004-vm_tools-proto-set-go_package-correctly.patch
>
>
> base-commit: cab13e087c80c4e7476bb7df432e2b7deb56563d
> --
> 2.32.0
Patchset LGTM. I didn't really look at the Spectrum patches updates because I
don't want to read C at the moment... :P
Reviewed-by: Cole Helbling <cole.e.helbling@outlook.com>
P.S.: Sorry for the lateness. These days, I work in the mornings and when I'm
done, I just play video games for the rest of the night, not dedicating any time
to other things that I should...
[-- Attachment #1: Type: text/plain, Size: 2593 bytes --] On Mon, Aug 02, 2021 at 01:32:42PM -0700, Cole Helbling wrote: > On Thu Jul 29, 2021 at 3:09 AM PDT, Alyssa Ross wrote: > > Alyssa Ross (6): > > chromiumOSPackages.vm_protos: set full go_package > > chromiumOSPackages.modemmanager: disable patches > > chromiumOSPackages.modemmanager-next: add gtk-doc > > chromiumOSPackages.libqmi: disable QRTR > > linux_cros: fix build > > wlroots: update Spectrum patches > > > > ...ayland-downgrade-to-wl_compositor-v3.patch | 64 ++++++----- > > ...til-support-virtio_wl-shm-allocation.patch | 11 +- > > ...-mk-don-t-leak-source-absolute-paths.patch | 4 +- > > ...ommon-mk-.gn-don-t-hardcode-env-path.patch | 4 +- > > .../os-specific/linux/chromium-os/default.nix | 3 +- > > .../linux/chromium-os/libqmi/default.nix | 4 +- > > .../chromium-os/modem-manager/default.nix | 2 + > > .../linux/chromium-os/modem-manager/next.nix | 6 +- > > ...er-don-t-leak-source-absolute-paths.patch} | 6 +- > > ...tools-sommelier-Switch-to-the-stabl.patch} | 6 +- > > .../linux/chromium-os/sommelier/default.nix | 4 +- > > ...-goproto_library-source_relative-opt.patch | 48 +++++++++ > > ...tools-proto-set-go_package-correctly.patch | 102 ++++++++++++++++++ > > .../linux/chromium-os/vm_protos/default.nix | 5 + > > 14 files changed, 222 insertions(+), 47 deletions(-) > > rename pkgs/os-specific/linux/chromium-os/sommelier/{0003-sommelier-don-t-leak-source-absolute-paths.patch => 0005-sommelier-don-t-leak-source-absolute-paths.patch} (82%) > > rename pkgs/os-specific/linux/chromium-os/sommelier/{0004-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch => 0006-Revert-Revert-vm_tools-sommelier-Switch-to-the-stabl.patch} (99%) > > create mode 100644 pkgs/os-specific/linux/chromium-os/vm_protos/0003-common-mk-add-goproto_library-source_relative-opt.patch > > create mode 100644 pkgs/os-specific/linux/chromium-os/vm_protos/0004-vm_tools-proto-set-go_package-correctly.patch > > > > > > base-commit: cab13e087c80c4e7476bb7df432e2b7deb56563d > > -- > > 2.32.0 > > Patchset LGTM. I didn't really look at the Spectrum patches updates because I > don't want to read C at the moment... :P > > Reviewed-by: Cole Helbling <cole.e.helbling@outlook.com> Okay, in that case I'll leave off the R-b for the final patch, since it's just a big C change. > P.S.: Sorry for the lateness. These days, I work in the mornings and when I'm > done, I just play video games for the rest of the night, not dedicating any time > to other things that I should... No worries! Thanks as always for being a reviewer! [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --]