[Bps-public-commit] r10878 - in RT-BugTracker: . html/Callbacks/BugTracker/Elements/Tabs html/Callbacks/BugTracker/Search html/Callbacks/BugTracker/Search/Simple.html html/Dist html/Dist/Elements html/Elements html/Search html/Ticket/Elements inc/.author inc/Module inc/Module/Install lib/RT

ruz at bestpractical.com ruz at bestpractical.com
Tue Feb 19 09:23:06 EST 2008


Author: ruz
Date: Tue Feb 19 09:23:06 2008
New Revision: 10878

Added:
   RT-BugTracker/html/Callbacks/BugTracker/Search/
   RT-BugTracker/html/Callbacks/BugTracker/Search/Simple.html/
   RT-BugTracker/html/Callbacks/BugTracker/Search/Simple.html/ModifyQuery
   RT-BugTracker/html/Ticket/Elements/ShowQueue
Removed:
   RT-BugTracker/MANIFEST.SKIP
   RT-BugTracker/html/Search/
   RT-BugTracker/html/Ticket/Elements/ShowBasics
   RT-BugTracker/inc/.author/
Modified:
   RT-BugTracker/MANIFEST
   RT-BugTracker/META.yml
   RT-BugTracker/Makefile.PL
   RT-BugTracker/html/Callbacks/BugTracker/Elements/Tabs/Default
   RT-BugTracker/html/Dist/BeginsWith.html
   RT-BugTracker/html/Dist/Browse.html
   RT-BugTracker/html/Dist/ByMaintainer.html
   RT-BugTracker/html/Dist/Display.html
   RT-BugTracker/html/Dist/Elements/DistributionList
   RT-BugTracker/html/Dist/Elements/Tabs
   RT-BugTracker/html/Dist/Search.html
   RT-BugTracker/html/Elements/ErrorNoDist
   RT-BugTracker/html/Elements/ErrorNoUser
   RT-BugTracker/html/Ticket/Create.html
   RT-BugTracker/inc/Module/Install.pm
   RT-BugTracker/inc/Module/Install/Base.pm
   RT-BugTracker/inc/Module/Install/Can.pm
   RT-BugTracker/inc/Module/Install/Fetch.pm
   RT-BugTracker/inc/Module/Install/Makefile.pm
   RT-BugTracker/inc/Module/Install/Metadata.pm
   RT-BugTracker/inc/Module/Install/RTx.pm
   RT-BugTracker/inc/Module/Install/Win32.pm
   RT-BugTracker/inc/Module/Install/WriteAll.pm
   RT-BugTracker/lib/RT/BugTracker.pm

Log:
* import 0.02 version from private repo

Modified: RT-BugTracker/MANIFEST
==============================================================================
--- RT-BugTracker/MANIFEST	(original)
+++ RT-BugTracker/MANIFEST	Tue Feb 19 09:23:06 2008
@@ -1,10 +1,16 @@
+html/Callbacks/BugTracker/Elements/Tabs/Default
+html/Callbacks/BugTracker/Search/Simple.html/ModifyQuery
 html/Dist/BeginsWith.html
 html/Dist/Browse.html
 html/Dist/ByMaintainer.html
 html/Dist/Display.html
-html/Elements/DistributionList
+html/Dist/Elements/DistributionList
+html/Dist/Elements/Tabs
+html/Dist/Search.html
 html/Elements/ErrorNoDist
 html/Elements/ErrorNoUser
+html/Ticket/Create.html
+html/Ticket/Elements/ShowQueue
 inc/Module/Install.pm
 inc/Module/Install/Base.pm
 inc/Module/Install/Can.pm

Modified: RT-BugTracker/META.yml
==============================================================================
--- RT-BugTracker/META.yml	(original)
+++ RT-BugTracker/META.yml	Tue Feb 19 09:23:06 2008
@@ -1,12 +1,17 @@
+--- 
 abstract: Adds a UI designed for bug-tracking for developers to RT
-author: Kevin Riggle <kevinr at bestpractical.com>
+author: 
+  - Kevin Riggle <kevinr at bestpractical.com>
 distribution_type: module
-generated_by: Module::Install version 0.63
+generated_by: Module::Install version 0.68
 license: GPL version 2
+meta-spec: 
+  url: http://module-build.sourceforge.net/META-spec-v1.3.html
+  version: 1.3
 name: RT-BugTracker
 no_index: 
   directory: 
     - html
     - inc
     - t
-version: 0.01
+version: 0.02

Modified: RT-BugTracker/Makefile.PL
==============================================================================
--- RT-BugTracker/Makefile.PL	(original)
+++ RT-BugTracker/Makefile.PL	Tue Feb 19 09:23:06 2008
@@ -4,8 +4,7 @@
 
 name            ('RT-BugTracker');
 abstract        ('Adds a UI designed for bug-tracking for developers to RT');
-author          ('Kevin Riggle <kevinr at bestpractical.com>');
-version_from    ('lib/RT/BugTracker.pm');
+all_from        ('lib/RT/BugTracker.pm');
 license         ('GPL version 2');
 
-&WriteAll;
+WriteAll();

