Bug 1421785 - fails to connect to x11vnc server
Summary: fails to connect to x11vnc server
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: gtk-vnc
Version: 25
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
Assignee: Daniel Berrangé
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-02-13 16:33 UTC by Martin Kourim
Modified: 2017-06-09 19:03 UTC (History)
13 users (show)

Fixed In Version: gtk-vnc-0.7.1-1.fc25 gtk-vnc-0.7.1-1.fc24 gtk-vnc-0.7.1-1.fc26
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-05-23 00:41:18 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Reverted "Add workaround to avoid hangs when connecting to SPICE" (2.20 KB, patch)
2017-03-09 10:55 UTC, poma
no flags Details | Diff

Description Martin Kourim 2017-02-13 16:33:44 UTC
Description of problem:
This used to work, but after last 'dnf update' I can no longer connect to x11vnc server (running in docker container). It works with TigerVNC client.

The updated packages that might be related are gvnc-0.7.0-1.fc25.x86_64 and gtk-vnc2-0.7.0-1.fc25.x86_64

The version of x11vnc: 0.9.14 lastmod: 2013-11-21


Version-Release number of selected component (if applicable):
vinagre-3.22.0-1.fc25.x86_64


How reproducible:
100%


Steps to Reproduce:
1. run as root: docker pull cfmeqe/sel_ff_chrome; docker run -d -p 59988:5999
2. run as normal user: sleep 20; vinagre --gtk-vnc-debug 127.0.0.1:59988


Actual results:
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Init VncConnection=0x55fe7b047200
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Using X11 backend
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c XKB keyboard map name 'evdev+aliases(qwerty)'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Server vendor is 'Fedora Project'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'Generic Event Extension'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'SHAPE'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'MIT-SHM'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XInputExtension'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XTEST'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'BIG-REQUESTS'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'SYNC'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XKEYBOARD'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XC-MISC'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XFIXES'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'RENDER'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'RANDR'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XINERAMA'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'Composite'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DAMAGE'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'MIT-SCREEN-SAVER'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DOUBLE-BUFFER'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'RECORD'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DPMS'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'Present'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DRI3'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'X-Resource'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XVideo'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XFree86-VidModeExtension'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XFree86-DGA'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DRI2'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'GLX'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'SGI-GLX'
(vinagre:28060): gtk-vnc-DEBUG: vncdisplaykeymap.c Using evdev keycode mapping
(vinagre:28060): gtk-vnc-DEBUG: vncdisplay.c Grab sequence is now Control_L+Alt_L
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Open host=127.0.0.1 port=60255
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Open coroutine starting
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Started background coroutine
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Resolving host 127.0.0.1 60255
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Trying one socket
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Socket pending
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Finally connected
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Emit main context 13
(vinagre:28060): gtk-vnc-DEBUG: vncdisplay.c Connected to VNC server
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Protocol initialization
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Read error Resource temporarily unavailable
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Closing the connection: vnc_connection_read() - ret=0
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Error: Server closed the connection
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Emit main context 16
(vinagre:28060): gtk-vnc-DEBUG: vncdisplay.c VNC server error
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Error while reading server version
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Doing final VNC cleanup
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Close VncConnection=0x55fe7b047200
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Emit main context 15
(vinagre:28060): gtk-vnc-DEBUG: vncdisplay.c Disconnected from VNC server
(vinagre:28060): gtk-vnc-DEBUG: vncdisplay.c Display destroy, requesting that VNC connection close
(vinagre:28060): gtk-vnc-DEBUG: vncdisplay.c Display destroy, requesting that VNC connection close
(vinagre:28060): gtk-vnc-DEBUG: vncdisplay.c Releasing VNC widget
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Delayed unref VncConnection=0x55fe7b047200
(vinagre:28060): gtk-vnc-DEBUG: vncconnection.c Finalize VncConnection=0x55fe7b047200

Comment 1 Martin Kourim 2017-02-13 16:39:10 UTC
Correction - command was incomplete:
Steps to Reproduce:
1. run as root: docker pull cfmeqe/sel_ff_chrome; docker run -d -p 59988:5999 cfmeqe/sel_ff_chrome

Comment 2 Ariel 2017-02-22 06:29:31 UTC
Seeing the same problem, vinagre can no longer connect to a VNC server, it used to work up until 2-3 weeks ago. Applying the same workaround as the original post.

