Opened 14 years ago

Closed 10 years ago

Last modified 10 years ago

#6020 closed enhancement (fixed)

VNC server

Reported by: Ivo Smits Owned by:
Component: RDP Version: VirtualBox 3.1.2
Keywords: VNC Cc:
Guest type: other Host type: other

Description (last modified by Klaus Espenlaub)

A nice addition to VirtualBox would be a built in VNC server - serving the same purpose as the RDP server. The VNC server could be available in the open source version, and allows more different clients (especially web-based/java) to connect to a virtual machine.

Another great feature would be the ability to log in to the text mode output of the virtual machine by using telnet, ssh or just some console application. The virtual hardware could emulate a text-only graphics card - which will make remote administration of DOS and Linux systems even easier.

Change History (14)

comment:1 by Frank Mehnert, 14 years ago

I understand that adding a VNC server would be nice for compatibility reasons and for OSE users. But I don't understand the purpose of text-only graphics card. If you need remote text administration, why not just set the guest into text mode or use ssh/telnet to connect to the guest?

comment:2 by Sander van Leeuwen, 14 years ago

That's exactly the kind of project external developers could contribute to the project.

comment:3 by Ivo Smits, 14 years ago

I assumed that writing a VNC server starting with a copy of the RDP server would be easier. However, I started playing with libvncserver and the VirtualBox FFMPEG interface this morning... and I have managed to connect a VNC client to VirtualBox. The code doesn't look great yet - but it's sort of working.

For the text interface: think about situations where the OS can not boot or connect to a network. Bootloader broken, broken drivers, broken system files, OS installation.

comment:4 by Ivo Smits, 14 years ago

I've sent a patch for a VNC server based on libvncserver to the dev mailing list. I've also been working on an extension to access the text mode buffer and it's pretty much working. I will do some more cleanup finetuning and then try to make that into a neat patch as well and see how it works out.

comment:5 by Sander van Leeuwen, 14 years ago

Great. Looking forward to your patch. Thanks.

comment:6 by Stéphane Charette, 14 years ago

I would love to see VNC be an option in the GUI alongside RDP. Thanks for the patch, UFO. Hope it gets accepted into VB.

comment:7 by Frank Mehnert, 14 years ago

Unfortunately, linking against GPL code isn't an option.

comment:8 by Technologov, 14 years ago



comment:9 by Ivo Smits, 14 years ago

I am aware of that, frank. However, Klaus suggested on IRC to send in the patch anyway. I am not sure what kind of solution he was thinking about, and I must admit I don't know much about these license models myself yet.

Perhaps I could ask the author of libvncserver if he would allow his code to be used by Sun, or alternatively, distribute it under the MIT license.

Also, just out of interest, isn't it possible to write an independant wrapper library, that links to the GPL code and is released under the MIT license - and then link that wrapper library from the VBox code?

comment:10 by Sander van Leeuwen, 14 years ago

What Frank means is that we can't include it in the PUEL (binary only) version of VirtualBox. GPL is fine for the OSE version though.

A wrapper would not solve the GPL issue either as this license is viral.

comment:11 by Frank Mehnert, 14 years ago

Resolution: fixed
Status: newclosed

The VNC code is available in the OSE source code. Closing.

in reply to:  10 comment:12 by Jim Klimov, 10 years ago

Resolution: fixed
Status: closedreopened

I would love to see VNC be an option in the GUI alongside RDP.

Replying to sandervl73:

What Frank means is that we can't include it in the PUEL (binary only) version of VirtualBox. GPL is fine for the OSE version though.

A wrapper would not solve the GPL issue either as this license is viral.

Hello all, for the past several releases (all of 4.x line, IIRC), VirtualBox provides the pre-built binaries on GPLv2 terms, and the PUEL additions are packaged as separate extensions.

Doesn't this permit shipping the VNC server code now, as part of the GPLv2 distributions on all platforms (so people can use a standard downloadable distro instead of building their own OSE just for VNC)?

comment:13 by Klaus Espenlaub, 10 years ago

Description: modified (diff)
Resolution: fixed
Status: reopenedclosed

This is a relatively complicated matter, due to the license minefields in combination with Oracle policies. Let's start with the biggest blockers to the less important ones:

  1. The VNC support depends on libvnc, which is covered by GPLv2 (and there seems to be no alternative), and we can't get legal approval to add a 3rd party library dependency with this license to any part of VirtualBox, be it the base package or the Oracle extension pack, period. LGPLv2 is the limit, and arguing doesn't help. We tried and failed. So this is the reason why I can't see this happen ever.
  2. The VNC support works OK, but has in comparison to VRDP very limited functionality. In addition the code is not actively maintained, the last change to it was over a year ago, adding basic IPv6 support. It's a 3rd party contribution which we added to the tree so that it's easy for someone not affected by item 1 to build/publish an extension pack. We will not invest time into the VNC code beyond keeping it alive. Anyone interested in improvements: feel free to contribute, we'll gladly accept patches.
  3. Why would anyone want to use VNC if there is a better option available? VNC loses against RDP (and VRDP) in almost any criteria, and from my experience there are excellent RDP clients available for any relevant client platform.
  4. I see no convincing use case for having some VMs use VRDP and some VNC, even though that's possible with the current config options.

Bottom line: we simply can't do what you're dreaming of, and the only way to get out of this stalemate is someone else publishing the VNC extension pack. This was the motivation for pushing the contributors to redo the initial VNC implementation (integrated mid 2010 as an ugly hack to VBoxHeadless) as an extension pack using the same new VRDE infrastructure as VRDP is using (happend in early 2012). Since then it's feasible for 3rd parties to provide binaries so that not everyone needs to rebuild.

comment:14 by Jim Klimov, 10 years ago

Thanks you for the explanation, clear and concise, like a nail in the coffin ;)

I believe the primary reason for VNC in this case would be to have "something" for cases where PUEL is not satisfied (say, redistributable OS repositories without a direct download of the packages by end-user from Oracle, as PUEL insists - thus no VRDP automagically). I guess such repositories should indeed provide their own VirtualBox-OSE builds then. And/or their own extension pack, as you said.

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use