Packaging of noVNC and Websockets

Adam Young ayoung at redhat.com
Fri Apr 27 20:26:05 UTC 2012


Trying to get the noVNC package into something that matches the Fedora 
Python pakcage specificiation.

1.  Create a bin directory, and all shell scripts and executable python 
files go in there.  These will get installed into /usr/bin.  All the 
files in here will be prefixed by novnc-.  nova-novncproxy is the 
exception ,as it will eventually move back to Nova.   These are 
img2js.py, json2graph.py, launch.sh, u2x11, u2x11, websockify, rebind.

2.  websocket.py. is a Python file that is both an execuatble and a 
module.  It will get split into two parts.  The module websocket.py will 
stay in the top level directory with a .py extension.  The executable 
portion will go into bin as websockify.  The module code will get 
installed into /usr/lib/python2.7/site-packages/.

3.  All client side Javascript  and html files will go into an html 
subfile.  This includes the html and ico files in the top dir, and the 
subdirectories 'include'  and 'images'.

4.  rebind.so needs libtool support.  It will get moved into a subdir 
name rebind.  It will get installed into /usr/lib[64] as a versioned 
.so,  probably 0.1.0


This will likely conflict with a future websocket RPM, but we'll burn 
that bridge when we get there.

For our purposes, we don't really need rebind, as we are not using it.  
I'm almost tempted to leave it out of the RPM.  Dan B mentioned that it 
needs IPv6 support,  but I don't think it is worth doing that right now.


The Init script for the VNC code is in Nova.  Since daemon runs with 
--user nova,  it should be run as a non-priveledged user,  which means 
that it only has the problem of running in the wrong CWD.  I suggest 
that we put

os.chdir(os.path.dirname(sys.argv[0]))

into nova-novncproxy.



More information about the cloud mailing list