In my case the server is dispmanx_vncserver  running on raspberry pi.
Vinagre is running on Fedora 25 / workstation.

Using a different client (TigerVNC / vncviewer) on the same workstation can connect to the VNC server/dispmanx_vncserver with no issue, showing that the problem is with vinagre.

Below is a snippet of the server log. It seems that Vinagre sends an incorrect header whereas vncviewer has no problem.


22/02/2017 09:24:04 Got connection from client 192.168.1.2
22/02/2017 09:24:04   other clients:
22/02/2017 09:24:04 webSocketsHandshake: invalid client header

Comment 3 poma 2017-03-09 10:55:53 UTC
Created attachment 1261510 [details]
Reverted "Add workaround to avoid hangs when connecting to SPICE"


- vinagre-3.20.2-2.fc24.x86_64
  & gtk-vnc2-0.7.0-1.fc24.x86_64 (stock):

x11vnc
 ...
 Got connection from client <IP>
   other clients:
 webSocketsHandshake: invalid client header
 Client <IP> gone
 ...

= BROKEN connection

------------------------------

- vinagre-3.20.2-2.fc24.x86_64
  & gtk-vnc2-0.7.0-2.fc24.x86_64 (patched)

i.e. with reverted
"Add workaround to avoid hangs when connecting to SPICE"
https://git.gnome.org/browse/gtk-vnc/commit/?id=7f4f2fe

= OK connection

x11vnc
 ...
 Got connection from client <IP>
   other clients:
 Normal socket connection
 ...
 incr accepted_client=1 for <IP>:35426  sock=13
 ...

-----------------------------------------------

For comparison - x0vncserver

- vinagre-3.20.2-2.fc24.x86_64
  & gtk-vnc2-0.7.0-[12].fc24.x86_64

x0vncserver
 ...
 Connections: accepted: <IP>::32908
 SConnection: Client needs protocol version 3.8
 ...

= OK connection - with both, stock & patched gtk-vnc

Comment 4 Jonathan Dieter 2017-05-19 06:13:49 UTC
Just a heads up that this is fixed on the server side at https://bodhi.fedoraproject.org/updates/FEDORA-2017-dd5d2381e4 (also available for all other active Fedora releases)

Comment 5 Brian J. Murrell 2017-05-19 13:35:56 UTC
(In reply to Jonathan Dieter from comment #4)
> Just a heads up that this is fixed on the server side at
> https://bodhi.fedoraproject.org/updates/FEDORA-2017-dd5d2381e4 (also
> available for all other active Fedora releases)

Sadly, I don't think so:

$ rpm -q libvncserver
libvncserver-0.9.11-2.fc25.1.x86_64
$ vinagre --gtk-vnc-debug host
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Init VncConnection=0x55f9a09e86a0
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Using X11 backend
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c XKB keyboard map name 'evdev+aliases(qwerty)'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Server vendor is 'Fedora Project'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'Generic Event Extension'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'SHAPE'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'MIT-SHM'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XInputExtension'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XTEST'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'BIG-REQUESTS'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'SYNC'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XKEYBOARD'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XC-MISC'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XFIXES'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'RENDER'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'RANDR'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XINERAMA'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'Composite'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DAMAGE'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'MIT-SCREEN-SAVER'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DOUBLE-BUFFER'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'RECORD'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DPMS'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'Present'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DRI3'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'X-Resource'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XVideo'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XFree86-VidModeExtension'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XFree86-DGA'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DRI2'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'GLX'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'SGI-GLX'
(vinagre:11074): gtk-vnc-DEBUG: vncdisplaykeymap.c Using evdev keycode mapping
(vinagre:11074): gtk-vnc-DEBUG: vncdisplay.c Grab sequence is now Control_L+Alt_L
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Open host=host port=5900

(vinagre:11074): Gtk-WARNING **: Theme parsing error: <data>:2:28: The style property GtkButton:default-border is deprecated and shouldn't be used anymore. It will be removed in a future version

(vinagre:11074): Gtk-WARNING **: Theme parsing error: <data>:3:36: The style property GtkButton:default-outside-border is deprecated and shouldn't be used anymore. It will be removed in a future version

(vinagre:11074): Gtk-WARNING **: Theme parsing error: <data>:4:25: The style property GtkButton:inner-border is deprecated and shouldn't be used anymore. It will be removed in a future version

