diff options
Diffstat (limited to 'gnome-remote-desktop.spec')
-rw-r--r-- | gnome-remote-desktop.spec | 312 |
1 files changed, 312 insertions, 0 deletions
diff --git a/gnome-remote-desktop.spec b/gnome-remote-desktop.spec new file mode 100644 index 0000000..2913277 --- /dev/null +++ b/gnome-remote-desktop.spec @@ -0,0 +1,312 @@ +%global systemd_unit gnome-remote-desktop.service + +%global tarball_version %%(echo %{version} | tr '~' '.') + +%if 0%{?rhel} >= 9 +%global bundle_libvncserver 1 +%global enable_rdp 0 +%else +%global bundle_libvncserver 0 +%global enable_rdp 1 +%endif + +%global libvncserver_name LibVNCServer +%global libvncserver_version 0.9.13 + +Name: gnome-remote-desktop +Version: 40.0 +Release: 7%{?dist} +Summary: GNOME Remote Desktop screen share service + +License: GPLv2+ +URL: https://gitlab.gnome.org/jadahl/gnome-remote-desktop +Source0: https://download.gnome.org/sources/gnome-remote-desktop/40/%{name}-%{tarball_version}.tar.xz +Source1: https://github.com/LibVNC/libvncserver/archive/refs/tags/%{libvncserver_name}-%{libvncserver_version}.tar.gz + +### gnome-remote-desktop patches +# Adds encryption support (requires patched LibVNCServer) +Patch0: gnutls-anontls.patch + +# Backport upstream leak fix (rhbz#1951129) +Patch1: 0001-pipewire-stream-Don-t-leak-GSource-s.patch + +## LibVNCServer patches required for bundling +Patch100: 0001-build-Set-rpath-on-executable.patch + +### LibVNCServer patches +## TLS security type enablement patches +# https://github.com/LibVNC/libvncserver/pull/234 +Patch1000: 0001-libvncserver-Add-API-to-add-custom-I-O-entry-points.patch +Patch1001: 0002-libvncserver-Add-channel-security-handlers.patch +# https://github.com/LibVNC/libvncserver/commit/87c52ee0551b7c4e76855d270d475b9e3039fe08 +Patch1002: 0003-libvncserver-auth-don-t-keep-security-handlers-from-.patch +# Fix crash on all runs after the first +# https://github.com/LibVNC/libvncserver/pull/444 +# https://bugzilla.redhat.com/show_bug.cgi?id=1882718 +Patch1003: 0004-zlib-Clear-buffer-pointers-on-cleanup-444.patch +# Fix another crasher +# https://gitlab.gnome.org/GNOME/gnome-remote-desktop/-/issues/45 +# https://bugzilla.redhat.com/show_bug.cgi?id=1882718 +Patch1004: 0001-libvncserver-don-t-NULL-out-internal-of-the-default-.patch + +## downstream patches +Patch2000: libvncserver-LibVNCServer-0.9.13-system-crypto-policy.patch + +## Don't compile SHA1 support +Patch2100: 0001-crypto-Don-t-compile-SHA1-support-when-Websockets-ar.patch + + +BuildRequires: git +BuildRequires: gcc +BuildRequires: meson >= 0.36.0 +BuildRequires: pkgconfig +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(glib-2.0) >= 2.32 +BuildRequires: pkgconfig(gio-unix-2.0) >= 2.32 +BuildRequires: pkgconfig(libpipewire-0.3) >= 0.3.0 +%if 0%{?enable_rdp} +BuildRequires: pkgconfig(freerdp2) +BuildRequires: pkgconfig(winpr2) +BuildRequires: pkgconfig(fuse3) +%endif +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: pkgconfig(libsecret-1) +BuildRequires: pkgconfig(libnotify) +BuildRequires: pkgconfig(gnutls) +%if 0%{?bundle_libvncserver} +BuildRequires: cmake +BuildRequires: lzo-devel +BuildRequires: lzo-minilzo +%else +BuildRequires: pkgconfig(libvncserver) >= 0.9.11-7 +%endif + +%{?systemd_requires} +BuildRequires: systemd + +Requires: pipewire >= 0.3.0 + +Obsoletes: vino < 3.22.0-21 +%if 0%{?bundle_libvncserver} +Provides: bundled(libvncserver) = %{libvncserver_version} +%endif + +%description +GNOME Remote Desktop is a remote desktop and screen sharing service for the +GNOME desktop environment. + + +%prep + +## Setup libvncserver + +%if 0%{?bundle_libvncserver} +%setup -b 1 -n libvncserver-%{libvncserver_name}-%{libvncserver_version} +%patch1000 -p1 -b .tls-1 +%patch1001 -p1 -b .tls-2 +%patch1002 -p1 -b .handlers +%patch1003 -p1 -b .pointers +%patch1004 -p1 -b .cursor_null +%patch2000 -p1 -b .crypto_policy + +# Nuke bundled minilzo +rm -fv common/lzodefs.h common/lzoconf.h commmon/minilzo.h common/minilzo.c + +# Fix encoding +for file in ChangeLog ; do + mv ${file} ${file}.OLD && \ + iconv -f ISO_8859-1 -t UTF8 ${file}.OLD > ${file} && \ + touch --reference ${file}.OLD $file +done +%endif + +## Setup gnome-remote-desktop + +%setup -n %{name}-%{tarball_version} +%patch0 -p1 +%patch1 -p1 +%if 0%{?bundle_libvncserver} +%patch100 -p1 +%endif + + +%build + +## Build libvncserver + +%if 0%{?bundle_libvncserver} +pushd ../libvncserver-%{libvncserver_name}-%{libvncserver_version} +mkdir -p %{_builddir}/libvncserver/ +%global libvncserver_install_dir %{buildroot}%{_builddir}/libvncserver +%cmake \ + -DCMAKE_INSTALL_PREFIX=%{libvncserver_install_dir} \ + -DINCLUDE_INSTALL_DIR=%{libvncserver_install_dir}/include \ + -DLIB_INSTALL_DIR:PATH=%{libvncserver_install_dir}/%{_lib} \ + -DSYSCONF_INSTALL_DIR=%{libvncserver_install_dir}/etc \ + -DWITH_FFMPEG=OFF -DWITH_GTK=OFF -DWITH_OPENSSL=OFF -DWITH_GNUTLS=ON \ + -DWITH_SDL=OFF -DWITH_X11=OFF -DWITH_WEBSOCKETS=OFF \ + -DLIBVNCSERVER_WITH_WEBSOCKETS=OFF +%cmake_build +%__cmake --install "%{__cmake_builddir}" +popd +%endif + +## Build gnome-remote-desktop + +%if 0%{?bundle_libvncserver} +%global pkg_config_path_override --pkg-config-path %{buildroot}/%{_builddir}/libvncserver/%{_lib}/pkgconfig +%endif + +%if 0%{?enable_rdp} +%global rdp_configuration -Drdp=true +%else +%global rdp_configuration -Drdp=false +%endif + +%meson %{?pkg_config_path_override} %{rdp_configuration} +%meson_build + + +%install +%meson_install + +%if 0%{?bundle_libvncserver} +pushd ../libvncserver-%{libvncserver_name}-%{libvncserver_version} +mkdir -p %{buildroot}/%{_libdir}/gnome-remote-desktop/ +cp %{__cmake_builddir}/libvncserver.so.1 %{buildroot}/%{_libdir}/gnome-remote-desktop/ +cp COPYING %{_builddir}/%{name}-%{tarball_version}/COPYING.libvncserver +popd +%endif + + +%post +%systemd_user_post %{systemd_unit} + + +%preun +%systemd_user_preun %{systemd_unit} + + +%postun +%systemd_user_postun_with_restart %{systemd_unit} + + +%files +%license COPYING +%if 0%{?bundle_libvncserver} +%license COPYING.libvncserver +%endif +%doc README +%{_libexecdir}/gnome-remote-desktop-daemon +%if 0%{?bundle_libvncserver} +%{_libdir}/gnome-remote-desktop/libvncserver.so.1 +%endif +%{_userunitdir}/gnome-remote-desktop.service +%{_datadir}/glib-2.0/schemas/org.gnome.desktop.remote-desktop.gschema.xml +%{_datadir}/glib-2.0/schemas/org.gnome.desktop.remote-desktop.enums.xml + + +%changelog +* Mon Oct 25 2021 Jonas Ådahl <jadahl@redhat.com> - 40.0-7 +- Don't compile in SHA1 support + Resolves: #1936594 + +* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 40.0-6 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Tue Jun 15 2021 Jonas Ådahl <jadahl@redhat.com> - 40.0-5 +- Backport leak fix + Resolves: #1951129 + +* Mon May 17 2021 Ondrej Holy <oholy@redhat.com> - 40.0-4 +- Rebuild for updated FreeRDP (#1951123). + +* Thu Apr 22 2021 Jonas Ådahl <jadahl@redhat.com> - 40.0-3 +- Bundle libvncserver +- Disable RDP support + +* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 40.0-2 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* 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 |