~ubuntu-branches/ubuntu/gutsy/bugzilla/gutsy-security

« back to all changes in this revision

Viewing changes to docs/txt/Bugzilla-Guide.txt

  • Committer: Bazaar Package Importer
  • Author(s): Francesco Paolo Lovergine, Alexis Sukrieh, Francesco P. Lovergine
  • Date: 2004-12-07 22:54:45 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20041207225445-ezb3nym06pow9mng
Tags: 2.16.7-0.2
* NMU 0-days due to serious/important bug solving which prevents
  bugzilla entering testing.

[ Alexis Sukrieh ]

* Post-inst won't fail anymore when no MySQL server is
  available. Added an automatic way of setting up the MySQL server if
  /etc/mysql/debian.cnf exists, will read values from it then.
  (closes: #250638)
* Using a MySQL user with '-' inside its name won't fail anymore.
  (closes unreported bug)
* Better handling on DBI connection errors. When DBI complains about
  something, user is not confused anymore by ugly error messages.
  (closes: #154249)
* Running checksetup.pl by hand won't break the Bugzilla's installation
  anymore. User can use it as he want without running dpkg-reconfigure.
  (closes: #200707)

[ Francesco P. Lovergine ]

* Now rules removes .cvsignore file which trashes /usr/share/bugzilla/template.
* Added virtual package httpd to the list of web server.
  (closes: #213784)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
The Bugzilla Guide - 2.16.4 Release
 
1
 
 
2
The Bugzilla Guide - 2.16.7 Release
2
3
 
3
4
Matthew P. Barnson
4
5
 
5
6
The Bugzilla Team
6
7
 
7
 
   2003-11-01
 
8
   2004-07-10
8
9
 
9
10
   This is the documentation for Bugzilla, the mozilla.org bug-tracking
10
11
   system. Bugzilla is an enterprise-class piece of software that powers
45
46
        4.2. Optional Additional Configuration
46
47
        4.3. Win32 Installation Notes
47
48
        4.4. Mac OS X Installation Notes
48
 
        4.5. Troubleshooting
 
49
        4.5. UNIX (non-root) Installation Notes
 
50
        4.6. Troubleshooting
49
51
 
50
52
   5. Administering Bugzilla
51
53
 
117
119
 
118
120
 
119
121
 
120
 
     Permission is granted to copy, distribute and/or modify this document
121
 
     under the terms of the GNU Free Documentation License, Version 1.1 or
122
 
     any later version published by the Free Software Foundation; with no
123
 
     Invariant Sections, no Front-Cover Texts, and with no Back-Cover
124
 
     Texts. A copy of the license is included in Appendix E.
 
122
   Permission is granted to copy, distribute and/or modify this document
 
123
   under the terms of the GNU Free Documentation License, Version 1.1 or
 
124
   any later version published by the Free Software Foundation; with no
 
125
   Invariant Sections, no Front-Cover Texts, and with no Back-Cover
 
126
   Texts. A copy of the license is included in Appendix E.
125
127
 
126
 
       --Copyright (c) 2000-2003 Matthew P. Barnson and The Bugzilla Team
 
128
   --Copyright (c) 2000-2003 Matthew P. Barnson and The Bugzilla Team
127
129
 
128
130
   If you have any questions regarding this document, its copyright, or
129
131
   publishing this document in non-electronic form, please contact The
169
171
 
170
172
1.3. New Versions
171
173
 
172
 
   This is the 2.16.4 version of The Bugzilla Guide. It is so named to
 
174
   This is the 2.16.7 version of The Bugzilla Guide. It is so named to
173
175
   match the version of Bugzilla it is disributed with. If you are
174
176
   reading this from any source other than those below, please check one
175
177
   of these mirrors to make sure you are reading an up-to-date version of
242
244
   Descriptions Appearance
243
245
   Use caution
244
246
 
245
 
 
246
247
   Caution
247
248
 
248
 
           Don't run with scissors!
 
249
   Don't run with scissors!
249
250
   Hint
250
251
 
251
 
 
252
252
   Tip
253
253
 
254
 
       Would you like a breath mint?
 
254
   Would you like a breath mint?
255
255
   Notes
256
256
 
257
 
 
258
257
   Note
259
258
 
260
 
        Dear John...
 
259
   Dear John...
261
260
   Warnings
262
261
 
263
 
 
264
262
   Warning
265
263
 
266
 
           Read this or the cat gets it.
 
264
   Read this or the cat gets it.
267
265
   File Names filename
268
266
   Directory Names directory
269
267
   Commands to be typed command
275
273
   Emphasized word word
276
274
   Term found in the glossary Bugzilla
277
275
   Code Example
278
 
   <para>
279
 
   Beginning and end of paragraph
280
 
   </para>
 
276
<para>
 
277
Beginning and end of paragraph
 
278
</para>
281
279
     _________________________________________________________________
282
280
 
283
281
Chapter 2. Introduction
364
362
 
365
363
   This section contains information for end-users of Bugzilla. There is
366
364
   a Bugzilla test installation, called Landfill, which you are welcome
367
 
   to play with (if it's up.) However, it does not necessarily have all
368
 
   Bugzilla features enabled, and often runs cutting-edge versions of
369
 
   Bugzilla for testing, so some things may work slightly differently
370
 
   than mentioned here.
 
365
   to play with (if it's up). However, not all of the Bugzilla
 
366
   installations there will necessarily have all Bugzilla features
 
367
   enabled, and different installations run different versions, so some
 
368
   things may not quite work as this document describes.
371
369
     _________________________________________________________________
372
370
 
373
371
3.1.1. Create a Bugzilla Account
376
374
   Consult with the administrator responsible for your installation of
377
375
   Bugzilla for the URL you should use to access it. If you're
378
376
   test-driving Bugzilla, use this URL:
379
 
   http://landfill.bugzilla.org/bugzilla-tip/
 
377
   http://landfill.bugzilla.org/bugzilla-2.16.7/
380
378
 
381
379
    1. Click the "Open a new Bugzilla account" link, enter your email
382
380
       address and, optionally, your name in the spaces provided, then
409
407
       several Components:
410
408
 
411
409
       Administration: Administration of a Bugzilla installation.
412
 
       Bugzilla-General: Anything that doesn't fit in the other components,
413
 
       or spans multiple components.
 
410
   Bugzilla-General: Anything that doesn't fit in the other components,
 
411
   or spans multiple components.
414
412
       Creating/Changing Bugs: Creating, changing, and viewing bugs.
415
 
       Documentation: The Bugzilla documentation, including The Bugzilla
416
 
       Guide.
 
413
   Documentation: The Bugzilla documentation, including The Bugzilla
 
414
   Guide.
417
415
       Email: Anything to do with email sent by Bugzilla.
418
416
       Installation: The installation process of Bugzilla.
419
 
       Query/Buglist: Anything to do with searching for bugs and viewing the
420
 
       buglists.
 
417
   Query/Buglist: Anything to do with searching for bugs and viewing the
 
418
   buglists.
421
419
       Reporting/Charting: Getting reports from Bugzilla.
422
 
       User Accounts: Anything about managing a user account from the user's
423
 
       perspective. Saved queries, creating accounts, changing passwords,
424
 
       logging in, etc.
425
 
       User Interface: General issues having to do with the user interface
426
 
       cosmetics (not functionality) including cosmetic issues, HTML
427
 
       templates, etc.
 
420
   User Accounts: Anything about managing a user account from the user's
 
421
   perspective. Saved queries, creating accounts, changing passwords,
 
422
   logging in, etc.
 
423
   User Interface: General issues having to do with the user interface
 
424
   cosmetics (not functionality) including cosmetic issues, HTML
 
425
   templates, etc.
428
426
    2. Status and Resolution: These define exactly what state the bug is
429
427
       in - from not even being confirmed as a bug, through to being
430
428
       fixed and the fix confirmed by Quality Assurance. The different
474
472
 
475
473
   The Bugzilla Search page is is the interface where you can find any
476
474
   bug report, comment, or patch currently in the Bugzilla system. You
477
 
   can play with it here: landfill.bugzilla.org/bugzilla-tip/query.cgi .
 
475
   can play with it here:
 
476
   http://landfill.bugzilla.org/bugzilla-2.16.7/query.cgi .
478
477
 
479
478
   The Search page has controls for selecting different possible values
480
479
   for all of the fields in a bug, as described above. Once you've
651
650
 
652
651
   Note
653
652
 
654
 
        The ability to watch other users may not be available in all Bugzilla
655
 
        installations. If you can't see it, ask your administrator.
 
653
   The ability to watch other users may not be available in all Bugzilla
 
654
   installations. If you can't see it, ask your administrator.
656
655
     _________________________________________________________________
657
656
 
658
657
3.3.3. Page Footer
687
686
 
688
687
   Note
689
688
 
690
 
        If you are running the very most recent version of Perl and MySQL
691
 
        (both the executables and development libraries) on your system, you
692
 
        can skip these manual installation steps for the Perl modules by using
693
 
        Bundle::Bugzilla; see Using Bundle::Bugzilla instead of manually
694
 
        installing Perl modules.
 
689
   If you are running the very most recent version of Perl and MySQL
 
690
   (both the executables and development libraries) on your system, you
 
691
   can skip these manual installation steps for the Perl modules by using
 
692
   Bundle::Bugzilla; see Using Bundle::Bugzilla instead of manually
 
693
   installing Perl modules.
695
694
 
696
695
   The software packages necessary for the proper running of Bugzilla
697
696
   (with download links) are:
716
715
         d. MIME::Parser (any) for the email interface
717
716
    4. The web server of your choice. Apache is highly recommended.
718
717
 
719
 
  Warning
720
 
 
721
 
          It is a good idea, while installing Bugzilla, to ensure that there is
722
 
          some kind of firewall between you and the rest of the Internet,
723
 
          because your machine may be insecure for periods during the install.
724
 
          Many installation steps require an active Internet connection to
725
 
          complete, but you must take care to ensure that at no point is your
726
 
          machine vulnerable to an attack.
727
 
 
728
 
  Note   
729
 
 
730
 
          Linux-Mandrake 8.0 includes every required and optional library for
731
 
          Bugzilla. The easiest way to install them is by using the urpmi
732
 
          utility. If you follow these commands, you should have everything you
733
 
          need for Bugzilla, and checksetup.pl should not complain about any
734
 
          missing libraries. You may already have some of these installed.
735
 
 
736
 
 
737
 
       bash# urpmi perl-mysql
738
 
       bash# urpmi perl-chart
739
 
       bash# urpmi perl-gd
740
 
       bash# urpmi perl-MailTools (for Bugzilla email integration)
741
 
       bash# urpmi apache-modules
 
718
   Warning
 
719
 
 
720
   It is a good idea, while installing Bugzilla, to ensure that there is
 
721
   some kind of firewall between you and the rest of the Internet,
 
722
   because your machine may be insecure for periods during the install.
 
723
   Many installation steps require an active Internet connection to
 
724
   complete, but you must take care to ensure that at no point is your
 
725
   machine vulnerable to an attack.
 
726
 
 
727
   Note
 
728
 
 
729
   Linux-Mandrake 8.0 includes every required and optional library for
 
730
   Bugzilla. The easiest way to install them is by using the urpmi
 
731
   utility. If you follow these commands, you should have everything you
 
732
   need for Bugzilla, and checksetup.pl should not complain about any
 
733
   missing libraries. You may already have some of these installed.
 
734
 
 
735
   bash# urpmi perl-mysql
 
736
   bash# urpmi perl-chart
 
737
   bash# urpmi perl-gd
 
738
   bash# urpmi perl-MailTools (for Bugzilla email integration)
 
739
   bash# urpmi apache-modules
742
740
     _________________________________________________________________
743
741
 
744
742
4.1.3. MySQL
748
746
 
749
747
   Note
750
748
 
751
 
        Many of the binary versions of MySQL store their data files in /var.
752
 
        On some Unix systems, this is part of a smaller root partition, and
753
 
        may not have room for your bug database. You can set the data
754
 
        directory as an option to configure if you build MySQL from source
755
 
        yourself.
 
749
   Many of the binary versions of MySQL store their data files in /var.
 
750
   On some Unix systems, this is part of a smaller root partition, and
 
751
   may not have room for your bug database. You can set the data
 
752
   directory as an option to configure if you build MySQL from source
 
753
   yourself.
756
754
 
757
755
   If you install from something other than an RPM or Debian package, you
758
756
   will need to add mysqld to your init scripts so the server daemon will
783
781
 
784
782
   Tip
785
783
 
786
 
       You can skip the following Perl module installation steps by
787
 
       installing Bundle::Bugzilla from CPAN, which installs all required
788
 
       modules for you.
789
 
 
790
 
       bash# perl -MCPAN -e 'install "Bundle::Bugzilla"'
791
 
 
792
 
       Bundle::Bugzilla doesn't include GD, Chart::Base, or MIME::Parser,
793
 
       which are not essential to a basic Bugzilla install. If installing
794
 
       this bundle fails, you should install each module individually to
795
 
       isolate the problem.
 
784
   You can skip the following Perl module installation steps by
 
785
   installing Bundle::Bugzilla from CPAN, which installs all required
 
786
   modules for you.
 
787
 
 
788
   bash# perl -MCPAN -e 'install "Bundle::Bugzilla"'
 
789
 
 
790
   Bundle::Bugzilla doesn't include GD, Chart::Base, or MIME::Parser,
 
791
   which are not essential to a basic Bugzilla install. If installing
 
792
   this bundle fails, you should install each module individually to
 
793
   isolate the problem.
796
794
     _________________________________________________________________
797
795
 
798
796
4.1.5. Perl Modules
819
817
    3. bash# make test
820
818
    4. bash# make install
821
819
 
822
 
 Warning
 
820
   Warning
823
821
 
824
 
         Many people complain that Perl modules will not install for them. Most
825
 
         times, the error messages complain that they are missing a file in
826
 
         "@INC". Virtually every time, this error is due to permissions being
827
 
         set too restrictively for you to compile Perl modules or not having
828
 
         the necessary Perl development libraries installed on your system.
829
 
         Consult your local UNIX systems administrator for help solving these
830
 
         permissions issues; if you are the local UNIX sysadmin, please consult
831
 
         the newsgroup/mailing list for further assistance or hire someone to
832
 
         help you out.
 
822
   Many people complain that Perl modules will not install for them. Most
 
823
   times, the error messages complain that they are missing a file in
 
824
   "@INC". Virtually every time, this error is due to permissions being
 
825
   set too restrictively for you to compile Perl modules or not having
 
826
   the necessary Perl development libraries installed on your system.
 
827
   Consult your local UNIX systems administrator for help solving these
 
828
   permissions issues; if you are the local UNIX sysadmin, please consult
 
829
   the newsgroup/mailing list for further assistance or hire someone to
 
830
   help you out.
833
831
     _________________________________________________________________
834
832
 
835
833
4.1.5.1. DBI
887
885
 
888
886
   Note
889
887
 
890
 
        The Perl GD library requires some other libraries that may or may not
891
 
        be installed on your system, including libpng and libgd. The full
892
 
        requirements are listed in the Perl GD library README. If compiling GD
893
 
        fails, it's probably because you're missing a required library.
 
888
   The Perl GD library requires some other libraries that may or may not
 
889
   be installed on your system, including libpng and libgd. The full
 
890
   requirements are listed in the Perl GD library README. If compiling GD
 
891
   fails, it's probably because you're missing a required library.
894
892
     _________________________________________________________________
895
893
 
896
894
4.1.5.6. Chart::Base (optional)
920
918
 
921
919
   Note
922
920
 
923
 
        We strongly recommend Apache as the web server to use. The Bugzilla
924
 
        Guide installation instructions, in general, assume you are using
925
 
        Apache. If you have got Bugzilla working using another webserver,
926
 
        please share your experiences with us.
 
921
   We strongly recommend Apache as the web server to use. The Bugzilla
 
922
   Guide installation instructions, in general, assume you are using
 
923
   Apache. If you have got Bugzilla working using another webserver,
 
924
   please share your experiences with us.
927
925
 
928
926
   You'll want to make sure that your web server will run any file with
929
927
   the .cgi extension as a CGI and not just display it. If you're using
933
931
 
934
932
   With Apache you'll also want to make sure that within the httpd.conf
935
933
   file the line:
936
 
   Options ExecCGI
937
 
   AllowOverride Limit
 
934
Options ExecCGI
 
935
AllowOverride Limit
938
936
 
939
937
   is in the stanza that covers the directories into which you intend to
940
938
   put the bugzilla .html and .cgi files.
941
939
 
942
940
   Note
943
941
 
944
 
        AllowOverride Limit allows the use of a Deny statement in the
945
 
        .htaccess file generated by checksetup.pl
946
 
 
947
 
        Users of older versions of Apache may find the above lines in the
948
 
        srm.conf and access.conf files, respecitvely.
949
 
 
950
 
 Warning
951
 
 
952
 
         There are important files and directories that should not be a served
953
 
         by the HTTP server - most files in the "data" and "shadow" directories
954
 
         and the "localconfig" file. You should configure your HTTP server to
955
 
         not serve these files. Failure to do so will expose critical passwords
956
 
         and other data. Please see .htaccess files and security for details on
957
 
         how to do this for Apache; the checksetup.pl script should create
958
 
         appropriate .htaccess files for you.
 
942
   AllowOverride Limit allows the use of a Deny statement in the
 
943
   .htaccess file generated by checksetup.pl
 
944
 
 
945
   Users of older versions of Apache may find the above lines in the
 
946
   srm.conf and access.conf files, respecitvely.
 
947
 
 
948
   Warning
 
949
 
 
950
   There are important files and directories that should not be a served
 
951
   by the HTTP server - most files in the "data" and "shadow" directories
 
952
   and the "localconfig" file. You should configure your HTTP server to
 
953
   not serve these files. Failure to do so will expose critical passwords
 
954
   and other data. Please see .htaccess files and security for details on
 
955
   how to do this for Apache; the checksetup.pl script should create
 
956
   appropriate .htaccess files for you.
959
957
     _________________________________________________________________
960
958
 
961
959
4.1.7. Bugzilla
968
966
 
969
967
   Tip
970
968
 
971
 
       If you symlink the bugzilla directory into your Apache's HTML
972
 
       heirarchy, you may receive Forbidden errors unless you add the
973
 
       "FollowSymLinks" directive to the <Directory> entry for the HTML root
974
 
       in httpd.conf.
 
969
   If you symlink the bugzilla directory into your Apache's HTML
 
970
   heirarchy, you may receive Forbidden errors unless you add the
 
971
   "FollowSymLinks" directive to the <Directory> entry for the HTML root
 
972
   in httpd.conf.
975
973
 
976
974
   Once all the files are in a web accessible directory, make that
977
975
   directory writable by your webserver's user. This is a temporary step
985
983
   the following Perl one-liner, but I suggest using the symlink approach
986
984
   to avoid upgrade hassles.
987
985
 
988
 
   perl -pi -e
989
 
           's@#\!/usr/bonsaitools/bin/perl@#\!/usr/bin/perl@' *cgi *pl Bug.pm
990
 
           processmail syncshadowdb
 
986
perl -pi -e
 
987
        's@#\!/usr/bonsaitools/bin/perl@#\!/usr/bin/perl@' *cgi *pl Bug.pm
 
988
        processmail syncshadowdb
991
989
 
992
990
   Change /usr/bin/perl to match the location of Perl on your machine.
993
991
     _________________________________________________________________
1024
1022
 
1025
1023
   Remember to set <bugs_password> to some unique password.
1026
1024
 
 
1025
   If you are using MySQL 4.0 or newer, enter:
 
1026
 
 
1027
   mysql> GRANT SELECT,INSERT,UPDATE,DELETE,INDEX, ALTER,CREATE,DROP,LOCK
 
1028
   TABLES,CREATE TEMPORARY TABLES,REFERENCES ON bugs.* TO bugs@localhost
 
1029
   IDENTIFIED BY '<bugs_password>';
 
1030
   mysql> FLUSH PRIVILEGES;
 
1031
 
 
1032
   If you are using an older version of MySQL, the LOCK TABLES and CREATE
 
1033
   TEMPORARY TABLES permissions need to be removed from the list:
 
1034
 
1027
1035
   mysql> GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,
1028
1036
   ALTER,CREATE,DROP,REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY
1029
1037
   '<bugs_password>';
1030
1038
   mysql> FLUSH PRIVILEGES;
1031
 
 
1032
 
   Note
1033
 
 
1034
 
        If you are using MySQL 4, the bugs user also needs to be granted the
1035
 
        LOCK TABLES and CREATE TEMPORARY TABLES permissions.
1036
1039
     _________________________________________________________________
1037
1040
 
1038
1041
4.1.9. checksetup.pl
1067
1070
 
1068
1071
   Note
1069
1072
 
1070
 
        The checksetup.pl script is designed so that you can run it at any
1071
 
        time without causing harm. You should run it after any upgrade to
1072
 
        Bugzilla.
1073
 
     _________________________________________________________________
1074
 
 
1075
 
4.1.10. Configuring Bugzilla
 
1073
   The checksetup.pl script is designed so that you can run it at any
 
1074
   time without causing harm. You should run it after any upgrade to
 
1075
   Bugzilla.
 
1076
     _________________________________________________________________
 
1077
 
 
1078
4.1.10. Mail Transfer Agent (MTA)
 
1079
 
 
1080
   Bugzilla is dependent on the availability of an e-mail system for its
 
1081
   user authentication and for other tasks.
 
1082
 
 
1083
   On Linux, any Sendmail-compatible MTA (Mail Transfer Agent) will
 
1084
   suffice. Sendmail, Postfix, qmail and Exim are examples of common
 
1085
   MTAs. Sendmail is the original Unix MTA, but the others are easier to
 
1086
   configure, and therefore many people replace Sendmail with Postfix or
 
1087
   Exim. They are drop-in replacements, so that Bugzilla will not
 
1088
   distinguish between them.
 
1089
 
 
1090
   Consult the manual for the specific MTA you choose for detailed
 
1091
   installation instructions. Each of these programs will have their own
 
1092
   configuration files where you must configure certain parameters to
 
1093
   ensure that the mail is delivered properly. They are implemented as
 
1094
   services, and you should ensure that the MTA is in the auto-start list
 
1095
   of services for the machine.
 
1096
 
 
1097
   If a simple mail sent with the command-line 'mail' program succeeds,
 
1098
   then Bugzilla should also be fine.
 
1099
     _________________________________________________________________
 
1100
 
 
1101
4.1.11. Configuring Bugzilla
1076
1102
 
1077
1103
   You should run through the parameters on the Edit Parameters page
1078
1104
   (link in the footer) and set them all to appropriate values. They key
1128
1154
 
1129
1155
   cd <your-bugzilla-directory> ; ./whineatnews.pl
1130
1156
 
1131
 
   Tip   
1132
 
 
1133
 
          Depending on your system, crontab may have several manpages. The
1134
 
          following command should lead you to the most useful page for this
1135
 
          purpose:
1136
 
 
1137
 
       man 5 crontab
 
1157
   Tip
 
1158
 
 
1159
   Depending on your system, crontab may have several manpages. The
 
1160
   following command should lead you to the most useful page for this
 
1161
   purpose:
 
1162
   man 5 crontab
1138
1163
     _________________________________________________________________
1139
1164
 
1140
1165
4.2.4. LDAP Authentication
1141
1166
 
1142
 
  Warning
 
1167
   Warning
1143
1168
 
1144
 
          This information on using the LDAP authentication options with
1145
 
          Bugzilla is old, and the authors do not know of anyone who has tested
1146
 
          it. Approach with caution.
 
1169
   This information on using the LDAP authentication options with
 
1170
   Bugzilla is old, and the authors do not know of anyone who has tested
 
1171
   it. Approach with caution.
1147
1172
 
1148
1173
   The existing authentication scheme for Bugzilla uses email addresses
1149
1174
   as the primary user ID, and a password to authenticate that user. All
1224
1249
 
1225
1250
   Note
1226
1251
 
1227
 
        If you are using an alternate provider of webdot services for graphing
1228
 
        (as described when viewing editparams.cgi in your web browser), you
1229
 
        will need to change the ip address in data/webdot/.htaccess to the ip
1230
 
        address of the webdot server that you are using.
 
1252
   If you are using an alternate provider of webdot services for graphing
 
1253
   (as described when viewing editparams.cgi in your web browser), you
 
1254
   will need to change the ip address in data/webdot/.htaccess to the ip
 
1255
   address of the webdot server that you are using.
1231
1256
 
1232
1257
   The default .htaccess file may not provide adequate access
1233
1258
   restrictions, depending on your web server configuration. Be sure to
1237
1262
   /usr/local/bugzilla . You should have this <Directory> entry in your
1238
1263
   httpd.conf file:
1239
1264
 
1240
 
     <Directory /usr/local/bugzilla/>
1241
 
     Options +FollowSymLinks +Indexes +Includes +ExecCGI
1242
 
     AllowOverride All
1243
 
   </Directory>
 
1265
  <Directory /usr/local/bugzilla/>
 
1266
  Options +FollowSymLinks +Indexes +Includes +ExecCGI
 
1267
  AllowOverride All
 
1268
</Directory>
1244
1269
 
1245
1270
   The important part above is "AllowOverride All" . Without that, the
1246
1271
   .htaccess file created by checksetup.pl will not have sufficient
1278
1303
 
1279
1304
   Warning
1280
1305
 
1281
 
           After that warning, here's the situation for 2.16 and Windows. It
1282
 
           doesn't work at all out of the box. You are almost certainly better
1283
 
           off getting the 2.17 version from CVS (after consultation with the
1284
 
           Bugzilla Team to make sure you are pulling on a stable day) because
1285
 
           we'll be doing a load of work to make the Win32 experience more
1286
 
           pleasant than it is now.
 
1306
   After that warning, here's the situation for 2.16 and Windows. It
 
1307
   doesn't work at all out of the box. You are almost certainly better
 
1308
   off getting the 2.17 version from CVS (after consultation with the
 
1309
   Bugzilla Team to make sure you are pulling on a stable day) because
 
1310
   we'll be doing a load of work to make the Win32 experience more
 
1311
   pleasant than it is now.
1287
1312
 
1288
1313
   If you still want to try this, to have any hope of getting it to work,
1289
1314
   you'll need to apply the mail patch from bug 124174. After that,
1298
1323
 
1299
1324
   Note
1300
1325
 
1301
 
        You should be familiar with, and cross-reference, the rest of the
1302
 
        Bugzilla Installation section while performing your Win32
1303
 
        installation.
 
1326
   You should be familiar with, and cross-reference, the rest of the
 
1327
   Bugzilla Installation section while performing your Win32
 
1328
   installation.
1304
1329
 
1305
 
        Making Bugzilla work on Microsoft Windows is no picnic. Support for
1306
 
        Win32 has improved dramatically in the last few releases, but, if you
1307
 
        choose to proceed, you should be a very skilled Windows Systems
1308
 
        Administrator with strong troubleshooting abilities, a high tolerance
1309
 
        for pain, and moderate perl skills. Bugzilla on NT requires hacking
1310
 
        source code and implementing some advanced utilities. What follows is
1311
 
        the recommended installation procedure for Win32; additional
1312
 
        suggestions are provided in Appendix A .
 
1330
   Making Bugzilla work on Microsoft Windows is no picnic. Support for
 
1331
   Win32 has improved dramatically in the last few releases, but, if you
 
1332
   choose to proceed, you should be a very skilled Windows Systems
 
1333
   Administrator with strong troubleshooting abilities, a high tolerance
 
1334
   for pain, and moderate perl skills. Bugzilla on NT requires hacking
 
1335
   source code and implementing some advanced utilities. What follows is
 
1336
   the recommended installation procedure for Win32; additional
 
1337
   suggestions are provided in Appendix A .
1313
1338
    1. Install Apache Web Server for Windows, and copy the Bugzilla files
1314
1339
       somewhere Apache can serve them. Please follow all the
1315
1340
       instructions referenced in Bugzilla Installation regarding your
1316
1341
       Apache configuration, particularly instructions regarding the
1317
1342
       "AddHandler" parameter and "ExecCGI" .
1318
1343
 
1319
 
     Note
 
1344
   Note
1320
1345
 
1321
 
          You may also use Internet Information Server or Personal Web Server
1322
 
          for this purpose. However, setup is quite different. If ActivePerl
1323
 
          doesn't seem to handle your file associations correctly (for .cgi and
1324
 
          .pl files), please consult Appendix A .
1325
 
          If you are going to use IIS, if on Windows NT you must be updated to
1326
 
          at least Service Pack 4. Windows 2000 ships with a sufficient version
1327
 
          of IIS.
 
1346
   You may also use Internet Information Server or Personal Web Server
 
1347
   for this purpose. However, setup is quite different. If ActivePerl
 
1348
   doesn't seem to handle your file associations correctly (for .cgi and
 
1349
   .pl files), please consult Appendix A .
 
1350
   If you are going to use IIS, if on Windows NT you must be updated to
 
1351
   at least Service Pack 4. Windows 2000 ships with a sufficient version
 
1352
   of IIS.
1328
1353
    2. Install ActivePerl for Windows. Check
1329
1354
       http://aspn.activestate.com/ASPN/Downloads/ActivePerl for a
1330
1355
       current compiled binary.
1339
1364
       AppConfig and Template should be obtained from OpenInteract using
1340
1365
       the instructions on the Template Toolkit web site .
1341
1366
 
1342
 
       Note
 
1367
   Note
1343
1368
 
1344
 
            You can find a list of modules at
1345
 
            http://www.activestate.com/PPMPackages/zips/5xx-builds-only/ or
1346
 
            http://www.activestate.com/PPMPackages/5.6plus
1347
 
       The syntax for ppm is: C:> ppm <modulename>
 
1369
   You can find a list of modules at
 
1370
   http://www.activestate.com/PPMPackages/zips/5xx-builds-only/ or
 
1371
   http://www.activestate.com/PPMPackages/5.6plus
 
1372
       The syntax for ppm is: C:> ppm install <modulename>
1348
1373
       Example 4-1. Installing ActivePerl ppd Modules on Microsoft
1349
1374
       Windows
1350
 
       C:> ppm DBD-Mysql
 
1375
 
 
1376
ppm repository add oi http://openinteract.sourceforge.net/ppmpackages
 
1377
ppm install DBD-mysql
 
1378
ppm install Template-Toolkit
 
1379
ppm install TimeDate
 
1380
 
 
1381
 
1351
1382
       Watch your capitalization!
1352
1383
       ActiveState's 5.6Plus directory also contains an AppConfig ppm, so
1353
1384
       you might see the following error when trying to install the
1361
1392
       the ppd file explicitly via in the install command, f.e.:
1362
1393
       Example 4-2. Installing OpenInteract ppd Modules manually on
1363
1394
       Microsoft Windows
1364
 
       install C:\AppConfig.ppd
 
1395
       install C:\AppConfig.ppd 
1365
1396
    4. Install MySQL for NT.
1366
1397
 
1367
 
     Note
 
1398
   Note
1368
1399
 
1369
 
          You can download MySQL for Windows NT from MySQL.com . Some find it
1370
 
          helpful to use the WinMySqlAdmin utility, included with the download,
1371
 
          to set up the database.
 
1400
   You can download MySQL for Windows NT from MySQL.com . Some find it
 
1401
   helpful to use the WinMySqlAdmin utility, included with the download,
 
1402
   to set up the database.
1372
1403
    5. Setup MySQL
1373
1404
         a. C:> C:\mysql\bin\mysql -u root mysql
1374
1405
         b. mysql> DELETE FROM user WHERE Host='localhost' AND User='';
1387
1418
         h. C:> C:\mysql\bin\mysqladmin -u root -p reload
1388
1419
    6. Edit checksetup.pl in your Bugzilla directory. Change this line:
1389
1420
 
1390
 
       my $webservergid =
1391
 
                   getgrnam($my_webservergroup);
 
1421
my $webservergid =
 
1422
            getgrnam($my_webservergroup);
1392
1423
 
1393
1424
       to
1394
1425
 
1395
 
       my $webservergid =
1396
 
                 $my_webservergroup;
 
1426
my $webservergid =
 
1427
          $my_webservergroup;
1397
1428
 
1398
1429
       or the name of the group you wish to own the files explicitly:
1399
1430
 
1400
 
       my $webservergid =
1401
 
                 'Administrators'
 
1431
my $webservergid =
 
1432
          'Administrators'
1402
1433
 
1403
1434
    7. Run checksetup.pl from the Bugzilla directory.
1404
1435
    8. Edit localconfig to suit your requirements. Set $db_pass to your
1405
1436
       "bugs_password" from step 5.d , and $webservergroup to "8" .
1406
1437
 
1407
 
      Note
 
1438
       Note
1408
1439
 
1409
 
           Not sure on the "8" for $webservergroup above. If it's wrong, please
1410
 
           send corrections.
 
1440
   Not sure on the "8" for $webservergroup above. If it's wrong, please
 
1441
   send corrections.
1411
1442
    9. Edit defparams.pl to suit your requirements. Particularly, set
1412
1443
       DefParam("maintainer") and DefParam("urlbase") to match your
1413
1444
       install.
1414
1445
 
1415
 
    Note
 
1446
   Note
1416
1447
 
1417
 
         This is yet another step I'm not sure of, since the maintainer of this
1418
 
         documentation does not maintain Bugzilla on NT. If you can confirm or
1419
 
         deny that this step is required, please let me know.
 
1448
   This is yet another step I'm not sure of, since the maintainer of this
 
1449
   documentation does not maintain Bugzilla on NT. If you can confirm or
 
1450
   deny that this step is required, please let me know.
1420
1451
   10.
1421
1452
 
1422
 
    Note
 
1453
   Note
1423
1454
 
1424
 
         There are several alternatives to Sendmail that will work on Win32.
1425
 
         The one mentioned here is a suggestion , not a requirement. Some other
1426
 
         mail packages that can work include BLAT , Windmail , Mercury Sendmail
1427
 
         , and the CPAN Net::SMTP Perl module (available in .ppm). Every option
1428
 
         requires some hacking of the Perl scripts for Bugzilla to make it
1429
 
         work. The option here simply requires the least.
 
1455
   There are several alternatives to Sendmail that will work on Win32.
 
1456
   The one mentioned here is a suggestion , not a requirement. Some other
 
1457
   mail packages that can work include BLAT , Windmail , Mercury Sendmail
 
1458
   , and the CPAN Net::SMTP Perl module (available in .ppm). Every option
 
1459
   requires some hacking of the Perl scripts for Bugzilla to make it
 
1460
   work. The option here simply requires the least.
1430
1461
         1. Download NTsendmail, available from www.ntsendmail.com . You
1431
1462
            must have a "real" mail server which allows you to relay off
1432
1463
            it in your $ENV{"NTsendmail"} (which you should probably
1434
1465
         2. Put ntsendmail.pm into your .\perl\lib directory.
1435
1466
         3. Add to globals.pl:
1436
1467
 
1437
 
            # these settings configure the NTsendmail
1438
 
                          process use NTsendmail;
1439
 
                          $ENV{"NTsendmail"}="your.smtpserver.box";
1440
 
                          $ENV{"NTsendmail_debug"}=1;
1441
 
                          $ENV{"NTsendmail_max_tries"}=5;
1442
 
 
1443
 
    Note
1444
 
 
1445
 
         Some mention to also edit $db_pass in globals.pl to be your
1446
 
         "bugs_password" . Although this may get you around some problem
1447
 
         authenticating to your database, since globals.pl is not normally
1448
 
         restricted by .htaccess , your database password is exposed to whoever
1449
 
         uses your web server.
 
1468
# these settings configure the NTsendmail
 
1469
              process use NTsendmail;
 
1470
              $ENV{"NTsendmail"}="your.smtpserver.box";
 
1471
              $ENV{"NTsendmail_debug"}=1;
 
1472
              $ENV{"NTsendmail_max_tries"}=5;
 
1473
 
 
1474
   Note
 
1475
 
 
1476
   Some mention to also edit $db_pass in globals.pl to be your
 
1477
   "bugs_password" . Although this may get you around some problem
 
1478
   authenticating to your database, since globals.pl is not normally
 
1479
   restricted by .htaccess , your database password is exposed to whoever
 
1480
   uses your web server.
1450
1481
         4. Find and comment out all occurences of " open(SENDMAIL " in
1451
1482
            your Bugzilla directory. Then replace them with:
1452
1483
 
1453
 
       # new sendmail functionality my $mail=new
1454
 
                     NTsendmail; my $from="bugzilla\@your.machine.name.tld"; my
1455
 
                     $to=$login; my $subject=$urlbase;
1456
 
                     $mail->send($from,$to,$subject,$msg);
1457
 
 
1458
 
Note   
1459
 
 
1460
 
        Some have found success using the commercial product, Windmail . You
1461
 
        could try replacing your sendmail calls with:
1462
 
 
1463
 
     open SENDMAIL,
1464
 
                     "|\"C:/General/Web/tools/Windmail 4.0 Beta/windmail\" -t >
1465
 
                     mail.log";
1466
 
 
1467
 
     or something to that effect.
 
1484
# new sendmail functionality my $mail=new
 
1485
              NTsendmail; my $from="bugzilla\@your.machine.name.tld"; my
 
1486
              $to=$login; my $subject=$urlbase;
 
1487
              $mail->send($from,$to,$subject,$msg);
 
1488
 
 
1489
   Note
 
1490
 
 
1491
   Some have found success using the commercial product, Windmail . You
 
1492
   could try replacing your sendmail calls with:
 
1493
open SENDMAIL,
 
1494
                "|\"C:/General/Web/tools/Windmail 4.0 Beta/windmail\" -t >
 
1495
                mail.log";
 
1496
 
 
1497
   or something to that effect.
1468
1498
   11. Change all references in all files from processmail to
1469
1499
       processmail.pl , and rename processmail to processmail.pl .
1470
1500
 
1471
 
       Note
 
1501
   Note
1472
1502
 
1473
 
            Many think this may be a change we want to make for main-tree
1474
 
            Bugzilla. It's painless for the UNIX folks, and will make the Win32
1475
 
            people happier.
 
1503
   Many think this may be a change we want to make for main-tree
 
1504
   Bugzilla. It's painless for the UNIX folks, and will make the Win32
 
1505
   people happier.
1476
1506
 
1477
1507
   Note
1478
1508
 
1480
1510
   NTsendmail or the other options listed here. You can change
1481
1511
   processmail.pl to make this work.
1482
1512
 
1483
 
 
1484
1513
my $smtp = Net::SMTP->new('<Name of your SMTP server>');   #connect to SMTP ser
1485
1514
ver
1486
1515
$smtp->mail('<your name>@<you smpt server>');# use the sender's adress here
1497
1526
 
1498
1527
   here is a test mail program for Net::SMTP:
1499
1528
 
1500
 
   use Net::SMTP;
1501
 
    my $smtp = Net::SMTP->new('<Name of your SMTP server', Timeout => 30, Debug
1502
 
   => 1, ); # connect to SMTP server
1503
 
                    $smtp->auth;
1504
 
                   $smtp->mail('you@yourcompany.com');# use the sender's adress
1505
 
   here
1506
 
                   $smtp->to('someotherAddress@someotherdomain.com'); #
1507
 
   recipient's address
1508
 
                   $smtp->data();  # Start the mail
1509
 
                   $smtp->datasend('test');
1510
 
                   $smtp->dataend();   # Finish sending the mail
1511
 
                   $smtp->quit;    # Close the SMTP connection
1512
 
   exit;
 
1529
use Net::SMTP;
 
1530
 my $smtp = Net::SMTP->new('<Name of your SMTP server', Timeout => 30, Debug
 
1531
=> 1, ); # connect to SMTP server
 
1532
                 $smtp->auth;
 
1533
                $smtp->mail('you@yourcompany.com');# use the sender's adress
 
1534
here
 
1535
                $smtp->to('someotherAddress@someotherdomain.com'); #
 
1536
recipient's address
 
1537
                $smtp->data();  # Start the mail
 
1538
                $smtp->datasend('test');
 
1539
                $smtp->dataend();   # Finish sending the mail
 
1540
                $smtp->quit;    # Close the SMTP connection
 
1541
exit;
1513
1542
 
1514
1543
 
1515
1544
 
1516
1545
 
1517
1546
   12.
1518
1547
 
1519
 
    Note
 
1548
   Note
1520
1549
 
1521
 
         This step is optional if you are using IIS or another web server which
1522
 
         only decides on an interpreter based upon the file extension (.pl),
1523
 
         rather than the "shebang" line (#/usr/bonsaitools/bin/perl)
 
1550
   This step is optional if you are using IIS or another web server which
 
1551
   only decides on an interpreter based upon the file extension (.pl),
 
1552
   rather than the "shebang" line (#/usr/bonsaitools/bin/perl)
1524
1553
       Modify the path to perl on the first line (#!) of all files to
1525
1554
       point to your Perl installation, and add "perl" to the beginning
1526
1555
       of all Perl system calls that use a perl script as an argument.
1536
1565
       processmail:
1537
1566
 
1538
1567
 
1539
 
       system ("./processmail",@ARGLIST);
1540
 
               </programlisting> to
1541
 
               <programlisting>
1542
 
       system ("C:\\perl\\bin\\perl", "processmail", @ARGLIST);
 
1568
system ("./processmail",@ARGLIST);
 
1569
        </programlisting> to
 
1570
        <programlisting>
 
1571
system ("C:\\perl\\bin\\perl", "processmail", @ARGLIST);
1543
1572
 
1544
1573
 
1545
1574
 
1549
1578
       lines to createattachment.cgi and showattachment.cgi before the
1550
1579
       require 'CGI.pl'; line.
1551
1580
 
1552
 
       binmode(STDIN);
1553
 
       binmode(STDOUT);
1554
 
 
1555
 
 
1556
 
 
1557
 
      Note
1558
 
 
1559
 
           According to bug 62000 , the perl documentation says that you should
1560
 
           always use binmode() when dealing with binary files, but never when
1561
 
           dealing with text files. That seems to suggest that rather than
1562
 
           arbitrarily putting binmode() at the beginning of the attachment
1563
 
           files, there should be logic to determine if binmode() is needed or
1564
 
           not.
1565
 
 
1566
 
   Tip   
1567
 
 
1568
 
          If you are using IIS or Personal Web Server, you must add cgi
1569
 
          relationships to Properties -> Home directory (tab) -> Application
1570
 
          Settings (section) -> Configuration (button), such as:
1571
 
 
1572
 
 
1573
 
       .cgi to: <perl install directory>\perl.exe %s
1574
 
               %s .pl to: <perl install directory>\perl.exe %s %s
1575
 
               GET,HEAD,POST
1576
 
 
1577
 
       Change the path to Perl to match your install, of course.
 
1581
binmode(STDIN);
 
1582
binmode(STDOUT);
 
1583
 
 
1584
 
 
1585
 
 
1586
   Note
 
1587
 
 
1588
   According to bug 62000 , the perl documentation says that you should
 
1589
   always use binmode() when dealing with binary files, but never when
 
1590
   dealing with text files. That seems to suggest that rather than
 
1591
   arbitrarily putting binmode() at the beginning of the attachment
 
1592
   files, there should be logic to determine if binmode() is needed or
 
1593
   not.
 
1594
 
 
1595
   Tip
 
1596
 
 
1597
   If you are using IIS or Personal Web Server, you must add cgi
 
1598
   relationships to Properties -> Home directory (tab) -> Application
 
1599
   Settings (section) -> Configuration (button), such as:
 
1600
 
 
1601
.cgi to: <perl install directory>\perl.exe %s
 
1602
        %s .pl to: <perl install directory>\perl.exe %s %s
 
1603
        GET,HEAD,POST
 
1604
 
 
1605
   Change the path to Perl to match your install, of course.
1578
1606
     _________________________________________________________________
1579
1607
 
1580
1608
4.3.2. Additional Windows Tips
1591
1619
     Basically you need to add two String Keys in the registry at the
1592
1620
     following location:
1593
1621
 
1594
 
 
1595
1622
            HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Paramete
1596
1623
rs\ScriptMap
1597
1624
 
1601
1628
     The KB article only talks about .pl, but it goes into more detail
1602
1629
     and provides a perl test script.
1603
1630
 
1604
 
   Tip   
1605
 
 
1606
 
          If attempting to run Bugzilla 2.12 or older, you will need to remove
1607
 
          encrypt() calls from the Perl source. This is not necessary for
1608
 
          Bugzilla 2.13 and later, which includes the current release, Bugzilla
1609
 
          2.16.4.
1610
 
 
1611
 
          Example 4-3. Removing encrypt() for Windows NT Bugzilla version 2.12
1612
 
          or earlier
1613
 
 
1614
 
          Replace this:
1615
 
 
1616
 
       SendSQL("SELECT encrypt(" . SqlQuote($enteredpwd) .
1617
 
                 ", " . SQLQuote(substr($realcryptpwd, 0, 2)) . ")"); my
1618
 
                 $enteredcryptpwd = FetchOneColumn();
1619
 
 
1620
 
          with this:
1621
 
       my $enteredcryptpwd = $enteredpwd
1622
 
 
1623
 
          in cgi.pl.
 
1631
   Tip
 
1632
 
 
1633
   If attempting to run Bugzilla 2.12 or older, you will need to remove
 
1634
   encrypt() calls from the Perl source. This is not necessary for
 
1635
   Bugzilla 2.13 and later, which includes the current release, Bugzilla
 
1636
   2.16.7.
 
1637
 
 
1638
   Example 4-3. Removing encrypt() for Windows NT Bugzilla version 2.12
 
1639
   or earlier
 
1640
 
 
1641
   Replace this:
 
1642
SendSQL("SELECT encrypt(" . SqlQuote($enteredpwd) .
 
1643
          ", " . SQLQuote(substr($realcryptpwd, 0, 2)) . ")"); my
 
1644
          $enteredcryptpwd = FetchOneColumn();
 
1645
 
 
1646
   with this:
 
1647
   my $enteredcryptpwd = $enteredpwd
 
1648
 
 
1649
   in cgi.pl.
1624
1650
     _________________________________________________________________
1625
1651
 
1626
1652
4.4. Mac OS X Installation Notes
1664
1690
   And don't forget to run exit to get back to CPAN.
1665
1691
     _________________________________________________________________
1666
1692
 
1667
 
4.5. Troubleshooting
 
1693
4.5. UNIX (non-root) Installation Notes
 
1694
 
 
1695
4.5.1. Introduction
 
1696
 
 
1697
   If you are running a *NIX OS as non-root, either due to lack of access
 
1698
   (web hosts, for example) or for security reasons, this will detail how
 
1699
   to install Bugzilla on such a setup. It is recommended that you read
 
1700
   through the Bugzilla Installation first to get an idea on the
 
1701
   installation steps required. (These notes will reference to steps in
 
1702
   that guide.)
 
1703
     _________________________________________________________________
 
1704
 
 
1705
4.5.2. MySQL
 
1706
 
 
1707
   You may have MySQL installed as root. If you're setting up an account
 
1708
   with a web host, a MySQL account needs to be set up for you. From
 
1709
   there, you can create the bugs account, or use the account given to
 
1710
   you.
 
1711
 
 
1712
   Warning
 
1713
 
 
1714
   You may have problems trying to set up GRANT permissions to the
 
1715
   database. If you're using a web host, chances are that you have a
 
1716
   separate database which is already locked down (or one big database
 
1717
   with limited/no access to the other areas), but you may want to ask
 
1718
   your system adminstrator what the security settings are set to, and/or
 
1719
   run the GRANT command for you.
 
1720
 
 
1721
   Also, you will probably not be able to change the MySQL root user
 
1722
   password (for obvious reasons), so skip that step.
 
1723
     _________________________________________________________________
 
1724
 
 
1725
4.5.2.1. Running MySQL as Non-Root
 
1726
 
 
1727
4.5.2.1.1. The Custom Configuration Method
 
1728
 
 
1729
   Create a file .my.cnf in your home directory (using /home/foo in this
 
1730
   example) as follows....
 
1731
[mysqld]
 
1732
datadir=/home/foo/mymysql
 
1733
socket=/home/foo/mymysql/thesock
 
1734
port=8081
 
1735
 
 
1736
[mysql]
 
1737
socket=/home/foo/mymysql/thesock
 
1738
port=8081
 
1739
 
 
1740
[mysql.server]
 
1741
user=mysql
 
1742
basedir=/var/lib
 
1743
 
 
1744
[safe_mysqld]
 
1745
err-log=/home/foo/mymysql/the.log
 
1746
pid-file=/home/foo/mymysql/the.pid
 
1747
     _________________________________________________________________
 
1748
 
 
1749
4.5.2.1.2. The Custom Built Method
 
1750
 
 
1751
   You can install MySQL as a not-root, if you really need to. Build it
 
1752
   with PREFIX set to /home/foo/mysql, or use pre-installed executables,
 
1753
   specifying that you want to put all of the data files in
 
1754
   /home/foo/mysql/data. If there is another MySQL server running on the
 
1755
   system that you do not own, use the -P option to specify a TCP port
 
1756
   that is not in use.
 
1757
     _________________________________________________________________
 
1758
 
 
1759
4.5.2.1.3. Starting the Server
 
1760
 
 
1761
   After your mysqld program is built and any .my.cnf file is in place,
 
1762
   you must initialize the databases (ONCE).
 
1763
              bash$
 
1764
              mysql_install_db
 
1765
 
 
1766
   Then start the daemon with
 
1767
              bash$
 
1768
              safe_mysql &
 
1769
 
 
1770
   After you start mysqld the first time, you then connect to it as
 
1771
   "root" and GRANT permissions to other users. (Again, the MySQL root
 
1772
   account has nothing to do with the *NIX root account.)
 
1773
 
 
1774
   Note
 
1775
 
 
1776
   You will need to start the daemons yourself. You can either ask your
 
1777
   system administrator to add them to system startup files, or add a
 
1778
   crontab entry that runs a script to check on these daemons and restart
 
1779
   them if needed.
 
1780
 
 
1781
   Warning
 
1782
 
 
1783
   Do NOT run daemons or other services on a server without first
 
1784
   consulting your system administrator! Daemons use up system resources
 
1785
   and running one may be in violation of your terms of service for any
 
1786
   machine on which you are a user!
 
1787
     _________________________________________________________________
 
1788
 
 
1789
4.5.3. Perl
 
1790
 
 
1791
   On the extremely rare chance that you don't have Perl on the machine,
 
1792
   you will have to build the sources yourself. The following commands
 
1793
   should get your system installed with your own personal version of
 
1794
   Perl:
 
1795
        bash$
 
1796
        wget http://perl.com/CPAN/src/stable.tar.gz
 
1797
        bash$
 
1798
        tar zvxf stable.tar.gz
 
1799
        bash$
 
1800
        cd perl-5.8.1 (or whatever the version of Perl is called)
 
1801
        bash$
 
1802
        sh Configure -de -Dprefix=/home/foo/perl
 
1803
        bash$
 
1804
        make && make test && make install
 
1805
 
 
1806
   Once you have Perl installed into a directory (probably in
 
1807
   ~/perl/bin), you'll have to change the locations on the scripts, which
 
1808
   is detailed later on this page.
 
1809
     _________________________________________________________________
 
1810
 
 
1811
4.5.4. Perl Modules
 
1812
 
 
1813
   Installing the Perl modules as a non-root user is probably the hardest
 
1814
   part of the process. There are two different methods: a completely
 
1815
   independant Perl with its own modules, or personal modules using the
 
1816
   current (root installed) version of Perl. The independant method takes
 
1817
   up quite a bit of disk space, but is less complex, while the mixed
 
1818
   method only uses as much space as the modules themselves, but takes
 
1819
   more work to setup.
 
1820
     _________________________________________________________________
 
1821
 
 
1822
4.5.4.1. The Independant Method
 
1823
 
 
1824
   The independant method requires that you install your own personal
 
1825
   version of Perl, as detailed in the previous section. Once installed,
 
1826
   you can start the CPAN shell with the following command:
 
1827
 
 
1828
            bash$
 
1829
            /home/foo/perl/bin/perl -MCPAN -e 'shell'
 
1830
 
 
1831
   And then:
 
1832
 
 
1833
            cpan>
 
1834
            install Bundle::Bugzilla
 
1835
 
 
1836
   With this method, module installation will usually go a lot smoother,
 
1837
   but if you have any hang-ups, you can consult the next section.
 
1838
     _________________________________________________________________
 
1839
 
 
1840
4.5.4.2. The Mixed Method
 
1841
 
 
1842
   First, you'll need to configure CPAN to install modules in your home
 
1843
   directory. The CPAN FAQ says the following on this issue:
 
1844
 
 
1845
5)  I am not root, how can I install a module in a personal directory?
 
1846
 
 
1847
    You will most probably like something like this:
 
1848
 
 
1849
      o conf makepl_arg "LIB=~/myperl/lib \
 
1850
                         INSTALLMAN1DIR=~/myperl/man/man1 \
 
1851
                         INSTALLMAN3DIR=~/myperl/man/man3"
 
1852
    install Sybase::Sybperl
 
1853
 
 
1854
    You can make this setting permanent like all "o conf" settings with "o conf
 
1855
 commit".
 
1856
 
 
1857
    You will have to add ~/myperl/man to the MANPATH environment variable and a
 
1858
lso tell your Perl programs to
 
1859
    look into ~/myperl/lib, e.g. by including
 
1860
 
 
1861
      use lib "$ENV{HOME}/myperl/lib";
 
1862
 
 
1863
    or setting the PERL5LIB environment variable.
 
1864
 
 
1865
    Another thing you should bear in mind is that the UNINST parameter should n
 
1866
ever be set if you are not root.
 
1867
 
 
1868
   So, you will need to create a Perl directory in your home directory,
 
1869
   as well as the lib, man, man/man1, and man/man3 directories in that
 
1870
   Perl directory. Set the MANPATH variable and PERL5LIB variable, so
 
1871
   that the installation of the modules goes smoother. (Setting UNINST=0
 
1872
   in your "make install" options, on the CPAN first-time configuration,
 
1873
   is also a good idea.)
 
1874
 
 
1875
   After that, go into the CPAN shell:
 
1876
 
 
1877
            bash$
 
1878
            perl -MCPAN -e 'shell'
 
1879
 
 
1880
   From there, you will need to type in the above "o conf" command and
 
1881
   commit the changes. Then you can run through the installation:
 
1882
 
 
1883
            cpan>
 
1884
            install Bundle::Bugzilla
 
1885
 
 
1886
   Most of the module installation process should go smoothly. However,
 
1887
   you may have some problems with Template. When you first start, you
 
1888
   will want to try to install Template with the XS Stash options on. If
 
1889
   this doesn't work, it may spit out C compiler error messages and croak
 
1890
   back to the CPAN shell prompt. So, redo the install, and turn it off.
 
1891
   (In fact, say no to all of the Template questions.) It may also start
 
1892
   failing on a few of the tests. If the total tests passed is a
 
1893
   reasonable figure (90+%), force the install with the following
 
1894
   command:
 
1895
 
 
1896
            cpan>
 
1897
            force install Template
 
1898
 
 
1899
   You may also want to install the other optional modules:
 
1900
          cpan>
 
1901
          install GD
 
1902
          cpan>
 
1903
          install Chart::Base
 
1904
          cpan>
 
1905
          install MIME::Parser
 
1906
     _________________________________________________________________
 
1907
 
 
1908
4.5.5. HTTP Server
 
1909
 
 
1910
   Ideally, this also needs to be installed as root and run under a
 
1911
   special webserver account. As long as the web server will allow the
 
1912
   running of *.cgi files outside of a cgi-bin, and a way of denying web
 
1913
   access to certain files (such as a .htaccess file), you should be good
 
1914
   in this department.
 
1915
     _________________________________________________________________
 
1916
 
 
1917
4.5.5.1. Running Apache as Non-Root
 
1918
 
 
1919
   You can run Apache as a non-root user, but the port will need to be
 
1920
   set to one above 1024. If you type httpd -V, you will get a list of
 
1921
   the variables that your system copy of httpd uses. One of those,
 
1922
   namely HTTPD_ROOT, tells you where that installation looks for its
 
1923
   config information.
 
1924
 
 
1925
   From there, you can copy the config files to your own home directory
 
1926
   to start editing. When you edit those and then use the -d option to
 
1927
   override the HTTPD_ROOT compiled into the web server, you get control
 
1928
   of your own customized web server.
 
1929
 
 
1930
   Note
 
1931
 
 
1932
   You will need to start the daemons yourself. You can either ask your
 
1933
   system administrator to add them to system startup files, or add a
 
1934
   crontab entry that runs a script to check on these daemons and restart
 
1935
   them if needed.
 
1936
 
 
1937
   Warning
 
1938
 
 
1939
   Do NOT run daemons or other services on a server without first
 
1940
   consulting your system administrator! Daemons use up system resources
 
1941
   and running one may be in violation of your terms of service for any
 
1942
   machine on which you are a user!
 
1943
     _________________________________________________________________
 
1944
 
 
1945
4.5.6. Bugzilla
 
1946
 
 
1947
   Since you probably can't set up a symbolic link to
 
1948
   /usr/bonsaitools/bin/perl as a non-root user, you will need to hack
 
1949
   the scripts to point to the right Perl:
 
1950
 
 
1951
perl -pi -e
 
1952
        's@#\!/usr/bonsaitools/bin/perl@#\!/usr/bin/perl@' *cgi *pl Bug.pm
 
1953
        processmail syncshadowdb
 
1954
 
 
1955
   Change /usr/bin/perl to match the location of Perl on your machine. If
 
1956
   you had to install Perl as non-root, this would be the location in
 
1957
   your home directory.
 
1958
 
 
1959
   Note
 
1960
 
 
1961
   Version 2.17+ of Bugzilla now already has the scripts pointing to
 
1962
   /usr/bin/perl.
 
1963
 
 
1964
   Of course, the scripts will not work if they don't know the location
 
1965
   of your newly install Perl modules, so you will have to hack the
 
1966
   scripts to look for those, too:
 
1967
 
 
1968
perl -pi -e
 
1969
        's@use strict\;@use strict\; use lib \"/home/foo/perl/lib\"\;@'
 
1970
        *cgi *pl Bug.pm processmail syncshadowdb
 
1971
 
 
1972
   Change /home/foo/perl/lib to your personal Perl library directory. You
 
1973
   can probably skip this step if you are using the independant method of
 
1974
   Perl module installation.
 
1975
 
 
1976
   When you run ./checksetup.pl to create the localconfig file, it will
 
1977
   list the Perl modules it finds. If one is missing, go back and
 
1978
   double-check the module installation from the CPAN shell, then delete
 
1979
   the localconfig file and try again.
 
1980
 
 
1981
   Warning
 
1982
 
 
1983
   The one option in localconfig you might have problems with is the web
 
1984
   server group. If you can't successfully browse to the index.cgi (like
 
1985
   a Forbidden error), you may have to relax your permissions, and blank
 
1986
   out the web server group. Of course, this may pose as a security risk.
 
1987
   Having a properly jailed shell and/or limited access to shell accounts
 
1988
   may lessen the security risk, but use at your own risk.
 
1989
     _________________________________________________________________
 
1990
 
 
1991
4.6. Troubleshooting
1668
1992
 
1669
1993
   This section gives solutions to common Bugzilla installation problems.
1670
1994
     _________________________________________________________________
1671
1995
 
1672
 
4.5.1. Bundle::Bugzilla makes me upgrade to Perl 5.6.1
 
1996
4.6.1. Bundle::Bugzilla makes me upgrade to Perl 5.6.1
1673
1997
 
1674
1998
   Try executing perl -MCPAN -e 'install CPAN' and then continuing.
1675
1999
 
1682
2006
   commandline above should fix things.
1683
2007
     _________________________________________________________________
1684
2008
 
1685
 
4.5.2. DBD::Sponge::db prepare failed
 
2009
4.6.2. DBD::Sponge::db prepare failed
1686
2010
 
1687
2011
   The following error message may appear due to a bug in DBD::mysql
1688
2012
   (over which the Bugzilla team have no control):
1694
2018
 
1695
2019
   To fix this, go to <path-to-perl>/lib/DBD/sponge.pm in your Perl
1696
2020
   installation and replace
1697
 
    my $numFields;
1698
 
    if ($attribs->{'NUM_OF_FIELDS'}) {
1699
 
        $numFields = $attribs->{'NUM_OF_FIELDS'};
1700
 
    } elsif ($attribs->{'NAME'}) {
1701
 
        $numFields = @{$attribs->{NAME}};
 
2021
 my $numFields;
 
2022
 if ($attribs->{'NUM_OF_FIELDS'}) {
 
2023
     $numFields = $attribs->{'NUM_OF_FIELDS'};
 
2024
 } elsif ($attribs->{'NAME'}) {
 
2025
     $numFields = @{$attribs->{NAME}};
1702
2026
 
1703
2027
   by
1704
 
    my $numFields;
1705
 
    if ($attribs->{'NUM_OF_FIELDS'}) {
1706
 
        $numFields = $attribs->{'NUM_OF_FIELDS'};
1707
 
    } elsif ($attribs->{'NAMES'}) {
1708
 
        $numFields = @{$attribs->{NAMES}};
 
2028
 my $numFields;
 
2029
 if ($attribs->{'NUM_OF_FIELDS'}) {
 
2030
     $numFields = $attribs->{'NUM_OF_FIELDS'};
 
2031
 } elsif ($attribs->{'NAMES'}) {
 
2032
     $numFields = @{$attribs->{NAMES}};
1709
2033
 
1710
2034
   (note the S added to NAME.)
1711
2035
     _________________________________________________________________
1712
2036
 
1713
 
4.5.3. cannot chdir(/var/spool/mqueue)
 
2037
4.6.3. cannot chdir(/var/spool/mqueue)
1714
2038
 
1715
2039
   If you are installing Bugzilla on SuSE Linux, or some other
1716
2040
   distributions with "paranoid" security options, it is possible that
1722
2046
   problem.
1723
2047
     _________________________________________________________________
1724
2048
 
1725
 
4.5.4. Your vendor has not defined Fcntl macro O_NOINHERIT
 
2049
4.6.4. Your vendor has not defined Fcntl macro O_NOINHERIT
1726
2050
 
1727
2051
   This is caused by a bug in the version of File::Temp that is
1728
2052
   distributed with perl 5.6.0. Many minor variations of this error have
1729
2053
   been reported. Examples can be found in Figure 4-1.
1730
2054
 
1731
2055
   Figure 4-1. Other File::Temp error messages
1732
 
   Your vendor has not defined Fcntl macro O_NOINHERIT, used
1733
 
   at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 208.
1734
 
 
1735
 
   Your vendor has not defined Fcntl macro O_EXLOCK, used
1736
 
   at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 210.
1737
 
 
1738
 
   Your vendor has not defined Fcntl macro O_TEMPORARY, used
1739
 
   at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 233.
 
2056
Your vendor has not defined Fcntl macro O_NOINHERIT, used
 
2057
at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 208.
 
2058
 
 
2059
Your vendor has not defined Fcntl macro O_EXLOCK, used
 
2060
at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 210.
 
2061
 
 
2062
Your vendor has not defined Fcntl macro O_TEMPORARY, used
 
2063
at /usr/lib/perl5/site_perl/5.6.0/File/Temp.pm line 233.
1740
2064
 
1741
2065
   Numerous people have reported that upgrading to version 5.6.1 or
1742
2066
   higher solved the problem for them. A less involved fix is to apply
1743
2067
   the patch in Figure 4-2. The patch is also available as a patch file.
1744
2068
 
1745
2069
   Figure 4-2. Patch for File::Temp in Perl 5.6.0
1746
 
   --- File/Temp.pm.orig   Thu Feb  6 16:26:00 2003
1747
 
   +++ File/Temp.pm        Thu Feb  6 16:26:23 2003
1748
 
   @@ -205,6 +205,7 @@
1749
 
        # eg CGI::Carp
1750
 
        local $SIG{__DIE__} = sub {};
1751
 
        local $SIG{__WARN__} = sub {};
1752
 
   +    local *CORE::GLOBAL::die = sub {};
1753
 
        $bit = &$func();
1754
 
        1;
1755
 
      };
1756
 
   @@ -226,6 +227,7 @@
1757
 
        # eg CGI::Carp
1758
 
        local $SIG{__DIE__} = sub {};
1759
 
        local $SIG{__WARN__} = sub {};
1760
 
   +    local *CORE::GLOBAL::die = sub {};
1761
 
        $bit = &$func();
1762
 
        1;
1763
 
      };
 
2070
--- File/Temp.pm.orig   Thu Feb  6 16:26:00 2003
 
2071
+++ File/Temp.pm        Thu Feb  6 16:26:23 2003
 
2072
@@ -205,6 +205,7 @@
 
2073
     # eg CGI::Carp
 
2074
     local $SIG{__DIE__} = sub {};
 
2075
     local $SIG{__WARN__} = sub {};
 
2076
+    local *CORE::GLOBAL::die = sub {};
 
2077
     $bit = &$func();
 
2078
     1;
 
2079
   };
 
2080
@@ -226,6 +227,7 @@
 
2081
     # eg CGI::Carp
 
2082
     local $SIG{__DIE__} = sub {};
 
2083
     local $SIG{__WARN__} = sub {};
 
2084
+    local *CORE::GLOBAL::die = sub {};
 
2085
     $bit = &$func();
 
2086
     1;
 
2087
   };
1764
2088
     _________________________________________________________________
1765
2089
 
1766
2090
Chapter 5. Administering Bugzilla
1786
2110
       Set "usebuggroups" to "on" only if you may wish to restrict access
1787
2111
       to particular bugs to certain groups of users. I suggest leaving
1788
2112
       this parameter off while initially testing your Bugzilla.
 
2113
       For more information see Section 5.5.
1789
2114
    4. usebuggroupsentry: Bugzilla Products can have a group associated
1790
2115
       with them, so that certain users can only see bugs in certain
1791
2116
       products. When this parameter is set to "on", this places all
1809
2134
       database. Set "shadowdb" to e.g. "bug_shadowdb" if you will be
1810
2135
       running a *very* large installation of Bugzilla.
1811
2136
 
1812
 
     Note
 
2137
   Note
1813
2138
 
1814
 
          Enabling "shadowdb" can adversely affect the stability of your
1815
 
          installation of Bugzilla. You should regularly check that your
1816
 
          database is in sync. It is often advisable to force a shadow database
1817
 
          sync nightly via "cron".
 
2139
   Enabling "shadowdb" can adversely affect the stability of your
 
2140
   installation of Bugzilla. You should regularly check that your
 
2141
   database is in sync. It is often advisable to force a shadow database
 
2142
   sync nightly via "cron".
1818
2143
       If you use the "shadowdb" option, it is only natural that you
1819
2144
       should turn the "queryagainstshadowdb" option on as well.
1820
2145
       Otherwise you are replicating data into a shadow database for no
1854
2179
       wise idea to require comments when users resolve, reassign, or
1855
2180
       reopen bugs at the very least.
1856
2181
 
1857
 
     Note
 
2182
   Note
1858
2183
 
1859
 
          It is generally far better to require a developer comment when
1860
 
          resolving bugs than not. Few things are more annoying to bug database
1861
 
          users than having a developer mark a bug "fixed" without any comment
1862
 
          as to what the fix was (or even that it was truly fixed!)
 
2184
   It is generally far better to require a developer comment when
 
2185
   resolving bugs than not. Few things are more annoying to bug database
 
2186
   users than having a developer mark a bug "fixed" without any comment
 
2187
   as to what the fix was (or even that it was truly fixed!)
1863
2188
   12. supportwatchers: Turning on this option allows users to ask to
1864
2189
       receive copies of all a particular other user's bug email. This
1865
2190
       is, of course, subject to the groupset restrictions on the bug; if
1880
2205
   "super user" account, re-running checksetup.pl will again prompt you
1881
2206
   for this username and password.
1882
2207
 
1883
 
   Tip   
1884
 
 
1885
 
          If you wish to add more administrative users, you must use the MySQL
1886
 
          interface. Run "mysql" from the command line, and use these commands:
1887
 
 
1888
 
 
1889
 
       mysql> use bugs;
1890
 
       mysql> update profiles set groupset=0x7ffffffffffffff where login_name
1891
 
       = "(user's login name)";
1892
 
 
1893
 
       Yes, that is fourteen "f" 's. A whole lot of f-ing going on if you
1894
 
   want to create a new administator.
 
2208
   Tip
 
2209
 
 
2210
   If you wish to add more administrative users, you must use the MySQL
 
2211
   interface. Run "mysql" from the command line, and use these commands:
 
2212
 
 
2213
   mysql> use bugs;
 
2214
   mysql> update profiles set groupset=0x7fffffffffffffff where
 
2215
   login_name = "(user's login name)"; 
 
2216
 
 
2217
   Yes, that is fifteen "f" 's. A whole lot of f-ing going on if you want
 
2218
   to create a new administator.
1895
2219
     _________________________________________________________________
1896
2220
 
1897
2221
5.2.2. Managing Other Users
1908
2232
    2. Fill out the form presented. This page is self-explanatory. When
1909
2233
       done, click "Submit".
1910
2234
 
1911
 
    Note
 
2235
   Note
1912
2236
 
1913
 
         Adding a user this way will not send an email informing them of their
1914
 
         username and password. While useful for creating dummy accounts
1915
 
         (watchers which shuttle mail to another system, for instance, or email
1916
 
         addresses which are a mailing list), in general it is preferable to
1917
 
         log out and use the "New Account" button to create users, as it will
1918
 
         pre-populate all the required fields and also notify the user of her
1919
 
         account name and password.
 
2237
   Adding a user this way will not send an email informing them of their
 
2238
   username and password. While useful for creating dummy accounts
 
2239
   (watchers which shuttle mail to another system, for instance, or email
 
2240
   addresses which are a mailing list), in general it is preferable to
 
2241
   log out and use the "New Account" button to create users, as it will
 
2242
   pre-populate all the required fields and also notify the user of her
 
2243
   account name and password.
1920
2244
     _________________________________________________________________
1921
2245
 
1922
2246
5.2.2.2. Modifying Users
1952
2276
 
1953
2277
       Warning
1954
2278
 
1955
 
               Don't disable the administrator account!
1956
 
 
1957
 
      Note
1958
 
 
1959
 
           The user can still submit bugs via the e-mail gateway, if you set it
1960
 
           up, even if the disabled text field is filled in. The e-mail gateway
1961
 
           should not be enabled for secure installations of Bugzilla.
 
2279
   Don't disable the administrator account!
 
2280
 
 
2281
   Note
 
2282
 
 
2283
   The user can still submit bugs via the e-mail gateway, if you set it
 
2284
   up, even if the disabled text field is filled in. The e-mail gateway
 
2285
   should not be enabled for secure installations of Bugzilla.
1962
2286
     * <groupname>: If you have created some groups, e.g.
1963
2287
       "securitysensitive", then checkboxes will appear here to allow you
1964
2288
       to add users to, or remove them from, these groups.
2075
2399
 
2076
2400
   Note
2077
2401
 
2078
 
        Milestone options will only appear for a Product if you turned on the
2079
 
        "usetargetmilestone" Param in the "Edit Parameters" screen.
 
2402
   Milestone options will only appear for a Product if you turned on the
 
2403
   "usetargetmilestone" Param in the "Edit Parameters" screen.
2080
2404
 
2081
2405
   To create new Milestones, set Default Milestones, and set Milestone
2082
2406
   URL:
2092
2416
    4. From the Edit product screen, you can enter the URL of a page
2093
2417
       which gives information about your milestones and what they mean.
2094
2418
 
2095
 
     Tip
 
2419
   Tip
2096
2420
 
2097
 
         If you want your milestone document to be restricted so that it can
2098
 
         only be viewed by people in a particular Bugzilla group, the best way
2099
 
         is to attach the document to a bug in that group, and make the URL the
2100
 
         URL of that attachment.
 
2421
   If you want your milestone document to be restricted so that it can
 
2422
   only be viewed by people in a particular Bugzilla group, the best way
 
2423
   is to attach the document to a bug in that group, and make the URL the
 
2424
   URL of that attachment.
2101
2425
     _________________________________________________________________
2102
2426
 
2103
2427
5.4. Voting
2159
2483
    1. Turn on "usebuggroups" and "usebuggroupsentry" in the "Edit
2160
2484
       Parameters" screen.
2161
2485
 
2162
 
 Warning
 
2486
   Warning
2163
2487
 
2164
 
         XXX is this still true? "usebuggroupsentry" has the capacity to
2165
 
         prevent the administrative user from directly altering bugs because of
2166
 
         conflicting group permissions. If you plan on using
2167
 
         "usebuggroupsentry", you should plan on restricting administrative
2168
 
         account usage to administrative duties only. In other words, manage
2169
 
         bugs with an unpriveleged user account, and manage users, groups,
2170
 
         Products, etc. with the administrative account.
 
2488
   XXX is this still true? "usebuggroupsentry" has the capacity to
 
2489
   prevent the administrative user from directly altering bugs because of
 
2490
   conflicting group permissions. If you plan on using
 
2491
   "usebuggroupsentry", you should plan on restricting administrative
 
2492
   account usage to administrative duties only. In other words, manage
 
2493
   bugs with an unpriveleged user account, and manage users, groups,
 
2494
   Products, etc. with the administrative account.
2171
2495
    2. In future, when you create a Product, a matching group will be
2172
2496
       automatically created. If you need to add a Product Group to a
2173
2497
       Product which was created before you turned on usebuggroups, then
2174
2498
       simply create a new group, as outlined above, with the same name
2175
2499
       as the Product.
2176
2500
 
2177
 
 Warning
 
2501
   Warning
2178
2502
 
2179
 
         Bugzilla currently has a limit of 64 groups per installation. If you
2180
 
         have more than about 50 products, you should consider running multiple
2181
 
         Bugzillas. Ask in the newsgroup for other suggestions for working
2182
 
         around this restriction.
 
2503
   Bugzilla currently has a limit of 64 groups per installation. If you
 
2504
   have more than about 50 products, you should consider running multiple
 
2505
   Bugzillas. Ask in the newsgroup for other suggestions for working
 
2506
   around this restriction.
2183
2507
 
2184
2508
   Note that group permissions are such that you need to be a member of
2185
2509
   all the groups a bug is in, for whatever reason, to see that bug.
2189
2513
 
2190
2514
   Warning
2191
2515
 
2192
 
           Poorly-configured MySQL and Bugzilla installations have given
2193
 
           attackers full access to systems in the past. Please take these
2194
 
           guidelines seriously, even for Bugzilla machines hidden away behind
2195
 
           your firewall. 80% of all computer trespassers are insiders, not
2196
 
           anonymous crackers.
 
2516
   Poorly-configured MySQL and Bugzilla installations have given
 
2517
   attackers full access to systems in the past. Please take these
 
2518
   guidelines seriously, even for Bugzilla machines hidden away behind
 
2519
   your firewall. 80% of all computer trespassers are insiders, not
 
2520
   anonymous crackers.
2197
2521
 
2198
2522
   Note
2199
2523
 
2200
 
        These instructions must, of necessity, be somewhat vague since
2201
 
        Bugzilla runs on so many different platforms. If you have refinements
2202
 
        of these directions, please submit a bug to Bugzilla.
2203
 
 
2204
 
 Warning
2205
 
 
2206
 
         This is not meant to be a comprehensive list of every possible
2207
 
         security issue regarding the tools mentioned in this section. There is
2208
 
         no subsitute for reading the information written by the authors of any
2209
 
         software running on your system.
 
2524
   These instructions must, of necessity, be somewhat vague since
 
2525
   Bugzilla runs on so many different platforms. If you have refinements
 
2526
   of these directions, please submit a bug to Bugzilla.
 
2527
 
 
2528
   Warning
 
2529
 
 
2530
   This is not meant to be a comprehensive list of every possible
 
2531
   security issue regarding the tools mentioned in this section. There is
 
2532
   no subsitute for reading the information written by the authors of any
 
2533
   software running on your system.
2210
2534
     _________________________________________________________________
2211
2535
 
2212
2536
5.6.1. TCP/IP Ports
2245
2569
       enter new_password when prompted when using the mysql client.
2246
2570
    4. If you run MySQL on the same machine as your httpd server, you
2247
2571
       should consider disabling networking from within MySQL by adding
2248
 
       the following to your /etc/my.conf:
 
2572
       the following to your /etc/my.cnf:
2249
2573
 
2250
 
       [myslqd]
2251
 
       # Prevent network access to MySQL.
2252
 
       skip-networking
 
2574
[myslqd]
 
2575
# Prevent network access to MySQL.
 
2576
skip-networking
2253
2577
 
2254
2578
 
2255
2579
    5. You may also consider running MySQL, or even all of Bugzilla in a
2269
2593
 
2270
2594
   Note
2271
2595
 
2272
 
        You will need to set the webservergroup to the group you created for
2273
 
        your webserver to run as in localconfig. This will allow
2274
 
        ./checksetup.pl to better adjust the file permissions on your Bugzilla
2275
 
        install so as to not require making anything world-writable.
 
2596
   You will need to set the webservergroup to the group you created for
 
2597
   your webserver to run as in localconfig. This will allow
 
2598
   ./checksetup.pl to better adjust the file permissions on your Bugzilla
 
2599
   install so as to not require making anything world-writable.
2276
2600
     _________________________________________________________________
2277
2601
 
2278
2602
5.6.4. Web Server Access Controls
2308
2632
 
2309
2633
   Tip
2310
2634
 
2311
 
       Bugzilla ships with the ability to generate .htaccess files
2312
 
       instructing Apache which files should and should not be accessible.
 
2635
   Bugzilla ships with the ability to generate .htaccess files
 
2636
   instructing Apache which files should and should not be accessible.
2313
2637
 
2314
2638
   You should test to make sure that the files mentioned above are not
2315
2639
   accessible from the Internet, especially your localconfig file which
2318
2642
   we'd try to access http://bugzilla.mozilla.org/localconfig. You should
2319
2643
   get a 403 Forbidden error.
2320
2644
 
2321
 
 Caution
 
2645
   Caution
2322
2646
 
2323
 
         Not following the instructions in this section, including testing, may
2324
 
         result in sensitive information being globally accessible.
 
2647
   Not following the instructions in this section, including testing, may
 
2648
   result in sensitive information being globally accessible.
2325
2649
     _________________________________________________________________
2326
2650
 
2327
2651
5.7. Template Customisation
2380
2704
 
2381
2705
   Note
2382
2706
 
2383
 
        Don't directly edit the compiled templates in data/template/* - your
2384
 
        changes will be lost when Template Toolkit recompiles them.
 
2707
   Don't directly edit the compiled templates in data/template/* - your
 
2708
   changes will be lost when Template Toolkit recompiles them.
2385
2709
 
2386
2710
   Note
2387
2711
 
2388
 
        It is recommended that you run ./checksetup.pl after any template
2389
 
        edits, especially if you've created a new file in the custom
2390
 
        directory.
 
2712
   It is recommended that you run ./checksetup.pl after any template
 
2713
   edits, especially if you've created a new file in the custom
 
2714
   directory.
2391
2715
     _________________________________________________________________
2392
2716
 
2393
2717
5.7.2. How To Edit Templates
2423
2747
 
2424
2748
   Note
2425
2749
 
2426
 
        If you are making template changes that you intend on submitting back
2427
 
        for inclusion in standard Bugzilla, you should read the relevant
2428
 
        sections of the Developers' Guide.
 
2750
   If you are making template changes that you intend on submitting back
 
2751
   for inclusion in standard Bugzilla, you should read the relevant
 
2752
   sections of the Developers' Guide.
2429
2753
     _________________________________________________________________
2430
2754
 
2431
2755
5.7.3. Template Formats
2542
2866
 
2543
2867
   Revisions are normally released to fix security vulnerabilities and
2544
2868
   are distinguished by an increase in the third number. For example,
2545
 
   when 2.16.2 was released, it was a revision to 2.16.1.
 
2869
   when 2.16.6 was released, it was a revision to 2.16.5.
2546
2870
 
2547
2871
   Point releases are normally released when the Bugzilla team feels that
2548
2872
   there has been a significant amount of progress made between the last
2550
2874
   stabilization period and release candidates, however the use of
2551
2875
   development versions or release candidates is beyond the scope of this
2552
2876
   document. Point releases can be distinguished by an increase in the
2553
 
   second number, or minor version. For example, 2.16.2 is a newer point
2554
 
   release than 2.14.5.
 
2877
   second number, or minor version. For example, 2.18.0 is a newer point
 
2878
   release than 2.16.5.
2555
2879
 
2556
2880
   The examples in this section are written as if you were updating to
2557
 
   version 2.16.2. The procedures are the same regardless if you are
 
2881
   version 2.16.6. The procedures are the same regardless if you are
2558
2882
   updating to a new point release or a new revision. However, the chance
2559
2883
   of running into trouble increases when upgrading to a new point
2560
2884
   release, escpecially if you've made local changes.
2573
2897
 
2574
2898
   Tip
2575
2899
 
2576
 
       If you can do this, updating using CVS is probably the most painless
2577
 
       method, especially if you have a lot of local changes.
2578
 
   bash$ cd /var/www/html/bugzilla
2579
 
   bash$ cvs login
2580
 
   Logging in to :pserver:anonymous@cvs-mirror.mozilla.org:2401/cvsroot
2581
 
   CVS password: anonymous
2582
 
   bash$ cvs -q update -r BUGZILLA-2_16_2 -dP
2583
 
   P checksetup.pl
2584
 
   P collectstats.pl
2585
 
   P globals.pl
2586
 
   P docs/rel_notes.txt
2587
 
   P template/en/default/list/quips.html.tmpl
 
2900
   If you can do this, updating using CVS is probably the most painless
 
2901
   method, especially if you have a lot of local changes.
 
2902
bash$ cd /var/www/html/bugzilla
 
2903
bash$ cvs login
 
2904
Logging in to :pserver:anonymous@cvs-mirror.mozilla.org:2401/cvsroot
 
2905
CVS password: anonymous
 
2906
bash$ cvs -q update -r BUGZILLA-2_16_6 -dP
 
2907
P checksetup.pl
 
2908
P collectstats.pl
 
2909
P globals.pl
 
2910
P docs/rel_notes.txt
 
2911
P template/en/default/list/quips.html.tmpl
2588
2912
 
2589
2913
   Caution
2590
2914
 
2591
 
           If a line in the output from cvs update begins with a C that
2592
 
           represents a file with local changes that CVS was unable to properly
2593
 
           merge. You need to resolve these conflicts manually before Bugzilla
2594
 
           (or at least the portion using that file) will be usable.
 
2915
   If a line in the output from cvs update begins with a C that
 
2916
   represents a file with local changes that CVS was unable to properly
 
2917
   merge. You need to resolve these conflicts manually before Bugzilla
 
2918
   (or at least the portion using that file) will be usable.
2595
2919
 
2596
2920
   Note
2597
2921
 
2598
 
        You also need to run ./checksetup.pl before your Bugzilla upgrade will
2599
 
        be complete.
 
2922
   You also need to run ./checksetup.pl before your Bugzilla upgrade will
 
2923
   be complete.
2600
2924
 
2601
2925
   Example 5-2. Upgrading using the tarball
2602
2926
 
2603
2927
   If you are unable or unwilling to use CVS, another option that's
2604
2928
   always available is to download the latest tarball. This is the most
2605
2929
   difficult option to use, especially if you have local changes.
2606
 
   bash$ cd /var/www/html
2607
 
   bash$ wget ftp://ftp.mozilla.org/pub/webtools/bugzilla-2.16.2.tar.gz
2608
 
   Output omitted
2609
 
   bash$ tar xzvf bugzilla-2.16.2.tar.gz
2610
 
   bugzilla-2.16.2/
2611
 
   bugzilla-2.16.2/.cvsignore
2612
 
   bugzilla-2.16.2/1x1.gif
2613
 
   Output truncated
2614
 
   bash$ cd bugzilla-2.16.2
2615
 
   bash$ cp ../bugzilla/localconfig* .
2616
 
   bash$ cp -r ../bugzilla/data .
2617
 
   bash$ cd ..
2618
 
   bash$ mv bugzilla bugzilla.old
2619
 
   bash$ mv bugzilla-2.16.2 bugzilla
2620
 
   bash$ cd bugzilla
2621
 
   bash$ ./checksetup.pl
2622
 
   Output omitted
 
2930
bash$ cd /var/www/html
 
2931
bash$ wget ftp://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-2.16.6.tar.g
 
2932
z
 
2933
Output omitted
 
2934
bash$ tar xzvf bugzilla-2.16.6.tar.gz
 
2935
bugzilla-2.16.6/
 
2936
bugzilla-2.16.6/.cvsignore
 
2937
bugzilla-2.16.6/1x1.gif
 
2938
Output truncated
 
2939
bash$ cd bugzilla-2.16.6
 
2940
bash$ cp ../bugzilla/localconfig* .
 
2941
bash$ cp -r ../bugzilla/data .
 
2942
bash$ cd ..
 
2943
bash$ mv bugzilla bugzilla.old
 
2944
bash$ mv bugzilla-2.16.6 bugzilla
 
2945
bash$ cd bugzilla
 
2946
bash$ ./checksetup.pl
 
2947
Output omitted
2623
2948
 
2624
2949
   Warning
2625
2950
 
2626
 
           The cp commands both end with periods which is a very important
2627
 
           detail, it tells the shell that the destination directory is the
2628
 
           current working directory. Also, the period at the beginning of the
2629
 
           ./checksetup.pl is important and can not be omitted.
 
2951
   The cp commands both end with periods which is a very important
 
2952
   detail, it tells the shell that the destination directory is the
 
2953
   current working directory. Also, the period at the beginning of the
 
2954
   ./checksetup.pl is important and can not be omitted.
2630
2955
 
2631
2956
   Note
2632
2957
 
2633
 
        You will now have to reapply any changes you have made to your local
2634
 
        installation manually.
 
2958
   You will now have to reapply any changes you have made to your local
 
2959
   installation manually.
2635
2960
 
2636
2961
   Example 5-3. Upgrading using patches
2637
2962
 
2647
2972
   version. This would also make it more difficult to upgrade in the
2648
2973
   future.
2649
2974
bash$ cd /var/www/html/bugzilla
2650
 
bash$ wget ftp://ftp.mozilla.org/pub/webtools/bugzilla-2.16.1-to-2.16.2.diff.gz
 
2975
bash$ wget ftp://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-2.16.5-to-2.
 
2976
16.6.diff.gz
2651
2977
Output omitted
2652
 
bash$ gunzip bugzilla-2.16.1-to-2.16.2.diff.gz
2653
 
bash$ patch -p1 < bugzilla-2.16.1-to-2.16.2.diff
 
2978
bash$ gunzip bugzilla-2.16.5-to-2.16.6.diff.gz
 
2979
bash$ patch -p1 < bugzilla-2.16.5-to-2.16.6.diff
2654
2980
patching file checksetup.pl
2655
2981
patching file collectstats.pl
2656
2982
patching file globals.pl
2657
2983
 
2658
2984
   Caution
2659
2985
 
2660
 
           If you do this, beware that this doesn't change the entires in your
2661
 
           CVS directory so it may make updates using CVS (Example 5-1) more
2662
 
           difficult in the future.
 
2986
   If you do this, beware that this doesn't change the entires in your
 
2987
   CVS directory so it may make updates using CVS (Example 5-1) more
 
2988
   difficult in the future.
2663
2989
     _________________________________________________________________
2664
2990
 
2665
2991
5.9. Integrating Bugzilla with Third-Party Tools
2689
3015
   There is also a CVSZilla project, based upon somewhat dated Bugzilla
2690
3016
   code, to integrate CVS and Bugzilla through CVS' ability to email.
2691
3017
   Check it out at: http://homepages.kcbbs.gen.nz/~tonyg/.
 
3018
 
 
3019
   Another system capable of CVS integration with Bugzilla is Scmbug.
 
3020
   This system provides generic integration of Source code Configuration
 
3021
   Management with Bugtracking. Check it out at:
 
3022
   http://freshmeat.net/projects/scmbug/.
2692
3023
     _________________________________________________________________
2693
3024
 
2694
3025
5.9.3. Perforce SCM
2707
3038
   for it. Please consult the pages linked above for further information.
2708
3039
     _________________________________________________________________
2709
3040
 
2710
 
5.9.4. Tinderbox/Tinderbox2
 
3041
5.9.4. Subversion
 
3042
 
 
3043
   Subversion is a free/open-source version control system, designed to
 
3044
   overcome various limitations of CVS. Integration of Subversion with
 
3045
   Bugzilla is possible using Scmbug, a system providing generic
 
3046
   integration of Source Code Configuration Management with Bugtracking.
 
3047
   Scmbug is available at http://freshmeat.net/projects/scmbug/.
 
3048
     _________________________________________________________________
 
3049
 
 
3050
5.9.5. Tinderbox/Tinderbox2
2711
3051
 
2712
3052
   We need Tinderbox integration information.
2713
3053
     _________________________________________________________________
2719
3059
   1. General Questions
2720
3060
 
2721
3061
        A.1.1. Where can I find information about Bugzilla?
2722
 
        A.1.2. What license is Bugzilla distributed under?
2723
 
        A.1.3. How do I get commercial support for Bugzilla?
 
3062
        A.1.2. What license is Bugzilla distributed under? 
 
3063
        A.1.3. How do I get commercial support for Bugzilla? 
2724
3064
        A.1.4. What major companies or projects are currently using
2725
 
                Bugzilla for bug-tracking?
 
3065
                Bugzilla for bug-tracking? 
2726
3066
 
2727
 
        A.1.5. Who maintains Bugzilla?
 
3067
        A.1.5. Who maintains Bugzilla? 
2728
3068
        A.1.6. How does Bugzilla stack up against other bug-tracking
2729
 
                databases?
 
3069
                databases? 
2730
3070
 
2731
3071
        A.1.7. Why doesn't Bugzilla offer this or that feature or
2732
 
                compatibility with this other tracking software?
 
3072
                compatibility with this other tracking software? 
2733
3073
 
2734
3074
        A.1.8. Why MySQL? I'm interested in seeing Bugzilla run on
2735
 
                Oracle/Sybase/Msql/PostgreSQL/MSSQL.
 
3075
                Oracle/Sybase/Msql/PostgreSQL/MSSQL. 
2736
3076
 
2737
3077
        A.1.9. Why do the scripts say /usr/bonsaitools/bin/perl instead
2738
 
                of /usr/bin/perl or something else?
 
3078
                of /usr/bin/perl or something else? 
2739
3079
 
2740
 
        A.1.10. Is there an easy way to change the Bugzilla cookie name?
 
3080
        A.1.10. Is there an easy way to change the Bugzilla cookie name? 
2741
3081
 
2742
3082
   2. Managerial Questions
2743
3083
 
2744
3084
        A.2.1. Is Bugzilla web-based, or do you have to have specific
2745
 
                software or a specific operating system on your machine?
 
3085
                software or a specific operating system on your machine? 
2746
3086
 
2747
 
        A.2.2. Can Bugzilla integrate with Perforce (SCM software)?
2748
 
        A.2.3. Does Bugzilla allow the user to track multiple projects?
 
3087
        A.2.2. Can Bugzilla integrate with Perforce (SCM software)? 
 
3088
        A.2.3. Does Bugzilla allow the user to track multiple projects? 
2749
3089
        A.2.4. If I am on many projects, and search for all bugs assigned
2750
3090
                to me, will Bugzilla list them for me and allow me to
2751
 
                sort by project, severity etc?
 
3091
                sort by project, severity etc? 
2752
3092
 
2753
3093
        A.2.5. Does Bugzilla allow attachments (text, screenshots, URLs
2754
 
                etc)? If yes, are there any that are NOT allowed?
 
3094
                etc)? If yes, are there any that are NOT allowed? 
2755
3095
 
2756
3096
        A.2.6. Does Bugzilla allow us to define our own priorities and
2757
3097
                levels? Do we have complete freedom to change the labels
2758
3098
                of fields and format of them, and the choice of
2759
 
                acceptable values?
 
3099
                acceptable values? 
2760
3100
 
2761
3101
        A.2.7. Does Bugzilla provide any reporting features, metrics,
2762
3102
                graphs, etc? You know, the type of stuff that management
2763
 
                likes to see. :)
 
3103
                likes to see. :) 
2764
3104
 
2765
3105
        A.2.8. Is there email notification and if so, what do you see
2766
 
                when you get an email?
 
3106
                when you get an email? 
2767
3107
 
2768
3108
        A.2.9. Can email notification be set up to send to multiple
2769
 
                people, some on the To List, CC List, BCC List etc?
 
3109
                people, some on the To List, CC List, BCC List etc? 
2770
3110
 
2771
3111
        A.2.10. Do users have to have any particular type of email
2772
 
                application?
 
3112
                application? 
2773
3113
 
2774
3114
        A.2.11. Does Bugzilla allow data to be imported and exported? If
2775
3115
                I had outsiders write up a bug report using a MS Word bug
2776
3116
                template, could that template be imported into "matching"
2777
3117
                fields? If I wanted to take the results of a query and
2778
 
                export that data to MS Excel, could I do that?
 
3118
                export that data to MS Excel, could I do that? 
2779
3119
 
2780
3120
        A.2.12. Has anyone converted Bugzilla to another language to be
2781
 
                used in other countries? Is it localizable?
 
3121
                used in other countries? Is it localizable? 
2782
3122
 
2783
3123
        A.2.13. Can a user create and save reports? Can they do this in
2784
 
                Word format? Excel format?
 
3124
                Word format? Excel format? 
2785
3125
 
2786
3126
        A.2.14. Does Bugzilla have the ability to search by word, phrase,
2787
 
                compound search?
 
3127
                compound search? 
2788
3128
 
2789
3129
        A.2.15. Does Bugzilla provide record locking when there is
2790
3130
                simultaneous access to the same bug? Does the second
2791
3131
                person get a notice that the bug is in use or how are
2792
 
                they notified?
 
3132
                they notified? 
2793
3133
 
2794
 
        A.2.16. Are there any backup features provided?
 
3134
        A.2.16. Are there any backup features provided? 
2795
3135
        A.2.17. Can users be on the system while a backup is in progress?
2796
 
 
2797
 
        A.2.18. What type of human resources are needed to be on staff to
 
3136
                
 
3137
        A.2.18. How can I update the code and the database using CVS? 
 
3138
        A.2.19. What type of human resources are needed to be on staff to
2798
3139
                install and maintain Bugzilla? Specifically, what type of
2799
3140
                skills does the person need to have? I need to find out
2800
3141
                if we were to go with Bugzilla, what types of individuals
2801
3142
                would we need to hire and how much would that cost vs
2802
 
                buying an "Out-of-the-Box" solution.
 
3143
                buying an "Out-of-the-Box" solution. 
2803
3144
 
2804
 
        A.2.19. What time frame are we looking at if we decide to hire
 
3145
        A.2.20. What time frame are we looking at if we decide to hire
2805
3146
                people to install and maintain the Bugzilla? Is this
2806
3147
                something that takes hours or weeks to install and a
2807
3148
                couple of hours per week to maintain and customize or is
2808
3149
                this a multi-week install process, plus a full time job
2809
 
                for 1 person, 2 people, etc?
 
3150
                for 1 person, 2 people, etc? 
2810
3151
 
2811
 
        A.2.20. Is there any licensing fee or other fees for using
 
3152
        A.2.21. Is there any licensing fee or other fees for using
2812
3153
                Bugzilla? Any out-of-pocket cost other than the bodies
2813
 
                needed as identified above?
 
3154
                needed as identified above? 
 
3155
 
 
3156
        A.2.22. Why do users have to log in every time they access a
 
3157
                page? This affects everyone who accesses my Bugzilla. (If
 
3158
                this only affects some of your users, see the next FAQ
 
3159
                item.) 
 
3160
 
 
3161
        A.2.23. Why do users have to log in every time they access a
 
3162
                page? This only seems to affect some of my Bugzilla's
 
3163
                users, others stay logged in. 
2814
3164
 
2815
3165
   3. Bugzilla Security
2816
3166
 
2817
3167
        A.3.1. How do I completely disable MySQL security if it's giving
2818
3168
                me problems (I've followed the instructions in the
2819
 
                installation section of this guide)?
 
3169
                installation section of this guide)? 
2820
3170
 
2821
 
        A.3.2. Are there any security problems with Bugzilla?
 
3171
        A.3.2. Are there any security problems with Bugzilla? 
2822
3172
        A.3.3. I've implemented the security fixes mentioned in Chris
2823
3173
                Yeh's security advisory of 5/10/2000 advising not to run
2824
3174
                MySQL as root, and am running into problems with MySQL no
2825
 
                longer working correctly.
 
3175
                longer working correctly. 
2826
3176
 
2827
3177
   4. Bugzilla Email
2828
3178
 
2829
3179
        A.4.1. I have a user who doesn't want to receive any more email
2830
 
                from Bugzilla. How do I stop it entirely for this user?
 
3180
                from Bugzilla. How do I stop it entirely for this user? 
2831
3181
 
2832
3182
        A.4.2. I'm evaluating/testing Bugzilla, and don't want it to send
2833
 
                email to anyone but me. How do I do it?
 
3183
                email to anyone but me. How do I do it? 
2834
3184
 
2835
3185
        A.4.3. I want whineatnews.pl to whine at something more, or other
2836
 
                than, only new bugs. How do I do it?
 
3186
                than, only new bugs. How do I do it? 
2837
3187
 
2838
3188
        A.4.4. I don't like/want to use Procmail to hand mail off to
2839
 
                bug_email.pl. What alternatives do I have?
 
3189
                bug_email.pl. What alternatives do I have? 
2840
3190
 
2841
3191
        A.4.5. How do I set up the email interface to submit/change bugs
2842
 
                via email?
 
3192
                via email? 
2843
3193
 
2844
3194
        A.4.6. Email takes FOREVER to reach me from Bugzilla -- it's
2845
 
                extremely slow. What gives?
 
3195
                extremely slow. What gives? 
2846
3196
 
2847
 
        A.4.7. How come email from Bugzilla changes never reaches me?
 
3197
        A.4.7. How come email from Bugzilla changes never reaches me? 
2848
3198
 
2849
3199
   5. Bugzilla Database
2850
3200
 
2851
 
        A.5.1. I've heard Bugzilla can be used with Oracle?
 
3201
        A.5.1. I've heard Bugzilla can be used with Oracle? 
2852
3202
        A.5.2. I think my database might be corrupted, or contain invalid
2853
 
                entries. What do I do?
 
3203
                entries. What do I do? 
2854
3204
 
2855
 
        A.5.3. I want to manually edit some entries in my database. How?
 
3205
        A.5.3. I want to manually edit some entries in my database. How? 
2856
3206
        A.5.4. I think I've set up MySQL permissions correctly, but
2857
 
                Bugzilla still can't connect.
 
3207
                Bugzilla still can't connect. 
2858
3208
 
2859
3209
        A.5.5. How do I synchronize bug information among multiple
2860
 
                different Bugzilla databases?
 
3210
                different Bugzilla databases? 
2861
3211
 
2862
3212
   6. Bugzilla and Win32
2863
3213
 
2864
3214
        A.6.1. What is the easiest way to run Bugzilla on Win32
2865
 
                (Win98+/NT/2K)?
 
3215
                (Win98+/NT/2K)? 
2866
3216
 
2867
 
        A.6.2. Is there a "Bundle::Bugzilla" equivalent for Win32?
 
3217
        A.6.2. Is there a "Bundle::Bugzilla" equivalent for Win32? 
2868
3218
        A.6.3. CGI's are failing with a "something.cgi is not a valid
2869
 
                Windows NT application" error. Why?
 
3219
                Windows NT application" error. Why? 
2870
3220
 
2871
3221
        A.6.4. I'm having trouble with the perl modules for NT not being
2872
 
                able to talk to to the database.
 
3222
                able to talk to to the database. 
2873
3223
 
2874
3224
   7. Bugzilla Usage
2875
3225
 
2876
 
        A.7.1. How do I change my user name (email address) in Bugzilla?
 
3226
        A.7.1. How do I change my user name (email address) in Bugzilla? 
2877
3227
        A.7.2. The query page is very confusing. Isn't there a simpler
2878
 
                way to query?
 
3228
                way to query? 
2879
3229
 
2880
3230
        A.7.3. I'm confused by the behavior of the "accept" button in the
2881
3231
                Show Bug form. Why doesn't it assign the bug to me when I
2882
 
                accept it?
 
3232
                accept it? 
2883
3233
 
2884
3234
        A.7.4. I can't upload anything into the database via the "Create
2885
 
                Attachment" link. What am I doing wrong?
 
3235
                Attachment" link. What am I doing wrong? 
2886
3236
 
2887
3237
        A.7.5. How do I change a keyword in Bugzilla, once some bugs are
2888
 
                using it?
 
3238
                using it? 
2889
3239
 
2890
3240
        A.7.6. Why can't I close bugs from the "Change Several Bugs at
2891
 
                Once" page?
 
3241
                Once" page? 
2892
3242
 
2893
3243
   8. Bugzilla Hacking
2894
3244
 
2895
 
        A.8.1. What bugs are in Bugzilla right now?
 
3245
        A.8.1. What bugs are in Bugzilla right now? 
2896
3246
        A.8.2. How can I change the default priority to a null value? For
2897
3247
                instance, have the default priority be "---" instead of
2898
 
                "P2"?
 
3248
                "P2"? 
2899
3249
 
2900
3250
        A.8.3. What's the best way to submit patches? What guidelines
2901
 
                should I follow?
 
3251
                should I follow? 
2902
3252
 
2903
3253
1. General Questions
2904
3254
 
3009
3359
 
3010
3360
   Note
3011
3361
 
3012
 
        This convention was abonded during the 2.17 development cycle so it
3013
 
        will no longer be an issue when 2.18 comes out.
 
3362
   This convention was abonded during the 2.17 development cycle so it
 
3363
   will no longer be an issue when 2.18 comes out.
3014
3364
 
3015
3365
   A.1.10. Is there an easy way to change the Bugzilla cookie name?
3016
3366
 
3020
3370
 
3021
3371
   Note
3022
3372
 
3023
 
        Questions likely to be asked by managers. :-)
 
3373
   Questions likely to be asked by managers. :-)
