From 617e0ee76f983d8e49d0787ecafe8c02e01f43ab Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Mon, 26 Feb 2024 15:49:35 +0000 Subject: [PATCH] =?UTF-8?q?gnome.gnome-remote-desktop:=2045.1=20=E2=86=92?= =?UTF-8?q?=2046.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://gitlab.gnome.org/GNOME/gnome-remote-desktop/-/compare/45.1...46.0 In file included from ../src/grd-settings.c:28: /nix/store/xxx-freerdp-3.4.0/lib/pkgconfig/../../include/freerdp3/freerdp/freerdp.h:25:10: fatal error: winpr/stream.h: No such file or directory 25 | #include | ^~~~~~~~~~~~~~~~ compilation terminated. Ugh. So stuff I am aware of here: - In freerdp3.pc, winpr3 is in Requires.private. - In https://github.com/FreeRDP/FreeRDP/blob/3.4.0/include/freerdp/freerdp.h#L25 is included. - In GNOME/gnome-remote-desktop@d29909a is included in src/grd-settings.c. - We patched pkg-config in NixOS to not include Requires.private in --cflags according to mate-desktop/atril issue 351. - According to https://gitlab.gnome.org/GNOME/gjs/-/issues/571, Requires.private is probably correct if no data types are exposed in public API. So to fix this somewhere, if src/grd-settings.c has direct usage of winpr, we can PR to g-r-d declaring the dep. If freerdp/freerdp.h exposes winpr data types we PR to freerdp and move winpr to Requires. Probably someone can help me do the check, I am committing this simply to unbreak the build for now. Changelog-Reviewed-By: Maxine Aubrey --- .../desktops/gnome/gnome-remote-desktop.nix | 1 + .../core/gnome-remote-desktop/default.nix | 21 ++++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/nixos/modules/services/desktops/gnome/gnome-remote-desktop.nix b/nixos/modules/services/desktops/gnome/gnome-remote-desktop.nix index b5573d2fc21b..85b565e8c9e3 100644 --- a/nixos/modules/services/desktops/gnome/gnome-remote-desktop.nix +++ b/nixos/modules/services/desktops/gnome/gnome-remote-desktop.nix @@ -28,5 +28,6 @@ with lib; services.pipewire.enable = true; systemd.packages = [ pkgs.gnome.gnome-remote-desktop ]; + systemd.tmpfiles.packages = [ pkgs.gnome.gnome-remote-desktop ]; }; } diff --git a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix index 58fbbc0cfc1f..f23560a18f85 100644 --- a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix +++ b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix @@ -1,4 +1,5 @@ -{ lib, stdenv +{ stdenv +, lib , fetchurl , cairo , meson @@ -16,22 +17,24 @@ , systemd , libsecret , libnotify +, libopus , libxkbcommon , gdk-pixbuf -, freerdp +, freerdp3 , fdk_aac , tpm2-tss , fuse3 , gnome +, polkit }: stdenv.mkDerivation rec { pname = "gnome-remote-desktop"; - version = "45.1"; + version = "46.0"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; - hash = "sha256-3NnBisIwZpVjH88AqIZFw443DroFxp3zn1QCBNTq/Y0="; + hash = "sha256-51zhfBKm05JU3DCcMVFOXvFXY/E2YS1kHF9vREXgCsQ="; }; nativeBuildInputs = [ @@ -45,7 +48,7 @@ stdenv.mkDerivation rec { buildInputs = [ cairo - freerdp + freerdp3 fdk_aac tpm2-tss fuse3 @@ -56,15 +59,23 @@ stdenv.mkDerivation rec { libdrm nv-codec-headers-11 libnotify + libopus libsecret libxkbcommon pipewire systemd + polkit # For polkit-gobject ]; mesonFlags = [ + "-Dconf_dir=/etc/gnome-remote-desktop" "-Dsystemd_user_unit_dir=${placeholder "out"}/lib/systemd/user" + "-Dsystemd_system_unit_dir=${placeholder "out"}/lib/systemd/system" + "-Dsystemd_sysusers_dir=${placeholder "out"}/lib/sysusers.d" + "-Dsystemd_tmpfiles_dir=${placeholder "out"}/lib/tmpfiles.d" "-Dtests=false" # Too deep of a rabbit hole. + # TODO: investigate who should be fixed here. + "-Dc_args=-I${freerdp3}/include/winpr3" ]; passthru = {