From Fedora Project Wiki

Revision as of 13:12, 22 February 2015 by Cqi (talk | contribs) (→‎Run kojihub and kojiweb: refine var definition)

This is only my notes, not an official and complete guide to run koji. There is no guarantee that you can get any support and further QA from here or me. If you encounter any problems while you are doing this, please research and fix them by yourself first. Certainly, sharing your solutions and ideas will be appreciated.

Based on Red Hat Enterprise Linux 6.

Dependencies and environment

# Install all dependency packages

sudo yum install python-cheetah python-setuptools python-krbV PyGreSQL postgresql-server
sudo easy_install virtualenv

VIRTENV_ROOT=$HOME/virtualenvs

virtualenv --system-package-sites $VIRTENV_ROOT/koji
$VIRTENV_ROOT/koji/bin/pip install mod_wsgi

Get the code

git clone ​https://git.fedorahosted.org/git/koji $HOME/projects/koji

Run kojihub and kojiweb

PROJECTS_DIR=$HOME/projects
KOJI_DIR=$PROJECTS_DIR/koji
DEVEL_CONF_DIR=$PROJECTS_DIR/koji-dev-files

. $HOME/virtualenvs/koji/bin/activate

mkdir $DEVEL_CONF_DIR
cp $KOJI_DIR/hub/hub.conf $DEVEL_CONF_DIR
cp $KOJI_DIR/www/kojiweb/conf/web.conf $DEVEL_CONF_DIR

# Run kojihub

cd $KOJI_DIR
mod_wsgi-express start-server hub/kojixmlrpc.py --host 0.0.0.0 --port 8000 \
    --debug-mode \
    --working-directory $KOJI_DIR/hub/ \
    --python-path $KOJI_DIR \
    --setenv koji.hub.ConfigFile $DEVEL_CONF_DIR/hub.conf

# Before running kojiweb, apply this diff

# --------------------------------------------------------------------------
diff --git a/www/lib/kojiweb/util.py b/www/lib/kojiweb/util.py
index ae00757..e19ab92 100644
--- a/www/lib/kojiweb/util.py
+++ b/www/lib/kojiweb/util.py
@@ -113,7 +113,8 @@ class XHTMLFilter(DecodeUTF8):
 TEMPLATES = {}
 
 def _genHTML(environ, fileName):
-    reqdir = os.path.dirname(environ['SCRIPT_FILENAME'])
+    reqdir = os.path.dirname(environ.get('koji.web.TemplateDirectory',
+                                         environ['SCRIPT_FILENAME']))
     if os.getcwd() != reqdir:
         os.chdir(reqdir)
# --------------------------------------------------------------------------

# Run kojiweb

cd $KOJI_DIR/www/kojiweb
mod_wsgi-express start-server wsgi_publisher.py --host 0.0.0.0 --port 7000 \
    --debug-mode \
    --working-directory $KOJI_DIR/www/kojiweb/ \
    --python-path $KOJI_DIR \
    --python-path $KOJI_DIR/www/kojiweb \
    --python-path $KOJI_DIR/www/lib/ \
    --url-alias /koji-static $KOJI_DIR/www/static/ \
    --setenv koji.web.ConfigFile $DEVEL_CONF_DIR/web.conf \
    --setenv koji.web.TemplateDirectory $KOJI_DIR/www/kojiweb/