3024
3374
 
3025
3375
   A.2.1. Is Bugzilla web-based, or do you have to have specific software
3026
3376
   or a specific operating system on your machine?
3041
3391
 
3042
3392
   Note
3043
3393
 
3044
 
        There are only 55 groups available in version 2.16 of Bugzilla. If you
3045
 
        are using product groups, this will also limit the number of products
3046
 
        you can have. This limit does not exist in the current 2.17
3047
 
        development releases and will not exist in 2.18.
 
3394
   There are only 55 groups available in version 2.16 of Bugzilla. If you
 
3395
   are using product groups, this will also limit the number of products
 
3396
   you can have. This limit does not exist in the current 2.17
 
3397
   development releases and will not exist in 2.18.
3048
3398
 
3049
3399
   A.2.4. If I am on many projects, and search for all bugs assigned to
3050
3400
   me, will Bugzilla list them for me and allow me to sort by project,
3087
3437
 
3088
3438
   Note
3089
3439
 
3090
 
        Bugzilla's current development versions can do a lot more in the way
3091
 
        of reporting. To see examples, check out
3092
 
        http://bugzilla.mozilla.org/report.cgi.
 
3440
   Bugzilla's current development versions can do a lot more in the way
 
3441
   of reporting. To see examples, check out
 
3442
   http://bugzilla.mozilla.org/report.cgi.
