[Rt-commit] rt branch, 4.0/code-policy, created. rt-4.0.8rc1-16-g24e1935

Alex Vandiver alexmv at bestpractical.com
Tue Oct 23 22:50:16 EDT 2012


The branch, 4.0/code-policy has been created
        at  24e1935a8ab93bfe295011b88fff6da8bdcd0276 (commit)

- Log -----------------------------------------------------------------
commit 805f70aa122e55590936e962948b62f111d2fc72
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Mon Aug 22 10:10:45 2011 +0800

    code policy test

diff --git a/t/99-policy.t b/t/99-policy.t
new file mode 100644
index 0000000..b65b9c3
--- /dev/null
+++ b/t/99-policy.t
@@ -0,0 +1,64 @@
+use strict;
+use warnings;
+
+use RT::Test nodb => 1;
+use File::Find;
+
+sub check {
+    my $file = shift;
+    my $type = shift;
+
+    local $/;
+    open my $fh, '<', $file or die $!;
+    my $content = <$fh>;
+    like(
+        $content,
+        qr/^use strict(?:;|\s+)/m,
+        $File::Find::name . ' has "use strict"'
+    );
+    like(
+        $content,
+        qr/^use warnings(?:;|\s+)/m,
+        $File::Find::name . ' has "use warnings"'
+    );
+    my $mode = sprintf( '%04o', ( stat $file )[2] & 07777 );
+    if ( $type eq 'script' ) {
+        like( $content, qr/^#!/, $File::Find::name . ' has shebang' );
+        if ( $file =~ /\.in/ ) {
+            is( $mode, '0644', $File::Find::name . ' permission is 0644' );
+        }
+        else {
+            is( $mode, '0754', $File::Find::name . ' permission is 0754' );
+        }
+    }
+    else {
+        unlike( $content, qr/^#!/, $File::Find::name . ' has no shebang' );
+        is( $mode, '0644', $File::Find::name . ' permission is 0644' );
+    }
+}
+
+find(
+    sub {
+        return unless -f && /\.pm$/;
+        check( $_, 'lib' );
+    },
+    'lib',
+);
+
+find(
+    sub {
+        return unless -f && /\.t$/;
+        check( $_, 'test' );
+    },
+    't',
+);
+
+find(
+    sub {
+        return unless -f;
+        check( $_, 'script' );
+    },
+    'bin',
+    'sbin'
+);
+

commit bf86b82720c1b698f916bf28d998bcb7763b7f71
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Mon Aug 22 10:11:15 2011 +0800

    update code to meet code policy

diff --git a/bin/rt-crontool.in b/bin/rt-crontool.in
old mode 100755
new mode 100644
index 86251a3..1f0439e
--- a/bin/rt-crontool.in
+++ b/bin/rt-crontool.in
@@ -47,6 +47,7 @@
 #
 # END BPS TAGGED BLOCK }}}
 use strict;
+use warnings;
 use Carp;
 
 # fix lib paths, some may be relative
diff --git a/bin/rt-mailgate.in b/bin/rt-mailgate.in
old mode 100755
new mode 100644
diff --git a/bin/rt.in b/bin/rt.in
old mode 100755
new mode 100644
index 2a9f643..d9f0fb4
--- a/bin/rt.in
+++ b/bin/rt.in
@@ -50,6 +50,7 @@
 # Abhijit Menon-Sen <ams at wiw.org>
 
 use strict;
+use warnings;
 
 if ( $ARGV[0] && $ARGV[0] =~ /^(?:--help|-h)$/ ) {
     require Pod::Usage;
diff --git a/lib/RT/Action/EscalatePriority.pm b/lib/RT/Action/EscalatePriority.pm
index 97d408c..0f74095 100644
--- a/lib/RT/Action/EscalatePriority.pm
+++ b/lib/RT/Action/EscalatePriority.pm
@@ -78,6 +78,7 @@ package RT::Action::EscalatePriority;
 use base 'RT::Action';
 
 use strict;
+use warnings;
 
 #Do what we need to do and send it out.
 
diff --git a/lib/RT/Action/ExtractSubjectTag.pm b/lib/RT/Action/ExtractSubjectTag.pm
index a4d6458..952f075 100644
--- a/lib/RT/Action/ExtractSubjectTag.pm
+++ b/lib/RT/Action/ExtractSubjectTag.pm
@@ -49,6 +49,7 @@
 package RT::Action::ExtractSubjectTag;
 use base 'RT::Action';
 use strict;
+use warnings;
 
 sub Describe {
     my $self = shift;
diff --git a/lib/RT/Action/RecordComment.pm b/lib/RT/Action/RecordComment.pm
index 62832a5..e6397e8 100644
--- a/lib/RT/Action/RecordComment.pm
+++ b/lib/RT/Action/RecordComment.pm
@@ -49,6 +49,7 @@
 package RT::Action::RecordComment;
 use base 'RT::Action';
 use strict;
+use warnings;
 
 =head1 NAME
 
diff --git a/lib/RT/Action/RecordCorrespondence.pm b/lib/RT/Action/RecordCorrespondence.pm
index 2faa560..0149f8b 100644
--- a/lib/RT/Action/RecordCorrespondence.pm
+++ b/lib/RT/Action/RecordCorrespondence.pm
@@ -49,6 +49,7 @@
 package RT::Action::RecordCorrespondence;
 use base 'RT::Action';
 use strict;
+use warnings;
 
 =head1 NAME
 
diff --git a/lib/RT/Action/SetPriority.pm b/lib/RT/Action/SetPriority.pm
index 783d57d..1279916 100644
--- a/lib/RT/Action/SetPriority.pm
+++ b/lib/RT/Action/SetPriority.pm
@@ -50,6 +50,7 @@ package RT::Action::SetPriority;
 use base 'RT::Action';
 
 use strict;
+use warnings;
 
 #Do what we need to do and send it out.
 
diff --git a/lib/RT/Action/UserDefined.pm b/lib/RT/Action/UserDefined.pm
index 1bad2be..b4b9ac9 100644
--- a/lib/RT/Action/UserDefined.pm
+++ b/lib/RT/Action/UserDefined.pm
@@ -50,6 +50,7 @@ package RT::Action::UserDefined;
 use base 'RT::Action';
 
 use strict;
+use warnings;
 
 =head2 Prepare
 
diff --git a/lib/RT/Condition/AnyTransaction.pm b/lib/RT/Condition/AnyTransaction.pm
index 73eea2b..0ef2a16 100644
--- a/lib/RT/Condition/AnyTransaction.pm
+++ b/lib/RT/Condition/AnyTransaction.pm
@@ -50,6 +50,7 @@ package RT::Condition::AnyTransaction;
 use base 'RT::Condition';
 
 use strict;
+use warnings;
 
 
 =head2 IsApplicable
diff --git a/lib/RT/Condition/BeforeDue.pm b/lib/RT/Condition/BeforeDue.pm
index 11c40e6..9845c63 100644
--- a/lib/RT/Condition/BeforeDue.pm
+++ b/lib/RT/Condition/BeforeDue.pm
@@ -52,6 +52,7 @@ use base 'RT::Condition';
 use RT::Date;
 
 use strict;
+use warnings;
 
 sub IsApplicable {
     my $self = shift;
diff --git a/lib/RT/Condition/Overdue.pm b/lib/RT/Condition/Overdue.pm
index 3bf79a1..0b66a57 100644
--- a/lib/RT/Condition/Overdue.pm
+++ b/lib/RT/Condition/Overdue.pm
@@ -59,6 +59,7 @@ Returns true if the ticket we're operating on is overdue
 package RT::Condition::Overdue;
 use base 'RT::Condition';
 use strict;
+use warnings;
 
 
 =head2 IsApplicable
diff --git a/lib/RT/Condition/OwnerChange.pm b/lib/RT/Condition/OwnerChange.pm
index 4643791..d036d78 100644
--- a/lib/RT/Condition/OwnerChange.pm
+++ b/lib/RT/Condition/OwnerChange.pm
@@ -49,6 +49,7 @@
 package RT::Condition::OwnerChange;
 use base 'RT::Condition';
 use strict;
+use warnings;
 
 
 =head2 IsApplicable
diff --git a/lib/RT/Condition/PriorityChange.pm b/lib/RT/Condition/PriorityChange.pm
index aa00e60..96e3392 100644
--- a/lib/RT/Condition/PriorityChange.pm
+++ b/lib/RT/Condition/PriorityChange.pm
@@ -49,6 +49,7 @@
 package RT::Condition::PriorityChange;
 use base 'RT::Condition';
 use strict;
+use warnings;
 
 
 =head2 IsApplicable
diff --git a/lib/RT/Condition/PriorityExceeds.pm b/lib/RT/Condition/PriorityExceeds.pm
index 17943cf..3e57c48 100644
--- a/lib/RT/Condition/PriorityExceeds.pm
+++ b/lib/RT/Condition/PriorityExceeds.pm
@@ -49,6 +49,7 @@
 package RT::Condition::PriorityExceeds;
 use base 'RT::Condition';
 use strict;
+use warnings;
 
 =head2 IsApplicable
 
diff --git a/lib/RT/Condition/QueueChange.pm b/lib/RT/Condition/QueueChange.pm
index 69eea18..869d2b6 100644
--- a/lib/RT/Condition/QueueChange.pm
+++ b/lib/RT/Condition/QueueChange.pm
@@ -49,6 +49,7 @@
 package RT::Condition::QueueChange;
 use base 'RT::Condition';
 use strict;
+use warnings;
 
 =head2 IsApplicable
 
diff --git a/lib/RT/Condition/StatusChange.pm b/lib/RT/Condition/StatusChange.pm
index 10d882e..667ccee 100644
--- a/lib/RT/Condition/StatusChange.pm
+++ b/lib/RT/Condition/StatusChange.pm
@@ -49,6 +49,7 @@
 package RT::Condition::StatusChange;
 use base 'RT::Condition';
 use strict;
+use warnings;
 
 =head2 DESCRIPTION
 
diff --git a/lib/RT/Condition/UserDefined.pm b/lib/RT/Condition/UserDefined.pm
index 8ed5e5c..c75892f 100644
--- a/lib/RT/Condition/UserDefined.pm
+++ b/lib/RT/Condition/UserDefined.pm
@@ -49,6 +49,7 @@
 package RT::Condition::UserDefined;
 use base 'RT::Condition';
 use strict;
+use warnings;
 
 
 =head2 IsApplicable
diff --git a/lib/RT/Dashboards.pm b/lib/RT/Dashboards.pm
index 5d10205..6560cab 100644
--- a/lib/RT/Dashboards.pm
+++ b/lib/RT/Dashboards.pm
@@ -70,6 +70,7 @@ package RT::Dashboards;
 use RT::Dashboard;
 
 use strict;
+use warnings;
 use base 'RT::SharedSettings';
 
 sub RecordClass {
diff --git a/lib/RT/Interface/CLI.pm b/lib/RT/Interface/CLI.pm
index bcdc13c..d7dcde3 100644
--- a/lib/RT/Interface/CLI.pm
+++ b/lib/RT/Interface/CLI.pm
@@ -48,6 +48,7 @@
 
 package RT::Interface::CLI;
 use strict;
+use warnings;
 use RT;
 
 use base 'Exporter';
diff --git a/lib/RT/ObjectTopic.pm b/lib/RT/ObjectTopic.pm
index ae5abb3..e61504d 100644
--- a/lib/RT/ObjectTopic.pm
+++ b/lib/RT/ObjectTopic.pm
@@ -52,7 +52,6 @@
 # !! DO NOT EDIT THIS FILE !!
 #
 
-
 =head1 NAME
 
 RT::ObjectTopic
@@ -66,8 +65,11 @@ RT::ObjectTopic
 
 =cut
 
-no warnings 'redefine';
 package RT::ObjectTopic;
+use strict;
+use warnings;
+no warnings 'redefine';
+
 use RT::Record; 
 use RT::Topic;
 
diff --git a/lib/RT/SavedSearches.pm b/lib/RT/SavedSearches.pm
index 15c90dc..c25a687 100644
--- a/lib/RT/SavedSearches.pm
+++ b/lib/RT/SavedSearches.pm
@@ -70,6 +70,7 @@ package RT::SavedSearches;
 use RT::SavedSearch;
 
 use strict;
+use warnings;
 use base 'RT::SharedSettings';
 
 sub RecordClass {
diff --git a/lib/RT/Search/ActiveTicketsInQueue.pm b/lib/RT/Search/ActiveTicketsInQueue.pm
index 8a97118..1d7a61f 100644
--- a/lib/RT/Search/ActiveTicketsInQueue.pm
+++ b/lib/RT/Search/ActiveTicketsInQueue.pm
@@ -66,6 +66,7 @@ Find all active tickets in the queue named in the argument passed in
 package RT::Search::ActiveTicketsInQueue;
 
 use strict;
+use warnings;
 use base qw(RT::Search);
 
 
diff --git a/lib/RT/Search/FromSQL.pm b/lib/RT/Search/FromSQL.pm
index fe0d874..2016606 100644
--- a/lib/RT/Search/FromSQL.pm
+++ b/lib/RT/Search/FromSQL.pm
@@ -66,6 +66,7 @@ Find all tickets described by the SQL statement passed as an argument
 package RT::Search::FromSQL;
 
 use strict;
+use warnings;
 use base qw(RT::Search);
 
 =head2 Describe
diff --git a/lib/RT/SharedSettings.pm b/lib/RT/SharedSettings.pm
index c2c9abe..65acb3b 100644
--- a/lib/RT/SharedSettings.pm
+++ b/lib/RT/SharedSettings.pm
@@ -70,6 +70,7 @@ package RT::SharedSettings;
 use RT::SharedSetting;
 
 use strict;
+use warnings;
 use base 'RT::Base';
 
 sub new  {
diff --git a/lib/RT/Shredder/Dependencies.pm b/lib/RT/Shredder/Dependencies.pm
index 4b03cca..ea4b626 100644
--- a/lib/RT/Shredder/Dependencies.pm
+++ b/lib/RT/Shredder/Dependencies.pm
@@ -49,6 +49,7 @@
 package RT::Shredder::Dependencies;
 
 use strict;
+use warnings;
 use RT::Shredder::Exceptions;
 use RT::Shredder::Constants;
 use RT::Shredder::Dependency;
diff --git a/lib/RT/Shredder/Dependency.pm b/lib/RT/Shredder/Dependency.pm
index 7300bee..740ca03 100644
--- a/lib/RT/Shredder/Dependency.pm
+++ b/lib/RT/Shredder/Dependency.pm
@@ -49,6 +49,7 @@
 package RT::Shredder::Dependency;
 
 use strict;
+use warnings;
 use RT::Shredder::Constants;
 use RT::Shredder::Exceptions;
 
diff --git a/lib/RT/Test/GnuPG.pm b/lib/RT/Test/GnuPG.pm
index 6cebb77..63862a6 100644
--- a/lib/RT/Test/GnuPG.pm
+++ b/lib/RT/Test/GnuPG.pm
@@ -48,6 +48,7 @@
 
 package RT::Test::GnuPG;
 use strict;
+use warnings;
 use Test::More;
 use base qw(RT::Test);
 use File::Temp qw(tempdir);
diff --git a/lib/RT/Topics.pm b/lib/RT/Topics.pm
index fe7c3d8..8ffad27 100644
--- a/lib/RT/Topics.pm
+++ b/lib/RT/Topics.pm
@@ -47,6 +47,7 @@
 # END BPS TAGGED BLOCK }}}
 
 use strict;
+use warnings;
 no warnings qw(redefine);
 
 package RT::Topics;
diff --git a/lib/RT/URI/base.pm b/lib/RT/URI/base.pm
index 19888b0..f48e682 100644
--- a/lib/RT/URI/base.pm
+++ b/lib/RT/URI/base.pm
@@ -49,6 +49,7 @@
 package RT::URI::base;
 
 use strict;
+use warnings;
 use base qw(RT::Base);
 
 =head1 NAME
diff --git a/sbin/rt-dump-metadata.in b/sbin/rt-dump-metadata.in
old mode 100755
new mode 100644
index f58371f..032c099
--- a/sbin/rt-dump-metadata.in
+++ b/sbin/rt-dump-metadata.in
@@ -47,6 +47,7 @@
 #
 # END BPS TAGGED BLOCK }}}
 use strict;
+use warnings;
 
 # As we specify that XML is UTF-8 and we output it to STDOUT, we must be sure
 # it is UTF-8 so further XMLin will not break
diff --git a/sbin/rt-email-group-admin.in b/sbin/rt-email-group-admin.in
old mode 100755
new mode 100644
diff --git a/sbin/rt-server.in b/sbin/rt-server.in
old mode 100755
new mode 100644
diff --git a/sbin/rt-setup-database.in b/sbin/rt-setup-database.in
old mode 100755
new mode 100644
diff --git a/sbin/rt-shredder.in b/sbin/rt-shredder.in
old mode 100755
new mode 100644
diff --git a/sbin/rt-test-dependencies.in b/sbin/rt-test-dependencies.in
old mode 100755
new mode 100644
index bd753bb..0ebc47b
--- a/sbin/rt-test-dependencies.in
+++ b/sbin/rt-test-dependencies.in
@@ -52,6 +52,7 @@
 #
 
 use strict;
+use warnings;
 no warnings qw(numeric redefine);
 use Getopt::Long;
 my %args;
diff --git a/t/00-mason-syntax.t b/t/00-mason-syntax.t
index 1221b7d..0f77876 100644
--- a/t/00-mason-syntax.t
+++ b/t/00-mason-syntax.t
@@ -1,5 +1,3 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 
diff --git a/t/api/attachment_filename.t b/t/api/attachment_filename.t
index bcbfe00..6bfc707 100644
--- a/t/api/attachment_filename.t
+++ b/t/api/attachment_filename.t
@@ -1,3 +1,5 @@
+use strict;
+use warnings;
 use RT::Test tests => 5;
 use MIME::Entity;
 my $ticket = RT::Ticket->new(RT->SystemUser);
diff --git a/t/api/cf_rights.t b/t/api/cf_rights.t
index f55214a..e8a75c1 100644
--- a/t/api/cf_rights.t
+++ b/t/api/cf_rights.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use warnings;
 use strict;
 
diff --git a/t/api/cron.t b/t/api/cron.t
index 6f9d7f6..6bd992d 100644
--- a/t/api/cron.t
+++ b/t/api/cron.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl -w
-
 use strict;
+use warnings;
 
 use RT;
 use RT::Test nodata => 1, tests => 18;
diff --git a/t/api/date.t b/t/api/date.t
index 6fcaa49..728a4a2 100644
--- a/t/api/date.t
+++ b/t/api/date.t
@@ -1,9 +1,9 @@
-#!/usr/bin/perl
 
 use Test::MockTime qw(set_fixed_time restore_time);
 use DateTime;
 
-use warnings; use strict;
+use warnings;
+use strict;
 use RT::Test tests => 173;
 use RT::User;
 use Test::Warn;
diff --git a/t/api/i18n_guess.t b/t/api/i18n_guess.t
index 139ec1a..956cb15 100644
--- a/t/api/i18n_guess.t
+++ b/t/api/i18n_guess.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/api/password-types.t b/t/api/password-types.t
index 5f253d5..e5155e3 100644
--- a/t/api/password-types.t
+++ b/t/api/password-types.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 use strict;
 use warnings;
 
diff --git a/t/api/rights.t b/t/api/rights.t
index a1795ca..9328fda 100644
--- a/t/api/rights.t
+++ b/t/api/rights.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 # BEGIN BPS TAGGED BLOCK {{{
 # 
 # COPYRIGHT:
diff --git a/t/api/rights_show_ticket.t b/t/api/rights_show_ticket.t
index 62f62c4..c8107fe 100644
--- a/t/api/rights_show_ticket.t
+++ b/t/api/rights_show_ticket.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use RT::Test nodata => 1, tests => 264;
 
diff --git a/t/api/rtname.t b/t/api/rtname.t
index ef6092b..8b7b54b 100644
--- a/t/api/rtname.t
+++ b/t/api/rtname.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/api/scrip_order.t b/t/api/scrip_order.t
index 22d3f21..6fba7e5 100644
--- a/t/api/scrip_order.t
+++ b/t/api/scrip_order.t
@@ -1,6 +1,6 @@
-#!/usr/bin/perl -w
 
 use strict;
+use warnings;
 
 use RT;
 use RT::Test tests => 7;
diff --git a/t/api/versions_sorter.t b/t/api/versions_sorter.t
index b2ec547..fb628f1 100644
--- a/t/api/versions_sorter.t
+++ b/t/api/versions_sorter.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use RT::Test nodata => 1, tests => 3;
 
diff --git a/t/articles/article.t b/t/articles/article.t
index 33becb0..7a3474f 100644
--- a/t/articles/article.t
+++ b/t/articles/article.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/articles/articles.t b/t/articles/articles.t
index c6fe651..8d2918e 100644
--- a/t/articles/articles.t
+++ b/t/articles/articles.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/articles/basic-api.t b/t/articles/basic-api.t
index f9f9f89..168b8cb 100644
--- a/t/articles/basic-api.t
+++ b/t/articles/basic-api.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use warnings;
 use strict;
diff --git a/t/articles/cfsearch.t b/t/articles/cfsearch.t
index 49420e5..3bfa667 100644
--- a/t/articles/cfsearch.t
+++ b/t/articles/cfsearch.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 
 use strict;
 use warnings;
diff --git a/t/articles/class.t b/t/articles/class.t
index 84d6e23..39d5b56 100644
--- a/t/articles/class.t
+++ b/t/articles/class.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/articles/interface.t b/t/articles/interface.t
index d04be8b..85782bf 100644
--- a/t/articles/interface.t
+++ b/t/articles/interface.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/articles/queue-specific-class.t b/t/articles/queue-specific-class.t
index a73d583..706d2e5 100644
--- a/t/articles/queue-specific-class.t
+++ b/t/articles/queue-specific-class.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/articles/search-interface.t b/t/articles/search-interface.t
index bcba311..1e17c29 100644
--- a/t/articles/search-interface.t
+++ b/t/articles/search-interface.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/articles/upload-customfields.t b/t/articles/upload-customfields.t
index 912c23d..e5ed5d1 100644
--- a/t/articles/upload-customfields.t
+++ b/t/articles/upload-customfields.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/articles/uri-a.t b/t/articles/uri-a.t
index 5c1fdaf..1a0480f 100644
--- a/t/articles/uri-a.t
+++ b/t/articles/uri-a.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/articles/uri-articles.t b/t/articles/uri-articles.t
index 4124b19..b6a1c8d 100644
--- a/t/articles/uri-articles.t
+++ b/t/articles/uri-articles.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/customfields/access_via_queue.t b/t/customfields/access_via_queue.t
index 690e177..cca45e7 100644
--- a/t/customfields/access_via_queue.t
+++ b/t/customfields/access_via_queue.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/customfields/api.t b/t/customfields/api.t
index d739a57..1edc9e8 100644
--- a/t/customfields/api.t
+++ b/t/customfields/api.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings FATAL => 'all';
diff --git a/t/customfields/combo_cascade.t b/t/customfields/combo_cascade.t
index 28eee45..fba2fac 100644
--- a/t/customfields/combo_cascade.t
+++ b/t/customfields/combo_cascade.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use warnings;
 use strict;
 
diff --git a/t/customfields/date_search.t b/t/customfields/date_search.t
index b425b9e..6d7bfd0 100644
--- a/t/customfields/date_search.t
+++ b/t/customfields/date_search.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use warnings;
 use strict;
diff --git a/t/customfields/datetime_search.t b/t/customfields/datetime_search.t
index 11fe3bc..707610b 100644
--- a/t/customfields/datetime_search.t
+++ b/t/customfields/datetime_search.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use warnings;
 use strict;
diff --git a/t/customfields/external.t b/t/customfields/external.t
index 0abf6ec..62c2cef 100644
--- a/t/customfields/external.t
+++ b/t/customfields/external.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use warnings;
 use strict;
diff --git a/t/customfields/ip.t b/t/customfields/ip.t
index f73e63f..1e39e2c 100644
--- a/t/customfields/ip.t
+++ b/t/customfields/ip.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/customfields/iprange.t b/t/customfields/iprange.t
index 118d23c..af9a52f 100644
--- a/t/customfields/iprange.t
+++ b/t/customfields/iprange.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/customfields/iprangev6.t b/t/customfields/iprangev6.t
index d823dd6..3b8a4d6 100644
--- a/t/customfields/iprangev6.t
+++ b/t/customfields/iprangev6.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/customfields/ipv6.t b/t/customfields/ipv6.t
index 09c4d30..0d4075f 100644
--- a/t/customfields/ipv6.t
+++ b/t/customfields/ipv6.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/customfields/pattern.t b/t/customfields/pattern.t
index 7d1090f..2fccb45 100644
--- a/t/customfields/pattern.t
+++ b/t/customfields/pattern.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use warnings;
 use strict;
 
diff --git a/t/customfields/single_values.t b/t/customfields/single_values.t
index 15a0016..42ba479 100644
--- a/t/customfields/single_values.t
+++ b/t/customfields/single_values.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use warnings;
 use strict;
 
diff --git a/t/customfields/sort_order.t b/t/customfields/sort_order.t
index 2453a7c..ba0b654 100644
--- a/t/customfields/sort_order.t
+++ b/t/customfields/sort_order.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/customfields/transaction.t b/t/customfields/transaction.t
index 22f8459..f2e660e 100644
--- a/t/customfields/transaction.t
+++ b/t/customfields/transaction.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use warnings;
 use strict;
diff --git a/t/fts/indexed_mysql.t b/t/fts/indexed_mysql.t
index 8966f1c..c124ff8 100644
--- a/t/fts/indexed_mysql.t
+++ b/t/fts/indexed_mysql.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/fts/indexed_oracle.t b/t/fts/indexed_oracle.t
index 5d71712..98db304 100644
--- a/t/fts/indexed_oracle.t
+++ b/t/fts/indexed_oracle.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/fts/indexed_pg.t b/t/fts/indexed_pg.t
index c437c1f..b8d4b1b 100644
--- a/t/fts/indexed_pg.t
+++ b/t/fts/indexed_pg.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/fts/not_indexed.t b/t/fts/not_indexed.t
index 0a1abd0..9ec77eb 100644
--- a/t/fts/not_indexed.t
+++ b/t/fts/not_indexed.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/i18n/caching.t b/t/i18n/caching.t
index ebb2942..f3d1b01 100644
--- a/t/i18n/caching.t
+++ b/t/i18n/caching.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 use strict;
 use warnings;
 
diff --git a/t/i18n/default.t b/t/i18n/default.t
index 6c26b62..ea0848f 100644
--- a/t/i18n/default.t
+++ b/t/i18n/default.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 use strict;
 use warnings;
 
diff --git a/t/i18n/footer.t b/t/i18n/footer.t
index e0d0905..5fb8ed4 100644
--- a/t/i18n/footer.t
+++ b/t/i18n/footer.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 use strict;
 use warnings;
 
diff --git a/t/lifecycles/basics.t b/t/lifecycles/basics.t
index 5825a10..554c95a 100644
--- a/t/lifecycles/basics.t
+++ b/t/lifecycles/basics.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/lifecycles/dates.t b/t/lifecycles/dates.t
index d8a27f6..4f613f8 100644
--- a/t/lifecycles/dates.t
+++ b/t/lifecycles/dates.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/lifecycles/moving.t b/t/lifecycles/moving.t
index 6e0d64b..5f184e2 100644
--- a/t/lifecycles/moving.t
+++ b/t/lifecycles/moving.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/lifecycles/utils.pl b/t/lifecycles/utils.pl
index 6fb2293..3813df3 100644
--- a/t/lifecycles/utils.pl
+++ b/t/lifecycles/utils.pl
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/mail/charsets-outgoing.t b/t/mail/charsets-outgoing.t
index e17dd98..2fc91f2 100644
--- a/t/mail/charsets-outgoing.t
+++ b/t/mail/charsets-outgoing.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 use Encode;
diff --git a/t/mail/crypt-gnupg.t b/t/mail/crypt-gnupg.t
index c0a8756..ffb0597 100644
--- a/t/mail/crypt-gnupg.t
+++ b/t/mail/crypt-gnupg.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/mail/dashboards.t b/t/mail/dashboards.t
index 00cfc6a..edd4553 100644
--- a/t/mail/dashboards.t
+++ b/t/mail/dashboards.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/mail/digest-attributes.t b/t/mail/digest-attributes.t
index 5b45606..badd59b 100644
--- a/t/mail/digest-attributes.t
+++ b/t/mail/digest-attributes.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use warnings;
 use strict;
diff --git a/t/mail/extractsubjecttag.t b/t/mail/extractsubjecttag.t
index e76da6f..c6a5511 100644
--- a/t/mail/extractsubjecttag.t
+++ b/t/mail/extractsubjecttag.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 use utf8;
diff --git a/t/mail/gateway.t b/t/mail/gateway.t
index 98eabd5..d6476a6 100644
--- a/t/mail/gateway.t
+++ b/t/mail/gateway.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 # BEGIN BPS TAGGED BLOCK {{{
 # 
 # COPYRIGHT:
diff --git a/t/mail/gnupg-bad.t b/t/mail/gnupg-bad.t
index c9b28c9..a1c45be 100644
--- a/t/mail/gnupg-bad.t
+++ b/t/mail/gnupg-bad.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/mail/gnupg-incoming.t b/t/mail/gnupg-incoming.t
index 6ff4f76..f662307 100644
--- a/t/mail/gnupg-incoming.t
+++ b/t/mail/gnupg-incoming.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/mail/gnupg-outgoing-encrypted.t b/t/mail/gnupg-outgoing-encrypted.t
index 4f2a28f..96c7487 100644
--- a/t/mail/gnupg-outgoing-encrypted.t
+++ b/t/mail/gnupg-outgoing-encrypted.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 use strict;
 use warnings;
 
diff --git a/t/mail/gnupg-outgoing-plain.t b/t/mail/gnupg-outgoing-plain.t
index ee9a8ac..62ae0ed 100644
--- a/t/mail/gnupg-outgoing-plain.t
+++ b/t/mail/gnupg-outgoing-plain.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 use strict;
 use warnings;
 
diff --git a/t/mail/gnupg-outgoing-signed.t b/t/mail/gnupg-outgoing-signed.t
index 2ea20a2..4aa262b 100644
--- a/t/mail/gnupg-outgoing-signed.t
+++ b/t/mail/gnupg-outgoing-signed.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 use strict;
 use warnings;
 
diff --git a/t/mail/gnupg-outgoing-signed_encrypted.t b/t/mail/gnupg-outgoing-signed_encrypted.t
index 0b82cf1..806f62d 100644
--- a/t/mail/gnupg-outgoing-signed_encrypted.t
+++ b/t/mail/gnupg-outgoing-signed_encrypted.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 use strict;
 use warnings;
 
diff --git a/t/mail/gnupg-realmail.t b/t/mail/gnupg-realmail.t
index 7d1dbca..834014c 100644
--- a/t/mail/gnupg-realmail.t
+++ b/t/mail/gnupg-realmail.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/mail/gnupg-reverification.t b/t/mail/gnupg-reverification.t
index 96a37a0..939bf33 100644
--- a/t/mail/gnupg-reverification.t
+++ b/t/mail/gnupg-reverification.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/mail/gnupg-special.t b/t/mail/gnupg-special.t
index 7dd6347..15aad34 100644
--- a/t/mail/gnupg-special.t
+++ b/t/mail/gnupg-special.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/mail/mime_decoding.t b/t/mail/mime_decoding.t
index 7515e2c..845ff23 100644
--- a/t/mail/mime_decoding.t
+++ b/t/mail/mime_decoding.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 use RT::Test nodb => 1, tests => 9;
diff --git a/t/mail/multipart.t b/t/mail/multipart.t
index a68710a..47dedc3 100644
--- a/t/mail/multipart.t
+++ b/t/mail/multipart.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 # BEGIN BPS TAGGED BLOCK {{{
 # 
 # COPYRIGHT:
diff --git a/t/mail/one-time-recipients.t b/t/mail/one-time-recipients.t
index 985f955..3484d14 100644
--- a/t/mail/one-time-recipients.t
+++ b/t/mail/one-time-recipients.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 use utf8;
diff --git a/t/mail/outlook.t b/t/mail/outlook.t
index 00bbc94..c9640e4 100644
--- a/t/mail/outlook.t
+++ b/t/mail/outlook.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 # BEGIN BPS TAGGED BLOCK {{{
 # 
 # COPYRIGHT:
diff --git a/t/mail/sendmail.t b/t/mail/sendmail.t
index bb5d2db..44903f3 100644
--- a/t/mail/sendmail.t
+++ b/t/mail/sendmail.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl -w
-
 use strict;
+use warnings;
 use File::Spec ();
 
 use RT::Test tests => 141;
diff --git a/t/mail/verp.t b/t/mail/verp.t
index ed3af6a..a07f800 100644
--- a/t/mail/verp.t
+++ b/t/mail/verp.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl -w
-
 use strict;
+use warnings;
 use RT::Test nodb => 1, tests => 1;
 TODO: { 
     todo_skip "No tests written for VERP yet", 1;
diff --git a/t/mail/wrong_mime_charset.t b/t/mail/wrong_mime_charset.t
index 511a7e6..530b5f3 100644
--- a/t/mail/wrong_mime_charset.t
+++ b/t/mail/wrong_mime_charset.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 use RT::Test nodb => 1, tests => 6;
diff --git a/t/shredder/00skeleton.t b/t/shredder/00skeleton.t
index eab9433..c23e064 100644
--- a/t/shredder/00skeleton.t
+++ b/t/shredder/00skeleton.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/shredder/01basics.t b/t/shredder/01basics.t
index 99e66c7..b0000b1 100644
--- a/t/shredder/01basics.t
+++ b/t/shredder/01basics.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/shredder/01ticket.t b/t/shredder/01ticket.t
index a7abeef..b834963 100644
--- a/t/shredder/01ticket.t
+++ b/t/shredder/01ticket.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/shredder/02group_member.t b/t/shredder/02group_member.t
index 9f8a6c6..5952e1e 100644
--- a/t/shredder/02group_member.t
+++ b/t/shredder/02group_member.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/shredder/02queue.t b/t/shredder/02queue.t
index fb5e36d..7cfd378 100644
--- a/t/shredder/02queue.t
+++ b/t/shredder/02queue.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/shredder/02template.t b/t/shredder/02template.t
index 16fa615..4d0cd4f 100644
--- a/t/shredder/02template.t
+++ b/t/shredder/02template.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/shredder/02user.t b/t/shredder/02user.t
index 8c8657c..d97511d 100644
--- a/t/shredder/02user.t
+++ b/t/shredder/02user.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/shredder/03plugin.t b/t/shredder/03plugin.t
index cf51e44..4ba2fbf 100644
--- a/t/shredder/03plugin.t
+++ b/t/shredder/03plugin.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/shredder/03plugin_summary.t b/t/shredder/03plugin_summary.t
index 2744531..ec3b6e9 100644
--- a/t/shredder/03plugin_summary.t
+++ b/t/shredder/03plugin_summary.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/shredder/03plugin_tickets.t b/t/shredder/03plugin_tickets.t
index e63eef8..256be1c 100644
--- a/t/shredder/03plugin_tickets.t
+++ b/t/shredder/03plugin_tickets.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/shredder/03plugin_users.t b/t/shredder/03plugin_users.t
index 1f4cb49..ef75680 100644
--- a/t/shredder/03plugin_users.t
+++ b/t/shredder/03plugin_users.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/shredder/utils.pl b/t/shredder/utils.pl
index 9b848c6..7be9513 100644
--- a/t/shredder/utils.pl
+++ b/t/shredder/utils.pl
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/ticket/action_linear_escalate.t b/t/ticket/action_linear_escalate.t
index 2a1be61..0d1ff8a 100644
--- a/t/ticket/action_linear_escalate.t
+++ b/t/ticket/action_linear_escalate.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/ticket/add-watchers.t b/t/ticket/add-watchers.t
index e49c694..81fa7fc 100644
--- a/t/ticket/add-watchers.t
+++ b/t/ticket/add-watchers.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 # BEGIN BPS TAGGED BLOCK {{{
 # 
 # COPYRIGHT:
diff --git a/t/ticket/badlinks.t b/t/ticket/badlinks.t
index 71ab739..6fac5d5 100644
--- a/t/ticket/badlinks.t
+++ b/t/ticket/badlinks.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 use RT::Test tests => 14;
diff --git a/t/ticket/batch-upload-csv.t b/t/ticket/batch-upload-csv.t
index cedc014..8dc906e 100644
--- a/t/ticket/batch-upload-csv.t
+++ b/t/ticket/batch-upload-csv.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
-use strict; use warnings;
+use strict;
+use warnings;
 
 use RT::Test tests => 12;
 use_ok('RT');
diff --git a/t/ticket/cfsort-freeform-multiple.t b/t/ticket/cfsort-freeform-multiple.t
index e285d0e..ba6150b 100644
--- a/t/ticket/cfsort-freeform-multiple.t
+++ b/t/ticket/cfsort-freeform-multiple.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use RT::Test nodata => 1, tests => 41;
 
diff --git a/t/ticket/cfsort-freeform-single.t b/t/ticket/cfsort-freeform-single.t
index 35a53fb..ae109e9 100644
--- a/t/ticket/cfsort-freeform-single.t
+++ b/t/ticket/cfsort-freeform-single.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use RT::Test nodata => 1, tests => 89;
 
diff --git a/t/ticket/clicky.t b/t/ticket/clicky.t
index 3a7ec82..20d39a3 100644
--- a/t/ticket/clicky.t
+++ b/t/ticket/clicky.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/ticket/googleish_search.t b/t/ticket/googleish_search.t
index aa33257..d372801 100644
--- a/t/ticket/googleish_search.t
+++ b/t/ticket/googleish_search.t
@@ -1,5 +1,4 @@
 
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/ticket/link_search.t b/t/ticket/link_search.t
index dbcf4b4..9e5ed1c 100644
--- a/t/ticket/link_search.t
+++ b/t/ticket/link_search.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl -w
-
 use strict;
+use warnings;
 use RT;
 
 # Load the config file
diff --git a/t/ticket/merge.t b/t/ticket/merge.t
index d06d541..2484b65 100644
--- a/t/ticket/merge.t
+++ b/t/ticket/merge.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/ticket/requestor-order.t b/t/ticket/requestor-order.t
index bdacc46..d8308d3 100644
--- a/t/ticket/requestor-order.t
+++ b/t/ticket/requestor-order.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
-use strict; use warnings;
+use strict;
+use warnings;
 
 use RT::Test tests => 58;
 use_ok('RT');
diff --git a/t/ticket/search.t b/t/ticket/search.t
index fd0a7e0..35e5948 100644
--- a/t/ticket/search.t
+++ b/t/ticket/search.t
@@ -1,4 +1,3 @@
-#!/opt/perl/bin/perl -w
 
 # tests relating to searching. Especially around custom fields, and
 # corner cases.
diff --git a/t/ticket/search_by_cf_freeform_multiple.t b/t/ticket/search_by_cf_freeform_multiple.t
index 4e7cddc..1b4f092 100644
--- a/t/ticket/search_by_cf_freeform_multiple.t
+++ b/t/ticket/search_by_cf_freeform_multiple.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/ticket/search_by_cf_freeform_single.t b/t/ticket/search_by_cf_freeform_single.t
index 278a3ce..f8462a9 100644
--- a/t/ticket/search_by_cf_freeform_single.t
+++ b/t/ticket/search_by_cf_freeform_single.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/ticket/search_by_links.t b/t/ticket/search_by_links.t
index 61b69b7..d25d300 100644
--- a/t/ticket/search_by_links.t
+++ b/t/ticket/search_by_links.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/ticket/search_by_txn.t b/t/ticket/search_by_txn.t
index 0e5f76d..6f970aa 100644
--- a/t/ticket/search_by_txn.t
+++ b/t/ticket/search_by_txn.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use warnings;
 use strict;
diff --git a/t/ticket/search_by_watcher.t b/t/ticket/search_by_watcher.t
index cfc7b1c..a6800bb 100644
--- a/t/ticket/search_by_watcher.t
+++ b/t/ticket/search_by_watcher.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/ticket/search_long_cf_values.t b/t/ticket/search_long_cf_values.t
index 6ce8505..5b904b3 100644
--- a/t/ticket/search_long_cf_values.t
+++ b/t/ticket/search_long_cf_values.t
@@ -1,4 +1,3 @@
-#!/opt/perl/bin/perl -w
 
 # tests relating to searching. Especially around custom fields with long values
 # (> 255 chars)
diff --git a/t/ticket/sort-by-custom-ownership.t b/t/ticket/sort-by-custom-ownership.t
index b06e9a0..80e88a8 100644
--- a/t/ticket/sort-by-custom-ownership.t
+++ b/t/ticket/sort-by-custom-ownership.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use RT;
 use RT::Test nodata => 1, tests => 7;
diff --git a/t/ticket/sort-by-queue.t b/t/ticket/sort-by-queue.t
index bf2934b..f54ccf7 100644
--- a/t/ticket/sort-by-queue.t
+++ b/t/ticket/sort-by-queue.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use RT::Test nodata => 1, tests => 12;
 
diff --git a/t/ticket/sort-by-user.t b/t/ticket/sort-by-user.t
index 10d43de..42f95fc 100644
--- a/t/ticket/sort-by-user.t
+++ b/t/ticket/sort-by-user.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use RT::Test nodata => 1, tests => 52;
 
diff --git a/t/ticket/sort_by_cf.t b/t/ticket/sort_by_cf.t
index 65704da..30f6ad8 100644
--- a/t/ticket/sort_by_cf.t
+++ b/t/ticket/sort_by_cf.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use RT::Test nodata => 1, tests => 21;
 RT::Init();
diff --git a/t/validator/group_members.t b/t/validator/group_members.t
index 7818014..fbe7580 100644
--- a/t/validator/group_members.t
+++ b/t/validator/group_members.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 
 use strict;
 use warnings;
diff --git a/t/web/admin_groups.t b/t/web/admin_groups.t
index 783b5ad..075fb62 100644
--- a/t/web/admin_groups.t
+++ b/t/web/admin_groups.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/web/admin_user.t b/t/web/admin_user.t
index fde075f..24156a9 100644
--- a/t/web/admin_user.t
+++ b/t/web/admin_user.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/attachment_encoding.t b/t/web/attachment_encoding.t
index bfbf245..5af7fda 100644
--- a/t/web/attachment_encoding.t
+++ b/t/web/attachment_encoding.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/attachments.t b/t/web/attachments.t
index 784cbbe..b518ec1 100644
--- a/t/web/attachments.t
+++ b/t/web/attachments.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
 use strict;
+use warnings;
 
 use RT::Test tests => 33;
 
diff --git a/t/web/basic.t b/t/web/basic.t
index 31e28c4..e61e80e 100644
--- a/t/web/basic.t
+++ b/t/web/basic.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/cf_access.t b/t/web/cf_access.t
index 73b7765..675fa21 100644
--- a/t/web/cf_access.t
+++ b/t/web/cf_access.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
 use strict;
+use warnings;
 
 use RT::Test tests => 32;
 
diff --git a/t/web/cf_date.t b/t/web/cf_date.t
index 887aa42..4ea93e4 100644
--- a/t/web/cf_date.t
+++ b/t/web/cf_date.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/cf_datetime.t b/t/web/cf_datetime.t
index 9781c5e..8cc099d 100644
--- a/t/web/cf_datetime.t
+++ b/t/web/cf_datetime.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/cf_onqueue.t b/t/web/cf_onqueue.t
index 422eeff..bd6ae66 100644
--- a/t/web/cf_onqueue.t
+++ b/t/web/cf_onqueue.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
 use strict;
+use warnings;
 
 use RT::Test tests => 14;
 my ($baseurl, $m) = RT::Test->started_ok;
diff --git a/t/web/cf_select_one.t b/t/web/cf_select_one.t
index 15fe416..92fcf53 100644
--- a/t/web/cf_select_one.t
+++ b/t/web/cf_select_one.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/clickjacking-preventions.t b/t/web/clickjacking-preventions.t
index dde8295..e3f7f44 100644
--- a/t/web/clickjacking-preventions.t
+++ b/t/web/clickjacking-preventions.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/command_line.t b/t/web/command_line.t
index 394daab..fc95855 100644
--- a/t/web/command_line.t
+++ b/t/web/command_line.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl -w
-
 use strict;
+use warnings;
 use File::Spec ();
 use Test::Expect;
 use RT::Test tests => 315, actual_server => 1;
diff --git a/t/web/command_line_with_unknown_field.t b/t/web/command_line_with_unknown_field.t
index d63956b..c2f2724 100644
--- a/t/web/command_line_with_unknown_field.t
+++ b/t/web/command_line_with_unknown_field.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl -w
-
 use strict;
+use warnings;
 use File::Spec ();
 use Test::Expect;
 use RT::Test tests => 17, actual_server => 1;
diff --git a/t/web/compilation_errors.t b/t/web/compilation_errors.t
index 1f82ab9..5e3ef58 100644
--- a/t/web/compilation_errors.t
+++ b/t/web/compilation_errors.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl
-
 use strict;
+use warnings;
 use Test::More;
 use File::Find;
 BEGIN {
diff --git a/t/web/config_tab_right.t b/t/web/config_tab_right.t
index 361506c..69bf80c 100644
--- a/t/web/config_tab_right.t
+++ b/t/web/config_tab_right.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 use strict;
 use warnings;
 
diff --git a/t/web/crypt-gnupg.t b/t/web/crypt-gnupg.t
index 8c0eb57..6415d10 100644
--- a/t/web/crypt-gnupg.t
+++ b/t/web/crypt-gnupg.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
 use strict;
+use warnings;
 
 use RT::Test::GnuPG
   tests         => 102,
diff --git a/t/web/custom_frontpage.t b/t/web/custom_frontpage.t
index 43c5f6e..8db89a5 100644
--- a/t/web/custom_frontpage.t
+++ b/t/web/custom_frontpage.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
 use strict;
+use warnings;
 
 use RT::Test tests => 12;
 my ($baseurl, $m) = RT::Test->started_ok;
diff --git a/t/web/custom_search.t b/t/web/custom_search.t
index f8fde25..bf7d659 100644
--- a/t/web/custom_search.t
+++ b/t/web/custom_search.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
 use strict;
+use warnings;
 
 use RT::Test tests => 13;
 my ($baseurl, $m) = RT::Test->started_ok;
diff --git a/t/web/dashboards-basics.t b/t/web/dashboards-basics.t
index 1d56da5..edb7068 100644
--- a/t/web/dashboards-basics.t
+++ b/t/web/dashboards-basics.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
 use strict;
+use warnings;
 
 use RT::Test tests => 122;
 my ($baseurl, $m) = RT::Test->started_ok;
diff --git a/t/web/dashboards-deleted-saved-search.t b/t/web/dashboards-deleted-saved-search.t
index 4cd7fea..cb96aca 100644
--- a/t/web/dashboards-deleted-saved-search.t
+++ b/t/web/dashboards-deleted-saved-search.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/dashboards-groups.t b/t/web/dashboards-groups.t
index ac2a5ac..db2fccf 100644
--- a/t/web/dashboards-groups.t
+++ b/t/web/dashboards-groups.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
 use strict;
+use warnings;
 
 use RT::Test nodata => 1, tests => 64;
 my ($baseurl, $m) = RT::Test->started_ok;
diff --git a/t/web/dashboards-permissions.t b/t/web/dashboards-permissions.t
index f2e59e5..433fdd3 100644
--- a/t/web/dashboards-permissions.t
+++ b/t/web/dashboards-permissions.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/web/dashboards-search-cache.t b/t/web/dashboards-search-cache.t
index ad2a969..517e26e 100644
--- a/t/web/dashboards-search-cache.t
+++ b/t/web/dashboards-search-cache.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
 use strict;
+use warnings;
 
 use RT::Test tests => 20;
 my ($baseurl, $m) = RT::Test->started_ok;
diff --git a/t/web/gnupg-headers.t b/t/web/gnupg-headers.t
index 88b3ab9..03e6090 100644
--- a/t/web/gnupg-headers.t
+++ b/t/web/gnupg-headers.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
 use strict;
+use warnings;
 
 use RT::Test::GnuPG
   tests         => 15,
diff --git a/t/web/gnupg-select-keys-on-create.t b/t/web/gnupg-select-keys-on-create.t
index cf27e48..893ae65 100644
--- a/t/web/gnupg-select-keys-on-create.t
+++ b/t/web/gnupg-select-keys-on-create.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 use strict;
 use warnings;
 
diff --git a/t/web/gnupg-select-keys-on-update.t b/t/web/gnupg-select-keys-on-update.t
index 4842dcd..1509d1d 100644
--- a/t/web/gnupg-select-keys-on-update.t
+++ b/t/web/gnupg-select-keys-on-update.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 use strict;
 use warnings;
 
diff --git a/t/web/gnupg-tickyboxes.t b/t/web/gnupg-tickyboxes.t
index 9445397..eb4388a 100644
--- a/t/web/gnupg-tickyboxes.t
+++ b/t/web/gnupg-tickyboxes.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 use strict;
 use warnings;
 
diff --git a/t/web/googleish_search.t b/t/web/googleish_search.t
index f4c8fa4..a5f834e 100644
--- a/t/web/googleish_search.t
+++ b/t/web/googleish_search.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/html_template.t b/t/web/html_template.t
index 662a26b..4e7bc29 100644
--- a/t/web/html_template.t
+++ b/t/web/html_template.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/logout.t b/t/web/logout.t
index 889e5fc..73ff25c 100644
--- a/t/web/logout.t
+++ b/t/web/logout.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/web/offline_messages_utf8.t b/t/web/offline_messages_utf8.t
index bf9cf39..4518c7b 100644
--- a/t/web/offline_messages_utf8.t
+++ b/t/web/offline_messages_utf8.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/offline_utf8.t b/t/web/offline_utf8.t
index 24795c0..c317a46 100644
--- a/t/web/offline_utf8.t
+++ b/t/web/offline_utf8.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/passthrough-jsmin b/t/web/passthrough-jsmin
index 3d9bf01..41b0196 100755
--- a/t/web/passthrough-jsmin
+++ b/t/web/passthrough-jsmin
@@ -1,4 +1,3 @@
-#!/bin/sh
 
 echo "// passthrough-jsmin added this";
 
diff --git a/t/web/private-components.t b/t/web/private-components.t
index ceb2b34..3ece854 100644
--- a/t/web/private-components.t
+++ b/t/web/private-components.t
@@ -1,4 +1,5 @@
 use strict;
+use warnings;
 
 use RT::Test tests => 24;
 my ($baseurl, $agent) = RT::Test->started_ok;
diff --git a/t/web/query_builder.t b/t/web/query_builder.t
index 5a64d46..13cd1b5 100644
--- a/t/web/query_builder.t
+++ b/t/web/query_builder.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl
-
 use strict;
+use warnings;
 use HTTP::Request::Common;
 use HTTP::Cookies;
 use LWP;
diff --git a/t/web/query_log.t b/t/web/query_log.t
index e19f44d..89cca2d 100644
--- a/t/web/query_log.t
+++ b/t/web/query_log.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/web/quickcreate.t b/t/web/quickcreate.t
index b257f9d..c49ad8c 100644
--- a/t/web/quickcreate.t
+++ b/t/web/quickcreate.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/quicksearch.t b/t/web/quicksearch.t
index 8cc084c..922dc31 100644
--- a/t/web/quicksearch.t
+++ b/t/web/quicksearch.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/redirect-after-login.t b/t/web/redirect-after-login.t
index 835b24c..35025a1 100644
--- a/t/web/redirect-after-login.t
+++ b/t/web/redirect-after-login.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/reminders.t b/t/web/reminders.t
index 32e130c..b07aefc 100644
--- a/t/web/reminders.t
+++ b/t/web/reminders.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 use RT::Test tests => 35;
diff --git a/t/web/requestor_groups_edit_link.t b/t/web/requestor_groups_edit_link.t
index 9d1fefd..cf67311 100644
--- a/t/web/requestor_groups_edit_link.t
+++ b/t/web/requestor_groups_edit_link.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/requestor_groups_limit.t b/t/web/requestor_groups_limit.t
index 7987a13..abc21ca 100644
--- a/t/web/requestor_groups_limit.t
+++ b/t/web/requestor_groups_limit.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/rest-non-ascii-subject.t b/t/web/rest-non-ascii-subject.t
index d7a89af..8b870a8 100644
--- a/t/web/rest-non-ascii-subject.t
+++ b/t/web/rest-non-ascii-subject.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 # Test ticket creation with REST using non ascii subject
 use strict;
 use warnings;
diff --git a/t/web/rest-sort.t b/t/web/rest-sort.t
index 6b4d351..5ddaa8e 100644
--- a/t/web/rest-sort.t
+++ b/t/web/rest-sort.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 use RT::Test tests => 25;
diff --git a/t/web/rest.t b/t/web/rest.t
index e38f201..27f9db9 100644
--- a/t/web/rest.t
+++ b/t/web/rest.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 use RT::Interface::REST;
diff --git a/t/web/richtext-autohandler.t b/t/web/richtext-autohandler.t
index 734426f..724a7b3 100644
--- a/t/web/richtext-autohandler.t
+++ b/t/web/richtext-autohandler.t
@@ -1,4 +1,5 @@
 use strict;
+use warnings;
 
 use RT::Test tests => 9;
 my ($baseurl, $agent) = RT::Test->started_ok;
diff --git a/t/web/rights.t b/t/web/rights.t
index 9a5f358..23b357f 100644
--- a/t/web/rights.t
+++ b/t/web/rights.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl -w
 use strict;
 use warnings;
 
diff --git a/t/web/rights1.t b/t/web/rights1.t
index 24e5c34..63ddb38 100644
--- a/t/web/rights1.t
+++ b/t/web/rights1.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
 use strict;
+use warnings;
 use HTTP::Cookies;
 
 use RT::Test nodata => 1, tests => 31;
diff --git a/t/web/saved_search_chart.t b/t/web/saved_search_chart.t
index f843071..70111b9 100644
--- a/t/web/saved_search_chart.t
+++ b/t/web/saved_search_chart.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/saved_search_permissions.t b/t/web/saved_search_permissions.t
index 5cae30b..f61c931 100644
--- a/t/web/saved_search_permissions.t
+++ b/t/web/saved_search_permissions.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/saved_search_update.t b/t/web/saved_search_update.t
index dfb18d4..f06f70f 100644
--- a/t/web/saved_search_update.t
+++ b/t/web/saved_search_update.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/scrub.t b/t/web/scrub.t
index 612c6e2..835f412 100644
--- a/t/web/scrub.t
+++ b/t/web/scrub.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/web/search_bulk_update_links.t b/t/web/search_bulk_update_links.t
index 7d150a6..ffe2efe 100644
--- a/t/web/search_bulk_update_links.t
+++ b/t/web/search_bulk_update_links.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/search_rss.t b/t/web/search_rss.t
index 95de931..9a53a8d 100644
--- a/t/web/search_rss.t
+++ b/t/web/search_rss.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl
-
 use strict;
+use warnings;
 
 use RT::Test tests => 38;
 my ($baseurl, $agent) = RT::Test->started_ok;
diff --git a/t/web/search_tabs.t b/t/web/search_tabs.t
index b3ed2cb..b679eaf 100644
--- a/t/web/search_tabs.t
+++ b/t/web/search_tabs.t
@@ -1,6 +1,6 @@
-#!/usr/bin/perl
-use warnings;
 use strict;
+use warnings;
+
 
 use RT::Test tests => 21;
 my ($baseurl, $agent) = RT::Test->started_ok;
diff --git a/t/web/template.t b/t/web/template.t
index 40a5366..a24f741 100644
--- a/t/web/template.t
+++ b/t/web/template.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/web/ticket-create-utf8.t b/t/web/ticket-create-utf8.t
index 8d36bd1..bebc57b 100644
--- a/t/web/ticket-create-utf8.t
+++ b/t/web/ticket-create-utf8.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/ticket_forward.t b/t/web/ticket_forward.t
index 1d74673..39c3b1a 100644
--- a/t/web/ticket_forward.t
+++ b/t/web/ticket_forward.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/web/ticket_owner.t b/t/web/ticket_owner.t
index 4db39e6..8150853 100644
--- a/t/web/ticket_owner.t
+++ b/t/web/ticket_owner.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/ticket_owner_autocomplete.t b/t/web/ticket_owner_autocomplete.t
index 3aa3f28..040aa73 100644
--- a/t/web/ticket_owner_autocomplete.t
+++ b/t/web/ticket_owner_autocomplete.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/ticket_owner_issues_16656.t b/t/web/ticket_owner_issues_16656.t
index a6306f7..c9fc783 100644
--- a/t/web/ticket_owner_issues_16656.t
+++ b/t/web/ticket_owner_issues_16656.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/ticket_seen.t b/t/web/ticket_seen.t
index 8dacaf5..e40782f 100644
--- a/t/web/ticket_seen.t
+++ b/t/web/ticket_seen.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;
diff --git a/t/web/ticket_txn_content.t b/t/web/ticket_txn_content.t
index db47512..c0cae97 100644
--- a/t/web/ticket_txn_content.t
+++ b/t/web/ticket_txn_content.t
@@ -1,5 +1,5 @@
-#!/usr/bin/perl -w
 use strict;
+use warnings;
 
 use RT::Test tests => 63;
 my $plain_file = File::Spec->catfile( RT::Test->temp_directory, 'attachment.txt' );
diff --git a/t/web/ticket_update_without_content.t b/t/web/ticket_update_without_content.t
index 54f0c5a..b4247ab 100644
--- a/t/web/ticket_update_without_content.t
+++ b/t/web/ticket_update_without_content.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/unlimited_search.t b/t/web/unlimited_search.t
index 988a291..6a5f697 100644
--- a/t/web/unlimited_search.t
+++ b/t/web/unlimited_search.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl
-
 use strict;
+use warnings;
 
 use RT::Test tests => 85;
 my ($baseurl, $agent) = RT::Test->started_ok;
diff --git a/t/web/user_update.t b/t/web/user_update.t
index dc908fc..d5751ab 100644
--- a/t/web/user_update.t
+++ b/t/web/user_update.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 use utf8;
diff --git a/t/web/walk.t b/t/web/walk.t
index 34fab14..97aa36e 100644
--- a/t/web/walk.t
+++ b/t/web/walk.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 
 use strict;
 use warnings;

commit 06ed609dcd4696dcc60a23cb266b506041acee5f
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Mon Aug 22 11:35:02 2011 +0800

    test and fix devel tools to meet code policy too

diff --git a/devel/tools/factory b/devel/tools/factory
index 099d2db..e4ec2d3 100755
--- a/devel/tools/factory
+++ b/devel/tools/factory
@@ -47,6 +47,7 @@
 #
 # END BPS TAGGED BLOCK }}}
 use strict;
+use warnings;
 use DBI;
 
 die "Usage: $0 database namespace" if @ARGV != 2;
diff --git a/devel/tools/license_tag b/devel/tools/license_tag
index de3bd3b..c0ae47e 100755
--- a/devel/tools/license_tag
+++ b/devel/tools/license_tag
@@ -48,6 +48,8 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+use strict;
+use warnings;
 my $LICENSE  = <<'EOL';
 
 COPYRIGHT:
diff --git a/devel/tools/merge-rosetta.pl b/devel/tools/merge-rosetta.pl
old mode 100644
new mode 100755
index e3b45a1..e8b4a60
--- a/devel/tools/merge-rosetta.pl
+++ b/devel/tools/merge-rosetta.pl
@@ -46,4 +46,6 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+use strict;
+use warnings;
 exec('sbin/rt-message-catalog', 'rosetta', @ARGV);
diff --git a/devel/tools/tweak-template-locstring b/devel/tools/tweak-template-locstring
old mode 100644
new mode 100755
index 7f8a880..a4f88c4
--- a/devel/tools/tweak-template-locstring
+++ b/devel/tools/tweak-template-locstring
@@ -47,6 +47,7 @@
 #
 # END BPS TAGGED BLOCK }}}
 use strict;
+use warnings;
 # run this script with:
 # perl -0pi sbin/tweak-template-locstring `ack -f share/html -G 'html$'`
 s!\<\&\|\/l([^&]*)\&\>[\n\s]+(.*?)[\n\s]*\<\/\&\>!;my ($arg, $x) = ($1, $2); $x =~ s/\s*\n\s*/ /g;"<&|/l$arg&>$x</&>"!smge;
diff --git a/t/99-policy.t b/t/99-policy.t
index b65b9c3..32a2530 100644
--- a/t/99-policy.t
+++ b/t/99-policy.t
@@ -31,6 +31,14 @@ sub check {
             is( $mode, '0754', $File::Find::name . ' permission is 0754' );
         }
     }
+    elsif ( $type eq 'devel' ) {
+        like(
+            $content,
+            qr{^#!/usr/bin/env perl},
+            $File::Find::name . ' has shebang'
+        );
+        is( $mode, '0755', $File::Find::name . ' permission is 0755' );
+    }
     else {
         unlike( $content, qr/^#!/, $File::Find::name . ' has no shebang' );
         is( $mode, '0644', $File::Find::name . ' permission is 0644' );
@@ -59,6 +67,13 @@ find(
         check( $_, 'script' );
     },
     'bin',
-    'sbin'
+    'sbin',
 );
 
+find(
+    sub {
+        return unless -f && $_ !~ m{/(localhost\.(crt|key)|mime\.types)$};
+        check( $_, 'devel' );
+    },
+    'devel/tools',
+);

commit 9fb6cde51fae7f1b26ed6e4fa9bdc4af0b6fb478
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Mon Aug 22 14:21:22 2011 -0400

    Make rt-crontool pass the newly-added "use warnings" pragma

diff --git a/bin/rt-crontool.in b/bin/rt-crontool.in
index 1f0439e..ff953e9 100644
--- a/bin/rt-crontool.in
+++ b/bin/rt-crontool.in
@@ -79,7 +79,7 @@ use RT;
 
 use Getopt::Long;
 
-use RT::Interface::CLI qw(CleanEnv GetCurrentUser GetMessageContent loc);
+use RT::Interface::CLI qw(CleanEnv GetCurrentUser GetMessageContent);
 
 #Clean out all the nasties from the environment
 CleanEnv();
@@ -154,17 +154,13 @@ my $void_scrip_action = RT::ScripAction->new( $CurrentUser );
 
 #find a bunch of tickets
 my $tickets = RT::Tickets->new($CurrentUser);
-my $search  = $search->new(
+$search  = $search->new(
     TicketsObj  => $tickets,
     Argument    => $search_arg,
     CurrentUser => $CurrentUser
 );
-
 $search->Prepare();
 
-# TicketsFound is an RT::Tickets object
-my $tickets = $search->TicketsObj;
-
 #for each ticket we've found
 while ( my $ticket = $tickets->Next() ) {
     print $ticket->Id() . ":\n" if ($verbose);
@@ -311,18 +307,6 @@ sub load_module {
 }
 
 
-
-# =head2 loc LIST
-# 
-# Localize this string, with the current user's currentuser object
-# 
-# =cut
-
-sub loc {
-    $CurrentUser->loc(@_);
-}
-
-
 sub help {
 
     print loc( "[_1] is a tool to act on tickets from an external scheduling tool, such as cron.", $0 )

commit 74059c8be1c74a9682080e606d4d34899ee41eea
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Mon Aug 22 14:24:24 2011 -0400

    Only check the u+x bit, not the entire mode
    
    Git does not track the excutable bit as more than one global bit; as
    such, there is no way to check in a file which has mode 0754 and
    guarantee that it will be checked out as such later.  With no other
    information, git will re-create it 0755 -- or, if the user's umask is
    0077, it will be recreated as 0700!  Explicitly only check the u+x bit,
    which is all that git can reliably set.

diff --git a/t/99-policy.t b/t/99-policy.t
index 32a2530..5e95212 100644
--- a/t/99-policy.t
+++ b/t/99-policy.t
@@ -21,14 +21,14 @@ sub check {
         qr/^use warnings(?:;|\s+)/m,
         $File::Find::name . ' has "use warnings"'
     );
-    my $mode = sprintf( '%04o', ( stat $file )[2] & 07777 );
+    my $executable = ( stat $file )[2] & 0100;
     if ( $type eq 'script' ) {
         like( $content, qr/^#!/, $File::Find::name . ' has shebang' );
         if ( $file =~ /\.in/ ) {
-            is( $mode, '0644', $File::Find::name . ' permission is 0644' );
+            ok( !$executable, $File::Find::name . ' permission is not u+x' );
         }
         else {
-            is( $mode, '0754', $File::Find::name . ' permission is 0754' );
+            ok( $executable, $File::Find::name . ' permission is u+x' );
         }
     }
     elsif ( $type eq 'devel' ) {
@@ -37,11 +37,11 @@ sub check {
             qr{^#!/usr/bin/env perl},
             $File::Find::name . ' has shebang'
         );
-        is( $mode, '0755', $File::Find::name . ' permission is 0755' );
+        ok( $executable, $File::Find::name . ' permission is u+x' );
     }
     else {
         unlike( $content, qr/^#!/, $File::Find::name . ' has no shebang' );
-        is( $mode, '0644', $File::Find::name . ' permission is 0644' );
+        ok( !$executable, $File::Find::name . ' permission is not u+x' );
     }
 }
 

commit 902b846163405b5eaa929122813bbee932b0ebfb
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Jun 20 10:14:42 2012 -0400

    Clean out vestigial comments referencing factory

diff --git a/lib/RT/ObjectTopic.pm b/lib/RT/ObjectTopic.pm
index e61504d..24b5956 100644
--- a/lib/RT/ObjectTopic.pm
+++ b/lib/RT/ObjectTopic.pm
@@ -46,17 +46,10 @@
 #
 # END BPS TAGGED BLOCK }}}
 
-# Autogenerated by DBIx::SearchBuilder factory (by <jesse at bestpractical.com>)
-# WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST.  
-# 
-# !! DO NOT EDIT THIS FILE !!
-#
-
 =head1 NAME
 
 RT::ObjectTopic
 
-
 =head1 SYNOPSIS
 
 =head1 DESCRIPTION

commit 621b728e646b4689d0ffffd9689bcaad4771f2a4
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Jun 20 10:25:40 2012 -0400

    Remove shebang lines from new test files

diff --git a/t/api/cfsearch.t b/t/api/cfsearch.t
index c8bd127..7a460ce 100644
--- a/t/api/cfsearch.t
+++ b/t/api/cfsearch.t
@@ -1,5 +1,3 @@
-#!/usr/bin/env perl
-
 use strict;
 use warnings;
 
diff --git a/t/api/safe-run-child-util.t b/t/api/safe-run-child-util.t
index b29e971..43b5c91 100644
--- a/t/api/safe-run-child-util.t
+++ b/t/api/safe-run-child-util.t
@@ -1,5 +1,3 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 
diff --git a/t/lifecycles/unresolved-deps.t b/t/lifecycles/unresolved-deps.t
index aff9a1a..d195d3b 100644
--- a/t/lifecycles/unresolved-deps.t
+++ b/t/lifecycles/unresolved-deps.t
@@ -1,5 +1,3 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 use Data::Dumper;
diff --git a/t/mail/threading.t b/t/mail/threading.t
index 7112ecf..773b720 100644
--- a/t/mail/threading.t
+++ b/t/mail/threading.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 use utf8;
diff --git a/t/web/case-sensitivity.t b/t/web/case-sensitivity.t
index f984bf3..f9c61b5 100644
--- a/t/web/case-sensitivity.t
+++ b/t/web/case-sensitivity.t
@@ -1,5 +1,3 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 
diff --git a/t/web/class_create.t b/t/web/class_create.t
index cec41a8..2d9ad03 100644
--- a/t/web/class_create.t
+++ b/t/web/class_create.t
@@ -1,5 +1,3 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 
diff --git a/t/web/csrf-rest.t b/t/web/csrf-rest.t
index 5bb9081..d909c4a 100644
--- a/t/web/csrf-rest.t
+++ b/t/web/csrf-rest.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/web/csrf.t b/t/web/csrf.t
index d99b4ce..24aae40 100644
--- a/t/web/csrf.t
+++ b/t/web/csrf.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/web/group_create.t b/t/web/group_create.t
index 26da592..548970d 100644
--- a/t/web/group_create.t
+++ b/t/web/group_create.t
@@ -1,5 +1,3 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 
diff --git a/t/web/installer.t b/t/web/installer.t
index 4dc82df..a0f9cee 100644
--- a/t/web/installer.t
+++ b/t/web/installer.t
@@ -1,4 +1,3 @@
-#!/usr/bin/perl
 use strict;
 use warnings;
 
diff --git a/t/web/offline.t b/t/web/offline.t
index b3762fc..06d5191 100644
--- a/t/web/offline.t
+++ b/t/web/offline.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/owner_disabled_group_19221.t b/t/web/owner_disabled_group_19221.t
index 2664c5b..d41decf 100644
--- a/t/web/owner_disabled_group_19221.t
+++ b/t/web/owner_disabled_group_19221.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/queue_create.t b/t/web/queue_create.t
index 3d2cd04..5668762 100644
--- a/t/web/queue_create.t
+++ b/t/web/queue_create.t
@@ -1,5 +1,3 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 
diff --git a/t/web/redirect.t b/t/web/redirect.t
index d92386b..d909d8d 100644
--- a/t/web/redirect.t
+++ b/t/web/redirect.t
@@ -1,5 +1,3 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 
diff --git a/t/web/saved_search_context.t b/t/web/saved_search_context.t
index fe9c51e..0c37a6a 100644
--- a/t/web/saved_search_context.t
+++ b/t/web/saved_search_context.t
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 use strict;
 use warnings;
 
diff --git a/t/web/scrips.t b/t/web/scrips.t
index def20ec..0ff46bf 100644
--- a/t/web/scrips.t
+++ b/t/web/scrips.t
@@ -1,5 +1,3 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 

commit 4d3dce4f8ca59dc7a7a820e97efc016f8f5dcffe
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Jun 20 12:23:36 2012 -0400

    Move policy checks to have descriptive options

diff --git a/t/99-policy.t b/t/99-policy.t
index 5e95212..bdd06e9 100644
--- a/t/99-policy.t
+++ b/t/99-policy.t
@@ -6,49 +6,54 @@ use File::Find;
 
 sub check {
     my $file = shift;
-    my $type = shift;
-
-    local $/;
-    open my $fh, '<', $file or die $!;
-    my $content = <$fh>;
-    like(
-        $content,
-        qr/^use strict(?:;|\s+)/m,
-        $File::Find::name . ' has "use strict"'
-    );
-    like(
-        $content,
-        qr/^use warnings(?:;|\s+)/m,
-        $File::Find::name . ' has "use warnings"'
+    my %check = (
+        strict   => 0,
+        warnings => 0,
+        shebang  => 0,
+        exec     => 0,
+        @_,
     );
-    my $executable = ( stat $file )[2] & 0100;
-    if ( $type eq 'script' ) {
-        like( $content, qr/^#!/, $File::Find::name . ' has shebang' );
-        if ( $file =~ /\.in/ ) {
-            ok( !$executable, $File::Find::name . ' permission is not u+x' );
-        }
-        else {
-            ok( $executable, $File::Find::name . ' permission is u+x' );
-        }
-    }
-    elsif ( $type eq 'devel' ) {
+
+    if ($check{strict} or $check{warnings} or $check{shebang}) {
+        local $/;
+        open my $fh, '<', $file or die $!;
+        my $content = <$fh>;
+
         like(
             $content,
-            qr{^#!/usr/bin/env perl},
-            $File::Find::name . ' has shebang'
-        );
-        ok( $executable, $File::Find::name . ' permission is u+x' );
+            qr/^use strict(?:;|\s+)/m,
+            "$File::Find::name has 'use strict'"
+        ) if $check{strict};
+
+        like(
+            $content,
+            qr/^use warnings(?:;|\s+)/m,
+            "$File::Find::name has 'use warnings'"
+        ) if $check{warnings};
+
+        if ($check{shebang} == 1) {
+            like( $content, qr/^#!/, "$File::Find::name has shebang" );
+        } elsif ($check{shebang} == -1) {
+            unlike( $content, qr/^#!/, "$File::Find::name has no shebang" );
+        }
     }
-    else {
-        unlike( $content, qr/^#!/, $File::Find::name . ' has no shebang' );
-        ok( !$executable, $File::Find::name . ' permission is not u+x' );
+
+    my $executable = ( stat $file )[2] & 0100;
+    if ($check{exec} == 1) {
+        if ( $file =~ /\.in$/ ) {
+            ok( !$executable, "$File::Find::name permission is u-x (.in will add +x)" );
+        } else {
+            ok( $executable, "$File::Find::name permission is u+x" );
+        }
+    } elsif ($check{exec} == -1) {
+        ok( !$executable, "$File::Find::name permission is u-x" );
     }
 }
 
 find(
     sub {
         return unless -f && /\.pm$/;
-        check( $_, 'lib' );
+        check( $_, shebang => -1, exec => -1, warnings => 1, strict => 1 );
     },
     'lib',
 );
@@ -56,7 +61,7 @@ find(
 find(
     sub {
         return unless -f && /\.t$/;
-        check( $_, 'test' );
+        check( $_, shebang => -1, exec => -1, warnings => 1, strict => 1 );
     },
     't',
 );
@@ -64,7 +69,7 @@ find(
 find(
     sub {
         return unless -f;
-        check( $_, 'script' );
+        check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1 );
     },
     'bin',
     'sbin',
@@ -73,7 +78,7 @@ find(
 find(
     sub {
         return unless -f && $_ !~ m{/(localhost\.(crt|key)|mime\.types)$};
-        check( $_, 'devel' );
+        check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1 );
     },
     'devel/tools',
 );

commit aa01429bbe6fe7419ffa040283f2a6184738fc90
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Jun 20 12:27:23 2012 -0400

    Only walk the directory structure once looking for files

diff --git a/t/99-policy.t b/t/99-policy.t
index bdd06e9..52e52bb 100644
--- a/t/99-policy.t
+++ b/t/99-policy.t
@@ -4,6 +4,10 @@ use warnings;
 use RT::Test nodb => 1;
 use File::Find;
 
+my @files;
+find( sub { push @files, $File::Find::name if -f },
+      qw{lib share t bin sbin devel/tools} );
+
 sub check {
     my $file = shift;
     my %check = (
@@ -22,63 +26,42 @@ sub check {
         like(
             $content,
             qr/^use strict(?:;|\s+)/m,
-            "$File::Find::name has 'use strict'"
+            "$file has 'use strict'"
         ) if $check{strict};
 
         like(
             $content,
             qr/^use warnings(?:;|\s+)/m,
-            "$File::Find::name has 'use warnings'"
+            "$file has 'use warnings'"
         ) if $check{warnings};
 
         if ($check{shebang} == 1) {
-            like( $content, qr/^#!/, "$File::Find::name has shebang" );
+            like( $content, qr/^#!/, "$file has shebang" );
         } elsif ($check{shebang} == -1) {
-            unlike( $content, qr/^#!/, "$File::Find::name has no shebang" );
+            unlike( $content, qr/^#!/, "$file has no shebang" );
         }
     }
 
     my $executable = ( stat $file )[2] & 0100;
     if ($check{exec} == 1) {
         if ( $file =~ /\.in$/ ) {
-            ok( !$executable, "$File::Find::name permission is u-x (.in will add +x)" );
+            ok( !$executable, "$file permission is u-x (.in will add +x)" );
         } else {
-            ok( $executable, "$File::Find::name permission is u+x" );
+            ok( $executable, "$file permission is u+x" );
         }
     } elsif ($check{exec} == -1) {
-        ok( !$executable, "$File::Find::name permission is u-x" );
+        ok( !$executable, "$file permission is u-x" );
     }
 }
 
-find(
-    sub {
-        return unless -f && /\.pm$/;
-        check( $_, shebang => -1, exec => -1, warnings => 1, strict => 1 );
-    },
-    'lib',
-);
+check( $_, shebang => -1, exec => -1, warnings => 1, strict => 1 )
+    for grep {m{^lib/.*\.pm$}} @files;
 
-find(
-    sub {
-        return unless -f && /\.t$/;
-        check( $_, shebang => -1, exec => -1, warnings => 1, strict => 1 );
-    },
-    't',
-);
+check( $_, shebang => -1, exec => -1, warnings => 1, strict => 1 )
+    for grep {m{^t/.*\.t$}} @files;
 
-find(
-    sub {
-        return unless -f;
-        check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1 );
-    },
-    'bin',
-    'sbin',
-);
+check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1 )
+    for grep {m{^s?bin/}} @files;
 
-find(
-    sub {
-        return unless -f && $_ !~ m{/(localhost\.(crt|key)|mime\.types)$};
-        check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1 );
-    },
-    'devel/tools',
-);
+check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1 )
+    for grep {m{^devel/tools/} and not m{/(localhost\.(crt|key)|mime\.types)$}} @files;

commit 5aa6398706d7f16e244d4454e7b9db0f7580be28
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Jun 20 12:29:20 2012 -0400

    When possible, use .gitignore to skip ignored files

diff --git a/t/99-policy.t b/t/99-policy.t
index 52e52bb..8fbfcd3 100644
--- a/t/99-policy.t
+++ b/t/99-policy.t
@@ -7,6 +7,14 @@ use File::Find;
 my @files;
 find( sub { push @files, $File::Find::name if -f },
       qw{lib share t bin sbin devel/tools} );
+if ( my $dir = `git rev-parse --git-dir 2>/dev/null` ) {
+    # We're in a git repo, use the ignore list
+    chomp $dir;
+    my %ignores;
+    $ignores{ $_ }++ for grep $_, split /\n/,
+        `git ls-files -o -i --exclude-standard .`;
+    @files = grep {not $ignores{$_}} @files;
+}
 
 sub check {
     my $file = shift;

commit 5c103765055d5b350a8dabce0a2d8a89caf4aad1
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Jun 20 12:33:06 2012 -0400

    Check for lack of +x on share/ and t/data/

diff --git a/t/99-policy.t b/t/99-policy.t
index 8fbfcd3..f87c208 100644
--- a/t/99-policy.t
+++ b/t/99-policy.t
@@ -73,3 +73,9 @@ check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1 )
 
 check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1 )
     for grep {m{^devel/tools/} and not m{/(localhost\.(crt|key)|mime\.types)$}} @files;
+
+check( $_, exec => -1 )
+    for grep {m{^share/}} @files;
+
+check( $_, exec => -1 )
+    for grep {m{^t/data/}} @files;

commit 111ec6b483d483a57e207ffad79537e78ecd8928
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Jun 20 12:34:38 2012 -0400

    Check for the presence (or absence) of the BPS license tag

diff --git a/t/99-policy.t b/t/99-policy.t
index f87c208..22f64ea 100644
--- a/t/99-policy.t
+++ b/t/99-policy.t
@@ -23,10 +23,11 @@ sub check {
         warnings => 0,
         shebang  => 0,
         exec     => 0,
+        bps_tag  => 0,
         @_,
     );
 
-    if ($check{strict} or $check{warnings} or $check{shebang}) {
+    if ($check{strict} or $check{warnings} or $check{shebang} or $check{bps_tag}) {
         local $/;
         open my $fh, '<', $file or die $!;
         my $content = <$fh>;
@@ -48,6 +49,19 @@ sub check {
         } elsif ($check{shebang} == -1) {
             unlike( $content, qr/^#!/, "$file has no shebang" );
         }
+
+        $check{bps_tag} = -1 if $check{bps_tag} == 1
+            and not $content =~ /Copyright\s+\(c\)\s+\d\d\d\d-\d\d\d\d Best Practical Solutions/i
+                and $file =~ /(?:FCKEditor|scriptaculous|superfish|tablesorter|farbtastic)/i;
+        $check{bps_tag} = -1 if $check{bps_tag} == 1
+            and not $content =~ /Copyright\s+\(c\)\s+\d\d\d\d-\d\d\d\d Best Practical Solutions/i
+                and ($content =~ /\b(copyright|GPL|Public Domain)\b/i
+                  or /\(c\)\s+\d\d\d\d(?:-\d\d\d\d)?/i);
+        if ($check{bps_tag} == 1) {
+            like( $content, qr/[B]EGIN BPS TAGGED BLOCK {{{/, "$file has BPS license tag");
+        } elsif ($check{bps_tag} == -1) {
+            unlike( $content, qr/[B]EGIN BPS TAGGED BLOCK {{{/, "$file has no BPS license tag");
+        }
     }
 
     my $executable = ( stat $file )[2] & 0100;
@@ -62,20 +76,23 @@ sub check {
     }
 }
 
-check( $_, shebang => -1, exec => -1, warnings => 1, strict => 1 )
+check( $_, shebang => -1, exec => -1, warnings => 1, strict => 1, bps_tag => 1 )
     for grep {m{^lib/.*\.pm$}} @files;
 
-check( $_, shebang => -1, exec => -1, warnings => 1, strict => 1 )
+check( $_, shebang => -1, exec => -1, warnings => 1, strict => 1, bps_tag => -1 )
     for grep {m{^t/.*\.t$}} @files;
 
-check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1 )
+check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1, bps_tag => 1 )
     for grep {m{^s?bin/}} @files;
 
-check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1 )
+check( $_, shebang => 1, exec => 1, warnings => 1, strict => 1, bps_tag => 1 )
     for grep {m{^devel/tools/} and not m{/(localhost\.(crt|key)|mime\.types)$}} @files;
 
+check( $_, exec => -1, bps_tag => not m{\.(png|gif|jpe?g)$} )
+    for grep {m{^share/html/}} @files;
+
 check( $_, exec => -1 )
-    for grep {m{^share/}} @files;
+    for grep {m{^share/(po|fonts)/}} @files;
 
 check( $_, exec => -1 )
     for grep {m{^t/data/}} @files;

commit 9141cbe1568d276d39642895209464b6d46d6f7e
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Jun 20 12:35:17 2012 -0400

    Remove +x bit from a large number of files that have no need of it

diff --git a/share/fonts/DroidSans.ttf b/share/fonts/DroidSans.ttf
old mode 100755
new mode 100644
diff --git a/share/fonts/DroidSansFallback.ttf b/share/fonts/DroidSansFallback.ttf
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/AddCustomFieldValue b/share/html/Admin/Elements/AddCustomFieldValue
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/CreateUserCalled b/share/html/Admin/Elements/CreateUserCalled
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/EditCustomField b/share/html/Admin/Elements/EditCustomField
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/EditCustomFieldValues b/share/html/Admin/Elements/EditCustomFieldValues
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/EditCustomFields b/share/html/Admin/Elements/EditCustomFields
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/EditQueueWatchers b/share/html/Admin/Elements/EditQueueWatchers
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/EditScrip b/share/html/Admin/Elements/EditScrip
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/EditScrips b/share/html/Admin/Elements/EditScrips
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/EditTemplates b/share/html/Admin/Elements/EditTemplates
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/EditUserComments b/share/html/Admin/Elements/EditUserComments
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/Header b/share/html/Admin/Elements/Header
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/ListGlobalCustomFields b/share/html/Admin/Elements/ListGlobalCustomFields
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/ListGlobalScrips b/share/html/Admin/Elements/ListGlobalScrips
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/ModifyTemplate b/share/html/Admin/Elements/ModifyTemplate
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/QueueRightsForUser b/share/html/Admin/Elements/QueueRightsForUser
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectCustomFieldRenderType b/share/html/Admin/Elements/SelectCustomFieldRenderType
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectCustomFieldType b/share/html/Admin/Elements/SelectCustomFieldType
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectGroups b/share/html/Admin/Elements/SelectGroups
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectModifyGroup b/share/html/Admin/Elements/SelectModifyGroup
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectModifyQueue b/share/html/Admin/Elements/SelectModifyQueue
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectModifyUser b/share/html/Admin/Elements/SelectModifyUser
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectNewGroupMembers b/share/html/Admin/Elements/SelectNewGroupMembers
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectRights b/share/html/Admin/Elements/SelectRights
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectScrip b/share/html/Admin/Elements/SelectScrip
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectScripAction b/share/html/Admin/Elements/SelectScripAction
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectScripCondition b/share/html/Admin/Elements/SelectScripCondition
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectSingleOrMultiple b/share/html/Admin/Elements/SelectSingleOrMultiple
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectTemplate b/share/html/Admin/Elements/SelectTemplate
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Elements/SelectUsers b/share/html/Admin/Elements/SelectUsers
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Global/CustomFields/Queue-Tickets.html b/share/html/Admin/Global/CustomFields/Queue-Tickets.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Global/CustomFields/Queue-Transactions.html b/share/html/Admin/Global/CustomFields/Queue-Transactions.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Global/GroupRights.html b/share/html/Admin/Global/GroupRights.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Global/Scrip.html b/share/html/Admin/Global/Scrip.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Global/Scrips.html b/share/html/Admin/Global/Scrips.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Global/Template.html b/share/html/Admin/Global/Template.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Global/Templates.html b/share/html/Admin/Global/Templates.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Global/UserRights.html b/share/html/Admin/Global/UserRights.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Global/index.html b/share/html/Admin/Global/index.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Groups/GroupRights.html b/share/html/Admin/Groups/GroupRights.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Groups/Members.html b/share/html/Admin/Groups/Members.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Groups/Modify.html b/share/html/Admin/Groups/Modify.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Groups/UserRights.html b/share/html/Admin/Groups/UserRights.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Groups/index.html b/share/html/Admin/Groups/index.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Queues/CustomField.html b/share/html/Admin/Queues/CustomField.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Queues/CustomFields.html b/share/html/Admin/Queues/CustomFields.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Queues/GroupRights.html b/share/html/Admin/Queues/GroupRights.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Queues/Modify.html b/share/html/Admin/Queues/Modify.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Queues/People.html b/share/html/Admin/Queues/People.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Queues/Scrip.html b/share/html/Admin/Queues/Scrip.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Queues/Scrips.html b/share/html/Admin/Queues/Scrips.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Queues/Template.html b/share/html/Admin/Queues/Template.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Queues/Templates.html b/share/html/Admin/Queues/Templates.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Queues/UserRights.html b/share/html/Admin/Queues/UserRights.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Queues/index.html b/share/html/Admin/Queues/index.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Users/Modify.html b/share/html/Admin/Users/Modify.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/Users/index.html b/share/html/Admin/Users/index.html
old mode 100755
new mode 100644
diff --git a/share/html/Admin/index.html b/share/html/Admin/index.html
old mode 100755
new mode 100644
diff --git a/share/html/Approvals/Display.html b/share/html/Approvals/Display.html
old mode 100755
new mode 100644
diff --git a/share/html/Approvals/Elements/Approve b/share/html/Approvals/Elements/Approve
old mode 100755
new mode 100644
diff --git a/share/html/Approvals/Elements/PendingMyApproval b/share/html/Approvals/Elements/PendingMyApproval
old mode 100755
new mode 100644
diff --git a/share/html/Approvals/Elements/ShowDependency b/share/html/Approvals/Elements/ShowDependency
old mode 100755
new mode 100644
diff --git a/share/html/Approvals/index.html b/share/html/Approvals/index.html
old mode 100755
new mode 100644
diff --git a/share/html/Articles/Article/Elements/SelectSearchPrivacy b/share/html/Articles/Article/Elements/SelectSearchPrivacy
old mode 100755
new mode 100644
diff --git a/share/html/Elements/BevelBoxRaisedEnd b/share/html/Elements/BevelBoxRaisedEnd
old mode 100755
new mode 100644
diff --git a/share/html/Elements/BevelBoxRaisedStart b/share/html/Elements/BevelBoxRaisedStart
old mode 100755
new mode 100644
diff --git a/share/html/Elements/Callback b/share/html/Elements/Callback
old mode 100755
new mode 100644
diff --git a/share/html/Elements/Checkbox b/share/html/Elements/Checkbox
old mode 100755
new mode 100644
diff --git a/share/html/Elements/CreateTicket b/share/html/Elements/CreateTicket
old mode 100755
new mode 100644
diff --git a/share/html/Elements/EditLinks b/share/html/Elements/EditLinks
old mode 100755
new mode 100644
diff --git a/share/html/Elements/Error b/share/html/Elements/Error
old mode 100755
new mode 100644
diff --git a/share/html/Elements/Footer b/share/html/Elements/Footer
old mode 100755
new mode 100644
diff --git a/share/html/Elements/GotoTicket b/share/html/Elements/GotoTicket
old mode 100755
new mode 100644
diff --git a/share/html/Elements/Header b/share/html/Elements/Header
old mode 100755
new mode 100644
diff --git a/share/html/Elements/ListActions b/share/html/Elements/ListActions
old mode 100755
new mode 100644
diff --git a/share/html/Elements/Login b/share/html/Elements/Login
old mode 100755
new mode 100644
diff --git a/share/html/Elements/Menu b/share/html/Elements/Menu
old mode 100755
new mode 100644
diff --git a/share/html/Elements/MessageBox b/share/html/Elements/MessageBox
old mode 100755
new mode 100644
diff --git a/share/html/Elements/MyReminders b/share/html/Elements/MyReminders
old mode 100755
new mode 100644
diff --git a/share/html/Elements/MyRequests b/share/html/Elements/MyRequests
old mode 100755
new mode 100644
diff --git a/share/html/Elements/MyTickets b/share/html/Elements/MyTickets
old mode 100755
new mode 100644
diff --git a/share/html/Elements/PageLayout b/share/html/Elements/PageLayout
old mode 100755
new mode 100644
diff --git a/share/html/Elements/Refresh b/share/html/Elements/Refresh
old mode 100755
new mode 100644
diff --git a/share/html/Elements/Section b/share/html/Elements/Section
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectAttachmentField b/share/html/Elements/SelectAttachmentField
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectBoolean b/share/html/Elements/SelectBoolean
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectCustomFieldOperator b/share/html/Elements/SelectCustomFieldOperator
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectCustomFieldValue b/share/html/Elements/SelectCustomFieldValue
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectDate b/share/html/Elements/SelectDate
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectDateRelation b/share/html/Elements/SelectDateRelation
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectDateType b/share/html/Elements/SelectDateType
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectEqualityOperator b/share/html/Elements/SelectEqualityOperator
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectGroups b/share/html/Elements/SelectGroups
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectLang b/share/html/Elements/SelectLang
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectLinkType b/share/html/Elements/SelectLinkType
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectMatch b/share/html/Elements/SelectMatch
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectNewTicketQueue b/share/html/Elements/SelectNewTicketQueue
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectOwner b/share/html/Elements/SelectOwner
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectOwnerDropdown b/share/html/Elements/SelectOwnerDropdown
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectQueue b/share/html/Elements/SelectQueue
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectResultsPerPage b/share/html/Elements/SelectResultsPerPage
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectSortOrder b/share/html/Elements/SelectSortOrder
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectTicketSortBy b/share/html/Elements/SelectTicketSortBy
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectTicketTypes b/share/html/Elements/SelectTicketTypes
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectTimeUnits b/share/html/Elements/SelectTimeUnits
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectUsers b/share/html/Elements/SelectUsers
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SelectWatcherType b/share/html/Elements/SelectWatcherType
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SetupSessionCookie b/share/html/Elements/SetupSessionCookie
old mode 100755
new mode 100644
diff --git a/share/html/Elements/ShowLinks b/share/html/Elements/ShowLinks
old mode 100755
new mode 100644
diff --git a/share/html/Elements/SimpleSearch b/share/html/Elements/SimpleSearch
old mode 100755
new mode 100644
diff --git a/share/html/Elements/Submit b/share/html/Elements/Submit
old mode 100755
new mode 100644
diff --git a/share/html/Elements/Tabs b/share/html/Elements/Tabs
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/Login.html b/share/html/NoAuth/Login.html
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/Logout.html b/share/html/NoAuth/Logout.html
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/Reminder.html b/share/html/NoAuth/Reminder.html
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/css/base/forms.css b/share/html/NoAuth/css/base/forms.css
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/farbtastic/marker.png b/share/html/NoAuth/images/farbtastic/marker.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/favicon.png b/share/html/NoAuth/images/favicon.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-anim_basic_16x16.gif b/share/html/NoAuth/images/jquery_ui/ui-anim_basic_16x16.gif
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_diagonals-thick_18_b81900_40x40.png b/share/html/NoAuth/images/jquery_ui/ui-bg_diagonals-thick_18_b81900_40x40.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_diagonals-thick_20_666666_40x40.png b/share/html/NoAuth/images/jquery_ui/ui-bg_diagonals-thick_20_666666_40x40.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_flat_10_000000_40x100.png b/share/html/NoAuth/images/jquery_ui/ui-bg_flat_10_000000_40x100.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_glass_100_f6f6f6_1x400.png b/share/html/NoAuth/images/jquery_ui/ui-bg_glass_100_f6f6f6_1x400.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_glass_100_fdf5ce_1x400.png b/share/html/NoAuth/images/jquery_ui/ui-bg_glass_100_fdf5ce_1x400.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_glass_65_ffffff_1x400.png b/share/html/NoAuth/images/jquery_ui/ui-bg_glass_65_ffffff_1x400.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_gloss-wave_35_f6a828_500x100.png b/share/html/NoAuth/images/jquery_ui/ui-bg_gloss-wave_35_f6a828_500x100.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_highlight-soft_100_eeeeee_1x100.png b/share/html/NoAuth/images/jquery_ui/ui-bg_highlight-soft_100_eeeeee_1x100.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-bg_highlight-soft_75_ffe45c_1x100.png b/share/html/NoAuth/images/jquery_ui/ui-bg_highlight-soft_75_ffe45c_1x100.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_222222_256x240.png b/share/html/NoAuth/images/jquery_ui/ui-icons_222222_256x240.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_228ef1_256x240.png b/share/html/NoAuth/images/jquery_ui/ui-icons_228ef1_256x240.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_ef8c08_256x240.png b/share/html/NoAuth/images/jquery_ui/ui-icons_ef8c08_256x240.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_ffd27a_256x240.png b/share/html/NoAuth/images/jquery_ui/ui-icons_ffd27a_256x240.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/images/jquery_ui/ui-icons_ffffff_256x240.png b/share/html/NoAuth/images/jquery_ui/ui-icons_ffffff_256x240.png
old mode 100755
new mode 100644
diff --git a/share/html/NoAuth/js/jquery-1.4.2.min.js b/share/html/NoAuth/js/jquery-1.4.2.min.js
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/Forms/queue/default b/share/html/REST/1.0/Forms/queue/default
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/Forms/queue/ns b/share/html/REST/1.0/Forms/queue/ns
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/Forms/ticket/attachments b/share/html/REST/1.0/Forms/ticket/attachments
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/Forms/ticket/comment b/share/html/REST/1.0/Forms/ticket/comment
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/Forms/ticket/default b/share/html/REST/1.0/Forms/ticket/default
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/Forms/ticket/history b/share/html/REST/1.0/Forms/ticket/history
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/Forms/ticket/links b/share/html/REST/1.0/Forms/ticket/links
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/Forms/ticket/merge b/share/html/REST/1.0/Forms/ticket/merge
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/Forms/ticket/take b/share/html/REST/1.0/Forms/ticket/take
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/Forms/user/default b/share/html/REST/1.0/Forms/user/default
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/Forms/user/ns b/share/html/REST/1.0/Forms/user/ns
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/NoAuth/mail-gateway b/share/html/REST/1.0/NoAuth/mail-gateway
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/autohandler b/share/html/REST/1.0/autohandler
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/dhandler b/share/html/REST/1.0/dhandler
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/logout b/share/html/REST/1.0/logout
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/search/dhandler b/share/html/REST/1.0/search/dhandler
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/search/ticket b/share/html/REST/1.0/search/ticket
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/ticket/comment b/share/html/REST/1.0/ticket/comment
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/ticket/link b/share/html/REST/1.0/ticket/link
old mode 100755
new mode 100644
diff --git a/share/html/REST/1.0/ticket/merge b/share/html/REST/1.0/ticket/merge
old mode 100755
new mode 100644
diff --git a/share/html/Search/Bulk.html b/share/html/Search/Bulk.html
old mode 100755
new mode 100644
diff --git a/share/html/Search/Edit.html b/share/html/Search/Edit.html
old mode 100755
new mode 100644
diff --git a/share/html/Search/Results.html b/share/html/Search/Results.html
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/Article/autohandler b/share/html/SelfService/Article/autohandler
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/Attachment/dhandler b/share/html/SelfService/Attachment/dhandler
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/Closed.html b/share/html/SelfService/Closed.html
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/Create.html b/share/html/SelfService/Create.html
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/CreateTicketInQueue.html b/share/html/SelfService/CreateTicketInQueue.html
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/Display.html b/share/html/SelfService/Display.html
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/Elements/GotoTicket b/share/html/SelfService/Elements/GotoTicket
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/Elements/Header b/share/html/SelfService/Elements/Header
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/Elements/MyRequests b/share/html/SelfService/Elements/MyRequests
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/Elements/SearchArticle b/share/html/SelfService/Elements/SearchArticle
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/Error.html b/share/html/SelfService/Error.html
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/Prefs.html b/share/html/SelfService/Prefs.html
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/Update.html b/share/html/SelfService/Update.html
old mode 100755
new mode 100644
diff --git a/share/html/SelfService/index.html b/share/html/SelfService/index.html
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Attachment/dhandler b/share/html/Ticket/Attachment/dhandler
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Create.html b/share/html/Ticket/Create.html
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Display.html b/share/html/Ticket/Display.html
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/AddWatchers b/share/html/Ticket/Elements/AddWatchers
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/BulkLinks b/share/html/Ticket/Elements/BulkLinks
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/EditBasics b/share/html/Ticket/Elements/EditBasics
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/EditCustomFields b/share/html/Ticket/Elements/EditCustomFields
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/EditDates b/share/html/Ticket/Elements/EditDates
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/EditPeople b/share/html/Ticket/Elements/EditPeople
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/EditWatchers b/share/html/Ticket/Elements/EditWatchers
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/PreviewScrips b/share/html/Ticket/Elements/PreviewScrips
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/ShowAttachments b/share/html/Ticket/Elements/ShowAttachments
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/ShowBasics b/share/html/Ticket/Elements/ShowBasics
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/ShowCustomFields b/share/html/Ticket/Elements/ShowCustomFields
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/ShowDates b/share/html/Ticket/Elements/ShowDates
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/ShowDependencies b/share/html/Ticket/Elements/ShowDependencies
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/ShowHistory b/share/html/Ticket/Elements/ShowHistory
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/ShowMembers b/share/html/Ticket/Elements/ShowMembers
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/ShowMessageHeaders b/share/html/Ticket/Elements/ShowMessageHeaders
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/ShowMessageStanza b/share/html/Ticket/Elements/ShowMessageStanza
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/ShowPeople b/share/html/Ticket/Elements/ShowPeople
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/ShowRequestor b/share/html/Ticket/Elements/ShowRequestor
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/ShowSummary b/share/html/Ticket/Elements/ShowSummary
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Elements/ShowTransaction b/share/html/Ticket/Elements/ShowTransaction
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/History.html b/share/html/Ticket/History.html
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Modify.html b/share/html/Ticket/Modify.html
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/ModifyAll.html b/share/html/Ticket/ModifyAll.html
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/ModifyDates.html b/share/html/Ticket/ModifyDates.html
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/ModifyLinks.html b/share/html/Ticket/ModifyLinks.html
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/ModifyPeople.html b/share/html/Ticket/ModifyPeople.html
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Reminders.html b/share/html/Ticket/Reminders.html
old mode 100755
new mode 100644
diff --git a/share/html/Ticket/Update.html b/share/html/Ticket/Update.html
old mode 100755
new mode 100644
diff --git a/share/html/User/Prefs.html b/share/html/User/Prefs.html
old mode 100755
new mode 100644
diff --git a/share/html/Widgets/TitleBoxEnd b/share/html/Widgets/TitleBoxEnd
old mode 100755
new mode 100644
diff --git a/share/html/Widgets/TitleBoxStart b/share/html/Widgets/TitleBoxStart
old mode 100755
new mode 100644
diff --git a/share/html/autohandler b/share/html/autohandler
old mode 100755
new mode 100644
diff --git a/share/html/index.html b/share/html/index.html
old mode 100755
new mode 100644
diff --git a/share/html/l b/share/html/l
old mode 100755
new mode 100644
diff --git a/share/html/l_unsafe b/share/html/l_unsafe
old mode 100755
new mode 100644
diff --git a/t/data/emails/8859-15-message-series/dir b/t/data/emails/8859-15-message-series/dir
old mode 100755
new mode 100644
diff --git a/t/data/emails/8859-15-message-series/msg1 b/t/data/emails/8859-15-message-series/msg1
old mode 100755
new mode 100644
diff --git a/t/data/emails/8859-15-message-series/msg2 b/t/data/emails/8859-15-message-series/msg2
old mode 100755
new mode 100644
diff --git a/t/data/emails/8859-15-message-series/msg3 b/t/data/emails/8859-15-message-series/msg3
old mode 100755
new mode 100644
diff --git a/t/data/emails/8859-15-message-series/msg4 b/t/data/emails/8859-15-message-series/msg4
old mode 100755
new mode 100644
diff --git a/t/data/emails/8859-15-message-series/msg5 b/t/data/emails/8859-15-message-series/msg5
old mode 100755
new mode 100644
diff --git a/t/data/emails/8859-15-message-series/msg6 b/t/data/emails/8859-15-message-series/msg6
old mode 100755
new mode 100644
diff --git a/t/data/emails/8859-15-message-series/msg7 b/t/data/emails/8859-15-message-series/msg7
old mode 100755
new mode 100644
diff --git a/t/data/emails/crashes-file-based-parser b/t/data/emails/crashes-file-based-parser
old mode 100755
new mode 100644
diff --git a/t/data/emails/multipart-alternative-with-umlaut b/t/data/emails/multipart-alternative-with-umlaut
old mode 100755
new mode 100644
diff --git a/t/data/emails/multipart-report b/t/data/emails/multipart-report
old mode 100755
new mode 100644
diff --git a/t/data/emails/nested-mime-sample b/t/data/emails/nested-mime-sample
old mode 100755
new mode 100644
diff --git a/t/data/emails/nested-rfc-822 b/t/data/emails/nested-rfc-822
old mode 100755
new mode 100644
diff --git a/t/data/emails/new-ticket-from-iso-8859-1 b/t/data/emails/new-ticket-from-iso-8859-1
old mode 100755
new mode 100644
diff --git a/t/data/emails/new-ticket-from-iso-8859-1-full b/t/data/emails/new-ticket-from-iso-8859-1-full
old mode 100755
new mode 100644
diff --git a/t/data/emails/notes-uuencoded b/t/data/emails/notes-uuencoded
old mode 100755
new mode 100644
diff --git a/t/data/emails/russian-subject-no-content-type b/t/data/emails/russian-subject-no-content-type
old mode 100755
new mode 100644
diff --git a/t/data/emails/text-html-in-russian b/t/data/emails/text-html-in-russian
old mode 100755
new mode 100644
diff --git a/t/data/emails/text-html-with-umlaut b/t/data/emails/text-html-with-umlaut
old mode 100755
new mode 100644
diff --git a/t/data/gnupg/emails/2-signed-MIME-plain-with-attachment.txt b/t/data/gnupg/emails/2-signed-MIME-plain-with-attachment.txt
old mode 100755
new mode 100644
diff --git a/t/data/gnupg/emails/3-signed-MIME-plain-with-binary.txt b/t/data/gnupg/emails/3-signed-MIME-plain-with-binary.txt
old mode 100755
new mode 100644

commit 0af337aba621d86a0dde2b5d601c55c96e6e18e1
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Jun 20 13:19:21 2012 -0400

    Remove BPS block from t/ files

diff --git a/t/api/rights.t b/t/api/rights.t
index 9328fda..107fb2b 100644
--- a/t/api/rights.t
+++ b/t/api/rights.t
@@ -1,51 +1,3 @@
-# BEGIN BPS TAGGED BLOCK {{{
-# 
-# COPYRIGHT:
-#  
-# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
-#                                          <jesse.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 }}}
-
 use RT::Test nodata => 1, tests => 30;
 
 use strict;
diff --git a/t/mail/gateway.t b/t/mail/gateway.t
index d6476a6..9482ffc 100644
--- a/t/mail/gateway.t
+++ b/t/mail/gateway.t
@@ -1,57 +1,3 @@
-# BEGIN BPS TAGGED BLOCK {{{
-# 
-# COPYRIGHT:
-#  
-# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC 
-#                                          <jesse.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 }}}
-
-=head1 NAME
-
-rt-mailgate - Mail interface to RT3.
-
-=cut
-
 use strict;
 use warnings;
 
diff --git a/t/mail/multipart.t b/t/mail/multipart.t
index 47dedc3..1c11064 100644
--- a/t/mail/multipart.t
+++ b/t/mail/multipart.t
@@ -1,50 +1,3 @@
-# BEGIN BPS TAGGED BLOCK {{{
-# 
-# COPYRIGHT:
-#  
-# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC 
-#                                          <jesse.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 }}}
 use strict;
 use warnings;
 
diff --git a/t/mail/outlook.t b/t/mail/outlook.t
index c9640e4..c953a54 100644
--- a/t/mail/outlook.t
+++ b/t/mail/outlook.t
@@ -1,57 +1,3 @@
-# BEGIN BPS TAGGED BLOCK {{{
-# 
-# COPYRIGHT:
-#  
-# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC 
-#                                          <jesse.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 }}}
-
-=head1 NAME
-
-rt-mailgate - Mail interface to RT3.
-
-=cut
-
 use strict;
 use warnings;
 
diff --git a/t/ticket/add-watchers.t b/t/ticket/add-watchers.t
index 81fa7fc..11b3a84 100644
--- a/t/ticket/add-watchers.t
+++ b/t/ticket/add-watchers.t
@@ -1,49 +1,3 @@
-# BEGIN BPS TAGGED BLOCK {{{
-# 
-# COPYRIGHT:
-#  
-# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
-#                                          <jesse.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., 675 Mass Ave, Cambridge, MA 02139, USA.
-# 
-# 
-# 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 }}}
-
 use RT::Test nodata => 1, tests => 32;
 
 use strict;

commit 0078e4863335dd3ee855a2627993a51501214a4d
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Jun 20 13:22:21 2012 -0400

    Depend on the extension, not path; tag the autohandler or dhandler

diff --git a/devel/tools/license_tag b/devel/tools/license_tag
index c0ae47e..eb463c1 100755
--- a/devel/tools/license_tag
+++ b/devel/tools/license_tag
@@ -115,7 +115,7 @@ tag_makefile ('README');
 sub tag_mason {
         my $pm = $_;
         return unless (-f $pm);
-        return if $pm =~ /images/ || $pm =~ /\.(?:png|jpe?g|gif)$/;
+        return if $pm =~ /\.(?:png|jpe?g|gif)$/;
         open( FILE, '<', $pm ) or die "Failed to open $pm";
         my $file = (join "", <FILE>);
         close (FILE);

commit 24e1935a8ab93bfe295011b88fff6da8bdcd0276
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Jun 20 13:22:53 2012 -0400

    Add missing BPS license blocks

diff --git a/devel/tools/rt-apache b/devel/tools/rt-apache
index 2f36334..3a69342 100755
--- a/devel/tools/rt-apache
+++ b/devel/tools/rt-apache
@@ -1,5 +1,53 @@
 #!/usr/bin/env perl
 
+# BEGIN BPS TAGGED BLOCK {{{
+#
+# COPYRIGHT:
+#
+# This software is Copyright (c) 1996-2012 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/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
+# 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 }}}
+
 use strict;
 use warnings;
 
diff --git a/lib/RT/Pod/HTML.pm b/lib/RT/Pod/HTML.pm
index 8ddce42..98eb341 100644
--- a/lib/RT/Pod/HTML.pm
+++ b/lib/RT/Pod/HTML.pm
@@ -1,3 +1,51 @@
+# BEGIN BPS TAGGED BLOCK {{{
+#
+# COPYRIGHT:
+#
+# This software is Copyright (c) 1996-2012 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/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
+# 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 }}}
+
 use strict;
 use warnings;
 
diff --git a/lib/RT/Pod/HTMLBatch.pm b/lib/RT/Pod/HTMLBatch.pm
index 8d1b67f..4392577 100644
--- a/lib/RT/Pod/HTMLBatch.pm
+++ b/lib/RT/Pod/HTMLBatch.pm
@@ -1,3 +1,51 @@
+# BEGIN BPS TAGGED BLOCK {{{
+#
+# COPYRIGHT:
+#
+# This software is Copyright (c) 1996-2012 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/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
+# 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 }}}
+
 use strict;
 use warnings;
 
diff --git a/lib/RT/Pod/Search.pm b/lib/RT/Pod/Search.pm
index d6ddd2d..c99141c 100644
--- a/lib/RT/Pod/Search.pm
+++ b/lib/RT/Pod/Search.pm
@@ -1,3 +1,51 @@
+# BEGIN BPS TAGGED BLOCK {{{
+#
+# COPYRIGHT:
+#
+# This software is Copyright (c) 1996-2012 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/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
+# 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 }}}
+
 use strict;
 use warnings;
 
diff --git a/share/html/Articles/Elements/ShowTopicLink b/share/html/Articles/Elements/ShowTopicLink
index 7b6d550..e6ecc19 100644
--- a/share/html/Articles/Elements/ShowTopicLink
+++ b/share/html/Articles/Elements/ShowTopicLink
@@ -1,3 +1,50 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2012 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/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
+%# 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>
 $Topic
 $Class => 0
diff --git a/share/html/Documentation/rt-docs.css b/share/html/Documentation/rt-docs.css
index 72548d5..669aaad 100644
--- a/share/html/Documentation/rt-docs.css
+++ b/share/html/Documentation/rt-docs.css
@@ -1,3 +1,51 @@
+# BEGIN BPS TAGGED BLOCK {{{
+#
+# COPYRIGHT:
+#
+# This software is Copyright (c) 1996-2012 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/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
+# 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 }}}
+
 body {
     font-family: Verdana, Arial, Helvetica, sans-serif;
     font-size: 76%;
diff --git a/share/html/NoAuth/css/aileron/images/dhandler b/share/html/NoAuth/css/aileron/images/dhandler
index 6ec9dea..834765c 100644
--- a/share/html/NoAuth/css/aileron/images/dhandler
+++ b/share/html/NoAuth/css/aileron/images/dhandler
@@ -1,3 +1,50 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2012 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/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
+%# 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>
 use File::Basename;
 my $arg = $m->dhandler_arg;
diff --git a/share/html/NoAuth/css/ballard/images/dhandler b/share/html/NoAuth/css/ballard/images/dhandler
index 6ec9dea..834765c 100644
--- a/share/html/NoAuth/css/ballard/images/dhandler
+++ b/share/html/NoAuth/css/ballard/images/dhandler
@@ -1,3 +1,50 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2012 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/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
+%# 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>
 use File::Basename;
 my $arg = $m->dhandler_arg;
diff --git a/share/html/NoAuth/css/base/jquery-ui-timepicker-addon.css b/share/html/NoAuth/css/base/jquery-ui-timepicker-addon.css
index 7eb8715..615e670 100644
--- a/share/html/NoAuth/css/base/jquery-ui-timepicker-addon.css
+++ b/share/html/NoAuth/css/base/jquery-ui-timepicker-addon.css
@@ -1,3 +1,51 @@
+# BEGIN BPS TAGGED BLOCK {{{
+#
+# COPYRIGHT:
+#
+# This software is Copyright (c) 1996-2012 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/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
+# 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 }}}
+
 .ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }
 .ui-timepicker-div dl { text-align: left; }
 .ui-timepicker-div dl dt { height: 25px; margin-bottom: -25px; }
diff --git a/share/html/NoAuth/css/web2/images/dhandler b/share/html/NoAuth/css/web2/images/dhandler
index 6ec9dea..834765c 100644
--- a/share/html/NoAuth/css/web2/images/dhandler
+++ b/share/html/NoAuth/css/web2/images/dhandler
@@ -1,3 +1,50 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2012 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/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
+%# 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>
 use File::Basename;
 my $arg = $m->dhandler_arg;
diff --git a/share/html/NoAuth/images/autohandler b/share/html/NoAuth/images/autohandler
index 7abf8b8..2a33964 100644
--- a/share/html/NoAuth/images/autohandler
+++ b/share/html/NoAuth/images/autohandler
@@ -1,3 +1,50 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2012 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/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
+%# 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>
 # This autohandler will spit out RT's images if the user hasn't 
 # properly configured their webserver to stop RT from passing 
diff --git a/share/html/Ticket/autohandler b/share/html/Ticket/autohandler
index 47f8776..896e968 100644
--- a/share/html/Ticket/autohandler
+++ b/share/html/Ticket/autohandler
@@ -1,3 +1,50 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2012 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/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
+%# 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>
 # Redirect to the approvals view if we're trying to get an approvals ticket
 # Exceptions:
diff --git a/share/html/m/ticket/autohandler b/share/html/m/ticket/autohandler
index ac24959..4e89920 100644
--- a/share/html/m/ticket/autohandler
+++ b/share/html/m/ticket/autohandler
@@ -1,3 +1,50 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2012 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/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
+%# 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>
 # Redirect to the approvals view if we're trying to get an approvals ticket
 MaybeRedirectToApproval(

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


More information about the Rt-commit mailing list