[packages/tigervnc] - up to 1.11.0 - fix build with xserver 21 - use upstream systemd unit

baggins baggins at pld-linux.org
Sat Nov 6 11:33:47 CET 2021


commit 10862a8746c3d0424b658596abdd57d32b491616
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Sat Nov 6 11:32:47 2021 +0100

    - up to 1.11.0
    - fix build with xserver 21
    - use upstream systemd unit

 tigervnc-manpages.patch     | 12 -----------
 tigervnc-shebang.patch      |  7 +++----
 tigervnc-xstartup.patch     | 33 ------------------------------
 tigervnc.spec               | 39 ++++++++++++++++++------------------
 vncserver-service-generator | 49 ---------------------------------------------
 vncserver.target            |  7 -------
 xserver-1.21.patch          | 42 ++++++++++++++++++++++++++++++++++++++
 xserver.patch               | 35 +++++++++-----------------------
 8 files changed, 75 insertions(+), 149 deletions(-)
---
diff --git a/tigervnc.spec b/tigervnc.spec
index c7a9e89..b0a8ed8 100644
--- a/tigervnc.spec
+++ b/tigervnc.spec
@@ -1,24 +1,21 @@
-%define		xversion	1.16.0
+%define		xversion	1.21.0
 
 Summary:	A TigerVNC remote display system
 Summary(pl.UTF-8):	System zdalnego dostępu TigerVNC
 Name:		tigervnc
-Version:	1.10.1
-Release:	8
+Version:	1.11.0
+Release:	1
 License:	GPL v2
 Group:		X11/Applications/Networking
 Source0:	https://github.com/TigerVNC/tigervnc/archive/v%{version}/%{name}-%{version}.tar.gz
-# Source0-md5:	0c38334c7a52d304c30fac7802125a49
+# Source0-md5:	07f5e217f288c515effb083896e65054
 Source1:	%{name}.desktop
 Source2:	vncserver.init
 Source3:	vncserver.sysconfig
-Source4:	vncserver.target
-Source5:	vncserver-service-generator
-Patch0:		%{name}-manpages.patch
 Patch1:		%{name}-passwd-crash-with-malloc-checks.patch
 Patch2:		%{name}-getmaster.patch
-Patch3:		%{name}-xstartup.patch
 Patch4:		%{name}-shebang.patch
+Patch5:		xserver-1.21.patch
 Patch100:	xserver.patch
 URL:		http://www.tigervnc.com/
 BuildRequires:	ImageMagick
@@ -177,18 +174,18 @@ zdalny dostęp do pulpitu.
 
 %prep
 %setup -q
-%patch0 -p1
 %patch1 -p1
 %patch2 -p1
