[Rt-commit] rtfm branch, 2.4/perlcritic, updated. 2.4.3-42-g43fdccd

Alex Vandiver alexmv at bestpractical.com
Tue Aug 30 15:11:00 EDT 2011


The branch, 2.4/perlcritic has been updated
       via  43fdccd74bedaa928b5f1a02cfaeb11668588cef (commit)
       via  eb8f1fa5b5ced48ae15e9429767604d892b81c51 (commit)
       via  7bef464bee2c5c2f1e9d1bb56721a37651f0abe1 (commit)
       via  e0da4f73828890c9bcb3bb030f96ff673059cbe2 (commit)
       via  ee3bb76dff9045dfbce782ac5db57f6b84c58cf1 (commit)
       via  2536fe0755d789e2bbc895c542b32d7c23414041 (commit)
       via  7b60f2d46d1ed0baa046e96ca6a34fb2fa498b6b (commit)
       via  fb28e9d4ff7d795f37cfa6b5ad88afb849c8e50b (commit)
       via  f102109f4797313374ff2c3b006fcda859503d53 (commit)
       via  46dfdd162b64669190a8d0cbbe92074c2531679a (commit)
       via  03af79c9de1c262cc45adec2b2b9c4bdd5e1a427 (commit)
       via  3d61edbd7eb5a46b53621c8fd3cefc2d28b4a207 (commit)
      from  64bd89af1912631a362c1d049067244d569857ef (commit)

Summary of changes:
 META.yml                                           |    3 +-
 Makefile.PL                                        |    8 +-
 etc/RTFM_Config.pm                                 |    1 +
 etc/upgrade/migrate-2.0-to-2.1                     |   36 +-
 etc/upgrade/upgrade-mysql-schema.pl                |   65 +++-
 .../CustomFields/RTFM-Class-RTFM-Article.html      |    7 +-
 html/Admin/RTFM/Classes/CustomFields.html          |    7 +-
 html/Admin/RTFM/Classes/GroupRights.html           |    7 +-
 html/Admin/RTFM/Classes/Modify.html                |    7 +-
 html/Admin/RTFM/Classes/Topics.html                |    7 +-
 html/Admin/RTFM/Classes/UserRights.html            |    7 +-
 html/Admin/RTFM/Classes/index.html                 |    7 +-
 html/Admin/RTFM/Elements/ClassTabs                 |    7 +-
 html/Admin/RTFM/Elements/GlobalTabs                |    7 +-
 html/Admin/RTFM/Elements/Header                    |    7 +-
 html/Admin/RTFM/Elements/Tabs                      |    7 +-
 html/Admin/RTFM/Elements/Topics                    |    7 +-
 html/Admin/RTFM/Global/GroupRights.html            |    7 +-
 html/Admin/RTFM/Global/Topics.html                 |    7 +-
 html/Admin/RTFM/Global/UserRights.html             |    7 +-
 html/Admin/RTFM/Global/index.html                  |    7 +-
 html/Admin/RTFM/index.html                         |    7 +-
 .../RTFM/Admin/Elements/CustomFieldTabs/Default    |    7 +-
 html/Callbacks/RTFM/Admin/Elements/Tabs/Default    |    7 +-
 .../Admin/Global/CustomFields/index.html/Default   |    7 +-
 html/Callbacks/RTFM/Admin/index.html/Default       |    7 +-
 .../RTFM/Elements/EditLinks/ExtraLinkInstructions  |    7 +-
 html/Callbacks/RTFM/Elements/Header/Head           |    7 +-
 html/Callbacks/RTFM/Elements/MessageBox/Default    |    7 +-
 html/Callbacks/RTFM/Elements/Tabs/Default          |    7 +-
 html/Callbacks/RTFM/RTIR/Elements/Tabs/Default     |    7 +-
 .../RTFM/SelfService/Elements/Tabs/Default         |    7 +-
 .../Callbacks/RTFM/Ticket/Create.html/BeforeCreate |    7 +-
 .../RTFM/Ticket/Create.html/BeforeMessageBox       |    7 +-
 html/Callbacks/RTFM/Ticket/Elements/Tabs/Default   |    7 +-
 .../RTFM/Ticket/Update.html/BeforeMessageBox       |    7 +-
 html/Callbacks/RTFM/autohandler/Default            |    7 +-
 html/Elements/RT__FM__ClassCollection/ColumnMap    |    7 +-
 html/NoAuth/webrtfm.css                            |    7 +-
 html/RTFM/Article/Delete.html                      |    7 +-
 html/RTFM/Article/Display.html                     |    7 +-
 html/RTFM/Article/Edit.html                        |    7 +-
 html/RTFM/Article/Elements/EditBasics              |    7 +-
 html/RTFM/Article/Elements/EditCustomFields        |    7 +-
 html/RTFM/Article/Elements/EditLinks               |    7 +-
 html/RTFM/Article/Elements/EditTopics              |    7 +-
 html/RTFM/Article/Elements/LinkEntryInstructions   |    7 +-
 html/RTFM/Article/Elements/Preformatted            |    7 +-
 html/RTFM/Article/Elements/SearchByCustomField     |    7 +-
 html/RTFM/Article/Elements/SelectSavedSearches     |    7 +-
 html/RTFM/Article/Elements/SelectSearchPrivacy     |    7 +-
 html/RTFM/Article/Elements/ShowHistory             |    7 +-
 html/RTFM/Article/Elements/ShowLinks               |    7 +-
 html/RTFM/Article/Elements/ShowSavedSearches       |    7 +-
 html/RTFM/Article/Elements/ShowSearchCriteria      |    7 +-
 html/RTFM/Article/Elements/ShowSearchResults       |    7 +-
 html/RTFM/Article/Elements/ShowTopics              |    7 +-
 html/RTFM/Article/Elements/Tabs                    |    7 +-
 html/RTFM/Article/ExtractFromTicket.html           |    7 +-
 html/RTFM/Article/ExtractIntoClass.html            |    7 +-
 html/RTFM/Article/ExtractIntoTopic.html            |    7 +-
 html/RTFM/Article/History.html                     |    7 +-
 html/RTFM/Article/PreCreate.html                   |    7 +-
 html/RTFM/Article/Search.html                      |    7 +-
 html/RTFM/Elements/BeforeMessageBox                |    7 +-
 html/RTFM/Elements/CreateArticle                   |    7 +-
 html/RTFM/Elements/Error                           |    7 +-
 html/RTFM/Elements/GotoArticle                     |    7 +-
 html/RTFM/Elements/Header                          |    7 +-
 html/RTFM/Elements/NewestArticles                  |    7 +-
 html/RTFM/Elements/QuickSearch                     |    7 +-
 html/RTFM/Elements/SelectClass                     |    7 +-
 html/RTFM/Elements/ShowTopic                       |    7 +-
 html/RTFM/Elements/Tabs                            |    7 +-
 html/RTFM/Elements/UpdatedArticles                 |    7 +-
 html/RTFM/Topics.html                              |    7 +-
 html/RTFM/index.html                               |    7 +-
 html/Search/Elements/Article                       |    7 +-
 html/SelfService/Article/Display.html              |    7 +-
 html/SelfService/Article/Search.html               |    7 +-
 html/SelfService/Article/autohandler               |    7 +-
 html/SelfService/Elements/SearchArticle            |    7 +-
 inc/Module/Install.pm                              |    4 +-
 inc/Module/Install/AutoInstall.pm                  |    2 +-
 inc/Module/Install/Base.pm                         |    2 +-
 inc/Module/Install/Can.pm                          |    2 +-
 inc/Module/Install/Fetch.pm                        |    2 +-
 inc/Module/Install/Include.pm                      |    2 +-
 inc/Module/Install/Makefile.pm                     |    2 +-
 inc/Module/Install/Metadata.pm                     |    9 +-
 inc/Module/Install/RTx.pm                          |   46 ++-
 inc/Module/Install/Win32.pm                        |    2 +-
 inc/Module/Install/WriteAll.pm                     |    2 +-
 lib/RT/FM.pm                                       |   20 +-
 lib/RT/FM/Article.pm                               |   25 +-
 lib/RT/FM/ArticleCollection.pm                     |   22 +-
 lib/RT/FM/ArticleCollection_Overlay.pm             |    7 +-
 lib/RT/FM/Article_Overlay.pm                       |    7 +-
 lib/RT/FM/Class.pm                                 |   23 +-
 lib/RT/FM/ClassCollection.pm                       |   24 +-
 lib/RT/FM/ClassCollection_Overlay.pm               |    7 +-
 lib/RT/FM/Class_Overlay.pm                         |    7 +-
 lib/RT/FM/ObjectTopic.pm                           |   26 +-
 lib/RT/FM/ObjectTopicCollection.pm                 |   24 +-
 lib/RT/FM/ObjectTopicCollection_Overlay.pm         |    8 +-
 lib/RT/FM/Record.pm                                |   11 +-
 lib/RT/FM/SearchBuilder.pm                         |    9 +-
 lib/RT/FM/System.pm                                |   13 +-
 lib/RT/FM/Topic.pm                                 |   23 +-
 lib/RT/FM/TopicCollection.pm                       |   24 +-
 lib/RT/FM/TopicCollection_Overlay.pm               |    8 +-
 lib/RT/FM/Topic_Overlay.pm                         |    7 +-
 lib/RT/URI/a.pm                                    |    5 +-
 lib/RT/URI/fsck_com_rtfm.pm                        |    5 +-
 tools/factory.mysql                                |  391 -------------------
 tools/factory.pg                                   |  397 --------------------
 tools/license_tag                                  |  161 +++++----
 117 files changed, 657 insertions(+), 1324 deletions(-)
 delete mode 100644 tools/factory.mysql
 delete mode 100644 tools/factory.pg
 mode change 100644 => 100755 tools/license_tag

- Log -----------------------------------------------------------------
commit 3d61edbd7eb5a46b53621c8fd3cefc2d28b4a207
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 14:27:23 2011 -0400

    Bump Module::Install::RTx and use new requires_rt method

diff --git a/META.yml b/META.yml
index 4f51365..f7c1795 100644
--- a/META.yml
+++ b/META.yml
@@ -5,7 +5,7 @@ build_requires:
 configure_requires:
   ExtUtils::MakeMaker: 6.42
 distribution_type: module
-generated_by: 'Module::Install version 1.00'
+generated_by: 'Module::Install version 1.01'
 license: gpl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -21,7 +21,6 @@ no_index:
 requires:
   HTML::FormatText: 0
   HTML::TreeBuilder: 0
-  RT: 3.4.2
   Text::WikiFormat: 0
   Time::ParseDate: 0
   Tree::Simple: 0
diff --git a/Makefile.PL b/Makefile.PL
index 2f81696..8d729d6 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -5,8 +5,8 @@ license('GPL version 2');
 perl_version('5.008003');
 #version_from('lib/RT/FM.pm');
 all_from('lib/RT/FM.pm');