(vinagre:11074): Gtk-WARNING **: Theme parsing error: <data>:5:30: The style property GtkWidget:focus-line-width is deprecated and shouldn't be used anymore. It will be removed in a future version

(vinagre:11074): Gtk-WARNING **: Theme parsing error: <data>:6:27: The style property GtkWidget:focus-padding is deprecated and shouldn't be used anymore. It will be removed in a future version
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Open coroutine starting
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Started background coroutine
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Resolving host host 5900
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Trying one socket
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Socket pending
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Finally connected
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Emit main context 13
(vinagre:11074): gtk-vnc-DEBUG: vncdisplay.c Connected to VNC server
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Protocol initialization
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Read error Resource temporarily unavailable

(vinagre:11074): Gtk-WARNING **: Drawing a gadget with negative dimensions. Did you forget to allocate a size? (node box owner ViewAutoDrawer)
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Closing the connection: vnc_connection_read() - ret=0
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Error: Server closed the connection
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Emit main context 16
(vinagre:11074): gtk-vnc-DEBUG: vncdisplay.c VNC server error
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Error while reading server version
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Doing final VNC cleanup
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Close VncConnection=0x55f9a09e86a0
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Emit main context 15
(vinagre:11074): gtk-vnc-DEBUG: vncdisplay.c Disconnected from VNC server
(vinagre:11074): gtk-vnc-DEBUG: vncdisplay.c Display destroy, requesting that VNC connection close
(vinagre:11074): gtk-vnc-DEBUG: vncdisplay.c Display destroy, requesting that VNC connection close
(vinagre:11074): gtk-vnc-DEBUG: vncdisplay.c Releasing VNC widget
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Delayed unref VncConnection=0x55f9a09e86a0
(vinagre:11074): gtk-vnc-DEBUG: vncconnection.c Finalize VncConnection=0x55f9a09e86a0

I'm also not sure how a libvncserver package update is supposed to fix a vinagre VNC *client* issue.

RPM doesn't indicate that libvncserver is in any way related to vinagre:

$ rpm -q --whatrequires libvncserver
no package requires libvncserver
$ rpm -q --requires vinagre | xargs -i rpm -q --whatprovides "{}" | sort -u
atk-2.22.0-1.fc25.x86_64
avahi-glib-0.6.32-4.fc25.x86_64
avahi-gobject-0.6.32-4.fc25.x86_64
avahi-libs-0.6.32-4.fc25.x86_64
avahi-ui-gtk3-0.6.32-4.fc25.x86_64
bash-4.3.43-4.fc25.x86_64
cairo-1.14.8-1.fc25.x86_64
cairo-gobject-1.14.8-1.fc25.x86_64
dbus-1.11.12-1.fc25.x86_64
dbus-glib-0.108-1.fc25.x86_64
dbus-libs-1.11.12-1.fc25.x86_64
freerdp-libs-2.0.0-5.git.b02943a.fc24.x86_64
gdk-pixbuf2-2.36.6-1.fc25.x86_64
glib2-2.50.3-1.fc25.x86_64
glibc-2.24-4.fc25.i686
glibc-2.24-4.fc25.x86_64
gnutls-3.5.10-1.fc25.x86_64
gtk3-3.22.11-1.fc25.x86_64
gtk-vnc2-0.7.0-1.fc25.x86_64
gvnc-0.7.0-1.fc25.x86_64
libsecret-0.18.5-2.fc25.x86_64
libX11-1.6.4-4.fc25.x86_64
libxml2-2.9.3-4.fc25.x86_64
no package provides desktop-file-utils >= 0.22-6
no package provides glib2 >= 2.45.4-2
no package provides rpmlib(CompressedFileNames) <= 3.0.4-1
no package provides rpmlib(FileDigests) <= 4.6.0-1
no package provides rpmlib(PayloadFilesHavePrefix) <= 4.0-1
no package provides rpmlib(PayloadIsXz) <= 5.2-1
no package provides shared-mime-info >= 1.4-7
pango-1.40.4-1.fc25.x86_64
spice-glib-0.33-2.fc25.x86_64
spice-gtk3-0.33-2.fc25.x86_64
telepathy-filesystem-0.0.2-9.fc24.noarch
telepathy-glib-0.24.1-4.fc25.x86_64
vte291-0.46.1-1.fc25.x86_64
zlib-1.2.8-10.fc24.x86_64