-%patch3 -p1
 %patch4 -p1
 
 cp -a %{_usrsrc}/xorg-xserver-server-%{_xserverver}/* unix/xserver
+%patch5 -p1
 cd unix/xserver
 %patch100 -p1
 
 %build
-%cmake .
+%cmake . \
+	-DCMAKE_INSTALL_UNITDIR=%{systemdunitdir}
 %{__make}
 
 cd unix/xserver
@@ -253,10 +250,7 @@ install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig}
 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/vncserver
 cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/vncserver
 
-install -d $RPM_BUILD_ROOT{%{systemdunitdir},%{systemdunitdir}-generators}
-install -p %{SOURCE4} $RPM_BUILD_ROOT%{systemdunitdir}/vncserver.target
-install -p %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}-generators/vncserver-service-generator
-ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/vncserver.service
+ln -sr $RPM_BUILD_ROOT{%{_libexecdir},%{_bindir}}/vncserver
 
 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}
 
@@ -311,14 +305,21 @@ fi
 %attr(755,root,root) %{_bindir}/Xvnc
 %attr(755,root,root) %{_bindir}/vncserver
 %attr(755,root,root) %{_bindir}/x0vncserver
+%attr(755,root,root) %{_sbindir}/vncsession
+%attr(755,root,root) %{_libexecdir}/vncserver
+%attr(755,root,root) %{_libexecdir}/vncsession-start
 %attr(754,root,root) /etc/rc.d/init.d/vncserver
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vncserver
-%attr(755,root,root) %{systemdunitdir}-generators/vncserver-service-generator
-%{systemdunitdir}/vncserver.target
-%{systemdunitdir}/vncserver.service
+%dir %{_sysconfdir}/tigervnc
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tigervnc/vncserver-config-defaults
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tigervnc/vncserver-config-mandatory
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tigervnc/vncserver.users
+%config(noreplace) %verify(not md5 mtime size) /etc/pam.d/tigervnc
+%{systemdunitdir}/vncserver at .service
 %{_mandir}/man1/Xvnc.1*
-%{_mandir}/man1/vncserver.1*
 %{_mandir}/man1/x0vncserver.1*
+%{_mandir}/man8/vncserver.8*
+%{_mandir}/man8/vncsession.8*
 
 %files utils
 %defattr(644,root,root,755)
diff --git a/tigervnc-manpages.patch b/tigervnc-manpages.patch
deleted file mode 100644
index 30c9b55..0000000
--- a/tigervnc-manpages.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/unix/vncserver b/unix/vncserver
-index 68be032..ac0e993 100755
---- a/unix/vncserver
-+++ b/unix/vncserver
-@@ -678,6 +678,7 @@ sub Usage
- 	"                 [-geometry <width>x<height>]\n".
- 	"                 [-pixelformat rgbNNN|bgrNNN]\n".
- 	"                 [-fp <font-path>]\n".
-+	"                 [-cc <visual>]\n".
- 	"                 [-fg]\n".
- 	"                 [-autokill]\n".
- 	"                 [-noxstartup]\n".
diff --git a/tigervnc-shebang.patch b/tigervnc-shebang.patch
index f76af87..ff490b4 100644
--- a/tigervnc-shebang.patch
+++ b/tigervnc-shebang.patch
@@ -1,9 +1,8 @@
-diff -up tigervnc-1.3.0/unix/vncserver.shebang tigervnc-1.3.0/unix/vncserver
---- tigervnc-1.3.0/unix/vncserver.shebang	2013-07-24 12:22:34.962158378 +0100
-+++ tigervnc-1.3.0/unix/vncserver	2013-07-24 12:22:41.593188190 +0100
+--- tigervnc-1.3.0/unix/vncserver/vncserver.in.shebang	2013-07-24 12:22:34.962158378 +0100
++++ tigervnc-1.3.0/unix/vncserver/vncserver.in	2013-07-24 12:22:41.593188190 +0100
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env perl
 +#!/usr/bin/perl
  #
+ #  Copyright (C) 2015-2019 Pierre Ossman for Cendio AB
  #  Copyright (C) 2009-2010 D. R. Commander.  All Rights Reserved.
- #  Copyright (C) 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
diff --git a/tigervnc-xstartup.patch b/tigervnc-xstartup.patch
deleted file mode 100644
index b2ed420..0000000
--- a/tigervnc-xstartup.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/unix/vncserver b/unix/vncserver
-index c4d0535..64c6744 100755
---- a/unix/vncserver
-+++ b/unix/vncserver
-@@ -61,27 +61,7 @@ $defaultXStartup
-     = ("#!/bin/sh\n\n".
-        "unset SESSION_MANAGER\n".
-        "unset DBUS_SESSION_BUS_ADDRESS\n".
--       "OS=`uname -s`\n".
--       "if [ \$OS = 'Linux' ]; then\n".
--       "  case \"\$WINDOWMANAGER\" in\n".
--       "    \*gnome\*)\n".
--       "      if [ -e /etc/SuSE-release ]; then\n".
--       "        PATH=\$PATH:/opt/gnome/bin\n".
--       "        export PATH\n".
--       "      fi\n".
--       "      ;;\n".
--       "  esac\n".
--       "fi\n".
--       "if [ -x /etc/X11/xinit/xinitrc ]; then\n".
--       "  exec /etc/X11/xinit/xinitrc\n".
--       "fi\n".
--       "if [ -f /etc/X11/xinit/xinitrc ]; then\n".
--       "  exec sh /etc/X11/xinit/xinitrc\n".
--       "fi\n".
--       "[ -r \$HOME/.Xresources ] && xrdb \$HOME/.Xresources\n".
--       "xsetroot -solid grey\n".
--       "xterm -geometry 80x24+10+10 -ls -title \"\$VNCDESKTOP Desktop\" &\n".
--       "twm &\n");
-+       "exec /etc/X11/xinit/xinitrc\n");
- 
- $defaultConfig
-     = ("## Supported server options to pass to vncserver upon invocation can be listed\n".
diff --git a/vncserver-service-generator b/vncserver-service-generator
deleted file mode 100755
index cdb5b42..0000000
--- a/vncserver-service-generator
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh
-
-destunitdir=${1:-/tmp}
-
-# Do nothing if vncserver target is disabled
-[ -e /etc/systemd/system/multi-user.target.wants/vncserver.target ] || exit 0
-
-VNCSERVERS=""
-[ -f /etc/sysconfig/vncserver ] && . /etc/sysconfig/vncserver
-
-if [ -d $destunitdir/vncserver.target.wants ]; then
-	rm -f $destunitdir/vncserver.target.wants/vncserver@*.service
-else
-	mkdir -p $destunitdir/vncserver.target.wants
-fi
-
-for display in $VNCSERVERS; do
-	DISP="${display%%:*}"
-	USER="${display##*:}"
-	if [ "x$USER" == "xroot" ]; then
-		echo "-- Do not run vncserver as root!"
-		continue
-	fi
-	VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
-	if [ ! id $USER >/dev/null 2>&1 ]; then
-		echo "-- User $USER does not exists!"
-		continue
-	fi
-	USERHOME=$(eval "echo ~$USER")
-	if [ ! -f "$USERHOME/.vnc/passwd" ]; then
-		echo "-- No password file found for user $USER!"
-		continue
-	fi
-	cat >$destunitdir/vncserver.target.wants/vncserver@$DISP.service <<EOF
-[Unit]
-Description=Remote desktop service (VNC) on display %i
-Requires=vncserver.target
-After=vncserver.target
-PropagateReloadFrom=vncserver.target
-
-[Service]
-Type=simple
-ExecStart=/sbin/runuser -l $USER -c "/usr/bin/vncserver -fg :%i $VNCUSERARGS"
-ExecStop=/sbin/runuser -l $USER -c "/usr/bin/vncserver -kill :%i"
-
-[Install]
-WantedBy=vncserver.target
-EOF
-done
diff --git a/vncserver.target b/vncserver.target
deleted file mode 100644
index 340c623..0000000
--- a/vncserver.target
+++ /dev/null
@@ -1,7 +0,0 @@
-[Unit]
-Description=Start VNC server daemons
-After=network.target
-Wants=network.target
-
-[Install]
-WantedBy=multi-user.target
diff --git a/xserver-1.21.patch b/xserver-1.21.patch
new file mode 100644
index 0000000..bf6989d
--- /dev/null
+++ b/xserver-1.21.patch
@@ -0,0 +1,42 @@
+--- tigervnc-1.11.0/unix/xserver/hw/vnc/xorg-version.h~	2020-09-08 14:16:08.000000000 +0200
++++ tigervnc-1.11.0/unix/xserver/hw/vnc/xorg-version.h	2021-11-03 16:04:19.496096213 +0100
+@@ -36,8 +36,10 @@
+ #define XORG 119
+ #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (20 * 100000) + (99 * 1000))
+ #define XORG 120
++#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (21 * 100000) + (99 * 1000))
++#define XORG 120
+ #else
+-#error "X.Org newer than 1.20 is not supported"
++#error "X.Org newer than 1.21 is not supported"
+ #endif
+ 
+ #endif
+--- tigervnc-1.11.0/unix/xserver/hw/vnc/xvnc.c.orig	2021-11-03 16:05:33.000000000 +0100
++++ tigervnc-1.11.0/unix/xserver/hw/vnc/xvnc.c	2021-11-06 10:46:56.759091419 +0100
+@@ -80,7 +80,14 @@
+ #undef VENDOR_RELEASE
+ #undef VENDOR_STRING
+ #include "version-config.h"
+-#include "site.h"
++
++/* Default logging parameters. */
++#ifndef DEFAULT_LOG_VERBOSITY
++#define DEFAULT_LOG_VERBOSITY		0
++#endif
++#ifndef DEFAULT_LOG_FILE_VERBOSITY
++#define DEFAULT_LOG_FILE_VERBOSITY	3
++#endif
+ 
+ #define XVNCVERSION "TigerVNC 1.11.0"
+ #define XVNCCOPYRIGHT ("Copyright (C) 1999-2020 TigerVNC Team and many others (see README.rst)\n" \
+@@ -155,8 +162,7 @@
+ vncPrintBanner(void)
+ {
+     ErrorF("\nXvnc %s - built %s\n%s", XVNCVERSION, buildtime, XVNCCOPYRIGHT);
+-    ErrorF("Underlying X server release %d, %s\n\n", VENDOR_RELEASE,
+-           VENDOR_STRING);
++    ErrorF("Underlying X server release %d\n\n", VENDOR_RELEASE);
+ }
+ 
+ static void
diff --git a/xserver.patch b/xserver.patch
index 7d79e9a..414faaa 100644
--- a/xserver.patch
+++ b/xserver.patch
@@ -27,8 +27,8 @@ diff -up xserver/configure.ac.xserver116-rebased xserver/configure.ac
 +AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
 +
  if test "x$XORG" = xyes; then