Modified: RT-BugTracker/html/Callbacks/BugTracker/Elements/Tabs/Default
==============================================================================
--- RT-BugTracker/html/Callbacks/BugTracker/Elements/Tabs/Default	(original)
+++ RT-BugTracker/html/Callbacks/BugTracker/Elements/Tabs/Default	Tue Feb 19 09:23:06 2008
@@ -1,3 +1,50 @@
+%# 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>
 $toptabs->{Ag} = { title => loc('Distributions'),
                    path => 'Dist/ByMaintainer.html?Name=' . $session{'CurrentUser'}->UserObj->Name,

Added: RT-BugTracker/html/Callbacks/BugTracker/Search/Simple.html/ModifyQuery
==============================================================================
--- (empty file)
+++ RT-BugTracker/html/Callbacks/BugTracker/Search/Simple.html/ModifyQuery	Tue Feb 19 09:23:06 2008
@@ -0,0 +1,76 @@
+%# 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 }}}
+<%ARGS>
+$query => ''
+</%ARGS>
+<%INIT>
+$query = $$query if $query;
+
+# fallback if digits (ticket id)
+return if $query =~ /^\d+$/;
+
+# try to load a queue or a user; if found, redirect to the distribution page
+# instead of the search page
+
+my $queue = RT::Queue->new( $session{'CurrentUser'} );
+$queue->Load( $query );
+if ( $queue->id ) {
+    RT::Interface::Web::Redirect(
+        $RT::WebURL .'/Dist/Display.html?Queue='. $m->interp->apply_escapes( $query, 'u' )
+    );
+}
+
+my $user = RT::User->new( $session{'CurrentUser'} );
+$user->Load( $query );
+if ( $user->id ) {
+    RT::Interface::Web::Redirect(
+        $RT::WebURL .'/Dist/ByMaintainer.html?Name='. $m->interp->apply_escapes( $query, 'u' )
+    );
+}
+return;
+</%INIT>

Modified: RT-BugTracker/html/Dist/BeginsWith.html
==============================================================================
--- RT-BugTracker/html/Dist/BeginsWith.html	(original)
+++ RT-BugTracker/html/Dist/BeginsWith.html	Tue Feb 19 09:23:06 2008
@@ -2,7 +2,7 @@
 %# 
 %# COPYRIGHT:
 %#  
-%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
+%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
 %#                                          <jesse at bestpractical.com>
 %# 
 %# (Except where explicitly superseded by other copyright notices)
@@ -22,7 +22,9 @@
 %# 
 %# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+%# 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:

Modified: RT-BugTracker/html/Dist/Browse.html
==============================================================================
--- RT-BugTracker/html/Dist/Browse.html	(original)
+++ RT-BugTracker/html/Dist/Browse.html	Tue Feb 19 09:23:06 2008
@@ -2,7 +2,7 @@
 %# 
 %# COPYRIGHT:
 %#  
-%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
+%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
 %#                                          <jesse at bestpractical.com>
 %# 
 %# (Except where explicitly superseded by other copyright notices)
@@ -22,7 +22,9 @@
 %# 
 %# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+%# 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:

Modified: RT-BugTracker/html/Dist/ByMaintainer.html
==============================================================================
--- RT-BugTracker/html/Dist/ByMaintainer.html	(original)
+++ RT-BugTracker/html/Dist/ByMaintainer.html	Tue Feb 19 09:23:06 2008
@@ -2,7 +2,7 @@
 %# 
 %# COPYRIGHT:
 %#  
-%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
+%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
 %#                                          <jesse at bestpractical.com>
 %# 
 %# (Except where explicitly superseded by other copyright notices)
@@ -22,7 +22,9 @@
 %# 
 %# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+%# 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:

Modified: RT-BugTracker/html/Dist/Display.html
==============================================================================
--- RT-BugTracker/html/Dist/Display.html	(original)
+++ RT-BugTracker/html/Dist/Display.html	Tue Feb 19 09:23:06 2008
@@ -2,7 +2,7 @@
 %# 
 %# COPYRIGHT:
 %#  
-%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
+%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
 %#                                          <jesse at bestpractical.com>
 %# 
 %# (Except where explicitly superseded by other copyright notices)
@@ -22,7 +22,9 @@
 %# 
 %# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+%# 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:
@@ -101,20 +103,20 @@
 my $maint = join ", ", map { $_->Name } @{$admincc->ItemsArrayRef};
 
 my $current_subtab = "Dist/Display.html?Status="
-                  . $m->interp->apply_escapes($Status) . "&Queue="
-                  . $m->interp->apply_escapes($QueueObj->Name);
+                  . $m->interp->apply_escapes($Status, 'u') . "&Queue="
+                  . $m->interp->apply_escapes($QueueObj->Name, 'u');
 
 my ($base_url) = ($current_subtab =~ m|^Dist/(.+)$|);
 $base_url .= '&';
 
 my $Query;
 if ($Status eq 'Active') {
-    $Query = "Queue = '" . $m->interp->apply_escapes($Queue) . "' "
+    $Query = "Queue = '$Queue' "
              . "AND ( Status = 'new' OR Status = 'open' "
              . "OR Status = 'stalled' )";
 }
 else {
-    $Query = "Queue = '" . $m->interp->apply_escapes($Queue) . "' "
+    $Query = "Queue = '$Queue' "
              . "AND Status = '" . $Status . q{'};
 }
 my $QueryString = "?".$m->comp('/Elements/QueryString',

Modified: RT-BugTracker/html/Dist/Elements/DistributionList
==============================================================================
--- RT-BugTracker/html/Dist/Elements/DistributionList	(original)
+++ RT-BugTracker/html/Dist/Elements/DistributionList	Tue Feb 19 09:23:06 2008
@@ -1,3 +1,50 @@
+%# 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 }}}
 <div class="dist-list">
 <ul>
 % my $count  = $queues->Count;
@@ -16,9 +63,9 @@
 %     }
   <li>
     <span class="dist-actions">
-      <a href="<% $RT::WebPath %>/Dist/Display.html?Queue=<% $queue->Name %>">Bug list</a>
+      <a href="<% $RT::WebPath %>/Dist/Display.html?Queue=<% $queue->Name |uhn %>">Bug list</a>
       •
-      <a href="<% $RT::WebPath %>/Ticket/Create.html?Queue=<% $queue->Name %>">Report a bug</a>
+      <a href="<% $RT::WebPath %>/Ticket/Create.html?Queue=<% $queue->Name |uhn %>">Report a bug</a>
     </span>
     <strong><% $queue->Name %></strong>
   </li>

Modified: RT-BugTracker/html/Dist/Elements/Tabs
==============================================================================
--- RT-BugTracker/html/Dist/Elements/Tabs	(original)
+++ RT-BugTracker/html/Dist/Elements/Tabs	Tue Feb 19 09:23:06 2008
@@ -1,3 +1,50 @@
+%# 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 }}}
 <& /Elements/Tabs,
     actions => $actions,
     current_toptab => $current_toptab,
@@ -24,35 +71,32 @@
     },
 };
 
+my $escaped_queue = $m->interp->apply_escapes( $Queue, 'u' );
+
 if ($Queue) {
-    my $queue_display_path = 'Dist/Display.html?Queue=' . $m->interp->apply_escapes($Queue);
+    my $queue_display_path = 'Dist/Display.html?Queue='. $escaped_queue;
     $tabs->{'H'} = {
         title => $Queue,
         path => $queue_display_path,
     };
-    my $current_tab = $queue_display_path;
 }
 
 my $dist_subtabs = {
     A => {
         title   => loc("Active bugs"),
-        path    => "Dist/Display.html?Status=Active&Queue="
-                   . $m->interp->apply_escapes($Queue),
+        path    => "Dist/Display.html?Status=Active&Queue=". $escaped_queue,
     },
     Ab => {
         title   => loc("Resolved bugs"),
-        path    => "Dist/Display.html?Status=Resolved&Queue="
-                   . $m->interp->apply_escapes($Queue),
+        path    => "Dist/Display.html?Status=Resolved&Queue=". $escaped_queue,
     },
     Ac => {
         title   => loc("Rejected bugs"),
-        path    => "Dist/Display.html?Status=Rejected&Queue="
-                   . $m->interp->apply_escapes($Queue),
+        path    => "Dist/Display.html?Status=Rejected&Queue=". $escaped_queue,
     },
     G => {
         title   => loc("Report a new bug"),
-        path    => 'Ticket/Create.html?Queue='
-                    . $m->interp->apply_escapes($Queue),
+        path    => 'Ticket/Create.html?Queue='. $escaped_queue,
     },
 };
 
