bgneal@4: Upgrading Trac on Windows Gotchas
bgneal@4: #################################
bgneal@4: 
bgneal@4: :date: 2011-09-12 22:15
bgneal@4: :tags: Python, Trac, Subversion, Windows
bgneal@4: :slug: upgrading-trac-on-windows-gotchas
bgneal@4: :author: Brian Neal
bgneal@4: 
bgneal@4: At work, we are outfitted with Windows servers. Despite this obstacle, I managed
bgneal@4: to install Trac_ and Subversion_ a few years ago. During a break in the action,
bgneal@4: we decided to update Subversion (SVN) and Trac. Since we are on Windows, this
bgneal@4: means we have to rely on the `kindness of strangers`_ for Subversion binaries. I
bgneal@4: ran into a couple of gotchas I'd like to document here to help anyone else who
bgneal@4: runs into these.
bgneal@4: 
bgneal@4: I managed to get Subversion and Trac up and running without any real problems.
bgneal@4: However when Trac needed to access SVN to display changesets or a timeline, for
bgneal@4: example, I got an error:
bgneal@4: 
bgneal@4: ``tracerror: unsupported version control system "svn" no module named _fs``
bgneal@4: 
bgneal@4: After some googling, I finally found that this issue is `documented on the Trac
bgneal@4: wiki`_, but it was kind of hard to find. To fix this problem, you have to rename
bgneal@4: the Python SVN binding's DLLs to ``*.pyd``. Specifically, change the 
bgneal@4: ``libsvn/*.dll`` files to ``libsvn/*.pyd``, but don't change the name of 
bgneal@4: ``libsvn_swig_py-1.dll``. I'd really like to hear an explanation of why one
bgneal@4: needs to do this. Why doesn't the Python-Windows build process do this for you?
bgneal@4: 
bgneal@4: The second problem I ran into dealt with mod_wsgi_ on Windows. Originally, a few
bgneal@4: years ago, I setup Trac to run under mod_python_. mod_python has long been
bgneal@4: out of favor, so I decided to cut over to mod_wsgi. On my Linux boxes, I always
bgneal@4: run mod_wsgi in daemon mode. When I tried to configure this on Windows, Apache
bgneal@4: complained about an unknown directive ``WSGIDaemonProcess``. It turns out that
bgneal@4: `this mode is not supported on Windows`_. You'll have to use the embedded mode on
bgneal@4: Windows. 
bgneal@4: 
bgneal@4: .. _Trac: http://trac.edgewall.org/
bgneal@4: .. _Subversion: http://subversion.apache.org/
bgneal@4: .. _kindness of strangers: http://sourceforge.net/projects/win32svn/
bgneal@4: .. _documented on the Trac wiki: http://trac.edgewall.org/wiki/TracSubversion
bgneal@4: .. _mod_wsgi: http://code.google.com/p/modwsgi/
bgneal@4: .. _mod_python: http://www.modpython.org/
bgneal@4: .. _this mode is not supported on Windows: http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIDaemonProcess