Hello community,

here is the log from the commit of package tigervnc for openSUSE:Factory 
checked in at 2018-06-15 14:33:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tigervnc (Old)
 and      /work/SRC/openSUSE:Factory/.tigervnc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tigervnc"

Fri Jun 15 14:33:25 2018 rev:52 rq:615208 version:1.8.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/tigervnc/tigervnc.changes        2018-04-26 
13:22:39.205877425 +0200
+++ /work/SRC/openSUSE:Factory/.tigervnc.new/tigervnc.changes   2018-06-15 
14:33:29.036415290 +0200
@@ -1,0 +2,16 @@
+Fri Jun  8 09:09:38 UTC 2018 - [email protected]
+
+- Updated u_add-support-for-X-server-1.20.0.patch to version sent
+  upstream. Fixes GLX initialization.
+
+-------------------------------------------------------------------
+Wed Jun  6 09:07:23 UTC 2018 - [email protected]
+
+- U_vncviewer-Fix-fullscreen-scrolling.patch,
+  U_vncviewer-Fix-scrollbar-visibility.patch
+  * Fix scrolling in vncviewer. (boo#1095664)
+
+- u_add-support-for-X-server-1.20.0.patch
+  * Fix build against X server 1.20.0.
+
+-------------------------------------------------------------------

New:
----
  U_vncviewer-Fix-fullscreen-scrolling.patch
  U_vncviewer-Fix-scrollbar-visibility.patch
  u_add-support-for-X-server-1.20.0.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ tigervnc.spec ++++++
--- /var/tmp/diff_new_pack.XJQtRP/_old  2018-06-15 14:33:30.844349161 +0200
+++ /var/tmp/diff_new_pack.XJQtRP/_new  2018-06-15 14:33:30.848349014 +0200
@@ -141,6 +141,9 @@
 Patch12:        u_Unset-pixel-buffer-when-x0vncserver-client-disconnect.patch
 Patch13:        tigervnc-1.8.0-nowindows.patch
 Patch14:        u_change-button-layout-in-ServerDialog.patch
+Patch15:        u_add-support-for-X-server-1.20.0.patch
+Patch16:        U_vncviewer-Fix-fullscreen-scrolling.patch
+Patch17:        U_vncviewer-Fix-scrollbar-visibility.patch
 
 %description
 TigerVNC is an implementation of VNC (Virtual Network Computing), a
@@ -246,9 +249,12 @@
 %patch12 -p1
 %patch13 -p1
 %patch14 -p1
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
 
 pushd unix/xserver
-patch -p1 < ../xserver119.patch
+patch -p1 < ../xserver120.patch
 popd
 
 %build

++++++ U_vncviewer-Fix-fullscreen-scrolling.patch ++++++
>From e8d25d83463805c0f6ef623dba2ac9a276df3587 Mon Sep 17 00:00:00 2001
From: Luke Shumaker <[email protected]>
Date: Tue, 23 May 2017 02:16:27 -0400
Subject: [PATCH] vncviewer: Fix fullscreen scrolling

---
 vncviewer/DesktopWindow.cxx | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/vncviewer/DesktopWindow.cxx b/vncviewer/DesktopWindow.cxx
index 47fe8f89..946b162c 100644
--- a/vncviewer/DesktopWindow.cxx
+++ b/vncviewer/DesktopWindow.cxx
@@ -1120,11 +1120,6 @@ void DesktopWindow::scrollTo(int x, int y)
   hscroll->value(x);
   vscroll->value(y);
 
-  if (!hscroll->visible())
-    x = -viewport->x();
-  if (!vscroll->visible())
-    y = -viewport->y();
-
   // Scrollbar position results in inverse movement of
   // the viewport widget
   x = -x;
@@ -1189,7 +1184,7 @@ void DesktopWindow::handleEdgeScroll(void *data)
   if ((dx == 0) && (dy == 0))
     return;
 
-  self->scrollTo(self->hscroll->value() + dx, self->vscroll->value() + dy);
+  self->scrollTo(self->hscroll->value() - dx, self->vscroll->value() - dy);
 
   Fl::repeat_timeout(0.1, handleEdgeScroll, data);
 }
-- 
2.13.6

++++++ U_vncviewer-Fix-scrollbar-visibility.patch ++++++
>From 0a8c4d48bbf71b83a575ec89b41aebc4439242ae Mon Sep 17 00:00:00 2001
From: Luke Shumaker <[email protected]>
Date: Tue, 23 May 2017 14:03:15 -0400
Subject: [PATCH] vncviewer: Fix scrollbar visibility

Have a window that is sized to the remote screen.  Now shrink the window
vertically, making it shorter than the remote screen in one axis. The
vertical scrollbar appears. However, the horizontal scrollbar does not
appear, despite the rightmost ~24 pixels (Fl::scrollbar_size()) being
hidden by the vertical scroll bar.

Fix that.

