now that web templates are found via pkg_resources, then the windows build
should in fact _use_ pkg_resources, rather than exclude it from the build
to prevent nevow exploding upon import due to the zip provider exception,
so that the pkgreshook can do install location based lookups
the recent changes to webish's template lookup (to use nevow.util hence
pkg_resources) to support the mac build, needs these changes to the windows
build in match the new lookup path
this adds the latest build of mike's winfuse plugins, now also running as
a windows service (and using the node.url, private/root_dir.cap files from
the noderoot specified by the registry) into the install process.
so in the build slave's environment, everything builds and runs fine without
'_xmlplus'. In my existing local environment everything builds and runs only
if I tell py2exe to explicitly link in '_xmlplus'.
the _xmlplus module, tested for by the python standard library, comes from
PyXML ( http://pyxml.sf.net ) a project which is no longer maintained and,
for instance, hasn't released a build for windows past python 2.4
hence something about the way nevow and the std lib import xml dependencies
causes build environment incompatabilities between my box (which is running
py24 currently) and the buildslave (which is on py25, and doesn't have PyXML)
(if I remove _xmlplus from my environment, then a different set of nevow/xml
import problems emerge, which do not occur in the buildslave's py25 env)
this change tests the environment the build is happening in, and if the
_xmlplus package is importable, then py2exe is directed to link it into the
build. otherwise the package is left out. as far as I comprehend the issue
this should make both of these environments work. if other people have
problems around this issue, obviously I'm interested in learning more.
nevow attempts to use pkg_resources to find the formless css file upon
import, if pkg_resources is available. unfortunately using pkg_resources
to find files is not supported if the files are being loaded from a zip
archive (i.e. only source and egg), and further py2exe uses a zip bundle
for all the code and dependent libraries. hence having both pkg_resources
and nevow built into an exe causes nevow to explode upon import.
this tells py2exe not to link pkg_resources into the target, so that
this behaviour isn't stimulated. the side effect being that pkg_resources
isn't available.
there are many and various fiddly details that were involved in this process
on mountain view. This is a stripped down version of the build process used
there. there's hence a good chance that one or two necessary details got
stripped down through the cracks.
this provides a py2exe setup.py to build a tahoe.exe and a tahoesvc.exe
the former is equivalent to bin/tahoe, but without the start/stop commands.
the latter is a windows service that instantiates a client whose basedir
is found in the registry.