3093
3443
 
3094
3444
   A.2.8. Is there email notification and if so, what do you see when you
3095
3445
   get an email?
3111
3461
 
3112
3462
   Note
3113
3463
 
3114
 
        If you decide to use the bugzilla_email integration features to allow
3115
 
        Bugzilla to record responses to mail with the associated bug, you may
3116
 
        need to caution your users to set their mailer to "respond to messages
3117
 
        in the format in which they were sent". For security reasons Bugzilla
3118
 
        ignores HTML tags in comments, and if a user sends HTML-based email
3119
 
        into Bugzilla the resulting comment looks downright awful.
 
3464
   If you decide to use the bugzilla_email integration features to allow
 
3465
   Bugzilla to record responses to mail with the associated bug, you may
 
3466
   need to caution your users to set their mailer to "respond to messages
 
3467
   in the format in which they were sent". For security reasons Bugzilla
 
3468
   ignores HTML tags in comments, and if a user sends HTML-based email
 
3469
   into Bugzilla the resulting comment looks downright awful.
3120
3470
 
3121
3471
   A.2.11. Does Bugzilla allow data to be imported and exported? If I had
3122
3472
   outsiders write up a bug report using a MS Word bug template, could
3180
3530
   unlocked. Bugzilla databases are typically very small, and backups
