home | tech | misc | code | bookmarks (broken) | contact | README


Opengrok notes

Setup on NetBSD with Tomcat

Install pkgsrc/devel/opengrok. pkgsrc will resolve its dependencies.

OpenGrok is a Java web application that runs under Tomcat so we need to make it work under Tomcat. The documentation you have to follow is in /usr/p../../share/opengrok/README.txt.

OpenGrok Tomcat webapp is in source.war. This file is not more than a zipped file. You need to edit the web.xml file that is in it.

Extract and edit WEB-INF/web.xml file:

$ cd /usr/p../../share/opengrok/
$ unzip source.war WEB-INF/web.xml
$ vi WEB-INF/web.xml

Edit the DATA_ROOT parameter. Its value (<param-value>) have to be the final directory where OpenGrok database (in order to allow cross-reference and searching) will be created.

Edit the SRC_ROOT parameter. Its value have to be the source code of your application. See that if you are using CVS, this variable should not point to the CVS repository, but for a directory with already checked out modules.

Note

When setting these paths, it is a good idea to let a trailing slash at the end of them. Official documentation doesn't say anything about that, but I had problems not letting the trailing slash.

After editing the WEB-INF/web.xml file, pack it back in the source.war file:

$ zip -u WEB-INF/web.xml

Now move the source.war file to the Tomcat web apps dir:

$ mv source.war /usr/pkg/tomcat/webapps

Now we need to start Tomcat:

$ cd /usr/pkg/tomcat/bin
$ export JAVA_HOME=/usr/pkg/java/sun-1.5
$ ./startup.sh

Tomcat running at the default port, 8080. Just open a browser and see what is running at localhost:8080 (replace "localhost" for the hostname Tomcat is installed in).

Now it is possible to browse the source code checked out from CVS, but cross-reference and searching are not working yet. It is necessary to setup the database. So create the following script:

#!/bin/sh

PROGDIR=/usr/p../../share/opengrok
SRC_ROOT=/home/silas/src
DATA_ROOT=/disk/files/www/opengrok
EXUB_CTAGS=/usr/pkg/bin/exctags

/usr/pkg/java/sun-1.5/bin/java -jar ${PROGDIR}/opengrok.jar -c ${EXUB_CTAGS} -s ${SRC_ROOT} ${DATA_ROOT}

Just run this script. When it is done, the database is created and OpenGrok should now work with cross-reference and searching features. If some problem arise, check if DATA_ROOT and SRC_ROOT in web.xml and correct.

You can improve the script above to include checkout of your CVS repository and put it in crontab to make update automatic.

Some references I used: