Compare commits
2 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bf20067b76 | ||
|
|
d2635fc4a4 |
10 changed files with 455 additions and 274 deletions
|
|
@ -1 +0,0 @@
|
|||
1
|
||||
33
.gitignore
vendored
33
.gitignore
vendored
|
|
@ -1,2 +1,31 @@
|
|||
/gnome-remote-desktop-*.tar.xz
|
||||
/gnome-remote-desktop-*-build
|
||||
/gnome-remote-desktop-0.1.*.tar.xz
|
||||
/gnome-remote-desktop-40.beta.tar.xz
|
||||
/gnome-remote-desktop-40.rc.tar.xz
|
||||
/gnome-remote-desktop-40.0.tar.xz
|
||||
/gnome-remote-desktop-40.1.tar.xz
|
||||
/gnome-remote-desktop-41.rc.tar.xz
|
||||
/gnome-remote-desktop-41.0.tar.xz
|
||||
/gnome-remote-desktop-41.1.tar.xz
|
||||
/gnome-remote-desktop-41.2.tar.xz
|
||||
/gnome-remote-desktop-42.beta.tar.xz
|
||||
/gnome-remote-desktop-42.rc.tar.xz
|
||||
/gnome-remote-desktop-42.0.tar.xz
|
||||
/gnome-remote-desktop-42.1.tar.xz
|
||||
/gnome-remote-desktop-42.1.1.tar.xz
|
||||
/gnome-remote-desktop-42.2.tar.xz
|
||||
/gnome-remote-desktop-42.3.tar.xz
|
||||
/gnome-remote-desktop-43.alpha.tar.xz
|
||||
/gnome-remote-desktop-43.beta.tar.xz
|
||||
/gnome-remote-desktop-43.0.tar.xz
|
||||
/gnome-remote-desktop-43.1.tar.xz
|
||||
/gnome-remote-desktop-43.2.tar.xz
|
||||
/gnome-remote-desktop-44.alpha.tar.xz
|
||||
/gnome-remote-desktop-44.rc.tar.xz
|
||||
/gnome-remote-desktop-44.0.tar.xz
|
||||
/gnome-remote-desktop-44.1.tar.xz
|
||||
/gnome-remote-desktop-44.2.tar.xz
|
||||
/gnome-remote-desktop-45.alpha.tar.xz
|
||||
/gnome-remote-desktop-45.beta.tar.xz
|
||||
/gnome-remote-desktop-45.rc.tar.xz
|
||||
/gnome-remote-desktop-45.0.tar.xz
|
||||
/gnome-remote-desktop-45.1.tar.xz
|
||||
|
|
|
|||
|
|
@ -1,24 +1,27 @@
|
|||
%global systemd_unit_handover gnome-remote-desktop-handover.service
|
||||
%global systemd_unit_headless gnome-remote-desktop-headless.service
|
||||
%global systemd_unit_system gnome-remote-desktop.service
|
||||
%global systemd_unit_user gnome-remote-desktop.service
|
||||
%global systemd_unit gnome-remote-desktop.service
|
||||
|
||||
%global tarball_version %%(echo %{version} | tr '~' '.')
|
||||
|
||||
%bcond rdp %[0%{?fedora} || 0%{?rhel} >= 10]
|
||||
%bcond vnc %[0%{?fedora} || 0%{?rhel} < 10]
|
||||
# In RHEL/ELN FreeRDP is built without server support
|
||||
%if 0%{?rhel} >= 10
|
||||
%global enable_rdp 1
|
||||
%elif 0%{?rhel} >= 9
|
||||
%global enable_rdp 0
|
||||
%else
|
||||
%global enable_rdp 1
|
||||
%endif
|
||||
|
||||
%global libei_version 1.0.901
|
||||
%global pipewire_version 0.3.49
|
||||
|
||||
Name: gnome-remote-desktop
|
||||
Version: 49.2
|
||||
Release: %autorelease
|
||||
Version: 45.1
|
||||
Release: 1%{?dist}
|
||||
Summary: GNOME Remote Desktop screen share service
|
||||
|
||||
License: GPL-2.0-or-later
|
||||
URL: https://gitlab.gnome.org/GNOME/gnome-remote-desktop
|
||||
Source0: https://download.gnome.org/sources/%{name}/49/%{name}-%{tarball_version}.tar.xz
|
||||
Source0: https://download.gnome.org/sources/%{name}/45/%{name}-%{tarball_version}.tar.xz
|
||||
|
||||
# Adds encryption support (requires patched LibVNCServer)
|
||||
Patch0: gnutls-anontls.patch
|
||||
|
|
@ -29,19 +32,12 @@ BuildRequires: meson >= 0.47.0
|
|||
BuildRequires: systemd-rpm-macros
|
||||
BuildRequires: pkgconfig(cairo)
|
||||
BuildRequires: pkgconfig(epoxy)
|
||||
BuildRequires: pkgconfig(dbus-1)
|
||||
BuildRequires: pkgconfig(ffnvcodec)
|
||||
%if %{with rdp}
|
||||
BuildRequires: glslc
|
||||
BuildRequires: spirv-tools
|
||||
%if 0%{?enable_rdp}
|
||||
BuildRequires: pkgconfig(fdk-aac)
|
||||
BuildRequires: pkgconfig(freerdp3)
|
||||
BuildRequires: pkgconfig(freerdp2)
|
||||
BuildRequires: pkgconfig(fuse3)
|
||||
BuildRequires: pkgconfig(libva)
|
||||
BuildRequires: pkgconfig(opus)
|
||||
BuildRequires: pkgconfig(polkit-gobject-1)
|
||||
BuildRequires: pkgconfig(vulkan)
|
||||
BuildRequires: pkgconfig(winpr3)
|
||||
BuildRequires: pkgconfig(winpr2)
|
||||
%endif
|
||||
BuildRequires: pkgconfig(gbm)
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.68
|
||||
|
|
@ -53,9 +49,7 @@ BuildRequires: pkgconfig(libei-1.0) >= %{libei_version}
|
|||
BuildRequires: pkgconfig(libnotify)
|
||||
BuildRequires: pkgconfig(libpipewire-0.3)
|
||||
BuildRequires: pkgconfig(libsecret-1)
|
||||
%if %{with vnc}
|
||||
BuildRequires: pkgconfig(libvncserver) >= 0.9.11-7
|
||||
%endif
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
BuildRequires: pkgconfig(xkbcommon)
|
||||
BuildRequires: pkgconfig(tss2-esys)
|
||||
|
|
@ -79,18 +73,16 @@ GNOME desktop environment.
|
|||
|
||||
%build
|
||||
%meson \
|
||||
%if %{with rdp}
|
||||
%if 0%{?enable_rdp}
|
||||
-Drdp=true \
|
||||
-Dfdk_aac=true \
|
||||
%else
|
||||
-Drdp=false \
|
||||
%endif
|
||||
%if %{with vnc}
|
||||
-Dvnc=true \
|
||||
%else
|
||||
-Dvnc=false \
|
||||
-Dfdk_aac=false \
|
||||
%endif
|
||||
-Dsystemd=true \
|
||||
-Dtests=false
|
||||
-Dtests=false \
|
||||
-Dvnc=true
|
||||
%meson_build
|
||||
|
||||
|
||||
|
|
@ -101,24 +93,15 @@ GNOME desktop environment.
|
|||
|
||||
|
||||
%post
|
||||
%systemd_post %{systemd_unit_system}
|
||||
%systemd_user_post %{systemd_unit_handover}
|
||||
%systemd_user_post %{systemd_unit_headless}
|
||||
%systemd_user_post %{systemd_unit_user}
|
||||
%systemd_user_post %{systemd_unit}
|
||||
|
||||
|
||||
%preun
|
||||
%systemd_preun %{systemd_unit_system}
|
||||
%systemd_user_preun %{systemd_unit_handover}
|
||||
%systemd_user_preun %{systemd_unit_headless}
|
||||
%systemd_user_preun %{systemd_unit_user}
|
||||
%systemd_user_preun %{systemd_unit}
|
||||
|
||||
|
||||
%postun
|
||||
%systemd_postun_with_restart %{systemd_unit_system}
|
||||
%systemd_user_postun_with_restart %{systemd_unit_handover}
|
||||
%systemd_user_postun_with_restart %{systemd_unit_headless}
|
||||
%systemd_user_postun_with_restart %{systemd_unit_user}
|
||||
%systemd_user_postun_with_restart %{systemd_unit}
|
||||
|
||||
|
||||
%files -f %{name}.lang
|
||||
|
|
@ -126,29 +109,218 @@ GNOME desktop environment.
|
|||
%doc README.md
|
||||
%{_bindir}/grdctl
|
||||
%{_libexecdir}/gnome-remote-desktop-daemon
|
||||
%{_libexecdir}/gnome-remote-desktop-enable-service
|
||||
%{_libexecdir}/gnome-remote-desktop-configuration-daemon
|
||||
%{_userunitdir}/%{systemd_unit_user}
|
||||
%{_userunitdir}/%{systemd_unit_headless}
|
||||
%{_userunitdir}/%{systemd_unit_handover}
|
||||
%{_unitdir}/%{systemd_unit_system}
|
||||
%{_unitdir}/gnome-remote-desktop-configuration.service
|
||||
%{_datadir}/applications/org.gnome.RemoteDesktop.Handover.desktop
|
||||
%{_datadir}/dbus-1/system-services/org.gnome.RemoteDesktop.Configuration.service
|
||||
%{_datadir}/dbus-1/system.d/org.gnome.RemoteDesktop.conf
|
||||
%{_userunitdir}/%{systemd_unit}
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.desktop.remote-desktop.gschema.xml
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.desktop.remote-desktop.enums.xml
|
||||
%{_datadir}/polkit-1/actions/org.gnome.remotedesktop.configure-system-daemon.policy
|
||||
%{_datadir}/polkit-1/actions/org.gnome.remotedesktop.enable-system-daemon.policy
|
||||
%{_datadir}/polkit-1/rules.d/20-gnome-remote-desktop.rules
|
||||
%{_sysusersdir}/gnome-remote-desktop-sysusers.conf
|
||||
%{_tmpfilesdir}/gnome-remote-desktop-tmpfiles.conf
|
||||
|
||||
%if %{with rdp}
|
||||
%if 0%{?enable_rdp}
|
||||
%{_datadir}/gnome-remote-desktop/
|
||||
%endif
|
||||
%{_mandir}/man1/grdctl.1*
|
||||
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
* Sun Oct 22 2023 Kalev Lember <klember@redhat.com> - 45.1-1
|
||||
- Update to 45.1
|
||||
|
||||
* Sat Oct 21 2023 Kalev Lember <klember@redhat.com> - 45.0-1
|
||||
- Update to 45.0
|
||||
|
||||
* Tue Sep 05 2023 Kalev Lember <klember@redhat.com> - 45.rc-1
|
||||
- Update to 45.rc
|
||||
|
||||
* Fri Aug 11 2023 Kalev Lember <klember@redhat.com> - 45.beta-1
|
||||
- Update to 45.beta
|
||||
|
||||
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 45.alpha-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Wed Jul 05 2023 Jonas Ådahl <jadahl@redhat.com> - 45~alpha-1
|
||||
- Update to 45.alpha
|
||||
|
||||
* Wed May 31 2023 Kalev Lember <klember@redhat.com> - 44.2-1
|
||||
- Update to 44.2
|
||||
|
||||
* Mon Apr 24 2023 David King <amigadave@amigadave.com> - 44.1-1
|
||||
- Update to 44.1
|
||||
|
||||
* Sun Mar 19 2023 David King <amigadave@amigadave.com> - 44.0-1
|
||||
- Update to 44.0
|
||||
|
||||
* Thu Mar 16 2023 Jonas Ådahl <jadahl@redhat.com> - 44~rc-2
|
||||
- Enable RDP in ELN
|
||||
|
||||
* Sun Mar 05 2023 David King <amigadave@amigadave.com> - 44~rc-1
|
||||
- Update to 44.rc
|
||||
|
||||
* Mon Feb 06 2023 David King <amigadave@amigadave.com> - 44~alpha-1
|
||||
- Update to 44.alpha
|
||||
|
||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 43.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Thu Dec 08 2022 David King <amigadave@amigadave.com> - 43.2-1
|
||||
- Update to 43.2
|
||||
|
||||
* Tue Nov 08 2022 Stephen Gallagher <sgallagh@redhat.com> - 43.1-2
|
||||
- Fix build on RHEL 9+/ELN
|
||||
|
||||
* Thu Oct 27 2022 David King <amigadave@amigadave.com> - 43.1-1
|
||||
- Update to 43.1
|
||||
|
||||
* Tue Sep 20 2022 Jonas Ådahl <jadahl@redhat.com> - 43.0
|
||||
- Update to 43.0
|
||||
|
||||
* Thu Aug 18 2022 Jonas Ådahl <jadahl@redhat.com> - 43~beta-4
|
||||
- Drop dependency on tpm2-abrmd
|
||||
|
||||
* Tue Aug 16 2022 Kalev Lember <klember@redhat.com> - 43~beta-3
|
||||
- Avoid manual requires on tss2* and rely on automatic soname deps instead
|
||||
|
||||
* Mon Aug 15 2022 Simone Caronni <negativo17@gmail.com> - 43~beta-2
|
||||
- Rebuild for updated FreeRDP.
|
||||
|
||||
* Thu Aug 11 2022 Jonas Ådahl <jadahl@redhat.com> - 43~beta
|
||||
- Update to 43.beta
|
||||
|
||||
* Fri Jul 29 2022 Tomas Popela <tpopela@redhat.com> - 43~alpha-2
|
||||
- FreeRDP is built without server support in RHEL and ELN so we should disable
|
||||
the RDP there
|
||||
|
||||
* Thu Jul 28 2022 Jonas Ådahl <jadahl@redhat.com> - 43~alpha
|
||||
- Update to 43.alpha
|
||||
|
||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 42.3-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Thu Jul 07 2022 David King <amigadave@amigadave.com> - 42.3-1
|
||||
- Update to 43.3 (#2091415)
|
||||
|
||||
* Sun May 29 2022 David King <amigadave@amigadave.com> - 42.2-1
|
||||
- Update to 42.2
|
||||
|
||||
* Wed May 11 2022 David King <amigadave@amigadave.com> - 42.1.1-1
|
||||
- Update to 42.1.1 (#2061546)
|
||||
|
||||
* Wed Apr 27 2022 David King <amigadave@amigadave.com> - 42.1-2
|
||||
- Fix isa macro in Requires
|
||||
|
||||
* Tue Apr 26 2022 David King <amigadave@amigadave.com> - 42.1-1
|
||||
- Update to 42.1 (#2061546)
|
||||
|
||||
* Mon Mar 21 2022 Jonas Ådahl <jadahl@redhat.com> - 42.0
|
||||
- Update to 42.0
|
||||
|
||||
* Mon Mar 14 2022 Jonas Ådahl <jadahl@redhat.com> - 42~rc-1
|
||||
- Update to 42.rc
|
||||
|
||||
* Wed Feb 16 2022 Jonas Ådahl <jadahl@redhat.com> - 42~beta-1
|
||||
- Update to 42.beta
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 41.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Wed Dec 08 2021 Jonas Ådahl <jadahl@redhat.com> - 41.2-1
|
||||
- Update to 41.2
|
||||
|
||||
* Mon Nov 01 2021 Kalev Lember <klember@redhat.com> - 41.1-1
|
||||
- Update to 41.1
|
||||
|
||||
* Mon Sep 20 2021 Kalev Lember <klember@redhat.com> - 41.0-1
|
||||
- Update to 41.0
|
||||
|
||||
* Tue Sep 07 2021 Jonas Ådahl <jadahl@redhat.com> - 41~rc-1
|
||||
- Bump to 41.rc
|
||||
|
||||
* Wed Aug 04 2021 Kalev Lember <klember@redhat.com> - 40.1-3
|
||||
- Avoid systemd_requires as per updated packaging guidelines
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 40.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Mon May 03 2021 Jonas Ådahl <jadahl@redhat.com> - 40.1-1
|
||||
- Bump to 40.1
|
||||
|
||||
* Thu Apr 15 2021 Simone Caronni <negativo17@gmail.com> - 40.0-2
|
||||
- Rebuild for updated FreeRDP.
|
||||
|
||||
* Mon Mar 22 2021 Kalev Lember <klember@redhat.com> - 40.0-1
|
||||
- Update to 40.0
|
||||
|
||||
* Thu Mar 18 2021 Michael Catanzaro <mcatanzaro@redhat.com> - 40.0~rc-2
|
||||
- Add Obsoletes: vino
|
||||
|
||||
* Mon Mar 15 2021 Kalev Lember <klember@redhat.com> - 40.0~rc-1
|
||||
- Update to 40.rc
|
||||
|
||||
* Thu Mar 04 2021 Jonas Ådahl <jadahl@redhat.com> - 40.0~beta-1
|
||||
- Bump to 40.beta
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.9-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Mon Sep 14 2020 Jonas Ådahl <jadahl@redhat.com> - 0.1.9-2
|
||||
- Copy using the right destination stride
|
||||
|
||||
* Mon Sep 14 2020 Jonas Ådahl <jadahl@redhat.com> - 0.1.9-1
|
||||
- Update to 0.1.9
|
||||
- Backport race condition crash fix
|
||||
- Rebase anon-tls patches
|
||||
|
||||
* Thu Aug 27 2020 Ray Strode <rstrode@redhat.com> - 0.1.8-3
|
||||
- Fix crash
|
||||
Related: #1844993
|
||||
|
||||
* Mon Jun 1 2020 Felipe Borges <feborges@redhat.com> - 0.1.8-2
|
||||
- Fix black screen issue in remote connections on Wayland
|
||||
|
||||
* Wed Mar 11 2020 Jonas Ådahl <jadahl@redhat.com> - 0.1.8-1
|
||||
- Update to 0.1.8
|
||||
|
||||
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.7-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.7-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Mon Mar 4 2019 Jonas Ådahl <jadahl@redhat.com> - 0.1.7-1
|
||||
- Update to 0.1.7
|
||||
|
||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.6-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Tue Oct 2 2018 Jonas Ådahl <jadahl@redhat.com> - 0.1.6-2
|
||||
- Don't crash when PipeWire disconnects (rhbz#1632781)
|
||||
|
||||
* Tue Aug 7 2018 Jonas Ådahl <jadahl@redhat.com> - 0.1.6
|
||||
- Update to 0.1.6
|
||||
- Apply ANON-TLS patch
|
||||
- Depend on pipewire 0.2.2
|
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.4-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Wed May 30 2018 Jonas Ådahl <jadahl@redhat.com> - 0.1.4-1
|
||||
- Update to new version
|
||||
|
||||
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.1.2-5
|
||||
- Escape macros in %%changelog
|
||||
|
||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.2-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Tue Aug 29 2017 Jonas Ådahl <jadahl@redhat.com> - 0.1.2-3
|
||||
- Use %%autosetup
|
||||
- Install licence file
|
||||
|
||||
* Tue Aug 22 2017 Jonas Ådahl <jadahl@redhat.com> - 0.1.2-2
|
||||
- Remove gschema compilation step as that had been deprecated
|
||||
|
||||
* Mon Aug 21 2017 Jonas Ådahl <jadahl@redhat.com> - 0.1.2-1
|
||||
- Update to 0.1.2
|
||||
- Changed tabs to spaces
|
||||
- Added systemd user macros
|
||||
- Install to correct systemd user unit directory
|
||||
- Compile gsettings schemas after install and uninstall
|
||||
|
||||
* Mon Aug 21 2017 Jonas Ådahl <jadahl@redhat.com> - 0.1.1-1
|
||||
- First packaged version
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
From 005617f3e2cb59241dc02c2db714c2b934553acb Mon Sep 17 00:00:00 2001
|
||||
From e2a39fbf7b1a90aee818790ad847c20f59351adc Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Thu, 14 Jun 2018 12:21:37 +0200
|
||||
Subject: [PATCH 1/7] vnc: Add anonymous TLS encryption support
|
||||
|
|
@ -13,22 +13,23 @@ VNC connection.
|
|||
src/grd-enums.h | 6 +
|
||||
src/grd-session-vnc.c | 120 ++++-
|
||||
src/grd-session-vnc.h | 17 +
|
||||
src/grd-settings-user.c | 4 +
|
||||
src/grd-settings.c | 18 +
|
||||
src/grd-vnc-server.c | 49 ++
|
||||
src/grd-settings-user.c | 28 ++
|
||||
src/grd-settings.c | 6 +
|
||||
src/grd-settings.h | 4 +
|
||||
src/grd-vnc-server.c | 47 ++
|
||||
src/grd-vnc-tls.c | 444 ++++++++++++++++++
|
||||
src/grd-vnc-tls.h | 28 ++
|
||||
src/meson.build | 3 +
|
||||
...nome.desktop.remote-desktop.gschema.xml.in | 10 +
|
||||
11 files changed, 674 insertions(+), 26 deletions(-)
|
||||
12 files changed, 688 insertions(+), 26 deletions(-)
|
||||
create mode 100644 src/grd-vnc-tls.c
|
||||
create mode 100644 src/grd-vnc-tls.h
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 5dcb77c3..269238c0 100644
|
||||
index af607a47..a827c356 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -70,6 +70,7 @@ endif
|
||||
@@ -63,6 +63,7 @@ endif
|
||||
if have_vnc
|
||||
libvncclient_dep = dependency('libvncclient')
|
||||
libvncserver_dep = dependency('libvncserver')
|
||||
|
|
@ -37,12 +38,12 @@ index 5dcb77c3..269238c0 100644
|
|||
|
||||
prefix = get_option('prefix')
|
||||
diff --git a/src/grd-enums.h b/src/grd-enums.h
|
||||
index 25b42661..f4438764 100644
|
||||
index 44b181d6..de0d0f86 100644
|
||||
--- a/src/grd-enums.h
|
||||
+++ b/src/grd-enums.h
|
||||
@@ -32,6 +32,12 @@ typedef enum
|
||||
GRD_VNC_AUTH_METHOD_PASSWORD
|
||||
} GrdVncAuthMethod;
|
||||
@@ -39,4 +39,10 @@ typedef enum
|
||||
GRD_VNC_SCREEN_SHARE_MODE_EXTEND,
|
||||
} GrdVncScreenShareMode;
|
||||
|
||||
+typedef enum
|
||||
+{
|
||||
|
|
@ -50,14 +51,12 @@ index 25b42661..f4438764 100644
|
|||
+ GRD_VNC_ENCRYPTION_TLS_ANON = 1 << 1,
|
||||
+} GrdVncEncryption;
|
||||
+
|
||||
typedef enum
|
||||
{
|
||||
GRD_VNC_SCREEN_SHARE_MODE_MIRROR_PRIMARY,
|
||||
#endif /* GRD_ENUMS_H */
|
||||
diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c
|
||||
index f7e14080..b5e4fe13 100644
|
||||
index de1c26d7..a82952ae 100644
|
||||
--- a/src/grd-session-vnc.c
|
||||
+++ b/src/grd-session-vnc.c
|
||||
@@ -46,7 +46,9 @@ struct _GrdSessionVnc
|
||||
@@ -45,7 +45,9 @@ struct _GrdSessionVnc
|
||||
{
|
||||
GrdSession parent;
|
||||
|
||||
|
|
@ -67,7 +66,7 @@ index f7e14080..b5e4fe13 100644
|
|||
GSource *source;
|
||||
rfbScreenInfoPtr rfb_screen;
|
||||
rfbClientPtr rfb_client;
|
||||
@@ -608,6 +610,12 @@ check_rfb_password (rfbClientPtr rfb_client,
|
||||
@@ -588,6 +590,12 @@ check_rfb_password (rfbClientPtr rfb_client,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -80,7 +79,7 @@ index f7e14080..b5e4fe13 100644
|
|||
int
|
||||
grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
|
||||
int width)
|
||||
@@ -615,6 +623,18 @@ grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
|
||||
@@ -595,6 +603,18 @@ grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
|
||||
return width * BGRX_BYTES_PER_PIXEL;
|
||||
}
|
||||
|
||||
|
|
@ -99,7 +98,7 @@ index f7e14080..b5e4fe13 100644
|
|||
static void
|
||||
init_vnc_session (GrdSessionVnc *session_vnc)
|
||||
{
|
||||
@@ -689,44 +709,85 @@ init_vnc_session (GrdSessionVnc *session_vnc)
|
||||
@@ -669,44 +689,85 @@ init_vnc_session (GrdSessionVnc *session_vnc)
|
||||
rfbProcessEvents (rfb_screen, 0);
|
||||
}
|
||||
|
||||
|
|
@ -210,7 +209,7 @@ index f7e14080..b5e4fe13 100644
|
|||
}
|
||||
|
||||
return G_SOURCE_CONTINUE;
|
||||
@@ -739,7 +800,10 @@ grd_session_vnc_attach_source (GrdSessionVnc *session_vnc)
|
||||
@@ -719,7 +780,10 @@ grd_session_vnc_attach_source (GrdSessionVnc *session_vnc)
|
||||
|
||||
socket = g_socket_connection_get_socket (session_vnc->connection);
|
||||
session_vnc->source = g_socket_create_source (socket,
|
||||
|
|
@ -222,7 +221,7 @@ index f7e14080..b5e4fe13 100644
|
|||
NULL);
|
||||
g_source_set_callback (session_vnc->source,
|
||||
(GSourceFunc) handle_socket_data,
|
||||
@@ -780,6 +844,7 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
|
||||
@@ -750,11 +814,13 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
|
||||
"context", context,
|
||||
NULL);
|
||||
|
||||
|
|
@ -230,15 +229,13 @@ index f7e14080..b5e4fe13 100644
|
|||
session_vnc->connection = g_object_ref (connection);
|
||||
|
||||
settings = grd_context_get_settings (context);
|
||||
@@ -792,6 +857,7 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
|
||||
G_CALLBACK (on_view_only_changed),
|
||||
session_vnc);
|
||||
session_vnc->screen_share_mode = grd_settings_get_vnc_screen_share_mode (settings);
|
||||
|
||||
+ grd_session_vnc_grab_socket (session_vnc, vnc_socket_grab_func);
|
||||
grd_session_vnc_attach_source (session_vnc);
|
||||
|
||||
init_vnc_session (session_vnc);
|
||||
@@ -806,6 +872,8 @@ grd_session_vnc_dispose (GObject *object)
|
||||
@@ -769,6 +835,8 @@ grd_session_vnc_dispose (GObject *object)
|
||||
|
||||
g_assert (!session_vnc->rfb_screen);
|
||||
|
||||
|
|
@ -248,10 +245,10 @@ index f7e14080..b5e4fe13 100644
|
|||
|
||||
G_OBJECT_CLASS (grd_session_vnc_parent_class)->dispose (object);
|
||||
diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h
|
||||
index 8fc71850..3c08f812 100644
|
||||
index be79cf4a..ffc8d27a 100644
|
||||
--- a/src/grd-session-vnc.h
|
||||
+++ b/src/grd-session-vnc.h
|
||||
@@ -36,6 +36,9 @@ G_DECLARE_FINAL_TYPE (GrdSessionVnc,
|
||||
@@ -37,6 +37,9 @@ G_DECLARE_FINAL_TYPE (GrdSessionVnc,
|
||||
GRD, SESSION_VNC,
|
||||
GrdSession)
|
||||
|
||||
|
|
@ -261,7 +258,7 @@ index 8fc71850..3c08f812 100644
|
|||
GrdSessionVnc *grd_session_vnc_new (GrdVncServer *vnc_server,
|
||||
GSocketConnection *connection);
|
||||
|
||||
@@ -62,4 +65,18 @@ void grd_session_vnc_set_client_clipboard_text (GrdSessionVnc *session_vnc,
|
||||
@@ -63,6 +66,20 @@ void grd_session_vnc_set_client_clipboard_text (GrdSessionVnc *session_vnc,
|
||||
int grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
|
||||
int width);
|
||||
|
||||
|
|
@ -270,7 +267,7 @@ index 8fc71850..3c08f812 100644
|
|||
+int grd_session_vnc_get_framebuffer_stride (GrdSessionVnc *session_vnc);
|
||||
+
|
||||
gboolean grd_session_vnc_is_client_gone (GrdSessionVnc *session_vnc);
|
||||
+
|
||||
|
||||
+rfbClientPtr grd_session_vnc_get_rfb_client (GrdSessionVnc *session_vnc);
|
||||
+
|
||||
+void grd_session_vnc_grab_socket (GrdSessionVnc *session_vnc,
|
||||
|
|
@ -280,81 +277,129 @@ index 8fc71850..3c08f812 100644
|
|||
+ GrdVncSocketGrabFunc grab_func);
|
||||
+
|
||||
+GrdVncServer * grd_session_vnc_get_vnc_server (GrdSessionVnc *session_vnc);
|
||||
+
|
||||
#endif /* GRD_SESSION_VNC_H */
|
||||
diff --git a/src/grd-settings-user.c b/src/grd-settings-user.c
|
||||
index 1bd679e4..c54e0b80 100644
|
||||
index 42bf31dd..5f6a87dd 100644
|
||||
--- a/src/grd-settings-user.c
|
||||
+++ b/src/grd-settings-user.c
|
||||
@@ -91,6 +91,10 @@ grd_settings_user_constructed (GObject *object)
|
||||
g_settings_bind (settings->vnc_settings, "screen-share-mode",
|
||||
settings, "vnc-screen-share-mode",
|
||||
G_SETTINGS_BIND_DEFAULT);
|
||||
+ g_settings_bind (settings->vnc_settings, "encryption",
|
||||
+ settings, "vnc-encryption",
|
||||
+ G_SETTINGS_BIND_DEFAULT);
|
||||
+
|
||||
|
||||
G_OBJECT_CLASS (grd_settings_user_parent_class)->constructed (object);
|
||||
}
|
||||
diff --git a/src/grd-settings.c b/src/grd-settings.c
|
||||
index 8393ace5..a65385ef 100644
|
||||
--- a/src/grd-settings.c
|
||||
+++ b/src/grd-settings.c
|
||||
@@ -58,6 +58,7 @@ enum
|
||||
PROP_RDP_SERVER_CERT_PATH,
|
||||
PROP_RDP_SERVER_KEY_PATH,
|
||||
PROP_VNC_AUTH_METHOD,
|
||||
+ PROP_VNC_ENCRYPTION,
|
||||
};
|
||||
|
||||
typedef struct _GrdSettingsPrivate
|
||||
@@ -84,6 +85,7 @@ typedef struct _GrdSettingsPrivate
|
||||
@@ -66,6 +66,7 @@ struct _GrdSettingsUser
|
||||
gboolean view_only;
|
||||
GrdVncScreenShareMode screen_share_mode;
|
||||
GrdVncAuthMethod auth_method;
|
||||
+ GrdVncEncryption encryption;
|
||||
} vnc;
|
||||
} GrdSettingsPrivate;
|
||||
};
|
||||
|
||||
@@ -426,6 +428,9 @@ grd_settings_get_property (GObject *object,
|
||||
else
|
||||
g_value_set_enum (value, priv->vnc.auth_method);
|
||||
break;
|
||||
+ case PROP_VNC_ENCRYPTION:
|
||||
+ g_value_set_flags (value, priv->vnc.encryption);
|
||||
+ break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
@@ -563,6 +568,9 @@ grd_settings_set_property (GObject *object,
|
||||
case PROP_VNC_AUTH_METHOD:
|
||||
priv->vnc.auth_method = g_value_get_enum (value);
|
||||
break;
|
||||
+ case PROP_VNC_ENCRYPTION:
|
||||
+ priv->vnc.encryption = g_value_get_flags (value);
|
||||
+ break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
@@ -744,4 +752,14 @@ grd_settings_class_init (GrdSettingsClass *klass)
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT |
|
||||
G_PARAM_STATIC_STRINGS));
|
||||
+ g_object_class_install_property (object_class,
|
||||
+ PROP_VNC_ENCRYPTION,
|
||||
+ g_param_spec_flags ("vnc-encryption",
|
||||
+ "vnc encryption",
|
||||
+ "vnc encryption",
|
||||
+ GRD_TYPE_VNC_ENCRYPTION,
|
||||
+ GRD_VNC_ENCRYPTION_TLS_ANON,
|
||||
+ G_PARAM_READWRITE |
|
||||
+ G_PARAM_CONSTRUCT |
|
||||
+ G_PARAM_STATIC_STRINGS));
|
||||
@@ -138,6 +139,13 @@ update_vnc_auth_method (GrdSettingsUser *settings)
|
||||
"auth-method");
|
||||
}
|
||||
|
||||
+static void
|
||||
+update_vnc_encryption (GrdSettingsUser *settings)
|
||||
+{
|
||||
+ settings->vnc.encryption = g_settings_get_flags (settings->vnc.settings,
|
||||
+ "encryption");
|
||||
+}
|
||||
+
|
||||
static gboolean
|
||||
grd_settings_user_is_rdp_enabled (GrdSettings *settings)
|
||||
{
|
||||
@@ -192,6 +200,12 @@ grd_settings_user_get_vnc_auth_method (GrdSettings *settings)
|
||||
return GRD_SETTINGS_USER (settings)->vnc.auth_method;
|
||||
}
|
||||
|
||||
+static GrdVncEncryption
|
||||
+grd_settings_user_get_encryption (GrdSettings *settings)
|
||||
+{
|
||||
+ return GRD_SETTINGS_USER (settings)->vnc.encryption;
|
||||
+}
|
||||
+
|
||||
GrdSettingsUser *
|
||||
grd_settings_user_new (GrdContext *context)
|
||||
{
|
||||
@@ -273,6 +287,11 @@ on_vnc_settings_changed (GSettings *vnc_settings,
|
||||
update_vnc_auth_method (settings);
|
||||
g_signal_emit (settings, signals[VNC_AUTH_METHOD_CHANGED], 0);
|
||||
}
|
||||
+ else if (strcmp (key, "encryption") == 0)
|
||||
+ {
|
||||
+ update_vnc_encryption (settings);
|
||||
+ g_signal_emit (settings, signals[VNC_ENCRYPTION_CHANGED], 0);
|
||||
+ }
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -294,6 +313,7 @@ grd_settings_user_init (GrdSettingsUser *settings)
|
||||
update_vnc_view_only (settings);
|
||||
update_vnc_screen_share_mode (settings);
|
||||
update_vnc_auth_method (settings);
|
||||
+ update_vnc_encryption (settings);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -313,6 +333,7 @@ grd_settings_user_class_init (GrdSettingsUserClass *klass)
|
||||
settings_class->get_rdp_server_key = grd_settings_user_get_rdp_server_key;
|
||||
settings_class->get_rdp_server_cert = grd_settings_user_get_rdp_server_cert;
|
||||
settings_class->get_vnc_auth_method = grd_settings_user_get_vnc_auth_method;
|
||||
+ settings_class->get_vnc_encryption = grd_settings_user_get_encryption;
|
||||
|
||||
signals[RDP_ENABLED_CHANGED] =
|
||||
g_signal_new ("rdp-enabled-changed",
|
||||
@@ -377,4 +398,11 @@ grd_settings_user_class_init (GrdSettingsUserClass *klass)
|
||||
0,
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 0);
|
||||
+ signals[VNC_ENCRYPTION_CHANGED] =
|
||||
+ g_signal_new ("vnc-encryption-changed",
|
||||
+ G_TYPE_FROM_CLASS (klass),
|
||||
+ G_SIGNAL_RUN_LAST,
|
||||
+ 0,
|
||||
+ NULL, NULL, NULL,
|
||||
+ G_TYPE_NONE, 0);
|
||||
}
|
||||
diff --git a/src/grd-settings.c b/src/grd-settings.c
|
||||
index 1cd4bea5..cd1dda1f 100644
|
||||
--- a/src/grd-settings.c
|
||||
+++ b/src/grd-settings.c
|
||||
@@ -230,6 +230,12 @@ grd_settings_get_vnc_auth_method (GrdSettings *settings)
|
||||
return GRD_SETTINGS_GET_CLASS (settings)->get_vnc_auth_method (settings);
|
||||
}
|
||||
|
||||
+GrdVncEncryption
|
||||
+grd_settings_get_vnc_encryption (GrdSettings *settings)
|
||||
+{
|
||||
+ return GRD_SETTINGS_GET_CLASS (settings)->get_vnc_encryption (settings);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
grd_settings_finalize (GObject *object)
|
||||
{
|
||||
diff --git a/src/grd-settings.h b/src/grd-settings.h
|
||||
index 9e36ff9d..51f0f1c3 100644
|
||||
--- a/src/grd-settings.h
|
||||
+++ b/src/grd-settings.h
|
||||
@@ -56,6 +56,8 @@ struct _GrdSettingsClass
|
||||
char * (* get_rdp_server_key) (GrdSettings *settings);
|
||||
|
||||
GrdVncAuthMethod (* get_vnc_auth_method) (GrdSettings *settings);
|
||||
+
|
||||
+ GrdVncEncryption (* get_vnc_encryption) (GrdSettings *settings);
|
||||
};
|
||||
|
||||
int grd_settings_get_rdp_port (GrdSettings *settings);
|
||||
@@ -94,4 +96,6 @@ char *grd_settings_get_rdp_server_key (GrdSettings *settings);
|
||||
|
||||
GrdVncAuthMethod grd_settings_get_vnc_auth_method (GrdSettings *settings);
|
||||
|
||||
+GrdVncEncryption grd_settings_get_vnc_encryption (GrdSettings *settings);
|
||||
+
|
||||
#endif /* GRD_SETTINGS_H */
|
||||
diff --git a/src/grd-vnc-server.c b/src/grd-vnc-server.c
|
||||
index 83220655..2f8229b2 100644
|
||||
index 70efab12..9280dfb5 100644
|
||||
--- a/src/grd-vnc-server.c
|
||||
+++ b/src/grd-vnc-server.c
|
||||
@@ -24,6 +24,7 @@
|
||||
@@ -24,12 +24,14 @@
|
||||
|
||||
#include "grd-vnc-server.h"
|
||||
|
||||
|
|
@ -362,15 +407,14 @@ index 83220655..2f8229b2 100644
|
|||
#include <gio/gio.h>
|
||||
#include <rfb/rfb.h>
|
||||
|
||||
@@ -31,6 +32,7 @@
|
||||
#include "grd-context.h"
|
||||
#include "grd-debug.h"
|
||||
#include "grd-session-vnc.h"
|
||||
#include "grd-utils.h"
|
||||
+#include "grd-vnc-tls.h"
|
||||
|
||||
enum
|
||||
{
|
||||
@@ -130,6 +132,45 @@ on_incoming (GSocketService *service,
|
||||
@@ -129,6 +131,43 @@ on_incoming (GSocketService *service,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -382,9 +426,7 @@ index 83220655..2f8229b2 100644
|
|||
+ GrdVncEncryption encryption;
|
||||
+
|
||||
+ tls_security_handler = grd_vnc_tls_get_security_handler ();
|
||||
+ g_object_get (G_OBJECT (settings),
|
||||
+ "vnc-encryption", &encryption,
|
||||
+ NULL);
|
||||
+ encryption = grd_settings_get_vnc_encryption (settings);
|
||||
+
|
||||
+ if (encryption == (GRD_VNC_ENCRYPTION_NONE | GRD_VNC_ENCRYPTION_TLS_ANON))
|
||||
+ {
|
||||
|
|
@ -416,7 +458,7 @@ index 83220655..2f8229b2 100644
|
|||
gboolean
|
||||
grd_vnc_server_start (GrdVncServer *vnc_server,
|
||||
GError **error)
|
||||
@@ -242,11 +283,19 @@ grd_vnc_server_dispose (GObject *object)
|
||||
@@ -216,11 +255,19 @@ grd_vnc_server_dispose (GObject *object)
|
||||
static void
|
||||
grd_vnc_server_constructed (GObject *object)
|
||||
{
|
||||
|
|
@ -428,7 +470,7 @@ index 83220655..2f8229b2 100644
|
|||
else
|
||||
rfbLogEnable (0);
|
||||
|
||||
+ g_signal_connect (settings, "notify::vnc-encryption",
|
||||
+ g_signal_connect (settings, "vnc-encryption-changed",
|
||||
+ G_CALLBACK (on_vnc_encryption_changed),
|
||||
+ vnc_server);
|
||||
+ sync_encryption_settings (vnc_server);
|
||||
|
|
@ -921,10 +963,10 @@ index 00000000..135ef8c7
|
|||
+
|
||||
+#endif /* GRD_VNC_TLS_H */
|
||||
diff --git a/src/meson.build b/src/meson.build
|
||||
index 1b2cb93d..6b8b517e 100644
|
||||
index ac07455b..654caccb 100644
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -274,10 +274,13 @@ if have_vnc
|
||||
@@ -161,10 +161,13 @@ if have_vnc
|
||||
'grd-vnc-pipewire-stream.h',
|
||||
'grd-vnc-server.c',
|
||||
'grd-vnc-server.h',
|
||||
|
|
@ -939,10 +981,10 @@ index 1b2cb93d..6b8b517e 100644
|
|||
endif
|
||||
|
||||
diff --git a/src/org.gnome.desktop.remote-desktop.gschema.xml.in b/src/org.gnome.desktop.remote-desktop.gschema.xml.in
|
||||
index 2986a0e5..a0169789 100644
|
||||
index 5b39a5de..c6dc2ab5 100644
|
||||
--- a/src/org.gnome.desktop.remote-desktop.gschema.xml.in
|
||||
+++ b/src/org.gnome.desktop.remote-desktop.gschema.xml.in
|
||||
@@ -173,6 +173,16 @@
|
||||
@@ -116,5 +116,15 @@
|
||||
configuration updates.
|
||||
</description>
|
||||
</key>
|
||||
|
|
@ -957,13 +999,12 @@ index 2986a0e5..a0169789 100644
|
|||
+ </description>
|
||||
+ </key>
|
||||
</schema>
|
||||
<schema id='org.gnome.desktop.remote-desktop.vnc.headless' path='/org/gnome/desktop/remote-desktop/vnc/headless/'>
|
||||
<key name='port' type='q'>
|
||||
</schemalist>
|
||||
--
|
||||
2.51.0
|
||||
2.40.0
|
||||
|
||||
|
||||
From bc65e13fb3687b2f79433c880525333810d6ba31 Mon Sep 17 00:00:00 2001
|
||||
From e0192db09adddb551e4dbfeb17c281fb5815d7be Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Wed, 27 Nov 2019 11:02:09 +0100
|
||||
Subject: [PATCH 2/7] session-vnc: Add paused/resumed signals
|
||||
|
|
@ -976,10 +1017,10 @@ out-of-socket source.
|
|||
1 file changed, 65 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c
|
||||
index b5e4fe13..79de30d4 100644
|
||||
index a82952ae..1fd3b778 100644
|
||||
--- a/src/grd-session-vnc.c
|
||||
+++ b/src/grd-session-vnc.c
|
||||
@@ -42,14 +42,27 @@
|
||||
@@ -41,14 +41,27 @@
|
||||
#define BGRX_SAMPLES_PER_PIXEL 3
|
||||
#define BGRX_BYTES_PER_PIXEL 4
|
||||
|
||||
|
|
@ -1007,7 +1048,7 @@ index b5e4fe13..79de30d4 100644
|
|||
rfbScreenInfoPtr rfb_screen;
|
||||
rfbClientPtr rfb_client;
|
||||
|
||||
@@ -81,7 +94,7 @@ struct _GrdSessionVnc
|
||||
@@ -79,7 +92,7 @@ struct _GrdSessionVnc
|
||||
G_DEFINE_TYPE (GrdSessionVnc, grd_session_vnc, GRD_TYPE_SESSION)
|
||||
|
||||
static void
|
||||
|
|
@ -1016,7 +1057,7 @@ index b5e4fe13..79de30d4 100644
|
|||
|
||||
static gboolean
|
||||
close_session_idle (gpointer user_data);
|
||||
@@ -248,7 +261,8 @@ handle_client_gone (rfbClientPtr rfb_client)
|
||||
@@ -246,7 +259,8 @@ handle_client_gone (rfbClientPtr rfb_client)
|
||||
|
||||
g_debug ("VNC client gone");
|
||||
|
||||
|
|
@ -1026,16 +1067,16 @@ index b5e4fe13..79de30d4 100644
|
|||
maybe_queue_close_session_idle (session_vnc);
|
||||
session_vnc->rfb_client = NULL;
|
||||
}
|
||||
@@ -338,7 +352,7 @@ handle_new_client (rfbClientPtr rfb_client)
|
||||
{
|
||||
case GRD_VNC_AUTH_METHOD_PROMPT:
|
||||
show_sharing_desktop_prompt (session_vnc, rfb_client->host);
|
||||
@@ -315,7 +329,7 @@ handle_new_client (rfbClientPtr rfb_client)
|
||||
session_vnc->prompt_cancellable,
|
||||
prompt_response_callback,
|
||||
session_vnc);
|
||||
- grd_session_vnc_detach_source (session_vnc);
|
||||
+ grd_session_vnc_pause (session_vnc);
|
||||
return RFB_CLIENT_ON_HOLD;
|
||||
case GRD_VNC_AUTH_METHOD_PASSWORD:
|
||||
session_vnc->rfb_screen->passwordCheck = check_rfb_password;
|
||||
@@ -601,7 +615,7 @@ check_rfb_password (rfbClientPtr rfb_client,
|
||||
@@ -581,7 +595,7 @@ check_rfb_password (rfbClientPtr rfb_client,
|
||||
if (memcmp (challenge_encrypted, response_encrypted, len) == 0)
|
||||
{
|
||||
grd_session_start (GRD_SESSION (session_vnc));
|
||||
|
|
@ -1044,7 +1085,7 @@ index b5e4fe13..79de30d4 100644
|
|||
return TRUE;
|
||||
}
|
||||
else
|
||||
@@ -821,6 +835,36 @@ grd_session_vnc_detach_source (GrdSessionVnc *session_vnc)
|
||||
@@ -801,6 +815,36 @@ grd_session_vnc_detach_source (GrdSessionVnc *session_vnc)
|
||||
g_clear_pointer (&session_vnc->source, g_source_unref);
|
||||
}
|
||||
|
||||
|
|
@ -1078,10 +1119,10 @@ index b5e4fe13..79de30d4 100644
|
|||
+ g_signal_emit (session_vnc, signals[RESUMED], 0);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
on_view_only_changed (GrdSettings *settings,
|
||||
GParamSpec *pspec,
|
||||
@@ -859,6 +903,7 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
|
||||
GrdSessionVnc *
|
||||
grd_session_vnc_new (GrdVncServer *vnc_server,
|
||||
GSocketConnection *connection)
|
||||
@@ -822,6 +866,7 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
|
||||
|
||||
grd_session_vnc_grab_socket (session_vnc, vnc_socket_grab_func);
|
||||
grd_session_vnc_attach_source (session_vnc);
|
||||
|
|
@ -1089,7 +1130,7 @@ index b5e4fe13..79de30d4 100644
|
|||
|
||||
init_vnc_session (session_vnc);
|
||||
|
||||
@@ -893,7 +938,7 @@ grd_session_vnc_stop (GrdSession *session)
|
||||
@@ -856,7 +901,7 @@ grd_session_vnc_stop (GrdSession *session)
|
||||
g_clear_object (&session_vnc->stream);
|
||||
}
|
||||
|
||||
|
|
@ -1098,7 +1139,7 @@ index b5e4fe13..79de30d4 100644
|
|||
|
||||
g_clear_object (&session_vnc->connection);
|
||||
g_clear_object (&session_vnc->clipboard_vnc);
|
||||
@@ -984,8 +1029,8 @@ on_stream_ready (GrdStream *stream,
|
||||
@@ -941,8 +986,8 @@ on_stream_ready (GrdStream *stream,
|
||||
G_CALLBACK (on_pipewire_stream_closed),
|
||||
session_vnc);
|
||||
|
||||
|
|
@ -1109,9 +1150,9 @@ index b5e4fe13..79de30d4 100644
|
|||
}
|
||||
|
||||
static void
|
||||
@@ -1021,4 +1066,17 @@ grd_session_vnc_class_init (GrdSessionVncClass *klass)
|
||||
|
||||
session_class->stop = grd_session_vnc_stop;
|
||||
@@ -977,4 +1022,17 @@ grd_session_vnc_class_init (GrdSessionVncClass *klass)
|
||||
session_class->remote_desktop_session_started =
|
||||
grd_session_vnc_remote_desktop_session_started;
|
||||
session_class->on_stream_created = grd_session_vnc_on_stream_created;
|
||||
+
|
||||
+ signals[PAUSED] = g_signal_new ("paused",
|
||||
|
|
@ -1128,10 +1169,10 @@ index b5e4fe13..79de30d4 100644
|
|||
+ G_TYPE_NONE, 0);
|
||||
}
|
||||
--
|
||||
2.51.0
|
||||
2.40.0
|
||||
|
||||
|
||||
From aabc0245e247fbffe9ae6b8281cbf2bccc9ab882 Mon Sep 17 00:00:00 2001
|
||||
From 9a36ce45052d05a0e0e4ab70beba704b321875a6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Wed, 27 Nov 2019 11:03:46 +0100
|
||||
Subject: [PATCH 3/7] session-vnc: Add grd_session_vnc_dispatch() helper
|
||||
|
|
@ -1144,10 +1185,10 @@ available that is not visible to the socket source.
|
|||
2 files changed, 18 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c
|
||||
index 79de30d4..b48b9017 100644
|
||||
index 1fd3b778..8366e661 100644
|
||||
--- a/src/grd-session-vnc.c
|
||||
+++ b/src/grd-session-vnc.c
|
||||
@@ -771,6 +771,21 @@ vnc_socket_grab_func (GrdSessionVnc *session_vnc,
|
||||
@@ -751,6 +751,21 @@ vnc_socket_grab_func (GrdSessionVnc *session_vnc,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -1169,7 +1210,7 @@ index 79de30d4..b48b9017 100644
|
|||
static gboolean
|
||||
handle_socket_data (GSocket *socket,
|
||||
GIOCondition condition,
|
||||
@@ -787,16 +802,7 @@ handle_socket_data (GSocket *socket,
|
||||
@@ -767,16 +782,7 @@ handle_socket_data (GSocket *socket,
|
||||
}
|
||||
else if (condition & G_IO_IN)
|
||||
{
|
||||
|
|
@ -1188,21 +1229,23 @@ index 79de30d4..b48b9017 100644
|
|||
else
|
||||
{
|
||||
diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h
|
||||
index 3c08f812..f230887e 100644
|
||||
index ffc8d27a..a86d61d2 100644
|
||||
--- a/src/grd-session-vnc.h
|
||||
+++ b/src/grd-session-vnc.h
|
||||
@@ -79,4 +79,6 @@ void grd_session_vnc_grab_socket (GrdSessionVnc *session_vnc,
|
||||
@@ -80,6 +80,8 @@ void grd_session_vnc_grab_socket (GrdSessionVnc *session_vnc,
|
||||
void grd_session_vnc_ungrab_socket (GrdSessionVnc *session_vnc,
|
||||
GrdVncSocketGrabFunc grab_func);
|
||||
|
||||
+void grd_session_vnc_dispatch (GrdSessionVnc *session_vnc);
|
||||
+
|
||||
GrdVncServer * grd_session_vnc_get_vnc_server (GrdSessionVnc *session_vnc);
|
||||
|
||||
#endif /* GRD_SESSION_VNC_H */
|
||||
--
|
||||
2.51.0
|
||||
2.40.0
|
||||
|
||||
|
||||
From 2d43f0586ae24b202beda4d283b25fec3e722af7 Mon Sep 17 00:00:00 2001
|
||||
From 685f376a6b331d91e2bb34e8484682974db149a5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Wed, 27 Nov 2019 11:05:13 +0100
|
||||
Subject: [PATCH 4/7] vnc/tls: Add some logging
|
||||
|
|
@ -1276,10 +1319,10 @@ index ec4758e0..ac6c35f6 100644
|
|||
{
|
||||
g_warning ("TLS handshake failed: %s", error->message);
|
||||
--
|
||||
2.51.0
|
||||
2.40.0
|
||||
|
||||
|
||||
From 62e04d794eaf2c0acfc16af0b0968fead4bb4df1 Mon Sep 17 00:00:00 2001
|
||||
From eebd752d3df83d6ae2df79782dbb8b4a80083608 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Wed, 27 Nov 2019 11:07:40 +0100
|
||||
Subject: [PATCH 5/7] vnc/tls: Dispatch also when data is pending outside of
|
||||
|
|
@ -1296,10 +1339,10 @@ long as there is data to read in those buffers.
|
|||
2 files changed, 86 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h
|
||||
index f230887e..9dd33442 100644
|
||||
index a86d61d2..5db388b0 100644
|
||||
--- a/src/grd-session-vnc.h
|
||||
+++ b/src/grd-session-vnc.h
|
||||
@@ -79,6 +79,8 @@ void grd_session_vnc_grab_socket (GrdSessionVnc *session_vnc,
|
||||
@@ -80,6 +80,8 @@ void grd_session_vnc_grab_socket (GrdSessionVnc *session_vnc,
|
||||
void grd_session_vnc_ungrab_socket (GrdSessionVnc *session_vnc,
|
||||
GrdVncSocketGrabFunc grab_func);
|
||||
|
||||
|
|
@ -1446,10 +1489,10 @@ index ac6c35f6..312b6b92 100644
|
|||
}
|
||||
|
||||
--
|
||||
2.51.0
|
||||
2.40.0
|
||||
|
||||
|
||||
From 799e2b287bd055c46709d0063436b819894200e6 Mon Sep 17 00:00:00 2001
|
||||
From 9f41a7aba0f24a3253a1483a290364e887345b42 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Wed, 27 Nov 2019 16:48:00 +0100
|
||||
Subject: [PATCH 6/7] session-vnc: Set our own password handling function up
|
||||
|
|
@ -1468,10 +1511,10 @@ password prompt.
|
|||
1 file changed, 2 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c
|
||||
index b48b9017..87cc7d86 100644
|
||||
index 8366e661..baf7520c 100644
|
||||
--- a/src/grd-session-vnc.c
|
||||
+++ b/src/grd-session-vnc.c
|
||||
@@ -99,11 +99,6 @@ grd_session_vnc_pause (GrdSessionVnc *session_vnc);
|
||||
@@ -97,11 +97,6 @@ grd_session_vnc_pause (GrdSessionVnc *session_vnc);
|
||||
static gboolean
|
||||
close_session_idle (gpointer user_data);
|
||||
|
||||
|
|
@ -1483,7 +1526,7 @@ index b48b9017..87cc7d86 100644
|
|||
static void
|
||||
swap_uint8 (uint8_t *a,
|
||||
uint8_t *b)
|
||||
@@ -355,7 +350,6 @@ handle_new_client (rfbClientPtr rfb_client)
|
||||
@@ -332,7 +327,6 @@ handle_new_client (rfbClientPtr rfb_client)
|
||||
grd_session_vnc_pause (session_vnc);
|
||||
return RFB_CLIENT_ON_HOLD;
|
||||
case GRD_VNC_AUTH_METHOD_PASSWORD:
|
||||
|
|
@ -1491,7 +1534,7 @@ index b48b9017..87cc7d86 100644
|
|||
/*
|
||||
* authPasswdData needs to be non NULL in libvncserver to trigger
|
||||
* password authentication.
|
||||
@@ -719,6 +713,8 @@ init_vnc_session (GrdSessionVnc *session_vnc)
|
||||
@@ -699,6 +693,8 @@ init_vnc_session (GrdSessionVnc *session_vnc)
|
||||
session_vnc->monitor_config->connectors = connectors;
|
||||
}
|
||||
|
||||
|
|
@ -1501,10 +1544,10 @@ index b48b9017..87cc7d86 100644
|
|||
rfbProcessEvents (rfb_screen, 0);
|
||||
}
|
||||
--
|
||||
2.51.0
|
||||
2.40.0
|
||||
|
||||
|
||||
From b74286bdb8876d27d279c725357d73a23a3316b4 Mon Sep 17 00:00:00 2001
|
||||
From ea9f0e491c6fd34cc6eda0104d017eba1a671023 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Mon, 12 Oct 2020 17:34:30 +0200
|
||||
Subject: [PATCH 7/7] vnc: Copy pixels using the right destination stride
|
||||
|
|
@ -1522,10 +1565,10 @@ dropped.
|
|||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h
|
||||
index 9dd33442..98c73451 100644
|
||||
index 5db388b0..c4f4e8d4 100644
|
||||
--- a/src/grd-session-vnc.h
|
||||
+++ b/src/grd-session-vnc.h
|
||||
@@ -67,7 +67,8 @@ int grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
|
||||
@@ -68,7 +68,8 @@ int grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
|
||||
|
||||
int grd_session_vnc_get_fd (GrdSessionVnc *session_vnc);
|
||||
|
||||
|
|
@ -1536,6 +1579,5 @@ index 9dd33442..98c73451 100644
|
|||
gboolean grd_session_vnc_is_client_gone (GrdSessionVnc *session_vnc);
|
||||
|
||||
--
|
||||
2.51.0
|
||||
|
||||
2.40.0
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
summary: Run all tests
|
||||
execute:
|
||||
how: tmt
|
||||
discover:
|
||||
how: fmf
|
||||
|
||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (gnome-remote-desktop-49.2.tar.xz) = b678ee125e1b5f6d58e85f57a332cf02ee6b5dee654469e66f496f9467e6512a701a3e37a9580562e0b064320380d2df4ca6b15e20bd35b1605b4bd9de73827c
|
||||
SHA512 (gnome-remote-desktop-45.1.tar.xz) = 4572fefa03ee433783c822cf0405bd17b645f3aa08e8d88c04165859fd30643d612e5d7516a64ded8c1a0d2007026d6df877930b5ea127d7e1e939c1bb60f379
|
||||
|
|
|
|||
|
|
@ -1,2 +0,0 @@
|
|||
gef config gef.disable_color True
|
||||
got-audit --all
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
summary: Audit the GOT for signs of tampering
|
||||
description: |
|
||||
Pointers in the server process GOT will be checked to ensure that
|
||||
each function pointer's value is within a shared object file
|
||||
that exports a symbol of that name, and that no shared object
|
||||
files export conflicting symbols.
|
||||
contact: Gordon Messmer <gordon.messmer@gmail.com>
|
||||
require+:
|
||||
- gdb-gef # needed to test got-audit
|
||||
- gnome-remote-desktop
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
#!/bin/bash
|
||||
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# runtest.sh of /CoreOS/gnome-remote-desktop/Sanity/got-audit
|
||||
# Description: Check pointers in the server process GOT for signs of tampering
|
||||
# Author: Gordon Messmer <gordon.messmer@gmail.com>
|
||||
#
|
||||
|
||||
# Include Beaker environment
|
||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||
|
||||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
rlRun "systemctl start --user gnome-remote-desktop-headless"
|
||||
rlRun "TestDir=\$(pwd)"
|
||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
||||
rlRun "pushd $TmpDir"
|
||||
rlRun "auditfile=\$(mktemp --tmpdir=${TmpDir})"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest "Run GEF got-audit"
|
||||
rlRun "SERVICE_PID=\$( systemctl show --property=MainPID --user gnome-remote-desktop-headless.service | cut -f2 -d= )"
|
||||
rlRun "echo SERVICE_PID is '$SERVICE_PID'"
|
||||
[ -n "$SERVICE_PID" ] || rlFail "No service pid was found"
|
||||
rlRun "gdb-gef --pid '$SERVICE_PID' --command='$TestDir'/got-audit.gdb --batch > '$auditfile'"
|
||||
# Basic test: ensure that at least one symbol is found in libc.so,
|
||||
# to verify that the report looks plausible.
|
||||
rlAssertGrep " : /.*/libc.so" "$auditfile"
|
||||
# Ensure the got-audit did not report any errors
|
||||
rlAssertNotGrep " :: ERROR" "$auditfile"
|
||||
rlRun "cp '$auditfile' '$TMT_TEST_DATA'/got-audit.txt"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartCleanup
|
||||
rlRun "systemctl stop --user gnome-remote-desktop-headless"
|
||||
rlRun "popd"
|
||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
||||
rlPhaseEnd
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
test: ./runtest.sh
|
||||
framework: beakerlib
|
||||
Loading…
Add table
Add a link
Reference in a new issue