Wednesday, October 6, 2010

Bugzilla REST import/export API installation on Ubuntu 10.04

I wanted to export, and import bugs to and from Bugzilla. From the bugzilla irc channel I got a tip about REST API.

This isn't anything supplied by Bugzilla by default, so a separate install is needed, including a couple of patches to Bugzilla itself.

My setup is currently a default Bugzilla 3.6.2 installation on Ubuntu 10.04.

First off, get dependencies:
sudo apt-get install build-essential libcatalyst-perl libcatalyst-modules-perl libmoose-perl apache2 \
libapache2-mod-fastcgi libfcgi-perl libfcgi-procmanager-perl mercurial liblog-handler-perl libarray-diff-perl \
libcatalyst-action-rest-perl libdata-walk-perl libdatetime-format-iso8601-perl libmodule-install-perl -y

PERL_MM_USE_DEFAULT=1 perl -MCPAN -e "install BZ::Client"
PERL_MM_USE_DEFAULT=1 perl -MCPAN -e "install Moose"
PERL_MM_USE_DEFAULT=1 perl -MCPAN -e "install Test::More"
PERL_MM_USE_DEFAULT=1 perl -MCPAN -e "install Catalyst::Controller::REST" #(inc. optional modules)
PERL_MM_USE_DEFAULT=1 perl -MCPAN -e "install Catalyst::Plugin::Log::Handler"
PERL_MM_USE_DEFAULT=1 perl -MCPAN -e "install Slurp"

Patch Bugzilla using the patches from: https://wiki.mozilla.org/Bugzilla:REST_API *DEPRECATED*
cd /var/www/bugzilla
wget https://bugzilla.mozilla.org/attachment.cgi?id=408495 -O JSON_template_for_config.cgi.diff
patch < JSON_template_for_config.cgi.diff
wget https://bugzilla.mozilla.org/attachment.cgi?id=475044 -O template/en/default/config.json.tmpl
chown root:www-data template/en/default/config.json.tmpl
Get the bzapi files:
cd /var/www
hg clone http://hg.mozilla.org/webtools/bzapi bzapi
Copy extension into place and set up config file:
cd /var/www/bzapi
cp -r extension/BzAPI ../bugzilla/extension/
cp bugzilla_api.conf.sample bugzilla_api.conf
nano bugzilla_api.conf
Check that all dependencies are met, by trying to start the fastcgi server:
cd /var/www/bzapi
./script/bugzilla_api_server.pl
Set up apache:
a2enmod ssl
nano /etc/apache2/sites-enabled/bzapi
Example config for apache (I simply added these lines to my bugzilla installation):
# Config for port 80 without ssl (will redirect)
  FastCgiServer /var/www/bzapi/script/bugzilla_api_fastcgi.pl -processes 10 -idle-timeout 180
  Alias /bzapi /var/www/bzapi/script/bugzilla_api_fastcgi.pl/

# Config for port 443 with ssl
  Alias /bzapi /var/www/bzapi-1.0/script/bugzilla_api_fastcgi.pl/
Restart apache to enable config:
apache2ctl restart
At this point I hit a problem with: Can't locate Bugzilla/API.pm in @INC (@INC contains: .. /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/local/share/perl/5.10.1/Module/Runtime.pm line 317. I solved it by adding the following to line 2 in /var/www/bzapi/script/bugzilla_api_fastcgi.pl:
use lib "/var/www/bzapi/lib";
And then restart apache again.

No comments:

Post a Comment