- 	XORG_DDXINCS='-I$(top_srcdir)/hw/xfree86 -I$(top_srcdir)/hw/xfree86/include -I$(top_srcdir)/hw/xfree86/common'
- 	XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os'
+ 	PKG_CHECK_MODULES([LIBXCVT], $LIBXCVT)
+ 
 @@ -2116,7 +2123,6 @@ if test "x$XORG" = xyes; then
  	AC_DEFINE(XORG_SERVER, 1, [Building Xorg server])
  	AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
@@ -38,7 +38,7 @@ diff -up xserver/configure.ac.xserver116-rebased xserver/configure.ac
  	AC_DEFINE(NEED_XF86_PROTOTYPES, 1, [Need XFree86 helper functions])
  	AC_DEFINE(__XSERVERNAME__, "Xorg", [Name of X server])
 @@ -2691,6 +2697,7 @@ hw/dmx/Makefile
- hw/dmx/man/Makefile
+ hw/xfree86/utils/gtf/Makefile
  hw/vfb/Makefile
  hw/vfb/man/Makefile
 +hw/vnc/Makefile
@@ -49,21 +49,21 @@ diff -up xserver/hw/Makefile.am.xserver116-rebased xserver/hw/Makefile.am
 --- xserver/hw/Makefile.am.xserver116-rebased	2016-09-29 13:14:45.601441659 +0200
 +++ xserver/hw/Makefile.am	2016-09-29 13:14:45.631442006 +0200
 @@ -38,7 +38,8 @@ SUBDIRS =			\