For clarity, move the fullscreen checks into a separate `if` statement,
rather than keeping the size and fullscreen checks together.

I think the comment does a decent job of explaining and justifying the
check's logic, but if you require further convincing, perhaps this
alternate explanation will help:

  The check for the X-axis is

      if ((w() - (h() < viewport->h() ? Fl::scrollbar_size() : 0) < 
viewport->w())

  To be a bit more verbose and repetitive, we can split that ternary in to
  two separate checks, and add some comments:

      if (
             (w() -  < viewport->w()) // X needs a scrollbar
          ||
             ( (w() - Fl::scrollbar_size() < viewport->w()) && (h() < 
viewport->h()) )
             //( X doesn't need a scrollbar unless Y does ) && (  Y does need 
one  ) )
         )

  Within the "Y does need one" check, we don't need to worry about the
  case where `h() - Fl::scrollbar_size() < viewport-h()` is true,
  because if both axes are saying "I don't need a scrollbar unless
  you do", then neither needs one.
---
 vncviewer/DesktopWindow.cxx | 34 +++++++++++++++++++++++++++-------
 1 file changed, 27 insertions(+), 7 deletions(-)

diff --git a/vncviewer/DesktopWindow.cxx b/vncviewer/DesktopWindow.cxx
index 47fe8f89..e2ed0887 100644
--- a/vncviewer/DesktopWindow.cxx
+++ b/vncviewer/DesktopWindow.cxx
@@ -1046,15 +1046,35 @@ void DesktopWindow::repositionWidgets()
 
   // Scrollbars visbility
 
-  if (!fullscreen_active() && (w() < viewport->w()))
-    hscroll->show();
-  else
+  if (fullscreen_active()) {
     hscroll->hide();
-
-  if (!fullscreen_active() && (h() < viewport->h()))
-    vscroll->show();
-  else
     vscroll->hide();
+  } else {
+    // Decide whether to show a scrollbar by checking if the window
+    // size (possibly minus scrollbar_size) is less than the viewport
+    // (remote framebuffer) size.
+    //
+    // We decide whether to subtract scrollbar_size on an axis by
+    // checking if the other axis *definitely* needs a scrollbar.  You
+    // might be tempted to think that this becomes a weird recursive
+    // problem, but it isn't: If the window size is less than the
+    // viewport size (without subtracting the scrollbar_size), then
+    // that axis *definitely* needs a scrollbar; if the check changes
+    // when we subtract scrollbar_size, then that axis only *maybe*
+    // needs a scrollbar.  If both axes only "maybe" need a scrollbar,
+    // then neither does; so we don't need to recurse on the "maybe"
+    // cases.
+
+    if (w() - (h() < viewport->h() ? Fl::scrollbar_size() : 0) < viewport->w())
+      hscroll->show();
+    else
+      hscroll->hide();
+
+    if (h() - (w() < viewport->w() ? Fl::scrollbar_size() : 0) < viewport->h())
+      vscroll->show();
+    else
+      vscroll->hide();
+  }
 
   // Scrollbars positions
 
-- 
2.13.6

++++++ u_add-support-for-X-server-1.20.0.patch ++++++
Git-commit: 25520b9b4680ac56f43d9b03929dd87093a3d06d
Author: Michal Srb <[email protected]>
Subject: Add support for X server 1.20.0.
Patch-mainline: To be upstreamed

In-server GLVND requires xorgGlxCreateVendor call from InitOutput.
DPMS functions were moved to another location and no longer need to be faked.
xserver120.patch is a copy of xserver119.patch with refreshed contexts.
---
 unix/xserver/hw/vnc/xorg-version.h |  4 +-
 unix/xserver/hw/vnc/xvnc.c         |  8 ++++
 unix/xserver120.patch              | 82 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 93 insertions(+), 1 deletion(-)
 create mode 100644 unix/xserver120.patch

diff --git a/unix/xserver/hw/vnc/xorg-version.h 
b/unix/xserver/hw/vnc/xorg-version.h
index 9d1c0eb8..16145711 100644
--- a/unix/xserver/hw/vnc/xorg-version.h
+++ b/unix/xserver/hw/vnc/xorg-version.h
@@ -52,8 +52,10 @@
 #define XORG 118
 #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (19 * 100000) + (99 * 1000))
 #define XORG 119
+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (20 * 100000) + (99 * 1000))
+#define XORG 120
 #else
-#error "X.Org newer than 1.19 is not supported"
+#error "X.Org newer than 1.20 is not supported"
 #endif
 
 #endif
diff --git a/unix/xserver/hw/vnc/xvnc.c b/unix/xserver/hw/vnc/xvnc.c
index 57152cd5..9a61b1ef 100644
--- a/unix/xserver/hw/vnc/xvnc.c
+++ b/unix/xserver/hw/vnc/xvnc.c
@@ -202,6 +202,7 @@ vfbBitsPerPixel(int depth)
 static void vfbFreeFramebufferMemory(vfbFramebufferInfoPtr pfb);
 
 #ifdef DPMSExtension
