Packaging of noVNC and Websockets

Adam Young ayoung at redhat.com
Wed May 2 15:15:58 UTC 2012


On 05/01/2012 06:44 PM, Anthony Young wrote:
> Adam,
>
> It turns out that kanaka also maintains a websockify tree that 
> independently houses the websocket and proxy code.  As we discussed on 
> irc, I've proposed some changes to that repo: 
> https://github.com/kanaka/websockify/pull/40 - if you could take a 
> look and offer feedback that would be great.
>
> A few things that differ in that tree from what you describe below:
>
>  * I created a subdirectory for the websockify module (rather than 
> leaving code at top level)

>  * I put the proxy base class in websockify/proxy.py (rather than 
> leaving it in websockify.py, which I rename to bin/websockify).



That is fine.  I was tempted that way myself,  but wasn't sure that 
there was enough code to justify it.  It is only about 280 lines of 
code,  and thus I would see that being deployed in, for example:


/usr/lib[64]/python2.7/site-packages/websockify.py

as opposed to having to manage

/usr/lib[64]/python2.7/site-packages/websockify/__init__.py


Perhaps for the git repo, it just makes sense to have a python subdir 
with the websockify.py and other potential modules files in there, and 
then an explicit PYTHONPATH set to look there?  Just for development.  
However,  your approach is certainly OK.



>  * I also adopted the convention to use 'www' instead of 'html' to 
> store html/js/css (although noVNC does not need to use this code 
> directly).

Agreed.  I like this better as it is  more inclusive.
>
> Once we work through these structural changes, we can turn our 
> attention to some of the other fixes that you mentioned to me 
> (directory listing, organization of html/css/js in the noVNC tree).
>
> Anthony
>
>
> On Fri, Apr 27, 2012 at 1:26 PM, Adam Young <ayoung at redhat.com 
> <mailto:ayoung at redhat.com>> wrote:
>
>     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.
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.fedoraproject.org/pipermail/cloud/attachments/20120502/10af5f67/attachment.html>


More information about the cloud mailing list