3181
3531
   routinely take less than a minute.
3182
3532
 
3183
 
   A.2.18. What type of human resources are needed to be on staff to
 
3533
   A.2.18. How can I update the code and the database using CVS?
 
3534
 
 
3535
    1. Make a backup of both your Bugzilla directory and the database.
 
3536
       For the Bugzilla directory this is as easy as doing cp -rp
 
3537
       bugzilla bugzilla.bak. For the database, there's a number of
 
3538
       options - see the MySQL docs and pick the one that fits you best
 
3539
       (the easiest is to just make a physical copy of the database on
 
3540
       the disk, but you have to have the database server shut down to do
 
3541
       that without risking dataloss).
 
3542
    2. Make the Bugzilla directory your current directory.
 
3543
    3. Use cvs -q update -AdP if you want to update to the tip or cvs -q
 
3544
       update -dP -rTAGNAME if you want a specific version (in that case
 
3545
       you'll have to replace TAGNAME with a CVS tag name such as
 
3546
       BUGZILLA-2_16_5).
 
3547
       If you've made no local changes, this should be very clean. If you
 
3548
       have made local changes, then watch the cvs output for C results.
 
3549
       If you get any lines that start with a C it means there were
 
3550
       conflicts between your local changes and what's in CVS. You'll
 