@@ -61,7 +105,7 @@
 if ($current_subtab =~ m!^(Dist/Display|Ticket/Create)\.html!) {
     $tabs->{'H'}->{'subtabs'} = $dist_subtabs;
     $tabs->{'H'}->{'current_subtab'} = $current_subtab;
-    $current_tab = 'Dist/Display.html?Queue=' . $m->interp->apply_escapes($Queue);
+    $current_tab = 'Dist/Display.html?Queue='. $escaped_queue;
 }
 
 </%INIT>

Modified: RT-BugTracker/html/Dist/Search.html
==============================================================================
--- RT-BugTracker/html/Dist/Search.html	(original)
+++ RT-BugTracker/html/Dist/Search.html	Tue Feb 19 09:23:06 2008
@@ -2,7 +2,7 @@
 %# 
 %# COPYRIGHT:
 %#  
-%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
+%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
 %#                                          <jesse at bestpractical.com>
 %# 
 %# (Except where explicitly superseded by other copyright notices)
@@ -22,7 +22,9 @@
 %# 
 %# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+%# 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:

Modified: RT-BugTracker/html/Elements/ErrorNoDist
==============================================================================
--- RT-BugTracker/html/Elements/ErrorNoDist	(original)
+++ RT-BugTracker/html/Elements/ErrorNoDist	Tue Feb 19 09:23:06 2008
@@ -1,3 +1,50 @@
+%# 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 }}}
 <& /Elements/Header, Title => loc("Error") &>
 <& /Public/Elements/Tabs,
         Title       => loc("Unable to find distribution"),

Modified: RT-BugTracker/html/Elements/ErrorNoUser
==============================================================================
--- RT-BugTracker/html/Elements/ErrorNoUser	(original)
+++ RT-BugTracker/html/Elements/ErrorNoUser	Tue Feb 19 09:23:06 2008
@@ -1,3 +1,50 @@
+%# 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 }}}
 <& /Elements/Header, Title => loc("Error") &>
 <& /Public/Elements/Tabs,
         Title       => loc("Unable to find user"),

Modified: RT-BugTracker/html/Ticket/Create.html
==============================================================================
--- RT-BugTracker/html/Ticket/Create.html	(original)
+++ RT-BugTracker/html/Ticket/Create.html	Tue Feb 19 09:23:06 2008
@@ -2,7 +2,7 @@
 %# 
 %# COPYRIGHT:
 %#  
-%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
+%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
 %#                                          <jesse at bestpractical.com>
 %# 
 %# (Except where explicitly superseded by other copyright notices)
@@ -22,7 +22,9 @@
 %# 
 %# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+%# 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:
@@ -50,19 +52,20 @@
     Title => loc("Report a new bug in [_1]", $Queue),
     Queue => $Queue,
     actions => $actions,
-    current_tab => 'Dist/Display.html?Queue=' . $Queue,
-    current_subtab => 'Ticket/Create.html?Queue=' . $Queue,
+    current_tab => 'Dist/Display.html?Queue='. $m->interp->apply_escapes( $Queue, 'u' ),
+    current_subtab => 'Ticket/Create.html?Queue='. $m->interp->apply_escapes( $Queue, 'u' ),
 &>
-<form action="<%$RT::WebPath%>/Ticket/Create.html" method="POST" enctype="multipart/form-data" name="TicketCreate">
-<input type="hidden" class="hidden" Name="id" value="new" />
+<form action="<%$RT::WebPath%>/Ticket/Create.html" method="post" enctype="multipart/form-data" name="TicketCreate">
+<input type="hidden" class="hidden" name="id" value="new" />
+<& /Elements/Callback, _CallbackName => 'FormStart',ARGSRef =>\%ARGS &>
 
 <div id="Ticket-Create-basics">
 <a name="basics"></a>
 <&| /Widgets/TitleBox, title => loc("Report a new bug") &>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td class="label"><&|/l&>Queue</&>:</td>
-<td class="value"><% $QueueObj->Name %>
-<input type="hidden" class="hidden" name="Queue" Value="<%$QueueObj->Name%>">
+<td class="value"><& Elements/ShowQueue, QueueObj => $QueueObj &>
+<input type="hidden" class="hidden" name="Queue" value="<% $QueueObj->Name %>" />
 </td>
 <td class="label"><&|/l&>Status</&>:
 </td>
@@ -81,7 +84,7 @@
 <&|/l&>Requestors</&>:
 </td>
 <td class="value" colspan="5">
-<input name="Requestors" Value="<% ($ARGS{Requestors}) || $session{CurrentUser}->EmailAddress %>" size="40">
+<input name="Requestors" value="<% ($ARGS{Requestors}) || $session{CurrentUser}->EmailAddress %>" size="40" />
 </td>
 </tr>
 <tr>
@@ -89,7 +92,7 @@
 <&|/l&>Cc</&>:
 </td>
 <td class="value" colspan="5">
-<input name="Cc" size="40" value="<% $ARGS{Cc} %>"><br/>
+<input name="Cc" size="40" value="<% $ARGS{Cc} %>" /><br />
 <i><font size="-2">
 <&|/l&>(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people <strong>will</strong> receive future updates.)</&></font></i>
 </td>
@@ -99,7 +102,7 @@
 <&|/l&>Admin Cc</&>:
 </td>
 <td class="value" colspan="5">
-<input name="AdminCc" size="40" value="<% $ARGS{AdminCc} %>"><br/>
+<input name="AdminCc" size="40" value="<% $ARGS{AdminCc} %>" /><br />
 <i><font size="-2">
 <&|/l&>(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <strong>will</strong> receive future updates.)</&></font></i>
 </td>
@@ -109,7 +112,7 @@
 <&|/l&>Subject</&>:
 </td>
 <td class="value" colspan="5">
