[Bps-public-commit] RT-Extension-rt_cpan_org branch, rt4, updated. 2630ea4bd54f9915c6185a9845ca234073ebd3c8

Thomas Sibley trs at bestpractical.com
Tue Feb 26 20:23:42 EST 2013


The branch, rt4 has been updated
       via  2630ea4bd54f9915c6185a9845ca234073ebd3c8 (commit)
       via  dc9447c971e92719667da1a961dc42218ca3091c (commit)
       via  06f96c7e9d0d9e223670dfca4763baccb484e7ef (commit)
       via  12c71238382460daa13f10b85bbcb3ef4c99d24a (commit)
       via  a6ddac1668255ca6ab88fdc9245df2b936eb6f6f (commit)
      from  661564e8513e71d05bc2d856d98d09f53f04ccfd (commit)

Summary of changes:
 META.yml                                           |   9 +-
 README                                             |  12 --
 .../rt_cpan_org/Elements/Login/BeforeForm          |   6 +-
 .../rt_cpan_org/Elements/PersonalQuickbar/Default  |   2 +-
 .../Callbacks/rt_cpan_org/Elements/Tabs/Privileged |   4 +
 html/Elements/Logo                                 |   2 +-
 html/Elements/QueueSummary                         |   4 +-
 html/Elements/Quicksearch                          |   3 +-
 html/Elements/SelectOwner                          |   4 +-
 html/NoAuth/dhandler                               |  70 -----------
 html/Prefs/Quicksearch.html                        |  46 +++----
 html/Public/RT/CPAN/About.html                     |   4 +-
 html/Search/Bulk.html                              |  10 +-
 html/Search/Listing.html                           |   2 +-
 inc/Module/Install.pm                              |  14 ++-
 inc/Module/Install/Base.pm                         |   2 +-
 inc/Module/Install/Can.pm                          |  85 ++++++++++++-
 inc/Module/Install/Fetch.pm                        |   2 +-
 inc/Module/Install/Makefile.pm                     |  35 +++---
 inc/Module/Install/Metadata.pm                     |  40 ++++--
 inc/Module/Install/RTx.pm                          |  80 +++++++-----
 inc/Module/Install/ReadmeFromPod.pm                | 136 ++++++++++++++++++---
 inc/Module/Install/Win32.pm                        |   2 +-
 inc/Module/Install/WriteAll.pm                     |   2 +-
 24 files changed, 354 insertions(+), 222 deletions(-)
 delete mode 100755 html/NoAuth/dhandler

- Log -----------------------------------------------------------------
commit a6ddac1668255ca6ab88fdc9245df2b936eb6f6f
Author: Thomas Sibley <trs at bestpractical.com>
Date:   Tue Feb 26 16:37:21 2013 -0800

    Update the version info in About

diff --git a/html/Public/RT/CPAN/About.html b/html/Public/RT/CPAN/About.html
index 4b3eba3..27ea4da 100644
--- a/html/Public/RT/CPAN/About.html
+++ b/html/Public/RT/CPAN/About.html
@@ -43,7 +43,7 @@
     project or a module from the CPAN.</p>
 
     <p>rt.cpan.org has some customizations which tie it to a particular RT version; at this
-    moment (2009-12) it's RT 3.8.HEAD.</p>
+    moment (March 2013) it's RT 4.0.</p>
 
     <p>You can explore the source code by checking out the repository:<br />
     <pre>    git clone git://github.com/bestpractical/rt-extension-rt_cpan_org.git</pre><br />

commit 12c71238382460daa13f10b85bbcb3ef4c99d24a
Author: Thomas Sibley <trs at bestpractical.com>
Date:   Tue Feb 26 16:40:45 2013 -0800

    Update 3.6-era $RT:: style to modern RT-> calls

diff --git a/html/Callbacks/rt_cpan_org/Elements/Login/BeforeForm b/html/Callbacks/rt_cpan_org/Elements/Login/BeforeForm
index c5eb00a..1499f3b 100644
--- a/html/Callbacks/rt_cpan_org/Elements/Login/BeforeForm
+++ b/html/Callbacks/rt_cpan_org/Elements/Login/BeforeForm
@@ -57,7 +57,7 @@
 
     <h2>... find a distribution and browse its bugs?</h2>
     <p>
-      This site lets you <a href="<% $RT::WebPath %>/Public/">search
+      This site lets you <a href="<% RT->Config->Get("WebPath") %>/Public/">search
       for distributions</a> by name or author.  When you've found the
       distribution you're looking for, you can browse known bugs and
       report new bugs.
@@ -75,7 +75,7 @@
       to <strong>bug-<distribution-name>@rt.cpan.org</strong>, where
       "<distribution-name>" is something like DBIx-SearchBuilder or
       Class-DBI or Acme-Current-Forever. Use
-      <a href="<% $RT::WebPath %>/Public/">search</a> to find name of
+      <a href="<% RT->Config->Get("WebPath") %>/Public/">search</a> to find name of
       a distribution.
     </p>
 
@@ -96,7 +96,7 @@
 
     <h2>... know more about this service?</h2>
     <p>
-      Read <a href="<% $RT::WebPath %>/Public/RT/CPAN/About.html">this document</a>.
+      Read <a href="<% RT->Config->Get("WebPath") %>/Public/RT/CPAN/About.html">this document</a>.
     </p>
 
     <p>
diff --git a/html/Callbacks/rt_cpan_org/Elements/PersonalQuickbar/Default b/html/Callbacks/rt_cpan_org/Elements/PersonalQuickbar/Default
index d1381ca..78cb56d 100644
--- a/html/Callbacks/rt_cpan_org/Elements/PersonalQuickbar/Default
+++ b/html/Callbacks/rt_cpan_org/Elements/PersonalQuickbar/Default
@@ -1 +1 @@
-| <a href="<%$RT::WebPath%>/Public/RT/CPAN/About.html"><&|/l&>About rt.cpan.org</&></a>
+| <a href="<%RT->Config->Get("WebPath")%>/Public/RT/CPAN/About.html"><&|/l&>About rt.cpan.org</&></a>
diff --git a/html/Elements/Logo b/html/Elements/Logo
index 2470727..76a5a9d 100644
--- a/html/Elements/Logo
+++ b/html/Elements/Logo
@@ -56,7 +56,7 @@
 </div>
 <%INIT>
 if ( exists $ARGS{'show_name'} ) {
-    $RT::Logger->warning('show_name argument was renamed, use ShowName');
+    RT->Logger->warning('show_name argument was renamed, use ShowName');
     $ShowName = delete $ARGS{'show_name'};
 }
 </%INIT>