- 	$(DMX_SUBDIRS)		\
+ 	$(XVFB_SUBDIRS)		\
+ 	$(XNEST_SUBDIRS)	\
  	$(KDRIVE_SUBDIRS)	\
- 	$(XQUARTZ_SUBDIRS)	\
--	$(XWAYLAND_SUBDIRS)
-+	$(XWAYLAND_SUBDIRS)	\
+-	$(XQUARTZ_SUBDIRS)
++	$(XQUARTZ_SUBDIRS)	\
 +	vnc
  
- DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive xwayland
+ DIST_SUBDIRS = xfree86 vfb xnest xwin xquartz kdrive
  
 diff -up xserver/mi/miinitext.c.xserver116-rebased xserver/mi/miinitext.c
 --- xserver/mi/miinitext.c.xserver116-rebased	2016-09-29 13:14:45.618441855 +0200
 +++ xserver/mi/miinitext.c	2016-09-29 13:14:45.631442006 +0200
 @@ -114,8 +114,15 @@ SOFTWARE.
- #include "os.h"
- #include "globals.h"
+ 
+ #include "miinitext.h"
  
 +#ifdef TIGERVNC
 +extern void vncExtensionInit(INITARGS);
@@ -88,18 +88,3 @@ diff -up xserver/mi/miinitext.c.xserver116-rebased xserver/mi/miinitext.c
  extern _X_EXPORT void
  LogVWrite(int verb, const char *f, va_list args)
  _X_ATTRIBUTE_PRINTF(2, 0);
---- xserver/hw/vnc/xvnc.c~	2019-12-20 08:02:02.000000000 +0100
-+++ xserver/hw/vnc/xvnc.c	2020-01-19 15:32:59.189145946 +0100
-@@ -1855,3 +1855,12 @@
-     GiveUp(0);
-   }
- }
-+
-+#if INPUTTHREAD
-+/** This function is called in Xserver/os/inputthread.c when starting
-+    the input thread. */
-+void
-+ddxInputThreadInit(void)
-+{
-+}
-+#endif
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/tigervnc.git/commitdiff/10862a8746c3d0424b658596abdd57d32b491616



More information about the pld-cvs-commit mailing list