+#if XORG < 120
     /* Why support DPMS? Because stupid modern desktop environments
        such as Unity 2D on Ubuntu 11.10 crashes if DPMS is not
        available. (DPMSSet is called by dpms.c, but the return value
@@ -218,6 +219,7 @@ Bool DPMSSupported(void)
     return FALSE;
 }
 #endif
+#endif
 
 #if XORG < 111
 void ddxGiveUp()
@@ -1738,6 +1740,10 @@ InitOutput(ScreenInfo *scrInfo, int argc, char **argv)
 
     vncPrintBanner();
 
+#if XORG >= 120
+    xorgGlxCreateVendor();
+#else
+
 #if XORG >= 113
 #ifdef GLXEXT
     if (serverGeneration == 1)
@@ -1749,6 +1755,8 @@ InitOutput(ScreenInfo *scrInfo, int argc, char **argv)
 #endif
 #endif
 
+#endif
+
     /* initialize pixmap formats */
 
     /* must have a pixmap depth to match every screen depth */
diff --git a/unix/xserver120.patch b/unix/xserver120.patch
new file mode 100644
index 00000000..d8598494
--- /dev/null
+++ b/unix/xserver120.patch
@@ -0,0 +1,82 @@
+Index: xserver/configure.ac
+===================================================================
+--- xserver.orig/configure.ac
++++ xserver/configure.ac
+@@ -74,6 +74,7 @@ dnl forcing an entire recompile.x
+ AC_CONFIG_HEADERS(include/version-config.h)
+ 
+ AM_PROG_AS
++AC_PROG_CXX
+ AC_PROG_LN_S
+ LT_PREREQ([2.2])
+ LT_INIT([disable-static win32-dll])
+@@ -1777,6 +1778,10 @@ if test "x$XVFB" = xyes; then
+       AC_SUBST([XVFB_SYS_LIBS])
+ fi
+ 
++dnl Xvnc DDX
++AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XSERVER_CFLAGS"])
++AC_SUBST([XVNC_LIBS], ["$FB_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB 
$RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_LIB 
$MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB 
$XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB"])
++AC_SUBST([XVNC_SYS_LIBS], ["$GLX_SYS_LIBS"])
+ 
+ dnl Xnest DDX
+ 
+@@ -1812,6 +1817,8 @@ if test "x$XORG" = xauto; then
+ fi
+ AC_MSG_RESULT([$XORG])
+ 
++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'
+@@ -2029,7 +2036,6 @@ if test "x$XORG" = xyes; then
+       AC_DEFINE(XORG_SERVER, 1, [Building Xorg server])
+       AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
+       AC_DEFINE(XFree86Server, 1, [Building XFree86 server])
+-      AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current 
Xorg version])
+       AC_DEFINE(NEED_XF86_TYPES, 1, [Need XFree86 typedefs])
+       AC_DEFINE(NEED_XF86_PROTOTYPES, 1, [Need XFree86 helper functions])
+       AC_DEFINE(__XSERVERNAME__, "Xorg", [Name of X server])
+@@ -2565,6 +2571,7 @@ hw/dmx/Makefile
+ hw/dmx/man/Makefile
+ hw/vfb/Makefile
+ hw/vfb/man/Makefile
++hw/vnc/Makefile
+ hw/xnest/Makefile
+ hw/xnest/man/Makefile
+ hw/xwin/Makefile
+Index: xserver/hw/Makefile.am
+===================================================================
+--- xserver.orig/hw/Makefile.am
++++ xserver/hw/Makefile.am
+@@ -38,7 +38,8 @@ SUBDIRS =                    \
+       $(DMX_SUBDIRS)          \
+       $(KDRIVE_SUBDIRS)       \
+       $(XQUARTZ_SUBDIRS)      \
+-      $(XWAYLAND_SUBDIRS)
++      $(XWAYLAND_SUBDIRS)     \
++      vnc
+ 
+ DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive xwayland
+ 
+Index: xserver/mi/miinitext.c
+===================================================================
+--- xserver.orig/mi/miinitext.c
++++ xserver/mi/miinitext.c
+@@ -107,8 +107,15 @@ SOFTWARE.
+ #include "os.h"
+ #include "globals.h"
+ 
++#ifdef TIGERVNC
++extern void vncExtensionInit(void);
++#endif
++
+ /* List of built-in (statically linked) extensions */
+ static const ExtensionModule staticExtensions[] = {
++#ifdef TIGERVNC
++    {vncExtensionInit, "VNC-EXTENSION", NULL},
++#endif
+     {GEExtensionInit, "Generic Event Extension", &noGEExtension},
+     {ShapeExtensionInit, "SHAPE", NULL},
+ #ifdef MITSHM
-- 
2.13.6


Reply via email to