pjs/webtools/bugzilla/docs/xml/patches.xml

307 строки
9.1 KiB
XML

<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<appendix id="patches" xreflabel="Useful Patches and Utilities for Bugzilla">
<title>Useful Patches and Utilities for Bugzilla</title>
<para>Are you looking for a way to put your Bugzilla into overdrive? Catch
some of the niftiest tricks here in this section.</para>
<section id="rewrite" xreflabel="Apache mod_rewrite magic">
<title>Apache
<filename>mod_rewrite</filename>
magic</title>
<para>Apache's
<filename>mod_rewrite</filename>
module lets you do some truly amazing things with URL rewriting. Here are
a couple of examples of what you can do.</para>
<orderedlist>
<listitem>
<para>Make it so if someone types
<computeroutput>http://www.foo.com/12345</computeroutput>
, Bugzilla spits back http://www.foo.com/show_bug.cgi?id=12345. Try
setting up your VirtualHost section for Bugzilla with a rule like
this:</para>
<programlisting>
<![CDATA[
<VirtualHost 12.34.56.78>
RewriteEngine On
RewriteRule ^/([0-9]+)$ http://foo.bar.com/show_bug.cgi?id=$1 [L,R]
</VirtualHost>
]]>
</programlisting>
</listitem>
<listitem>
<para>There are many, many more things you can do with mod_rewrite.
As time goes on, I will include many more in the Guide. For now,
though, please refer to the mod_rewrite documentation at
<ulink url="http://www.apache.org">http://www.apache.org</ulink>
</para>
</listitem>
</orderedlist>
</section>
<section id="setperl" xreflabel="The setperl.csh Utility">
<title>The setperl.csh Utility</title>
<para>You can use the "setperl.csh" utility to quickly and easily change
the path to perl on all your Bugzilla files. This is a C-shell script; if
you do not have "csh" or "tcsh" in the search path on your system, it
will not work!</para>
<procedure>
<step>
<para>Download the "setperl.csh" utility to your Bugzilla directory
and make it executable.</para>
<substeps>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>cd /your/path/to/bugzilla</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>wget -O setperl.csh
'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=10795'</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>chmod u+x setperl.csh</command>
</computeroutput>
</para>
</step>
</substeps>
</step>
<step>
<para>Prepare (and fix) Bugzilla file permissions.</para>
<substeps>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>chmod u+w *</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>chmod u+x duplicates.cgi</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>chmod a-x bug_status.html</command>
</computeroutput>
</para>
</step>
</substeps>
</step>
<step>
<para>Run the script:</para>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>./setperl.csh /your/path/to/perl</command>
</computeroutput>
<example>
<title>Using Setperl to set your perl path</title>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>./setperl.csh /usr/bin/perl</command>
</computeroutput>
</para>
</example>
</para>
</step>
</procedure>
</section>
<section id="cmdline">
<title>Command-line Bugzilla Queries</title>
<para>Users can query Bugzilla from the command line using this suite of
utilities.</para>
<para>The query.conf file contains the mapping from options to field
names and comparison types. Quoted option names are "grepped" for, so it
should be easy to edit this file. Comments (#) have no effect; you must
make sure these lines do not contain any quoted "option"</para>
<para>buglist is a shell script which submits a Bugzilla query and writes
the resulting HTML page to stdout. It supports both short options, (such
as "-Afoo" or "-Rbar") and long options (such as "--assignedto=foo" or
"--reporter=bar"). If the first character of an option is not "-", it is
treated as if it were prefixed with "--default=".</para>
<para>The columlist is taken from the COLUMNLIST environment variable.
This is equivalent to the "Change Columns" option when you list bugs in
buglist.cgi. If you have already used Bugzilla, use
<command>grep COLUMLIST ~/.netscape/cookies</command>
to see your current COLUMNLIST setting.</para>
<para>bugs is a simple shell script which calls buglist and extracts the
bug numbers from the output. Adding the prefix
"http://bugzilla.mozilla.org/buglist.cgi?bug_id=" turns the bug list into
a working link if any bugs are found. Counting bugs is easy. Pipe the
results through
<command>sed -e 's/,/ /g' | wc | awk '{printf $2 "\n"}'</command>
</para>
<para>Akkana says she has good results piping buglist output through
<command>w3m -T text/html -dump</command>
</para>
<procedure>
<step>
<para>Download three files:</para>
<substeps>
<step>
<para>
<computeroutput>
<prompt>bash$</prompt>
<command>wget -O query.conf
'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26157'</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash$</prompt>
<command>wget -O buglist
'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26944'</command>
</computeroutput>
</para>
</step>
<step>
<para>
<computeroutput>
<prompt>bash#</prompt>
<command>wget -O bugs
'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26215'</command>
</computeroutput>
</para>
</step>
</substeps>
</step>
<step>
<para>Make your utilities executable:
<computeroutput>
<prompt>bash$</prompt>
<command>chmod u+x buglist bugs</command>
</computeroutput>
</para>
</step>
</procedure>
</section>
<section id="quicksearch">
<title>The Quicksearch Utility</title>
<para>Quicksearch is a new, experimental feature of the 2.12 release. It
consist of two Javascript files, "quicksearch.js" and "localconfig.js",
and two documentation files, "quicksearch.html" and
"quicksearchhack.html"</para>
<para>The index.html page has been updated to include the QuickSearch
text box.</para>
<para>To take full advantage of the query power, the Bugzilla maintainer
must edit "localconfig.js" according to the value sets used in the local
installation.</para>
<para>Currently, keywords must be hard-coded in localconfig.js. If they
are not, keywords are not automatically recognized. This means, if
localconfig.js is left unconfigured, that searching for a bug with the
"foo" keyword will only find bugs with "foo" in the summary, status
whiteboard, product or component name, but not those with the keyword
"foo".</para>
<para>Workarounds for Bugzilla users:
<simplelist>
<member>search for '!foo' (this will find only bugs with the keyword
"foo"</member>
<member>search 'foo,!foo' (equivalent to 'foo OR keyword:foo')</member>
</simplelist>
</para>
<para>When this tool is ported from client-side JavaScript to server-side
Perl, the requirement for hard-coding keywords can be fixed.
<ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=70907">This
bug</ulink>
has details.</para>
</section>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-always-quote-attributes:t
sgml-auto-insert-required-elements:t
sgml-balanced-tag-edit:t
sgml-exposed-tags:nil
sgml-general-insert-case:lower
sgml-indent-data:t
sgml-indent-step:2
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
sgml-minimize-attributes:nil
sgml-namecase-general:t
sgml-omittag:t
sgml-parent-document:("Bugzilla-Guide.sgml" "book" "chapter")
sgml-shorttag:t
sgml-tag-region-if-active:t
End:
-->