As you can see there seems to be no apparent usage of libvncserver by vinagre.

Comment 6 Brian J. Murrell 2017-05-19 13:41:29 UTC
(In reply to Brian J. Murrell from comment #5)
> 
> Sadly, I don't think so:

Unless perhaps you are suggesting that the "fix" is to make x11vnc work with the broken vinagre?

If so, that's not a solution.  Vinagre used to work with existing x11vnc installations.  Then an update to vinagre broke working with those same existing x11vnc installations.

I don't control all of the x11vnc installations out there and cannot ask them all to update because vinagre broke something.

Comment 7 Daniel Berrangé 2017-05-19 14:18:35 UTC
This is a regression in gtk-vnc 0.7.0. I recently fixed it upstream in

https://git.gnome.org/browse/gtk-vnc/commit/?id=f5623cbc63bb0a835bc662d451cc5128d683bd5d

commit f5623cbc63bb0a835bc662d451cc5128d683bd5d
Author: Daniel P. Berrange <berrange>
Date:   Tue Apr 11 11:41:03 2017 +0100

    Fix incompatibility with libvncserver websockets handling
    
    The previous commit:
    
      commit 7f4f2fe8da72ed9fef5dd4319e19feb2b4f3d62e
      Author: Daniel P. Berrange <berrange>
      Date:   Thu Jan 26 09:31:40 2017 +0000
    
        Add workaround to avoid hangs when connecting to SPICE
    
    changed the code so that it would send the bytes "RFB " to the
    server before we received its own greeting. This works fine for
    VNC servers which follow the RFB protocol spec exclusively. The
    libvncserver code though tries to implement websockets tunnelling
    support on the same port as the normal RFB service. The way it
    does this is by waiting 100ms after the client connects to see
    if the client sends any data. If the client sends data, then it
    tries to interpret this as an HTTP GET request to initiate the
    websockets connection. This breaks when it sees our "RFB " bytes
    being sent. Ideally the libvncserver would have just run a normal
    RFB connection in this case, but that's not what happens, and
    given the libvncserver code is in the wild we need a workaround.
    
    So instead of immediately sending the 'RFB ' bytes to the VNC
    server, we introduce a 2 second wait. ie, we'll wait for the
    normal VNC server greeting and if it doesn't arrive after 2 seconds,
    we'll send our 'RFB ' bytes proactively, and continue waiting. If we
    are on a real VNC server, we'll get our connection initialized
    eventually. If connecting to a SPICE server by mistake, we'll get a
    clean disconnect, and we'll avoid upsetting libvncserver, because its
    100ms wait for HTTP GET will have long since finished.
    
    Signed-off-by: Daniel P. Berrange <berrange>

Comment 8 Jonathan Dieter 2017-05-19 14:53:35 UTC
(In reply to Brian J. Murrell from comment #6)
> Unless perhaps you are suggesting that the "fix" is to make x11vnc work with
> the broken vinagre?

Yes.  As Daniel has pointed out, there's an upstream fix coming to gtk-vnc, but the latest releases of x11vnc will work just fine with current gtk-vnc and vinagre.

Comment 9 Jonathan Dieter 2017-05-19 14:55:16 UTC
(In reply to Jonathan Dieter from comment #8)
<snip>
> but the latest releases of x11vnc will work just fine with current gtk-vnc

Sorry, that should be "the latest releases of libvncserver will cause x11vnc to work just fine with current gtk-vnc and vinagre"

Comment 10 Brian J. Murrell 2017-05-19 15:18:32 UTC
(In reply to Daniel Berrange from comment #7)
> This is a regression in gtk-vnc 0.7.0. I recently fixed it upstream in
> 
> https://git.gnome.org/browse/gtk-vnc/commit/
> ?id=f5623cbc63bb0a835bc662d451cc5128d683bd5d
> 
> commit f5623cbc63bb0a835bc662d451cc5128d683bd5d
> Author: Daniel P. Berrange <berrange>
> Date:   Tue Apr 11 11:41:03 2017 +0100

I rebuilt gtk-vnc2-0.7.0-1 with that patch applied and I still get:

$ vinagre --gtk-vnc-debug host
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Init VncConnection=0x55dc095b61a0
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Using X11 backend
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c XKB keyboard map name 'evdev+aliases(qwerty)'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Server vendor is 'Fedora Project'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'Generic Event Extension'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'SHAPE'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'MIT-SHM'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XInputExtension'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XTEST'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'BIG-REQUESTS'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'SYNC'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XKEYBOARD'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XC-MISC'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XFIXES'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'RENDER'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'RANDR'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XINERAMA'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'Composite'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DAMAGE'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'MIT-SCREEN-SAVER'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DOUBLE-BUFFER'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'RECORD'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DPMS'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'Present'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DRI3'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'X-Resource'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XVideo'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XFree86-VidModeExtension'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'XFree86-DGA'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'DRI2'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'GLX'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Found extension 'SGI-GLX'
(vinagre:31250): gtk-vnc-DEBUG: vncdisplaykeymap.c Using evdev keycode mapping
(vinagre:31250): gtk-vnc-DEBUG: vncdisplay.c Grab sequence is now Control_L+Alt_L
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Open host=host port=5900

(vinagre:31250): Gtk-WARNING **: Theme parsing error: <data>:2:28: The style property GtkButton:default-border is deprecated and shouldn't be used anymore. It will be removed in a future version

(vinagre:31250): Gtk-WARNING **: Theme parsing error: <data>:3:36: The style property GtkButton:default-outside-border is deprecated and shouldn't be used anymore. It will be removed in a future version

(vinagre:31250): Gtk-WARNING **: Theme parsing error: <data>:4:25: The style property GtkButton:inner-border is deprecated and shouldn't be used anymore. It will be removed in a future version

(vinagre:31250): Gtk-WARNING **: Theme parsing error: <data>:5:30: The style property GtkWidget:focus-line-width is deprecated and shouldn't be used anymore. It will be removed in a future version

(vinagre:31250): Gtk-WARNING **: Theme parsing error: <data>:6:27: The style property GtkWidget:focus-padding is deprecated and shouldn't be used anymore. It will be removed in a future version
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Open coroutine starting
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Started background coroutine
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Resolving host host 5900
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Trying one socket
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Socket pending
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Finally connected
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Emit main context 13
(vinagre:31250): gtk-vnc-DEBUG: vncdisplay.c Connected to VNC server
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Protocol initialization
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Read error Resource temporarily unavailable

(vinagre:31250): Gtk-WARNING **: Drawing a gadget with negative dimensions. Did you forget to allocate a size? (node box owner ViewAutoDrawer)
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Closing the connection: vnc_connection_read() - ret=0
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Error: Server closed the connection
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Emit main context 16
(vinagre:31250): gtk-vnc-DEBUG: vncdisplay.c VNC server error
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Error while reading server version
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Doing final VNC cleanup
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Close VncConnection=0x55dc095b61a0
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Emit main context 15
(vinagre:31250): gtk-vnc-DEBUG: vncdisplay.c Disconnected from VNC server
(vinagre:31250): gtk-vnc-DEBUG: vncdisplay.c Display destroy, requesting that VNC connection close
(vinagre:31250): gtk-vnc-DEBUG: vncdisplay.c Display destroy, requesting that VNC connection close
(vinagre:31250): gtk-vnc-DEBUG: vncdisplay.c Releasing VNC widget
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Delayed unref VncConnection=0x55dc095b61a0
(vinagre:31250): gtk-vnc-DEBUG: vncconnection.c Finalize VncConnection=0x55dc095b61a0

Comment 11 Daniel Berrangé 2017-05-19 15:35:08 UTC
(In reply to Brian J. Murrell from comment #10)
> (In reply to Daniel Berrange from comment #7)
> > This is a regression in gtk-vnc 0.7.0. I recently fixed it upstream in
> > 
> > https://git.gnome.org/browse/gtk-vnc/commit/
> > ?id=f5623cbc63bb0a835bc662d451cc5128d683bd5d
> > 
> > commit f5623cbc63bb0a835bc662d451cc5128d683bd5d
> > Author: Daniel P. Berrange <berrange>
> > Date:   Tue Apr 11 11:41:03 2017 +0100
> 
> I rebuilt gtk-vnc2-0.7.0-1 with that patch applied and I still get:

The fix applies to the gvnc sub-RPM, not the gtk-vnc2 sub-RPM.

Comment 12 Brian J. Murrell 2017-05-19 15:44:18 UTC
(In reply to Daniel Berrange from comment #11)
> 
> The fix applies to the gvnc sub-RPM, not the gtk-vnc2 sub-RPM.

Right.  But you can't (without evilly forcing it) install/upgrade gtk-vnc2 without also installing/upgrading gvnc, so I did upgrade both:

$ rpm -q gtk-vnc2 gvnc
gtk-vnc2-0.7.0-1.01.fc25.x86_64
gvnc-0.7.0-1.01.fc25.x86_64

Comment 13 Daniel Berrangé 2017-05-19 16:00:31 UTC
(In reply to Brian J. Murrell from comment #12)
> (In reply to Daniel Berrange from comment #11)
> > 
> > The fix applies to the gvnc sub-RPM, not the gtk-vnc2 sub-RPM.
> 
> Right.  But you can't (without evilly forcing it) install/upgrade gtk-vnc2
> without also installing/upgrading gvnc, so I did upgrade both:
> 
> $ rpm -q gtk-vnc2 gvnc
> gtk-vnc2-0.7.0-1.01.fc25.x86_64
> gvnc-0.7.0-1.01.fc25.x86_64

Assuming you've correctly applied the fix in the build, I don't know why you still see a failure. I've tested against x11vnc, with & without the fix, and confirmed it was broken before & fixed afterwards.

Comment 14 Brian J. Murrell 2017-05-19 16:51:34 UTC
My patched RPM can be found here:

https://copr.fedorainfracloud.org/coprs/brianjmurrell/gtk-vnc2/package/gtk-vnc/

Comment 15 Fedora Update System 2017-05-19 17:20:20 UTC
gtk-vnc-0.7.1-1.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-48637ce1a7

Comment 16 Daniel Berrangé 2017-05-19 17:29:09 UTC
@Brian: your specfile is wrong:

%setup -q -n gtk-vnc-%{version} -c
%if %{with_gtk3}
cp -a gtk-vnc-%{version} gtk-vnc2-%{version}
%endif
cd gtk-vnc-%{version}
%patch0 -p1

This applies the source code used to build the GTK2 version only - the GTK3 source code is in the separate directory created a few lines above, so missing the patch.

Comment 17 Fedora Update System 2017-05-19 17:29:35 UTC
gtk-vnc-0.7.1-1.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-e996a3cd68

Comment 18 Fedora Update System 2017-05-19 17:30:11 UTC
gtk-vnc-0.7.1-1.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-8093e4668d

Comment 19 Brian J. Murrell 2017-05-20 01:26:40 UTC
(In reply to Daniel Berrange from comment #16)
> @Brian: your specfile is wrong:
> 
> %setup -q -n gtk-vnc-%{version} -c
> %if %{with_gtk3}
> cp -a gtk-vnc-%{version} gtk-vnc2-%{version}
> %endif
> cd gtk-vnc-%{version}
> %patch0 -p1
> 
> This applies the source code used to build the GTK2 version only - the GTK3
> source code is in the separate directory created a few lines above, so
> missing the patch.

I see.  I thought it was strange the copying being done but I guess I was not familiar with this pattern to notice it was some kind of gtk2/gtk3 thing.

In any case I have installed:

> gtk-vnc-0.7.1-1.fc25 has been submitted as an update to Fedora 25.
> https://bodhi.fedoraproject.org/updates/FEDORA-2017-e996a3cd68

and it's working.  Left Karma on Bodhi.

Comment 20 Fedora Update System 2017-05-20 08:17:25 UTC
gtk-vnc-0.7.1-1.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-48637ce1a7

Comment 21 Fedora Update System 2017-05-20 14:31:37 UTC
gtk-vnc-0.7.1-1.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-8093e4668d

Comment 22 Fedora Update System 2017-05-20 22:32:21 UTC
gtk-vnc-0.7.1-1.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-e996a3cd68

Comment 23 Fedora Update System 2017-05-23 00:41:18 UTC
gtk-vnc-0.7.1-1.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.

Comment 24 Fedora Update System 2017-05-24 04:56:00 UTC
gtk-vnc-0.7.1-1.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.

Comment 25 Fedora Update System 2017-06-09 19:03:52 UTC
gtk-vnc-0.7.1-1.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.