Installing TracMercurial and its dependencies (such as Mercurial itself) into an all-32-bit bitnami trac stack on Windows 2008R2 64 bit.

116 views
Skip to first unread message

Warren Postma

unread,
Jun 26, 2012, 10:31:41 AM6/26/12
to trac-...@googlegroups.com
I have Trac up and working, and the subversion integration that comes in the Bitnami Trac Stack is working fine.  Apache 2.2 and its http-auth features are working fine.  So far so good. It gets painful when I try to get TracMercurial going.

I've asked a question at answers.bitnami.org that contains some details on these problems I'm having getting TracMercurial running, including the error messages etc:

The TracMercurial wiki installation page has most of the information people need, and I've been following it religiously.  What I think I should have done first, is ask here on Trac-Users about how I should have gotten Python installed, as
a dependency. I tried everything on the wiki installation page, including:

1. Grabbing binary bits from TortoiseHG or Mercurial installations elsewhere on my system.  This causes me to run into various problems such as Python version mismatches (Bitnami trac stack is at 2.6, recent TortoiseHG and Mercurial-command-line binary installs on Windows, are on python 2.7).

2. Trying to do Easy_Install Mercurial.  This gets me stuck at the famous vcvarsall.bat problem.  (such as http://stackoverflow.com/questions/2272786/python-issueunable-to-find-vcvarsall-bat )

3.  What actually seemed to work (queue rejoicing) was to grab this file ( https://bitbucket.org/tortoisehg/thg-winbuild/downloads/mercurial-2.2.2.win32-py2.6.exe )  and run it. First it complains that it can't find the Bitnami python 2.6 install location, because Bitnami Trac Stack doesn't create the right registry keys. Well, a little registry hacking and we're away. 

Once installed, via method #3 above, the PYTHON environment seems to work, and mercurial codebase seems to work, that is, I can execute code that imports hg and ui from mercurial , and create an hg repo object, and do things with it. However
I then get stuck with the errors as shown in the answers.bitnami.org question above, which are twofold. The first error is that the demandimport.py module fails at runtime, like this error which comes out in the trac.log:

  File "C:\\Program Files\\BitNami Trac Stack\\python\\lib\\site-packages\\mercurial\\demandimport.py", line 87, in __getattribute__
    return getattr(self._module, attr)
AttributeError: 'module' object has no attribute 'directives'
If I just get rid of the demandimport.py implementation and replace it with two functions with pass as the function body, I get the whole thing up and running with no more errors in my trac.log, but, yet, I have no mercurial repository type visible in the drop-down-list of available repository types, just subversion types. Also, if I try to change my primary repo from type svn to type hg, I get this error message on my main Trac project webpage at runtime:

Then, I get mercurial modules put into Python 2.6, and I get this error:

  (Unsupported version control system "hg": DLL load failed: 
  The specified module could not be found.).
Such errors do not get reproduced as python stack tracebacks in the hg.log, so I have a broken Python 2.6 based Mercurial installation.  The most promising tip in the TracMercurial Wiki is something to do with the library.zip that is distributed along with Mercurial.   I tried to follow the steps there (unzip library.zip and then add it to the path) but was unable to figure out the second part of that (how do I add something to the path, for just the mercurial parts of my python installation).

So, maybe I'm close; Maybe I just need to get that "unzip library.zip" step and "add a directory  to sys.path" part worked out. Or maybe I've broken things worse than that because of me using Method#3 above to get py2.6-mercurial binaries installed.

Ideas?

Warren

victoria

unread,
Jun 27, 2012, 8:16:30 AM6/27/12
to trac-...@googlegroups.com
Hi

On Tue, Jun 26, 2012 at 4:31 PM, Warren Postma <warren...@gmail.com> wrote:
> I have Trac up and working, and the subversion integration that comes in the
> Bitnami Trac Stack is working fine.  Apache 2.2 and its http-auth features
> are working fine.  So far so good. It gets painful when I try to get
> TracMercurial going.
>
> I've asked a question at answers.bitnami.org that contains some details on
> these problems I'm having getting TracMercurial running, including the error
> messages etc:
> http://answers.bitnami.org/questions/5591/how-can-i-install-the-mercurial-plugin-into-the-bitnami-trac-stack
>

I managed to install TracMercurial plugin the BitNami Trac Stack. I
have added the steps I followed in answers.bitnami.org. Basically what
I did:

- Registry the version of python included in the stack. ( In the
BitNami forum I include the registerpython.py script that I used)
- Install this version of Mercurial:
https://bitbucket.org/tortoisehg/thg-winbuild/downloads/mercurial-2.2.2.win32-py2.6.exe
- Download the Trac mercurial plugin for Trac 0.12 (this is very important)
- Restart the servers and the plugin appears in the plugins list.

> The TracMercurial wiki installation page has most of the information people
> need, and I've been following it religiously.  What I think I should have
> done first, is ask here on Trac-Users about how I should have gotten Python
> installed, as
> a dependency. I tried everything on the wiki installation page, including:
>
> 1. Grabbing binary bits from TortoiseHG or Mercurial installations elsewhere
> on my system.  This causes me to run into various problems such as Python
> version mismatches (Bitnami trac stack is at 2.6, recent TortoiseHG and
> Mercurial-command-line binary installs on Windows, are on python 2.7).
>
> 2. Trying to do Easy_Install Mercurial.  This gets me stuck at the famous
> vcvarsall.bat problem.  (such
> as http://stackoverflow.com/questions/2272786/python-issueunable-to-find-vcvarsall-bat )
>
> 3.  What actually seemed to work (queue rejoicing) was to grab this file (
> https://bitbucket.org/tortoisehg/thg-winbuild/downloads/mercurial-2.2.2.win32-py2.6.exe
> )  and run it. First it complains that it can't find the Bitnami python 2.6
> install location, because Bitnami Trac Stack doesn't create the right
> registry keys. Well, a little registry hacking and we're away.
>

The third method is the right one and as you mention you need first to
register the BitNami Python version.

> Once installed, via method #3 above, the PYTHON environment seems to work,
> and mercurial codebase seems to work, that is, I can execute code that
> imports hg and ui from mercurial , and create an hg repo object, and do
> things with it. However
> I then get stuck with the errors as shown in the answers.bitnami.org
> question above, which are twofold. The first error is that the
> demandimport.py module fails at runtime, like this error which comes out in
> the trac.log:
>
> File "C:\\Program Files\\BitNami Trac
> Stack\\python\\lib\\site-packages\\mercurial\\demandimport.py", line 87, in
> __getattribute__
> return getattr(self._module, attr)
> AttributeError: 'module' object has no attribute 'directives'
>
> If I just get rid of the demandimport.py implementation and replace it with
> two functions with pass as the function body, I get the whole thing up and
> running with no more errors in my trac.log, but, yet, I have no mercurial
> repository type visible in the drop-down-list of available repository types,
> just subversion types. Also, if I try to change my primary repo from type
> svn to type hg, I get this error message on my main Trac project webpage at
> runtime:
>

I'm understanding that you get this error when installing the plugin.
Or do you get them later when using it? Also I was yesterday playing a
bit with it and I got that error. I could be because mercurial was not
correcly installed or because you are not using the right version of
the plugin for your Trac installation.

> Then, I get mercurial modules put into Python 2.6, and I get this error:
>
> (Unsupported version control system "hg": DLL load failed:
> The specified module could not be found.).
>
> Such errors do not get reproduced as python stack tracebacks in the hg.log,
> so I have a broken Python 2.6 based Mercurial installation.  The most
> promising tip in the TracMercurial Wiki is something to do with the
> library.zip that is distributed along with Mercurial.   I tried to follow
> the steps there (unzip library.zip and then add it to the path) but was
> unable to figure out the second part of that (how do I add something to the
> path, for just the mercurial parts of my python installation).
>

It maybe also that Python is not correctly registered and that is why
Mercurial is not correctly installed (with that version of python)

> So, maybe I'm close; Maybe I just need to get that "unzip library.zip" step
> and "add a directory  to sys.path" part worked out. Or maybe I've broken
> things worse than that because of me using Method#3 above to get
> py2.6-mercurial binaries installed.
>
> Ideas?

Could you follow the steps I posted in
http://answers.bitnami.org/questions/5591/how-can-i-install-the-mercurial-plugin-into-the-bitnami-trac-stack
(and I have summarized above)?

Thanks.

>
> Warren
>
> --
> You received this message because you are subscribed to the Google Groups
> "Trac Users" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/trac-users/-/iXn8ihf7TcgJ.
> To post to this group, send email to trac-...@googlegroups.com.
> To unsubscribe from this group, send email to
> trac-users+...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/trac-users?hl=en.
Reply all
Reply to author
Forward
0 new messages