[Rt-commit] rt branch, 3.8/perlcritic, updated. rt-3.8.10-217-gd50b915

Alex Vandiver alexmv at bestpractical.com
Tue Aug 30 19:55:22 EDT 2011


The branch, 3.8/perlcritic has been updated
       via  d50b9156360fecf2ede8314fde193a2064a45f14 (commit)
       via  f8853efd54c2e836758afe6771b57d915875d234 (commit)
      from  0f76b06e135e8a634e50854ede7ea6ff8f6451cb (commit)

Summary of changes:
 lib/RT/Crypt/GnuPG.pm                              |   16 +++----------
 lib/RT/Crypt/GnuPG/CRLFHandle.pm                   |   22 ++++++++++++++++++++
 lib/RT/Shredder.pm                                 |    2 +-
 lib/RT/Shredder/ACE.pm                             |    1 -
 lib/RT/Shredder/Attachment.pm                      |    1 -
 lib/RT/Shredder/CachedGroupMember.pm               |    1 -
 lib/RT/Shredder/CustomField.pm                     |    1 -
 lib/RT/Shredder/CustomFieldValue.pm                |    1 -
 lib/RT/Shredder/Dependencies.pm                    |    2 +-
 lib/RT/Shredder/Dependency.pm                      |    1 -
 .../Web/QueryBuilder.pm => Shredder/Exception.pm}  |   12 +++++++++-
 .../Shredder/{Exceptions.pm => Exception/Info.pm}  |   14 +-----------
 lib/RT/Shredder/Group.pm                           |    2 +-
 lib/RT/Shredder/GroupMember.pm                     |    2 +-
 lib/RT/Shredder/Link.pm                            |    2 +-
 lib/RT/Shredder/ObjectCustomFieldValue.pm          |    1 -
 lib/RT/Shredder/Principal.pm                       |    1 -
 lib/RT/Shredder/Queue.pm                           |    1 -
 lib/RT/Shredder/Record.pm                          |    2 +-
 lib/RT/Shredder/Scrip.pm                           |    1 -
 lib/RT/Shredder/ScripAction.pm                     |    1 -
 lib/RT/Shredder/ScripCondition.pm                  |    1 -
 lib/RT/Shredder/Template.pm                        |    1 -
 lib/RT/Shredder/Ticket.pm                          |    1 -
 lib/RT/Shredder/Transaction.pm                     |    1 -
 lib/RT/Shredder/User.pm                            |    2 +-
 sbin/rt-shredder.in                                |    2 +-
 share/html/Admin/Tools/Shredder/index.html         |    2 +-
 28 files changed, 46 insertions(+), 51 deletions(-)
 create mode 100644 lib/RT/Crypt/GnuPG/CRLFHandle.pm
 copy lib/RT/{Interface/Web/QueryBuilder.pm => Shredder/Exception.pm} (91%)
 mode change 100755 => 100644
 rename lib/RT/Shredder/{Exceptions.pm => Exception/Info.pm} (94%)

- Log -----------------------------------------------------------------
commit f8853efd54c2e836758afe6771b57d915875d234
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 17:29:15 2011 -0400

    Break out the packages originally in lib/RT/Shredder/Exceptions.pm into their own files

