Jump to: navigation, search

Lyo/BuildTRS4JBugzilla/BugzillaInstallation

* DRAFT IN PROGRESS *

This page has the reference instruction to install Bugzilla for Tracked Resource Set(TRS) Workshop

Installing Bugzilla on Windows

The required Bugzilla version is v4.0 or above ( See OSLC-CM compatible adapter ), and its installation instruction is available at Bugzilla documentation here or MozillaWiki here. This wiki page is a digest of the installation instruction, so if you will find the problems about the installation, please refer to the Bugzilla documentation.

Since TRS adapter for Bugzilla calls Bugzilla api many times, "mod_perl" module, which is the embedded Perl interpreter in Apache web server,  needs to be installed for the good performance. If you will follow the instruction below, this module is automatically installed.  ( Bugzilla also requires the mod_perl to be installed too. Please see this page.)

Prerequisites

The following specific version of software images need to be downloaded.

Installation

All installation needs to be done by Windows Administrator account.
Note: If you use Windows Vista or later release, it is recomended to disable User Access Control (UAC) while this installation is being done. You can refer to this web page about how to disable it.

  1. Download XAMPP v1.7.7
    1. Install all components in it to C:\xampp folder.
      Note: This version of XAMPP is the most latest driver that has "mod_perl" module.
  2. Download bugzilla v4.0.10
    1. Un-gzip and un-tar it under c:\xampp\ (so that bugzilla will be extracted at C:\xampp\bugzilla-4.0.10)
  3. Download strawberry-perl v5.16.3.1
    1. Install it to C:\strawberry. This strawberry perl is needed for 'cpan' to work. 'cpan' is a tool to install Perl modules.
      Note: strawberry perl componnets are used for the perl modues to be built. The runtime for Perl is xampp's perl.

Initial setup for XAMPP

  1. Login as Windows Administrator account.
  2. set PATH=C:\xampp\apache\bin;C:\xampp\perl\bin;C:\strawberry\c\bin;%PATH%
  3. cd C:\xampp
  4. setup_xampp.bat. If you will see "Sorry, but ... nothing do do !" message, you can ignore that message now.
  5. xampp-control.exe

Install necessary Perl modules for Bugzilla

  1. Login as Windows Administrator account.
  2. set PATH=C:\xampp\apache\bin;C:\xampp\perl\bin;C:\strawberry\c\bin;%PATH%     (if not being set before. )
  3. Check the necessary modules are installed
       cd C:\xampp\bugzilla-4.0.10
       c:\xampp\perl\bin\perl.exe checksetup.pl --check-module
  4. Make sure you will see the following messages as the missing modules.
    COMMANDS TO INSTALL REQUIRED MODULES (You *must* run all these commands and then re-run this script):

    c:\xampp\perl\bin\perl.exe install-module.pl CGI
    c:\xampp\perl\bin\perl.exe install-module.pl DateTime
    c:\xampp\perl\bin\perl.exe install-module.pl DateTime::TimeZone
    c:\xampp\perl\bin\perl.exe install-module.pl Template
    c:\xampp\perl\bin\perl.exe install-module.pl Email::MIME
    c:\xampp\perl\bin\perl.exe install-module.pl List::MoreUtils

    To attempt an automatic install of every required and optional module with one command, do:
    c:\xampp\perl\bin\perl.exe install-module.pl --all

    *** Installation aborted. Read the messages above. ***


    Also make sure that installed SOAP::Lite is old and Test::Taint is missing. For example,

    Checking for SOAP-Lite (v0.712) found v0.710.10
    [...]
    Checking for Test-Taint (any) not found

  5. Work around for Template-Toolkit, Test::Tain, DateTime and DateTime::TimeZone installation issue
       cd C:\xampp\bugzilla-4.0.10
       c:\xampp\perl\bin\ppm.bat install Template-Toolkit
       c:\xampp\perl\bin\ppm.bat install Test::Taint
       c:\xampp\perl\bin\ppm.bat install DateTime
  6. Install prerequisite perl modules. Create a bat file which has the following commands, and save it and execute it. It takes a long time.
       cd C:\xampp\bugzilla-4.0.10
       c:\xampp\perl\bin\perl.exe install-module.pl CGI
       c:\xampp\perl\bin\perl.exe install-module.pl Email::MIME
       c:\xampp\perl\bin\perl.exe install-module.pl List::MoreUtils
       c:\xampp\perl\bin\perl.exe install-module.pl SOAP::Lite
  7. Work around for TimeZone linkage error
    Note1: This time zone name will be used in Bugzilla preferences. SeeInitial Bugzilla setup for the TRS Workshop below.
    Note2: Local.pm might be read-only, so you need to change its attribute before editing it by "attrib -R Local.pm" command.
    Note3: If the end of line code seems to be broken in your "notepad", you can use "wordpad" instead with "Word Wrap" option set to "No Wrap".
    1. cd C:\xampp\perl\site\lib\DateTime\TimeZone
    2. Edit Local.pm to change "TimeZone" subroutine to return the fixed time zone. The time zone name, in the following case, 'Asia/Tokyo', is in the list of Win32.pm in C:\xampp\bugzilla-4.0.10\lib\DateTime\TimeZone\Local so you can pick the correct one from them.  For example, the time zone names for US will be either

          'Eastern Standard Time' => 'America/New_York'
          'Central Standard Time' => 'America/Chicago'
          'Mountain Standard Time' => 'America/Denver'
          'Pacific Standard Time' => 'America/Los_Angeles'

      The code change for, for example, Japan,  is the following.

      sub TimeZone {
           return DateTime::TimeZone->new(name => 'Asia/Tokyo');     << Change the code to return the fixed time zone
      #   my $class = shift; 
      << Comment out this line
      #   my $subclass = $class->_load_subclass(); 
      << Comment out this line
      #   for my $meth ( $subclass->Methods() ) { 
      << Comment out this line
      #         my $tz = $subclass->$meth(); 
      << Comment out this line
      #        return $tz if $tz; 
      << Comment out this line
      #   }  
      << Comment out this line
      #   die "Cannot determine local time zone\n"; 
      << Comment out this line
      }


      So you can change the time zone name accordingly. (For the bug information, please see "Cannot determine local time zone" error )