3551
       need to fix those manually before continuing.
 
3552
    4. After resolving any conflicts that the cvs update operation
 
3553
       generated, running ./checksetup.pl will take care of updating the
 
3554
       database for you as well as any other changes required for the new
 
3555
       version to operate.
 
3556
 
 
3557
   Warning
 
3558
 
 
3559
   Once you run checksetup.pl, the only way to go back is to restore the
 
3560
   database backups. You can't "downgrade" the system cleanly under most
 
3561
   circumstances.
 
3562
 
 
3563
   A.2.19. What type of human resources are needed to be on staff to
3184
3564
   install and maintain Bugzilla? Specifically, what type of skills does
3185
3565
   the person need to have? I need to find out if we were to go with
3186
3566
   Bugzilla, what types of individuals would we need to hire and how much
3194
3574
   available from skilled members of the newsgroup. Simple questions are
3195
3575
   answered there and then.
3196
3576
 
3197
 
   A.2.19. What time frame are we looking at if we decide to hire people
 
3577
   A.2.20. What time frame are we looking at if we decide to hire people
3198
3578
   to install and maintain the Bugzilla? Is this something that takes
3199
3579
   hours or weeks to install and a couple of hours per week to maintain
3200
3580
   and customize or is this a multi-week install process, plus a full
