Bugzilla

From Gentoo Wiki
Jump to: navigation, search
Resources
Note
This article refers to the Bugzilla web application. Go here for the Gentoo Bugzilla guide.

Bugzilla is a web application for tracking bugs.

Installation

USE flags

USE flags for www-apps/bugzilla Bugzilla is the Bug-Tracking System from the Mozilla project

extras Optional Perl modules
graphviz Add support for the Graphviz library
modperl Enable www-apache/mod_perl support
mysql Add mySQL Database support
postgres Add support for the postgresql database
sqlite Add support for sqliteembedded sql database
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
vhosts Add support for installing web-based applications into a virtual-hosting environment

Emerge

You may want first to emerge app-admin/webapp-config and configure it to your liking. Then emerge www-apps/bugzilla

root #emerge --ask www-apps/bugzilla

Database

MySQL

Install dev-db/mysql but prefer a 5.x version [1], then create a user for the bugzilla database :

root #mysql -u root -p
mysql> CREATE USER 'bugs'@'localhost' IDENTIFIED BY '$db_pass';
mysql> GRANT SELECT, INSERT,
UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,
CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.*
TO bugs@localhost IDENTIFIED BY '$db_pass';
mysql> FLUSH PRIVILEGES;
mysql> \q

Postgresql

Install bugzilla with the postgres use flag on, then create a user and a database for bugzilla to use :

root # su - postgres
postgrescreateuser -U postgres -dRSP bugs

Next, edit the following configuration file and add the following line

FILE /var/lib/pgsql/data/pg_hba.conf
host   all    bugs   127.0.0.1    255.255.255.255  md5

Then restart the database server

root # /etc/init.d/postgresql restart

Checksetup

Change directory to /var/www/localhost/htdocs/bugzilla, then execute checksetup.pl.

root # cd /var/www/localhost/htdocs/bugzilla
root # ./checksetup.pl

The first execution produces a localconfig file, in which you have to put the information about the database you use. The comments in that files are self-explanatory. Next, re-run checksetup.pl, which will create the database, configure bugzilla and create the admin user.

Configuration

Apache

Add bugzilla to the default vhost

FILE /etc/apache2/vhosts.d/default_vhost.include
<Directory "/var/www/localhost/htdocs/bugzilla">
  AddHandler cgi-script .cgi
  Options +ExecCGI +FollowSymLinks
  DirectoryIndex index.cgi index.html
  AllowOverride All
</Directory>

Or alternatively define another vhost, which will make bugzilla directly available at http://127.0.0.1

FILE /etc/apache2/vhosts.d/bugzilla_vhost.conf
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "/var/www/localhost/htdocs/bugzilla"
    <Directory "/var/www/localhost/htdocs/bugzilla">
        AddHandler cgi-script .cgi
        Options +ExecCGI +FollowSymLinks
        DirectoryIndex index.cgi index.html
        AllowOverride All
        Require all granted
    </Directory>
    <IfModule mpm_peruser_module>
        ServerEnvironment apache apache
    </IfModule>
    CustomLog /var/log/apache2/bugzilla_access.log combined
    ErrorLog /var/log/bugzilla_error.log
</VirtualHost>

Then restart the web server.

root #/etc/init.d/apache2 restart

Web end

Finally, point a web browser to http://127.0.0.1/bugzilla/ or http://127.0.0.1 depending on your configuration. Log in with your admin account and bugzilla will invite you to proceed to the essential post-installation configuration [2].

Upgrading

Before upgrading, one should make backup the application and its database. Note that one cannot downgrade bugzilla. To upgrade a web application, one can use app-admin/webapp-config [3]. This supposes to emerge bugzilla with the vhost flag on.

Before emerging bugzilla, move your bugzilla directory

root #mv /var/www/localhost/htdocs/bugzilla /var/www/localhost/htdocs/bugzilla-old

Then emerge bugzilla

root #emerge -av www-apps/bugzilla

Next, copy the directories data, lib (may be empty) and template/en/custom (may not exist) from your previous installation to your new installation, together with the previous localconfig file. Then run checksetup.pl.

root #cp /var/www/localhost/htdocs/bugzilla-old/data /var/www/localhost/htdocs/bugzilla/
root #cp -r /var/www/localhost/htdocs/bugzilla-old/lib /var/www/localhost/htdocs/bugzilla/
root #cp -r /var/www/localhost/htdocs/bugzilla-old/template/en/custom var/www/localhost/htdocs/bugzilla/
root #cp /var/www/localhost/htdocs/bugzilla-old/localconfig var/www/localhost/htdocs/bugzilla/
root #cd /var/www/localhost/htdocs/bugzilla/
root #./checksetup.pl

After having ascertained that the new installation works as expected, you may delete your old bugzilla directory.

Troubleshooting

If after executing checksetup.pl you get something like

root #/var/www/localhost/htdocs/bugzilla/checksetup.pl
Undefined subroutine utf8::SWASHNEW called at Bugzilla/Util.pm line 104. 
Compilation failed in require at Bugzilla/Mailer.pm line 21,  line 755.
BEGIN failed--compilation aborted at Bugzilla/Mailer.pm line 21,  line 755.
Compilation failed in require at Bugzilla/Auth.pm line 22,  line 755.
BEGIN failed--compilation aborted at Bugzilla/Auth.pm line 22,  line 755.
Compilation failed in require at Bugzilla.pm line 23,  line 755.
BEGIN failed--compilation aborted at Bugzilla.pm line 23,  line 755.
Compilation failed in require at ./checksetup.pl line 75,  line 755.

Try and comment this line [4] [5].

FILE /var/www/localhost/htdocs/bugzilla/Bugzilla/Util.pm
$var =~ tr/\x{202a}-\x{202e}//d;

Then re-execute checksetup.pl

More documentation

You can find more documentation on the official bugzila documentation page [6].

References

  1. https://bugzilla.mozilla.org/show_bug.cgi?id=1604051 [MySQL 8 Compatibility]
  2. https://bugzilla.readthedocs.io/en/5.0/installing/essential-post-install-config.html [Essential Post-Installation Configuration]
  3. https://wiki.gentoo.org/wiki/Webapp-config [Webapp-config]
  4. Mozilla bug 1588175 - Undefined subroutine utf8::SWASHNEW called at Bugzilla/Util.pm line 109.
  5. Perl issue 17271 - Safe.pm
  6. https://bugzilla.readthedocs.io/en/5.0/index.html [Bugzilla Documentation]


See also