Configure Apache

Note: If the end of line code seems to be broken in your "notepad", you can use "wordpad" instead with "Word Wrap" option set to "No Wrap".

  1. Login as Windows Administrator account.
  2. cd C:\xampp\apache\conf
  3. Edit httpd.conf to add the following three lines after the line of "Include "conf/extra/httpd-perl.conf"
      # Perl settings
      Include "conf/extra/httpd-perl.conf"
     Alias /bugzilla "C:\xampp\bugzilla-4.0.10"   << Add this line
      PerlSwitches -IC:\xampp\bugzilla-4.0.10 -w -T     << Add this line
      PerlConfigRequire "C:\xampp\bugzilla-4.0.10\mod_perl.pl" << Add this line
  4. Continued : comment out the following two lines.
    # First, we configure the "default" to be a very restrictive set of
    # features.
    #
      <Directory />
         Options FollowSymLinks
    #   AllowOverride None << Comment out this line
         Order deny,allow
    #   Deny from all   << Comment out this line
      </Directory>
  5. cd C:\xampp\bugzilla-4.0.10
  6. Edit mod_perl.pl, comment out the following three lines.
    #use Apache2::SizeLimit;    << Comment out this line
    # This means that every httpd child will die after processing
    # a CGI if it is taking up more than 70MB of RAM all by itself.
    #Apache2::SizeLimit->set_max_unshared_size(70_000);  << Comment out this line
    ...
    PerlResponseHandler Bugzilla::ModPerl::ResponseHandler
    # PerlCleanupHandler Apache2::SizeLimit Bugzilla::ModPerl::CleanupHandler   << Comment out this line
    PerlOptions +ParseHeaders
    ...

Configure MySQL

Note: If the end of line code seems to be broken in your "notepad", you can use "wordpad" instead. with "Word Wrap" option set to "No Wrap".

  1. Login as Windows Administrator account.
  2. set PATH=C:\xampp\apache\bin;C:\xampp\perl\bin;C:\strawberry\c\bin;%PATH%    (if not being set before. )
  3. cd C:\xampp\mysql\bin
  4. Edit my.ini
  5. Add/modify the following lines in [mysqld] section.
    key_buffer = 16M
    max_allowed_packet = 4M     <<- modify this line
    table_cache = 64
    ...
    #bind-address="127.0.0.1"
    ft_min_word_len=2     <<- add this line
  6. cd C:\xampp\bugzilla-4.0.10
  7. Start MySQL by xampp-control.exe
  8. c:\xampp\perl\bin\perl.exe checksetup.pl
  9. Edit localconfig
       # Who we connect to the database as.
       $db_user='root' <<-- change this to the user name to be used. 'root' is recommended.
  10. c:\xampp\perl\bin\perl.exe checksetup.pl
  11. Input required values
    For example :
    SMTP server's hostname : the full qualified host name where Bugzilla is installed into.
    the e-mail address of the administrator : root@localhost.here ( Note: This is the admin user id for this Bugzilla. )
    the real name of the administrator : root
    a password for the administrator : passw0rd

    DO NOT FORGET BUGZILLA ADMIN USER/PASSWORD ! ( admin=root@localhost.here, passwd=passw0rd )

Start Bugzilla

In order to start Bugzilla, please :

  1. Login as Windows Administrator account.
  2. Start MySQL by xampp-control.exe
  3. Start Apache by xampp-control.exe

As a reference, in order to stop Bugzilla, please

  1. Login as Windows Administrator account.
  2. Stop Apache by xampp-control.exe
  3. Stop MySQL by xampp-control.exe

Initial Bugzilla setup for the TRS Workshop

  1. Login bugzilla (http://<full qualified your host name >/bugzilla) with admin user/pasword( admin=root@localhost.here, passwd=passw0rd )
  2. Administration -> Parameters -> Email -> mail_delivery_method : None (or Test), then "Save Changes"
  3. Administration -> Parameters -> Required Settings -> urlbase : Type Bugzilla uri (for example, http://<full qualified your host name >/bugzilla/), then "Save Changes". ( Note: The last slash character (/) is necessary. )
  4. Administration -> Default Preferences -> Timezone used to display dates and times -> Set the time zone name which is used as the workaround for the perl installation. ( For example, Asia/Tokyo ) then "Submit Changes"
  5. Restart Bugzilla by xampp-control.exe (Restarting Apache is fine. )
  6. Login bugzilla with admin user/pasword
  7. Add users. For example,
    1. Administration -> Users -> add a new user, user=bugs@localhost.here, passwd=bugs4me. Add "editbugs" group access for "User is a member of these groups", then "Save Changes"
  8. Add products. For example,
    1. Administration -> Products -> Add a product -> Add 'Integration Product' product
    2. Edit components -> Add a new component ... -> Add 'Client', 'Install', 'Server' components with bugs@localhost.here as a default assignee.
  9. Add Bugs. For example,
    1. Log out and Log in with bugs@localhost.here/bugs4me
    2. Create several bugs in 'Integration Product' product/'Server' components.