Bugzilla - Installation

The Bugzilla GIT website is the best way to get Bugzilla. Download and install GIT from the website − https://git-scm.com/download and Run it.

git clone --branch release-X.X-stable https://github.com/bugzilla/bugzilla 

Where, "X.X" is the 2-digit version number of the stable release of Bugzilla (e.g. 5.0)

The another way to download Bugzilla is from the following link − https://www.bugzilla.org/download/ and move down to the Stable Release section and select the latest one from the list as shown in the following screenshot. Click on Download Bugzilla 5.0.3.

Stable Release

Bugzilla comes as a 'tarball' (.tar.gz extension), which any competent Windows archiving tool should be able to open.

Opening Bugzilla

PERL Modules

Bugzilla requires a number of Perl modules to be installed. Some of them are mandatory, and some others, which enable additional features, are optional.

In ActivePerl, these modules are available in the ActiveState repository, and are installed with the ppm tool. Either it can use it on the command line or just type ppm and the user will get a GUI.

Install the following mandatory modules with the following command.

ppm install <modulename> 

Some of the most important PERL modules have been described below.

  • CGI.pm − It is an extensively used Perl module for programming the CGI (Common Gateway Interface) web applications. It helps to provide a consistent API for receiving and processing user inputs.

  • Digest-SHA − The Digest-SHA1 module allows you to use the NIST SHA-1 message digest algorithm from within the Perl programs. The algorithm takes as input a message of arbitrary length and produces as output a 160-bit "fingerprint" or "message digest" of the input.

  • TimeDate − TimeDate is a class for the representation of time/date combinations, and is part of the Perl TimeDate project.

  • DateTime − DateTime is a class for the representation of date/time combinations, and is part of the Perl DateTime project.

  • DateTime-TimeZone − This class is the base class for all time zone objects. A time zone is represented internally as a set of observances, each of which describes the offset from GMT for a given time period.

  • DBI − It is the standard database interface module for Perl. It defines a set of methods, variables and conventions that provide a consistent database interface independent of the actual database being used.

  • Template-Toolkit − The Template Toolkit is a collection of Perl modules, which implement a fast, flexible, powerful and extensible template processing system. It can be used for processing any kind of text documents and is input-agnostic.

  • Email-Sender − The Email-Sender replaces the old and problematic email send library, which did a decent job at handling the simple email sending tasks, but it was not suitable for serious use for a several reasons.

  • Email-MIME − This is an extension of the Email-Simple module. It is majorly used to handle MIME encoded messages. It takes a message as a string, splits it into its constituent parts and allows you to access the different parts of the message.

  • URI − A Uniform Resource Identifier is a compact string of characters that identifies an abstract or physical resource. A URI can be further classified as either a Uniform Resource Locator (URL) or a Uniform Resource Name (URN).

  • List-MoreUtils − It provides some trivial but commonly needed functionality on lists, which is not going to go into the List-Util module.

  • Math-Random-ISAAC − The ISAAC (Indirection, Shift, Accumulate, Add, and Count) algorithm is designed to take some seed information and produce seemingly random results as the output.

  • File-Slurp − This module provides subs that allow you to read or write files with one simple call. They are designed to be simple, have flexible ways to pass in or get the file content and are very efficient.

  • JSON-XS − This module converts the Perl data structures to JSON and vice versa. The primary goal of JSON-XS is to be correct and its secondary goal is to be fast.

  • Win32 − The Win32 module contains functions to access Win32 APIs.

  • Win32-API − With this module, you can import and call arbitrary functions from the Win32's Dynamic Link Libraries (DLL), without having to write an XS extension.

  • DateTime-TimeZone-Local-Win32 − This module provides methods for determining the local time zone on a Windows platform.

The following modules enable various optional Bugzilla features; try to install these based on your requirements −

  • GD − The GD module is only required if you want graphical reports.

  • Chart − This module is only required if you would want graphical reports as the GD module.

  • Template-GD − This module has the template toolkit for the template plugins.

  • GDTextUtil − This module has the text utilities for use with the GD.

  • GDGraph − It is a Perl5 module to create charts using the GD module.

  • MIME-tools − MIME-tools is a collection of Perl5 MIME modules for parsing, decoding and generating single or multipart (even nested multipart) MIME messages.

  • libwww-perl − The World Wide Web library for Perl is also called as the libwww-perl. It is a set of Perl modules, which give Perl programming an easy access to send requests to the World Wide Web.

  • XML-Twig − It is a Perl module used to process XML documents efficiently. This module offers a tree-oriented interface to a document while still allowing the processing of documents of any size.

  • PatchReader − This module has various utilities to read and manipulate patches and CVS.

  • perl-ldap − It is a collection of modules that implements LDAP services API for Perl programs. This module may be used to search directories or perform maintenance functions such as adding, deleting or modifying entries.

  • Authen-SASL − This module provides an implementation framework that all protocols should be able to share.

  • Net-SMTP-SSL − This module provides the SSL support for Net-SMTP 1.04

  • RadiusPerl − This module provides simple Radius client facilities.

  • SOAP-Lite − This module is a collection of Perl modules, which provide a simple and lightweight interface to the Simple Object Access Protocol (SOAP) on both the client and the server side.

  • XMLRPC-Lite − This Perl module provides a simple interface to the XML-RPC protocol both on client and server side.

  • JSON-RPC − A set of modules that implement the JSON RPC 2.0 protocols.

  • Test-Taint − This module has Tools to test taintedness.

  • HTML-Parser − This module defines a class HTMLParser, which serves as the basis for parsing text files formatted in HTML and XHTML.

  • HTML-Scrubber − This module helps to sanitize of scrub the html input in a reliable and flexible fashion.

  • Encode − This module provides an interface between Perl's strings and the rest of the system.

  • Encode-Detect − This module is an Encode-Encoding subclass that detects the encoding of data.

  • Email-Reply − This module helps in replying to an email or a message.

  • HTML-FormatText-WithLinks − This module takes HTML and turns it into plain text, but prints all the links in the HTML as footnotes.

  • TheSchwartz − This module is a reliable job queue system.

  • Daemon-Generic − This module provides a framework for starting, stopping, reconfiguring daemon-like programs.

  • mod_perl − This module helps in embedding a Perl interpreter into the Apache server.

  • Apache-SizeLimit − This module allows you to kill the Apache httpd processes, if they grow too large.

  • File-MimeInfo − This module is used to determine the mime type of a file.

  • IO-stringy − This toolkit mainly provides modules for performing both traditional and object-oriented (i/o) on things other than normal filehandles.

  • Cache-Memcached − This module is a client library for the memory cache daemon (memcached).

  • Text-Markdown − This module is a text-to-HTML filter; it translates an easy-to-read / easy-to-write structured text format into HTML.

  • File-Copy-Recursive − This module is a Perl extension for recursively copying files and directories.

In Strawberry Perl, use the cpanm script to install modules. Some of the most important modules are already installed by default. The remaining ones can be installed using the following command −

cpanm -l local <modulename>

The list of modules to install will be displayed by using the checksetup.pl command.