3207
3587
   UNIX or Perl skills to handle your process management and bug-tracking
3208
3588
   maintenance & customization.
3209
3589
 
3210
 
   A.2.20. Is there any licensing fee or other fees for using Bugzilla?
 
3590
   A.2.21. Is there any licensing fee or other fees for using Bugzilla?
3211
3591
   Any out-of-pocket cost other than the bodies needed as identified
3212
3592
   above?
3213
3593
 
3214
3594
   No. MySQL asks, if you find their product valuable, that you purchase
3215
3595
   a support contract from them that suits your needs.
3216
3596
 
 
3597
   A.2.22. Why do users have to log in every time they access a page?
 
3598
   This affects everyone who accesses my Bugzilla. (If this only affects
 
3599
   some of your users, see the next FAQ item.)
 
3600
 
 
3601
   The most-likely cause is that the "cookiepath" parameter is not set
 
3602
   correctly in the Bugzilla configuration. You can change this (if
 
3603
   you're a Bugzilla administrator) from the editparams.cgi page via the
 
3604
   web.
 
3605
 
 
3606
   The value of the cookiepath parameter should be the actual directory
 
3607
   containing your Bugzilla installation, as seen by the end-user's web
 
3608
   browser. Leading and trailing slashes are mandatory. You can also set
 
3609
   the cookiepath to any directory which is a parent of the Bugzilla
 
3610
   directory (such as '/', the root directory). But you can't put
 
3611
   something that isn't at least a partial match or it won't work. What
 
3612
   you're actually doing is restricting the end-user's browser to sending
 
3613
   the cookies back only to that directory.
 
3614
 
 
3615
   How do you know if you want your specific Bugzilla directory or the
 
3616
   whole site?
 
3617
 
 
3618
   If you have only one Bugzilla running on the server, and you don't
 
3619
   mind having other applications on the same server with it being able
 
3620
   to see the cookies (you might be doing this on purpose if you have
 
3621
   other things on your site that share authentication with Bugzilla),
 
3622
   then you'll want to have the cookiepath set to "/", or to a
 
3623
   sufficiently-high enough directory that all of the involved apps can
 
3624
   see the cookies.
 
3625
 
 
3626
   Examples:
 
3627
 
 
3628
             urlbase is http://bugzilla.mozilla.org/
 
3629
             cookiepath is /
 
3630
             urlbase is http://tools.mysite.tld/bugzilla/
 
3631
                     but you have http://tools.mysite.tld/someotherapp/
 
3632
     which shares
 
3633
                     authentication with your Bugzilla
 
3634
             cookiepath is /
 
3635
 
 
3636
   On the other hand, if you have more than one Bugzilla running on the
 
3637
   server (some people do - we do on landfill) then you need to have the
 
3638
   cookiepath restricted enough so that the different Bugzillas don't
 
3639
   confuse their cookies with one another.
 
3640
 
 
3641
   Examples:
 
3642
 
 
3643
             urlbase is http://landfill.bugzilla.org/bugzilla-tip/
 
3644
             cookiepath is /bugzilla-tip/
 
3645
             urlbase is http://landfill.bugzilla.org/bugzilla-2.16-branc
 
3646
     h/
 
3647
             cookiepath is /bugzilla-2.16-branch/
 
3648
 
 
3649
   If you had cookiepath set to / at any point in the past and need to
 
3650
   set it to something more restrictive (i.e. /bugzilla/), you can safely
 
3651
   do this without requiring users to delete their Bugzilla-related
 
3652
   cookies in their browser (this is true starting with Bugzilla 2.17.7
 
3653
   and Bugzilla 2.16.5).
 
3654
 
 
3655
   A.2.23. Why do users have to log in every time they access a page?
 
3656
   This only seems to affect some of my Bugzilla's users, others stay
 
3657
   logged in.
 
3658
 
 
3659
   First, make sure cookies are enabled in the user's browser.
 
3660
 
 
3661
   If that doesn't fix the problem, it may be that the user's ISP
 
3662
   implements a rotating proxy server. This causes the user's effective
 
3663
   IP address (the address which the Bugzilla server perceives him coming
 
3664
   from) to change periodically. Since Bugzilla cookies are tied to a
 
3665
   specific IP address, each time the effective address changes, the user
 
3666
   will have to log in again.
 
3667
 
 
3668
   In newer versions of Bugzilla (2.17.1 and later) there is a parameter
 
3669
   called "loginnetmask", which you can use to set the number of bits of
 
3670
   the user's IP address to require to be matched when authenticating the
 
3671
   cookies. If you set this to something less than 32, then the user will
 
3672
   be given a checkbox for "Restrict this login to my IP address" on the
 
3673
   login screen, which defaults to checked. If they leave the box
 
3674
   checked, Bugzilla will behave the same as it did before, requiring an
 
3675
   exact match on their IP address to remain logged in. If they uncheck
 
3676
   the box, then only the left side of their IP address (up to the number
 
3677
   of bits you specified in the parameter) has to match to remain logged
 
3678
   in.
 
3679
 
3217
3680
3. Bugzilla Security
3218
3681
 
3219
3682
   A.3.1. How do I completely disable MySQL security if it's giving me
3348
3811
 
3349
3812
   Warning
3350
3813
 
3351
 
           Running MySQL with this command line option is very insecure and
3352
 
           should only be done when not connected to the external network as a
3353
 
           troubleshooting step.
 
3814
   Running MySQL with this command line option is very insecure and
 
3815
   should only be done when not connected to the external network as a
 
3816
   troubleshooting step.
3354
3817
 
3355
3818
   A.5.5. How do I synchronize bug information among multiple different
3356
3819
   Bugzilla databases?
3523
3986
 
3524
3987
   Note
3525
3988
 
3526
 
        This document really needs to be updated with more fleshed out
3527
 
        information about primary keys, interrelationships, and maybe some
3528
 
        nifty tables to document dependencies. Any takers?
 
3989
   This document really needs to be updated with more fleshed out
 
3990
   information about primary keys, interrelationships, and maybe some
 
3991
   nifty tables to document dependencies. Any takers?
3529
3992
     _________________________________________________________________
3530
3993
 
3531
3994
B.1. Database Schema Chart
3629
4092
 
3630
4093
   From the command issued above, ou should have some output that looks
3631
4094
   like this:
3632
 
   +-------------------+
3633
 
   | Tables in bugs    |
3634
 
   +-------------------+
3635
 
   | attachments       |
3636
 
   | bugs              |
3637
 
   | bugs_activity     |
3638
 
   | cc                |
3639
 
   | components        |
3640
 
   | dependencies      |
3641
 
   | fielddefs         |
3642
 
   | groups            |
3643
 
   | keyworddefs       |
3644
 
   | keywords          |
3645
 
   | logincookies      |
3646
 
   | longdescs         |
3647
 
   | milestones        |
3648
 
   | namedqueries      |
3649
 
   | products          |
3650
 
   | profiles          |
3651
 
   | profiles_activity |
3652
 
   | shadowlog         |
3653
 
   | tokens            |
3654
 
   | versions          |
3655
 
   | votes             |
3656
 
   | watch             |
3657
 
   +-------------------+
 
4095
+-------------------+
 
4096
| Tables in bugs    |
 
4097
+-------------------+
 
4098
| attachments       |
 
4099
| bugs              |
 
4100
| bugs_activity     |
 
4101
| cc                |
 
4102
| components        |
 
4103
| dependencies      |
 
4104
| fielddefs         |
 
4105
| groups            |
 
4106
| keyworddefs       |
 
4107
| keywords          |
 
4108
| logincookies      |
 
4109
| longdescs         |
 
4110
| milestones        |
 
4111
| namedqueries      |
 
4112
| products          |
 
4113
| profiles          |
 
4114
| profiles_activity |
 
4115
| shadowlog         |
 
4116
| tokens            |
 
4117
| versions          |
 
4118
| votes             |
 
4119
| watch             |
 
4120
+-------------------+
3658
4121
 
3659
4122
     Here's an overview of what each table does.  Most columns in each ta
3660
4123
   ble have
3862
4325
       spits back http://www.foo.com/show_bug.cgi?id=12345. Try setting
3863
4326
       up your VirtualHost section for Bugzilla with a rule like this:
3864
4327
 
3865
 
       <VirtualHost 12.34.56.78>
3866
 
       RewriteEngine On
3867
 
       RewriteRule ^/([0-9]+)$ http://foo.bar.com/show_bug.cgi?id=$1 [L,R]
3868
 
       </VirtualHost>
 
4328
<VirtualHost 12.34.56.78>
 
4329
RewriteEngine On
 
4330
RewriteRule ^/([0-9]+)$ http://foo.bar.com/show_bug.cgi?id=$1 [L,R]
 
4331
</VirtualHost>
3869
4332
 
3870
4333
    2. There are many, many more things you can do with mod_rewrite.
3871
4334
       Please refer to the mod_rewrite documentation at
3966
4429
   Although Perforce isn't really a bug tracker, it can be used as such
3967
4430
   through the "jobs" functionality.
3968
4431
 
3969
 
   URL: http://www.perforce.com/perforce/technotes/note052.html
 
4432
   URL: http://www.perforce.com/perforce/technotes/note052.html 
3970
4433
 
3971
4434
   This section last updated 27 Jul 2002
3972
4435
     _________________________________________________________________
4419
4882
          creating a Product with no Components will create an error in
4420
4883
          Bugzilla).
