diff --git a/.cvsignore b/.cvsignore index f09cbb2..402791a 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ tigervnc-1.0.0.tar.gz -xorg-x11-server-source-1.6.1.901-5.fc11.x86_64.rpm +xorg-x11-server-source-1.6.4-0.3.fc11.x86_64.rpm diff --git a/sources b/sources index 2d05f31..34e5d97 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 622c6689a66651419b5431efdee99d5a tigervnc-1.0.0.tar.gz -b1517bc2701a7ac947230338f5a7ea9c xorg-x11-server-source-1.6.1.901-5.fc11.x86_64.rpm +bc5cb09b51297251c9f2e25e5719a735 xorg-x11-server-source-1.6.4-0.3.fc11.x86_64.rpm diff --git a/tigervnc.spec b/tigervnc.spec index 6baa84c..67c0d07 100644 --- a/tigervnc.spec +++ b/tigervnc.spec @@ -1,6 +1,6 @@ Name: tigervnc Version: 1.0.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A TigerVNC remote display system Group: User Interface/Desktops @@ -11,7 +11,7 @@ Source0: %{name}-%{version}.tar.gz Source1: vncserver.init Source2: vncserver.sysconfig Source6: vncviewer.desktop -Source7: xorg-x11-server-source-1.6.1.901-5.fc11.x86_64.rpm +Source7: xorg-x11-server-source-1.6.4-0.3.fc11.x86_64.rpm BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libX11-devel, automake, autoconf, libtool, gettext, cvs @@ -40,6 +40,8 @@ Patch0: tigervnc-102434.patch Patch4: tigervnc-cookie.patch Patch8: tigervnc-viewer-reparent.patch Patch10: tigervnc10-compat.patch +Patch11: tigervnc10-rh510185.patch +Patch12: tigervnc10-rh524340.patch %description Virtual Network Computing (VNC) is a remote display system which @@ -103,6 +105,8 @@ popd %patch4 -p1 -b .cookie %patch8 -p1 -b .viewer-reparent %patch10 -p1 -b .compat +%patch11 -p0 -b .rh510185 +%patch12 -p0 -b .rh524340 # Use newer gettext sed -i 's/AM_GNU_GETTEXT_VERSION.*/AM_GNU_GETTEXT_VERSION([0.17])/' \ @@ -244,6 +248,13 @@ fi %endif %changelog +* Thu Oct 08 2009 Adam Tkac 1.0.0-2 +- update underlying X source to 1.6.4-0.3.fc11 +- remove bogus '-nohttpd' parameter from /etc/sysconfig/vncservers (#525629) +- initscript LSB compliance fixes (#523974) +- improve -LowColorSwitch documentation and handling (#510185) +- honor dotWhenNoCursor option (and it's changes) every time (#524340) + * Fri Aug 28 2009 Adam Tkac 1.0.0-1 - update to 1.0.0 - tigervnc10-rh495457.patch merged to upstream diff --git a/tigervnc10-rh510185.patch b/tigervnc10-rh510185.patch new file mode 100644 index 0000000..eea1b3e --- /dev/null +++ b/tigervnc10-rh510185.patch @@ -0,0 +1,32 @@ +unchanged: +--- unix/vncviewer/vncviewer.man (revision 3902) ++++ unix/vncviewer/vncviewer.man (working copy) +@@ -156,7 +156,9 @@ + .B \-LowColorLevel, \-LowColourLevel \fIlevel\fP + Selects the reduced color level to use on slow links. \fIlevel\fP can range + from 0 to 2, 0 meaning 8 colors, 1 meaning 64 colors (the default), 2 meaning +-256 colors. ++256 colors. Note that decision if reduced color level is used is made by ++vncviewer. If you would like to force vncviewer to use reduced color level ++use \fB-AutoSelect=0\fP parameter. + + .TP + .B \-PreferredEncoding \fIencoding\fP +only in patch2: +unchanged: +--- unix/vncviewer/vncviewer.cxx (revision 3902) ++++ unix/vncviewer/vncviewer.cxx (working copy) +@@ -337,6 +337,13 @@ + && !::fullColour.hasBeenSet() + && !::fullColourAlias.hasBeenSet()); + } ++ if (!::fullColour.hasBeenSet() && !::fullColourAlias.hasBeenSet()) { ++ // Default to FullColor=0 if AutoSelect=0 && LowColorLevel is set ++ if (!::autoSelect && (::lowColourLevel.hasBeenSet() || ++ ::lowColourLevelAlias.hasBeenSet())) { ++ ::fullColour.setParam(false); ++ } ++ } + if (!::customCompressLevel.hasBeenSet()) { + // Default to CustomCompressLevel=1 if CompressLevel is used. + ::customCompressLevel.setParam(::compressLevel.hasBeenSet()); diff --git a/tigervnc10-rh524340.patch b/tigervnc10-rh524340.patch new file mode 100644 index 0000000..9c93949 --- /dev/null +++ b/tigervnc10-rh524340.patch @@ -0,0 +1,83 @@ +Index: unix/vncviewer/DesktopWindow.h +=================================================================== +--- unix/vncviewer/DesktopWindow.h (revision 3903) ++++ unix/vncviewer/DesktopWindow.h (working copy) +@@ -29,6 +29,7 @@ + #include "TXWindow.h" + #include "TXViewport.h" + #include "TXImage.h" ++#include "parameters.h" + + class CConn; + +@@ -54,6 +55,12 @@ + // resetLocalCursor() stops the rendering of the local cursor + void resetLocalCursor(); + ++ // setNoCursor() sets what to display when no cursor is defined - if dot or ++ // nothing. ++ inline void setNoCursor() { ++ XDefineCursor(dpy, win(), dotWhenNoCursor ? dotCursor : noCursor); ++ } ++ + // Methods forwarded from CConn + void setColourMapEntries(int firstColour, int nColours, rdr::U16* rgbs); + void serverCutText(const char* str, rdr::U32 len); +Index: unix/vncviewer/CConn.cxx +=================================================================== +--- unix/vncviewer/CConn.cxx (revision 3903) ++++ unix/vncviewer/CConn.cxx (working copy) +@@ -684,6 +684,7 @@ + desktop->resetLocalCursor(); + } + dotWhenNoCursor.setParam(options.dotWhenNoCursor.checked()); ++ desktop->setNoCursor(); + checkEncodings(); + } + +Index: unix/vncviewer/DesktopWindow.cxx +=================================================================== +--- unix/vncviewer/DesktopWindow.cxx (revision 3903) ++++ unix/vncviewer/DesktopWindow.cxx (working copy) +@@ -79,7 +79,7 @@ + PointerMotionMask | KeyPressMask | KeyReleaseMask | + EnterWindowMask | LeaveWindowMask); + createXCursors(); +- XDefineCursor(dpy, win(), dotCursor); ++ setNoCursor(); + im = new TXImage(dpy, width(), height()); + if (!serverPF.trueColour) + im->setPF(serverPF); +@@ -139,12 +139,9 @@ + if (((rdr::U8*)mask)[i]) break; + + if (i == mask_len) { +- if (dotWhenNoCursor) { ++ if (dotWhenNoCursor) + vlog.debug("cursor is empty - using dot"); +- XDefineCursor(dpy, win(), dotCursor); +- } else { +- XDefineCursor(dpy, win(), noCursor); +- } ++ setNoCursor(); + cursorAvailable = false; + return; + } +@@ -206,7 +203,7 @@ + void DesktopWindow::resetLocalCursor() + { + hideLocalCursor(); +- XDefineCursor(dpy, win(), dotCursor); ++ setNoCursor(); + cursorAvailable = false; + } + +@@ -226,7 +223,7 @@ + if (!getPF().equal(cursor.getPF()) || + cursor.getRect().is_empty()) { + vlog.error("attempting to render invalid local cursor"); +- XDefineCursor(dpy, win(), dotCursor); ++ setNoCursor(); + cursorAvailable = false; + return; + } diff --git a/vncserver.init b/vncserver.init index 9308545..eedc22a 100644 --- a/vncserver.init +++ b/vncserver.init @@ -65,20 +65,34 @@ start() { fi fi echo + +# As written in https://bugzilla.redhat.com/show_bug.cgi?id=523974 (LSB +# compliance) start of already running service is OK. + [ "$RETVAL" -eq 98 ] && return 0 + return "$RETVAL" } stop() { echo -n $"Shutting down $prog: " - for display in ${VNCSERVERS} - do - echo -n "${display} " - export USER="${display##*:}" - runuser ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1 - done + + status Xvnc > /dev/null 2>&1 RETVAL=$? + + # 3 means service is already stopped + if ! [ "$RETVAL" -eq 3 ]; then + for display in ${VNCSERVERS}; do + echo -n "${display} " + export USER="${display##*:}" + runuser ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1 + done + RETVAL=$? + else + let RETVAL=0 + fi + [ "$RETVAL" -eq 0 ] && success $"vncserver shutdown" || \ - failure $"vncserver shutdown" + failure $"vncserver shutdown" echo [ "$RETVAL" -eq 0 ] && rm -f /var/lock/subsys/vncserver return "$RETVAL" @@ -117,9 +131,12 @@ case "$1" in status Xvnc RETVAL=$? ;; + reload) + exit 3 + ;; *) echo $"Usage: $0 {start|stop|restart|try-restart|status|force-reload}" - exit 3 + exit 2 esac exit "$RETVAL" diff --git a/vncserver.sysconfig b/vncserver.sysconfig index 31536f6..0ee8a2e 100644 --- a/vncserver.sysconfig +++ b/vncserver.sysconfig @@ -11,11 +11,9 @@ # Use "-nolisten tcp" to prevent X connections to your VNC server via TCP. -# Use "-nohttpd" to prevent web-based VNC clients connecting. - # Use "-localhost" to prevent remote VNC clients connecting except when # doing so through a secure tunnel. See the "-via" option in the # `man vncviewer' manual page. # VNCSERVERS="2:myusername" -# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost" +# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"