Ticket #6020 (closed enhancement: fixed)

Opened 10 years ago

Last modified 7 years ago

VNC server

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

Description (last modified by klaus) (diff)

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

comment:1 Changed 10 years ago by frank

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 Changed 10 years ago by sandervl73

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

comment:3 Changed 10 years ago by UFO

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 Changed 10 years ago by UFO

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 Changed 10 years ago by sandervl73

Great. Looking forward to your patch. Thanks.

comment:6 Changed 10 years ago by stephanecharette

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 Changed 10 years ago by frank

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

comment:8 Changed 10 years ago by Technologov



comment:9 Changed 10 years ago by UFO

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 follow-up: ↓ 12 Changed 10 years ago by 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.

comment:11 Changed 10 years ago by frank

  • Status changed from new to closed
  • Resolution set to fixed

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

comment:12 in reply to: ↑ 10 Changed 7 years ago by jimklimov

  • Status changed from closed to reopened
  • Resolution fixed deleted

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 Changed 7 years ago by klaus

  • Status changed from reopened to closed
  • Resolution set to fixed
  • Description modified (diff)

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 Changed 7 years ago by jimklimov

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.
ContactPrivacy policyTerms of Use