diff --git a/lib/RT/Shredder.pm b/lib/RT/Shredder.pm
index 0a0873f..43ffda6 100644
--- a/lib/RT/Shredder.pm
+++ b/lib/RT/Shredder.pm
@@ -205,7 +205,7 @@ BEGIN {
 ### after:     push @INC, qw(@RT_LIB_PATH@);
     push @INC, qw(/opt/rt3/local/lib /opt/rt3/lib);
     use RT::Shredder::Constants;
-    use RT::Shredder::Exceptions;
+    use RT::Shredder::Exception::Info;
 
     require RT;
 
diff --git a/lib/RT/Shredder/ACE.pm b/lib/RT/Shredder/ACE.pm
index 0d8f47c..8bcc962 100644
--- a/lib/RT/Shredder/ACE.pm
+++ b/lib/RT/Shredder/ACE.pm
@@ -53,7 +53,6 @@ use warnings FATAL => 'redefine';
 
 use RT::ACE ();
 
-use RT::Shredder::Exceptions;
 use RT::Shredder::Constants;
 use RT::Shredder::Dependencies;
 
diff --git a/lib/RT/Shredder/Attachment.pm b/lib/RT/Shredder/Attachment.pm
index 27e3708..dc04f80 100644
--- a/lib/RT/Shredder/Attachment.pm
+++ b/lib/RT/Shredder/Attachment.pm
@@ -53,7 +53,6 @@ use warnings FATAL => 'redefine';
 
 use RT::Attachment ();
 
-use RT::Shredder::Exceptions;
 use RT::Shredder::Constants;
 use RT::Shredder::Dependencies;
 
diff --git a/lib/RT/Shredder/CachedGroupMember.pm b/lib/RT/Shredder/CachedGroupMember.pm
index 39b690b..14b5fd2 100644
--- a/lib/RT/Shredder/CachedGroupMember.pm
+++ b/lib/RT/Shredder/CachedGroupMember.pm
@@ -54,7 +54,6 @@ use warnings FATAL => 'redefine';
 use RT::CachedGroupMember ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
 use RT::Shredder::Dependency;
 
 
diff --git a/lib/RT/Shredder/CustomField.pm b/lib/RT/Shredder/CustomField.pm
index 6464283..451a68b 100644
--- a/lib/RT/Shredder/CustomField.pm
+++ b/lib/RT/Shredder/CustomField.pm
@@ -54,7 +54,6 @@ use warnings FATAL => 'redefine';
 use RT::CustomField ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
 use RT::Shredder::Dependencies;
 
 #TODO: Queues if we wish export tool
diff --git a/lib/RT/Shredder/CustomFieldValue.pm b/lib/RT/Shredder/CustomFieldValue.pm
index 270cb12..e3e8854 100644
--- a/lib/RT/Shredder/CustomFieldValue.pm
+++ b/lib/RT/Shredder/CustomFieldValue.pm
@@ -54,7 +54,6 @@ use warnings FATAL => 'redefine';
 use RT::CustomFieldValue ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
 use RT::Shredder::Dependencies;
 
 # No dependencies that should be deleted with record
diff --git a/lib/RT/Shredder/Dependencies.pm b/lib/RT/Shredder/Dependencies.pm
index d12830f..8cdce48 100644
--- a/lib/RT/Shredder/Dependencies.pm
+++ b/lib/RT/Shredder/Dependencies.pm
@@ -50,7 +50,7 @@ package RT::Shredder::Dependencies;
 use strict;
 use warnings;
 
-use RT::Shredder::Exceptions;
+use RT::Shredder::Exception::Info;
 use RT::Shredder::Constants;
 use RT::Shredder::Dependency;
 use RT::Record;
diff --git a/lib/RT/Shredder/Dependency.pm b/lib/RT/Shredder/Dependency.pm
index 0e109a3..3cb103d 100644
--- a/lib/RT/Shredder/Dependency.pm
+++ b/lib/RT/Shredder/Dependency.pm
@@ -51,7 +51,6 @@ use strict;
 use warnings;
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
 
 my %FlagDescs = (
     DEPENDS_ON, 'depends on',
diff --git a/lib/RT/Shredder/ScripAction.pm b/lib/RT/Shredder/Exception.pm
similarity index 66%
copy from lib/RT/Shredder/ScripAction.pm
copy to lib/RT/Shredder/Exception.pm
index 54b379a..c71c074 100644
--- a/lib/RT/Shredder/ScripAction.pm
+++ b/lib/RT/Shredder/Exception.pm
@@ -46,55 +46,18 @@
 #
 # END BPS TAGGED BLOCK }}}
 
-package RT::ScripAction;
+package RT::Shredder::Exception;
 use strict;
 use warnings;
-use warnings FATAL => 'redefine';
 
-use RT::ScripAction ();
+use Exception::Class;
+use base qw(Exception::Class::Base);
 
-use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
-use RT::Shredder::Dependencies;
-
-sub __DependsOn
-{
-    my $self = shift;
-    my %args = (
-            Shredder => undef,
-            Dependencies => undef,
-            @_,
-           );
-    my $deps = $args{'Dependencies'};
-    my $list = [];
-
-# Scrips
-    my $objs = RT::Scrips->new( $self->CurrentUser );
-    $objs->Limit( FIELD => 'ScripAction', VALUE => $self->Id );
-    $deps->_PushDependencies(
-            BaseObject => $self,
-            Flags => DEPENDS_ON,
-            TargetObjects => $objs,
-            Shredder => $args{'Shredder'}
-        );
-
-    return $self->SUPER::__DependsOn( %args );
+BEGIN {
+    __PACKAGE__->NoRefs(0);
 }
 
-sub __Relates
-{
-    my $self = shift;
-    my %args = (
-            Shredder => undef,
-            Dependencies => undef,
-            @_,
-           );
-    my $deps = $args{'Dependencies'};
-    my $list = [];
-
-# TODO: Check here for exec module
-
-    return $self->SUPER::__Relates( %args );
-}
+#sub NoRefs { return 0 }
+sub show_trace { return 1 }
 
 1;
diff --git a/lib/RT/Shredder/Exceptions.pm b/lib/RT/Shredder/Exception/Info.pm
similarity index 94%
rename from lib/RT/Shredder/Exceptions.pm
rename to lib/RT/Shredder/Exception/Info.pm
index 1db12d5..e55a6c1 100644
--- a/lib/RT/Shredder/Exceptions.pm
+++ b/lib/RT/Shredder/Exception/Info.pm
@@ -46,22 +46,10 @@
 #
 # END BPS TAGGED BLOCK }}}
 
-package RT::Shredder::Exception;
+package RT::Shredder::Exception::Info;
 use strict;
 use warnings;
 
-use Exception::Class;
-use base qw(Exception::Class::Base);
-
-BEGIN {
-    __PACKAGE__->NoRefs(0);
-}
-
-#sub NoRefs { return 0 }
-sub show_trace { return 1 }
-
-package RT::Shredder::Exception::Info;
-
 use base qw(RT::Shredder::Exception);
 
 my %DESCRIPTION = (
diff --git a/lib/RT/Shredder/Group.pm b/lib/RT/Shredder/Group.pm
index f9d0430..793d3c4 100644
--- a/lib/RT/Shredder/Group.pm
+++ b/lib/RT/Shredder/Group.pm
@@ -54,7 +54,7 @@ use warnings FATAL => 'redefine';
 use RT::Group ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
+use RT::Shredder::Exception::Info;
 use RT::Shredder::Dependencies;
 
 
diff --git a/lib/RT/Shredder/GroupMember.pm b/lib/RT/Shredder/GroupMember.pm
index 02ee2bb..b76ad96 100644
--- a/lib/RT/Shredder/GroupMember.pm
+++ b/lib/RT/Shredder/GroupMember.pm
@@ -54,7 +54,7 @@ use warnings FATAL => 'redefine';
 use RT::GroupMember ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
+use RT::Shredder::Exception;
 use RT::Shredder::Dependencies;
 
 # No dependencies that should be deleted with record
diff --git a/lib/RT/Shredder/Link.pm b/lib/RT/Shredder/Link.pm
index 0f95f68..542e543 100644
--- a/lib/RT/Shredder/Link.pm
+++ b/lib/RT/Shredder/Link.pm
@@ -53,7 +53,7 @@ use warnings FATAL => 'redefine';
 
 use RT::Link ();
 
-use RT::Shredder::Exceptions;
+use RT::Shredder::Exception;
 use RT::Shredder::Dependencies;
 use RT::Shredder::Constants;
 
diff --git a/lib/RT/Shredder/ObjectCustomFieldValue.pm b/lib/RT/Shredder/ObjectCustomFieldValue.pm
index c0ecd00..4c1d9c4 100644
--- a/lib/RT/Shredder/ObjectCustomFieldValue.pm
+++ b/lib/RT/Shredder/ObjectCustomFieldValue.pm
@@ -54,7 +54,6 @@ use warnings FATAL => 'redefine';
 use RT::ObjectCustomFieldValue ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
 use RT::Shredder::Dependencies;
 
 sub __DependsOn
diff --git a/lib/RT/Shredder/Principal.pm b/lib/RT/Shredder/Principal.pm
index 0c94da0..a1c2f83 100644
--- a/lib/RT/Shredder/Principal.pm
+++ b/lib/RT/Shredder/Principal.pm
@@ -53,7 +53,6 @@ use warnings FATAL => 'redefine';
 
 use RT::Principal ();
 
-use RT::Shredder::Exceptions;
 use RT::Shredder::Constants;
 use RT::Shredder::Dependencies;
 
diff --git a/lib/RT/Shredder/Queue.pm b/lib/RT/Shredder/Queue.pm
index 554086d..3e8491c 100644
--- a/lib/RT/Shredder/Queue.pm
+++ b/lib/RT/Shredder/Queue.pm
@@ -54,7 +54,6 @@ use warnings FATAL => 'redefine';
 use RT::Queue ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
 use RT::Shredder::Dependencies;
 
 sub __DependsOn
diff --git a/lib/RT/Shredder/Record.pm b/lib/RT/Shredder/Record.pm
index 8a62f35..ac019fb 100644
--- a/lib/RT/Shredder/Record.pm
+++ b/lib/RT/Shredder/Record.pm
@@ -54,7 +54,7 @@ use warnings FATAL => 'redefine';
 use RT::Record ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
+use RT::Shredder::Exception;
 
 =head2 _AsString
 
diff --git a/lib/RT/Shredder/Scrip.pm b/lib/RT/Shredder/Scrip.pm
index 70f908e..f10b1ae 100644
--- a/lib/RT/Shredder/Scrip.pm
+++ b/lib/RT/Shredder/Scrip.pm
@@ -54,7 +54,6 @@ use warnings FATAL => 'redefine';
 use RT::Scrip ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
 use RT::Shredder::Dependencies;
 
 sub __DependsOn
diff --git a/lib/RT/Shredder/ScripAction.pm b/lib/RT/Shredder/ScripAction.pm
index 54b379a..ad3816d 100644
--- a/lib/RT/Shredder/ScripAction.pm
+++ b/lib/RT/Shredder/ScripAction.pm
@@ -54,7 +54,6 @@ use warnings FATAL => 'redefine';
 use RT::ScripAction ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
 use RT::Shredder::Dependencies;
 
 sub __DependsOn
diff --git a/lib/RT/Shredder/ScripCondition.pm b/lib/RT/Shredder/ScripCondition.pm
index 0076462..e5cac1a 100644
--- a/lib/RT/Shredder/ScripCondition.pm
+++ b/lib/RT/Shredder/ScripCondition.pm
@@ -54,7 +54,6 @@ use warnings FATAL => 'redefine';
 use RT::ScripCondition ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
 use RT::Shredder::Dependencies;
 
 sub __DependsOn
diff --git a/lib/RT/Shredder/Template.pm b/lib/RT/Shredder/Template.pm
index 6216c51..ed63668 100644
--- a/lib/RT/Shredder/Template.pm
+++ b/lib/RT/Shredder/Template.pm
@@ -54,7 +54,6 @@ use warnings FATAL => 'redefine';
 use RT::Template ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
 use RT::Shredder::Dependencies;
 
 
diff --git a/lib/RT/Shredder/Ticket.pm b/lib/RT/Shredder/Ticket.pm
index cb81f74..9261d5b 100644
--- a/lib/RT/Shredder/Ticket.pm
+++ b/lib/RT/Shredder/Ticket.pm
@@ -54,7 +54,6 @@ use warnings FATAL => 'redefine';
 use RT::Ticket ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
 use RT::Shredder::Dependencies;
 
 sub __DependsOn
diff --git a/lib/RT/Shredder/Transaction.pm b/lib/RT/Shredder/Transaction.pm
index 6466e76..93e4cc5 100644
--- a/lib/RT/Shredder/Transaction.pm
+++ b/lib/RT/Shredder/Transaction.pm
@@ -54,7 +54,6 @@ use warnings FATAL => 'redefine';
 use RT::Transaction ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
 use RT::Shredder::Dependencies;
 
 sub __DependsOn
diff --git a/lib/RT/Shredder/User.pm b/lib/RT/Shredder/User.pm
index 2f5957e..4d8cf22 100644
--- a/lib/RT/Shredder/User.pm
+++ b/lib/RT/Shredder/User.pm
@@ -54,7 +54,7 @@ use warnings FATAL => 'redefine';
 use RT::User ();
 
 use RT::Shredder::Constants;
-use RT::Shredder::Exceptions;
+use RT::Shredder::Exception::Info;
 use RT::Shredder::Dependencies;
 
 my @OBJECTS = qw(
diff --git a/sbin/rt-shredder.in b/sbin/rt-shredder.in
index 685a439..63dc932 100755
--- a/sbin/rt-shredder.in
+++ b/sbin/rt-shredder.in
@@ -172,7 +172,7 @@ prompt_delete_objs( \@objs ) unless $opt{'force'};
 $shredder->PutObjects( Objects => $_ ) foreach @objs;
 eval { $shredder->WipeoutAll };
 if( $@ ) {
-    require RT::Shredder::Exceptions;
+    require RT::Shredder::Exception::Info;
     if( my $e = RT::Shredder::Exception::Info->caught ) {
         print "\nERROR: $e\n\n";
         exit 1;
diff --git a/share/html/Admin/Tools/Shredder/index.html b/share/html/Admin/Tools/Shredder/index.html
index acb956d..b330a36 100644
--- a/share/html/Admin/Tools/Shredder/index.html
+++ b/share/html/Admin/Tools/Shredder/index.html
@@ -81,7 +81,7 @@ my ($plugin_obj, @objs);
 
 my $catch_non_fatals = sub {
     my $error = $@;
-    require RT::Shredder::Exceptions;
+    require RT::Shredder::Exception::Info;
     if ( my $e = RT::Shredder::Exception::Info->caught ) {
         push @{ $messages{Errors} }, "$e";
         $Search = ''; @objs = ();

commit d50b9156360fecf2ede8314fde193a2064a45f14
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Aug 30 19:49:43 2011 -0400

    Split IO::Handle::CRLF into its own file in RT::Crypt::GnuPG::CRLFHandle
    
    In doing so, also document the reasons it is necessary.

diff --git a/lib/RT/Crypt/GnuPG.pm b/lib/RT/Crypt/GnuPG.pm
index b04dc43..1072366 100644
--- a/lib/RT/Crypt/GnuPG.pm
+++ b/lib/RT/Crypt/GnuPG.pm
@@ -51,6 +51,7 @@ use strict;
 use warnings;
 
 use IO::Handle;
+use RT::Crypt::GnuPG::CRLFHandle;
 use GnuPG::Interface;
 use RT::EmailParser ();
 use RT::Util 'safe_run_child';
@@ -571,10 +572,12 @@ sub SignEncryptRFC3156 {
         $entity->make_multipart( 'mixed', Force => 1 );
 
         my @signature;
+        # We use RT::Crypt::GnuPG::CRLFHandle to canonicalize the
+        # MIME::Entity output to use \r\n instead of \n for its newlines
         %res = CallGnuPG(
             Signer     => $args{'Signer'},
             Command    => "detach_sign",
-            Handles    => { stdin => IO::Handle::CRLF->new },
+            Handles    => { stdin => RT::Crypt::GnuPG::CRLFHandle->new },
             Direct     => [],
             Passphrase => $args{'Passphrase'},
             Content    => $entity->parts(0),
@@ -2090,15 +2093,4 @@ sub _make_gpg_handles {
 
 RT::Base->_ImportOverlays();
 
-# helper package to avoid using temp file
-package IO::Handle::CRLF;
-
-use base qw(IO::Handle);
-
-sub print {
-    my ($self, @args) = (@_);
-    s/\r*\n/\x0D\x0A/g foreach @args;
-    return $self->SUPER::print( @args );
-}
-
 1;
diff --git a/lib/RT/Crypt/GnuPG/CRLFHandle.pm b/lib/RT/Crypt/GnuPG/CRLFHandle.pm
new file mode 100644
index 0000000..5f74457
--- /dev/null
+++ b/lib/RT/Crypt/GnuPG/CRLFHandle.pm
@@ -0,0 +1,22 @@
+package RT::Crypt::GnuPG::CRLFHandle;
+use strict;
+use warnings;
+
+use base qw(IO::Handle);
+
+# https://metacpan.org/module/MIME::Tools#Fuzzing-of-CRLF-and-newline-when-encoding-composing
+# means that the output of $entity->print contains lines terminated by
+# "\n"; however, signatures are generated off of the "correct" form of
+# the MIME entity, which uses "\r\n" as the newline separator.  This
+# class, used only when generating signatures, transparently munges "\n"
+# newlines into "\r\n" newlines such that the generated signature is
+# correct for the "\r\n"-newline version of the MIME entity which will
+# eventually be sent over the wire.
+
+sub print {
+    my ($self, @args) = (@_);
+    s/\r*\n/\x0D\x0A/g foreach @args;
+    return $self->SUPER::print( @args );
+}
+
+1;

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


More information about the Rt-commit mailing list