+requires_rt('3.4.2');
 requires(
-    'RT'                => '3.4.2',
     'Text::WikiFormat'  => 0,
     'Tree::Simple'      => 0,
     'HTML::TreeBuilder' => 0,
diff --git a/inc/Module/Install.pm b/inc/Module/Install.pm
index 8ee839d..74caf9c 100644
--- a/inc/Module/Install.pm
+++ b/inc/Module/Install.pm
@@ -31,7 +31,7 @@ BEGIN {
 	# This is not enforced yet, but will be some time in the next few
 	# releases once we can make sure it won't clash with custom
 	# Module::Install extensions.
-	$VERSION = '1.00';
+	$VERSION = '1.01';
 
 	# Storage for the pseudo-singleton
 	$MAIN    = undef;
@@ -467,4 +467,4 @@ sub _CLASS ($) {
 
 1;
 
-# Copyright 2008 - 2010 Adam Kennedy.
+# Copyright 2008 - 2011 Adam Kennedy.
diff --git a/inc/Module/Install/AutoInstall.pm b/inc/Module/Install/AutoInstall.pm
index f1f5356..bc3d172 100644
--- a/inc/Module/Install/AutoInstall.pm
+++ b/inc/Module/Install/AutoInstall.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.00';
+	$VERSION = '1.01';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Base.pm b/inc/Module/Install/Base.pm
index b55bda3..d3662c9 100644
--- a/inc/Module/Install/Base.pm
+++ b/inc/Module/Install/Base.pm
@@ -4,7 +4,7 @@ package Module::Install::Base;
 use strict 'vars';
 use vars qw{$VERSION};
 BEGIN {
-	$VERSION = '1.00';
+	$VERSION = '1.01';
 }
 
 # Suspend handler for "redefined" warnings
diff --git a/inc/Module/Install/Can.pm b/inc/Module/Install/Can.pm
index 71ccc27..276409a 100644
--- a/inc/Module/Install/Can.pm
+++ b/inc/Module/Install/Can.pm
@@ -9,7 +9,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.00';
+	$VERSION = '1.01';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Fetch.pm b/inc/Module/Install/Fetch.pm
index ec1f106..093cb7a 100644
--- a/inc/Module/Install/Fetch.pm
+++ b/inc/Module/Install/Fetch.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.00';
+	$VERSION = '1.01';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Include.pm b/inc/Module/Install/Include.pm
index a28cd4c..90cc979 100644
--- a/inc/Module/Install/Include.pm
+++ b/inc/Module/Install/Include.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.00';
+	$VERSION = '1.01';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Makefile.pm b/inc/Module/Install/Makefile.pm
index 5dfd0e9..4c71003 100644
--- a/inc/Module/Install/Makefile.pm
+++ b/inc/Module/Install/Makefile.pm
@@ -8,7 +8,7 @@ use Fcntl qw/:flock :seek/;
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.00';
+	$VERSION = '1.01';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Metadata.pm b/inc/Module/Install/Metadata.pm
index cfe45b3..3b01e09 100644
--- a/inc/Module/Install/Metadata.pm
+++ b/inc/Module/Install/Metadata.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.00';
+	$VERSION = '1.01';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -515,6 +515,7 @@ sub __extract_license {
 		'GNU Free Documentation license'     => 'unrestricted', 1,
 		'GNU Affero General Public License'  => 'open_source',  1,
 		'(?:Free)?BSD license'               => 'bsd',          1,
+		'Artistic license 2\.0'              => 'artistic_2',   1,
 		'Artistic license'                   => 'artistic',     1,
 		'Apache (?:Software )?license'       => 'apache',       1,
 		'GPL'                                => 'gpl',          1,
@@ -550,9 +551,9 @@ sub license_from {
 
 sub _extract_bugtracker {
 	my @links   = $_[0] =~ m#L<(
-	 \Qhttp://rt.cpan.org/\E[^>]+|
-	 \Qhttp://github.com/\E[\w_]+/[\w_]+/issues|
-	 \Qhttp://code.google.com/p/\E[\w_\-]+/issues/list
+	 https?\Q://rt.cpan.org/\E[^>]+|
+	 https?\Q://github.com/\E[\w_]+/[\w_]+/issues|
+	 https?\Q://code.google.com/p/\E[\w_\-]+/issues/list
 	 )>#gx;
 	my %links;
 	@links{@links}=();
diff --git a/inc/Module/Install/RTx.pm b/inc/Module/Install/RTx.pm
index f027f78..73b9cda 100644
--- a/inc/Module/Install/RTx.pm
+++ b/inc/Module/Install/RTx.pm
@@ -8,7 +8,7 @@ no warnings 'once';
 
 use Module::Install::Base;
 use base 'Module::Install::Base';
-our $VERSION = '0.27';
+our $VERSION = '0.29';
 
 use FindBin;
 use File::Glob     ();
@@ -44,8 +44,8 @@ sub RTx {
         local @INC = (
             $ENV{RTHOME} ? ( $ENV{RTHOME}, "$ENV{RTHOME}/lib" ) : (),
             @INC,
-            map { ( "$_/rt3/lib", "$_/lib/rt3", "$_/lib" ) } grep $_,
-            @prefixes
+            map { ( "$_/rt4/lib", "$_/lib/rt4", "$_/rt3/lib", "$_/lib/rt3", "$_/lib" )
+                } grep $_, @prefixes
         );
         until ( eval { require RT; $RT::LocalPath } ) {
             warn
@@ -186,8 +186,46 @@ sub RTxInit {
     die "Cannot load RT" unless $RT::Handle and $RT::DatabaseType;
 }
 
+# stolen from RT::Handle so we work on 3.6 (cmp_versions came in with 3.8)
+{ my %word = (
+    a     => -4,
+    alpha => -4,
+    b     => -3,
+    beta  => -3,
+    pre   => -2,
+    rc    => -1,
+    head  => 9999,
+);
+sub cmp_version($$) {
+    my ($a, $b) = (@_);
+    my @a = grep defined, map { /^[0-9]+$/? $_ : /^[a-zA-Z]+$/? $word{$_}|| -10 : undef }
+        split /([^0-9]+)/, $a;
+    my @b = grep defined, map { /^[0-9]+$/? $_ : /^[a-zA-Z]+$/? $word{$_}|| -10 : undef }
+        split /([^0-9]+)/, $b;
+    @a > @b
+        ? push @b, (0) x (@a- at b)
+        : push @a, (0) x (@b- at a);
+    for ( my $i = 0; $i < @a; $i++ ) {
+        return $a[$i] <=> $b[$i] if $a[$i] <=> $b[$i];
+    }
+    return 0;
+}}
+sub requires_rt {
+    my ($self,$version) = @_;
+
+    # if we're exactly the same version as what we want, silently return
+    return if ($version eq $RT::VERSION);
+
+    my @sorted = sort cmp_version $version,$RT::VERSION;
+
+    if ($sorted[-1] eq $version) {
+        # should we die?
+        warn "\nWarning: prerequisite RT $version not found. Your installed version of RT ($RT::VERSION) is too old.\n\n";
+    }
+}
+
 1;
 
 __END__
 
-#line 304
+#line 348
diff --git a/inc/Module/Install/Win32.pm b/inc/Module/Install/Win32.pm
index edc18b4..3139a63 100644
--- a/inc/Module/Install/Win32.pm
+++ b/inc/Module/Install/Win32.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.00';
+	$VERSION = '1.01';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/WriteAll.pm b/inc/Module/Install/WriteAll.pm
index d0f6599..1f724a7 100644
--- a/inc/Module/Install/WriteAll.pm
+++ b/inc/Module/Install/WriteAll.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.00';
+	$VERSION = '1.01';
 	@ISA     = qw{Module::Install::Base};
 	$ISCORE  = 1;
 }

commit 03af79c9de1c262cc45adec2b2b9c4bdd5e1a427
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 14:42:32 2011 -0400

    Abort if we are being installed on RT 4.0.0 or higher, which includes RTFM already

diff --git a/Makefile.PL b/Makefile.PL
index 8d729d6..1c2a8d7 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -3,9 +3,15 @@ RTx('RT-FM');
 name('RTFM');
 license('GPL version 2');
 perl_version('5.008003');
+
+requires_rt('3.4.2');
+if (Module::Install::RTx::cmp_version("4.0.0", $RT::VERSION) <= 0) {
+    die "\nRTFM has been integrated into core RT in version 4.0 and above; there is no need to install this extension.\n";
+}
+
 #version_from('lib/RT/FM.pm');
 all_from('lib/RT/FM.pm');
-requires_rt('3.4.2');
+
 requires(
     'Text::WikiFormat'  => 0,
     'Tree::Simple'      => 0,

commit 46dfdd162b64669190a8d0cbbe92074c2531679a
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 14:31:11 2011 -0400

    Standardize use strict/warnings/base header

diff --git a/lib/RT/FM.pm b/lib/RT/FM.pm
index 4b53476..6bec114 100644
--- a/lib/RT/FM.pm
+++ b/lib/RT/FM.pm
@@ -46,7 +46,6 @@
 #
 # END BPS TAGGED BLOCK }}}
 package RT::FM;
-
 use 5.008003;
 use strict;
 use warnings;
diff --git a/lib/RT/FM/Article.pm b/lib/RT/FM/Article.pm
index b79cf76..7851935 100644
--- a/lib/RT/FM/Article.pm
+++ b/lib/RT/FM/Article.pm
@@ -65,15 +65,14 @@ RT::FM::Article
 
 =cut
 
+package RT::FM::Article;
 use strict;
 use warnings;
-package RT::FM::Article;
-use RT::FM::Record; 
-use RT::FM::Class;
-
 
 use base qw( RT::FM::Record );
 
+use RT::FM::Class;
+
 sub _Init {
   my $self = shift; 
 
diff --git a/lib/RT/FM/ArticleCollection.pm b/lib/RT/FM/ArticleCollection.pm
index a0515a1..5d954dd 100644
--- a/lib/RT/FM/ArticleCollection.pm
+++ b/lib/RT/FM/ArticleCollection.pm
@@ -67,15 +67,13 @@
 
 =cut
 
+package RT::FM::ArticleCollection;
 use strict;
 use warnings;
-package RT::FM::ArticleCollection;
-
-use RT::FM::SearchBuilder;
-use RT::FM::Article;
 
 use base qw(RT::FM::SearchBuilder);
 
+use RT::FM::Article;
 
 sub _Init {
     my $self = shift;
diff --git a/lib/RT/FM/ArticleCollection_Overlay.pm b/lib/RT/FM/ArticleCollection_Overlay.pm
index 38697d8..0baf28c 100644
--- a/lib/RT/FM/ArticleCollection_Overlay.pm
+++ b/lib/RT/FM/ArticleCollection_Overlay.pm
@@ -45,9 +45,9 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
-use strict;
-
 package RT::FM::ArticleCollection;
+use strict;
+use warnings;
 
 no warnings qw/redefine/;
 
diff --git a/lib/RT/FM/Article_Overlay.pm b/lib/RT/FM/Article_Overlay.pm
index 8c1831e..af32539 100644
--- a/lib/RT/FM/Article_Overlay.pm
+++ b/lib/RT/FM/Article_Overlay.pm
@@ -46,8 +46,8 @@
 #
 # END BPS TAGGED BLOCK }}}
 package RT::FM::Article;
-
 use strict;
+use warnings;
 
 no warnings qw/redefine/;
 
diff --git a/lib/RT/FM/Class.pm b/lib/RT/FM/Class.pm
index e0ab2fb..81d1618 100644
--- a/lib/RT/FM/Class.pm
+++ b/lib/RT/FM/Class.pm
@@ -65,11 +65,9 @@ RT::FM::Class
 
 =cut
 
+package RT::FM::Class;
 use strict;
 use warnings;
-package RT::FM::Class;
-use RT::FM::Record; 
-
 
 use base qw( RT::FM::Record );
 
diff --git a/lib/RT/FM/ClassCollection.pm b/lib/RT/FM/ClassCollection.pm
index 3c92ddc..e3232c1 100644
--- a/lib/RT/FM/ClassCollection.pm
+++ b/lib/RT/FM/ClassCollection.pm
@@ -67,15 +67,13 @@
 
 =cut
 
+package RT::FM::ClassCollection;
 use strict;
 use warnings;
-package RT::FM::ClassCollection;
-
-use RT::FM::SearchBuilder;
-use RT::FM::Class;
 
 use base qw(RT::FM::SearchBuilder);
 
+use RT::FM::Class;
 
 sub _Init {
     my $self = shift;
diff --git a/lib/RT/FM/ClassCollection_Overlay.pm b/lib/RT/FM/ClassCollection_Overlay.pm
index f003c71..23db840 100644
--- a/lib/RT/FM/ClassCollection_Overlay.pm
+++ b/lib/RT/FM/ClassCollection_Overlay.pm
@@ -45,9 +45,9 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
-use strict;
-
 package RT::FM::ClassCollection;
+use strict;
+use warnings;
 
 no warnings qw/redefine/;
 
diff --git a/lib/RT/FM/Class_Overlay.pm b/lib/RT/FM/Class_Overlay.pm
index d890129..3986fe9 100644
--- a/lib/RT/FM/Class_Overlay.pm
+++ b/lib/RT/FM/Class_Overlay.pm
@@ -46,9 +46,9 @@
 #
 # END BPS TAGGED BLOCK }}}
 package RT::FM::Class;
-
 use strict;
 use warnings;
+
 no warnings qw/redefine/;
 
 use RT::FM::System;
diff --git a/lib/RT/FM/ObjectTopic.pm b/lib/RT/FM/ObjectTopic.pm
index 522a6d4..ff26685 100644
--- a/lib/RT/FM/ObjectTopic.pm
+++ b/lib/RT/FM/ObjectTopic.pm
@@ -65,15 +65,14 @@ RT::FM::ObjectTopic
 
 =cut
 
+package RT::FM::ObjectTopic;
 use strict;
 use warnings;
-package RT::FM::ObjectTopic;
-use RT::FM::Record; 
-use RT::FM::Topic;
-
 
 use base qw( RT::FM::Record );
 
+use RT::FM::Topic;
+
 sub _Init {
   my $self = shift; 
 
diff --git a/lib/RT/FM/ObjectTopicCollection.pm b/lib/RT/FM/ObjectTopicCollection.pm
index 63724a9..90ef78b 100644
--- a/lib/RT/FM/ObjectTopicCollection.pm
+++ b/lib/RT/FM/ObjectTopicCollection.pm
@@ -67,15 +67,13 @@
 
 =cut
 
+package RT::FM::ObjectTopicCollection;
 use strict;
 use warnings;
-package RT::FM::ObjectTopicCollection;
-
-use RT::FM::SearchBuilder;
-use RT::FM::ObjectTopic;
 
 use base qw(RT::FM::SearchBuilder);
 
+use RT::FM::ObjectTopic;
 
 sub _Init {
     my $self = shift;
diff --git a/lib/RT/FM/ObjectTopicCollection_Overlay.pm b/lib/RT/FM/ObjectTopicCollection_Overlay.pm
index d524f50..edf4e4a 100644
--- a/lib/RT/FM/ObjectTopicCollection_Overlay.pm
+++ b/lib/RT/FM/ObjectTopicCollection_Overlay.pm
@@ -46,8 +46,9 @@
 #
 # END BPS TAGGED BLOCK }}}
 package RT::FM::ObjectTopicCollection;
-
 use strict;
+use warnings;
+
 no warnings qw(redefine);
 
 # {{{ LimitToTopic
diff --git a/lib/RT/FM/Record.pm b/lib/RT/FM/Record.pm
index c8f7b05..6315a00 100644
--- a/lib/RT/FM/Record.pm
+++ b/lib/RT/FM/Record.pm
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
 =head1 NAME
 
   RT::FM::Record - Base class for RT record objects
@@ -60,13 +61,13 @@
 =cut
 
 
+package RT::FM::Record;
 use strict;
 use warnings;
-package RT::FM::Record;
-use  base qw(RT::Record);
-use RT::FM;
 
+use base qw(RT::Record);
 
+use RT::FM;
 
 =head2 Load <id | Name >
 
diff --git a/lib/RT/FM/SearchBuilder.pm b/lib/RT/FM/SearchBuilder.pm
index 0848fc0..7dfecaa 100644
--- a/lib/RT/FM/SearchBuilder.pm
+++ b/lib/RT/FM/SearchBuilder.pm
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
 =head1 NAME
 
   RT::FM::SearchBuilder - a baseclass for RT collection objects
@@ -58,10 +59,12 @@
 
 =cut
 
+package RT::FM::SearchBuilder;
 use strict;
 use warnings;
-package RT::FM::SearchBuilder;
+
 use base qw(RT::SearchBuilder);
+
 use RT::FM;
 
 
diff --git a/lib/RT/FM/System.pm b/lib/RT/FM/System.pm
index e7510af..e4f0093 100644
--- a/lib/RT/FM/System.pm
+++ b/lib/RT/FM/System.pm
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
 =head1 NAME 
 
 RT::FM::System
@@ -63,14 +64,16 @@ In the future, there will probably be other API goodness encapsulated here.
 
 =cut
 
-
+package RT::FM::System;
 use strict;
 use warnings;
-package RT::FM::System;
-use RT::ACL;
+
 use base qw /RT::Base/;
+
 use vars qw/ $RIGHTS/;
 
+use RT::ACL;
+
 
 # Tell RT::ACE that this sort of object can get acls granted
 $RT::ACE::OBJECT_TYPES{'RT::FM::System'} = 1;
diff --git a/lib/RT/FM/Topic.pm b/lib/RT/FM/Topic.pm
index 7a901da..5e482fa 100644
--- a/lib/RT/FM/Topic.pm
+++ b/lib/RT/FM/Topic.pm
@@ -65,11 +65,9 @@ RT::FM::Topic
 
 =cut
 
+package RT::FM::Topic;
 use strict;
 use warnings;
-package RT::FM::Topic;
-use RT::FM::Record; 
-
 
 use base qw( RT::FM::Record );
 
diff --git a/lib/RT/FM/TopicCollection.pm b/lib/RT/FM/TopicCollection.pm
index 3b9a696..6734c55 100644
--- a/lib/RT/FM/TopicCollection.pm
+++ b/lib/RT/FM/TopicCollection.pm
@@ -68,14 +68,12 @@
 =cut
 
 package RT::FM::TopicCollection;
-
-use RT::FM::SearchBuilder;
-use RT::FM::Topic;
-
 use strict;
 use warnings;
+
 use base qw(RT::FM::SearchBuilder);
 
+use RT::FM::Topic;
 
 sub _Init {
     my $self = shift;
diff --git a/lib/RT/FM/TopicCollection_Overlay.pm b/lib/RT/FM/TopicCollection_Overlay.pm
index 5388aec..deec317 100644
--- a/lib/RT/FM/TopicCollection_Overlay.pm
+++ b/lib/RT/FM/TopicCollection_Overlay.pm
@@ -46,8 +46,9 @@
 #
 # END BPS TAGGED BLOCK }}}
 package RT::FM::TopicCollection;
-
 use strict;
+use warnings;
+
 no warnings qw(redefine);
 
 # {{{ LimitToObject
diff --git a/lib/RT/FM/Topic_Overlay.pm b/lib/RT/FM/Topic_Overlay.pm
index e4f31c9..c6ba4d5 100644
--- a/lib/RT/FM/Topic_Overlay.pm
+++ b/lib/RT/FM/Topic_Overlay.pm
@@ -46,8 +46,8 @@
 #
 # END BPS TAGGED BLOCK }}}
 package RT::FM::Topic;
-
 use strict;
+use warnings;
 no warnings qw(redefine);
 
 # {{{ Create

commit f102109f4797313374ff2c3b006fcda859503d53
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 14:31:37 2011 -0400

    Move to a non string eval importing of overlays

diff --git a/lib/RT/FM.pm b/lib/RT/FM.pm
index 6bec114..a7a74d6 100644
--- a/lib/RT/FM.pm
+++ b/lib/RT/FM.pm
@@ -67,4 +67,18 @@ if (RT->can('Config') && RT->Config->can('Get')) {
     }
 }
 
+sub ImportOverlays {
+    my $class = shift;
+    my ($package,undef,undef) = caller();
+    $package =~ s|::|/|g;
+    for my $type (qw(Overlay Vendor Local)) {
+        my $filename = $package."_".$type.".pm";
+        eval { require $filename };
+        die $@ if ($@ && $@ !~ qr{^Can't locate $filename});
+    }
+    return;
+}
+
+__PACKAGE__->ImportOverlays();
+
 1;
diff --git a/lib/RT/FM/Article.pm b/lib/RT/FM/Article.pm
index 7851935..dc3f2f5 100644
--- a/lib/RT/FM/Article.pm
+++ b/lib/RT/FM/Article.pm
@@ -322,18 +322,7 @@ sub _CoreAccessible {
 };
 
 
-        eval "require RT::FM::Article_Overlay";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-        eval "require RT::FM::Article_Local";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-
-
+RT::FM->ImportOverlays;
 
 =head1 SEE ALSO
 
diff --git a/lib/RT/FM/ArticleCollection.pm b/lib/RT/FM/ArticleCollection.pm
index 5d954dd..92276e3 100644
--- a/lib/RT/FM/ArticleCollection.pm
+++ b/lib/RT/FM/ArticleCollection.pm
@@ -102,17 +102,8 @@ sub NewItem {
     return(RT::FM::Article->new($self->CurrentUser));
 }
 
-        eval "require RT::FM::ArticleCollection_Overlay";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-        eval "require RT::FM::ArticleCollection_Local";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
 
+RT::FM->ImportOverlays;
 
 
 =head1 SEE ALSO
diff --git a/lib/RT/FM/Class.pm b/lib/RT/FM/Class.pm
index 81d1618..9ff39b3 100644
--- a/lib/RT/FM/Class.pm
+++ b/lib/RT/FM/Class.pm
@@ -282,19 +282,7 @@ sub _CoreAccessible {
  }
 };
 
-
-        eval "require RT::FM::Class_Overlay";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-        eval "require RT::FM::Class_Local";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-
-
+RT::FM->ImportOverlays;
 
 =head1 SEE ALSO
 
diff --git a/lib/RT/FM/ClassCollection.pm b/lib/RT/FM/ClassCollection.pm
index e3232c1..5c27e45 100644
--- a/lib/RT/FM/ClassCollection.pm
+++ b/lib/RT/FM/ClassCollection.pm
@@ -102,18 +102,7 @@ sub NewItem {
     return(RT::FM::Class->new($self->CurrentUser));
 }
 
-        eval "require RT::FM::ClassCollection_Overlay";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-        eval "require RT::FM::ClassCollection_Local";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-
-
+RT::FM->ImportOverlays;
 
 =head1 SEE ALSO
 
diff --git a/lib/RT/FM/ObjectTopic.pm b/lib/RT/FM/ObjectTopic.pm
index ff26685..399f1e7 100644
--- a/lib/RT/FM/ObjectTopic.pm
+++ b/lib/RT/FM/ObjectTopic.pm
@@ -208,19 +208,7 @@ sub _CoreAccessible {
  }
 };
 
-
-        eval "require RT::FM::ObjectTopic_Overlay";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-        eval "require RT::FM::ObjectTopic_Local";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-
-
+RT::FM->ImportOverlays;
 
 =head1 SEE ALSO
 
diff --git a/lib/RT/FM/ObjectTopicCollection.pm b/lib/RT/FM/ObjectTopicCollection.pm
index 90ef78b..f6e6f6f 100644
--- a/lib/RT/FM/ObjectTopicCollection.pm
+++ b/lib/RT/FM/ObjectTopicCollection.pm
@@ -96,18 +96,7 @@ sub NewItem {
     return(RT::FM::ObjectTopic->new($self->CurrentUser));
 }
 
-        eval "require RT::FM::ObjectTopicCollection_Overlay";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-        eval "require RT::FM::ObjectTopicCollection_Local";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-
-
+RT::FM->ImportOverlays;
 
 =head1 SEE ALSO
 
diff --git a/lib/RT/FM/Topic.pm b/lib/RT/FM/Topic.pm
index 5e482fa..ea736bb 100644
--- a/lib/RT/FM/Topic.pm
+++ b/lib/RT/FM/Topic.pm
@@ -238,19 +238,7 @@ sub _CoreAccessible {
  }
 };
 
-
-        eval "require RT::FM::Topic_Overlay";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-        eval "require RT::FM::Topic_Local";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-
-
+RT::FM->ImportOverlays;
 
 =head1 SEE ALSO
 
diff --git a/lib/RT/FM/TopicCollection.pm b/lib/RT/FM/TopicCollection.pm
index 6734c55..e127088 100644
--- a/lib/RT/FM/TopicCollection.pm
+++ b/lib/RT/FM/TopicCollection.pm
@@ -96,18 +96,7 @@ sub NewItem {
     return(RT::FM::Topic->new($self->CurrentUser));
 }
 
-        eval "require RT::FM::TopicCollection_Overlay";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-        eval "require RT::FM::TopicCollection_Local";
-        if ($@ && $@ !~ /^Can't locate/) {
-            die $@;
-        };
-
-
-
+RT::FM->ImportOverlays;
 
 =head1 SEE ALSO
 

commit fb28e9d4ff7d795f37cfa6b5ad88afb849c8e50b
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 14:56:19 2011 -0400

    Updated license tagger from RT 3.8

diff --git a/tools/license_tag b/tools/license_tag
old mode 100644
new mode 100755
index d552ed6..d65dec6
--- a/tools/license_tag
+++ b/tools/license_tag
@@ -1,43 +1,45 @@
 #!/usr/bin/perl
 
+use strict;
+use warnings;
 
 # BEGIN BPS TAGGED BLOCK {{{
-# 
+#
 # COPYRIGHT:
-#  
-# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC 
-#                                          <jesse at bestpractical.com>
-# 
+#
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+#                                          <sales at bestpractical.com>
+#
 # (Except where explicitly superseded by other copyright notices)
-# 
-# 
+#
+#
 # LICENSE:
-# 
+#
 # This work is made available to you under the terms of Version 2 of
 # the GNU General Public License. A copy of that license should have
 # been provided with this software, but in any event can be snarfed
 # from www.gnu.org.
-# 
+#
 # This work is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 # General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
-# 
-# 
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
+#
+#
 # CONTRIBUTION SUBMISSION POLICY:
-# 
+#
 # (The following paragraph is not intended to limit the rights granted
 # to you to modify and distribute this software under the terms of
 # the GNU General Public License and is only of importance to you if
 # you choose to contribute your changes and enhancements to the
 # community by submitting them to Best Practical Solutions, LLC.)
-# 
+#
 # By intentionally submitting any modifications, corrections or
 # derivatives to this work, or any other work intended for use with
 # Request Tracker, to Best Practical Solutions, LLC, you confirm that
@@ -46,13 +48,13 @@
 # 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 }}}
 my $LICENSE  = <<'EOL';
 
 COPYRIGHT:
 
-This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
                                          <sales at bestpractical.com>
 
 (Except where explicitly superseded by other copyright notices)
@@ -74,7 +76,7 @@ You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 02110-1301 or visit their web page on the internet at
-http://www.gnu.org/copyleft/gpl.html.
+http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 
 
 CONTRIBUTION SUBMISSION POLICY:
@@ -102,60 +104,58 @@ my @MAKE = qw(Makefile);
 
 File::Find::find({ no_chdir => 1, wanted => \&tag_pm}, 'lib');
 File::Find::find({ no_chdir => 1, wanted => \&tag_mason}, 'html');
-File::Find::find({ no_chdir => 1, wanted => \&tag_script}, 'sbin');
-File::Find::find({ no_chdir => 1, wanted => \&tag_script}, 'bin');
-tag_makefile ('README');
-
+File::Find::find({ no_chdir => 1, wanted => \&tag_script}, 'etc/upgrade');
 
 sub tag_mason {
         my $pm = $_;
-        next unless (-f $pm);
-        next if ($pm =~ /images/);
-        open(FILE,"<$pm") || die "Failed to open $pm";
-        my $file = (join "", <FILE>); 
-        close (FILE);
+        return unless (-f $pm);
+        return if $pm =~ /images/ || $pm =~ /\.(?:png|jpe?g|gif)$/;
+        open( my $fh, '<', $pm ) or die "Failed to open $pm: $!";
+        my $file = (join "", <$fh>);
+        close ($fh) or die "Failed to close $pm: $!";
+        print "$pm - ";
+        return if another_license($pm => $file) && print "has different license\n";
+
         my $pmlic = $LICENSE;
         $pmlic =~ s/^/%# /mg;
         $pmlic =~ s/\s*$//mg;
-
-        print "$pm - ";
         if ($file =~ /^%# BEGIN BPS TAGGED BLOCK {{{/ms) {
                 print "has license section";
-             $file =~ s/^%# BEGIN BPS TAGGED BLOCK {{{(.*?)%# END BPS TAGGED BLOCK }}}/%# BEGIN BPS TAGGED BLOCK {{{\n$pmlic%# END BPS TAGGED BLOCK }}}/ms;
-             
+             $file =~ s/^%# BEGIN BPS TAGGED BLOCK {{{(.*?)%# END BPS TAGGED BLOCK }}}/%# BEGIN BPS TAGGED BLOCK {{{\n$pmlic\n%# END BPS TAGGED BLOCK }}}/ms;
+
 
         } else {
                 print "no license section";
-             $file ="%# BEGIN BPS TAGGED BLOCK {{{\n$pmlic%# END BPS TAGGED BLOCK }}}\n". $file;
+             $file ="%# BEGIN BPS TAGGED BLOCK {{{\n$pmlic\n%# END BPS TAGGED BLOCK }}}\n". $file;
         }
         $file =~ s/%# END BPS TAGGED BLOCK }}}(\n+)/%# END BPS TAGGED BLOCK }}}\n/mg;
         print "\n";
-        
-        
 
 
-        open (FILE, ">$pm") || die "couldn't write new file";
-        print FILE $file;
-        close FILE;
 
+
+        open( $fh, '>', $pm ) or die "Failed to write $pm: $!";
+        print $fh $file;
+        close $fh or die "Failed to close $pm: $!";
+        return;
 }
 
 
 sub tag_makefile {
         my $pm = shift;
-        open(FILE,"<$pm") || die "Failed to open $pm";
-        my $file = (join "", <FILE>); 
-        close (FILE);
+        open( my $fh, '<', $pm ) or die "Failed to open $pm: $!";
+        my $file = (join "", <$fh>);
+        close ($fh) or die "Failed to close $pm: $!";
+        print "$pm - ";
+        return if another_license($pm => $file) && print "has different license\n";
+
         my $pmlic = $LICENSE;
         $pmlic =~ s/^/# /mg;
         $pmlic =~ s/\s*$//mg;
-
-
-        print "$pm - ";
         if ($file =~ /^# BEGIN BPS TAGGED BLOCK {{{/ms) {
                 print "has license section";
              $file =~ s/^# BEGIN BPS TAGGED BLOCK {{{(.*?)# END BPS TAGGED BLOCK }}}/# BEGIN BPS TAGGED BLOCK {{{\n$pmlic\n# END BPS TAGGED BLOCK }}}/ms;
-             
+
 
         } else {
                 print "no license section";
@@ -163,83 +163,96 @@ sub tag_makefile {
         }
         $file =~ s/# END BPS TAGGED BLOCK }}}(\n+)/# END BPS TAGGED BLOCK }}}\n/mg;
         print "\n";
-        
-        
 
 
-        open (FILE, ">$pm") || die "couldn't write new file";
-        print FILE $file;
-        close FILE;
 
+
+        open( $fh, '>', $pm ) or die "Failed to write $pm: $!";
+        print $fh $file;
+        close $fh or die "Failed to close $pm: $!";
+        return;
 }
 
 
 sub tag_pm {
         my $pm = $_;
         next unless $pm =~ /\.pm/s;
-        open(FILE,"<$pm") || die "Failed to open $pm";
-        my $file = (join "", <FILE>); 
-        close (FILE);
+        open( my $fh, '<', $pm ) or die "Failed to open $pm: $!";
+        my $file = (join "", <$fh>);
+        close ($fh) or die "Failed to close $pm: $!";
+        print "$pm - ";
+        return if another_license($pm => $file) && print "has different license\n";
+
         my $pmlic = $LICENSE;
         $pmlic =~ s/^/# /mg;
         $pmlic =~ s/\s*$//mg;
-
-
-        print "$pm - ";
         if ($file =~ /^# BEGIN BPS TAGGED BLOCK {{{/ms) {
                 print "has license section";
              $file =~ s/^# BEGIN BPS TAGGED BLOCK {{{(.*?)# END BPS TAGGED BLOCK }}}/# BEGIN BPS TAGGED BLOCK {{{\n$pmlic\n# END BPS TAGGED BLOCK }}}/ms;
-             
+
 
         } else {
                 print "no license section";
              $file ="# BEGIN BPS TAGGED BLOCK {{{\n$pmlic\n# END BPS TAGGED BLOCK }}}\n". $file;
         }
-        $file =~ s/# END BPS TAGGED BLOCK }}}(\n+)/# END BPS TAGGED BLOCK }}}\n/mg;
+        $file =~ s/# END BPS TAGGED BLOCK }}}(\n+)/# END BPS TAGGED BLOCK }}}\n\n/mg;
         print "\n";
-        
-        
 
 
-        open (FILE, ">$pm") || die "couldn't write new file $pm";
-        print FILE $file;
-        close FILE;
 
+
+        open( $fh, '>', $pm ) or die "Failed to write $pm: $!";
+        print $fh $file;
+        close $fh or die "Failed to close $pm: $!";
+        return;
 }
 
 
 sub tag_script {
         my $pm = $_;
         return unless (-f $pm);
-        open(FILE,"<$pm") || die "Failed to open $pm";
-        my $file = (join "", <FILE>); 
-        close (FILE);
+        open( my $fh, '<', $pm ) or die "Failed to open $pm: $!";
+        my $file = (join "", <$fh>);
+        close ($fh) or die "Failed to close $pm: $!";
+        print "$pm - ";
+        return if another_license($pm => $file) && print "has different license\n";
+
         my $pmlic = $LICENSE;
         $pmlic =~ s/^/# /msg;
         $pmlic =~ s/\s*$//mg;
-
-        print "$pm - ";
         if ($file =~ /^# BEGIN BPS TAGGED BLOCK {{{/ms) {
                 print "has license section";
              $file =~ s/^# BEGIN BPS TAGGED BLOCK {{{(.*?)# END BPS TAGGED BLOCK }}}/# BEGIN BPS TAGGED BLOCK {{{\n$pmlic\n# END BPS TAGGED BLOCK }}}/ms;
-             
+
 
         } else {
                 print "no license section";
                 if ($file =~ /^(#!.*?)\n/) {
 
             my  $lic ="# BEGIN BPS TAGGED BLOCK {{{\n$pmlic\n# END BPS TAGGED BLOCK }}}\n";
-                $file =~ s/^(#!.*?)\n/$1\n$lic/; 
+                $file =~ s/^(#!.*?)\n/$1\n$lic/;
 
-                } 
+                }
         }
         $file =~ s/# END BPS TAGGED BLOCK }}}(\n+)/# END BPS TAGGED BLOCK }}}\n/mg;
         print "\n";
-        
 
-        open (FILE, ">$pm") || die "couldn't write new file";
-        print FILE $file;
-        close FILE;
 
+        open( $fh, '>', $pm ) or die "Failed to write $pm: $!";
+        print $fh $file;
+        close $fh or die "Failed to close $pm: $!";
+        return;
+}
+
+sub another_license {
+    my $name = shift;
+    my $file = shift;
+
+    return 1 if ($name =~ /(?:FCKEditor|scriptaculous|superfish|tablesorter|farbtastic)/i);
+
+    return 0 if $file =~ /Copyright\s+\(c\)\s+\d\d\d\d-\d\d\d\d Best Practical Solutions/i;
+    return 1 if $file =~ /\b(copyright|GPL|Public Domain)\b/i; # common
+    return 1 if $file =~ /\(c\)\s+\d\d\d\d(?:-\d\d\d\d)?/i; # prototype
+    return 0;
 }
 

commit 7b60f2d46d1ed0baa046e96ca6a34fb2fa498b6b
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 14:57:14 2011 -0400

    Re-run license tagger

diff --git a/etc/upgrade/migrate-2.0-to-2.1 b/etc/upgrade/migrate-2.0-to-2.1
index 000577f..859fbd2 100644
--- a/etc/upgrade/migrate-2.0-to-2.1
+++ b/etc/upgrade/migrate-2.0-to-2.1
@@ -1,41 +1,41 @@
 #!/usr/bin/env perl
 # BEGIN BPS TAGGED BLOCK {{{
-# 
+#
 # COPYRIGHT:
-#  
-# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC 
+#
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
-# 
+#
 # (Except where explicitly superseded by other copyright notices)
-# 
-# 
+#
+#
 # LICENSE:
-# 
+#
 # This work is made available to you under the terms of Version 2 of
 # the GNU General Public License. A copy of that license should have
 # been provided with this software, but in any event can be snarfed
 # from www.gnu.org.
-# 
+#
 # This work is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 # General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
-# 
-# 
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
+#
+#
 # CONTRIBUTION SUBMISSION POLICY:
-# 
+#
 # (The following paragraph is not intended to limit the rights granted
 # to you to modify and distribute this software under the terms of
 # the GNU General Public License and is only of importance to you if
 # you choose to contribute your changes and enhancements to the
 # community by submitting them to Best Practical Solutions, LLC.)
-# 
+#
 # By intentionally submitting any modifications, corrections or
 # derivatives to this work, or any other work intended for use with
 # Request Tracker, to Best Practical Solutions, LLC, you confirm that
@@ -44,7 +44,7 @@
 # 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;
 RT::LoadConfig;
diff --git a/etc/upgrade/upgrade-mysql-schema.pl b/etc/upgrade/upgrade-mysql-schema.pl
index b29baa1..9996e59 100755
--- a/etc/upgrade/upgrade-mysql-schema.pl
+++ b/etc/upgrade/upgrade-mysql-schema.pl
@@ -1,5 +1,51 @@
 #!/usr/bin/perl
-
+# BEGIN BPS TAGGED BLOCK {{{
+#
+# COPYRIGHT:
+#
+# This software is Copyright (c) 1996-2011 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/html/Admin/Global/CustomFields/RTFM-Class-RTFM-Article.html b/html/Admin/Global/CustomFields/RTFM-Class-RTFM-Article.html
index 402dab1..a7fb81e 100644
--- a/html/Admin/Global/CustomFields/RTFM-Class-RTFM-Article.html
+++ b/html/Admin/Global/CustomFields/RTFM-Class-RTFM-Article.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Admin/Elements/ObjectCustomFields, 
     %ARGS, 
     ObjectType => 'RT::FM::Class',
diff --git a/html/Admin/RTFM/Classes/CustomFields.html b/html/Admin/RTFM/Classes/CustomFields.html
index 5b42ee6..5c8f1d6 100644
--- a/html/Admin/RTFM/Classes/CustomFields.html
+++ b/html/Admin/RTFM/Classes/CustomFields.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Admin/RTFM/Elements/ClassTabs, id => $Object->id, Title => $title, current_tab => "Admin/RTFM/Classes/CustomFields.html?id=$id" &>
 <& /Admin/Elements/EditCustomFields, %ARGS, title => $title, Object => $Object, ObjectType => 'RT::FM::Class', SubType => 'RT::FM::Article' &>
 <%INIT>
diff --git a/html/Admin/RTFM/Classes/GroupRights.html b/html/Admin/RTFM/Classes/GroupRights.html
index 6d124a9..18b5b5b 100644
--- a/html/Admin/RTFM/Classes/GroupRights.html
+++ b/html/Admin/RTFM/Classes/GroupRights.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Admin/RTFM/Elements/ClassTabs, id => $id, Title => loc('Modify group rights for Class [_1]', $ClassObj->Name) &>
 <& /Elements/ListActions, actions => \@results &>
 
diff --git a/html/Admin/RTFM/Classes/Modify.html b/html/Admin/RTFM/Classes/Modify.html
index 3108bd5..0c67ff7 100644
--- a/html/Admin/RTFM/Classes/Modify.html
+++ b/html/Admin/RTFM/Classes/Modify.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Admin/RTFM/Elements/ClassTabs, id => $ClassObj->id, current_tab =>
 $current_subtab, Title => $title &>
 <& /Elements/ListActions, actions => \@results &>
diff --git a/html/Admin/RTFM/Classes/Topics.html b/html/Admin/RTFM/Classes/Topics.html
index 97c9583..7ff04c3 100644
--- a/html/Admin/RTFM/Classes/Topics.html
+++ b/html/Admin/RTFM/Classes/Topics.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Admin/RTFM/Elements/ClassTabs, id => $ClassObj->Id, Title => $title, current_tab => "Admin/RTFM/Classes/Topics.html?id=$id" &>
 
 <& /Admin/RTFM/Elements/Topics, title => $title, RootObj => $ClassObj, %ARGS &>
diff --git a/html/Admin/RTFM/Classes/UserRights.html b/html/Admin/RTFM/Classes/UserRights.html
index 456d0b2..2da4b4d 100644
--- a/html/Admin/RTFM/Classes/UserRights.html
+++ b/html/Admin/RTFM/Classes/UserRights.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Admin/RTFM/Elements/ClassTabs, id => $id , Title => loc('Modify user rights for class [_1]', $ClassObj->Name) &>
 <& /Elements/ListActions, actions => \@results &>
 
diff --git a/html/Admin/RTFM/Classes/index.html b/html/Admin/RTFM/Classes/index.html
index a8fc5c9..5277bc7 100644
--- a/html/Admin/RTFM/Classes/index.html
+++ b/html/Admin/RTFM/Classes/index.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Admin/RTFM/Elements/ClassTabs, current_tab => 'Admin/RTFM/Classes/', current_subtab => 'Admin/RTFM/Classes/', Title => loc("Select a Class") &>
 
 <table>
diff --git a/html/Admin/RTFM/Elements/ClassTabs b/html/Admin/RTFM/Elements/ClassTabs
index 05959e1..cdf63a4 100644
--- a/html/Admin/RTFM/Elements/ClassTabs
+++ b/html/Admin/RTFM/Elements/ClassTabs
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Elements/Header, Title => $Title &>
 <& /Admin/RTFM/Elements/Tabs, 
     subtabs => $tabs, 
diff --git a/html/Admin/RTFM/Elements/GlobalTabs b/html/Admin/RTFM/Elements/GlobalTabs
index e363282..7d6b716 100644
--- a/html/Admin/RTFM/Elements/GlobalTabs
+++ b/html/Admin/RTFM/Elements/GlobalTabs
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Elements/Header, Title => $Title &>
 <& /Admin/RTFM/Elements/Tabs, 
     subtabs => $tabs, 
diff --git a/html/Admin/RTFM/Elements/Header b/html/Admin/RTFM/Elements/Header
index e0e583f..ca35920 100644
--- a/html/Admin/RTFM/Elements/Header
+++ b/html/Admin/RTFM/Elements/Header
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 %#<& /Elements/Header, Title => $Title &>
 <%ARGS>
 $Title => undef
diff --git a/html/Admin/RTFM/Elements/Tabs b/html/Admin/RTFM/Elements/Tabs
index 01bbd36..23b72c0 100644
--- a/html/Admin/RTFM/Elements/Tabs
+++ b/html/Admin/RTFM/Elements/Tabs
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Admin/Elements/Tabs, 
     subtabs => $tabs, 
     current_tab => 'Admin/RTFM/index.html', 
diff --git a/html/Admin/RTFM/Elements/Topics b/html/Admin/RTFM/Elements/Topics
index 7a26da1..f656705 100644
--- a/html/Admin/RTFM/Elements/Topics
+++ b/html/Admin/RTFM/Elements/Topics
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Elements/ListActions, actions => \@results &>
 
 <form action="<%$RT::WebPath%><% $m->request_comp->path |n %>" method="post">
diff --git a/html/Admin/RTFM/Global/GroupRights.html b/html/Admin/RTFM/Global/GroupRights.html
index cd56048..27d2fa0 100644
--- a/html/Admin/RTFM/Global/GroupRights.html
+++ b/html/Admin/RTFM/Global/GroupRights.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Admin/RTFM/Elements/GlobalTabs, 
     current_tab => 'Admin/RTFM/Global/GroupRights.html', 
     Title => loc('Modify global group rights') &>  
diff --git a/html/Admin/RTFM/Global/Topics.html b/html/Admin/RTFM/Global/Topics.html
index 96cffa3..b13681d 100644
--- a/html/Admin/RTFM/Global/Topics.html
+++ b/html/Admin/RTFM/Global/Topics.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Admin/RTFM/Elements/GlobalTabs, current_tab => 'Admin/Global/Topics.html', Title => $title &>
 <& /Admin/RTFM/Elements/Topics, RootObj => $RT::FM::System, title => $title, %ARGS &>
 
diff --git a/html/Admin/RTFM/Global/UserRights.html b/html/Admin/RTFM/Global/UserRights.html
index e25f739..5d2248d 100644
--- a/html/Admin/RTFM/Global/UserRights.html
+++ b/html/Admin/RTFM/Global/UserRights.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Admin/RTFM/Elements/GlobalTabs, 
     current_tab => 'Admin/Global/UserRights.html',
     Title => loc('Modify global user rights') &>
diff --git a/html/Admin/RTFM/Global/index.html b/html/Admin/RTFM/Global/index.html
index f365490..23026eb 100644
--- a/html/Admin/RTFM/Global/index.html
+++ b/html/Admin/RTFM/Global/index.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Admin/RTFM/Elements/GlobalTabs, 
     current_tab => 'Admin/Global/UserRights.html',
     Title => '' &>
diff --git a/html/Admin/RTFM/index.html b/html/Admin/RTFM/index.html
index c131b09..af95088 100644
--- a/html/Admin/RTFM/index.html
+++ b/html/Admin/RTFM/index.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,6 +43,7 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Elements/Header, Title => loc('RTFM Administration') &>
 <& /Admin/RTFM/Elements/Tabs, Title => loc('RTFM Administration') &>
diff --git a/html/Callbacks/RTFM/Admin/Elements/CustomFieldTabs/Default b/html/Callbacks/RTFM/Admin/Elements/CustomFieldTabs/Default
index 6dfc873..d4973e7 100644
--- a/html/Callbacks/RTFM/Admin/Elements/CustomFieldTabs/Default
+++ b/html/Callbacks/RTFM/Admin/Elements/CustomFieldTabs/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <%args>
 $id => undef
 $tabs => undef
diff --git a/html/Callbacks/RTFM/Admin/Elements/Tabs/Default b/html/Callbacks/RTFM/Admin/Elements/Tabs/Default
index f723fc1..274e496 100644
--- a/html/Callbacks/RTFM/Admin/Elements/Tabs/Default
+++ b/html/Callbacks/RTFM/Admin/Elements/Tabs/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <%args>
 $id => undef
 $tabs => undef
diff --git a/html/Callbacks/RTFM/Admin/Global/CustomFields/index.html/Default b/html/Callbacks/RTFM/Admin/Global/CustomFields/index.html/Default
index f8a00e5..3209ddc 100644
--- a/html/Callbacks/RTFM/Admin/Global/CustomFields/index.html/Default
+++ b/html/Callbacks/RTFM/Admin/Global/CustomFields/index.html/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <%args>
 $tabs => undef
 </%args>
diff --git a/html/Callbacks/RTFM/Admin/index.html/Default b/html/Callbacks/RTFM/Admin/index.html/Default
index f22be8d..8e987fd 100644
--- a/html/Callbacks/RTFM/Admin/index.html/Default
+++ b/html/Callbacks/RTFM/Admin/index.html/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <%args>
 $id => undef
 $tabs => undef
diff --git a/html/Callbacks/RTFM/Elements/EditLinks/ExtraLinkInstructions b/html/Callbacks/RTFM/Elements/EditLinks/ExtraLinkInstructions
index f6a52fc..d1ae5b6 100644
--- a/html/Callbacks/RTFM/Elements/EditLinks/ExtraLinkInstructions
+++ b/html/Callbacks/RTFM/Elements/EditLinks/ExtraLinkInstructions
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,5 +43,6 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <br /><&|/l&>You may enter links to RTFM articles as "a:###", where ### represents the number of the article.</&> 
\ No newline at end of file
diff --git a/html/Callbacks/RTFM/Elements/Header/Head b/html/Callbacks/RTFM/Elements/Header/Head
index 1307e47..f39e847 100644
--- a/html/Callbacks/RTFM/Elements/Header/Head
+++ b/html/Callbacks/RTFM/Elements/Header/Head
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,5 +43,6 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <link rel="stylesheet" href="<%$RT::WebPath%>/NoAuth/webrtfm.css" type="text/css" />
diff --git a/html/Callbacks/RTFM/Elements/MessageBox/Default b/html/Callbacks/RTFM/Elements/MessageBox/Default
index a6247f8..6a71f66 100644
--- a/html/Callbacks/RTFM/Elements/MessageBox/Default
+++ b/html/Callbacks/RTFM/Elements/MessageBox/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <%INIT>
 
 my $parent_args = $m->caller_args(-1);
diff --git a/html/Callbacks/RTFM/Elements/Tabs/Default b/html/Callbacks/RTFM/Elements/Tabs/Default
index f7ee7db..503aa42 100644
--- a/html/Callbacks/RTFM/Elements/Tabs/Default
+++ b/html/Callbacks/RTFM/Elements/Tabs/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <%init>
 $toptabs->{'BB-RTFM'} = { title =>loc("RTFM"),
                           path  => "RTFM/index.html" };
diff --git a/html/Callbacks/RTFM/RTIR/Elements/Tabs/Default b/html/Callbacks/RTFM/RTIR/Elements/Tabs/Default
index 7ad8629..5585ccf 100644
--- a/html/Callbacks/RTFM/RTIR/Elements/Tabs/Default
+++ b/html/Callbacks/RTFM/RTIR/Elements/Tabs/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <%ARGS>
 $toptabs => {}
 </%ARGS>
diff --git a/html/Callbacks/RTFM/SelfService/Elements/Tabs/Default b/html/Callbacks/RTFM/SelfService/Elements/Tabs/Default
index 9758842..d423846 100644
--- a/html/Callbacks/RTFM/SelfService/Elements/Tabs/Default
+++ b/html/Callbacks/RTFM/SelfService/Elements/Tabs/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <%INIT>
 if ($session{'CurrentUser'}->HasRight( Right => 'ShowArticle',
 				       Object => $RT::FM::System )) {
diff --git a/html/Callbacks/RTFM/Ticket/Create.html/BeforeCreate b/html/Callbacks/RTFM/Ticket/Create.html/BeforeCreate
index e058822..aadff63 100644
--- a/html/Callbacks/RTFM/Ticket/Create.html/BeforeCreate
+++ b/html/Callbacks/RTFM/Ticket/Create.html/BeforeCreate
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <%INIT>
 
 return if $checks_failure; # we're already skipping Create
diff --git a/html/Callbacks/RTFM/Ticket/Create.html/BeforeMessageBox b/html/Callbacks/RTFM/Ticket/Create.html/BeforeMessageBox
index ad7bada..b058dbd 100644
--- a/html/Callbacks/RTFM/Ticket/Create.html/BeforeMessageBox
+++ b/html/Callbacks/RTFM/Ticket/Create.html/BeforeMessageBox
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 % if ( RT->can('Config') && RT->Config->can('Get') && RT->Config->Get('RTFM_TicketCreate')) {
 <& /RTFM/Elements/BeforeMessageBox, %ARGS &>
 % }
diff --git a/html/Callbacks/RTFM/Ticket/Elements/Tabs/Default b/html/Callbacks/RTFM/Ticket/Elements/Tabs/Default
index 8bbf6a6..15279c4 100644
--- a/html/Callbacks/RTFM/Ticket/Elements/Tabs/Default
+++ b/html/Callbacks/RTFM/Ticket/Elements/Tabs/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <%init>
 if ($Ticket) {
 $actions->{'rtfm-extract-article'} = { title => loc('Extract Article'),
diff --git a/html/Callbacks/RTFM/Ticket/Update.html/BeforeMessageBox b/html/Callbacks/RTFM/Ticket/Update.html/BeforeMessageBox
index 8b7a3de..8102a2d 100644
--- a/html/Callbacks/RTFM/Ticket/Update.html/BeforeMessageBox
+++ b/html/Callbacks/RTFM/Ticket/Update.html/BeforeMessageBox
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,5 +43,6 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /RTFM/Elements/BeforeMessageBox, %ARGS &>
diff --git a/html/Callbacks/RTFM/autohandler/Default b/html/Callbacks/RTFM/autohandler/Default
index 37af172..3accbd4 100644
--- a/html/Callbacks/RTFM/autohandler/Default
+++ b/html/Callbacks/RTFM/autohandler/Default
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <%init>
 use RT::FM;
 use RT::FM::ArticleCollection;
diff --git a/html/Elements/RT__FM__ClassCollection/ColumnMap b/html/Elements/RT__FM__ClassCollection/ColumnMap
index ba300a1..a450d32 100644
--- a/html/Elements/RT__FM__ClassCollection/ColumnMap
+++ b/html/Elements/RT__FM__ClassCollection/ColumnMap
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <%ARGS>
 $Name
 $Attr => undef
diff --git a/html/NoAuth/webrtfm.css b/html/NoAuth/webrtfm.css
index 9ff9b19..bed2f94 100644
--- a/html/NoAuth/webrtfm.css
+++ b/html/NoAuth/webrtfm.css
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 #cfs .hidden { display: none; }
 
 #cfs .de-emphasized td { font-weight: lighter; color: #999; font-size:  9pt; }
diff --git a/html/RTFM/Article/Delete.html b/html/RTFM/Article/Delete.html
index dac7cb4..8946163 100644
--- a/html/RTFM/Article/Delete.html
+++ b/html/RTFM/Article/Delete.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 % if ($ARGS{'Delete'}) {
 <& /RTFM/Article/Elements/Tabs, Title => $title &>
 
diff --git a/html/RTFM/Article/Display.html b/html/RTFM/Article/Display.html
index 268ba57..724dd8c 100644
--- a/html/RTFM/Article/Display.html
+++ b/html/RTFM/Article/Display.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /RTFM/Article/Elements/Tabs, 
     id => $id, 
     Title => $title, 
diff --git a/html/RTFM/Article/Edit.html b/html/RTFM/Article/Edit.html
index 59b58ea..603b447 100644
--- a/html/RTFM/Article/Edit.html
+++ b/html/RTFM/Article/Edit.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 % if ($id && $id ne 'new') {
 <& /RTFM/Article/Elements/Tabs, 
     Article => $ArticleObj, 
diff --git a/html/RTFM/Article/Elements/EditBasics b/html/RTFM/Article/Elements/EditBasics
index 3e75ab1..4bdcd0b 100644
--- a/html/RTFM/Article/Elements/EditBasics
+++ b/html/RTFM/Article/Elements/EditBasics
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <tr>
 <td class="label"><&|/l&>Name</&></td>
 <td><input name="Name" value="<%($ARGS{'id'} eq 'new' ? '' : $ArticleObj->Name) || $ARGS{'Name'} || ''|h%>" size="50" /></td>
diff --git a/html/RTFM/Article/Elements/EditCustomFields b/html/RTFM/Article/Elements/EditCustomFields
index dd63895..4f88332 100644
--- a/html/RTFM/Article/Elements/EditCustomFields
+++ b/html/RTFM/Article/Elements/EditCustomFields
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 % while (my $CustomField = $CustomFields->Next()) {
 <tr>
     <td class="labeltop"><b><%$CustomField->Name%></b><br /><i><%$CustomField->FriendlyType%></i></td>
diff --git a/html/RTFM/Article/Elements/EditLinks b/html/RTFM/Article/Elements/EditLinks
index 4301a03..237d06a 100644
--- a/html/RTFM/Article/Elements/EditLinks
+++ b/html/RTFM/Article/Elements/EditLinks
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <tr>
 <td class="label"></td>
 <td class="value"><i><&|/l&>Enter articles, tickets, or other URLs related to this article.</&>
diff --git a/html/RTFM/Article/Elements/EditTopics b/html/RTFM/Article/Elements/EditTopics
index 115237a..af2cc46 100644
--- a/html/RTFM/Article/Elements/EditTopics
+++ b/html/RTFM/Article/Elements/EditTopics
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <input type="hidden" name="EditTopics" value="1" />
 <select multiple size="10" name="Topics">
 <%perl>
diff --git a/html/RTFM/Article/Elements/LinkEntryInstructions b/html/RTFM/Article/Elements/LinkEntryInstructions
index 6a0e4db..1afc846 100644
--- a/html/RTFM/Article/Elements/LinkEntryInstructions
+++ b/html/RTFM/Article/Elements/LinkEntryInstructions
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,6 +43,7 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <&|/l&>Type <b>a:</b> before article numbers and <b>t:</b> before ticket numbers.</&>
 <&|/l&>Separate multiple entries with spaces.</&>
diff --git a/html/RTFM/Article/Elements/Preformatted b/html/RTFM/Article/Elements/Preformatted
index 2d9d7c5..443419a 100644
--- a/html/RTFM/Article/Elements/Preformatted
+++ b/html/RTFM/Article/Elements/Preformatted
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 % if ($include{Name}) {
 #<%$Article->Id%>: <%$Article->Name || loc('(no name)')%>
 <%'-' x length("#".$Article->Id.": ".($Article->Name || loc('(no name)'))) %>
diff --git a/html/RTFM/Article/Elements/SearchByCustomField b/html/RTFM/Article/Elements/SearchByCustomField
index 1fa0ee4..f0e77ac 100644
--- a/html/RTFM/Article/Elements/SearchByCustomField
+++ b/html/RTFM/Article/Elements/SearchByCustomField
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 %# if the custom field is a select, enumerate the options
 % if ($Field->Type =~ /^Select/) {
 % my $CustomFieldValues = $Field->ValuesObj();
diff --git a/html/RTFM/Article/Elements/SelectSavedSearches b/html/RTFM/Article/Elements/SelectSavedSearches
index 8bafb14..f7110c6 100644
--- a/html/RTFM/Article/Elements/SelectSavedSearches
+++ b/html/RTFM/Article/Elements/SelectSavedSearches
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <select name="<%$Name%>">
 % foreach my $privacy (reverse sort keys %privacies) {
 %     my $searches = RT::SavedSearches->new($session{'CurrentUser'});
diff --git a/html/RTFM/Article/Elements/SelectSearchPrivacy b/html/RTFM/Article/Elements/SelectSearchPrivacy
index 4e44408..38090a8 100755
--- a/html/RTFM/Article/Elements/SelectSearchPrivacy
+++ b/html/RTFM/Article/Elements/SelectSearchPrivacy
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <select name="<%$Name%>">
 <option value="RT::User-<% $user->Id %>" <% $Default eq 'RT::User-'.$user->Id ? 'selected' : '' %>>My searches</option>
 % while (my $group = $groups->Next) {
diff --git a/html/RTFM/Article/Elements/ShowHistory b/html/RTFM/Article/Elements/ShowHistory
index dbacc49..2e26f81 100644
--- a/html/RTFM/Article/Elements/ShowHistory
+++ b/html/RTFM/Article/Elements/ShowHistory
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <table width="100%" cellspacing="0" cellpadding="2">
 % my $i;
 % while (my $transaction = $transactions->Next) {
diff --git a/html/RTFM/Article/Elements/ShowLinks b/html/RTFM/Article/Elements/ShowLinks
index 66446a5..a42aab5 100644
--- a/html/RTFM/Article/Elements/ShowLinks
+++ b/html/RTFM/Article/Elements/ShowLinks
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <span class="label"><&|/l&>Refers to</&></span>:<br />
 <ul class="value">
 % my $refersto = $article->RefersTo;
diff --git a/html/RTFM/Article/Elements/ShowSavedSearches b/html/RTFM/Article/Elements/ShowSavedSearches
index 98a0c6d..5ef2cb6 100644
--- a/html/RTFM/Article/Elements/ShowSavedSearches
+++ b/html/RTFM/Article/Elements/ShowSavedSearches
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Elements/TitleBoxStart, title => loc('Saved searches') &>
 %# Keep track of what our current search ID is.
 <input type="hidden" name="CurrentSearch" value="<% $CurrentSearch ? $CurrentSearch : 'new' %>">
diff --git a/html/RTFM/Article/Elements/ShowSearchCriteria b/html/RTFM/Article/Elements/ShowSearchCriteria
index f20e8be..2fd6690 100644
--- a/html/RTFM/Article/Elements/ShowSearchCriteria
+++ b/html/RTFM/Article/Elements/ShowSearchCriteria
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 % if ($ARGS{'HideOptions'}) {
 <& /Elements/TitleBoxStart, title => loc('Advanced search'), class => "rolled-up", bodyclass => "hidden" &>
 % } else {
diff --git a/html/RTFM/Article/Elements/ShowSearchResults b/html/RTFM/Article/Elements/ShowSearchResults
index b7f1674..f2005ab 100644
--- a/html/RTFM/Article/Elements/ShowSearchResults
+++ b/html/RTFM/Article/Elements/ShowSearchResults
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 % # THIS IS A HORRIBLE HACK TO SEE IF WE TRIED TO SEARCH
 % # IT CAN GO AWAY WHEN SEARCHBUILDER'S _isLimited IS 
 % # PROMOTED TO A PUBLIC API XXX TODO
diff --git a/html/RTFM/Article/Elements/ShowTopics b/html/RTFM/Article/Elements/ShowTopics
index a7e4c58..5018da3 100644
--- a/html/RTFM/Article/Elements/ShowTopics
+++ b/html/RTFM/Article/Elements/ShowTopics
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 % my $topics = RT::FM::ObjectTopicCollection->new($session{'CurrentUser'});
 % $topics->LimitToObject($article);
 % my @topics;
diff --git a/html/RTFM/Article/Elements/Tabs b/html/RTFM/Article/Elements/Tabs
index 9ac600c..4df8e27 100644
--- a/html/RTFM/Article/Elements/Tabs
+++ b/html/RTFM/Article/Elements/Tabs
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /RTFM/Elements/Tabs, tabs => $tabs, subtabs => $subtabs, current_toptab => 'RTFM/Article/Search.html', current_tab => $current_tab, current_subtab => $current_subtab, Title => $Title&>
   
 <%INIT>
diff --git a/html/RTFM/Article/ExtractFromTicket.html b/html/RTFM/Article/ExtractFromTicket.html
index a959f32..6800631 100644
--- a/html/RTFM/Article/ExtractFromTicket.html
+++ b/html/RTFM/Article/ExtractFromTicket.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /RTFM/Elements/Tabs, Title => loc('Extract article from ticket #[_1] into class [_2]',$Ticket, $ClassObj->Name) &> 
 <form action="Edit.html" method="post">
 <input type="hidden" name="Class" value="<%$ARGS{'Class'}%>" />
diff --git a/html/RTFM/Article/ExtractIntoClass.html b/html/RTFM/Article/ExtractIntoClass.html
index af23024..44b5049 100644
--- a/html/RTFM/Article/ExtractIntoClass.html
+++ b/html/RTFM/Article/ExtractIntoClass.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /RTFM/Elements/Tabs, Title => loc('Extract a new article from ticket #[_1]',$Ticket) &>                  
 
 
diff --git a/html/RTFM/Article/ExtractIntoTopic.html b/html/RTFM/Article/ExtractIntoTopic.html
index 0f3e1b2..b2fe012 100644
--- a/html/RTFM/Article/ExtractIntoTopic.html
+++ b/html/RTFM/Article/ExtractIntoTopic.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /RTFM/Elements/Tabs, Title => loc('Extract a new article from ticket #[_1]',$Ticket) &>
 
 
diff --git a/html/RTFM/Article/History.html b/html/RTFM/Article/History.html
index ee95417..84ae15e 100644
--- a/html/RTFM/Article/History.html
+++ b/html/RTFM/Article/History.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /RTFM/Article/Elements/Tabs, id => $id, Title => $title, current_subtab => 'RTFM/Article/History.html?id='.$id &>
 <& Elements/ShowHistory, id => $id &>  
 <%init>
diff --git a/html/RTFM/Article/PreCreate.html b/html/RTFM/Article/PreCreate.html
index 3391eeb..320dba2 100644
--- a/html/RTFM/Article/PreCreate.html
+++ b/html/RTFM/Article/PreCreate.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /RTFM/Article/Elements/Tabs,
     current_tab => "RTFM/Article/PreCreate.html",
     Title => loc('Create an article in class...'),
diff --git a/html/RTFM/Article/Search.html b/html/RTFM/Article/Search.html
index 9a5cd9c..c636a93 100644
--- a/html/RTFM/Article/Search.html
+++ b/html/RTFM/Article/Search.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /RTFM/Article/Elements/Tabs, current_tab => "RTFM/Article/Search.html", Title => loc("Search for articles") &>
 
 % unless ( keys %ARGS ) {
diff --git a/html/RTFM/Elements/BeforeMessageBox b/html/RTFM/Elements/BeforeMessageBox
index 8e9a06e..69ab0e9 100644
--- a/html/RTFM/Elements/BeforeMessageBox
+++ b/html/RTFM/Elements/BeforeMessageBox
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 % if ( $ARGS{id} && $ARGS{id} ne 'new' ) {
 <input type="hidden" name="<%$ARGS{'id'}%>-RefersTo" value="<% join(' ',grep {$_} sort keys %uri) %>" />
 % }
diff --git a/html/RTFM/Elements/CreateArticle b/html/RTFM/Elements/CreateArticle
index 60d2fc5..af729e8 100644
--- a/html/RTFM/Elements/CreateArticle
+++ b/html/RTFM/Elements/CreateArticle
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Elements/TitleBoxStart, title => loc('Create an article') &>
 <ul>
 % while (my $Class = $Classes->Next) {
diff --git a/html/RTFM/Elements/Error b/html/RTFM/Elements/Error
index 6df3960..b110d0d 100644
--- a/html/RTFM/Elements/Error
+++ b/html/RTFM/Elements/Error
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /RTFM/Elements/Tabs &>
 <& /Elements/TitleBoxStart, class=> "error",  title => $Title &>
 <%$Why%>
diff --git a/html/RTFM/Elements/GotoArticle b/html/RTFM/Elements/GotoArticle
index 8516ad3..8df301e 100644
--- a/html/RTFM/Elements/GotoArticle
+++ b/html/RTFM/Elements/GotoArticle
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <form ACTION="<%$RT::WebPath%>/RTFM/Article/Search.html">
 <input type="hidden" name="HideOptions" value="1" />
 <input size="12" name="q" accesskey="0" />
diff --git a/html/RTFM/Elements/Header b/html/RTFM/Elements/Header
index 482f188..3ca45df 100644
--- a/html/RTFM/Elements/Header
+++ b/html/RTFM/Elements/Header
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,5 +43,6 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Elements/Header, %ARGS &>
diff --git a/html/RTFM/Elements/NewestArticles b/html/RTFM/Elements/NewestArticles
index 8bdb8dd..26a6f30 100644
--- a/html/RTFM/Elements/NewestArticles
+++ b/html/RTFM/Elements/NewestArticles
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Elements/TitleBoxStart, title => loc("[_1] newest articles", $rows), bodyclass=> '' &>
 <table border="0" cellspacing="0" cellpadding="1" width="100%">
 <tr>
diff --git a/html/RTFM/Elements/QuickSearch b/html/RTFM/Elements/QuickSearch
index 879ea79..603c4c2 100644
--- a/html/RTFM/Elements/QuickSearch
+++ b/html/RTFM/Elements/QuickSearch
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Elements/TitleBoxStart, title => loc('Quick search') &>
 <ul>
 % while (my $class = $classes->Next) {
diff --git a/html/RTFM/Elements/SelectClass b/html/RTFM/Elements/SelectClass
index 6e9aa4f..885ae2c 100644
--- a/html/RTFM/Elements/SelectClass
+++ b/html/RTFM/Elements/SelectClass
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 % if ($Lite) {
 <input name="<%$Name%>" size="25" default="<%$d->Name%>" />
 % } else {
diff --git a/html/RTFM/Elements/ShowTopic b/html/RTFM/Elements/ShowTopic
index b19ebde..8d3b730 100644
--- a/html/RTFM/Elements/ShowTopic
+++ b/html/RTFM/Elements/ShowTopic
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 % for (@path) {
 %# this isn't always a class, it can be the system object
 % my $class_id = ($_->ObjectType eq 'RT::FM::Class' ? $_->ObjectId : 0 );
diff --git a/html/RTFM/Elements/Tabs b/html/RTFM/Elements/Tabs
index a5e0d46..24547a7 100644
--- a/html/RTFM/Elements/Tabs
+++ b/html/RTFM/Elements/Tabs
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /RTFM/Elements/Header, Title => $Title &>
 <& /Elements/PageLayout,
     current_toptab => 'RTFM/index.html',
diff --git a/html/RTFM/Elements/UpdatedArticles b/html/RTFM/Elements/UpdatedArticles
index 180ab99..abd505e 100644
--- a/html/RTFM/Elements/UpdatedArticles
+++ b/html/RTFM/Elements/UpdatedArticles
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /Elements/TitleBoxStart, title => loc("[_1] most recently updated articles", $rows), bodyclass=> '' &>
 <table border="0" cellspacing="0" cellpadding="1" width="100%">
 <tr>
diff --git a/html/RTFM/Topics.html b/html/RTFM/Topics.html
index 43caf22..5dd0677 100644
--- a/html/RTFM/Topics.html
+++ b/html/RTFM/Topics.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /RTFM/Elements/Tabs, current_toptab => "RTFM/Topics.html", Title => loc('Browse by topic'), class => $class, topic => $id &>
 
 <& /Elements/ListActions, actions => \@Actions &>
diff --git a/html/RTFM/index.html b/html/RTFM/index.html
index 8558e4d..3eab464 100644
--- a/html/RTFM/index.html
+++ b/html/RTFM/index.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /RTFM/Elements/Tabs, current_toptab => "RTFM/index.html", Title => loc('Overview') &>
 <table width="100%">
 <tr>
diff --git a/html/Search/Elements/Article b/html/Search/Elements/Article
index 4ef40fe..8fb6f38 100644
--- a/html/Search/Elements/Article
+++ b/html/Search/Elements/Article
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <&|/l&>RTFM Article searches cannot be displayed inline, you can view the results</&>
 <a href="<%$RT::WebPath%>/RTFM/Article/Search.html<%$QueryString%>"><&|/l&>here</&></a>
 <%INIT>
diff --git a/html/SelfService/Article/Display.html b/html/SelfService/Article/Display.html
index 43220b0..3f22c6d 100644
--- a/html/SelfService/Article/Display.html
+++ b/html/SelfService/Article/Display.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /SelfService/Elements/Header, Title => loc('Display Article ' . $ARGS{id} ) &>
 <span class="label"><%$article->Name || loc("(no name)")%></span><br />
 <em><span class="value"><%$article->Summary%></span></em>
diff --git a/html/SelfService/Article/Search.html b/html/SelfService/Article/Search.html
index c3b4734..586a7d3 100644
--- a/html/SelfService/Article/Search.html
+++ b/html/SelfService/Article/Search.html
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <& /SelfService/Elements/Header, Title => loc('Search Articles') &>
 
 <table>
diff --git a/html/SelfService/Article/autohandler b/html/SelfService/Article/autohandler
index c5ba65e..5c6d123 100755
--- a/html/SelfService/Article/autohandler
+++ b/html/SelfService/Article/autohandler
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <%INIT>
 
 if ( $session{'CurrentUser'}->HasRight( Right => 'ShowArticle',
diff --git a/html/SelfService/Elements/SearchArticle b/html/SelfService/Elements/SearchArticle
index 933890d..d746d47 100755
--- a/html/SelfService/Elements/SearchArticle
+++ b/html/SelfService/Elements/SearchArticle
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 %#                                          <sales at bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %#
 %#
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -43,7 +43,8 @@
 %# 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 }}}
+%#
+%# END BPS TAGGED BLOCK }}}
 <form action="<%$RT::WebPath%>/SelfService/Article/Search.html" id="ArticleSearch">
 <input type="submit" class="button" value="<&|/l&>Search Articles</&>" /> 
 <input size="15" name="RTFM_Content" />
diff --git a/lib/RT/FM.pm b/lib/RT/FM.pm
index a7a74d6..3e88a85 100644
--- a/lib/RT/FM.pm
+++ b/lib/RT/FM.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
 package RT::FM;
 use 5.008003;
 use strict;
diff --git a/lib/RT/FM/Article.pm b/lib/RT/FM/Article.pm
index dc3f2f5..5a24b62 100644
--- a/lib/RT/FM/Article.pm
+++ b/lib/RT/FM/Article.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # 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.  
 # 
diff --git a/lib/RT/FM/ArticleCollection.pm b/lib/RT/FM/ArticleCollection.pm
index 92276e3..390671d 100644
--- a/lib/RT/FM/ArticleCollection.pm
+++ b/lib/RT/FM/ArticleCollection.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # 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.  
 # 
diff --git a/lib/RT/FM/ArticleCollection_Overlay.pm b/lib/RT/FM/ArticleCollection_Overlay.pm
index 0baf28c..662e88c 100644
--- a/lib/RT/FM/ArticleCollection_Overlay.pm
+++ b/lib/RT/FM/ArticleCollection_Overlay.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
 package RT::FM::ArticleCollection;
 use strict;
 use warnings;
diff --git a/lib/RT/FM/Article_Overlay.pm b/lib/RT/FM/Article_Overlay.pm
index af32539..975b800 100644
--- a/lib/RT/FM/Article_Overlay.pm
+++ b/lib/RT/FM/Article_Overlay.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
 package RT::FM::Article;
 use strict;
 use warnings;
diff --git a/lib/RT/FM/Class.pm b/lib/RT/FM/Class.pm
index 9ff39b3..a71d399 100644
--- a/lib/RT/FM/Class.pm
+++ b/lib/RT/FM/Class.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # 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.  
 # 
diff --git a/lib/RT/FM/ClassCollection.pm b/lib/RT/FM/ClassCollection.pm
index 5c27e45..e96c4dc 100644
--- a/lib/RT/FM/ClassCollection.pm
+++ b/lib/RT/FM/ClassCollection.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # 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.  
 # 
diff --git a/lib/RT/FM/ClassCollection_Overlay.pm b/lib/RT/FM/ClassCollection_Overlay.pm
index 23db840..b147efa 100644
--- a/lib/RT/FM/ClassCollection_Overlay.pm
+++ b/lib/RT/FM/ClassCollection_Overlay.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
 package RT::FM::ClassCollection;
 use strict;
 use warnings;
diff --git a/lib/RT/FM/Class_Overlay.pm b/lib/RT/FM/Class_Overlay.pm
index 3986fe9..a3232c9 100644
--- a/lib/RT/FM/Class_Overlay.pm
+++ b/lib/RT/FM/Class_Overlay.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
 package RT::FM::Class;
 use strict;
 use warnings;
diff --git a/lib/RT/FM/ObjectTopic.pm b/lib/RT/FM/ObjectTopic.pm
index 399f1e7..5f45683 100644
--- a/lib/RT/FM/ObjectTopic.pm
+++ b/lib/RT/FM/ObjectTopic.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # 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.  
 # 
diff --git a/lib/RT/FM/ObjectTopicCollection.pm b/lib/RT/FM/ObjectTopicCollection.pm
index f6e6f6f..4264a49 100644
--- a/lib/RT/FM/ObjectTopicCollection.pm
+++ b/lib/RT/FM/ObjectTopicCollection.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # 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.  
 # 
diff --git a/lib/RT/FM/ObjectTopicCollection_Overlay.pm b/lib/RT/FM/ObjectTopicCollection_Overlay.pm
index edf4e4a..7911647 100644
--- a/lib/RT/FM/ObjectTopicCollection_Overlay.pm
+++ b/lib/RT/FM/ObjectTopicCollection_Overlay.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
 package RT::FM::ObjectTopicCollection;
 use strict;
 use warnings;
diff --git a/lib/RT/FM/Record.pm b/lib/RT/FM/Record.pm
index 6315a00..d506766 100644
--- a/lib/RT/FM/Record.pm
+++ b/lib/RT/FM/Record.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
diff --git a/lib/RT/FM/SearchBuilder.pm b/lib/RT/FM/SearchBuilder.pm
index 7dfecaa..0400278 100644
--- a/lib/RT/FM/SearchBuilder.pm
+++ b/lib/RT/FM/SearchBuilder.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
diff --git a/lib/RT/FM/System.pm b/lib/RT/FM/System.pm
index e4f0093..0822e59 100644
--- a/lib/RT/FM/System.pm
+++ b/lib/RT/FM/System.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
diff --git a/lib/RT/FM/Topic.pm b/lib/RT/FM/Topic.pm
index ea736bb..0bf9fc2 100644
--- a/lib/RT/FM/Topic.pm
+++ b/lib/RT/FM/Topic.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # 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.  
 # 
diff --git a/lib/RT/FM/TopicCollection.pm b/lib/RT/FM/TopicCollection.pm
index e127088..5f3360d 100644
--- a/lib/RT/FM/TopicCollection.pm
+++ b/lib/RT/FM/TopicCollection.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # 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.  
 # 
diff --git a/lib/RT/FM/TopicCollection_Overlay.pm b/lib/RT/FM/TopicCollection_Overlay.pm
index deec317..eedaa9e 100644
--- a/lib/RT/FM/TopicCollection_Overlay.pm
+++ b/lib/RT/FM/TopicCollection_Overlay.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
 package RT::FM::TopicCollection;
 use strict;
 use warnings;
diff --git a/lib/RT/FM/Topic_Overlay.pm b/lib/RT/FM/Topic_Overlay.pm
index c6ba4d5..eae6f6b 100644
--- a/lib/RT/FM/Topic_Overlay.pm
+++ b/lib/RT/FM/Topic_Overlay.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
 package RT::FM::Topic;
 use strict;
 use warnings;
diff --git a/lib/RT/URI/a.pm b/lib/RT/URI/a.pm
index 9f0420d..d58e12b 100644
--- a/lib/RT/URI/a.pm
+++ b/lib/RT/URI/a.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
 package RT::URI::a;
 
 use strict;
diff --git a/lib/RT/URI/fsck_com_rtfm.pm b/lib/RT/URI/fsck_com_rtfm.pm
index 548d75e..91fa1b0 100644
--- a/lib/RT/URI/fsck_com_rtfm.pm
+++ b/lib/RT/URI/fsck_com_rtfm.pm
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
 #                                          <sales at bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 #
 #
 # CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +45,7 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
 package RT::URI::fsck_com_rtfm;
 
 use strict;

commit 2536fe0755d789e2bbc895c542b32d7c23414041
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 15:00:44 2011 -0400

    Remove factory scripts which will never be used again

diff --git a/tools/factory.mysql b/tools/factory.mysql
deleted file mode 100644
index a0222c0..0000000
--- a/tools/factory.mysql
+++ /dev/null
@@ -1,391 +0,0 @@
-#!/usr/bin/perl
-#$Header: /raid/RT/polysched/sbin/factory,v 1.2 2001/12/07 03:51:09 jesse Exp $
-use DBI;
-
-my $database  = shift;
-my $namespace = shift;
-
-my $CollectionBaseclass = 'RT::FM::SearchBuilder';
-my $RecordBaseclass     = 'RT::FM::Record';
-
-my $driver   = 'mysql';
-my $hostname = 'localhost';
-my $user     = 'root';
-my $password = '';
-
-my $Attribution = "
-# Autogenerated by DBIx::SearchBuilder factory (by <jesse\@bestpractical.com>)
-# WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST.  
-# 
-# !! DO NOT EDIT THIS FILE !!
-#
-";
-
-my $dsn = "DBI:$driver:database=$database;host=$hostname";
-
-my $dbh = DBI->connect( $dsn, $user, $password );
-
-#get all tables out of database
-my @tables = $dbh->tables();
-
- at tables = grep { /^FM_/i } map {s/`(.*)`/$1/; $_} @tables;
-my ( %tablemap, $typemap, %modulemap );
-
-foreach my $table (@tables) {
-    print "We're looking at $table\n";
-
-    $table =~ s/customfield/CustomField/gi;
-    $table =~ s/value/Value/gi;
-    $table =~ s/cfvalue/CFValue/gi;
-    $table =~ s/fm_/FM_/;
-    $table =~ s/_(.)/"_".uc($1)/e;
-
-
-    $tablemap{$table}  = $table;
-    $modulemap{$table} = $table;
-    if ( $table =~ /^FM_(Class)es$/i || $table =~ /^FM_(.*?)(s?)$/i ) {
-        my $item = $1;
-        $item = ucfirst($item);
-        $tablemap{$item}  = $table;
-        $modulemap{$item} = $item;
-        print "Shoving $item into the map as a pointer to $table\n";
-    }
-}
-$tablemap{'CreatedBy'} = 'User';
-$tablemap{'UpdatedBy'} = 'User';
-
-$typemap{'id'}            = 'ro';
-$typemap{'Creator'}       = 'auto';
-$typemap{'Created'}       = 'auto';
-$typemap{'Updated'}       = 'auto';
-$typemap{'UpdatedBy'}     = 'auto';
-$typemap{'LastUpdated'}   = 'auto';
-$typemap{'LastUpdatedBy'} = 'auto';
-
-foreach my $table (@tables) {
-    next if ($table eq 'sessions');
-
-    print "We're looking at $table\n";
-
-
-    my $tablesingle = $table;
-    $tablesingle =~ s/^FM_//gi;
-    $tablesingle = ucfirst($tablesingle);
-    $tablesingle =~ s/customfield/CustomField/gi;
-    $tablesingle =~ s/value/Value/gi;
-    $tablesingle =~ s/cfvalue/CFValue/gi;
-    if ($tablesingle =~ /^Classes$/i) {
-        $tablesingle = "Class";
-    } else {
-        $tablesingle =~ s/s$//;
-    }
-    my $tableplural = $tablesingle . "Collection";
-
-
-
-    my %requirements;
-
-    my $CollectionClassName = $namespace . "::" . $tableplural;
-    my $RecordClassName     = $namespace . "::" . $tablesingle;
-
-    my $path = $namespace;
-    $path =~ s/::/\//g;
-
-    my $RecordClassPath     = $path . "/" . $tablesingle . ".pm";
-    my $CollectionClassPath = $path . "/" . $tableplural . ".pm";
-
-    #create a collection class
-    my $CreateInParams;
-    my $CreateOutParams;
-    my $ClassAccessible = "";
-    my $FieldsPod       = "";
-    my $CreatePod       = "";
-    my %fields;
-    my $sth = $dbh->prepare("DESCRIBE $table");
-    $sth->execute;
-
-    while ( my $row = $sth->fetchrow_hashref() ) {
-        my $field   = $row->{'Field'};
-        my $type    = $row->{'Type'};
-        my $default = $row->{'Default'};
-        $fields{$field} = 1;
-
-        #generate the 'accessible' datastructure
-
-        if ( $typemap{$field} eq 'auto' ) {
-            $ClassAccessible .= "        $field => 
-		{read => 1, auto => 1,";
-        }
-        elsif ( $typemap{$field} eq 'ro' ) {
-            $ClassAccessible .= "        $field =>
-		{read => 1,";
-        }
-        else {
-            $ClassAccessible .= "        $field => 
-		{read => 1, write => 1,";
-
-        }
-
-        $ClassAccessible .= " type => '$type', default => '$default'},\n";
-
-        #generate pod for the accessible fields
-        $FieldsPod .= "
-=item $field
-
-Returns the current value of $field. 
-(In the database, $field is stored as $type.)
-
-";
-
-        unless ( $typemap{$field} eq 'auto' || $typemap{$field} eq 'ro' ) {
-            $FieldsPod .= "
-
-=item Set$field VALUE
-
-
-Set $field to VALUE. 
-Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
-(In the database, $field will be stored as a $type.)
-
-";
-        }
-
-        $FieldsPod .= "
-=cut
-
-";
-
-        print "Checking module map for $field\n";
-
-        if ( $modulemap{$field} ) {
-            print " found it!\n";
-            $FieldsPod .= "
-=item ${field}Obj
-
-Returns the $modulemap{$field} Object which has the id returned by $field
-
-
-=cut
-
-sub ${field}Obj {
-	my \$self = shift;
-	my \$$field =  ${namespace}::$modulemap{$field}->new(\$self->CurrentUser);
-	\$$field->Load(\$self->$field());
-	return(\$$field);
-}
-";
-            $requirements{ $tablemap{$field} } =
-              "use ${namespace}::$modulemap{$field};";
-
-        }
-
-        unless ( $typemap{$field} eq 'auto' || $field eq 'id' ) {
-
-            #generate create statement
-            $CreateInParams .= "                $field => '$default',\n";
-            $CreateOutParams .=
-              "                         $field => \$args{'$field'},\n";
-
-            #gerenate pod for the create statement	
-            $CreatePod .= "  $type '$field'";
-            $CreatePod .= " defaults to '$default'" if ($default);
-            $CreatePod .= ".\n";
-
-        }
-
-    }
-
-    $Create = "
-sub Create {
-    my \$self = shift;
-    my \%args = ( 
-$CreateInParams
-		  \@_);
-    \$self->SUPER::Create(
-$CreateOutParams);
-
-}
-";
-    $CreatePod .= "\n=cut\n\n";
-
-    my $CollectionClass = $Attribution .
-
-      "
-
-=head1 NAME
-
-  $CollectionClassName -- Class Description
- 
-=head1 SYNOPSIS
-
-  use $CollectionClassName
-
-=head1 DESCRIPTION
-
-
-=head1 METHODS
-
-=cut
-
-package $CollectionClassName;
-
-use $CollectionBaseclass;
-use $RecordClassName;
-
-use base qw($CollectionBaseclass);
-
-
-sub _Init {
-    my \$self = shift;
-    \$self->{'table'} = '$table';
-    \$self->{'primary_key'} = 'id';
-
-";
-
-    if ( $fields{'SortOrder'} ) {
-
-        $CollectionClass .= "
-
-  # By default, order by name
-  \$self->OrderBy( ALIAS => 'main',
-                  FIELD => 'SortOrder',
-                  ORDER => 'ASC');
-";
-    }
-    $CollectionClass .= "
-    return ( \$self->SUPER::_Init(\@_) );
-}
-
-
-=item NewItem
-
-Returns an empty new $RecordClassName item
-
-=cut
-
-sub NewItem {
-    my \$self = shift;
-    return($RecordClassName->new(\$self->CurrentUser));
-}
-" . MagicImport($CollectionClassName);
-
-    my $RecordClassHeader = $Attribution . "
-
-=head1 NAME
-
-$RecordClassName
-
-
-=head1 SYNOPSIS
-
-=head1 DESCRIPTION
-
-=head1 METHODS
-
-=cut
-
-package $RecordClassName;
-use $RecordBaseclass; 
-";
-
-    foreach my $key ( keys %requirements ) {
-        $RecordClassHeader .= $requirements{$key} . "\n";
-    }
-    $RecordClassHeader .= "
-
-use base qw( $RecordBaseclass );
-
-sub _Init {
-  my \$self = shift; 
-
-  \$self->Table('$table');
-  \$self->SUPER::_Init(\@_);
-}
-
-";
-
-    my $RecordClass = "
-
-$RecordClassHeader
-
-$RecordInit
-
-=item Create PARAMHASH
-
-Create takes a hash of values and creates a row in the database:
-
-$CreatePod
-
-$Create
-
-$FieldsPod
-
-sub _CoreAccessible {
-    {
-     
-$ClassAccessible
- }
-};
-
-" . MagicImport($RecordClassName);
-
-    print "About to make $RecordClassPath, $CollectionClassPath\n";
-    `mkdir -p $path`;
-
-    open( RECORD, ">$RecordClassPath" );
-    print RECORD $RecordClass;
-    close(RECORD);
-
-    open( COL, ">$CollectionClassPath" );
-    print COL $CollectionClass;
-    close($COL);
-
-}
-
-sub MagicImport {
-    my $class = shift;
-
-    #if (exists \$warnings::{unimport})  {
-    #        no warnings qw(redefine);
-
-    my $content = "
-        eval \"require @{[$class]}_Overlay\";
-        if (\$@ && \$@ !~ /^Can't locate/) {
-            die \$@;
-        };
-
-        eval \"require @{[$class]}_Local\";
-        if (\$@ && \$@ !~ /^Can't locate/) {
-            die \$@;
-        };
-
-
-
-
-=head1 SEE ALSO
-
-This class allows \"overlay\" methods to be placed
-into the following files _Overlay is for a System overlay by the original author,
-while _Local is for site-local customizations.  
-
-These overlay files can contain new subs or subs to replace existing subs in this module.
-
-If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line 
-
-   no warnings qw(redefine);
-
-so that perl does not kick and scream when you redefine a subroutine or variable in your overlay.
-
-@{[$class]}_Overlay, @{[$class]}_Local
-
-=cut
-
-
-1;
-";
-
-    return $content;
-}
-
-# }}}
-
diff --git a/tools/factory.pg b/tools/factory.pg
deleted file mode 100644
index 32b607f..0000000
--- a/tools/factory.pg
+++ /dev/null
@@ -1,397 +0,0 @@
-#!/usr/bin/perl
-#$Header: /raid/RT/polysched/sbin/factory,v 1.2 2001/12/07 03:51:09 jesse Exp $
-use DBI;
-
-use strict;
-
-use vars qw($VERSION);
-
-$VERSION = qw($Revision$) [2];
-
-my $database  = shift;
-my $namespace = shift;
-
-my $CollectionBaseclass = 'RT::PAS::SearchBuilder';
-my $RecordBaseclass     = 'RT::PAS::Record';
-
-my $driver   = 'Pg';
-my $hostname = 'localhost';
-my $user     = 'pas';
-my $password = '';
-
-my $Attribution = "# \$Header\$
-
-# Autogenerated by DBIx::SearchBuilder factory (by <jesse\@bestpractical.com>)
-# WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST.  
-# 
-# !! DO NOT EDIT THIS FILE !!
-#
-";
-
-my $dsn = "DBI:$driver:dbname=$database;host=$hostname";
-
-my $dbh = DBI->connect( $dsn, $user, $password );
-
-#get all tables out of database
-my @tables = $dbh->tables();
-
-my ( %tablemap, %typemap, %modulemap );
-
-foreach my $table (@tables) {
-    next if ( $table eq 'sessions' );
-    $tablemap{$table}  = $table;
-    $modulemap{$table} = $table;
-    if ( $table =~ /^(.*)s$/ ) {
-        $tablemap{$1}  = $table;
-        $modulemap{$1} = $1;
-    }
-}
-$tablemap{'CreatedBy'} = 'User';
-$tablemap{'UpdatedBy'} = 'User';
-
-$typemap{'id'}            = 'ro';
-$typemap{'Creator'}       = 'auto';
-$typemap{'Created'}       = 'auto';
-$typemap{'Updated'}       = 'auto';
-$typemap{'UpdatedBy'}     = 'auto';
-$typemap{'LastUpdated'}   = 'auto';
-$typemap{'LastUpdatedBy'} = 'auto';
-
-foreach my $table (@tables) {
-    next if ( $table eq 'sessions' );
-    my $tablesingle = $table;
-    $tablesingle =~ s/s$//;
-    $tablesingle = join ( '', map( ucfirst, split ( '_', $tablesingle )));
-    
-    print "Now working on $tablesingle\n";
-
-    my %requirements;
-
-    my $CollectionClassName = $namespace . "::" . $tablesingle . "Collection";
-    my $RecordClassName     = $namespace . "::" . $tablesingle;
-
-    my $path = $namespace;
-    $path =~ s/::/\//g;
-
-    my $RecordClassPath     = $path . "/" . $tablesingle . ".pm";
-    my $CollectionClassPath = $path . "/" . $tablesingle . "Collection.pm";
-
-    #create a collection class
-    my $CreateInParams;
-    my $CreateOutParams;
-    my $ClassAccessible = "";
-    my $FieldsPod       = "";
-    my $CreatePod       = "";
-    my ($sth);
-
-    if ( $driver eq 'Pg' ) {
-        $sth = $dbh->prepare(
-"SELECT a.attname, format_type(a.atttypid, a.atttypmod), a.attnotnull, a.atthasdef, a.attnum
-    FROM pg_class c, pg_attribute a WHERE c.relname = '$table' AND a.attnum > 0 AND a.attrelid = c.oid
-    ORDER BY a.attnum" );
-    }
-    elsif ( $driver eq 'mysql' ) {
-        $sth = $dbh->prepare("DESCRIBE $table");
-    }
-
-    $sth->execute;
-    while ( my $row = $sth->fetchrow_hashref() ) {
-
-        my ( $field, $type, $default, $immutable );
-        if ( $driver eq 'Pg' ) {
-
-            $field   = $row->{'attname'};
-            $type    = $row->{'format_type'};
-            $default = $row->{'atthasdef'};
-
-            if ( $default != 0 ) {
-                my $tth = $dbh->prepare(
-"SELECT substring(d.adsrc for 128) FROM pg_attrdef d, pg_class c
-	                        WHERE c.relname = 'acct' AND c.oid = d.adrelid AND d.adnum = "
-                      . $row->{'attnum'} );
-                $tth->execute();
-                my @default = $tth->fetchrow_array;
-                $default = $default[0];
-            }
-
-        }
-        elsif ( $driver eq 'mysql' ) {
-            $field   = $row->{'Field'};
-            $type    = $row->{'Type'};
-            $default = $row->{'Default'};
-
-        }
-
-        #generate the 'accessible' datastructure
-
-        # Some things just should not be mutable.	
-        if (    ( $field eq 'id' )
-             or ( $field eq 'created_by' )
-             or ( $field eq 'created_on' ) ) {
-            $ClassAccessible .= "        $field => {'read' => 1 },\n";
-            $immutable = 1;
-
-        }
-        else {
-            $ClassAccessible .=
-              "        $field => {'read' => 1, 'write' => 1},\n";
-        }
-
-        #generate pod for the accessible fields
-        $FieldsPod .= "
-=item $field
-
-Returns the current value of $field. 
-(In the database, $field is stored as $type.)
-
-";
-
-        unless ($immutable) {
-
-            $FieldsPod .= "
-=item set_$field VALUE
-
-Set $field to VALUE. 
-Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
-(In the database, $field will be stored as a $type.)
-";
-
-        }
-
-        $FieldsPod .= "
-
-=cut
-
-";
-
-        my $fieldref = $field;
-        $fieldref =~ s/_id$//g;
-        if ( $tablemap{$fieldref} ) {
-            $FieldsPod .= "
-=item ${fieldref}Obj
-
-Returns the $tablemap{$fieldref} object which has the id returned by $field
-
-
-=cut
-
-sub ${fieldref}_obj {
-	my \$self = shift;
-	my \$$fieldref = new ${namespace}::$tablemap{$fieldref}(\$self->CurrentUser);
-	\$$fieldref->Load(\$self->$field());
-	return(\$$fieldref);
-}
-";
-
-            $requirements{ $tablemap{$fieldref} } =
-              "use ${namespace}::" . ucfirst( $tablemap{$fieldref} ) . ";";
-
-        }
-
-        unless ( $field =~ /^Created(On|By)$/ ) {
-
-            #generate create statement
-            $CreateInParams .= "                $field => '$default',\n";
-            $CreateOutParams .=
-              "                         $field => \$args{'$field'},\n";
-
-            #gerenate pod for the create statement	
-            $CreatePod .= "	$field			$type ";
-            $CreatePod .= " 	(defaults to '$default')" if ($default);
-            $CreatePod .= ".\n";
-        }
-    }
-
-    my $Create = "
-sub create {
-    my \$self = shift;
-    my \%args = ( 
-$CreateInParams,
-		  \@_);
-    \$self->SUPER::Create(
-$CreateOutParams);
-
-}
-";
-    $CreatePod .= "\n=cut\n\n";
-
-    my $CollectionClass = "# \$Header\$
-# Autogenerated by DBIx::SearchBuilder factory (by <jesse\@fsck.com>)
-
-=head1 NAME
-
-  $CollectionClassName -- Class Description
- 
-=head1 SYNOPSIS
-
-  use $CollectionClassName
-
-=head1 DESCRIPTION
-
-
-=head1 METHODS
-
-=cut
-
-package $CollectionClassName;
-
-use $CollectionBaseclass;
-use $RecordClassName;
-
-\@ISA= qw($CollectionBaseclass);
-
-
-sub _Init {
-    my \$self = shift;
-    \$self->{'table'} = '$table';
-    \$self->{'primary_key'} = 'id';
-
-";
-
-    if ( $tablemap{'SortOrder'} ) {
-
-        $CollectionClass .= "
-
-  # By default, order by name
-  \$self->OrderBy( ALIAS => 'main',
-                  FIELD => 'SortOrder',
-                  ORDER => 'ASC');
-";
-    }
-    $CollectionClass .= "
-    return ( \$self->SUPER::_Init(\@_) );
-}
-
-
-=item NewItem
-
-Returns an empty new $RecordClassName item
-
-=cut
-
-sub NewItem {
-    my \$self = shift;
-    return($RecordClassName->new(\$self->CurrentUser));
-}
-" . MagicImport($CollectionClassName);
-
-    my $RecordClassHeader = $Attribution . "
-
-=head1 NAME
-
-$RecordClassName
-
-
-=head1 SYNOPSIS
-
-=head1 DESCRIPTION
-
-=head1 METHODS
-
-=cut
-
-package $RecordClassName;
-use $RecordBaseclass; 
-";
-
-    foreach my $key ( keys %requirements ) {
-        $RecordClassHeader .= $requirements{$key} . "\n";
-    }
-    $RecordClassHeader .= "
-
-use vars qw( \@ISA );
-\@ISA= qw( $RecordBaseclass );
-
-sub _Init {
-  my \$self = shift; 
-
-  \$self->Table('$table');
-  \$self->SUPER::_Init(\@_);
-}
-
-";
-
-    my $RecordClass = "
-
-$RecordClassHeader
-
-
-=item Create PARAMHASH
-
-Create takes a hash of values and creates a row in the database:
-
-$CreatePod
-
-$Create
-
-$FieldsPod
-
-sub _ClassAccessible {
-    {
-     
-$ClassAccessible
- }
-};
-
-" . MagicImport($RecordClassName);
-
-    print "About to make $RecordClassPath, $CollectionClassPath\n";
-    `mkdir -p $path`;
-
-    open( RECORD, ">$RecordClassPath" );
-    print RECORD $RecordClass;
-    close(RECORD);
-
-    open( COL, ">$CollectionClassPath" );
-    print COL $CollectionClass;
-    close(COL);
-
-}
-
-sub MagicImport {
-    my $class = shift;
-
-    #if (exists \$warnings::{unimport})  {
-    #        no warnings qw(redefine);
-
-    my $content = "
-        eval \"require @{[$class]}_Overlay\";
-        if (\$@ && \$@ !~ /^Can't locate/) {
-            die \$@;
-        };
-
-        eval \"require @{[$class]}_Local\";
-        if (\$@ && \$@ !~ /^Can't locate/) {
-            die \$@;
-        };
-
-
-
-
-=head1 SEE ALSO
-
-This class allows \"overlay\" methods to be placed
-into the following files _Overlay is for a System overlay by the original author,
-while _Local is for site-local customizations.  
-
-These overlay files can contain new subs or subs to replace existing subs in this module.
-
-If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line 
-
-   no warnings qw(redefine);
-
-so that perl does not kick and scream when you redefine a subroutine or variable in your overlay.
-
-@{[$class]}_Overlay, @{[$class]}_Local
-
-=cut
-
-
-1;
-";
-
-    return $content;
-}
-
-# }}}
-

commit ee3bb76dff9045dfbce782ac5db57f6b84c58cf1
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 15:06:00 2011 -0400

    Use the block form of map

diff --git a/etc/upgrade/upgrade-mysql-schema.pl b/etc/upgrade/upgrade-mysql-schema.pl
index 9996e59..3eec662 100755
--- a/etc/upgrade/upgrade-mysql-schema.pl
+++ b/etc/upgrade/upgrade-mysql-schema.pl
@@ -133,7 +133,7 @@ my $version = ($dbh->selectrow_array("show variables like 'version'"))[1];
 #push @sql_commands, qq{ALTER DATABASE $db_name DEFAULT CHARACTER SET utf8};
 convert_table($_) foreach @tables;
 
-print join "\n", map(/;$/? $_ : "$_;", @sql_commands), "";
+print join "\n", ( map { /;$/? $_ : "$_;" } @sql_commands ), "";
 exit 0;
 
 my %alter_aggregator;

commit e0da4f73828890c9bcb3bb030f96ff673059cbe2
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 15:06:16 2011 -0400

    Remove an unnecessary exit

diff --git a/etc/upgrade/upgrade-mysql-schema.pl b/etc/upgrade/upgrade-mysql-schema.pl
index 3eec662..ad7aff3 100755
--- a/etc/upgrade/upgrade-mysql-schema.pl
+++ b/etc/upgrade/upgrade-mysql-schema.pl
@@ -134,7 +134,6 @@ my $version = ($dbh->selectrow_array("show variables like 'version'"))[1];
 convert_table($_) foreach @tables;
 
 print join "\n", ( map { /;$/? $_ : "$_;" } @sql_commands ), "";
-exit 0;
 
 my %alter_aggregator;
 sub convert_table {

commit 7bef464bee2c5c2f1e9d1bb56721a37651f0abe1
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 15:06:27 2011 -0400

    Ensure return values on all subs

diff --git a/etc/upgrade/upgrade-mysql-schema.pl b/etc/upgrade/upgrade-mysql-schema.pl
index ad7aff3..2bca16d 100755
--- a/etc/upgrade/upgrade-mysql-schema.pl
+++ b/etc/upgrade/upgrade-mysql-schema.pl
@@ -150,6 +150,7 @@ sub convert_table {
         push @sql_commands, qq{ALTER TABLE $table\n   }.
             join(",\n   ",@{$alter_aggregator{$conversiontype}});
     }
+    return 1;
 }
 
 sub convert_column {
@@ -172,12 +173,11 @@ sub convert_column {
     return if $required_charset eq $current_charset;
 
     if ( $required_charset eq 'binary' ) {
-        char_to_binary(%info);
-    }
-    elsif ( $current_charset eq 'binary' ) {
-        binary_to_char( $required_charset, %info);
+        return char_to_binary(%info);
+    } elsif ( $current_charset eq 'binary' ) {
+        return binary_to_char( $required_charset, %info);
     } else {
-        char_to_char( $required_charset, %info);
+        return char_to_char( $required_charset, %info);
     }
 }
 
@@ -189,7 +189,7 @@ sub char_to_binary {
     my $new_type = calc_suitable_binary_type(%info);
     push @{$alter_aggregator{char_to_binary}},
         "MODIFY $column $new_type ".build_column_definition(%info);
-
+    return 1;
 }
 
 sub binary_to_char {
@@ -208,6 +208,7 @@ sub binary_to_char {
     push @{$alter_aggregator{binary_to_char}},
         "MODIFY $column ". uc($new_type) ." CHARACTER SET ". $charset
         ." ". build_column_definition(%info);
+    return 1;
 }
 
 sub char_to_char {
@@ -221,6 +222,7 @@ sub char_to_char {
     push @{$alter_aggregator{binary_to_char}},
         "MODIFY $column ". uc($new_type)." CHARACTER SET ". $charset
         ." ". build_column_definition(%info);
+    return 1;
 }
 
 sub calc_suitable_binary_type {

commit eb8f1fa5b5ced48ae15e9429767604d892b81c51
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 15:07:55 2011 -0400

    Move strict and warnings inclusion to the top

diff --git a/etc/upgrade/migrate-2.0-to-2.1 b/etc/upgrade/migrate-2.0-to-2.1
index 859fbd2..e572666 100644
--- a/etc/upgrade/migrate-2.0-to-2.1
+++ b/etc/upgrade/migrate-2.0-to-2.1
@@ -46,14 +46,16 @@
 # those contributions and any derivatives thereof.
 #
 # END BPS TAGGED BLOCK }}}
+
+use strict;
+use warnings;
+
 use RT;
 RT::LoadConfig;
 RT::Init;
 use RT::FM::CustomFieldCollection;
 use Data::Dumper;
 
-use strict;
-use warnings;
 
 my $cf_data;
 my @aces_to_delete;

commit 43fdccd74bedaa928b5f1a02cfaeb11668588cef
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 15:09:48 2011 -0400

    Include warnings in the RTFM config

diff --git a/etc/RTFM_Config.pm b/etc/RTFM_Config.pm
index 3b407e7..2462776 100644
--- a/etc/RTFM_Config.pm
+++ b/etc/RTFM_Config.pm
@@ -1,3 +1,4 @@
+use warnings;
 # This module is intended to be used to set RTFM options.
 # It is loaded after RT_Config.pm
 #

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


More information about the Rt-commit mailing list