Mkroesti

mkroesti is my Python learning project. This wiki page shows how I set up the demo site on www.herzbube.ch.


References


System installation

The basic installation process is explained step-by-step in the INSTALL document. I like to have mkroesti installed in

/usr/local/bin/mkroesti

These are the install commands (change version to match):

cd /tmp
tar xfvz /path/to/mkroesti-0.4.tar.gz
cd mkroesti-0.4
./setup.py build
./setup.py install --prefix=/usr/local

From now on you can run mkroesti on the command line. For instance, check available hash algorithms with

mkroesti --list


CGI script setup

Continuing from the system installation in the previous section, these are the commands that are required to setup mkroesti as a CGI script:

mkdir -p /usr/local/share/mkroesti
cp /tmp/mkroesti-0.4/src/web/mkroesti.cgi /usr/local/share/mkroesti
ln -s /usr/local/share/mkroesti/mkroesti.cgi /usr/lib/cgi-bin

From now on you can point your browser to https://www.herzbube.ch/cgi-bin/mkroesti.cgi.


Additional hash algorithms

mkroesti automatically uses certain Python modules if they are present/installed on the system, to provide additional hashes. These are the Debian packages:

python-mhash
python-bcrypt
python-smbpasswd


python-aprmd5

python-aprmd5 is a Python extension written in C that wraps the MD5 routines of the Apache Portable Runtime (APR) Utility Library (libaprutil). mkroesti automatically uses python-aprmd5 if it is present/installed on the system.


Building python-aprmd5 requires that a functional compiler is present on the system. In addition, the following Debian dev packages must be installed so that the Python and libaprutil header files can be found by the build process:

libpython-dev
libaprutil1-dev

Note: You can remove these dev packages after a successful build.


Commands to build and install python-aprmd5:

cd /tmp
tar xfvz /path/to/python-aprmd5-0.2.1.tar.gz
cd python-aprmd5-0.2.1
./setup.py build
./setup.py install --prefix=/usr/local

From now on mkroesti is capable of generating hashes with the crypt-apr1 algorithm.