-<input name="Subject" size="60" maxsize="100" value="<%$ARGS{Subject} || ''%>">
+<input name="Subject" size="60" maxsize="200" value="<%$ARGS{Subject} || ''%>" />
 </td>
 </tr>
 <tr>
@@ -120,7 +123,7 @@
 % if ($TxnCFs->Count) {
 % while (my $CF = $TxnCFs->Next()) {
 <tr>
-<td align="RIGHT"><% $CF->Name %>:</td>
+<td align="right"><% $CF->Name %>:</td>
 <td><& /Elements/EditCustomField, CustomField => $CF, NamePrefix =>
     "Object-RT::Transaction--CustomField-" &><em><% $CF->FriendlyType %></em></td>
 </td></tr>
@@ -132,9 +135,9 @@
 <&|/l&>Attached file</&>:
 </td>
 <td colspan="5">
-<&|/l&>Check box to delete</&><br/>
+<&|/l&>Check box to delete</&><br />
 % foreach my $attach_name (keys %{$session{'Attachments'}}) {
-<input type="checkbox" class="checkbox" name="DeleteAttach-<%$attach_name%>" value="1"><%$attach_name%><br />
+<input type="checkbox" class="checkbox" name="DeleteAttach-<%$attach_name%>" value="1" /><%$attach_name%><br />
 % } # end of foreach
 </td>
 </tr>
@@ -144,24 +147,24 @@
 <&|/l&>Attach file</&>:
 </td>
 <td class="value" colspan="5">
-<input type="FILE" name="Attach">
-<input type="SUBMIT" class="button" name="AddMoreAttach" value="<&|/l&>Add More Files</&>">
+<input type="file" name="Attach" />
+<input type="submit" class="button" name="AddMoreAttach" value="<&|/l&>Add More Files</&>" />
 </td>
 </tr>
 <tr>
 <td colspan="6">
-<&|/l&>Describe the issue below</&>:<br/>
+<&|/l&>Describe the issue below</&>:<br />
 % if (exists $ARGS{Content}) {
 <& /Elements/MessageBox, Default => $ARGS{Content}, IncludeSignature => 0 &>
 % } else {
 <& /Elements/MessageBox, QuoteTransaction => $QuoteTransaction &>
 %}
 
-<br/>
+<br />
 </td>
 </tr>
 <tr>
-<td align="RIGHT" colspan="2">
+<td align="right" colspan="2">
 </td>
 </tr>
 </table>
@@ -173,62 +176,62 @@
 <a name="details"></a>
 <table width="100%" border="0">
 <tr>
-<td width="50%" valign="TOP">
+<td width="50%" valign="top">
 
 	  <&| /Widgets/TitleBox, title => loc('The Basics'), 
 		title_class=> 'inverse',  
 		color => "#993333" &>
 <table border="0">
-<tr><td align="right"><&|/l&>Priority</&>:</td><td><input size="3" name="InitialPriority" value="<% $ARGS{InitialPriority} ? $ARGS{InitialPriority} : $QueueObj->InitialPriority %>"></td></tr>
-<tr><td align="right"><&|/l&>Final Priority</&>:</td><td><input size="3" name="FinalPriority" value="<% $ARGS{FinalPriority} ? $ARGS{FinalPriority} : $QueueObj->FinalPriority %>"></td></tr>
+<tr><td align="right"><&|/l&>Priority</&>:</td><td><input size="3" name="InitialPriority" value="<% $ARGS{InitialPriority} ? $ARGS{InitialPriority} : $QueueObj->InitialPriority %>" /></td></tr>
+<tr><td align="right"><&|/l&>Final Priority</&>:</td><td><input size="3" name="FinalPriority" value="<% $ARGS{FinalPriority} ? $ARGS{FinalPriority} : $QueueObj->FinalPriority %>" /></td></tr>
 <tr><td align="right"><&|/l&>Time Estimated</&>:</td>
 <td>
 <input size="3" name="TimeEstimated" value="<%$ARGS{TimeEstimated}%>" />
-<& /Elements/SelectTimeUnits, Name =>'TimeEstimated-TimeUnits' &>
+<& /Elements/SelectTimeUnits, Name =>'TimeEstimated' &>
 
 </td></tr>
-<tr><td align="RIGHT"><&|/l&>Time Worked</&>:</td>
+<tr><td align="right"><&|/l&>Time Worked</&>:</td>
 <td>
 <input size="3" name="TimeWorked" value="<%$ARGS{TimeWorked}%>" />
-<& /Elements/SelectTimeUnits, Name =>'TimeWorked-TimeUnits' &>
+<& /Elements/SelectTimeUnits, Name =>'TimeWorked' &>
 
 </td></tr>
 <tr>
-<td align="RIGHT"><&|/l&>Time Left</&>:</td>
+<td align="right"><&|/l&>Time Left</&>:</td>
 <td><input size="3" name="TimeLeft" value="<%$ARGS{TimeLeft}%>" />
-<& /Elements/SelectTimeUnits, Name =>'TimeLeft-TimeUnits' &>
+<& /Elements/SelectTimeUnits, Name =>'TimeLeft' &>
 </td></tr>
 </table>
 </&>
-<br>
+<br />
 <&|/Widgets/TitleBox, title => loc("Dates"),
 		title_class=> 'inverse',  
 		 color => "#663366" &>
 
 <table>
-<tr><td class="label"><&|/l&>Starts</&>:</td><td><& /Elements/SelectDate, Name => "Starts", Value => $ARGS{Starts}, Default => '' &></td></tr>
-<tr><td class="label"><&|/l&>Due</&>:</td><td><& /Elements/SelectDate, Name => "Due", Value => $ARGS{Due}, Default => '' &></td></tr>
+<tr><td class="label"><&|/l&>Starts</&>:</td><td><& /Elements/SelectDate, Name => "Starts", Default => $ARGS{Starts} || '' &></td></tr>
+<tr><td class="label"><&|/l&>Due</&>:</td><td><& /Elements/SelectDate, Name => "Due", Default => $ARGS{Due} || '' &></td></tr>
 </table>
 </&>
 <br />
 </td>
 
-<td valign="TOP">
+<td valign="top">
 <&| /Widgets/TitleBox, title => loc('Links'), title_class=> 'inverse' &>
 
 <em><&|/l&>(Enter ticket ids or URLs, separated with spaces)</&></em>
 <table border="0">
-<tr><td align="RIGHT"><&|/l&>Depends on</&></td><td><input size="10" name="new-DependsOn" value="<% $ARGS{'new-DependsOn'} %>"></td></tr>
-<tr><td align="RIGHT"><&|/l&>Depended on by</&></td><td><input size="10" name="DependsOn-new" value="<% $ARGS{'DependsOn-new'} %>"></td></tr>
-<tr><td align="RIGHT"><&|/l&>Parents</&></td><td><input size="10" name="new-MemberOf" value="<% $ARGS{'new-MemberOf'} %>"></td></tr>
-<tr><td align="RIGHT"><&|/l&>Children</&></td><td><input size="10" name="MemberOf-new" value="<% $ARGS{'MemberOf-new'} %>"></td></tr>
-<tr><td align="RIGHT"><&|/l&>Refers to</&></td><td><input size="10" name="new-RefersTo" value="<% $ARGS{'new-RefersTo'} %>"></td></tr>
-<tr><td align="RIGHT"><&|/l&>Referred to by</&></td><td><input size="10" name="RefersTo-new" value="<% $ARGS{'RefersTo-new'} %>"></td></tr>
+<tr><td align="right"><&|/l&>Depends on</&></td><td><input size="10" name="new-DependsOn" value="<% $ARGS{'new-DependsOn'} %>" /></td></tr>
+<tr><td align="right"><&|/l&>Depended on by</&></td><td><input size="10" name="DependsOn-new" value="<% $ARGS{'DependsOn-new'} %>" /></td></tr>
+<tr><td align="right"><&|/l&>Parents</&></td><td><input size="10" name="new-MemberOf" value="<% $ARGS{'new-MemberOf'} %>" /></td></tr>
+<tr><td align="right"><&|/l&>Children</&></td><td><input size="10" name="MemberOf-new" value="<% $ARGS{'MemberOf-new'} %>" /></td></tr>
+<tr><td align="right"><&|/l&>Refers to</&></td><td><input size="10" name="new-RefersTo" value="<% $ARGS{'new-RefersTo'} %>" /></td></tr>
+<tr><td align="right"><&|/l&>Referred to by</&></td><td><input size="10" name="RefersTo-new" value="<% $ARGS{'RefersTo-new'} %>" /></td></tr>
 
 
 </table>
 </&>
-<br/>
+<br />
 
 </td>
 </tr>
@@ -243,6 +246,8 @@
 my @results;
 my $QueueObj = new RT::Queue($session{'CurrentUser'});
 $QueueObj->Load($Queue) || Abort(loc("Queue could not be loaded."));
+$Queue = $QueueObj->Name || $QueueObj->id;
+
 my $CFs = $QueueObj->TicketCustomFields();
 my $TxnCFs = $QueueObj->TicketTransactionCustomFields();
 

Added: RT-BugTracker/html/Ticket/Elements/ShowQueue
==============================================================================
--- (empty file)
+++ RT-BugTracker/html/Ticket/Elements/ShowQueue	Tue Feb 19 09:23:06 2008
@@ -0,0 +1,54 @@
+%# 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 }}}
+<a href="<% $RT::WebPath %>/Dist/Display.html?Queue=<% $name |uhn %>"><% $name %></a>
+<%ARGS>
+$QueueObj
+</%ARGS>
+<%INIT>
+my $name = $QueueObj->Name;
+</%INIT>

Modified: RT-BugTracker/inc/Module/Install.pm
==============================================================================
--- RT-BugTracker/inc/Module/Install.pm	(original)
+++ RT-BugTracker/inc/Module/Install.pm	Tue Feb 19 09:23:06 2008
@@ -28,7 +28,7 @@
     # 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.63';
+    $VERSION = '0.68';
 }
 
 # Whether or not inc::Module::Install is actually loaded, the

Modified: RT-BugTracker/inc/Module/Install/Base.pm
==============================================================================
--- RT-BugTracker/inc/Module/Install/Base.pm	(original)
+++ RT-BugTracker/inc/Module/Install/Base.pm	Tue Feb 19 09:23:06 2008
@@ -1,7 +1,7 @@
 #line 1
 package Module::Install::Base;
 
-$VERSION = '0.63';
+$VERSION = '0.68';
 
 # Suspend handler for "redefined" warnings
 BEGIN {

Modified: RT-BugTracker/inc/Module/Install/Can.pm
==============================================================================
--- RT-BugTracker/inc/Module/Install/Can.pm	(original)
+++ RT-BugTracker/inc/Module/Install/Can.pm	Tue Feb 19 09:23:06 2008
@@ -11,7 +11,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.63';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: RT-BugTracker/inc/Module/Install/Fetch.pm
==============================================================================
--- RT-BugTracker/inc/Module/Install/Fetch.pm	(original)
+++ RT-BugTracker/inc/Module/Install/Fetch.pm	Tue Feb 19 09:23:06 2008
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.63';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: RT-BugTracker/inc/Module/Install/Makefile.pm
==============================================================================
--- RT-BugTracker/inc/Module/Install/Makefile.pm	(original)
+++ RT-BugTracker/inc/Module/Install/Makefile.pm	Tue Feb 19 09:23:06 2008
@@ -7,7 +7,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.63';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }
@@ -17,192 +17,221 @@
 my %seen = ();
 
 sub prompt {
-    shift;
+	shift;
 
-    # Infinite loop protection
-    my @c = caller();
-    if ( ++$seen{"$c[1]|$c[2]|$_[0]"} > 3 ) {
-        die "Caught an potential prompt infinite loop ($c[1]|$c[2]|$_[0])";
-    }
-
-    # In automated testing, always use defaults
-    if ( $ENV{AUTOMATED_TESTING} and ! $ENV{PERL_MM_USE_DEFAULT} ) {
-        local $ENV{PERL_MM_USE_DEFAULT} = 1;
-        goto &ExtUtils::MakeMaker::prompt;
-    } else {
-        goto &ExtUtils::MakeMaker::prompt;
-    }
+	# Infinite loop protection
+	my @c = caller();
+	if ( ++$seen{"$c[1]|$c[2]|$_[0]"} > 3 ) {
+		die "Caught an potential prompt infinite loop ($c[1]|$c[2]|$_[0])";
+	}
+
+	# In automated testing, always use defaults
+	if ( $ENV{AUTOMATED_TESTING} and ! $ENV{PERL_MM_USE_DEFAULT} ) {
+		local $ENV{PERL_MM_USE_DEFAULT} = 1;
+		goto &ExtUtils::MakeMaker::prompt;
+	} else {
+		goto &ExtUtils::MakeMaker::prompt;
+	}
 }
 
 sub makemaker_args {
-    my $self = shift;
-    my $args = ($self->{makemaker_args} ||= {});
-    %$args = ( %$args, @_ ) if @_;
-    $args;
+	my $self = shift;
+	my $args = ($self->{makemaker_args} ||= {});
+	%$args = ( %$args, @_ ) if @_;
+	$args;
 }
 
 # For mm args that take multiple space-seperated args,
 # append an argument to the current list.
 sub makemaker_append {
-    my $self = shift;
-    my $name = shift;
-    my $args = $self->makemaker_args;
-    $args->{name} = defined $args->{$name}
-    	? join( ' ', $args->{name}, @_ )
-    	: join( ' ', @_ );
+	my $self = sShift;
+	my $name = shift;
+	my $args = $self->makemaker_args;
+	$args->{name} = defined $args->{$name}
+		? join( ' ', $args->{name}, @_ )
+		: join( ' ', @_ );
 }
 
 sub build_subdirs {
-    my $self    = shift;
-    my $subdirs = $self->makemaker_args->{DIR} ||= [];
-    for my $subdir (@_) {
-        push @$subdirs, $subdir;
-    }
+	my $self    = shift;
+	my $subdirs = $self->makemaker_args->{DIR} ||= [];
+	for my $subdir (@_) {
+		push @$subdirs, $subdir;
+	}
 }
 
 sub clean_files {
-    my $self  = shift;
-    my $clean = $self->makemaker_args->{clean} ||= {};
-    %$clean = (
-        %$clean, 
-        FILES => join(' ', grep length, $clean->{FILES}, @_),
-    );
+	my $self  = shift;
+	my $clean = $self->makemaker_args->{clean} ||= {};
+	%$clean = (
+		%$clean, 
+		FILES => join(' ', grep length, $clean->{FILES}, @_),
+	);
 }
 
 sub realclean_files {
-    my $self  = shift;
-    my $realclean = $self->makemaker_args->{realclean} ||= {};
-    %$realclean = (
-        %$realclean, 
-        FILES => join(' ', grep length, $realclean->{FILES}, @_),
-    );
+	my $self  = shift;
+	my $realclean = $self->makemaker_args->{realclean} ||= {};
+	%$realclean = (
+		%$realclean, 
+		FILES => join(' ', grep length, $realclean->{FILES}, @_),
+	);
 }
 
 sub libs {
-    my $self = shift;
-    my $libs = ref $_[0] ? shift : [ shift ];
-    $self->makemaker_args( LIBS => $libs );
+	my $self = shift;
+	my $libs = ref $_[0] ? shift : [ shift ];
+	$self->makemaker_args( LIBS => $libs );
 }
 
 sub inc {
-    my $self = shift;
-    $self->makemaker_args( INC => shift );
+	my $self = shift;
+	$self->makemaker_args( INC => shift );
+}
+
+my %test_dir = ();
+
+sub _wanted_t {
+	/\.t$/ and -f $_ and $test_dir{$File::Find::dir} = 1;
+}
+
+sub tests_recursive {
+	my $self = shift;
+	if ( $self->tests ) {
+		die "tests_recursive will not work if tests are already defined";
+	}
+	my $dir = shift || 't';
+	unless ( -d $dir ) {
+		die "tests_recursive dir '$dir' does not exist";
+	}
+	require File::Find;
+	%test_dir = ();
+	File::Find::find( \&_wanted_t, $dir );
+	$self->tests( join ' ', map { "$_/*.t" } sort keys %test_dir );
 }
 
 sub write {
-    my $self = shift;
-    die "&Makefile->write() takes no arguments\n" if @_;
+	my $self = shift;
+	die "&Makefile->write() takes no arguments\n" if @_;
 
-    my $args = $self->makemaker_args;
-    $args->{DISTNAME} = $self->name;
-    $args->{NAME}     = $self->module_name || $self->name || $self->determine_NAME($args);
-    $args->{VERSION}  = $self->version || $self->determine_VERSION($args);
-    $args->{NAME}     =~ s/-/::/g;
-    if ( $self->tests ) {
-        $args->{test} = { TESTS => $self->tests };
-    }
-    if ($] >= 5.005) {
-        $args->{ABSTRACT} = $self->abstract;
-        $args->{AUTHOR}   = $self->author;
-    }
-    if ( eval($ExtUtils::MakeMaker::VERSION) >= 6.10 ) {
-        $args->{NO_META} = 1;
-    }
-    if ( eval($ExtUtils::MakeMaker::VERSION) > 6.17 and $self->sign ) {
-        $args->{SIGN} = 1;
-    }
-    unless ( $self->is_admin ) {
-        delete $args->{SIGN};
-    }
-
-    # merge both kinds of requires into prereq_pm
-    my $prereq = ($args->{PREREQ_PM} ||= {});
-    %$prereq = ( %$prereq, map { @$_ } map { @$_ } grep $_,
-                 ($self->build_requires, $self->requires) );
-
-    # merge both kinds of requires into prereq_pm
-    my $subdirs = ($args->{DIR} ||= []);
-    if ($self->bundles) {
-        foreach my $bundle (@{ $self->bundles }) {
-            my ($file, $dir) = @$bundle;
-            push @$subdirs, $dir if -d $dir;
-            delete $prereq->{$file};
-        }
-    }
-
-    if ( my $perl_version = $self->perl_version ) {
-        eval "use $perl_version; 1"
-            or die "ERROR: perl: Version $] is installed, "
-                . "but we need version >= $perl_version";
-    }
-
-    my %args = map { ( $_ => $args->{$_} ) } grep {defined($args->{$_})} keys %$args;
-    if ($self->admin->preop) {
-        $args{dist} = $self->admin->preop;
-    }
+	my $args = $self->makemaker_args;
+	$args->{DISTNAME} = $self->name;
+	$args->{NAME}     = $self->module_name || $self->name || $self->determine_NAME($args);
+	$args->{VERSION}  = $self->version || $self->determine_VERSION($args);
+	$args->{NAME}     =~ s/-/::/g;
+	if ( $self->tests ) {
+		$args->{test} = { TESTS => $self->tests };
+	}
+	if ($] >= 5.005) {
+		$args->{ABSTRACT} = $self->abstract;
+		$args->{AUTHOR}   = $self->author;
+	}
+	if ( eval($ExtUtils::MakeMaker::VERSION) >= 6.10 ) {
+		$args->{NO_META} = 1;
+	}
+	if ( eval($ExtUtils::MakeMaker::VERSION) > 6.17 and $self->sign ) {
+		$args->{SIGN} = 1;
+	}
+	unless ( $self->is_admin ) {
+		delete $args->{SIGN};
+	}
+
+	# merge both kinds of requires into prereq_pm
+	my $prereq = ($args->{PREREQ_PM} ||= {});
+	%$prereq = ( %$prereq,
+		map { @$_ }
+		map { @$_ }
+		grep $_,
+		($self->build_requires, $self->requires)
+	);
+
+	# merge both kinds of requires into prereq_pm
+	my $subdirs = ($args->{DIR} ||= []);
+	if ($self->bundles) {
+		foreach my $bundle (@{ $self->bundles }) {
+			my ($file, $dir) = @$bundle;
+			push @$subdirs, $dir if -d $dir;
+			delete $prereq->{$file};
+		}
+	}
+
+	if ( my $perl_version = $self->perl_version ) {
+		eval "use $perl_version; 1"
+			or die "ERROR: perl: Version $] is installed, "
+			. "but we need version >= $perl_version";
+	}
+
+	$args->{INSTALLDIRS} = $self->installdirs;
+
+	my %args = map { ( $_ => $args->{$_} ) } grep {defined($args->{$_})} keys %$args;
+
+	my $user_preop = delete $args{dist}->{PREOP};
+	if (my $preop = $self->admin->preop($user_preop)) {
+		$args{dist} = $preop;
+	}
 
-    my $mm = ExtUtils::MakeMaker::WriteMakefile(%args);
-    $self->fix_up_makefile($mm->{FIRST_MAKEFILE} || 'Makefile');
+	my $mm = ExtUtils::MakeMaker::WriteMakefile(%args);
+	$self->fix_up_makefile($mm->{FIRST_MAKEFILE} || 'Makefile');
 }
 
 sub fix_up_makefile {
-    my $self          = shift;
-    my $makefile_name = shift;
-    my $top_class     = ref($self->_top) || '';
-    my $top_version   = $self->_top->VERSION || '';
-
-    my $preamble = $self->preamble 
-        ? "# Preamble by $top_class $top_version\n"
-            . $self->preamble
-        : '';
-    my $postamble = "# Postamble by $top_class $top_version\n"
-        . ($self->postamble || '');
-
-    local *MAKEFILE;
-    open MAKEFILE, "< $makefile_name" or die "fix_up_makefile: Couldn't open $makefile_name: $!";
-    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;
-    $makefile =~ s/( "-I\$\(INST_LIB\)")/ "-Iinc"$1/g;
-    $makefile =~ s/^(FULLPERL = .*)/$1 "-Iinc"/m;
-    $makefile =~ s/^(PERL = .*)/$1 "-Iinc"/m;
-
-    # Module::Install will never be used to build the Core Perl
-    # Sometimes PERL_LIB and PERL_ARCHLIB get written anyway, which breaks
-    # PREFIX/PERL5LIB, and thus, install_share. Blank them if they exist
-    $makefile =~ s/^PERL_LIB = .+/PERL_LIB =/m;
-    #$makefile =~ s/^PERL_ARCHLIB = .+/PERL_ARCHLIB =/m;
-
-    # Perl 5.005 mentions PERL_LIB explicitly, so we have to remove that as well.
-    $makefile =~ s/("?)-I\$\(PERL_LIB\)\1//g;
-
-    # 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: $!";
-    print MAKEFILE  "$preamble$makefile$postamble" or die $!;
-    close MAKEFILE  or die $!;
+	my $self          = shift;
+	my $makefile_name = shift;
+	my $top_class     = ref($self->_top) || '';
+	my $top_version   = $self->_top->VERSION || '';
+
+	my $preamble = $self->preamble 
+		? "# Preamble by $top_class $top_version\n"
+			. $self->preamble
+		: '';
+	my $postamble = "# Postamble by $top_class $top_version\n"
+		. ($self->postamble || '');
+
+	local *MAKEFILE;
+	open MAKEFILE, "< $makefile_name" or die "fix_up_makefile: Couldn't open $makefile_name: $!";
+	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;
+	$makefile =~ s/( "-I\$\(INST_LIB\)")/ "-Iinc"$1/g;
+	$makefile =~ s/^(FULLPERL = .*)/$1 "-Iinc"/m;
+	$makefile =~ s/^(PERL = .*)/$1 "-Iinc"/m;
+
+	# Module::Install will never be used to build the Core Perl
+	# Sometimes PERL_LIB and PERL_ARCHLIB get written anyway, which breaks
+	# PREFIX/PERL5LIB, and thus, install_share. Blank them if they exist
+	$makefile =~ s/^PERL_LIB = .+/PERL_LIB =/m;
+	#$makefile =~ s/^PERL_ARCHLIB = .+/PERL_ARCHLIB =/m;
+
+	# Perl 5.005 mentions PERL_LIB explicitly, so we have to remove that as well.
+	$makefile =~ s/("?)-I\$\(PERL_LIB\)\1//g;
+
+	# 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: $!";
+	print MAKEFILE  "$preamble$makefile$postamble" or die $!;
+	close MAKEFILE  or die $!;
 
-    1;
+	1;
 }
 
 sub preamble {
-    my ($self, $text) = @_;
-    $self->{preamble} = $text . $self->{preamble} if defined $text;
-    $self->{preamble};
+	my ($self, $text) = @_;
+	$self->{preamble} = $text . $self->{preamble} if defined $text;
+	$self->{preamble};
 }
 
 sub postamble {
-    my ($self, $text) = @_;
-    $self->{postamble} ||= $self->admin->postamble;
-    $self->{postamble} .= $text if defined $text;
-    $self->{postamble}
+	my ($self, $text) = @_;
+	$self->{postamble} ||= $self->admin->postamble;
+	$self->{postamble} .= $text if defined $text;
+	$self->{postamble}
 }
 
 1;
 
 __END__
 
-#line 334
+#line 363

Modified: RT-BugTracker/inc/Module/Install/Metadata.pm
==============================================================================
--- RT-BugTracker/inc/Module/Install/Metadata.pm	(original)
+++ RT-BugTracker/inc/Module/Install/Metadata.pm	Tue Feb 19 09:23:06 2008
@@ -6,14 +6,14 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.63';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }
 
 my @scalar_keys = qw{
     name module_name abstract author version license
-    distribution_type perl_version tests
+    distribution_type perl_version tests installdirs
 };
 
 my @tuple_keys = qw{
@@ -56,9 +56,23 @@
     };
 }
 
+# configure_requires is currently a null-op
+sub configure_requires { 1 }
+
+# Aliases for build_requires that will have alternative
+# meanings in some future version of META.yml.
+sub test_requires      { shift->build_requires(@_)  }
+sub install_requires   { shift->build_requires(@_)  }
+
+# Aliases for installdirs options
+sub install_as_core    { $_[0]->installdirs('perl')   }
+sub install_as_cpan    { $_[0]->installdirs('site')   }
+sub install_as_site    { $_[0]->installdirs('site')   }
+sub install_as_vendor  { $_[0]->installdirs('vendor') }
+
 sub sign {
     my $self = shift;
-    return $self->{'values'}{'sign'} if defined wantarray and !@_;
+    return $self->{'values'}{'sign'} if defined wantarray and ! @_;
     $self->{'values'}{'sign'} = ( @_ ? $_[0] : 1 );
     return $self;
 }
@@ -279,9 +293,11 @@
 
     if (
         $self->_slurp($file) =~ m/
-        =head \d \s+
-        (?:licen[cs]e|licensing|copyright|legal)\b
-        (.*?)
+        (
+            =head \d \s+
+            (?:licen[cs]e|licensing|copyright|legal)\b
+            .*?
+        )
         (=head\\d.*|=cut.*|)
         \z
     /ixms
@@ -289,19 +305,24 @@
     {
         my $license_text = $1;
         my @phrases      = (
-            'under the same (?:terms|license) as perl itself' => 'perl',
-            'GNU public license'                              => 'gpl',
-            'GNU lesser public license'                       => 'gpl',
-            'BSD license'                                     => 'bsd',
-            'Artistic license'                                => 'artistic',
-            'GPL'                                             => 'gpl',
-            'LGPL'                                            => 'lgpl',
-            'BSD'                                             => 'bsd',
-            'Artistic'                                        => 'artistic',
+            'under the same (?:terms|license) as perl itself' => 'perl',        1,
+            'GNU public license'                              => 'gpl',         1,
+            'GNU lesser public license'                       => 'gpl',         1,
+            'BSD license'                                     => 'bsd',         1,
+            'Artistic license'                                => 'artistic',    1,
+            'GPL'                                             => 'gpl',         1,
+            'LGPL'                                            => 'lgpl',        1,
+            'BSD'                                             => 'bsd',         1,
+            'Artistic'                                        => 'artistic',    1,
+            'MIT'                                             => 'mit',         1,
+            'proprietary'                                     => 'proprietary', 0,
         );
-        while ( my ( $pattern, $license ) = splice( @phrases, 0, 2 ) ) {
+        while ( my ($pattern, $license, $osi) = splice(@phrases, 0, 3) ) {
             $pattern =~ s{\s+}{\\s+}g;
             if ( $license_text =~ /\b$pattern\b/i ) {
+                if ( $osi and $license_text =~ /All rights reserved/i ) {
+                        warn "LEGAL WARNING: 'All rights reserved' may invalidate Open Source licenses. Consider removing it.";
+		}
                 $self->license($license);
                 return 1;
             }

Modified: RT-BugTracker/inc/Module/Install/RTx.pm
==============================================================================
--- RT-BugTracker/inc/Module/Install/RTx.pm	(original)
+++ RT-BugTracker/inc/Module/Install/RTx.pm	Tue Feb 19 09:23:06 2008
@@ -40,7 +40,7 @@
         until ( eval { require RT; $RT::LocalPath } ) {
             warn "Cannot find the location of RT.pm that defines \$RT::LocalPath in: @INC\n";
             $_ = $self->prompt("Path to your RT.pm:") or exit;
-            push @INC, $_, "$_/rt3/lib", "$_/lib/rt3";
+            push @INC, $_, "$_/rt3/lib", "$_/lib/rt3", "$_/lib";
         }
     }
 

Modified: RT-BugTracker/inc/Module/Install/Win32.pm
==============================================================================
--- RT-BugTracker/inc/Module/Install/Win32.pm	(original)
+++ RT-BugTracker/inc/Module/Install/Win32.pm	Tue Feb 19 09:23:06 2008
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.63';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: RT-BugTracker/inc/Module/Install/WriteAll.pm
==============================================================================
--- RT-BugTracker/inc/Module/Install/WriteAll.pm	(original)
+++ RT-BugTracker/inc/Module/Install/WriteAll.pm	Tue Feb 19 09:23:06 2008
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION $ISCORE @ISA};
 BEGIN {
-	$VERSION = '0.63';
+	$VERSION = '0.68';
 	$ISCORE  = 1;
 	@ISA     = qw{Module::Install::Base};
 }

Modified: RT-BugTracker/lib/RT/BugTracker.pm
==============================================================================
--- RT-BugTracker/lib/RT/BugTracker.pm	(original)
+++ RT-BugTracker/lib/RT/BugTracker.pm	Tue Feb 19 09:23:06 2008
@@ -1,13 +1,87 @@
-=head1 COPYRIGHT
+# BEGIN BPS TAGGED BLOCK {{{
+# 
+# COPYRIGHT:
+#  
+# This software is Copyright (c) 1996-2008 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 }}}
+package RT::BugTracker;
+our $VERSION = '0.02';
 
-This extension is Copyright (C) 2005 Best Practical Solutions, LLC.
+1;
 
-It is freely redistributable under the terms of version 2 of the GNU GPL.
+=head1 NAME
 
-=cut
+RT::BugTracker - Adds a UI designed for bug-tracking for developers to RT
 
-package RT::BugTracker;
+=head1 DESCRIPTION
 
-our $VERSION = '0.01';
+This extension changes RT's UI to make more useful when you want to
+track bug reports in many distributions. This extension is a start
+for setups like L<http://rt.cpan.org>. It's been developed to help
+authors of perl modules.
 
-1;
+It follows several rules to achieve the goal:
+
+=over 4
+
+=item Each queue associated with one package (distribution).
+
+=item Queue's AdminCc list is used for maintainers of the
+coresponding distribution.
+
+=item Not everything was possible to implement using callbacks
+and other clean extending methods, so some files have been
+overriden. We currently in sync with RT 3.6.6.
+
+=back
+
+=head1 SEE ALSO
+
+L<RT::BugTracker::Public>, L<RT::BugTracker::rt_cpan_org>
+
+=head1 AUTHOR
+
+Kevin Riggle E<lt>kevinr at bestpractical.comE<gt>
+
+=cut



More information about the Bps-public-commit mailing list