diff -Nru gnome-remote-desktop-42.0/debian/changelog gnome-remote-desktop-42.1.1/debian/changelog --- gnome-remote-desktop-42.0/debian/changelog 2022-04-14 12:06:18.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/changelog 2022-05-12 19:21:47.000000000 +0000 @@ -1,12 +1,30 @@ -gnome-remote-desktop (42.0-4ubuntu1) jammy; urgency=medium +gnome-remote-desktop (42.1.1-2ubuntu1) kinetic; urgency=medium - * debian: Prepare for ubuntu branching - * debian/control: Update gnome-control-center breaks version for ubuntu. - We need to ensure that g-c-c that uses new RDP and VNC gsettings keys is - upgraded together with g-r-d as per lp:1968518. - So lower the debian breaks to the ubuntu version. + * Merge with Debian. Remaining change: + - Lower gnome-control-center dependency to 41 - -- Marco Trevisan (Treviño) Thu, 14 Apr 2022 14:06:18 +0200 + -- Jeremy Bicha Thu, 12 May 2022 15:21:47 -0400 + +gnome-remote-desktop (42.1.1-2) unstable; urgency=high + + * Don't automatically enable the systemd user service (LP: #1973028) + * Add postinst to remove the automatic enabling of the user service + * debian/control: Lower mutter dependency so that these fixes reach + Testing sooner + + -- Jeremy Bicha Thu, 12 May 2022 15:19:46 -0400 + +gnome-remote-desktop (42.1.1-1) unstable; urgency=medium + + * New upstream release (LP: #1970662) + - Fixes black screen with virtio on qemu (LP: #1971195) + * Drop all patches: applied in new release + * Depend on libmutter instead of gnome-shell | budgie-desktop + - This is a more accurate dependency + * Require libmutter 42.1 for Nvidia fixes + * Depend on fuse3 (Closes: #998846) (LP: #1970411) + + -- Jeremy Bicha Tue, 10 May 2022 14:50:48 -0400 gnome-remote-desktop (42.0-4) unstable; urgency=medium diff -Nru gnome-remote-desktop-42.0/debian/control gnome-remote-desktop-42.1.1/debian/control --- gnome-remote-desktop-42.0/debian/control 2022-04-14 12:06:18.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/control 2022-05-12 19:21:47.000000000 +0000 @@ -28,20 +28,19 @@ meson (>= 0.47.0), systemd, Standards-Version: 4.6.0 -XS-Debian-Vcs-Git: https://salsa.debian.org/gnome-team/gnome-remote-desktop.git -XS-Debian-Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-remote-desktop -Vcs-Git: https://salsa.debian.org/gnome-team/gnome-remote-desktop.git -b ubuntu/jammy -Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-remote-desktop/tree/ubuntu/jammy +Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-remote-desktop +Vcs-Git: https://salsa.debian.org/gnome-team/gnome-remote-desktop.git Homepage: https://wiki.gnome.org/Projects/Mutter/RemoteDesktop Package: gnome-remote-desktop Architecture: linux-any Depends: ${misc:Depends}, ${shlibs:Depends}, - gnome-shell (>= 3.37.92-2~) | budgie-desktop (>= 10.5.2), + fuse3, + libmutter-10-0 (>= 42), pipewire (>= 0.3.0), pipewire-media-session | wireplumber, -Breaks: gnome-control-center (<< 1:41.4-1ubuntu10) +Breaks: gnome-control-center (<< 1:41.4-1ubuntu12~) Description: Remote desktop daemon for GNOME using PipeWire This daemon enables GNOME to offer remote desktop sharing using VNC with PipeWire. It supports both GNOME on X and GNOME on Wayland. diff -Nru gnome-remote-desktop-42.0/debian/control.in gnome-remote-desktop-42.1.1/debian/control.in --- gnome-remote-desktop-42.0/debian/control.in 2022-04-14 12:06:18.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/control.in 2022-05-12 19:21:47.000000000 +0000 @@ -24,20 +24,19 @@ meson (>= 0.47.0), systemd, Standards-Version: 4.6.0 -XS-Debian-Vcs-Git: https://salsa.debian.org/gnome-team/gnome-remote-desktop.git -XS-Debian-Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-remote-desktop -Vcs-Git: https://salsa.debian.org/gnome-team/gnome-remote-desktop.git -b ubuntu/jammy -Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-remote-desktop/tree/ubuntu/jammy +Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-remote-desktop +Vcs-Git: https://salsa.debian.org/gnome-team/gnome-remote-desktop.git Homepage: https://wiki.gnome.org/Projects/Mutter/RemoteDesktop Package: gnome-remote-desktop Architecture: linux-any Depends: ${misc:Depends}, ${shlibs:Depends}, - gnome-shell (>= 3.37.92-2~) | budgie-desktop (>= 10.5.2), + fuse3, + libmutter-10-0 (>= 42), pipewire (>= 0.3.0), pipewire-media-session | wireplumber, -Breaks: gnome-control-center (<< 1:41.4-1ubuntu10) +Breaks: gnome-control-center (<< 1:41.4-1ubuntu12~) Description: Remote desktop daemon for GNOME using PipeWire This daemon enables GNOME to offer remote desktop sharing using VNC with PipeWire. It supports both GNOME on X and GNOME on Wayland. diff -Nru gnome-remote-desktop-42.0/debian/gbp.conf gnome-remote-desktop-42.1.1/debian/gbp.conf --- gnome-remote-desktop-42.0/debian/gbp.conf 2022-04-14 12:06:18.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/gbp.conf 2022-05-12 19:21:47.000000000 +0000 @@ -1,7 +1,6 @@ [DEFAULT] pristine-tar = True -debian-branch = ubuntu/jammy -debian-tag=ubuntu/%(version)s +debian-branch = debian/master upstream-branch = upstream/latest [buildpackage] diff -Nru gnome-remote-desktop-42.0/debian/patches/egl-thread-Add-API-to-retrieve-the-dma-buf-availability.patch gnome-remote-desktop-42.1.1/debian/patches/egl-thread-Add-API-to-retrieve-the-dma-buf-availability.patch --- gnome-remote-desktop-42.0/debian/patches/egl-thread-Add-API-to-retrieve-the-dma-buf-availability.patch 2022-04-14 12:06:18.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/patches/egl-thread-Add-API-to-retrieve-the-dma-buf-availability.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -From: Pascal Nowack -Date: Tue, 12 Apr 2022 08:39:32 +0200 -Subject: egl-thread: Add API to retrieve the dma-buf availability - -With the NVIDIA 495 driver and later, NVIDIA supports GBM, but -apparently is still unable to create or import dma-bufs. -As a result, connecting to gnome-remote-desktop, which runs on a system -with an NVIDIA GPU and the 495 driver or later, results in a black -screen. - -So, add an API to retrieve the dma-buf support availability. -Also treat the EGL platform EGL_PLATFORM_DEVICE_EXT always as -unsupported-for-dma-bufs. -This still allows the EGL thread to be used to upload frame content for -the use in CUDA and NVENC, while using dma-bufs on systems, that don't -suffer from such defects. ---- - src/grd-egl-thread.c | 9 +++++++++ - src/grd-egl-thread.h | 2 ++ - 2 files changed, 11 insertions(+) - -diff --git a/src/grd-egl-thread.c b/src/grd-egl-thread.c -index e4fdcf9..d611172 100644 ---- a/src/grd-egl-thread.c -+++ b/src/grd-egl-thread.c -@@ -32,6 +32,8 @@ struct _GrdEglThread - GMutex mutex; - GCond cond; - -+ gboolean supports_dma_bufs; -+ - GAsyncQueue *task_queue; - - GHashTable *modifiers; -@@ -378,6 +380,7 @@ grd_egl_init_in_impl (GrdEglThread *egl_thread, - { - g_debug ("EGL context initialized with platform " - "EGL_PLATFORM_SURFACELESS_MESA"); -+ egl_thread->supports_dma_bufs = TRUE; - } - else - { -@@ -620,6 +623,12 @@ grd_egl_thread_free (GrdEglThread *egl_thread) - g_free (egl_thread); - } - -+gboolean -+grd_egl_thread_supports_dma_bufs (GrdEglThread *egl_thread) -+{ -+ return egl_thread->supports_dma_bufs; -+} -+ - static EGLImageKHR - create_dmabuf_image (GrdEglThread *egl_thread, - unsigned int width, -diff --git a/src/grd-egl-thread.h b/src/grd-egl-thread.h -index 93fa891..2a92dbb 100644 ---- a/src/grd-egl-thread.h -+++ b/src/grd-egl-thread.h -@@ -43,6 +43,8 @@ GrdEglThread * grd_egl_thread_new (GError **error); - - void grd_egl_thread_free (GrdEglThread *egl_thread); - -+gboolean grd_egl_thread_supports_dma_bufs (GrdEglThread *egl_thread); -+ - void grd_egl_thread_download (GrdEglThread *egl_thread, - uint32_t pbo, - uint32_t pbo_height, diff -Nru gnome-remote-desktop-42.0/debian/patches/rdp-pipewire-stream-Only-advertise-dma-buf-support-when-a.patch gnome-remote-desktop-42.1.1/debian/patches/rdp-pipewire-stream-Only-advertise-dma-buf-support-when-a.patch --- gnome-remote-desktop-42.0/debian/patches/rdp-pipewire-stream-Only-advertise-dma-buf-support-when-a.patch 2022-04-14 12:06:18.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/patches/rdp-pipewire-stream-Only-advertise-dma-buf-support-when-a.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -From: Pascal Nowack -Date: Tue, 12 Apr 2022 08:51:28 +0200 -Subject: rdp-pipewire-stream: Only advertise dma-buf support when available - -Use the previously implemented API in the EGL thread to determine, -whether dma-bufs can be used or not. - -https://gitlab.gnome.org/GNOME/gnome-remote-desktop/-/issues/89 ---- - src/grd-rdp-pipewire-stream.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/grd-rdp-pipewire-stream.c b/src/grd-rdp-pipewire-stream.c -index 6e07b4c..5f8cb24 100644 ---- a/src/grd-rdp-pipewire-stream.c -+++ b/src/grd-rdp-pipewire-stream.c -@@ -444,7 +444,7 @@ on_stream_param_changed (void *user_data, - pod_builder = SPA_POD_BUILDER_INIT (params_buffer, sizeof (params_buffer)); - - allowed_buffer_types = 1 << SPA_DATA_MemFd; -- if (egl_thread) -+ if (egl_thread && grd_egl_thread_supports_dma_bufs (egl_thread)) - allowed_buffer_types |= 1 << SPA_DATA_DmaBuf; - - params[0] = spa_pod_builder_add_object ( -@@ -1118,7 +1118,7 @@ connect_to_stream (GrdRdpPipeWireStream *stream, - refresh_rate); - - egl_thread = grd_context_get_egl_thread (context); -- if (egl_thread) -+ if (egl_thread && grd_egl_thread_supports_dma_bufs (egl_thread)) - { - uint32_t drm_format; - int n_modifiers; diff -Nru gnome-remote-desktop-42.0/debian/patches/series gnome-remote-desktop-42.1.1/debian/patches/series --- gnome-remote-desktop-42.0/debian/patches/series 2022-04-14 12:06:18.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/patches/series 2022-05-12 19:21:47.000000000 +0000 @@ -1,6 +0,0 @@ -systemd-Autostart-as-part-of-gnome-session.target.patch -session-rdp-Fix-typo-in-warning-message.patch -session-rdp-Only-show-NSC-disable-message-when-NSC-is-ava.patch -egl-thread-Add-API-to-retrieve-the-dma-buf-availability.patch -rdp-pipewire-stream-Only-advertise-dma-buf-support-when-a.patch -vnc-pipewire-stream-Only-advertise-dma-buf-support-when-a.patch diff -Nru gnome-remote-desktop-42.0/debian/patches/session-rdp-Fix-typo-in-warning-message.patch gnome-remote-desktop-42.1.1/debian/patches/session-rdp-Fix-typo-in-warning-message.patch --- gnome-remote-desktop-42.0/debian/patches/session-rdp-Fix-typo-in-warning-message.patch 2022-04-14 12:06:18.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/patches/session-rdp-Fix-typo-in-warning-message.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -From: Pascal Nowack -Date: Tue, 12 Apr 2022 08:34:14 +0200 -Subject: session-rdp: Fix typo in warning message - ---- - src/grd-session-rdp.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/grd-session-rdp.c b/src/grd-session-rdp.c -index 67d0327..a27477b 100644 ---- a/src/grd-session-rdp.c -+++ b/src/grd-session-rdp.c -@@ -1714,7 +1714,7 @@ rdp_peer_post_connect (freerdp_peer *peer) - if (!rdp_settings->SupportGraphicsPipeline && - !rdp_settings->RemoteFxCodec) - { -- g_warning ("[RDP] Client does neither support RFX nor GFX. This is will " -+ g_warning ("[RDP] Client does neither support RFX nor GFX. This will " - "result in heavy performance and heavy bandwidth usage " - "regressions. The legacy path is deprecated!"); - } diff -Nru gnome-remote-desktop-42.0/debian/patches/session-rdp-Only-show-NSC-disable-message-when-NSC-is-ava.patch gnome-remote-desktop-42.1.1/debian/patches/session-rdp-Only-show-NSC-disable-message-when-NSC-is-ava.patch --- gnome-remote-desktop-42.0/debian/patches/session-rdp-Only-show-NSC-disable-message-when-NSC-is-ava.patch 2022-04-14 12:06:18.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/patches/session-rdp-Only-show-NSC-disable-message-when-NSC-is-ava.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -From: Pascal Nowack -Date: Tue, 12 Apr 2022 08:35:03 +0200 -Subject: session-rdp: Only show NSC disable message, when NSC is available - ---- - src/grd-session-rdp.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/grd-session-rdp.c b/src/grd-session-rdp.c -index a27477b..56feb94 100644 ---- a/src/grd-session-rdp.c -+++ b/src/grd-session-rdp.c -@@ -1705,6 +1705,7 @@ rdp_peer_post_connect (freerdp_peer *peer) - - if (!rdp_settings->SupportGraphicsPipeline && - !rdp_settings->RemoteFxCodec && -+ rdp_settings->NSCodec && - rdp_settings->MultifragMaxRequestSize < 0x3F0000) - { - g_message ("Disabling NSCodec since it does not support fragmentation"); diff -Nru gnome-remote-desktop-42.0/debian/patches/systemd-Autostart-as-part-of-gnome-session.target.patch gnome-remote-desktop-42.1.1/debian/patches/systemd-Autostart-as-part-of-gnome-session.target.patch --- gnome-remote-desktop-42.0/debian/patches/systemd-Autostart-as-part-of-gnome-session.target.patch 2022-04-14 12:06:18.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/patches/systemd-Autostart-as-part-of-gnome-session.target.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -From: Jeremy Bicha -Date: Mon, 11 Apr 2022 17:20:35 -0400 -Subject: systemd: Autostart as part of gnome-session.target - -Needed after this change: -https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/commit/58add519 - -Thanks: vtq - -Closes: https://gitlab.gnome.org/GNOME/gnome-remote-desktop/-/issues/93 -(cherry picked from commit 7f4ef31fd380dffc108e5c7f77c81fbaa271ec7b) ---- - src/gnome-remote-desktop.service.in | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/gnome-remote-desktop.service.in b/src/gnome-remote-desktop.service.in -index 8dc41ad..6c0dcfc 100644 ---- a/src/gnome-remote-desktop.service.in -+++ b/src/gnome-remote-desktop.service.in -@@ -6,3 +6,6 @@ Type=dbus - BusName=org.gnome.RemoteDesktop - ExecStart=@libexecdir@/gnome-remote-desktop-daemon - Restart=on-failure -+ -+[Install] -+WantedBy=gnome-session.target diff -Nru gnome-remote-desktop-42.0/debian/patches/vnc-pipewire-stream-Only-advertise-dma-buf-support-when-a.patch gnome-remote-desktop-42.1.1/debian/patches/vnc-pipewire-stream-Only-advertise-dma-buf-support-when-a.patch --- gnome-remote-desktop-42.0/debian/patches/vnc-pipewire-stream-Only-advertise-dma-buf-support-when-a.patch 2022-04-14 12:06:18.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/patches/vnc-pipewire-stream-Only-advertise-dma-buf-support-when-a.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -From: Pascal Nowack -Date: Tue, 12 Apr 2022 08:56:45 +0200 -Subject: vnc-pipewire-stream: Only advertise dma-buf support when available - -Use the previously implemented API in the EGL thread to determine, -whether dma-bufs can be used or not. - -https://gitlab.gnome.org/GNOME/gnome-remote-desktop/-/issues/89 ---- - src/grd-vnc-pipewire-stream.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/src/grd-vnc-pipewire-stream.c b/src/grd-vnc-pipewire-stream.c -index cc1a29b..6ef7bee 100644 ---- a/src/grd-vnc-pipewire-stream.c -+++ b/src/grd-vnc-pipewire-stream.c -@@ -194,6 +194,7 @@ on_stream_param_changed (void *user_data, - GrdVncPipeWireStream *stream = GRD_VNC_PIPEWIRE_STREAM (user_data); - GrdSession *session = GRD_SESSION (stream->session); - GrdContext *context = grd_session_get_context (session); -+ GrdEglThread *egl_thread = grd_context_get_egl_thread (context); - uint8_t params_buffer[1024]; - struct spa_pod_builder pod_builder; - int width; -@@ -217,7 +218,7 @@ on_stream_param_changed (void *user_data, - grd_session_vnc_queue_resize_framebuffer (stream->session, width, height); - - allowed_buffer_types = 1 << SPA_DATA_MemFd; -- if (grd_context_get_egl_thread (context)) -+ if (egl_thread && grd_egl_thread_supports_dma_bufs (egl_thread)) - allowed_buffer_types |= 1 << SPA_DATA_DmaBuf; - - params[0] = spa_pod_builder_add_object ( -@@ -746,7 +747,7 @@ connect_to_stream (GrdVncPipeWireStream *stream, - add_common_format_params (&pod_builder, spa_format); - - egl_thread = grd_context_get_egl_thread (context); -- if (egl_thread) -+ if (egl_thread && grd_egl_thread_supports_dma_bufs (egl_thread)) - { - uint32_t drm_format; - int n_modifiers; diff -Nru gnome-remote-desktop-42.0/debian/postinst gnome-remote-desktop-42.1.1/debian/postinst --- gnome-remote-desktop-42.0/debian/postinst 1970-01-01 00:00:00.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/postinst 2022-05-12 19:21:47.000000000 +0000 @@ -0,0 +1,16 @@ +#! /bin/sh +set -e + +case "$1" in + configure) + # Disable the job by default for users updating from a buggy version + if dpkg --compare-versions "$2" lt-nl 42.1.1-2~; then + if deb-systemd-helper --user --quiet was-enabled 'gnome-remote-desktop.service'; then + printf "Disable user unit that shouldn't have been auto enabled\n" + deb-systemd-helper --user disable 'gnome-remote-desktop.service' >/dev/null || true + fi + fi + ;; +esac + +#DEBHELPER# diff -Nru gnome-remote-desktop-42.0/debian/rules gnome-remote-desktop-42.1.1/debian/rules --- gnome-remote-desktop-42.0/debian/rules 2022-04-14 12:06:18.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/rules 2022-05-12 19:21:47.000000000 +0000 @@ -8,3 +8,7 @@ override_dh_auto_test: dh_auto_test || true + +# https://launchpad.net/bugs/1973028 +override_dh_installsystemduser: + dh_installsystemduser --no-enable diff -Nru gnome-remote-desktop-42.0/debian/watch gnome-remote-desktop-42.1.1/debian/watch --- gnome-remote-desktop-42.0/debian/watch 2022-04-14 12:06:18.000000000 +0000 +++ gnome-remote-desktop-42.1.1/debian/watch 2022-05-12 19:21:47.000000000 +0000 @@ -1,4 +1,4 @@ version=4 -opts="searchmode=plain, uversionmangle=s/\.(alpha|beta|rc)/~$1/" \ +opts="searchmode=plain, uversionmangle=s/\.(alpha|beta|rc)/~$1/, downloadurlmangle=s|cache.json||" \ https://download.gnome.org/sources/@PACKAGE@/cache.json \ [\d.]+/@PACKAGE@-([\d.]+)@ARCHIVE_EXT@ diff -Nru gnome-remote-desktop-42.0/meson.build gnome-remote-desktop-42.1.1/meson.build --- gnome-remote-desktop-42.0/meson.build 2022-03-21 06:07:56.010828700 +0000 +++ gnome-remote-desktop-42.1.1/meson.build 2022-04-26 19:59:53.846848200 +0000 @@ -1,5 +1,5 @@ project('gnome-remote-desktop', 'c', - version: '42.0', + version: '42.1.1', meson_version: '>= 0.47.0', default_options: ['warning_level=1', 'buildtype=debugoptimized']) diff -Nru gnome-remote-desktop-42.0/po/en_GB.po gnome-remote-desktop-42.1.1/po/en_GB.po --- gnome-remote-desktop-42.0/po/en_GB.po 2022-03-21 06:07:56.011829000 +0000 +++ gnome-remote-desktop-42.1.1/po/en_GB.po 2022-04-26 19:59:53.846848200 +0000 @@ -2,24 +2,30 @@ # Copyright (C) 2021 gnome-remote-desktop's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-remote-desktop package. # Zander Brown , 2021. +# Bruce Cowan , 2022. # msgid "" msgstr "" "Project-Id-Version: gnome-remote-desktop master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-remote-desktop/" "issues\n" -"POT-Creation-Date: 2021-07-28 15:25+0000\n" -"PO-Revision-Date: 2021-07-31 20:00+0100\n" -"Last-Translator: Zander Brown \n" -"Language-Team: English - United Kingdom \n" +"POT-Creation-Date: 2022-02-25 22:19+0000\n" +"PO-Revision-Date: 2022-04-14 22:01+0100\n" +"Last-Translator: Bruce Cowan \n" +"Language-Team: English - United Kingdom \n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Gtranslator 40.0\n" +"X-Generator: Gtranslator 42.0\n" +"X-DL-Team: en_GB\n" +"X-DL-Module: gnome-remote-desktop\n" +"X-DL-Branch: master\n" +"X-DL-Domain: po\n" +"X-DL-State: Translating\n" -#: src/grd-daemon.c:351 +#: src/grd-daemon.c:423 msgid "GNOME Remote Desktop" msgstr "GNOME Remote Desktop" @@ -45,12 +51,139 @@ msgid "Accept" msgstr "Accept" +#: src/grd-ctl.c:44 +#, c-format +msgid "Usage: %s [OPTIONS...] COMMAND [SUBCOMMAND]...\n" +msgstr "Usage: %s [OPTIONS...] COMMAND [SUBCOMMAND]...\n" + +#: src/grd-ctl.c:383 +msgid "Commands:\n" +msgstr "Commands:\n" + +#: src/grd-ctl.c:388 +msgid "" +" rdp - RDP subcommands:\n" +" enable - Enable the RDP backend\n" +" disable - Disable the RDP backend\n" +" set-tls-cert - Set path to TLS certificate\n" +" set-tls-key - Set path to TLS key\n" +" set-credentials - Set username and password\n" +" credentials\n" +" clear-credentials - Clear username and password\n" +" credentials\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" +msgstr "" +" rdp - RDP subcommands:\n" +" enable - Enable the RDP backend\n" +" disable - Disable the RDP backend\n" +" set-tls-cert - Set path to TLS certificate\n" +" set-tls-key - Set path to TLS key\n" +" set-credentials - Set username and password\n" +" credentials\n" +" clear-credentials - Clear username and password\n" +" credentials\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" + +#: src/grd-ctl.c:407 +msgid "" +" vnc - VNC subcommands:\n" +" enable - Enable the VNC backend\n" +" disable - Disable the VNC backend\n" +" set-password - Set the VNC password\n" +" clear-password - Clear the VNC password\n" +" set-auth-method password|prompt - Set the authorization method\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" +msgstr "" +" vnc - VNC subcommands:\n" +" enable - Enable the VNC backend\n" +" disable - Disable the VNC backend\n" +" set-password - Set the VNC password\n" +" clear-password - Clear the VNC password\n" +" set-auth-method password|prompt - Set the authorisation method\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" + +#: src/grd-ctl.c:422 +msgid "" +" status [--show-credentials] - Show current status\n" +"\n" +"Options:\n" +" --help - Print this help text\n" +msgstr "" +" status [--show-credentials] - Show current status\n" +"\n" +"Options:\n" +" --help - Print this help text\n" + #: src/org.gnome.desktop.remote-desktop.gschema.xml.in:7 +msgid "Whether the RDP backend is enabled or not" +msgstr "Whether the RDP backend is enabled or not" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8 +msgid "If set to to 'true' the RDP backend will be initialized." +msgstr "If set to to 'true' the RDP backend will be initialised." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:14 +msgid "Screenshare mode of RDP connections" +msgstr "Screenshare mode of RDP connections" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:15 +msgid "" +"The screenshare mode specifies, whether the RDP backend mirrors the primary " +"screen, or whether a virtual monitor is created. For the initial resolution " +"of the virtual monitor, the RDP backend uses either the client core data " +"([MS-RDPBCGR] 2.2.1.3.2) or the client monitor data ([MS-RDPBCGR] " +"2.2.1.3.6), depending on what is available. When using a remote desktop " +"session with a virtual monitor, clients can resize the resolution of the " +"virtual monitor during a session with the Display Control Channel Extension " +"([MS-RDPEDISP]). Allowed screenshare modes include: * mirror-primary - " +"Record the primary monitor of the current user session. * extend - Create a " +"new virtual monitor and use it for the remote desktop session. The " +"resolution of this virtual monitor is derived from the monitor " +"configuration, submitted by the remote desktop client." +msgstr "" +"The screenshare mode specifies, whether the RDP backend mirrors the primary " +"screen, or whether a virtual monitor is created. For the initial resolution " +"of the virtual monitor, the RDP backend uses either the client core data " +"([MS-RDPBCGR] 2.2.1.3.2) or the client monitor data ([MS-RDPBCGR] " +"2.2.1.3.6), depending on what is available. When using a remote desktop " +"session with a virtual monitor, clients can resize the resolution of the " +"virtual monitor during a session with the Display Control Channel Extension " +"([MS-RDPEDISP]). Allowed screenshare modes include: * mirror-primary - " +"Record the primary monitor of the current user session. * extend - Create a " +"new virtual monitor and use it for the remote desktop session. The " +"resolution of this virtual monitor is derived from the monitor " +"configuration, submitted by the remote desktop client." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41 msgid "Path to the certificate file" msgstr "Path to the certificate file" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8 -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:16 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:42 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:50 msgid "" "In order to be able to use RDP with TLS Security, both the private key file " "and the certificate file need to be provided to the RDP server." @@ -58,16 +191,16 @@ "To be able to use RDP with TLS Security, both the private key file and the " "certificate file need to be provided to the RDP server." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:15 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:49 msgid "Path to the private key file" msgstr "Path to the private key file" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:23 -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:33 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:57 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:74 msgid "Only allow remote connections to view the screen content" msgstr "Only allow remote connections to view the screen content" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:24 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:58 msgid "" "When view-only is true, remote RDP connections cannot manipulate input " "devices (e.g. mouse and keyboard)." @@ -75,7 +208,15 @@ "When view-only is true, remote RDP connections cannot manipulate input " "devices (e.g. mouse and keyboard)." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:34 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:67 +msgid "Whether the VNC backend is enabled or not" +msgstr "Whether the VNC backend is enabled or not" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:68 +msgid "If set to to 'true' the VNC backend will be initialized." +msgstr "If set to to 'true' the VNC backend will be initialised." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:75 msgid "" "When view-only is true, remote VNC connections cannot manipulate input " "devices (e.g. mouse and keyboard)." @@ -83,11 +224,11 @@ "When view-only is true, remote VNC connections cannot manipulate input " "devices (e.g. mouse and keyboard)." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:82 msgid "Method used to authenticate VNC connections" msgstr "Method used to authenticate VNC connections" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:42 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:83 msgid "" "The VNC authentication method describes how a remote connection is " "authenticated. It can currently be done in two different ways: * prompt - by " diff -Nru gnome-remote-desktop-42.0/po/fur.po gnome-remote-desktop-42.1.1/po/fur.po --- gnome-remote-desktop-42.0/po/fur.po 2022-03-21 06:07:56.011829000 +0000 +++ gnome-remote-desktop-42.1.1/po/fur.po 2022-04-26 19:59:53.847848400 +0000 @@ -6,20 +6,20 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-remote-desktop/" -"issues\n" -"POT-Creation-Date: 2021-07-25 14:14+0000\n" -"PO-Revision-Date: 2021-07-25 23:26+0200\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-remote-desktop/issues\n" +"POT-Creation-Date: 2022-02-25 22:19+0000\n" +"PO-Revision-Date: 2022-04-12 09:39+0000\n" +"Last-Translator: Fabio Tomat \n" "Language-Team: Friulian \n" +"Language: fur\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.0\n" -"Last-Translator: Fabio Tomat \n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Language: fur\n" +"X-Editor: HaiPO 1.2 b1\n" +"X-Generator: Poedit 3.0\n" -#: src/grd-daemon.c:351 +#: src/grd-daemon.c:423 msgid "GNOME Remote Desktop" msgstr "Scritori lontan di GNOME" @@ -34,8 +34,8 @@ "A user on the computer '%s' is trying to remotely view or control your " "desktop." msgstr "" -"Un utent sul computer '%s' al sta cirint di viodi di lontan o controlâ il to " -"scritori." +"Un utent sul computer '%s' al sta cirint di viodi di lontan o controlâ il to" +" scritori." #: src/grd-prompt.c:131 msgid "Refuse" @@ -45,12 +45,119 @@ msgid "Accept" msgstr "Acete" +#: src/grd-ctl.c:44 +#, c-format +msgid "Usage: %s [OPTIONS...] COMMAND [SUBCOMMAND]...\n" +msgstr "Utilizazion: %s [OPZIONS...] COMANT [SOT-COMANT]...\n" + +#: src/grd-ctl.c:383 +msgid "Commands:\n" +msgstr "Comants:\n" + +#: src/grd-ctl.c:388 +msgid "" +" rdp - RDP subcommands:\n" +" enable - Enable the RDP backend\n" +" disable - Disable the RDP backend\n" +" set-tls-cert - Set path to TLS certificate\n" +" set-tls-key - Set path to TLS key\n" +" set-credentials - Set username and password\n" +" credentials\n" +" clear-credentials - Clear username and password\n" +" credentials\n" +" enable-view-only - Disable remote control of input\n" +" devices\n" +" disable-view-only - Enable remote control of input\n" +" devices\n" +"\n" +msgstr "" +"rdp - RDP sot-comants:\n" +" enable - Abilite il backend di RDP\n" +" disable - Disabilite il backend di RDP\n" +" set-tls-cert - Stabilìs il percors pal certificât TLS\n" +" set-tls-key - Stabilìs il percors pe clâf TLS\n" +" set-credentials - Stabilìs lis credenziâls dal non\n" +" non utent e de password\n" +" clear-credentials - Nete vie lis credenziâls dal non utent\n" +" e de password\n" +" enable-view-only - Disabilite il control di lontan dai\n" +" dispositîfs di input\n" +" disable-view-only - Abilite il control di lontan dai\n" +" dispositîfs di input\n" +"\n" + +#: src/grd-ctl.c:407 +msgid "" +" vnc - VNC subcommands:\n" +" enable - Enable the VNC backend\n" +" disable - Disable the VNC backend\n" +" set-password - Set the VNC password\n" +" clear-password - Clear the VNC password\n" +" set-auth-method password|prompt - Set the authorization method\n" +" enable-view-only - Disable remote control of input\n" +" devices\n" +" disable-view-only - Enable remote control of input\n" +" devices\n" +"\n" +msgstr "" +" vnc - sot-comants di VNC:\n" +" enable - Abilite il backend di VNC\n" +" disable - Disabilite il backend di VNC\n" +" set-password - Stabilìs la password di VNC\n" +" clear-password - Nete vie la password di VNC\n" +" set-auth-method password|prompt - Stabilìs il metodi pe autorizazion\n" +" enable-view-only - Disabilite il control di lontan dai\n" +" dispositîfs di input\n" +" disable-view-only - Abilite il control di lontan dai\n" +" dispositîfs di input\n" +"\n" + +#: src/grd-ctl.c:422 +msgid "" +" status [--show-credentials] - Show current status\n" +"\n" +"Options:\n" +" --help - Print this help text\n" +msgstr "" +" status [--show-credentials] - Mostre il stât atuâl\n" +"\n" +"Opzions:\n" +" --help - Mostre chest test di jutori\n" + #: src/org.gnome.desktop.remote-desktop.gschema.xml.in:7 +msgid "Whether the RDP backend is enabled or not" +msgstr "Indiche se il backend RDP al è abilitât o mancul" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8 +msgid "If set to to 'true' the RDP backend will be initialized." +msgstr "Se metût a 'true' il backend RDP al vignarà inizializât." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:14 +msgid "Screenshare mode of RDP connections" +msgstr "Modalitât di condivision dal schermi des conessions RDP" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:15 +msgid "" +"The screenshare mode specifies, whether the RDP backend mirrors the primary " +"screen, or whether a virtual monitor is created. For the initial resolution " +"of the virtual monitor, the RDP backend uses either the client core data " +"([MS-RDPBCGR] 2.2.1.3.2) or the client monitor data ([MS-RDPBCGR] " +"2.2.1.3.6), depending on what is available. When using a remote desktop " +"session with a virtual monitor, clients can resize the resolution of the " +"virtual monitor during a session with the Display Control Channel Extension " +"([MS-RDPEDISP]). Allowed screenshare modes include: * mirror-primary - " +"Record the primary monitor of the current user session. * extend - Create a " +"new virtual monitor and use it for the remote desktop session. The " +"resolution of this virtual monitor is derived from the monitor " +"configuration, submitted by the remote desktop client." +msgstr "Modalitât di condivision dal schermi des conessions RDP" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41 msgid "Path to the certificate file" msgstr "Percors al file dal certificât" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8 -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:16 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:42 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:50 msgid "" "In order to be able to use RDP with TLS Security, both the private key file " "and the certificate file need to be provided to the RDP server." @@ -58,45 +165,53 @@ "Par podê rivâ a doprâ RDP cu la sigurece TLS, il servidôr RDP al à di furnî " "sedi il file de clâf privade sedi il file dal certificât." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:15 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:49 msgid "Path to the private key file" msgstr "Percors al file de clâf privade" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:23 -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:33 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:57 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:74 msgid "Only allow remote connections to view the screen content" msgstr "Permet aes conessions esternis dome di viodi il contignût dal schermi" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:24 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:58 msgid "" "When view-only is true, remote RDP connections cannot manipulate input " "devices (e.g. mouse and keyboard)." msgstr "" -"Cuant che view-only al è vêr, lis conessions esternis RDP no puedin manipolâ " -"i dispositîfs di input (p.e. mouse e tastiere)." +"Cuant che view-only al è vêr, lis conessions esternis RDP no puedin manipolâ" +" i dispositîfs di input (p.e. mouse e tastiere)." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:67 +msgid "Whether the VNC backend is enabled or not" +msgstr "Indiche se il backend di VNC al è abilitât o mancul" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:68 +msgid "If set to to 'true' the VNC backend will be initialized." +msgstr "Se metût a 'true' il backend di VNC al vignarà inizializât." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:34 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:75 msgid "" "When view-only is true, remote VNC connections cannot manipulate input " "devices (e.g. mouse and keyboard)." msgstr "" -"Cuant che view-only al è vêr, lis conessions VNC esternis no puedin manipolâ " -"i dispositîfs di input (p.e. mouse e tastiere)." +"Cuant che view-only al è vêr, lis conessions VNC esternis no puedin manipolâ" +" i dispositîfs di input (p.e. mouse e tastiere)." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:82 msgid "Method used to authenticate VNC connections" msgstr "Metodi doprât par autenticâ lis conessions VNC" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:42 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:83 msgid "" "The VNC authentication method describes how a remote connection is " -"authenticated. It can currently be done in two different ways: * prompt - by " -"prompting the user for each new connection, requiring a person with physical " -"access to the workstation to explicitly approve the new connection. * " -"password - by requiring the remote client to provide a known password" +"authenticated. It can currently be done in two different ways: * prompt - by" +" prompting the user for each new connection, requiring a person with " +"physical access to the workstation to explicitly approve the new connection." +" * password - by requiring the remote client to provide a known password" msgstr "" -"Il metodi di autenticazion VNC al descrîf cemût che e à di vignî autenticade " -"une conession esterne. Pal moment si pues fâ in dôs manieris: * prompt - " +"Il metodi di autenticazion VNC al descrîf cemût che e à di vignî autenticade" +" une conession esterne. Pal moment si pues fâ in dôs manieris: * prompt - " "domandant al utent par ogni gnove conession, che al domande che une persone " "e vedi acès fisic ae postazion di lavôr par aprovâ in maniere esplicite lis " "gnovis conessions. * password - domandant al client lontan di furnî une " diff -Nru gnome-remote-desktop-42.0/po/hr.po gnome-remote-desktop-42.1.1/po/hr.po --- gnome-remote-desktop-42.0/po/hr.po 2022-03-21 06:07:56.012829000 +0000 +++ gnome-remote-desktop-42.1.1/po/hr.po 2022-04-26 19:59:53.847848400 +0000 @@ -8,8 +8,8 @@ "Project-Id-Version: gnome-remote-desktop master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-remote-desktop/" "issues\n" -"POT-Creation-Date: 2022-02-25 22:19+0000\n" -"PO-Revision-Date: 2022-03-02 16:34+0100\n" +"POT-Creation-Date: 2022-03-02 15:35+0000\n" +"PO-Revision-Date: 2022-03-28 18:29+0200\n" "Last-Translator: gogo \n" "Language-Team: Croatian \n" "Language: hr\n" @@ -22,7 +22,7 @@ #: src/grd-daemon.c:423 msgid "GNOME Remote Desktop" -msgstr "GNOME Radna površina" +msgstr "GNOME Udaljena radna površina" #: src/grd-prompt.c:124 #, c-format diff -Nru gnome-remote-desktop-42.0/po/LINGUAS gnome-remote-desktop-42.1.1/po/LINGUAS --- gnome-remote-desktop-42.0/po/LINGUAS 2022-03-21 06:07:56.010828700 +0000 +++ gnome-remote-desktop-42.1.1/po/LINGUAS 2022-04-26 19:59:53.846848200 +0000 @@ -41,3 +41,4 @@ uk vi zh_CN +zh_TW diff -Nru gnome-remote-desktop-42.0/po/nl.po gnome-remote-desktop-42.1.1/po/nl.po --- gnome-remote-desktop-42.0/po/nl.po 2022-03-21 06:07:56.012829000 +0000 +++ gnome-remote-desktop-42.1.1/po/nl.po 2022-04-26 19:59:53.848848300 +0000 @@ -4,14 +4,15 @@ # # Marcia van den Hout , 2021. # Hannie Dumoleyn , 2021. -# Nathan Follens , 2021. +# Nathan Follens , 2021-2022. +# Philip Goto , 2022. msgid "" msgstr "" "Project-Id-Version: gnome-remote-desktop.master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-remote-desktop/" "issues\n" -"POT-Creation-Date: 2021-06-27 14:13+0000\n" -"PO-Revision-Date: 2021-09-02 15:24+0200\n" +"POT-Creation-Date: 2022-03-08 09:54+0000\n" +"PO-Revision-Date: 2022-03-25 12:41+0100\n" "Last-Translator: Nathan Follens \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -19,9 +20,9 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.0\n" +"X-Generator: Poedit 3.0.1\n" -#: src/grd-daemon.c:351 +#: src/grd-daemon.c:423 msgid "GNOME Remote Desktop" msgstr "Gnome Extern bureaublad" @@ -47,12 +48,147 @@ msgid "Accept" msgstr "Accepteren" +#: src/grd-ctl.c:44 +#, c-format +msgid "Usage: %s [OPTIONS...] COMMAND [SUBCOMMAND]...\n" +msgstr "Gebruik: %s [OPTIES...] OPDRACHT [SUBOPDRACHT]...\n" + +#: src/grd-ctl.c:383 +msgid "Commands:\n" +msgstr "Opdrachten:\n" + +#: src/grd-ctl.c:388 +msgid "" +" rdp - RDP subcommands:\n" +" enable - Enable the RDP backend\n" +" disable - Disable the RDP backend\n" +" set-tls-cert - Set path to TLS certificate\n" +" set-tls-key - Set path to TLS key\n" +" set-credentials - Set username and password\n" +" credentials\n" +" clear-credentials - Clear username and password\n" +" credentials\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" +msgstr "" +" rdp - RDP-subopdrachten:\n" +" enable - De RDP-back-end inschakelen\n" +" disable - De RDP-back-end uitschakelen\n" +" set-tls-cert - Pad naar TLS-certificaat " +"instellen\n" +" set-tls-key - Pad naar TLS-sleutel " +"instellen\n" +" set-credentials - Gebruikersnaam en " +"wachtwoord instellen\n" +" credentials\n" +" clear-credentials - Gebruikersnaam en wachtwoord " +"wissen\n" +" credentials\n" +" enable-view-only - Externe bediening van invoer " +"uitschakelen\n" +" devices\n" +" disable-view-only - Externe bediening van invoer " +"inschakelen\n" +" devices\n" +"\n" + +#: src/grd-ctl.c:407 +msgid "" +" vnc - VNC subcommands:\n" +" enable - Enable the VNC backend\n" +" disable - Disable the VNC backend\n" +" set-password - Set the VNC password\n" +" clear-password - Clear the VNC password\n" +" set-auth-method password|prompt - Set the authorization method\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" +msgstr "" +" vnc - VNC-subopdrachten:\n" +" enable - De VNC-back-end inschakelen\n" +" disable - De VNC-back-end uitschakelen\n" +" set-password - Het VNC-wachtwoord " +"instellen\n" +" clear-password - Het VNC-wachtwoord wissen\n" +" set-auth-method password|prompt - De aanmeldingsmethode " +"instellen\n" +" enable-view-only - Externe bediening van invoer " +"uitschakelen\n" +" devices\n" +" disable-view-only - Externe bediening van invoer " +"inschakelen\n" +" devices\n" +"\n" + +#: src/grd-ctl.c:422 +msgid "" +" status [--show-credentials] - Show current status\n" +"\n" +"Options:\n" +" --help - Print this help text\n" +msgstr "" +" status [--show-credentials] - Huidige status tonen\n" +"\n" +"Opties:\n" +" --help - Deze hulptekst tonen\n" + #: src/org.gnome.desktop.remote-desktop.gschema.xml.in:7 +msgid "Whether the RDP backend is enabled or not" +msgstr "Of de RDP-backend is ingeschakeld of niet" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8 +msgid "If set to to 'true' the RDP backend will be initialized." +msgstr "Indien ingesteld op ‘waar’ zal de RDP-backend worden geïnitialiseerd." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:14 +msgid "Screenshare mode of RDP connections" +msgstr "Schermdeelmodus van RDP-verbindingen" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:15 +msgid "" +"The screenshare mode specifies, whether the RDP backend mirrors the primary " +"screen, or whether a virtual monitor is created. For the initial resolution " +"of the virtual monitor, the RDP backend uses either the client core data " +"([MS-RDPBCGR] 2.2.1.3.2) or the client monitor data ([MS-RDPBCGR] " +"2.2.1.3.6), depending on what is available. When using a remote desktop " +"session with a virtual monitor, clients can resize the resolution of the " +"virtual monitor during a session with the Display Control Channel Extension " +"([MS-RDPEDISP]). Allowed screenshare modes include: * mirror-primary - " +"Record the primary monitor of the current user session. * extend - Create a " +"new virtual monitor and use it for the remote desktop session. The " +"resolution of this virtual monitor is derived from the monitor " +"configuration, submitted by the remote desktop client." +msgstr "" +"De schermdeelmodus bepaalt of de RDP-back-end het hoofdscherm spiegelt, of " +"er een virtueel beeldscherm ingesteld wordt. Voor de beginresolutie van het " +"virtueel beeldscherm gebruikt de RDP-back-end de cliëntkerngegevens ([MS-" +"RDPBCGR] 2.2.1.3.2) of de cliëntbeeldschermgegevens ([MS-RDPBCGR] " +"2.2.1.3.6), afhankelijk van wat er beschikbaar is. Bij het gebruik van een " +"externe bureaubladsessie met een virtueel beeldscherm kunnen cliënten de " +"resolutie van het virtueel beeldscherm tijdens de sessies aanpassen met " +"behulp van de Display Control Channel Extension ([MS-RDPEDISP]). Toegestane " +"schermdeelmodi zijn: * mirror-primary (spiegel-hoofdscherm) - Neem het " +"hoofdbeeldscherm van de huidige gebruikerssessie op. * extend (uitbreiden) - " +"Stel een nieuw virtueel beeldscherm in en gebruik het voor de externe " +"bureaubladsessie. De resolutie van dit virtueel beeldscherm wordt afgeleid " +"uit de beeldschermconfiguratie die door de externe bureaubladcliënt wordt " +"meegedeeld." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41 msgid "Path to the certificate file" msgstr "Pad naar het certificaatbestand" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8 -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:16 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:42 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:50 msgid "" "In order to be able to use RDP with TLS Security, both the private key file " "and the certificate file need to be provided to the RDP server." @@ -61,16 +197,16 @@ "privésleutelbestand als het certificaatbestand aan de RDP-server worden " "verstrekt." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:15 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:49 msgid "Path to the private key file" msgstr "Pad naar het privésleutelbestand" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:23 -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:33 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:57 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:74 msgid "Only allow remote connections to view the screen content" msgstr "Externe verbindingen alleen toestaan om de scherminhoud te bekijken" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:24 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:58 msgid "" "When view-only is true, remote RDP connections cannot manipulate input " "devices (e.g. mouse and keyboard)." @@ -78,7 +214,15 @@ "Als alleen-lezen waar is, kunnen externe RDP-verbindingen geen " "invoerapparaten manipuleren (zoals muis en toetsenbord)." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:34 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:67 +msgid "Whether the VNC backend is enabled or not" +msgstr "Of de VNC-backend is ingeschakeld of niet" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:68 +msgid "If set to to 'true' the VNC backend will be initialized." +msgstr "Indien ingesteld op ‘waar’ zal de VNC-backend worden geïnitialiseerd." + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:75 msgid "" "When view-only is true, remote VNC connections cannot manipulate input " "devices (e.g. mouse and keyboard)." @@ -86,11 +230,11 @@ "Als alleen-lezen waar is, kunnen externe VNC-verbindingen geen " "invoerapparaten manipuleren (zoals muis en toetsenbord)." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:82 msgid "Method used to authenticate VNC connections" msgstr "Methode die wordt gebruikt om VNC-verbindingen te verifiëren" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:42 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:83 msgid "" "The VNC authentication method describes how a remote connection is " "authenticated. It can currently be done in two different ways: * prompt - by " diff -Nru gnome-remote-desktop-42.0/po/sk.po gnome-remote-desktop-42.1.1/po/sk.po --- gnome-remote-desktop-42.0/po/sk.po 2022-03-21 06:07:56.012829000 +0000 +++ gnome-remote-desktop-42.1.1/po/sk.po 2022-04-26 19:59:53.849848300 +0000 @@ -8,18 +8,18 @@ "Project-Id-Version: gnome-remote-desktop master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-remote-desktop/" "issues\n" -"POT-Creation-Date: 2021-08-31 03:50+0000\n" -"PO-Revision-Date: 2021-08-31 16:14+0200\n" +"POT-Creation-Date: 2022-02-25 22:19+0000\n" +"PO-Revision-Date: 2022-04-01 10:08+0200\n" +"Last-Translator: Dušan Kazik \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" -"Last-Translator: Dušan Kazik \n" -"X-Generator: Poedit 3.0\n" +"X-Generator: Poedit 3.0.1\n" -#: src/grd-daemon.c:351 +#: src/grd-daemon.c:423 msgid "GNOME Remote Desktop" msgstr "Vzdialená plocha prostredia GNOME" @@ -45,12 +45,98 @@ msgid "Accept" msgstr "Prijať" +#: src/grd-ctl.c:44 +#, c-format +msgid "Usage: %s [OPTIONS...] COMMAND [SUBCOMMAND]...\n" +msgstr "Použitie: %s [VOĽBY...] PRÍKAZ [PODPRÍKAZ]...\n" + +#: src/grd-ctl.c:383 +msgid "Commands:\n" +msgstr "Príkazy:\n" + +#: src/grd-ctl.c:388 +msgid "" +" rdp - RDP subcommands:\n" +" enable - Enable the RDP backend\n" +" disable - Disable the RDP backend\n" +" set-tls-cert - Set path to TLS certificate\n" +" set-tls-key - Set path to TLS key\n" +" set-credentials - Set username and password\n" +" credentials\n" +" clear-credentials - Clear username and password\n" +" credentials\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" +msgstr "" + +#: src/grd-ctl.c:407 +msgid "" +" vnc - VNC subcommands:\n" +" enable - Enable the VNC backend\n" +" disable - Disable the VNC backend\n" +" set-password - Set the VNC password\n" +" clear-password - Clear the VNC password\n" +" set-auth-method password|prompt - Set the authorization method\n" +" enable-view-only - Disable remote control of " +"input\n" +" devices\n" +" disable-view-only - Enable remote control of " +"input\n" +" devices\n" +"\n" +msgstr "" + +#: src/grd-ctl.c:422 +msgid "" +" status [--show-credentials] - Show current status\n" +"\n" +"Options:\n" +" --help - Print this help text\n" +msgstr "" +" status [--show-credentials] - Zobrazí aktuálny stav\n" +"\n" +"Voľby:\n" +" --help - Vypíše tento text pomocníka\n" + #: src/org.gnome.desktop.remote-desktop.gschema.xml.in:7 +msgid "Whether the RDP backend is enabled or not" +msgstr "" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8 +msgid "If set to to 'true' the RDP backend will be initialized." +msgstr "" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:14 +msgid "Screenshare mode of RDP connections" +msgstr "" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:15 +msgid "" +"The screenshare mode specifies, whether the RDP backend mirrors the primary " +"screen, or whether a virtual monitor is created. For the initial resolution " +"of the virtual monitor, the RDP backend uses either the client core data " +"([MS-RDPBCGR] 2.2.1.3.2) or the client monitor data ([MS-RDPBCGR] " +"2.2.1.3.6), depending on what is available. When using a remote desktop " +"session with a virtual monitor, clients can resize the resolution of the " +"virtual monitor during a session with the Display Control Channel Extension " +"([MS-RDPEDISP]). Allowed screenshare modes include: * mirror-primary - " +"Record the primary monitor of the current user session. * extend - Create a " +"new virtual monitor and use it for the remote desktop session. The " +"resolution of this virtual monitor is derived from the monitor " +"configuration, submitted by the remote desktop client." +msgstr "" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41 msgid "Path to the certificate file" msgstr "Cesta k súboru s certifikátom" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8 -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:16 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:42 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:50 msgid "" "In order to be able to use RDP with TLS Security, both the private key file " "and the certificate file need to be provided to the RDP server." @@ -58,16 +144,16 @@ "Aby bolo možné používanie protokolu RDP so zabezpečením TLS, musí byť " "poskytnutý serveru RDP súbor so súkromným kľúčom aj súbor s certifikátom." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:15 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:49 msgid "Path to the private key file" msgstr "Cesta k súboru so súkromným kľúčom" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:23 -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:33 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:57 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:74 msgid "Only allow remote connections to view the screen content" msgstr "Umožniť vzdialeným pripojeniam iba zobrazovať obsah obrazovky" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:24 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:58 msgid "" "When view-only is true, remote RDP connections cannot manipulate input " "devices (e.g. mouse and keyboard)." @@ -75,7 +161,15 @@ "Keď je režim „iba zobraziť“ nastavený na TRUE, vzdialené pripojenia RDP " "nebudú môcť pohybovať vstupnými zariadeniami (napr. myšou a klávesnicou)." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:34 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:67 +msgid "Whether the VNC backend is enabled or not" +msgstr "" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:68 +msgid "If set to to 'true' the VNC backend will be initialized." +msgstr "" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:75 msgid "" "When view-only is true, remote VNC connections cannot manipulate input " "devices (e.g. mouse and keyboard)." @@ -83,11 +177,11 @@ "Keď je režim „iba zobraziť“ nastavený na TRUE, vzdialené pripojenia VNC " "nebudú môcť pohybovať vstupnými zariadeniami (napr. myšou a klávesnicou)." -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:82 msgid "Method used to authenticate VNC connections" msgstr "Metóda použitá na overenie totožnosti pripojení VNC" -#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:42 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:83 msgid "" "The VNC authentication method describes how a remote connection is " "authenticated. It can currently be done in two different ways: * prompt - by " diff -Nru gnome-remote-desktop-42.0/po/zh_TW.po gnome-remote-desktop-42.1.1/po/zh_TW.po --- gnome-remote-desktop-42.0/po/zh_TW.po 1970-01-01 00:00:00.000000000 +0000 +++ gnome-remote-desktop-42.1.1/po/zh_TW.po 2022-04-26 19:59:53.850848400 +0000 @@ -0,0 +1,94 @@ +# Chinese (Taiwan) translation for gnome-remote-desktop. +# Copyright (C) 2021 gnome-remote-desktop's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-remote-desktop package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-remote-desktop master\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-remote-desktop/" +"issues\n" +"POT-Creation-Date: 2021-09-22 08:32+0000\n" +"PO-Revision-Date: 2021-09-22 08:32+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Chinese (Taiwan) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/grd-daemon.c:365 +msgid "GNOME Remote Desktop" +msgstr "GNOME 遠端桌面" + +#: src/grd-prompt.c:124 +#, c-format +msgid "Do you want to share your desktop?" +msgstr "你確定要分享桌面嗎?" + +#: src/grd-prompt.c:125 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "在「%s」這台電腦上有用戶正想要從遠端查看並控制你的電腦。" + +#: src/grd-prompt.c:131 +msgid "Refuse" +msgstr "拒絕" + +#: src/grd-prompt.c:136 +msgid "Accept" +msgstr "接受" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:7 +msgid "Path to the certificate file" +msgstr "憑證檔案的路徑" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:16 +msgid "" +"In order to be able to use RDP with TLS Security, both the private key file " +"and the certificate file need to be provided to the RDP server." +msgstr "想要使用加上 TLS 安全防護的 RDP 連線,您需要來自 RDP 伺服器的私鑰以及憑證檔案。" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:15 +msgid "Path to the private key file" +msgstr "私鑰檔案的路徑" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:23 +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:33 +msgid "Only allow remote connections to view the screen content" +msgstr "允許遠端連線只能夠查看螢幕中的內容" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:24 +msgid "" +"When view-only is true, remote RDP connections cannot manipulate input " +"devices (e.g. mouse and keyboard)." +msgstr "" +"如果是在只能夠查看畫面的模式,來自遠端的 RDP 連線就不能夠操作(像是滑鼠與鍵盤等)" +"輸入裝置。" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:34 +msgid "" +"When view-only is true, remote VNC connections cannot manipulate input " +"devices (e.g. mouse and keyboard)." +msgstr "" +"如果是在只能夠查看畫面的模式,來自遠端的 RDP 連線就不能夠操作(像是滑鼠與鍵盤等)" +"輸入裝置。" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41 +msgid "Method used to authenticate VNC connections" +msgstr "VNC 連線的認證方式" + +#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:42 +msgid "" +"The VNC authentication method describes how a remote connection is " +"authenticated. It can currently be done in two different ways: * prompt - by " +"prompting the user for each new connection, requiring a person with physical " +"access to the workstation to explicitly approve the new connection. * " +"password - by requiring the remote client to provide a known password" +msgstr "" +"VNC 認證方式這部份描述了你的電腦會如何認證遠端連線。你的電腦可以用兩種不同的方式進行認證:" +" * 跳出提示 - 每次有新的連線,都會跳出提示訊息,然後必須要有人在電腦前執行實體操作,才能允許連線。" +" * 輸入密碼 - 想要進行遠端連線的電腦上,必須要有一份正確的密碼。" diff -Nru gnome-remote-desktop-42.0/src/gnome-remote-desktop.service.in gnome-remote-desktop-42.1.1/src/gnome-remote-desktop.service.in --- gnome-remote-desktop-42.0/src/gnome-remote-desktop.service.in 2022-03-21 06:07:56.013829000 +0000 +++ gnome-remote-desktop-42.1.1/src/gnome-remote-desktop.service.in 2022-04-26 19:59:53.850848400 +0000 @@ -6,3 +6,6 @@ BusName=org.gnome.RemoteDesktop ExecStart=@libexecdir@/gnome-remote-desktop-daemon Restart=on-failure + +[Install] +WantedBy=gnome-session.target diff -Nru gnome-remote-desktop-42.0/src/grd-context.c gnome-remote-desktop-42.1.1/src/grd-context.c --- gnome-remote-desktop-42.0/src/grd-context.c 2022-03-21 06:07:56.014829200 +0000 +++ gnome-remote-desktop-42.1.1/src/grd-context.c 2022-04-26 19:59:53.851848400 +0000 @@ -37,8 +37,6 @@ { GObject parent; - GMainContext *main_context; - GrdDBusRemoteDesktop *remote_desktop_proxy; GrdDBusScreenCast *screen_cast_proxy; @@ -79,12 +77,6 @@ context->screen_cast_proxy = proxy; } -GMainContext * -grd_context_get_main_context (GrdContext *context) -{ - return context->main_context; -} - GrdSettings * grd_context_get_settings (GrdContext *context) { @@ -103,6 +95,19 @@ return context->debug_flags; } +void +grd_context_notify_daemon_ready (GrdContext *context) +{ + g_autoptr (GError) error = NULL; + + if (context->egl_thread) + return; + + context->egl_thread = grd_egl_thread_new (&error); + if (!context->egl_thread) + g_debug ("Failed to create EGL thread: %s", error->message); +} + static void init_debug_flags (GrdContext *context) { @@ -134,17 +139,9 @@ static void grd_context_init (GrdContext *context) { - g_autoptr (GError) error = NULL; - - context->main_context = g_main_context_default (); - init_debug_flags (context); context->settings = g_object_new (GRD_TYPE_SETTINGS, NULL); - - context->egl_thread = grd_egl_thread_new (&error); - if (!context->egl_thread) - g_debug ("Failed to create EGL thread: %s", error->message); } static void diff -Nru gnome-remote-desktop-42.0/src/grd-context.h gnome-remote-desktop-42.1.1/src/grd-context.h --- gnome-remote-desktop-42.0/src/grd-context.h 2022-03-21 06:07:56.014829200 +0000 +++ gnome-remote-desktop-42.1.1/src/grd-context.h 2022-04-26 19:59:53.851848400 +0000 @@ -49,14 +49,12 @@ void grd_context_set_screen_cast_proxy (GrdContext *context, GrdDBusScreenCast *proxy); -GrdPipeWireStreamMonitor *grd_context_get_pipewire_stream_monitor (GrdContext *context); - -GMainContext *grd_context_get_main_context (GrdContext *context); - GrdSettings * grd_context_get_settings (GrdContext *context); GrdEglThread * grd_context_get_egl_thread (GrdContext *context); GrdDebugFlags grd_context_get_debug_flags (GrdContext *context); +void grd_context_notify_daemon_ready (GrdContext *context); + #endif /* GRD_CONTEXT_H */ diff -Nru gnome-remote-desktop-42.0/src/grd-daemon.c gnome-remote-desktop-42.1.1/src/grd-daemon.c --- gnome-remote-desktop-42.0/src/grd-daemon.c 2022-03-21 06:07:56.014829200 +0000 +++ gnome-remote-desktop-42.1.1/src/grd-daemon.c 2022-04-26 19:59:53.851848400 +0000 @@ -25,6 +25,7 @@ #include "grd-daemon.h" #include +#include #include #include #include @@ -41,6 +42,9 @@ { GApplication parent; + GSource *sigint_source; + GSource *sigterm_source; + GCancellable *cancellable; guint remote_desktop_watch_name_id; guint screen_cast_watch_name_id; @@ -74,7 +78,8 @@ GrdSettings *settings = grd_context_get_settings (daemon->context); g_autoptr (GError) error = NULL; - g_assert (!daemon->rdp_server); + if (daemon->rdp_server) + return; if (!g_access (grd_settings_get_rdp_server_cert (settings), F_OK) && !g_access (grd_settings_get_rdp_server_key (settings), F_OK)) @@ -109,7 +114,8 @@ { g_autoptr (GError) error = NULL; - g_assert (!daemon->vnc_server); + if (daemon->vnc_server) + return; daemon->vnc_server = grd_vnc_server_new (daemon->context); if (!grd_vnc_server_start (daemon->vnc_server, &error)) @@ -138,6 +144,8 @@ if (!is_daemon_ready (daemon)) return; + grd_context_notify_daemon_ready (daemon->context); + #ifdef HAVE_RDP if (grd_settings_is_rdp_enabled (settings)) start_rdp_server (daemon); @@ -369,6 +377,17 @@ g_clear_object (&daemon->context); + if (daemon->sigterm_source) + { + g_source_destroy (daemon->sigterm_source); + g_clear_pointer (&daemon->sigterm_source, g_source_unref); + } + if (daemon->sigint_source) + { + g_source_destroy (daemon->sigint_source); + g_clear_pointer (&daemon->sigint_source, g_source_unref); + } + G_APPLICATION_CLASS (grd_daemon_parent_class)->shutdown (app); } @@ -399,6 +418,44 @@ g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (action)); } +static gboolean +sigint_terminate_daemon (gpointer user_data) +{ + GrdDaemon *daemon = user_data; + + g_debug ("Received SIGINT signal. Exiting..."); + g_clear_pointer (&daemon->sigint_source, g_source_unref); + g_application_release (G_APPLICATION (daemon)); + + return G_SOURCE_REMOVE; +} + +static gboolean +sigterm_terminate_daemon (gpointer user_data) +{ + GrdDaemon *daemon = user_data; + + g_debug ("Received SIGTERM signal. Exiting..."); + g_clear_pointer (&daemon->sigterm_source, g_source_unref); + g_application_release (G_APPLICATION (daemon)); + + return G_SOURCE_REMOVE; +} + +static void +register_signals (GrdDaemon *daemon) +{ + daemon->sigint_source = g_unix_signal_source_new (SIGINT); + g_source_set_callback (daemon->sigint_source, sigint_terminate_daemon, + daemon, NULL); + g_source_attach (daemon->sigint_source, NULL); + + daemon->sigterm_source = g_unix_signal_source_new (SIGTERM); + g_source_set_callback (daemon->sigterm_source, sigterm_terminate_daemon, + daemon, NULL); + g_source_attach (daemon->sigterm_source, NULL); +} + int main (int argc, char **argv) { @@ -443,6 +500,7 @@ NULL); add_actions (app); + register_signals (GRD_DAEMON (app)); settings = grd_context_get_settings (GRD_DAEMON (app)->context); if (rdp_port != -1) diff -Nru gnome-remote-desktop-42.0/src/grd-egl-thread.c gnome-remote-desktop-42.1.1/src/grd-egl-thread.c --- gnome-remote-desktop-42.0/src/grd-egl-thread.c 2022-03-21 06:07:56.014829200 +0000 +++ gnome-remote-desktop-42.1.1/src/grd-egl-thread.c 2022-04-26 19:59:53.852848500 +0000 @@ -278,16 +278,8 @@ return FALSE; } - if (egl_platform == EGL_PLATFORM_SURFACELESS_MESA) + if (egl_platform == EGL_PLATFORM_WAYLAND_EXT) { - if (!epoxy_has_egl_extension (egl_display, "EGL_MESA_platform_surfaceless")) - { - eglTerminate (egl_display); - g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, - "Missing extension 'EGL_MESA_platform_surfaceless'"); - return FALSE; - } - if (!epoxy_has_egl_extension (egl_display, "EGL_MESA_configless_context")) { eglTerminate (egl_display); @@ -372,12 +364,12 @@ } initialized = initialize_egl_context (egl_thread, - EGL_PLATFORM_SURFACELESS_MESA, + EGL_PLATFORM_WAYLAND_EXT, error); if (initialized) { g_debug ("EGL context initialized with platform " - "EGL_PLATFORM_SURFACELESS_MESA"); + "EGL_PLATFORM_WAYLAND_EXT"); } else { diff -Nru gnome-remote-desktop-42.0/src/grd-hwaccel-nvidia.c gnome-remote-desktop-42.1.1/src/grd-hwaccel-nvidia.c --- gnome-remote-desktop-42.0/src/grd-hwaccel-nvidia.c 2022-03-21 06:07:56.015829000 +0000 +++ gnome-remote-desktop-42.1.1/src/grd-hwaccel-nvidia.c 2022-04-26 19:59:53.852848500 +0000 @@ -769,7 +769,7 @@ if (!get_cuda_devices_from_gl_context (hwaccel_nvidia, egl_thread, &cu_device_count, cu_devices)) { - g_warning ("[HWAccel.CUDA] Failed to retrieve CUDA devices"); + g_message ("[HWAccel.CUDA] Unable to retrieve CUDA devices"); return NULL; } diff -Nru gnome-remote-desktop-42.0/src/grd-rdp-pipewire-stream.c gnome-remote-desktop-42.1.1/src/grd-rdp-pipewire-stream.c --- gnome-remote-desktop-42.0/src/grd-rdp-pipewire-stream.c 2022-03-21 06:07:56.018829300 +0000 +++ gnome-remote-desktop-42.1.1/src/grd-rdp-pipewire-stream.c 2022-04-26 19:59:53.856848500 +0000 @@ -758,7 +758,7 @@ int *fds; uint32_t *offsets; uint32_t *strides; - uint64_t *modifiers; + uint64_t *modifiers = NULL; uint32_t n_planes; unsigned int i; uint8_t *dst_data = NULL; @@ -779,14 +779,16 @@ fds = g_alloca (sizeof (int) * n_planes); offsets = g_alloca (sizeof (uint32_t) * n_planes); strides = g_alloca (sizeof (uint32_t) * n_planes); - modifiers = g_alloca (sizeof (uint64_t) * n_planes); + if (stream->spa_format.modifier != DRM_FORMAT_MOD_INVALID) + modifiers = g_alloca (sizeof (uint64_t) * n_planes); for (i = 0; i < n_planes; i++) { fds[i] = buffer->datas[i].fd; offsets[i] = buffer->datas[i].chunk->offset; strides[i] = buffer->datas[i].chunk->stride; - modifiers[i] = stream->spa_format.modifier; + if (modifiers) + modifiers[i] = stream->spa_format.modifier; } if (!stream->rdp_surface->needs_no_local_data) @@ -1017,8 +1019,10 @@ if (!last_frame_buffer) { - frame->callback (stream, g_steal_pointer (&frame), - TRUE, frame->callback_user_data); + GrdRdpFrameReadyCallback callback = frame->callback; + gpointer callback_user_data = frame->callback_user_data; + + callback (stream, g_steal_pointer (&frame), TRUE, callback_user_data); return; } diff -Nru gnome-remote-desktop-42.0/src/grd-rdp-sam.c gnome-remote-desktop-42.1.1/src/grd-rdp-sam.c --- gnome-remote-desktop-42.0/src/grd-rdp-sam.c 2022-03-21 06:07:56.018829300 +0000 +++ gnome-remote-desktop-42.1.1/src/grd-rdp-sam.c 2022-04-26 19:59:53.856848500 +0000 @@ -28,6 +28,19 @@ #include #include +void +grd_rdp_sam_free_sam_file (GrdRdpSAMFile *rdp_sam_file) +{ + if (rdp_sam_file->fd >= 0) + { + unlink (rdp_sam_file->filename); + close (rdp_sam_file->fd); + } + + g_free (rdp_sam_file->filename); + g_free (rdp_sam_file); +} + static char * create_sam_string (const char *username, const char *password) @@ -59,51 +72,58 @@ { const char *grd_path = "/gnome-remote-desktop"; const char *template = "/rdp-sam-XXXXXX"; - const char *path; - char *filename; - char *sam_string; - int fd_flags; GrdRdpSAMFile *rdp_sam_file; + g_autofree char *file_dir = NULL; + g_autofree char *filename = NULL; + g_autofree char *sam_string = NULL; + int fd; + int fd_flags; FILE *sam_file; - rdp_sam_file = g_malloc0 (sizeof (GrdRdpSAMFile)); + file_dir = g_strdup_printf ("%s%s", g_get_user_runtime_dir (), grd_path); + filename = g_strdup_printf ("%s%s%s", g_get_user_runtime_dir (), grd_path, + template); - path = getenv ("XDG_RUNTIME_DIR"); - filename = g_malloc0 (strlen (path) + strlen (grd_path) + - strlen (template) + 1); - strcpy (filename, path); - strcat (filename, grd_path); - if (g_access (filename, F_OK)) - mkdir (filename, 0700); + if (g_access (file_dir, F_OK) && + mkdir (file_dir, 0700)) + { + g_warning ("Failed to create base runtime directory for " + "gnome-remote-desktop: %s", g_strerror (errno)); + return NULL; + } - strcat (filename, template); + fd = mkstemp (filename); + if (fd < 0) + { + g_warning ("[RDP] mkstemp() failed: %s", g_strerror (errno)); + return NULL; + } - rdp_sam_file->fd = mkstemp (filename); - rdp_sam_file->filename = filename; + rdp_sam_file = g_new0 (GrdRdpSAMFile, 1); + rdp_sam_file->fd = fd; + rdp_sam_file->filename = g_steal_pointer (&filename); fd_flags = fcntl (rdp_sam_file->fd, F_GETFD); - fcntl (rdp_sam_file->fd, F_SETFD, fd_flags | FD_CLOEXEC); + if (fd_flags == -1 || + fcntl (rdp_sam_file->fd, F_SETFD, fd_flags | FD_CLOEXEC) == -1) + { + g_warning ("[RDP] fcntl() failed: %s", g_strerror (errno)); + grd_rdp_sam_free_sam_file (rdp_sam_file); + return NULL; + } sam_string = create_sam_string (username, password); sam_file = fdopen (rdp_sam_file->fd, "w+"); + if (!sam_file) + { + g_warning ("[RDP] Failed to open SAM database: %s", g_strerror (errno)); + grd_rdp_sam_free_sam_file (rdp_sam_file); + return NULL; + } + fputs (sam_string, sam_file); fclose (sam_file); - g_free (sam_string); - return rdp_sam_file; } - -void -grd_rdp_sam_maybe_close_and_free_sam_file (GrdRdpSAMFile *rdp_sam_file) -{ - if (rdp_sam_file->fd >= 0) - { - unlink (rdp_sam_file->filename); - close (rdp_sam_file->fd); - } - - g_free (rdp_sam_file->filename); - g_free (rdp_sam_file); -} diff -Nru gnome-remote-desktop-42.0/src/grd-rdp-sam.h gnome-remote-desktop-42.1.1/src/grd-rdp-sam.h --- gnome-remote-desktop-42.0/src/grd-rdp-sam.h 2022-03-21 06:07:56.018829300 +0000 +++ gnome-remote-desktop-42.1.1/src/grd-rdp-sam.h 2022-04-26 19:59:53.857848400 +0000 @@ -31,6 +31,6 @@ GrdRdpSAMFile *grd_rdp_sam_create_sam_file (const char *username, const char *password); -void grd_rdp_sam_maybe_close_and_free_sam_file (GrdRdpSAMFile *rdp_sam_file); +void grd_rdp_sam_free_sam_file (GrdRdpSAMFile *rdp_sam_file); #endif /* GRD_RDP_SAM_H */ diff -Nru gnome-remote-desktop-42.0/src/grd-session-rdp.c gnome-remote-desktop-42.1.1/src/grd-session-rdp.c --- gnome-remote-desktop-42.0/src/grd-session-rdp.c 2022-03-21 06:07:56.019829500 +0000 +++ gnome-remote-desktop-42.1.1/src/grd-session-rdp.c 2022-04-26 19:59:53.858848600 +0000 @@ -128,7 +128,6 @@ RdpPeerFlag rdp_flags; GThread *socket_thread; - HANDLE start_event; HANDLE stop_event; GThread *graphics_thread; @@ -1699,12 +1698,12 @@ RdpPeerContext *rdp_peer_context = (RdpPeerContext *) peer->context; GrdSessionRdp *session_rdp = rdp_peer_context->session_rdp; rdpSettings *rdp_settings = peer->settings; - GrdRdpSAMFile *sam_file; g_debug ("New RDP client"); if (!rdp_settings->SupportGraphicsPipeline && !rdp_settings->RemoteFxCodec && + rdp_settings->NSCodec && rdp_settings->MultifragMaxRequestSize < 0x3F0000) { g_message ("Disabling NSCodec since it does not support fragmentation"); @@ -1714,7 +1713,7 @@ if (!rdp_settings->SupportGraphicsPipeline && !rdp_settings->RemoteFxCodec) { - g_warning ("[RDP] Client does neither support RFX nor GFX. This is will " + g_warning ("[RDP] Client does neither support RFX nor GFX. This will " "result in heavy performance and heavy bandwidth usage " "regressions. The legacy path is deprecated!"); } @@ -1764,8 +1763,7 @@ grd_session_start (GRD_SESSION (session_rdp)); - sam_file = g_steal_pointer (&session_rdp->sam_file); - grd_rdp_sam_maybe_close_and_free_sam_file (sam_file); + g_clear_pointer (&session_rdp->sam_file, grd_rdp_sam_free_sam_file); if (rdp_settings->SupportGraphicsPipeline && rdp_peer_context->network_autodetection) @@ -1812,6 +1810,24 @@ return TRUE; } +static void +rdp_peer_context_free (freerdp_peer *peer, + RdpPeerContext *rdp_peer_context) +{ + if (!rdp_peer_context) + return; + + g_clear_pointer (&rdp_peer_context->vcm, WTSCloseServer); + + if (rdp_peer_context->encode_stream) + { + Stream_Free (rdp_peer_context->encode_stream, TRUE); + rdp_peer_context->encode_stream = NULL; + } + + g_clear_pointer (&rdp_peer_context->rfx_context, rfx_context_free); +} + static BOOL rdp_peer_context_new (freerdp_peer *peer, RdpPeerContext *rdp_peer_context) @@ -1821,10 +1837,21 @@ rdp_peer_context->frame_id = 0; rdp_peer_context->rfx_context = rfx_context_new (TRUE); + if (!rdp_peer_context->rfx_context) + { + g_warning ("[RDP] Failed to create RFX context"); + return FALSE; + } rfx_context_set_pixel_format (rdp_peer_context->rfx_context, PIXEL_FORMAT_BGRX32); rdp_peer_context->encode_stream = Stream_New (NULL, 64 * 64 * 4); + if (!rdp_peer_context->encode_stream) + { + g_warning ("[RDP] Failed to create encode stream"); + rdp_peer_context_free (peer, rdp_peer_context); + return FALSE; + } rdp_peer_context->planar_flags = 0; if (rdp_settings->DrawAllowSkipAlpha) @@ -1832,26 +1859,16 @@ rdp_peer_context->planar_flags |= PLANAR_FORMAT_HEADER_RLE; rdp_peer_context->vcm = WTSOpenServerA ((LPSTR) peer->context); + if (!rdp_peer_context->vcm) + { + g_warning ("[RDP] Failed to retrieve VCM handle"); + rdp_peer_context_free (peer, rdp_peer_context); + return FALSE; + } return TRUE; } -static void -rdp_peer_context_free (freerdp_peer *peer, - RdpPeerContext *rdp_peer_context) -{ - if (!rdp_peer_context) - return; - - g_clear_pointer (&rdp_peer_context->vcm, WTSCloseServer); - - if (rdp_peer_context->encode_stream) - Stream_Free (rdp_peer_context->encode_stream, TRUE); - - if (rdp_peer_context->rfx_context) - rfx_context_free (rdp_peer_context->rfx_context); -} - int grd_session_rdp_get_stride_for_width (GrdSessionRdp *session_rdp, int width) @@ -1859,10 +1876,11 @@ return width * 4; } -static void -init_rdp_session (GrdSessionRdp *session_rdp, - const char *username, - const char *password) +static gboolean +init_rdp_session (GrdSessionRdp *session_rdp, + const char *username, + const char *password, + GError **error) { GrdContext *context = grd_session_get_context (GRD_SESSION (session_rdp)); GrdSettings *settings = grd_context_get_settings (context); @@ -1875,21 +1893,48 @@ g_debug ("Initialize RDP session"); peer = freerdp_peer_new (g_socket_get_fd (socket)); + if (!peer) + { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, + "Failed to create peer"); + return FALSE; + } peer->ContextSize = sizeof (RdpPeerContext); - peer->ContextNew = (psPeerContextNew) rdp_peer_context_new; peer->ContextFree = (psPeerContextFree) rdp_peer_context_free; - freerdp_peer_context_new (peer); + peer->ContextNew = (psPeerContextNew) rdp_peer_context_new; + if (!freerdp_peer_context_new (peer)) + { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, + "Failed to create peer context"); + freerdp_peer_free (peer); + return FALSE; + } rdp_peer_context = (RdpPeerContext *) peer->context; rdp_peer_context->session_rdp = session_rdp; session_rdp->sam_file = grd_rdp_sam_create_sam_file (username, password); + if (!session_rdp->sam_file) + { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, + "Failed to create SAM database"); + freerdp_peer_context_free (peer); + freerdp_peer_free (peer); + return FALSE; + } rdp_settings = peer->settings; - freerdp_settings_set_string (rdp_settings, - FreeRDP_NtlmSamFile, - session_rdp->sam_file->filename); + if (!freerdp_settings_set_string (rdp_settings, FreeRDP_NtlmSamFile, + session_rdp->sam_file->filename)) + { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, + "Failed to set path of SAM database"); + freerdp_peer_context_free (peer); + freerdp_peer_free (peer); + return FALSE; + } + rdp_settings->CertificateFile = strdup (grd_settings_get_rdp_server_cert (settings)); rdp_settings->PrivateKeyFile = strdup (grd_settings_get_rdp_server_key (settings)); rdp_settings->RdpSecurity = FALSE; @@ -1927,13 +1972,19 @@ rdp_input->KeyboardEvent = rdp_input_keyboard_event; rdp_input->UnicodeKeyboardEvent = rdp_input_unicode_keyboard_event; - peer->Initialize (peer); + if (!peer->Initialize (peer)) + { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, + "Failed to initialize peer"); + g_clear_pointer (&session_rdp->sam_file, grd_rdp_sam_free_sam_file); + freerdp_peer_context_free (peer); + freerdp_peer_free (peer); + return FALSE; + } session_rdp->peer = peer; - session_rdp->last_pointer = NULL; - session_rdp->thread_pool = NULL; - SetEvent (session_rdp->start_event); + return TRUE; } gpointer @@ -1952,8 +2003,6 @@ if (session_rdp->hwaccel_nvidia) grd_hwaccel_nvidia_push_cuda_context (session_rdp->hwaccel_nvidia); - WaitForSingleObject (session_rdp->start_event, INFINITE); - peer = session_rdp->peer; rdp_peer_context = (RdpPeerContext *) peer->context; rdp_settings = peer->settings; @@ -2056,7 +2105,7 @@ GSocketConnection *connection, GrdHwAccelNvidia *hwaccel_nvidia) { - GrdSessionRdp *session_rdp; + g_autoptr (GrdSessionRdp) session_rdp = NULL; GrdContext *context; GrdSettings *settings; char *username; @@ -2088,6 +2137,15 @@ session_rdp->screen_share_mode = grd_settings_get_screen_share_mode (settings); + if (!init_rdp_session (session_rdp, username, password, &error)) + { + g_warning ("[RDP] Couldn't initialize session: %s", error->message); + g_clear_object (&session_rdp->connection); + g_free (password); + g_free (username); + return NULL; + } + session_rdp->socket_thread = g_thread_new ("RDP socket thread", socket_thread_func, session_rdp); @@ -2095,12 +2153,10 @@ graphics_thread_func, session_rdp); - init_rdp_session (session_rdp, username, password); - g_free (password); g_free (username); - return session_rdp; + return g_steal_pointer (&session_rdp); } static gboolean @@ -2146,8 +2202,12 @@ if (session_rdp->graphics_thread) { + uint32_t status; + g_assert (session_rdp->graphics_context); - g_assert (WaitForSingleObject (session_rdp->stop_event, 0) != WAIT_TIMEOUT); + + status = WaitForSingleObject (session_rdp->stop_event, 0); + g_assert (status != WAIT_TIMEOUT); g_main_context_wakeup (session_rdp->graphics_context); g_clear_pointer (&session_rdp->graphics_thread, g_thread_join); @@ -2170,8 +2230,7 @@ peer->Close (peer); g_clear_object (&session_rdp->connection); - if (session_rdp->sam_file) - grd_rdp_sam_maybe_close_and_free_sam_file (session_rdp->sam_file); + g_clear_pointer (&session_rdp->sam_file, grd_rdp_sam_free_sam_file); g_clear_object (&rdp_peer_context->network_autodetection); @@ -2353,7 +2412,6 @@ g_clear_pointer (&session_rdp->pointer_cache, g_hash_table_unref); g_clear_pointer (&session_rdp->stop_event, CloseHandle); - g_clear_pointer (&session_rdp->start_event, CloseHandle); G_OBJECT_CLASS (grd_session_rdp_parent_class)->dispose (object); } @@ -2449,7 +2507,6 @@ static void grd_session_rdp_init (GrdSessionRdp *session_rdp) { - session_rdp->start_event = CreateEvent (NULL, TRUE, FALSE, NULL); session_rdp->stop_event = CreateEvent (NULL, TRUE, FALSE, NULL); session_rdp->pointer_cache = g_hash_table_new (NULL, are_pointer_bitmaps_equal); diff -Nru gnome-remote-desktop-42.0/src/grd-session-vnc.c gnome-remote-desktop-42.1.1/src/grd-session-vnc.c --- gnome-remote-desktop-42.0/src/grd-session-vnc.c 2022-03-21 06:07:56.019829500 +0000 +++ gnome-remote-desktop-42.1.1/src/grd-session-vnc.c 2022-04-26 19:59:53.858848600 +0000 @@ -654,7 +654,11 @@ static void grd_session_vnc_detach_source (GrdSessionVnc *session_vnc) { - g_clear_pointer (&session_vnc->source, g_source_destroy); + if (!session_vnc->source) + return; + + g_source_destroy (session_vnc->source); + g_clear_pointer (&session_vnc->source, g_source_unref); } GrdSessionVnc * diff -Nru gnome-remote-desktop-42.0/src/grd-settings.c gnome-remote-desktop-42.1.1/src/grd-settings.c --- gnome-remote-desktop-42.0/src/grd-settings.c 2022-03-21 06:07:56.019829500 +0000 +++ gnome-remote-desktop-42.1.1/src/grd-settings.c 2022-04-26 19:59:53.858848600 +0000 @@ -142,6 +142,13 @@ } credentials = g_variant_parse (NULL, credentials_string, NULL, NULL, NULL); + if (!credentials) + { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND, + "Unable to parse credentials"); + return NULL; + } + g_variant_lookup (credentials, "username", "s", &username); if (!username) { @@ -177,6 +184,13 @@ } credentials = g_variant_parse (NULL, credentials_string, NULL, NULL, NULL); + if (!credentials) + { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND, + "Unable to parse credentials"); + return NULL; + } + g_variant_lookup (credentials, "password", "s", &password); if (!password) { diff -Nru gnome-remote-desktop-42.0/src/grd-types.h gnome-remote-desktop-42.1.1/src/grd-types.h --- gnome-remote-desktop-42.0/src/grd-types.h 2022-03-21 06:07:56.019829500 +0000 +++ gnome-remote-desktop-42.1.1/src/grd-types.h 2022-04-26 19:59:53.859848500 +0000 @@ -46,8 +46,6 @@ typedef struct _GrdSessionRdp GrdSessionRdp; typedef struct _GrdSessionVnc GrdSessionVnc; typedef struct _GrdStream GrdStream; -typedef struct _GrdPipeWireStream GrdPipeWireStream; -typedef struct _GrdPipeWireStreamMonitor GrdPipeWireStreamMonitor; typedef struct _GrdVncServer GrdVncServer; typedef enum _GrdPixelFormat diff -Nru gnome-remote-desktop-42.0/src/grd-vnc-pipewire-stream.c gnome-remote-desktop-42.1.1/src/grd-vnc-pipewire-stream.c --- gnome-remote-desktop-42.0/src/grd-vnc-pipewire-stream.c 2022-03-21 06:07:56.020829400 +0000 +++ gnome-remote-desktop-42.1.1/src/grd-vnc-pipewire-stream.c 2022-04-26 19:59:53.859848500 +0000 @@ -465,7 +465,7 @@ int *fds; uint32_t *offsets; uint32_t *strides; - uint64_t *modifiers; + uint64_t *modifiers = NULL; uint32_t n_planes; unsigned int i; uint8_t *dst_data; @@ -476,14 +476,16 @@ fds = g_alloca (sizeof (int) * n_planes); offsets = g_alloca (sizeof (uint32_t) * n_planes); strides = g_alloca (sizeof (uint32_t) * n_planes); - modifiers = g_alloca (sizeof (uint64_t) * n_planes); + if (stream->spa_format.modifier != DRM_FORMAT_MOD_INVALID) + modifiers = g_alloca (sizeof (uint64_t) * n_planes); for (i = 0; i < n_planes; i++) { fds[i] = buffer->datas[i].fd; offsets[i] = buffer->datas[i].chunk->offset; strides[i] = buffer->datas[i].chunk->stride; - modifiers[i] = stream->spa_format.modifier; + if (modifiers) + modifiers[i] = stream->spa_format.modifier; } dst_data = g_malloc0 (height * dst_stride); @@ -664,8 +666,10 @@ if (!last_frame_buffer) { - frame->callback (stream, g_steal_pointer (&frame), - TRUE, frame->callback_user_data); + GrdVncFrameReadyCallback callback = frame->callback; + gpointer callback_user_data = frame->callback_user_data; + + callback (stream, g_steal_pointer (&frame), TRUE, callback_user_data); return; }