diff --git a/html/Elements/QueueSummary b/html/Elements/QueueSummary
index a545f3a..c93015a 100644
--- a/html/Elements/QueueSummary
+++ b/html/Elements/QueueSummary
@@ -58,10 +58,10 @@
 %   my $queue_cond = "Queue = '$queue->{Name}' AND ";
 %   my $all_q = $queue_cond . "(Status = 'open' OR Status = 'new' OR Status = 'stalled')";
 <tr class="<% $i%2 ? 'oddline' : 'evenline'%>" >
-<td><a href="<% $RT::WebPath%>/Dist/Display.html?Status=Active&Queue=<% $queue->{Name} |u %>"><% $queue->{Name} %></a></td>
+<td><a href="<% RT->Config->Get("WebPath")%>/Dist/Display.html?Status=Active&Queue=<% $queue->{Name} |u %>"><% $queue->{Name} %></a></td>
 %   for my $condition (@$conditions) {
 %       $Tickets->FromSQL( "Queue = $queue->{id} AND ". $condition->{cond} );
-<td align="right"><a href="<% $RT::WebPath%>/Dist/Display.html?Status=<% $condition->{status} |u %>&Queue=<% $queue->{Name} |u %>"><% $Tickets->Count %></a></td>
+<td align="right"><a href="<% RT->Config->Get("WebPath")%>/Dist/Display.html?Status=<% $condition->{status} |u %>&Queue=<% $queue->{Name} |u %>"><% $Tickets->Count %></a></td>
 %   }
 </tr>
 % }
diff --git a/html/Elements/Quicksearch b/html/Elements/Quicksearch
index 5c85e4d..18b4944 100755
--- a/html/Elements/Quicksearch
+++ b/html/Elements/Quicksearch
@@ -47,7 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 <div class="ticket-overview">
 <&|/Widgets/TitleBox, title => loc("Quick search"), bodyclass => "",
-   titleright => loc("Edit"), titleright_href => $RT::WebPath.'/Prefs/Quicksearch.html' &>
+   titleright => loc("Edit"), titleright_href => RT->Config->Get("WebPath").'/Prefs/Quicksearch.html' &>
 <& /Elements/QueueSummary,
    cache => 'quick_search_queues',
    queue_filter => sub { $_->CurrentUserHasRight('ShowTicket') && !exists $unwanted->{$_->Name} },
diff --git a/html/Elements/SelectOwner b/html/Elements/SelectOwner
index bb2432a..ec5cfb6 100755
--- a/html/Elements/SelectOwner
+++ b/html/Elements/SelectOwner
@@ -98,13 +98,13 @@ if (not $Lite) {
                              IncludeSuperusers      => 0);
 
         while (my $User = $Users->Next) {
-            next if ($User->id == $RT::Nobody->id); # skip nobody here, so we can make them first later
+            next if ($User->id == RT->Nobody->id); # skip nobody here, so we can make them first later
             $user_uniq_hash{$User->Id()} = $User;
         }
     }
 
     @users = sort { uc($a->Name) cmp uc($b->Name) } values %user_uniq_hash; 
-    unshift @users, $RT::Nobody;
+    unshift @users, RT->Nobody;
 }
 </%INIT>
 
diff --git a/html/NoAuth/dhandler b/html/NoAuth/dhandler
index b68ad46..a502cd0 100755
--- a/html/NoAuth/dhandler
+++ b/html/NoAuth/dhandler
@@ -49,19 +49,19 @@
 my $path = $m->dhandler_arg;
 
 if    ($path =~ m|^ReportBug.html|) {
-    $m->redirect( $RT::WebPath .'/Public/Bug/Report.html?Queue=' . $ARGS{Queue});
+    $m->redirect( RT->Config->Get("WebPath") .'/Public/Bug/Report.html?Queue=' . $ARGS{Queue});
 }
 elsif ($path =~ m|^Bugs.html|) {
-    $m->redirect( $RT::WebPath .'/Public/Dist/Display.html?Name=' . $ARGS{Dist});
+    $m->redirect( RT->Config->Get("WebPath") .'/Public/Dist/Display.html?Name=' . $ARGS{Dist});
 }
 elsif ($path =~ m|^Dists.html|) {
-    $m->redirect( $RT::WebPath .'/Public/Search/Simple.html?q=' . $ARGS{Queue});
+    $m->redirect( RT->Config->Get("WebPath") .'/Public/Search/Simple.html?q=' . $ARGS{Queue});
 }
 elsif ($path =~ m|^Bug.html|) {
-    $m->redirect( $RT::WebPath .'/Public/Bug/Display.html?id=' . $ARGS{id});
+    $m->redirect( RT->Config->Get("WebPath") .'/Public/Bug/Display.html?id=' . $ARGS{id});
 }
 elsif ($path =~ m|^bugs.tsv|) {
-    $m->redirect( $RT::WebPath .'/Public/Dist/bugs.tsv?Dist=' . $ARGS{Dist});
+    $m->redirect( RT->Config->Get("WebPath") .'/Public/Dist/bugs.tsv?Dist=' . $ARGS{Dist});
 }
 else {
     $m->decline;
diff --git a/html/Public/RT/CPAN/About.html b/html/Public/RT/CPAN/About.html
index 27ea4da..a3b5b80 100644
--- a/html/Public/RT/CPAN/About.html
+++ b/html/Public/RT/CPAN/About.html
@@ -10,7 +10,7 @@
       <a href="http://cpan.org">CPAN</a>.
     </p>
 
-    <p>Quick usage guidelines can be found on <a href="<% $RT::WebPath %>/NoAuth/Logout.html">the main page</a></p>
+    <p>Quick usage guidelines can be found on <a href="<% RT->Config->Get("WebPath") %>/NoAuth/Logout.html">the main page</a></p>
 
     <h2>Recommendations (soft rules)</h2>
     <h3>For reporters</h3>
diff --git a/html/Search/Bulk.html b/html/Search/Bulk.html
index 95fcaee..61ad6db 100755
--- a/html/Search/Bulk.html
+++ b/html/Search/Bulk.html
@@ -56,7 +56,7 @@
     Order => $Order &>
 
 <& /Elements/ListActions, actions => \@results &>
-<form method="post" action="<%$RT::WebPath%>/Search/Bulk.html" enctype="multipart/form-data">
+<form method="post" action="<%RT->Config->Get("WebPath")%>/Search/Bulk.html" enctype="multipart/form-data">
 % foreach my $var qw(Query Format OrderBy Order Rows Page) {
 <input type="hidden" class="hidden" name="<%$var%>" value="<%$ARGS{$var}%>" />
 %}
@@ -69,7 +69,7 @@
     Order => $Order,
     Rows => $Rows,
     Page => $Page,
-    BaseURL => $RT::WebPath."/Search/Bulk.html?"
+    BaseURL => RT->Config->Get("WebPath")."/Search/Bulk.html?"
    &>
 
 <hr>
@@ -179,7 +179,7 @@ $cfs->LimitToQueue($_) for keys %$seen_queues;
 <td><& /Elements/EditCustomFieldText, @add &></td>
 <td> </td>
 % } else {
-%   $RT::Logger->crit("Unknown CustomField type: " . $cf->Type);
+%   RT->Logger->crit("Unknown CustomField type: " . $cf->Type);
 % }
 </tr>
 % }