4421
4884
 
4422
 
   CPAN
 
4885
   CPAN 
4423
4886
          CPAN stands for the "Comprehensive Perl Archive Network". CPAN
4424
4887
          maintains a large number of extremely useful Perl modules -
4425
4888
          encapsulated chunks of code for performing a particular task.
4494
4957
 
4495
4958
S
4496
4959
 
4497
 
   SGML
 
4960
   SGML 
4498
4961
          SGML stands for "Standard Generalized Markup Language". Created
4499
4962
          in the 1980's to provide an extensible means to maintain
4500
4963
          documentation based upon content instead of presentation, SGML
4530
4993
 
4531
4994
 
4532
4995
 
4533
 
         I've been asked to explain this ... way back when, when Netscape
4534
 
         released version 4.0 of its browser, we had a release party.
4535
 
         Naturally, there had been a big push to try and fix every known bug
4536
 
         before the release. Naturally, that hadn't actually happened. (This is
4537
 
         not unique to Netscape or to 4.0; the same thing has happened with
4538
 
         every software project I've ever seen.) Anyway, at the release party,
4539
 
         T-shirts were handed out that said something like "Netscape 4.0: Zarro
4540
 
         Boogs". Just like the software, the T-shirt had no known bugs. Uh-huh.
4541
 
         So, when you query for a list of bugs, and it gets no results, you can
4542
 
         think of this as a friendly reminder. Of *course* there are bugs
4543
 
         matching your query, they just aren't in the bugsystem yet...
 
4996
   I've been asked to explain this ... way back when, when Netscape
 
4997
   released version 4.0 of its browser, we had a release party.
 
4998
   Naturally, there had been a big push to try and fix every known bug
 
4999
   before the release. Naturally, that hadn't actually happened. (This is
 
5000
   not unique to Netscape or to 4.0; the same thing has happened with
 
5001
   every software project I've ever seen.) Anyway, at the release party,
 
5002
   T-shirts were handed out that said something like "Netscape 4.0: Zarro
 
5003
   Boogs". Just like the software, the T-shirt had no known bugs. Uh-huh.
 
5004
   So, when you query for a list of bugs, and it gets no results, you can
 
5005
   think of this as a friendly reminder. Of *course* there are bugs
 
5006
   matching your query, they just aren't in the bugsystem yet...
4544
5007
 
4545
 
                                                              --Terry Weissman
 
5008
          --Terry Weissman