[tahoe-dev] [tahoe-lafs] #585: make it work with bbfreeze

tahoe-lafs trac at tahoe-lafs.org
Mon Jan 3 07:01:03 UTC 2011


#585: make it work with bbfreeze
-----------------------------+----------------------------------------------
     Reporter:  zooko        |       Owner:  nobody                             
         Type:  enhancement  |      Status:  new                                
     Priority:  major        |   Milestone:  soon                               
    Component:  packaging    |     Version:  1.2.0                              
   Resolution:               |    Keywords:  windows install setuptools bbfreeze
Launchpad Bug:               |  
-----------------------------+----------------------------------------------

Comment (by davidsarah):

 Replying to [comment:7 zooko]:
 > Replying to [comment:5 davidsarah]:
 > > For me mids' recipe does produce an executable, but it references an
 {{{.egg}}} file that does not contain any resources, such as {{{.xhtml}}}
 files. This results in exceptions when trying to view the WUI of a node
 run using this executable.
 >
 > Hey! This was ticket #1033, which has been fixed. Maybe now mids's
 recipe will work! :-)

 If it did before, it won't now, because the windows directory has been
 removed by #1282.

 After much trial and error, I found the following recipe instead. First
 apply attachment:bb-freeze.darcs.patch to a checkout of trunk. Then from a
 cygwin prompt:
 {{{
 make clean
 python setup.py build
 sed 's/\\r//' <src/allmydata/_version.py >_version.new
 mv -f _version.new src/allmydata/_version.py
 export PYTHONPATH=support/Lib/site-packages
 bb-freeze windows/tahoe.py
 }}}

 (cygwin is not essential, but we need sed to convert the CRLF line endings
 in _version.py, otherwise the compiler invoked by bb-freeze will fail to
 compile it. I don't know why it is so picky.)

 The resulting {{{dist\tahoe.exe}}} has a bug that causes its argv array to
 be shifted, dropping {{{sys.argv[0]}}}. You can work around this by giving
 'tahoe' as a dummy first argument.

 I haven't tested it much, but it can run a functioning gateway node to the
 pubgrid, and list the public directory using the CLI. Unicode arguments
 and output even work!

-- 
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/585#comment:8>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-dev mailing list