@@ -207,7 +207,7 @@ my (@results);
 
 $Page ||= 1;
 
-$Format ||= $RT::DefaultSearchResultFormat;
+$Format ||= RT->Config->Get("DefaultSearchResultFormat");
 
 # inject _CHECKBOX to the first field.
 $Format =~ s/'?([^']+)'?,/'___CHECKBOX__$1',/;
@@ -326,7 +326,7 @@ while ( my $Ticket = $Tickets->Next ) {
             $op = 'del';
         }
         else {
-            $RT::Logger->crit(
+            RT->Logger->crit(
                 "Got an op that was neither add nor delete. can never happen"
                   . $list->[0] );
             last;
diff --git a/html/Search/Listing.html b/html/Search/Listing.html
index fa03df3..8458fa9 100755
--- a/html/Search/Listing.html
+++ b/html/Search/Listing.html
@@ -50,7 +50,7 @@
 
 <p>
   Old searches don't work due to the upgrade to the RT 3.5 branch.  To
-  reconstruct your search, go to the <a href="<%$RT::WebPath%>/Search/Build.html">search builder</a>.
+  reconstruct your search, go to the <a href="<%RT->Config->Get("WebPath")%>/Search/Build.html">search builder</a>.
 </p>
 
 

commit 06f96c7e9d0d9e223670dfca4763baccb484e7ef
Author: Thomas Sibley <trs at bestpractical.com>
Date:   Tue Feb 26 16:50:28 2013 -0800

    Update disabling of the Quick Search prefs
    
    While we're at it, remove all links to that prefs page so that most
    people won't see the "Sorry, you can't" message.

diff --git a/html/Callbacks/rt_cpan_org/Elements/Tabs/Privileged b/html/Callbacks/rt_cpan_org/Elements/Tabs/Privileged
index 1860be0..79d5837 100644
--- a/html/Callbacks/rt_cpan_org/Elements/Tabs/Privileged
+++ b/html/Callbacks/rt_cpan_org/Elements/Tabs/Privileged
@@ -2,4 +2,8 @@
 if (my $actions = PageMenu->child("actions")) {
     $actions->delete("comment");
 }
+
+if (my $settings = Menu->child("preferences")->child("settings")) {
+    $settings->delete("quicksearch");
+}
 </%init>
diff --git a/html/Elements/Quicksearch b/html/Elements/Quicksearch
index 18b4944..868fb9c 100755
--- a/html/Elements/Quicksearch
+++ b/html/Elements/Quicksearch
@@ -46,8 +46,7 @@
 %# 
 %# END BPS TAGGED BLOCK }}}
 <div class="ticket-overview">
-<&|/Widgets/TitleBox, title => loc("Quick search"), bodyclass => "",
-   titleright => loc("Edit"), titleright_href => RT->Config->Get("WebPath").'/Prefs/Quicksearch.html' &>
+<&|/Widgets/TitleBox, title => loc("Quick search"), bodyclass => "" &>
 <& /Elements/QueueSummary,
    cache => 'quick_search_queues',
    queue_filter => sub { $_->CurrentUserHasRight('ShowTicket') && !exists $unwanted->{$_->Name} },
diff --git a/html/Prefs/Quicksearch.html b/html/Prefs/Quicksearch.html
index e50db90..4744875 100644
--- a/html/Prefs/Quicksearch.html
+++ b/html/Prefs/Quicksearch.html
@@ -1,40 +1,40 @@
 %# BEGIN BPS TAGGED BLOCK {{{
-%# 
+%#
 %# COPYRIGHT:
-%#  
-%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
-%#                                          <jesse at bestpractical.com>
-%# 
+%#
+%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
+%#                                          <sales at bestpractical.com>
+%#
 %# (Except where explicitly superseded by other copyright notices)
-%# 
-%# 
+%#
+%#
 %# LICENSE:
-%# 
+%#
 %# This work is made available to you under the terms of Version 2 of
 %# the GNU General Public License. A copy of that license should have
 %# been provided with this software, but in any event can be snarfed
 %# from www.gnu.org.
-%# 
+%#
 %# This work is distributed in the hope that it will be useful, but
 %# WITHOUT ANY WARRANTY; without even the implied warranty of
 %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 %# General Public License for more details.
-%# 
+%#
 %# You should have received a copy of the GNU General Public License
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
-%# 
-%# 
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
+%#
+%#
 %# CONTRIBUTION SUBMISSION POLICY:
-%# 
+%#
 %# (The following paragraph is not intended to limit the rights granted
 %# to you to modify and distribute this software under the terms of
 %# the GNU General Public License and is only of importance to you if
 %# you choose to contribute your changes and enhancements to the
 %# community by submitting them to Best Practical Solutions, LLC.)
-%# 
+%#
 %# By intentionally submitting any modifications, corrections or
 %# derivatives to this work, or any other work intended for use with
 %# Request Tracker, to Best Practical Solutions, LLC, you confirm that
@@ -43,19 +43,11 @@
 %# royalty-free, perpetual, license to use, copy, create derivative
 %# works based on those contributions, and sublicense and distribute
 %# those contributions and any derivatives thereof.
-%# 
+%#
 %# END BPS TAGGED BLOCK }}}
-<& /Elements/Header, Title => $title &>
-<& /Prefs/Elements/Tabs,
-    current_tab => 'Prefs/MyRT.html',
-    current_subtab => 'Prefs/Quicksearch.html',
-    Title => $title
-&>
+<& /Elements/Header, Title => loc("Customize").' '.loc("Quick search") &>
+<& /Elements/Tabs &>
 
 <p>
-  Customization of the Quick Search is disabled for the time being.
+  <&|/l&>Customization of the Quick Search is disabled due to the number of queues.</&>
 </p>
-
-<%INIT>
-my $title = loc("Customize").' '.loc("Quick search");
-</%INIT>

commit dc9447c971e92719667da1a961dc42218ca3091c
Author: Thomas Sibley <trs at bestpractical.com>
Date:   Tue Feb 26 16:51:50 2013 -0800

    Update M::I and build framework

diff --git a/META.yml b/META.yml
index 606c710..6e28978 100644
--- a/META.yml
+++ b/META.yml
@@ -3,11 +3,12 @@ abstract: 'The customizations that turn a RT into a RT for rt.cpan.org'
 author:
   - 'Thomas Sibley <trs at bestpractical.com>'
 build_requires:
-  ExtUtils::MakeMaker: 6.42
+  ExtUtils::MakeMaker: 6.59
 configure_requires:
-  ExtUtils::MakeMaker: 6.42
+  ExtUtils::MakeMaker: 6.59
 distribution_type: module
-generated_by: 'Module::Install version 0.97'
+dynamic_config: 1
+generated_by: 'Module::Install version 1.06'
 license: gpl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -22,4 +23,4 @@ requires:
   perl: 5.8.3
 resources:
   license: http://opensource.org/licenses/gpl-license.php
-version: 0.03
+version: 4.0
diff --git a/README b/README
index 8bd0531..cc64575 100644
--- a/README
+++ b/README
@@ -2,18 +2,6 @@ NAME
     RT::Extension::rt_cpan_org - The customizations that turn a RT into a RT
     for rt.cpan.org
 
-DESCRIPTION
-OVERLAYS AND CUSTOMIZATIONS
-  autohandler
-    *   $goto argument
-
-    *   $nossl argument and redirect to https in some cases
-
-    *   rewriting Web* options depending on schema (http/https)
-
-    *   XXX: old code was disabling everything related to SelfService. Not
-        sure why. Should be checked.
-
 AUTHOR
     Thomas Sibley <trs at bestpractical.com>
 
diff --git a/inc/Module/Install.pm b/inc/Module/Install.pm
index 5871e1e..4ecf46b 100644
--- a/inc/Module/Install.pm
+++ b/inc/Module/Install.pm
@@ -22,7 +22,6 @@ use strict 'vars';
 use Cwd        ();
 use File::Find ();
 use File::Path ();
-use FindBin;
 
 use vars qw{$VERSION $MAIN};
 BEGIN {
@@ -32,7 +31,7 @@ BEGIN {
 	# This is not enforced yet, but will be some time in the next few
 	# releases once we can make sure it won't clash with custom
 	# Module::Install extensions.
-	$VERSION = '0.97';
+	$VERSION = '1.06';
 
 	# Storage for the pseudo-singleton
 	$MAIN    = undef;
@@ -231,7 +230,12 @@ sub preload {
 sub new {
 	my ($class, %args) = @_;
 
-	FindBin->again;
+	delete $INC{'FindBin.pm'};
+	{
+		# to suppress the redefine warning
+		local $SIG{__WARN__} = sub {};
+		require FindBin;
+	}
 
 	# ignore the prefix on extension modules built from top level.
 	my $base_path = Cwd::abs_path($FindBin::Bin);
@@ -447,7 +451,7 @@ sub _version ($) {
 }
 
 sub _cmp ($$) {
-	_version($_[0]) <=> _version($_[1]);
+	_version($_[1]) <=> _version($_[2]);
 }
 
 # Cloned from Params::Util::_CLASS
@@ -463,4 +467,4 @@ sub _CLASS ($) {
 
 1;
 
-# Copyright 2008 - 2010 Adam Kennedy.
+# Copyright 2008 - 2012 Adam Kennedy.
diff --git a/inc/Module/Install/Base.pm b/inc/Module/Install/Base.pm
index 754fb90..802844a 100644
--- a/inc/Module/Install/Base.pm
+++ b/inc/Module/Install/Base.pm
@@ -4,7 +4,7 @@ package Module::Install::Base;
 use strict 'vars';
 use vars qw{$VERSION};
 BEGIN {
-	$VERSION = '0.97';
+	$VERSION = '1.06';
 }
 
 # Suspend handler for "redefined" warnings
diff --git a/inc/Module/Install/Can.pm b/inc/Module/Install/Can.pm
index 5757a67..22167b8 100644
--- a/inc/Module/Install/Can.pm
+++ b/inc/Module/Install/Can.pm
@@ -3,13 +3,12 @@ package Module::Install::Can;
 
 use strict;
 use Config                ();
-use File::Spec            ();
 use ExtUtils::MakeMaker   ();
 use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.97';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -29,7 +28,7 @@ sub can_use {
 	eval { require $mod; $pkg->VERSION($ver || 0); 1 };
 }
 
-# check if we can run some command
+# Check if we can run some command
 sub can_run {
 	my ($self, $cmd) = @_;
 
@@ -38,14 +37,88 @@ sub can_run {
 
 	for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') {
 		next if $dir eq '';
-		my $abs = File::Spec->catfile($dir, $_[1]);
+		require File::Spec;
+		my $abs = File::Spec->catfile($dir, $cmd);
 		return $abs if (-x $abs or $abs = MM->maybe_command($abs));
 	}
 
 	return;
 }
 
-# can we locate a (the) C compiler
+# Can our C compiler environment build XS files
+sub can_xs {
+	my $self = shift;
+
+	# Ensure we have the CBuilder module
+	$self->configure_requires( 'ExtUtils::CBuilder' => 0.27 );
+
+	# Do we have the configure_requires checker?
+	local $@;
+	eval "require ExtUtils::CBuilder;";
+	if ( $@ ) {
+		# They don't obey configure_requires, so it is
+		# someone old and delicate. Try to avoid hurting
+		# them by falling back to an older simpler test.
+		return $self->can_cc();
+	}
+
+	# Do we have a working C compiler
+	my $builder = ExtUtils::CBuilder->new(
+		quiet => 1,
+	);
+	unless ( $builder->have_compiler ) {
+		# No working C compiler
+		return 0;
+	}
+
+	# Write a C file representative of what XS becomes
+	require File::Temp;
+	my ( $FH, $tmpfile ) = File::Temp::tempfile(
+		"compilexs-XXXXX",
+		SUFFIX => '.c',
+	);
+	binmode $FH;
+	print $FH <<'END_C';
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+
+int main(int argc, char **argv) {
+    return 0;
+}
+
+int boot_sanexs() {
+    return 1;
+}
+
+END_C
+	close $FH;
+
+	# Can the C compiler access the same headers XS does
+	my @libs   = ();
+	my $object = undef;
+	eval {
+		local $^W = 0;
+		$object = $builder->compile(
+			source => $tmpfile,
+		);
+		@libs = $builder->link(
+			objects     => $object,
+			module_name => 'sanexs',
+		);
+	};
+	my $result = $@ ? 0 : 1;
+
+	# Clean up all the build files
+	foreach ( $tmpfile, $object, @libs ) {
+		next unless defined $_;
+		1 while unlink;
+	}
+
+	return $result;
+}
+
+# Can we locate a (the) C compiler
 sub can_cc {
 	my $self   = shift;
 	my @chunks = split(/ /, $Config::Config{cc}) or return;
@@ -78,4 +151,4 @@ if ( $^O eq 'cygwin' ) {
 
 __END__
 
-#line 156
+#line 236
diff --git a/inc/Module/Install/Fetch.pm b/inc/Module/Install/Fetch.pm
index 4f77e2e..bee0c4f 100644
--- a/inc/Module/Install/Fetch.pm
+++ b/inc/Module/Install/Fetch.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.97';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Makefile.pm b/inc/Module/Install/Makefile.pm
index 20955cd..7052f36 100644
--- a/inc/Module/Install/Makefile.pm
+++ b/inc/Module/Install/Makefile.pm
@@ -4,10 +4,11 @@ package Module::Install::Makefile;
 use strict 'vars';
 use ExtUtils::MakeMaker   ();
 use Module::Install::Base ();
+use Fcntl qw/:flock :seek/;
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.97';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -214,18 +215,22 @@ sub write {
 	require ExtUtils::MakeMaker;
 
 	if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) {
-		# MakeMaker can complain about module versions that include
-		# an underscore, even though its own version may contain one!
-		# Hence the funny regexp to get rid of it.  See RT #35800
-		# for details.
-		my $v = $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/;
-		$self->build_requires(     'ExtUtils::MakeMaker' => $v );
-		$self->configure_requires( 'ExtUtils::MakeMaker' => $v );
+		# This previous attempted to inherit the version of
+		# ExtUtils::MakeMaker in use by the module author, but this
+		# was found to be untenable as some authors build releases
+		# using future dev versions of EU:MM that nobody else has.
+		# Instead, #toolchain suggests we use 6.59 which is the most
+		# stable version on CPAN at time of writing and is, to quote
+		# ribasushi, "not terminally fucked, > and tested enough".
+		# TODO: We will now need to maintain this over time to push
+		# the version up as new versions are released.
+		$self->build_requires(     'ExtUtils::MakeMaker' => 6.59 );
+		$self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 );
 	} else {
 		# Allow legacy-compatibility with 5.005 by depending on the
 		# most recent EU:MM that supported 5.005.
-		$self->build_requires(     'ExtUtils::MakeMaker' => 6.42 );
-		$self->configure_requires( 'ExtUtils::MakeMaker' => 6.42 );
+		$self->build_requires(     'ExtUtils::MakeMaker' => 6.36 );
+		$self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 );
 	}
 
 	# Generate the MakeMaker params
@@ -240,7 +245,6 @@ in a module, and provide its file path via 'version_from' (or
 'all_from' if you prefer) in Makefile.PL.
 EOT
 
-	$DB::single = 1;
 	if ( $self->tests ) {
 		my @tests = split ' ', $self->tests;
 		my %seen;
@@ -364,9 +368,9 @@ sub fix_up_makefile {
 		. ($self->postamble || '');
 
 	local *MAKEFILE;
-	open MAKEFILE, "< $makefile_name" or die "fix_up_makefile: Couldn't open $makefile_name: $!";
+	open MAKEFILE, "+< $makefile_name" or die "fix_up_makefile: Couldn't open $makefile_name: $!";
+	eval { flock MAKEFILE, LOCK_EX };
 	my $makefile = do { local $/; <MAKEFILE> };
-	close MAKEFILE or die $!;
 
 	$makefile =~ s/\b(test_harness\(\$\(TEST_VERBOSE\), )/$1'inc', /;
 	$makefile =~ s/( -I\$\(INST_ARCHLIB\))/ -Iinc$1/g;
@@ -386,7 +390,8 @@ sub fix_up_makefile {
 	# XXX - This is currently unused; not sure if it breaks other MM-users
 	# $makefile =~ s/^pm_to_blib\s+:\s+/pm_to_blib :: /mg;
 
-	open  MAKEFILE, "> $makefile_name" or die "fix_up_makefile: Couldn't open $makefile_name: $!";
+	seek MAKEFILE, 0, SEEK_SET;
+	truncate MAKEFILE, 0;
 	print MAKEFILE  "$preamble$makefile$postamble" or die $!;
 	close MAKEFILE  or die $!;
 
@@ -410,4 +415,4 @@ sub postamble {
 
 __END__
 
-#line 539
+#line 544
diff --git a/inc/Module/Install/Metadata.pm b/inc/Module/Install/Metadata.pm
index bebb73f..58430f3 100644
--- a/inc/Module/Install/Metadata.pm
+++ b/inc/Module/Install/Metadata.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.97';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -151,15 +151,21 @@ sub install_as_site   { $_[0]->installdirs('site')   }
 sub install_as_vendor { $_[0]->installdirs('vendor') }
 
 sub dynamic_config {
-	my $self = shift;
-	unless ( @_ ) {
-		warn "You MUST provide an explicit true/false value to dynamic_config\n";
-		return $self;
+	my $self  = shift;
+	my $value = @_ ? shift : 1;
+	if ( $self->{values}->{dynamic_config} ) {
+		# Once dynamic we never change to static, for safety
+		return 0;
 	}
-	$self->{values}->{dynamic_config} = $_[0] ? 1 : 0;
+	$self->{values}->{dynamic_config} = $value ? 1 : 0;
 	return 1;
 }
 
+# Convenience command
+sub static_config {
+	shift->dynamic_config(0);
+}
+
 sub perl_version {
 	my $self = shift;
 	return $self->{values}->{perl_version} unless @_;
@@ -170,7 +176,7 @@ sub perl_version {
 	# Normalize the version
 	$version = $self->_perl_version($version);
 
-	# We don't support the reall old versions
+	# We don't support the really old versions
 	unless ( $version >= 5.005 ) {
 		die "Module::Install only supports 5.005 or newer (use ExtUtils::MakeMaker)\n";
 	}
@@ -515,6 +521,7 @@ sub __extract_license {
 		'GNU Free Documentation license'     => 'unrestricted', 1,
 		'GNU Affero General Public License'  => 'open_source',  1,
 		'(?:Free)?BSD license'               => 'bsd',          1,
+		'Artistic license 2\.0'              => 'artistic_2',   1,
 		'Artistic license'                   => 'artistic',     1,
 		'Apache (?:Software )?license'       => 'apache',       1,
 		'GPL'                                => 'gpl',          1,
@@ -550,9 +557,9 @@ sub license_from {
 
 sub _extract_bugtracker {
 	my @links   = $_[0] =~ m#L<(
-	 \Qhttp://rt.cpan.org/\E[^>]+|
-	 \Qhttp://github.com/\E[\w_]+/[\w_]+/issues|
-	 \Qhttp://code.google.com/p/\E[\w_\-]+/issues/list
+	 https?\Q://rt.cpan.org/\E[^>]+|
+	 https?\Q://github.com/\E[\w_]+/[\w_]+/issues|
+	 https?\Q://code.google.com/p/\E[\w_\-]+/issues/list
 	 )>#gx;
 	my %links;
 	@links{@links}=();
@@ -581,7 +588,7 @@ sub bugtracker_from {
 sub requires_from {
 	my $self     = shift;
 	my $content  = Module::Install::_readperl($_[0]);
-	my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg;
+	my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+(v?[\d\.]+)/mg;
 	while ( @requires ) {
 		my $module  = shift @requires;
 		my $version = shift @requires;
@@ -616,8 +623,15 @@ sub _perl_version {
 	return $v;
 }
 
-
-
+sub add_metadata {
+    my $self = shift;
+    my %hash = @_;
+    for my $key (keys %hash) {
+        warn "add_metadata: $key is not prefixed with 'x_'.\n" .
+             "Use appopriate function to add non-private metadata.\n" unless $key =~ /^x_/;
+        $self->{values}->{$key} = $hash{$key};
+    }
+}
 
 
 ######################################################################
diff --git a/inc/Module/Install/RTx.pm b/inc/Module/Install/RTx.pm
index 5480124..abf6aea 100644
--- a/inc/Module/Install/RTx.pm
+++ b/inc/Module/Install/RTx.pm
@@ -8,13 +8,13 @@ no warnings 'once';
 
 use Module::Install::Base;
 use base 'Module::Install::Base';
-our $VERSION = '0.25';
+our $VERSION = '0.30';
 
 use FindBin;
 use File::Glob     ();
 use File::Basename ();
 
-my @DIRS = qw(etc lib html bin sbin po var);
+my @DIRS = qw(etc lib html static bin sbin po var);
 my @INDEX_DIRS = qw(lib bin sbin);
 
 sub RTx {
@@ -42,10 +42,10 @@ sub RTx {
         $INC{'RT.pm'} = "$RT::LocalPath/lib/RT.pm";
     } else {
         local @INC = (
-            @INC,
             $ENV{RTHOME} ? ( $ENV{RTHOME}, "$ENV{RTHOME}/lib" ) : (),
-            map { ( "$_/rt3/lib", "$_/lib/rt3", "$_/lib" ) } grep $_,
-            @prefixes
+            @INC,
+            map { ( "$_/rt4/lib", "$_/lib/rt4", "$_/rt3/lib", "$_/lib/rt3", "$_/lib" )
+                } grep $_, @prefixes
         );
         until ( eval { require RT; $RT::LocalPath } ) {
             warn
@@ -60,11 +60,13 @@ sub RTx {
     my $local_lib_path = "$RT::LocalPath/lib";
     print "Using RT configuration from $INC{'RT.pm'}:\n";
     unshift @INC, "$RT::LocalPath/lib" if $RT::LocalPath;
+    unshift @INC, $lib_path;
 
-    $RT::LocalVarPath  ||= $RT::VarPath;
-    $RT::LocalPoPath   ||= $RT::LocalLexiconPath;
-    $RT::LocalHtmlPath ||= $RT::MasonComponentRoot;
-    $RT::LocalLibPath  ||= "$RT::LocalPath/lib";
+    $RT::LocalVarPath    ||= $RT::VarPath;
+    $RT::LocalPoPath     ||= $RT::LocalLexiconPath;
+    $RT::LocalHtmlPath   ||= $RT::MasonComponentRoot;
+    $RT::LocalStaticPath ||= $RT::StaticPath;
+    $RT::LocalLibPath    ||= "$RT::LocalPath/lib";
 
     my $with_subdirs = $ENV{WITH_SUBDIRS};
     @ARGV = grep { /WITH_SUBDIRS=(.*)/ ? ( ( $with_subdirs = $1 ), 0 ) : 1 }
@@ -128,18 +130,7 @@ install ::
 
     my %has_etc;
     if ( File::Glob::bsd_glob("$FindBin::Bin/etc/schema.*") ) {
-
-        # got schema, load factory module
         $has_etc{schema}++;
-        $self->load('RTxFactory');
-        $self->postamble(<< ".");
-factory ::
-\t\$(NOECHO) \$(PERL) -Ilib -I"$local_lib_path" -I"$lib_path" -Minc::Module::Install -e"RTxFactory(qw($RTx $name))"
-
-dropdb ::
-\t\$(NOECHO) \$(PERL) -Ilib -I"$local_lib_path" -I"$lib_path" -Minc::Module::Install -e"RTxFactory(qw($RTx $name drop))"
-
-.
     }
     if ( File::Glob::bsd_glob("$FindBin::Bin/etc/acl.*") ) {
         $has_etc{acl}++;
@@ -163,30 +154,59 @@ dropdb ::
         print "For first-time installation, type 'make initdb'.\n";
         my $initdb = '';
         $initdb .= <<"." if $has_etc{schema};
-\t\$(NOECHO) \$(PERL) -Ilib -I"$local_lib_path" -I"$lib_path" -Minc::Module::Install -e"RTxInitDB(qw(schema))"
+\t\$(NOECHO) \$(PERL) -Ilib -I"$local_lib_path" -I"$lib_path" -Minc::Module::Install -e"RTxInitDB(qw(schema \$(NAME) \$(VERSION)))"
 .
         $initdb .= <<"." if $has_etc{acl};
-\t\$(NOECHO) \$(PERL) -Ilib -I"$local_lib_path" -I"$lib_path" -Minc::Module::Install -e"RTxInitDB(qw(acl))"
+\t\$(NOECHO) \$(PERL) -Ilib -I"$local_lib_path" -I"$lib_path" -Minc::Module::Install -e"RTxInitDB(qw(acl \$(NAME) \$(VERSION)))"
 .
         $initdb .= <<"." if $has_etc{initialdata};
-\t\$(NOECHO) \$(PERL) -Ilib -I"$local_lib_path" -I"$lib_path" -Minc::Module::Install -e"RTxInitDB(qw(insert))"
+\t\$(NOECHO) \$(PERL) -Ilib -I"$local_lib_path" -I"$lib_path" -Minc::Module::Install -e"RTxInitDB(qw(insert \$(NAME) \$(VERSION)))"
 .
         $self->postamble("initdb ::\n$initdb\n");
         $self->postamble("initialize-database ::\n$initdb\n");
     }
 }
 
-sub RTxInit {
-    unshift @INC, substr( delete( $INC{'RT.pm'} ), 0, -5 ) if $INC{'RT.pm'};
-    require RT;
-    RT::LoadConfig();
-    RT::ConnectToDatabase();
+# stolen from RT::Handle so we work on 3.6 (cmp_versions came in with 3.8)
+{ my %word = (
+    a     => -4,
+    alpha => -4,
+    b     => -3,
+    beta  => -3,
+    pre   => -2,
+    rc    => -1,
+    head  => 9999,
+);
+sub cmp_version($$) {
+    my ($a, $b) = (@_);
+    my @a = grep defined, map { /^[0-9]+$/? $_ : /^[a-zA-Z]+$/? $word{$_}|| -10 : undef }
+        split /([^0-9]+)/, $a;
+    my @b = grep defined, map { /^[0-9]+$/? $_ : /^[a-zA-Z]+$/? $word{$_}|| -10 : undef }
+        split /([^0-9]+)/, $b;
+    @a > @b
+        ? push @b, (0) x (@a- at b)
+        : push @a, (0) x (@b- at a);
+    for ( my $i = 0; $i < @a; $i++ ) {
+        return $a[$i] <=> $b[$i] if $a[$i] <=> $b[$i];
+    }
+    return 0;
+}}
+sub requires_rt {
+    my ($self,$version) = @_;
+
+    # if we're exactly the same version as what we want, silently return
+    return if ($version eq $RT::VERSION);
 
-    die "Cannot load RT" unless $RT::Handle and $RT::DatabaseType;
+    my @sorted = sort cmp_version $version,$RT::VERSION;
+
+    if ($sorted[-1] eq $version) {
+        # should we die?
+        warn "\nWarning: prerequisite RT $version not found. Your installed version of RT ($RT::VERSION) is too old.\n\n";
+    }
 }
 
 1;
 
 __END__
 
-#line 303
+#line 329
diff --git a/inc/Module/Install/ReadmeFromPod.pm b/inc/Module/Install/ReadmeFromPod.pm
index d5d89f4..6a80818 100644
--- a/inc/Module/Install/ReadmeFromPod.pm
+++ b/inc/Module/Install/ReadmeFromPod.pm
@@ -1,36 +1,138 @@
 #line 1
 package Module::Install::ReadmeFromPod;
 
+use 5.006;
 use strict;
 use warnings;
 use base qw(Module::Install::Base);
 use vars qw($VERSION);
 
-$VERSION = '0.08';
+$VERSION = '0.20';
 
 sub readme_from {
   my $self = shift;
-  return unless $Module::Install::AUTHOR;
-  my $file = shift || return;
-  my $clean = shift;
-  require Pod::Text;
-  my $parser = Pod::Text->new();
-  open README, '> README' or die "$!\n";
-  $parser->output_fh( *README );
-  $parser->parse_file( $file );
-  return 1 unless $clean;
-  $self->postamble(<<"END");
-distclean :: license_clean
-
-license_clean:
-\t\$(RM_F) README
-END
+  return unless $self->is_admin;
+
+  # Input file
+  my $in_file  = shift || $self->_all_from
+    or die "Can't determine file to make readme_from";
+
+  # Get optional arguments
+  my ($clean, $format, $out_file, $options);
+  my $args = shift;
+  if ( ref $args ) {
+    # Arguments are in a hashref
+    if ( ref($args) ne 'HASH' ) {
+      die "Expected a hashref but got a ".ref($args)."\n";
+    } else {
+      $clean    = $args->{'clean'};
+      $format   = $args->{'format'};
+      $out_file = $args->{'output_file'};
+      $options  = $args->{'options'};
+    }
+  } else {
+    # Arguments are in a list
+    $clean    = $args;
+    $format   = shift;
+    $out_file = shift;
+    $options  = \@_;
+  }
+
+  # Default values;
+  $clean  ||= 0;
+  $format ||= 'txt';
+
+  # Generate README
+  print "readme_from $in_file to $format\n";
+  if ($format =~ m/te?xt/) {
+    $out_file = $self->_readme_txt($in_file, $out_file, $options);
+  } elsif ($format =~ m/html?/) {
+    $out_file = $self->_readme_htm($in_file, $out_file, $options);
+  } elsif ($format eq 'man') {
+    $out_file = $self->_readme_man($in_file, $out_file, $options);
+  } elsif ($format eq 'pdf') {
+    $out_file = $self->_readme_pdf($in_file, $out_file, $options);
+  }
+
+  if ($clean) {
+    $self->clean_files($out_file);
+  }
+
   return 1;
 }
 
+
+sub _readme_txt {
+  my ($self, $in_file, $out_file, $options) = @_;
+  $out_file ||= 'README';
+  require Pod::Text;
+  my $parser = Pod::Text->new( @$options );
+  open my $out_fh, '>', $out_file or die "Could not write file $out_file:\n$!\n";
+  $parser->output_fh( *$out_fh );
+  $parser->parse_file( $in_file );
+  close $out_fh;
+  return $out_file;
+}
+
+
+sub _readme_htm {
+  my ($self, $in_file, $out_file, $options) = @_;
+  $out_file ||= 'README.htm';
+  require Pod::Html;
+  Pod::Html::pod2html(
+    "--infile=$in_file",
+    "--outfile=$out_file",
+    @$options,
+  );
+  # Remove temporary files if needed
+  for my $file ('pod2htmd.tmp', 'pod2htmi.tmp') {
+    if (-e $file) {
+      unlink $file or warn "Warning: Could not remove file '$file'.\n$!\n";
+    }
+  }
+  return $out_file;
+}
+
+
+sub _readme_man {
+  my ($self, $in_file, $out_file, $options) = @_;
+  $out_file ||= 'README.1';
+  require Pod::Man;
+  my $parser = Pod::Man->new( @$options );
+  $parser->parse_from_file($in_file, $out_file);
+  return $out_file;
+}
+
+
+sub _readme_pdf {
+  my ($self, $in_file, $out_file, $options) = @_;
+  $out_file ||= 'README.pdf';
+  eval { require App::pod2pdf; }
+    or die "Could not generate $out_file because pod2pdf could not be found\n";
+  my $parser = App::pod2pdf->new( @$options );
+  $parser->parse_from_file($in_file);
+  open my $out_fh, '>', $out_file or die "Could not write file $out_file:\n$!\n";
+  select $out_fh;
+  $parser->output;
+  select STDOUT;
+  close $out_fh;
+  return $out_file;
+}
+
+
+sub _all_from {
+  my $self = shift;
+  return unless $self->admin->{extensions};
+  my ($metadata) = grep {
+    ref($_) eq 'Module::Install::Metadata';
+  } @{$self->admin->{extensions}};
+  return unless $metadata;
+  return $metadata->{values}{all_from} || '';
+}
+
 'Readme!';
 
 __END__
 
-#line 89
+#line 254
 
diff --git a/inc/Module/Install/Win32.pm b/inc/Module/Install/Win32.pm
index bbfda8d..eeaa3fe 100644
--- a/inc/Module/Install/Win32.pm
+++ b/inc/Module/Install/Win32.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.97';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/WriteAll.pm b/inc/Module/Install/WriteAll.pm
index e6afa42..85d8018 100644
--- a/inc/Module/Install/WriteAll.pm
+++ b/inc/Module/Install/WriteAll.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '0.97';;
+	$VERSION = '1.06';
 	@ISA     = qw{Module::Install::Base};
 	$ISCORE  = 1;
 }

commit 2630ea4bd54f9915c6185a9845ca234073ebd3c8
Author: Thomas Sibley <trs at bestpractical.com>
Date:   Tue Feb 26 17:22:08 2013 -0800

    Remove support for pre-2006 public dist/bug pages
    
    Nothing should be hitting these URLs, and if they are, it's time to 404
    and get 'em fixed.

diff --git a/html/NoAuth/dhandler b/html/NoAuth/dhandler
deleted file mode 100755
index a502cd0..0000000
--- a/html/NoAuth/dhandler
+++ /dev/null
@@ -1,70 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%# 
-%# COPYRIGHT:
-%#  
-%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
-%#                                          <jesse at bestpractical.com>
-%# 
-%# (Except where explicitly superseded by other copyright notices)
-%# 
-%# 
-%# LICENSE:
-%# 
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%# 
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%# 
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
-%# 
-%# 
-%# CONTRIBUTION SUBMISSION POLICY:
-%# 
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%# 
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%# 
-%# END BPS TAGGED BLOCK }}}
-<%init>
-my $path = $m->dhandler_arg;
-
-if    ($path =~ m|^ReportBug.html|) {
-    $m->redirect( RT->Config->Get("WebPath") .'/Public/Bug/Report.html?Queue=' . $ARGS{Queue});
-}
-elsif ($path =~ m|^Bugs.html|) {
-    $m->redirect( RT->Config->Get("WebPath") .'/Public/Dist/Display.html?Name=' . $ARGS{Dist});
-}
-elsif ($path =~ m|^Dists.html|) {
-    $m->redirect( RT->Config->Get("WebPath") .'/Public/Search/Simple.html?q=' . $ARGS{Queue});
-}
-elsif ($path =~ m|^Bug.html|) {
-    $m->redirect( RT->Config->Get("WebPath") .'/Public/Bug/Display.html?id=' . $ARGS{id});
-}
-elsif ($path =~ m|^bugs.tsv|) {
-    $m->redirect( RT->Config->Get("WebPath") .'/Public/Dist/bugs.tsv?Dist=' . $ARGS{Dist});
-}
-else {
-    $m->decline;
-}
-</%init>
-

-----------------------------------------------------------------------



More information about the Bps-public-commit mailing list