If you're using the Debian installation documentation found on this site to install Hatta on a Debian Etch System, you'll need to do a couple of things differently:
python-werkzeug
package. An alternative procedure is to first install Mercurial, and then use Mercurial to install Werkzeug, as outlined on the Werkzeug Download Page. After you've acquired the script, install it according to their instructions. Be aware that this isn't an optimum solution, as Werkzeug won't be upgraded with your regular apt-management. /Peter Blompython-wsgiref
isn't available in Etch. To fix this you need to either update your system to python 2.>4, or apt-get python-setuptools
and then run easy_install wsgiref
. The last suggestion is not recommended, for the same reasons as above. Read more about the possible problems of using easy_install
here. /Peter Blomhatta.py
, hoping to have your glorious wiki up and running, you'll unfortunately encounter the problem outlined further down on this page: You'll get the error TypeError: __init__() got an unexpected keyword argument 'report_untrusted'
. See further down for the solution to this problem. /Peter BlomI tried using easy_install-2.4 to get werkzeug installed (as python-werkzeug is not in etch) and got the package installed fine, but Hatta won't run:
$ /usr/src/hatta-dev/hatta.py File "/usr/src/hatta-dev/hatta.py", line 1603 finally: ^ SyntaxError: invalid syntax $ python -V Python 2.4.4 $
Ok, so I wanted to try with Python 2.5. Unfortunately the easy_install-2.5 in Debian stable (etch) doesn't want to work for me, so I can't get werkzeug installed:
$ sudo easy_install-2.5 werkzeug Traceback (most recent call last): File "/usr/bin/easy_install-2.5", line 5, in <module> from pkg_resources import load_entry_point ImportError: No module named pkg_resources $
And I'm stumped. Any ideas? Should I just wait for the next Debian release?
This is an incompatibility with python 2.4 introduced by mistake (and not tested for). It's fixed in version 1.0.2 now. Note that to use standalone (local) server on 2.4, you will also need to install python-wsgiref
.
Another option is to just download the werkzeug source, unpack it and copy the werkzeug
directory to the same directory where hatta.py
is.
Thank you for reporting this defect.
Thanks for the fix! Now I get this error instead:
Traceback (most recent call last): File "/usr/src/hatta/hatta.py", line 1323, in ? application = Wiki().application File "/usr/src/hatta/hatta.py", line 831, in __init__ self.storage = WikiStorage(self.path) File "/usr/src/hatta/hatta.py", line 39, in __init__ quiet=True) TypeError: __init__() got an unexpected keyword argument 'report_untrusted'
I tried this naïve patch, and got Hatta to start:
diff -r 516b71176c51 hatta.py --- a/hatta.py Sun Nov 16 13:17:03 2008 +0000 +++ b/hatta.py Mon Nov 17 20:07:16 2008 +0100 @@ -35,7 +35,7 @@ class WikiStorage(object): if not os.path.exists(self.path): os.makedirs(self.path) self.repo_path = self._find_repo_path(self.path) - self.ui = mercurial.ui.ui(report_untrusted=False, interactive=False, + self.ui = mercurial.ui.ui(interactive=False, quiet=True) if self.repo_path is None: self.repo_path = self.path
But when I click save on edit/Home, I get:
topper.koldfront.dk -- [GET /edit/Home HTTP/1.0] 404 2946 Traceback (most recent call last): File "/var/lib/python-support/python2.4/wsgiref/handlers.py", line 92, in run self.result = application(self.environ, self.start_response) File "/usr/lib/python2.4/site-packages/Werkzeug-0.3.1-py2.4.egg/werkzeug/utils.py", line 1539, in <lambda> return _patch_wrapper(f, lambda *a: f(*a)(*a[-2:])) File "/usr/src/hatta/hatta.py", line 1313, in application response = endpoint(request, **values) File "/usr/src/hatta/hatta.py", line 993, in save self.storage.save_text(title, data, author, comment) File "/usr/src/hatta/hatta.py", line 96, in save_text self.save_file(title, file_name, author, comment) File "/usr/src/hatta/hatta.py", line 80, in save_file lock = self._lock() File "/usr/src/hatta/hatta.py", line 51, in _lock lock = self.repo._lock(os.path.join(self.path, "wikilock"), AttributeError: 'localrepository' object has no attribute '_lock' topper.koldfront.dk -- [POST /edit/Home HTTP/1.0] 500 59
I wouldn't spend too much time on it if I were you (etch is old), but if you have a quick fix, I'd love to have it.
The quick fix is as usual an upgrade, this time of the Mercurial. Once again, you don't have to install it on your system, it's sufficient to run the setup.py --prefix /some/temp/dir/here
and then copy the mercurial
directory from /some/temp/dir/here/lib/python2.4/site-packages/mercurial
to where your hatta.py
is. Or use easy_install
or a newer .deb
. Mercurial's API changed between versions 0.9 and 1.0, I can't support both of them.
Makes perfect sense; I will try. Thanks!
I installed mercurial from backports.org, and Hatta now works on my Debian stable (etch) machine. Thank you for answers and patience.