[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Fixing the Catalyst development environment in Wheezy



Hi release team!

the Catalyst development environment is seriously broken and currently
in Debian current testing/sid (to get and idea, see #683656, #680819,
#680829, #680826, #665222).

We, Debian Perl Group, would like to fix that, and we have been
working on it during DebCamp and DebConf accordingly. Sorry for the
delay since then.

Scope: three currently buggy packages are directly under the radar as
far as freeze block/unblock decisions are concerned
(libcatalystx-simplelogin-perl, libcatalyst-actionrole-acl-perl and
libcatalyst-perl), and a few others are directly concerned due to
being broken by the versions of libcatalyst-perl currently in testing
and unstable.

Here's a summary of the current state of affairs. A greater part of
the whole story can be found in two[0] threads[1].

 [0] https://lists.debian.org/debian-perl/2012/07/msg00098.html
 [1] https://lists.debian.org/debian-perl/2012/07/msg00099.html

Currently:

  * testing has libcatalyst-perl 5.90012-1

    Bugs introduced a bit before this version break two major
    components of a proper Catalyst development environment; namely:
    libtest-www-mechanize-catalyst-perl and
    Catalyst-Plugin-Session-State-Cookie (shipped in the
    libcatalyst-modules-perl package).

  * unstable has libcatalyst-perl 5.90014-1

    That one was uploaded before the freeze,
    and was thus granted an automatic freeze exception,
    but could not migrate all by itself because it made
    libcatalyst-controller-actionrole-perl uninstallable,
    due to an erroneous harmful Conflicts/Provides/Replaces added by
    mistake in 5.90014-1 (see #683656) -- sorry about that :(

    That version:
    - attempts to fix the few other previously broken modules, but fails
    - breaks libcatalystx-simplelogin-perl and
      libcatalyst-actionrole-acl-perl in ways that can be trivially
      patched; upstream did that, at our request, and promptly
      released fixed tarballs -- not uploaded to unstable yet,
      as we wanted to check with you first, see below.
    - breaks at least two more modules (Catalyst-Plugin-StackTrace
      and libcatalyst-plugin-unicode-encoding-perl)
      in a way that can only be fixed in libcatalyst-perl
  
  * we have libcatalyst-perl 5.90015-1 mostly ready in Git

    That version:
    - is a bugfix-only release prepared by upstream, at our request,
      to fix bugs we forwarded
    - fixes libtest-www-mechanize-catalyst-perl (Closes: #681422)
    - fixes Catalyst-Plugin-StackTrace (Closes: #681423)
    - fixes Catalyst-Plugin-Session-State-Cookie (Closes: #681425)
    - fixes libcatalyst-plugin-unicode-encoding-perl (Closes: #680816)
    - breaks libcatalystx-simplelogin-perl and
      libcatalyst-actionrole-acl-perl (quickly discussed above,
      details at the bottom)
    - does not appear to break anything else: we've rebuilt all its
      {build,} reverse dependencies to be on the safe side -- note
      that most bugs reported against parts of the Catalyst
      development environment are incompatibilities detected at the
      FTBFS level thanks to Lucas' archive rebuilds, so we are quite
      confident our rebuild attempts have detected most, if not all,
      new bugs

So, what we want to get into Wheezy is:

    - update libcatalyst-perl to 5.90015 (attached: preliminary
      debdiff's from 5.90012-1 to 5.90015-1)
    - update libcatalystx-simplelogin-perl to 0.17 (compatibility
      bugfix -only release)
    - update libcatalyst-actionrole-acl-perl to 0.07 (compatibility
      bugfix -only release)

I am also attaching trimmed down debdiffs, i.e. ones that show only
the code changes without boilerplate noise.

What we now need from the Release Team is an opinion and an OK to go
ahead and stage the updates in unstable. What do you think?

Cheers,
-- 
  intrigeri
  | GnuPG key @ https://gaffer.ptitcanardnoir.org/intrigeri/intrigeri.asc
  | OTR fingerprint @ https://gaffer.ptitcanardnoir.org/intrigeri/otr.asc

diff -Nru libcatalyst-perl-5.90012/Changes libcatalyst-perl-5.90015/Changes
--- libcatalyst-perl-5.90012/Changes	2012-05-16 10:59:55.000000000 +0200
+++ libcatalyst-perl-5.90015/Changes	2012-06-30 19:53:37.000000000 +0200
@@ -1,5 +1,42 @@
 # This file documents the revision history for Perl extension Catalyst.
 
+5.90015 - 2012-06-30 16:57:00
+  - Fix $c->finalize_headers getting called twice. RT#78090
+  - Fix test fails in Catalyst-Plugin-Session-State-Cookie. RT#76179
+  - Fix test fails in Catalyst-Plugin-StackTrace
+  - Fix test fails in Test-WWW-Mechanize-Catalyst
+
+5.90014 - 2012-06-26 10:00:00
+
+  - Fix calling finalize_headers before writing body when using $c->write /
+    $c->res->write (fixes RT#76179).
+
+5.90013 - 2012-06-21 10:40:00
+
+  - Release previous TRIAL as stable.
+  - We failed to note in the previous changelog that the Makefile.PL has been
+    improved to make it easier for authors to bootstrap a developer install
+    of Catalyst.
+
+5.90013 - TRIAL 2012-06-07 20:21:00
+
+ New features:
+  - Merge Catalyst::Controller::ActionRole into Catalyst::Controller.
+
+ Bug fixes:
+  - Fix warnings in some matching cases for Action methods with
+    Args(), when using Catalyst::DispatchType::Chained
+
+  - Fix request body parameters to not be undef if no parameters
+    are supplied.
+
+  - Fix action_args config so that it can be specified in the
+    top level config.
+
+  - Fix t/author/http-server.t on Win32
+
+  - Fix use of Test::Aggregate to make tests faster.
+
 5.90012 - 2012-05-16 09:59:00
 
  Distribution META.yml changes:
@@ -19,7 +56,7 @@
     for backward compatibility. This fixes issues with behaviour changes
     in bleadperl. RT#76437
 
-  - Work around Moose bug RT#7536 which breaks
+  - Work around Moose bug RT#75367 which breaks
     Catalyst::Controller::DBIC::API.
 
  Documentation:
diff -Nru libcatalyst-perl-5.90012/debian/changelog libcatalyst-perl-5.90015/debian/changelog
--- libcatalyst-perl-5.90012/debian/changelog	2012-06-03 12:12:44.000000000 +0200
+++ libcatalyst-perl-5.90015/debian/changelog	2012-08-03 00:44:43.000000000 +0200
@@ -1,3 +1,49 @@
+libcatalyst-perl (5.90015-1) unstable; urgency=low
+
+  * Team upload.
+
+  [ Jotam Jr. Trejo ]
+  * Imported Upstream version 5.90015
+    - fixes the FTBFS in libtest-www-mechanize-catalyst-perl (Closes: #681422)
+    - fixes Catalyst-Plugin-StackTrace (Closes: #681423)
+    - fixes Catalyst-Plugin-Session-State-Cookie (Closes: #681425)
+  * Added myself to Uploaders and Copyright
+
+  [ intrigeri ]
+  * Drop erroneous and harmful Conflicts/Provides/Replaces
+    on libcatalyst-controller-actionrole-perl.
+    Closes: #683656
+  * Add Breaks on libcatalystx-simplelogin-perl (<< 0.17) and
+    libcatalyst-actionrole-acl-perl (<< 0.07).
+
+ -- intrigeri <intrigeri@debian.org>  Tue, 17 Jul 2012 19:10:37 -0500
+
+libcatalyst-perl (5.90014-1) unstable; urgency=low
+
+  * Team upload.
+  * Imported Upstream version 5.90014
+
+ -- intrigeri <intrigeri@debian.org>  Thu, 28 Jun 2012 00:58:24 +0200
+
+libcatalyst-perl (5.90013-2) unstable; urgency=low
+
+  * Team upload.
+
+  [ gregor herrmann ]
+  * Acknowledge the new upstream release merges
+    Catalyst::Controller::ActionRole into Catalyst::Controller:
+    add Conflicts/Replaces/Provides on
+    libcatalyst-controller-actionrole-perl to get rid of the package.
+
+ -- intrigeri <intrigeri@debian.org>  Tue, 26 Jun 2012 05:55:11 +0200
+
+libcatalyst-perl (5.90013-1) unstable; urgency=low
+
+  * Team upload.
+  * Imported Upstream version 5.90013
+
+ -- intrigeri <intrigeri@debian.org>  Sat, 23 Jun 2012 21:32:20 +0200
+
 libcatalyst-perl (5.90012-1) unstable; urgency=low
 
   * Imported Upstream version 5.90012.
diff -Nru libcatalyst-perl-5.90012/debian/control libcatalyst-perl-5.90015/debian/control
--- libcatalyst-perl-5.90012/debian/control	2012-06-03 12:12:44.000000000 +0200
+++ libcatalyst-perl-5.90015/debian/control	2012-08-03 00:44:43.000000000 +0200
@@ -59,7 +59,8 @@
 Uploaders: Krzysztof Krzyżaniak (eloy) <eloy@debian.org>,
  gregor herrmann <gregoa@debian.org>, Jonathan Yu <jawnsy@cpan.org>,
  Franck Joncourt <franck@debian.org>, Ansgar Burchardt <ansgar@debian.org>,
- Florian Schlichting <fschlich@zedat.fu-berlin.de>
+ Florian Schlichting <fschlich@zedat.fu-berlin.de>,
+ Jotam Jr. Trejo <jotamjr@debian.org.sv>
 Standards-Version: 3.9.3
 Vcs-Git: git://git.debian.org/pkg-perl/packages/libcatalyst-perl.git
 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-perl/packages/libcatalyst-perl.git
@@ -121,7 +122,9 @@
  libtest-pod-coverage-perl, 
  libtest-pod-perl,
  perl (>= 5.10.1) | libtest-simple-perl (>= 0.88)
-Breaks: libcatalyst-modules-perl (<< 32~)
+Breaks: libcatalyst-modules-perl (<< 32~),
+ libcatalystx-simplelogin-perl (<< 0.17),
+ libcatalyst-actionrole-acl-perl (<< 0.07)
 Description: elegant Model-View-Controller Web Application Framework
  Catalyst is an elegant web application framework, extremely flexible yet very
  simple. It's similar to Ruby on Rails, Spring (Java) and Maypole, upon which
diff -Nru libcatalyst-perl-5.90012/debian/copyright libcatalyst-perl-5.90015/debian/copyright
--- libcatalyst-perl-5.90012/debian/copyright	2012-06-03 12:12:44.000000000 +0200
+++ libcatalyst-perl-5.90015/debian/copyright	2012-08-03 00:44:43.000000000 +0200
@@ -94,6 +94,7 @@
  2009-2011, gregor herrmann <gregoa@debian.org>
  2005-2008, Florian Ragwitz <rafl@debian.org>
  2012, Florian Schlichting <fschlich@zedat.fu-berlin.de>
+ 2012, Jotam Jr. Trejo <jotamjr@debian.org.sv>
 License: Artistic or GPL-1+
 
 License: Artistic
diff -Nru libcatalyst-perl-5.90012/lib/Catalyst/Controller.pm libcatalyst-perl-5.90015/lib/Catalyst/Controller.pm
--- libcatalyst-perl-5.90012/lib/Catalyst/Controller.pm	2012-03-14 14:57:30.000000000 +0100
+++ libcatalyst-perl-5.90015/lib/Catalyst/Controller.pm	2012-06-30 17:30:57.000000000 +0200
@@ -1,7 +1,11 @@
 package Catalyst::Controller;
 
 use Moose;
+use Class::MOP;
+use Class::Load ':all';
+use String::RewritePrefix;
 use Moose::Util qw/find_meta/;
+use List::Util qw/first/;
 use List::MoreUtils qw/uniq/;
 use namespace::clean -except => 'meta';
 
@@ -13,28 +17,48 @@
 
 with 'Catalyst::Component::ApplicationAttribute';
 
-has path_prefix =>
-    (
-     is => 'rw',
-     isa => 'Str',
-     init_arg => 'path',
-     predicate => 'has_path_prefix',
-    );
+has path_prefix => (
+    is        => 'rw',
+    isa       => 'Str',
+    init_arg  => 'path',
+    predicate => 'has_path_prefix',
+);
 
-has action_namespace =>
-    (
-     is => 'rw',
-     isa => 'Str',
-     init_arg => 'namespace',
-     predicate => 'has_action_namespace',
-    );
+has action_namespace => (
+    is        => 'rw',
+    isa       => 'Str',
+    init_arg  => 'namespace',
+    predicate => 'has_action_namespace',
+);
 
-has actions =>
-    (
-     accessor => '_controller_actions',
-     isa => 'HashRef',
-     init_arg => undef,
-    );
+has actions => (
+    accessor => '_controller_actions',
+    isa      => 'HashRef',
+    init_arg => undef,
+);
+
+has _action_role_args => (
+    traits     => [qw(Array)],
+    isa        => 'ArrayRef[Str]',
+    init_arg   => 'action_roles',
+    default    => sub { [] },
+    handles    => {
+        _action_role_args => 'elements',
+    },
+);
+
+has _action_roles => (
+    traits     => [qw(Array)],
+    isa        => 'ArrayRef[RoleName]',
+    init_arg   => undef,
+    lazy       => 1,
+    builder    => '_build__action_roles',
+    handles    => {
+        _action_roles => 'elements',
+    },
+);
+
+has action_args => (is => 'ro');
 
 # ->config(actions => { '*' => ...
 has _all_actions_attributes => (
@@ -54,6 +78,14 @@
 
     # trigger lazy builder
     $self->_all_actions_attributes;
+    $self->_action_roles;
+}
+
+sub _build__action_roles {
+    my $self = shift;
+    my @roles = $self->_expand_role_shortname($self->_action_role_args);
+    load_class($_) for @roles;
+    return \@roles;
 }
 
 sub _build__all_actions_attributes {
@@ -86,10 +118,11 @@
 
 #I think both of these could be attributes. doesn't really seem like they need
 #to ble class data. i think that attributes +default would work just fine
-__PACKAGE__->mk_classdata($_) for qw/_dispatch_steps _action_class/;
+__PACKAGE__->mk_classdata($_) for qw/_dispatch_steps _action_class _action_role_prefix/;
 
 __PACKAGE__->_dispatch_steps( [qw/_BEGIN _AUTO _ACTION/] );
 __PACKAGE__->_action_class('Catalyst::Action');
+__PACKAGE__->_action_role_prefix([ 'Catalyst::ActionRole::' ]);
 
 
 sub _DISPATCH : Private {
@@ -262,6 +295,20 @@
     }
 }
 
+sub _apply_action_class_roles {
+    my ($self, $class, @roles) = @_;
+
+    load_class($_) for @roles;
+    my $meta = Moose::Meta::Class->initialize($class)->create_anon_class(
+        superclasses => [$class],
+        roles        => \@roles,
+        cache        => 1,
+    );
+    $meta->add_method(meta => sub { $meta });
+
+    return $meta->name;
+}
+
 sub action_class {
     my $self = shift;
     my %args = @_;
@@ -279,7 +326,21 @@
     my %args = @_;
 
     my $class = $self->action_class(%args);
-    my $action_args = $self->config->{action_args};
+
+    load_class($class);
+    Moose->init_meta(for_class => $class)
+        unless Class::MOP::does_metaclass_exist($class);
+
+    unless ($args{name} =~ /^_(DISPATCH|BEGIN|AUTO|ACTION|END)$/) {
+       my @roles = $self->gather_action_roles(%args);
+       $class = $self->_apply_action_class_roles($class, @roles) if @roles;
+    }
+
+    my $action_args = (
+        ref($self)
+            ? $self->action_args
+            : $self->config->{action_args}
+    );
 
     my %extra_args = (
         %{ $action_args->{'*'}           || {} },
@@ -289,6 +350,15 @@
     return $class->new({ %extra_args, %args });
 }
 
+sub gather_action_roles {
+   my ($self, %args) = @_;
+
+   return (
+      (blessed $self ? $self->_action_roles : ()),
+      @{ $args{attributes}->{Does} || [] },
+   );
+}
+
 sub _parse_attrs {
     my ( $self, $c, $name, @attrs ) = @_;
 
@@ -454,6 +524,32 @@
     return ( 'ActionClass', $value );
 }
 
+sub _parse_Does_attr {
+    my ($self, $app, $name, $value) = @_;
+    return Does => $self->_expand_role_shortname($value);
+}
+
+sub _expand_role_shortname {
+    my ($self, @shortnames) = @_;
+    my $app = $self->_application;
+
+    my $prefix = $self->can('_action_role_prefix') ? $self->_action_role_prefix : ['Catalyst::ActionRole::'];
+    my @prefixes = (qq{${app}::ActionRole::}, @$prefix);
+
+    return String::RewritePrefix->rewrite(
+        { ''  => sub {
+            my $loaded = load_first_existing_class(
+                map { "$_$_[0]" } @prefixes
+            );
+            return first { $loaded =~ /^$_/ }
+              sort { length $b <=> length $a } @prefixes;
+          },
+          '~' => $prefixes[0],
+          '+' => '' },
+        @shortnames,
+    );
+}
+
 __PACKAGE__->meta->make_immutable;
 
 1;
@@ -571,6 +667,10 @@
 Called with a hash of data to be use for construction of a new
 Catalyst::Action (or appropriate sub/alternative class) object.
 
+=head2 $self->gather_action_roles(\%action_args)
+
+Gathers the list of roles to apply to an action with the given %action_args.
+
 =head2 $self->_application
 
 =head2 $self->_app
diff -Nru libcatalyst-perl-5.90012/lib/Catalyst/DispatchType/Chained.pm libcatalyst-perl-5.90015/lib/Catalyst/DispatchType/Chained.pm
--- libcatalyst-perl-5.90012/lib/Catalyst/DispatchType/Chained.pm	2012-05-10 22:44:28.000000000 +0200
+++ libcatalyst-perl-5.90015/lib/Catalyst/DispatchType/Chained.pm	2012-06-27 22:55:53.000000000 +0200
@@ -253,7 +253,7 @@
 
                 if (!$best_action                       ||
                     @parts < @{$best_action->{parts}}   ||
-                    (!@parts && $args_attr eq 0)){
+                    (!@parts && defined($args_attr) && $args_attr eq "0")){
                     $best_action = {
                         actions => [ $action ],
                         captures=> [],
diff -Nru libcatalyst-perl-5.90012/lib/Catalyst/Engine.pm libcatalyst-perl-5.90015/lib/Catalyst/Engine.pm
--- libcatalyst-perl-5.90012/lib/Catalyst/Engine.pm	2012-05-15 11:35:15.000000000 +0200
+++ libcatalyst-perl-5.90015/lib/Catalyst/Engine.pm	2012-06-30 19:49:47.000000000 +0200
@@ -180,6 +180,9 @@
         $title = $name = "$name on Catalyst $Catalyst::VERSION";
         $name  = "<h1>$name</h1>";
 
+        # Don't show context in the dump
+        $c->res->_clear_context;
+
         # Don't show body parser in the dump
         $c->req->_clear_body;
 
@@ -328,7 +331,7 @@
 sub finalize_headers {
     my ($self, $ctx) = @_;
 
-    $ctx->response->finalize_headers;
+    $ctx->finalize_headers unless $ctx->response->finalized_headers;
     return;
 }
 
diff -Nru libcatalyst-perl-5.90012/lib/Catalyst/Request.pm libcatalyst-perl-5.90015/lib/Catalyst/Request.pm
--- libcatalyst-perl-5.90012/lib/Catalyst/Request.pm	2012-05-16 10:55:03.000000000 +0200
+++ libcatalyst-perl-5.90015/lib/Catalyst/Request.pm	2012-06-27 22:55:53.000000000 +0200
@@ -220,7 +220,7 @@
     my ( $self ) = @_;
 
     $self->prepare_body if ! $self->_has_body;
-    return unless $self->_body;
+    return {} unless $self->_body;
 
     return $self->_body->param;
 }
diff -Nru libcatalyst-perl-5.90012/lib/Catalyst/Response.pm libcatalyst-perl-5.90015/lib/Catalyst/Response.pm
--- libcatalyst-perl-5.90012/lib/Catalyst/Response.pm	2012-03-01 09:01:48.000000000 +0100
+++ libcatalyst-perl-5.90015/lib/Catalyst/Response.pm	2012-06-30 17:50:42.000000000 +0200
@@ -43,6 +43,11 @@
   required => 1,
   lazy => 1,
 );
+has _context => (
+  is => 'rw',
+  weak_ref => 1,
+  clearer => '_clear_context',
+);
 
 sub output { shift->body(@_) }
 
@@ -52,7 +57,7 @@
     my ( $self, $buffer ) = @_;
 
     # Finalize headers if someone manually writes output
-    $self->finalize_headers;
+    $self->_context->finalize_headers unless $self->finalized_headers;
 
     $buffer = q[] unless defined $buffer;
 
diff -Nru libcatalyst-perl-5.90012/lib/Catalyst/Runtime.pm libcatalyst-perl-5.90015/lib/Catalyst/Runtime.pm
--- libcatalyst-perl-5.90012/lib/Catalyst/Runtime.pm	2012-05-16 10:57:48.000000000 +0200
+++ libcatalyst-perl-5.90015/lib/Catalyst/Runtime.pm	2012-06-30 17:57:38.000000000 +0200
@@ -7,7 +7,7 @@
 
 # Remember to update this in Catalyst as well!
 
-our $VERSION = '5.90012';
+our $VERSION = '5.90015';
 
 =head1 NAME
 
diff -Nru libcatalyst-perl-5.90012/lib/Catalyst.pm libcatalyst-perl-5.90015/lib/Catalyst.pm
--- libcatalyst-perl-5.90012/lib/Catalyst.pm	2012-05-16 10:57:48.000000000 +0200
+++ libcatalyst-perl-5.90015/lib/Catalyst.pm	2012-06-30 17:57:38.000000000 +0200
@@ -100,7 +100,7 @@
 
 # Remember to update this in Catalyst::Runtime as well!
 
-our $VERSION = '5.90012';
+our $VERSION = '5.90015';
 
 sub import {
     my ( $class, @arguments ) = @_;
@@ -1788,7 +1788,7 @@
             $c->finalize_error;
         }
 
-        $c->finalize_headers;
+        $c->finalize_headers unless $c->response->finalized_headers;
 
         # HEAD request
         if ( $c->request->method eq 'HEAD' ) {
@@ -1898,7 +1898,7 @@
 
     $c->finalize_cookies;
 
-    $c->engine->finalize_headers( $c, @_ );
+    $c->response->finalize_headers();
 
     # Done
     $response->finalized_headers(1);
@@ -2000,6 +2000,8 @@
     my $uploadtmp = $class->config->{uploadtmp};
     my $c = $class->context_class->new({ $uploadtmp ? (_uploadtmp => $uploadtmp) : ()});
 
+    $c->response->_context($c);
+
     #surely this is not the most efficient way to do things...
     $c->stats($class->stats_class->new)->enable($c->use_stats);
     if ( $c->debug || $c->config->{enable_catalyst_header} ) {
diff -Nru libcatalyst-perl-5.90012/Makefile.PL libcatalyst-perl-5.90015/Makefile.PL
--- libcatalyst-perl-5.90012/Makefile.PL	2012-05-10 22:44:28.000000000 +0200
+++ libcatalyst-perl-5.90015/Makefile.PL	2012-06-30 17:30:57.000000000 +0200
@@ -4,16 +4,26 @@
 # Ensure that these get used - yes, M::I loads them for us, but if you're
 # in author mode and don't have them installed, then the error is tres
 # cryptic.
-use Module::Install::AuthorRequires;
-use Module::Install::CheckConflicts;
-use Module::Install::AuthorTests;
-use Module::Install::Authority;
+if ($Module::Install::AUTHOR) { # We could just use them, but telling
+    my @fail;                   # people the set of things they need nicer
+    foreach my $module (qw/
+        Module::Install::AuthorRequires
+        Module::Install::CheckConflicts
+        Module::Install::AuthorTests
+        Module::Install::Authority
+    /) {
+        push(@fail, $module)
+            unless eval qq{require $module; 1;};
+    }
+    die("Module::Install extensions failed, not installed? \n"
+        . join("\n", map { "  $_" } @fail) . "\n") if @fail;
+}
 
 perl_version '5.008003';
 
 name 'Catalyst-Runtime';
 author 'Sebastian Riedel <sri@cpan.org>';
-authority 'MSTROUT';
+authority('MSTROUT');
 all_from 'lib/Catalyst/Runtime.pm';
 
 requires 'List::MoreUtils';
@@ -68,9 +78,10 @@
 test_requires 'HTTP::Request::Common';
 
 # aggregate tests if AGGREGATE_TESTS is set and a recent Test::Aggregate and a Test::Simple it works with is available
+my @author_requires;
 if ($ENV{AGGREGATE_TESTS} && can_use('Test::Simple', '0.88') && can_use('Test::Aggregate', '0.364')) {
-    author_requires('Test::Aggregate', '0.364');
-    author_requires('Test::Simple', '0.88');
+    push(@author_requires, 'Test::Aggregate', '0.364');
+    push(@author_requires, 'Test::Simple', '0.88');
     open my $fh, '>', '.aggregating';
 }
 else {
@@ -78,16 +89,18 @@
     tests 't/*.t t/aggregate/*.t';
 }
 
-author_requires 'CatalystX::LeakChecker', '0.05';
-author_requires 'File::Copy::Recursive'; # For http server test
-author_requires 'Catalyst::Devel', '1.0'; # For http server test
-author_requires 'Catalyst::Engine::PSGI';
-author_requires 'Test::Without::Module';
-author_requires 'Starman';
-author_requires 'MooseX::Daemonize';
+push(@author_requires, 'CatalystX::LeakChecker', '0.05');
+push(@author_requires, 'Catalyst::Devel', '1.0'); # For http server test
 
-author_tests 't/author';
-author_requires(map {; $_ => 0 } qw(
+author_tests('t/author');
+author_requires(
+  @author_requires,
+  map {; $_ => 0 } qw(
+  File::Copy::Recursive
+  Catalyst::Engine::PSGI
+  Test::Without::Module
+  Starman
+  MooseX::Daemonize
   Test::NoTabs
   Test::Pod
   Test::Pod::Coverage
diff -Nru libcatalyst-perl-5.90012/MANIFEST libcatalyst-perl-5.90015/MANIFEST
--- libcatalyst-perl-5.90012/MANIFEST	2012-05-16 11:02:15.000000000 +0200
+++ libcatalyst-perl-5.90015/MANIFEST	2012-06-30 19:52:18.000000000 +0200
@@ -99,6 +99,7 @@
 t/aggregate/live_component_controller_action_regexp.t
 t/aggregate/live_component_controller_action_streaming.t
 t/aggregate/live_component_controller_action_visit.t
+t/aggregate/live_component_controller_actionroles.t
 t/aggregate/live_component_controller_anon.t
 t/aggregate/live_component_controller_args.t
 t/aggregate/live_component_controller_attributes.t
@@ -162,7 +163,6 @@
 t/aggregate/unit_core_script_run_options.t
 t/aggregate/unit_core_script_server-without_modules.t
 t/aggregate/unit_core_script_server.t
-t/aggregate/unit_core_script_test.t
 t/aggregate/unit_core_scriptrunner.t
 t/aggregate/unit_core_setup.t
 t/aggregate/unit_core_setup_log.t
@@ -201,6 +201,8 @@
 t/lib/ACLTestApp/Controller/Root.pm
 t/lib/Catalyst/Action/TestAfter.pm
 t/lib/Catalyst/Action/TestBefore.pm
+t/lib/Catalyst/ActionRole/Moo.pm
+t/lib/Catalyst/ActionRole/Zoo.pm
 t/lib/Catalyst/Plugin/Test/Deprecated.pm
 t/lib/Catalyst/Plugin/Test/Errors.pm
 t/lib/Catalyst/Plugin/Test/Headers.pm
@@ -215,6 +217,7 @@
 t/lib/DeprecatedActionsInAppClassTestApp.pm
 t/lib/DeprecatedTestApp.pm
 t/lib/DeprecatedTestApp/C/Root.pm
+t/lib/Moo.pm
 t/lib/NullPackage.pm
 t/lib/PluginTestApp.pm
 t/lib/PluginTestApp/Controller/Root.pm
@@ -227,10 +230,14 @@
 t/lib/ScriptTestApp/TraitFor/Script/Bar.pm
 t/lib/ScriptTestApp/TraitFor/Script/Foo.pm
 t/lib/TestApp.pm
+t/lib/TestApp/Action/TestActionArgsFromConstructor.pm
 t/lib/TestApp/Action/TestBefore.pm
 t/lib/TestApp/Action/TestExtraArgsAction.pm
 t/lib/TestApp/Action/TestMatchCaptures.pm
 t/lib/TestApp/Action/TestMyAction.pm
+t/lib/TestApp/ActionRole/Boo.pm
+t/lib/TestApp/ActionRole/Kooh.pm
+t/lib/TestApp/ActionRole/Moo.pm
 t/lib/TestApp/Controller/Action.pm
 t/lib/TestApp/Controller/Action/Action.pm
 t/lib/TestApp/Controller/Action/Auto.pm
@@ -273,6 +280,7 @@
 t/lib/TestApp/Controller/Action/TestMultipath.pm
 t/lib/TestApp/Controller/Action/TestRelative.pm
 t/lib/TestApp/Controller/Action/Visit.pm
+t/lib/TestApp/Controller/ActionRoles.pm
 t/lib/TestApp/Controller/Anon.pm
 t/lib/TestApp/Controller/Args.pm
 t/lib/TestApp/Controller/Attributes.pm
@@ -387,6 +395,7 @@
 t/something/Makefile.PL
 t/something/script/foo/bar/for_dist
 t/unit_core_methodattributes_method_metaclass_on_subclasses.t
+t/unit_core_script_test.t
 t/unit_stats.t
 t/unit_utils_load_class.t
 t/unit_utils_subdir.t
diff -Nru libcatalyst-perl-5.90012/META.yml libcatalyst-perl-5.90015/META.yml
--- libcatalyst-perl-5.90012/META.yml	2012-05-16 11:02:09.000000000 +0200
+++ libcatalyst-perl-5.90015/META.yml	2012-06-30 19:53:43.000000000 +0200
@@ -74,5 +74,5 @@
   homepage: http://dev.catalyst.perl.org/
   license: http://dev.perl.org/licenses/
   repository: git://git.shadowcat.co.uk/catagits/Catalyst-Runtime.git
-version: 5.90012
+version: 5.90015
 x_authority: MSTROUT
diff -Nru libcatalyst-perl-5.90012/t/aggregate/live_component_controller_action_action.t libcatalyst-perl-5.90015/t/aggregate/live_component_controller_action_action.t
--- libcatalyst-perl-5.90012/t/aggregate/live_component_controller_action_action.t	2011-10-21 17:58:02.000000000 +0200
+++ libcatalyst-perl-5.90015/t/aggregate/live_component_controller_action_action.t	2012-06-27 22:55:53.000000000 +0200
@@ -193,6 +193,25 @@
         is_deeply $action->attributes->{extra_attribute}, [13];
         is_deeply $action->attributes->{another_extra_attribute}, ['foo'];
     }
+    {
+        ok( my $response = request('http://localhost/action_action_nine'),
+            'Request' );
+        ok( $response->is_success, 'Response Successful 2xx' );
+        is( $response->content_type, 'text/plain', 'Response Content-Type' );
+        is( $response->header('X-Catalyst-Action'),
+            'action_action_nine', 'Test Action' );
+        is(
+            $response->header('X-Test-Class'),
+            'TestApp::Controller::Action::Action',
+            'Test Class'
+        );
+        is( $response->header('X-TestExtraArgsAction'), '42,13', 'Extra args get passed to action constructor' );
+        like(
+            $response->content,
+            qr/^bless\( .* 'Catalyst::Request' \)$/s,
+            'Content is a serialized Catalyst::Request'
+        );
+    }
 }
 
 done_testing;
diff -Nru libcatalyst-perl-5.90012/t/aggregate/live_component_controller_actionroles.t libcatalyst-perl-5.90015/t/aggregate/live_component_controller_actionroles.t
--- libcatalyst-perl-5.90012/t/aggregate/live_component_controller_actionroles.t	1970-01-01 01:00:00.000000000 +0100
+++ libcatalyst-perl-5.90015/t/aggregate/live_component_controller_actionroles.t	2012-06-27 22:55:53.000000000 +0200
@@ -0,0 +1,36 @@
+use strict;
+use warnings;
+use Test::More;
+
+use FindBin;
+use lib "$FindBin::Bin/../lib";
+
+use Catalyst::Test 'TestApp';
+
+my %roles = (
+    foo  => 'TestApp::ActionRole::Moo',
+    bar  => 'TestApp::ActionRole::Moo',
+    baz  => 'Moo',
+    quux => 'Catalyst::ActionRole::Zoo',
+);
+
+while (my ($path, $role) = each %roles) {
+    my $resp = request("/actionroles/${path}");
+    ok($resp->is_success);
+    is($resp->content, $role);
+    is($resp->header('X-Affe'), 'Tiger');
+}
+
+{
+    my $resp = request("/actionroles/corge");
+    ok($resp->is_success);
+    is($resp->content, 'TestApp::ActionRole::Moo');
+    is($resp->header('X-Affe'), 'Tiger');
+   is($resp->header('X-Action-After'), 'moo');
+}
+{
+    my $resp = request("/actionroles/frew");
+    ok($resp->is_success);
+    is($resp->content, 'hello', 'action_args are honored with ActionRoles');
+ }
+done_testing;
diff -Nru libcatalyst-perl-5.90012/t/aggregate/live_component_controller_action_streaming.t libcatalyst-perl-5.90015/t/aggregate/live_component_controller_action_streaming.t
--- libcatalyst-perl-5.90012/t/aggregate/live_component_controller_action_streaming.t	2012-02-08 14:31:14.000000000 +0100
+++ libcatalyst-perl-5.90015/t/aggregate/live_component_controller_action_streaming.t	2012-06-30 17:50:42.000000000 +0200
@@ -29,6 +29,8 @@
         ok( my $response = request('http://localhost/streaming'), 'Request' );
         ok( $response->is_success, 'Response Successful 2xx' );
         is( $response->content_type, 'text/plain', 'Response Content-Type' );
+        is( $response->header('X-Test-Header'), 'valid', 'Headers sent properly' );
+        is( $response->header('X-Test-Header-Call-Count'), 1);
 
         SKIP:
         {
@@ -67,6 +69,8 @@
         ok( $response->is_success, 'Response Successful 2xx' );
         is( $response->content_type, 'text/plain', 'Response Content-Type' );
         is( $response->content_length, -s $file, 'Response Content-Length' );
+        is( $response->header('X-Test-Header'), 'valid', 'Headers sent properly' );
+        is( $response->header('X-Test-Header-Call-Count'), 1);
         is( $response->content, $buffer, 'Content is read from filehandle' );
 
         ok( $response = request('http://localhost/action/streaming/body_glob'),
@@ -74,6 +78,8 @@
         ok( $response->is_success, 'Response Successful 2xx' );
         is( $response->content_type, 'text/plain', 'Response Content-Type' );
         is( $response->content_length, -s $file, 'Response Content-Length' );
+        is( $response->header('X-Test-Header'), 'valid', 'Headers sent properly' );
+        is( $response->header('X-Test-Header-Call-Count'), 1);
         is( $response->content, $buffer, 'Content is read from filehandle' );
     }
 
@@ -83,6 +89,8 @@
         ok( my $response = request('http://localhost/action/streaming/body_large'), 'Request' );
         ok( $response->is_success, 'Response Successful 2xx' );
         is( $response->content_type, 'text/plain', 'Response Content-Type' );
+        is( $response->header('X-Test-Header'), 'valid', 'Headers sent properly' );
+        is( $response->header('X-Test-Header-Call-Count'), 1);
         is( $response->content_length, $size, 'Response Content-Length' );
         is( $response->content, "\0" x $size, 'Content is read from filehandle' );
     }
diff -Nru libcatalyst-perl-5.90012/t/aggregate/unit_core_script_test.t libcatalyst-perl-5.90015/t/aggregate/unit_core_script_test.t
--- libcatalyst-perl-5.90012/t/aggregate/unit_core_script_test.t	2011-10-21 17:58:02.000000000 +0200
+++ libcatalyst-perl-5.90015/t/aggregate/unit_core_script_test.t	1970-01-01 01:00:00.000000000 +0100
@@ -1,55 +0,0 @@
-use strict;
-use warnings;
-
-use Carp qw(croak);
-use FindBin qw/$Bin/;
-use lib "$Bin/../lib";
-
-use Test::More;
-use Test::Exception;
-
-use Catalyst::Script::Test;
-use File::Temp qw/tempfile/;
-use IO::Handle;
-
-is run_test('/'), "root index\n", 'correct content printed';
-is run_test('/moose/get_attribute'), "42\n", 'Correct content printed for non root action';
-
-done_testing;
-
-sub run_test {
-    my $url = shift;
-
-    my ($fh, $fn) = tempfile();
-
-    binmode( $fh );
-    binmode( STDOUT );
-
-    {
-        local @ARGV = ($url);
-        my $i;
-        lives_ok {
-            $i = Catalyst::Script::Test->new_with_options(application_name => 'TestApp');
-        } "new_with_options";
-        ok $i;
-        my $saved;
-        open( $saved, '>&'. STDOUT->fileno )
-            or croak("Can't dup stdout: $!");
-        open( STDOUT, '>&='. $fh->fileno )
-            or croak("Can't open stdout: $!");
-        eval { $i->run };
-        ok !$@, 'Ran ok';
-
-        STDOUT->flush
-            or croak("Can't flush stdout: $!");
-
-        open( STDOUT, '>&'. fileno($saved) )
-            or croak("Can't restore stdout: $!");
-    }
-
-    my $data = do { my $fh; open($fh, '<', $fn) or die $!; local $/; <$fh>; };
-    $fh = undef;
-    unlink $fn if -r $fn;
-
-    return $data;
-}
diff -Nru libcatalyst-perl-5.90012/t/author/http-server.t libcatalyst-perl-5.90015/t/author/http-server.t
--- libcatalyst-perl-5.90012/t/author/http-server.t	2012-02-08 14:31:14.000000000 +0100
+++ libcatalyst-perl-5.90015/t/author/http-server.t	2012-06-27 22:55:53.000000000 +0200
@@ -77,6 +77,15 @@
 
 is( $return, 0, 'live tests' );
 
+# kill 'INT' doesn't exist in Windows, so to prevent child hanging,
+# this process will need to commit seppuku to clean up the children.
+if ($^O eq 'MSWin32') {
+    # Furthermore, it needs to do it 'politely' so that TAP doesn't 
+    # smell anything 'dubious'.
+    require Win32::Process;  # core in all versions of Win32 Perl
+    Win32::Process::KillProcess($$, $return);
+}
+
 sub wait_port_timeout {
     my ($port, $timeout) = @_;
 
diff -Nru libcatalyst-perl-5.90012/t/lib/Catalyst/Action/TestAfter.pm libcatalyst-perl-5.90015/t/lib/Catalyst/Action/TestAfter.pm
--- libcatalyst-perl-5.90012/t/lib/Catalyst/Action/TestAfter.pm	2011-10-26 00:06:53.000000000 +0200
+++ libcatalyst-perl-5.90015/t/lib/Catalyst/Action/TestAfter.pm	2012-06-27 22:55:53.000000000 +0200
@@ -3,7 +3,8 @@
 use strict;
 use warnings;
 
-use base qw/Catalyst::Action/;
+use base qw/Catalyst::Action/; # N.B. Keep as a non-moose class, this also
+                               # tests metaclass initialization works as expected
 
 sub execute {
     my $self = shift;
diff -Nru libcatalyst-perl-5.90012/t/lib/Catalyst/ActionRole/Moo.pm libcatalyst-perl-5.90015/t/lib/Catalyst/ActionRole/Moo.pm
--- libcatalyst-perl-5.90012/t/lib/Catalyst/ActionRole/Moo.pm	1970-01-01 01:00:00.000000000 +0100
+++ libcatalyst-perl-5.90015/t/lib/Catalyst/ActionRole/Moo.pm	2012-06-27 22:55:53.000000000 +0200
@@ -0,0 +1,12 @@
+package Catalyst::ActionRole::Moo;
+
+use Moose::Role;
+
+use namespace::autoclean;
+
+after execute => sub {
+    my ($self, $controller, $c) = @_;
+    $c->response->body(__PACKAGE__);
+};
+
+1;
diff -Nru libcatalyst-perl-5.90012/t/lib/Catalyst/ActionRole/Zoo.pm libcatalyst-perl-5.90015/t/lib/Catalyst/ActionRole/Zoo.pm
--- libcatalyst-perl-5.90012/t/lib/Catalyst/ActionRole/Zoo.pm	1970-01-01 01:00:00.000000000 +0100
+++ libcatalyst-perl-5.90015/t/lib/Catalyst/ActionRole/Zoo.pm	2012-06-27 22:55:53.000000000 +0200
@@ -0,0 +1,12 @@
+package Catalyst::ActionRole::Zoo;
+
+use Moose::Role;
+
+use namespace::autoclean;
+
+after execute => sub {
+    my ($self, $controller, $c) = @_;
+    $c->response->body(__PACKAGE__);
+};
+
+1;
diff -Nru libcatalyst-perl-5.90012/t/lib/Moo.pm libcatalyst-perl-5.90015/t/lib/Moo.pm
--- libcatalyst-perl-5.90012/t/lib/Moo.pm	1970-01-01 01:00:00.000000000 +0100
+++ libcatalyst-perl-5.90015/t/lib/Moo.pm	2012-06-27 22:55:53.000000000 +0200
@@ -0,0 +1,12 @@
+package Moo;
+
+use Moose::Role;
+
+use namespace::autoclean;
+
+after execute => sub {
+    my ($self, $controller, $c) = @_;
+    $c->response->body(__PACKAGE__);
+};
+
+1;
diff -Nru libcatalyst-perl-5.90012/t/lib/TestApp/Action/TestActionArgsFromConstructor.pm libcatalyst-perl-5.90015/t/lib/TestApp/Action/TestActionArgsFromConstructor.pm
--- libcatalyst-perl-5.90012/t/lib/TestApp/Action/TestActionArgsFromConstructor.pm	1970-01-01 01:00:00.000000000 +0100
+++ libcatalyst-perl-5.90015/t/lib/TestApp/Action/TestActionArgsFromConstructor.pm	2012-06-27 22:55:53.000000000 +0200
@@ -0,0 +1,18 @@
+package TestApp::Action::TestActionArgsFromConstructor;
+
+use Moose;
+use namespace::autoclean;
+
+extends 'Catalyst::Action';
+
+has [qw/extra_arg another_extra_arg/] => ( is => 'ro' );
+
+after execute => sub {
+    my ($self, $controller, $ctx) = @_;
+    $ctx->response->header('X-TestExtraArgsAction' => join q{,} => $self->extra_arg, $self->another_extra_arg);
+};
+
+__PACKAGE__->meta->make_immutable;
+
+1;
+
diff -Nru libcatalyst-perl-5.90012/t/lib/TestApp/ActionRole/Boo.pm libcatalyst-perl-5.90015/t/lib/TestApp/ActionRole/Boo.pm
--- libcatalyst-perl-5.90012/t/lib/TestApp/ActionRole/Boo.pm	1970-01-01 01:00:00.000000000 +0100
+++ libcatalyst-perl-5.90015/t/lib/TestApp/ActionRole/Boo.pm	2012-06-27 22:55:53.000000000 +0200
@@ -0,0 +1,16 @@
+package TestApp::ActionRole::Boo;
+
+use Moose::Role;
+
+has boo => (
+    is       => 'ro',
+    required => 1,
+);
+
+around execute => sub {
+    my ($orig, $self, $controller, $ctx, @rest) = @_;
+    $ctx->stash(action_boo => $self->boo);
+    return $self->$orig($controller, $ctx, @rest);
+};
+
+1;
diff -Nru libcatalyst-perl-5.90012/t/lib/TestApp/ActionRole/Kooh.pm libcatalyst-perl-5.90015/t/lib/TestApp/ActionRole/Kooh.pm
--- libcatalyst-perl-5.90012/t/lib/TestApp/ActionRole/Kooh.pm	1970-01-01 01:00:00.000000000 +0100
+++ libcatalyst-perl-5.90015/t/lib/TestApp/ActionRole/Kooh.pm	2012-06-27 22:55:53.000000000 +0200
@@ -0,0 +1,12 @@
+package TestApp::ActionRole::Kooh;
+
+use Moose::Role;
+
+use namespace::autoclean;
+
+after execute => sub {
+    my ($self, $controller, $c) = @_;
+    $c->response->header('X-Affe' => 'Tiger');
+};
+
+1;
diff -Nru libcatalyst-perl-5.90012/t/lib/TestApp/ActionRole/Moo.pm libcatalyst-perl-5.90015/t/lib/TestApp/ActionRole/Moo.pm
--- libcatalyst-perl-5.90012/t/lib/TestApp/ActionRole/Moo.pm	1970-01-01 01:00:00.000000000 +0100
+++ libcatalyst-perl-5.90015/t/lib/TestApp/ActionRole/Moo.pm	2012-06-27 22:55:53.000000000 +0200
@@ -0,0 +1,10 @@
+package TestApp::ActionRole::Moo;
+
+use Moose::Role;
+
+after execute => sub {
+    my ($self, $controller, $c) = @_;
+    $c->response->body(__PACKAGE__);
+};
+
+1;
diff -Nru libcatalyst-perl-5.90012/t/lib/TestApp/Controller/Action/Action.pm libcatalyst-perl-5.90015/t/lib/TestApp/Controller/Action/Action.pm
--- libcatalyst-perl-5.90012/t/lib/TestApp/Controller/Action/Action.pm	2011-10-21 17:58:02.000000000 +0200
+++ libcatalyst-perl-5.90015/t/lib/TestApp/Controller/Action/Action.pm	2012-06-27 22:55:53.000000000 +0200
@@ -58,4 +58,8 @@
     $c->forward('TestApp::View::Dump::Action');
 }
 
+sub action_action_nine : Global : ActionClass('~TestActionArgsFromConstructor') {
+    my ( $self, $c ) = @_;
+    $c->forward('TestApp::View::Dump::Request');
+}
 1;
diff -Nru libcatalyst-perl-5.90012/t/lib/TestApp/Controller/ActionRoles.pm libcatalyst-perl-5.90015/t/lib/TestApp/Controller/ActionRoles.pm
--- libcatalyst-perl-5.90012/t/lib/TestApp/Controller/ActionRoles.pm	1970-01-01 01:00:00.000000000 +0100
+++ libcatalyst-perl-5.90015/t/lib/TestApp/Controller/ActionRoles.pm	2012-06-27 22:55:53.000000000 +0200
@@ -0,0 +1,30 @@
+package TestApp::Controller::ActionRoles;
+
+use Moose;
+
+BEGIN { extends 'Catalyst::Controller' }
+
+__PACKAGE__->config(
+    action_roles => ['~Kooh'],
+    action_args => {
+        frew => { boo => 'hello' },
+    },
+);
+
+sub foo  : Local Does('Moo')  {}
+sub bar  : Local Does('~Moo') {}
+sub baz  : Local Does('+Moo') {}
+sub quux : Local Does('Zoo')  {}
+
+sub corge : Local Does('Moo') ActionClass('TestAfter') {
+    my ($self, $ctx) = @_;
+    $ctx->stash(after_message => 'moo');
+}
+
+sub frew : Local Does('Boo')  {
+    my ($self, $ctx) = @_;
+    my $boo = $ctx->stash->{action_boo};
+    $ctx->response->body($boo);
+}
+
+1;
diff -Nru libcatalyst-perl-5.90012/t/lib/TestApp/Controller/BodyParams.pm libcatalyst-perl-5.90015/t/lib/TestApp/Controller/BodyParams.pm
--- libcatalyst-perl-5.90012/t/lib/TestApp/Controller/BodyParams.pm	2012-05-10 22:44:28.000000000 +0200
+++ libcatalyst-perl-5.90015/t/lib/TestApp/Controller/BodyParams.pm	2012-06-27 22:55:53.000000000 +0200
@@ -10,4 +10,11 @@
     $c->res->status(200);
 }
 
+sub no_params : Local {
+    my ( $self, $c ) = @_;
+    my $params = $c->req->body_parameters;
+    $c->res->output(ref $params);
+    $c->res->status(200);
+}
+
 1;
diff -Nru libcatalyst-perl-5.90012/t/lib/TestApp.pm libcatalyst-perl-5.90015/t/lib/TestApp.pm
--- libcatalyst-perl-5.90012/t/lib/TestApp.pm	2012-03-14 14:57:30.000000000 +0100
+++ libcatalyst-perl-5.90015/t/lib/TestApp.pm	2012-06-30 17:50:42.000000000 +0200
@@ -1,5 +1,4 @@
 package TestApp;
-
 use strict;
 use Catalyst qw/
     Test::MangleDollarUnderScore
@@ -42,7 +41,16 @@
 
 our $VERSION = '0.01';
 
-TestApp->config( name => 'TestApp', root => '/some/dir', use_request_uri_for_path => 1 );
+TestApp->config( 
+    name => 'TestApp', 
+    root => '/some/dir', 
+    use_request_uri_for_path => 1, 
+    'Controller::Action::Action' => {
+        action_args => {
+            action_action_nine => { another_extra_arg => 13 }
+        }
+    }
+);
 
 # Test bug found when re-adjusting the metaclass compat code in Moose
 # in 292360. Test added to Moose in 4b760d6, but leave this attribute
@@ -116,6 +124,21 @@
     sub Catalyst::Log::error { }
 }
 
+# Pretend to be Plugin::Session and hook finalize_headers to send a header
+
+sub finalize_headers {
+    my $c = shift;
+
+    $c->res->header('X-Test-Header', 'valid');
+
+    my $call_count = $c->stash->{finalize_headers_call_count} || 0;
+    $call_count++;
+    $c->stash(finalize_headers_call_count => $call_count);
+    $c->res->header('X-Test-Header-Call-Count' => $call_count);
+
+    return $c->maybe::next::method(@_);
+}
+
 # Make sure we can load Inline plugins. 
 
 package Catalyst::Plugin::Test::Inline;
diff -Nru libcatalyst-perl-5.90012/t/live_catalyst_test.t libcatalyst-perl-5.90015/t/live_catalyst_test.t
--- libcatalyst-perl-5.90012/t/live_catalyst_test.t	2012-05-10 22:44:28.000000000 +0200
+++ libcatalyst-perl-5.90015/t/live_catalyst_test.t	2012-06-27 22:55:53.000000000 +0200
@@ -50,5 +50,10 @@
     is($response, 'that', 'body param overridden');
 }
 
+{
+	my $response = request( POST( '/bodyparams/no_params' ) )->content;
+    is($response, 'HASH', 'empty body param is hashref');
+}
+
 done_testing;
 
diff -Nru libcatalyst-perl-5.90012/t/unit_core_script_test.t libcatalyst-perl-5.90015/t/unit_core_script_test.t
--- libcatalyst-perl-5.90012/t/unit_core_script_test.t	1970-01-01 01:00:00.000000000 +0100
+++ libcatalyst-perl-5.90015/t/unit_core_script_test.t	2012-06-27 22:55:53.000000000 +0200
@@ -0,0 +1,55 @@
+use strict;
+use warnings;
+
+use Carp qw(croak);
+use FindBin qw/$Bin/;
+use lib "$Bin/lib";
+
+use Test::More;
+use Test::Exception;
+
+use Catalyst::Script::Test;
+use File::Temp qw/tempfile/;
+use IO::Handle;
+
+is run_test('/'), "root index\n", 'correct content printed';
+is run_test('/moose/get_attribute'), "42\n", 'Correct content printed for non root action';
+
+done_testing;
+
+sub run_test {
+    my $url = shift;
+
+    my ($fh, $fn) = tempfile();
+
+    binmode( $fh );
+    binmode( STDOUT );
+
+    {
+        local @ARGV = ($url);
+        my $i;
+        lives_ok {
+            $i = Catalyst::Script::Test->new_with_options(application_name => 'TestApp');
+        } "new_with_options";
+        ok $i;
+        my $saved;
+        open( $saved, '>&'. STDOUT->fileno )
+            or croak("Can't dup stdout: $!");
+        open( STDOUT, '>&='. $fh->fileno )
+            or croak("Can't open stdout: $!");
+        eval { $i->run };
+        ok !$@, 'Ran ok';
+
+        STDOUT->flush
+            or croak("Can't flush stdout: $!");
+
+        open( STDOUT, '>&'. fileno($saved) )
+            or croak("Can't restore stdout: $!");
+    }
+
+    my $data = do { my $fh; open($fh, '<', $fn) or die $!; local $/; <$fh>; };
+    $fh = undef;
+    unlink $fn if -r $fn;
+
+    return $data;
+}
--- libcatalyst-perl-5.90012/lib/Catalyst/Controller.pm	2012-03-14 14:57:30.000000000 +0100
+++ libcatalyst-perl-5.90015/lib/Catalyst/Controller.pm	2012-06-30 17:30:57.000000000 +0200
@@ -1,7 +1,11 @@
 package Catalyst::Controller;
 
 use Moose;
+use Class::MOP;
+use Class::Load ':all';
+use String::RewritePrefix;
 use Moose::Util qw/find_meta/;
+use List::Util qw/first/;
 use List::MoreUtils qw/uniq/;
 use namespace::clean -except => 'meta';
 
@@ -13,28 +17,48 @@
 
 with 'Catalyst::Component::ApplicationAttribute';
 
-has path_prefix =>
-    (
-     is => 'rw',
-     isa => 'Str',
-     init_arg => 'path',
-     predicate => 'has_path_prefix',
-    );
+has path_prefix => (
+    is        => 'rw',
+    isa       => 'Str',
+    init_arg  => 'path',
+    predicate => 'has_path_prefix',
+);
 
-has action_namespace =>
-    (
-     is => 'rw',
-     isa => 'Str',
-     init_arg => 'namespace',
-     predicate => 'has_action_namespace',
-    );
+has action_namespace => (
+    is        => 'rw',
+    isa       => 'Str',
+    init_arg  => 'namespace',
+    predicate => 'has_action_namespace',
+);
 
-has actions =>
-    (
-     accessor => '_controller_actions',
-     isa => 'HashRef',
-     init_arg => undef,
-    );
+has actions => (
+    accessor => '_controller_actions',
+    isa      => 'HashRef',
+    init_arg => undef,
+);
+
+has _action_role_args => (
+    traits     => [qw(Array)],
+    isa        => 'ArrayRef[Str]',
+    init_arg   => 'action_roles',
+    default    => sub { [] },
+    handles    => {
+        _action_role_args => 'elements',
+    },
+);
+
+has _action_roles => (
+    traits     => [qw(Array)],
+    isa        => 'ArrayRef[RoleName]',
+    init_arg   => undef,
+    lazy       => 1,
+    builder    => '_build__action_roles',
+    handles    => {
+        _action_roles => 'elements',
+    },
+);
+
+has action_args => (is => 'ro');
 
 # ->config(actions => { '*' => ...
 has _all_actions_attributes => (
@@ -54,6 +78,14 @@
 
     # trigger lazy builder
     $self->_all_actions_attributes;
+    $self->_action_roles;
+}
+
+sub _build__action_roles {
+    my $self = shift;
+    my @roles = $self->_expand_role_shortname($self->_action_role_args);
+    load_class($_) for @roles;
+    return \@roles;
 }
 
 sub _build__all_actions_attributes {
@@ -86,10 +118,11 @@
 
 #I think both of these could be attributes. doesn't really seem like they need
 #to ble class data. i think that attributes +default would work just fine
-__PACKAGE__->mk_classdata($_) for qw/_dispatch_steps _action_class/;
+__PACKAGE__->mk_classdata($_) for qw/_dispatch_steps _action_class _action_role_prefix/;
 
 __PACKAGE__->_dispatch_steps( [qw/_BEGIN _AUTO _ACTION/] );
 __PACKAGE__->_action_class('Catalyst::Action');
+__PACKAGE__->_action_role_prefix([ 'Catalyst::ActionRole::' ]);
 
 
 sub _DISPATCH : Private {
@@ -262,6 +295,20 @@
     }
 }
 
+sub _apply_action_class_roles {
+    my ($self, $class, @roles) = @_;
+
+    load_class($_) for @roles;
+    my $meta = Moose::Meta::Class->initialize($class)->create_anon_class(
+        superclasses => [$class],
+        roles        => \@roles,
+        cache        => 1,
+    );
+    $meta->add_method(meta => sub { $meta });
+
+    return $meta->name;
+}
+
 sub action_class {
     my $self = shift;
     my %args = @_;
@@ -279,7 +326,21 @@
     my %args = @_;
 
     my $class = $self->action_class(%args);
-    my $action_args = $self->config->{action_args};
+
+    load_class($class);
+    Moose->init_meta(for_class => $class)
+        unless Class::MOP::does_metaclass_exist($class);
+
+    unless ($args{name} =~ /^_(DISPATCH|BEGIN|AUTO|ACTION|END)$/) {
+       my @roles = $self->gather_action_roles(%args);
+       $class = $self->_apply_action_class_roles($class, @roles) if @roles;
+    }
+
+    my $action_args = (
+        ref($self)
+            ? $self->action_args
+            : $self->config->{action_args}
+    );
 
     my %extra_args = (
         %{ $action_args->{'*'}           || {} },
@@ -289,6 +350,15 @@
     return $class->new({ %extra_args, %args });
 }
 
+sub gather_action_roles {
+   my ($self, %args) = @_;
+
+   return (
+      (blessed $self ? $self->_action_roles : ()),
+      @{ $args{attributes}->{Does} || [] },
+   );
+}
+
 sub _parse_attrs {
     my ( $self, $c, $name, @attrs ) = @_;
 
@@ -454,6 +524,32 @@
     return ( 'ActionClass', $value );
 }
 
+sub _parse_Does_attr {
+    my ($self, $app, $name, $value) = @_;
+    return Does => $self->_expand_role_shortname($value);
+}
+
+sub _expand_role_shortname {
+    my ($self, @shortnames) = @_;
+    my $app = $self->_application;
+
+    my $prefix = $self->can('_action_role_prefix') ? $self->_action_role_prefix : ['Catalyst::ActionRole::'];
+    my @prefixes = (qq{${app}::ActionRole::}, @$prefix);
+
+    return String::RewritePrefix->rewrite(
+        { ''  => sub {
+            my $loaded = load_first_existing_class(
+                map { "$_$_[0]" } @prefixes
+            );
+            return first { $loaded =~ /^$_/ }
+              sort { length $b <=> length $a } @prefixes;
+          },
+          '~' => $prefixes[0],
+          '+' => '' },
+        @shortnames,
+    );
+}
+
 __PACKAGE__->meta->make_immutable;
 
 1;
@@ -571,6 +667,10 @@
 Called with a hash of data to be use for construction of a new
 Catalyst::Action (or appropriate sub/alternative class) object.
 
+=head2 $self->gather_action_roles(\%action_args)
+
+Gathers the list of roles to apply to an action with the given %action_args.
+
 =head2 $self->_application
 
 =head2 $self->_app
--- libcatalyst-perl-5.90012/lib/Catalyst/DispatchType/Chained.pm	2012-05-10 22:44:28.000000000 +0200
+++ libcatalyst-perl-5.90015/lib/Catalyst/DispatchType/Chained.pm	2012-06-27 22:55:53.000000000 +0200
@@ -253,7 +253,7 @@
 
                 if (!$best_action                       ||
                     @parts < @{$best_action->{parts}}   ||
-                    (!@parts && $args_attr eq 0)){
+                    (!@parts && defined($args_attr) && $args_attr eq "0")){
                     $best_action = {
                         actions => [ $action ],
                         captures=> [],
--- libcatalyst-perl-5.90012/lib/Catalyst/Engine.pm	2012-05-15 11:35:15.000000000 +0200
+++ libcatalyst-perl-5.90015/lib/Catalyst/Engine.pm	2012-06-30 19:49:47.000000000 +0200
@@ -180,6 +180,9 @@
         $title = $name = "$name on Catalyst $Catalyst::VERSION";
         $name  = "<h1>$name</h1>";
 
+        # Don't show context in the dump
+        $c->res->_clear_context;
+
         # Don't show body parser in the dump
         $c->req->_clear_body;
 
@@ -328,7 +331,7 @@
 sub finalize_headers {
     my ($self, $ctx) = @_;
 
-    $ctx->response->finalize_headers;
+    $ctx->finalize_headers unless $ctx->response->finalized_headers;
     return;
 }
 
--- libcatalyst-perl-5.90012/lib/Catalyst/Request.pm	2012-05-16 10:55:03.000000000 +0200
+++ libcatalyst-perl-5.90015/lib/Catalyst/Request.pm	2012-06-27 22:55:53.000000000 +0200
@@ -220,7 +220,7 @@
     my ( $self ) = @_;
 
     $self->prepare_body if ! $self->_has_body;
-    return unless $self->_body;
+    return {} unless $self->_body;
 
     return $self->_body->param;
 }
--- libcatalyst-perl-5.90012/lib/Catalyst/Response.pm	2012-03-01 09:01:48.000000000 +0100
+++ libcatalyst-perl-5.90015/lib/Catalyst/Response.pm	2012-06-30 17:50:42.000000000 +0200
@@ -43,6 +43,11 @@
   required => 1,
   lazy => 1,
 );
+has _context => (
+  is => 'rw',
+  weak_ref => 1,
+  clearer => '_clear_context',
+);
 
 sub output { shift->body(@_) }
 
@@ -52,7 +57,7 @@
     my ( $self, $buffer ) = @_;
 
     # Finalize headers if someone manually writes output
-    $self->finalize_headers;
+    $self->_context->finalize_headers unless $self->finalized_headers;
 
     $buffer = q[] unless defined $buffer;
 
--- libcatalyst-perl-5.90012/lib/Catalyst/Runtime.pm	2012-05-16 10:57:48.000000000 +0200
+++ libcatalyst-perl-5.90015/lib/Catalyst/Runtime.pm	2012-06-30 17:57:38.000000000 +0200
@@ -7,7 +7,7 @@
 
 # Remember to update this in Catalyst as well!
 
-our $VERSION = '5.90012';
+our $VERSION = '5.90015';
 
 =head1 NAME
 
--- libcatalyst-perl-5.90012/lib/Catalyst.pm	2012-05-16 10:57:48.000000000 +0200
+++ libcatalyst-perl-5.90015/lib/Catalyst.pm	2012-06-30 17:57:38.000000000 +0200
@@ -100,7 +100,7 @@
 
 # Remember to update this in Catalyst::Runtime as well!
 
-our $VERSION = '5.90012';
+our $VERSION = '5.90015';
 
 sub import {
     my ( $class, @arguments ) = @_;
@@ -1788,7 +1788,7 @@
             $c->finalize_error;
         }
 
-        $c->finalize_headers;
+        $c->finalize_headers unless $c->response->finalized_headers;
 
         # HEAD request
         if ( $c->request->method eq 'HEAD' ) {
@@ -1898,7 +1898,7 @@
 
     $c->finalize_cookies;
 
-    $c->engine->finalize_headers( $c, @_ );
+    $c->response->finalize_headers();
 
     # Done
     $response->finalized_headers(1);
@@ -2000,6 +2000,8 @@
     my $uploadtmp = $class->config->{uploadtmp};
     my $c = $class->context_class->new({ $uploadtmp ? (_uploadtmp => $uploadtmp) : ()});
 
+    $c->response->_context($c);
+
     #surely this is not the most efficient way to do things...
     $c->stats($class->stats_class->new)->enable($c->use_stats);
     if ( $c->debug || $c->config->{enable_catalyst_header} ) {
diff -Nru libcatalystx-simplelogin-perl-0.15/Changes libcatalystx-simplelogin-perl-0.17/Changes
--- libcatalystx-simplelogin-perl-0.15/Changes	2011-09-06 10:59:30.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/Changes	2012-07-15 19:23:57.000000000 +0200
@@ -1,3 +1,11 @@
+0.17 Sun, 15 July 2012 18:23:00 +0100
+  * Better fix for Catalyst versions >= 5.90013 RT#78340, one module
+    and some documentation was missed.
+
+0.16 Fri, 13 July 2012 15:41:00 +0100
+  * Ensure that temp directories created in tests get removed.
+  * Fix for Catalyst versions >= 5.90013 RT#78340
+
 0.15 Tue, 6 Sept 2011 09:59:00 +0100
   * Various documentation fixes and improvements
   * Add tab index to forms
diff -Nru libcatalystx-simplelogin-perl-0.15/debian/changelog libcatalystx-simplelogin-perl-0.17/debian/changelog
--- libcatalystx-simplelogin-perl-0.15/debian/changelog	2012-04-07 00:00:16.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/debian/changelog	2012-07-21 15:02:56.000000000 +0200
@@ -1,3 +1,21 @@
+libcatalystx-simplelogin-perl (0.17-1) unstable; urgency=low
+
+  * Team upload.
+
+  [ Jotam Jr. Trejo ]
+  * Imported Upstream version 0.16
+  * Removed debian/patches since upstream integrated
+    the whatis entries for the controllers
+    CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout and
+    CatalystX::SimpleLogin::TraitFor::Controller::Login::RenderAsTTTemplate
+
+  [ intrigeri ]
+  * Imported Upstream version 0.17
+  * Depend on recent enough libcatalyst-perl,
+    drop obsolete dependency on libcatalyst-controller-actionrole-perl.
+
+ -- intrigeri <intrigeri@debian.org>  Wed, 18 Jul 2012 03:10:31 +0200
+
 libcatalystx-simplelogin-perl (0.15-1) unstable; urgency=low
 
   * Initial release (closes: #604200).
diff -Nru libcatalystx-simplelogin-perl-0.15/debian/control libcatalystx-simplelogin-perl-0.17/debian/control
--- libcatalystx-simplelogin-perl-0.15/debian/control	2012-04-07 00:00:16.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/debian/control	2012-07-21 15:02:56.000000000 +0200
@@ -7,9 +7,8 @@
 Build-Depends-Indep: perl,
  libcatalyst-action-rest-perl,
  libcatalyst-actionrole-acl-perl,
- libcatalyst-controller-actionrole-perl,
  libcatalyst-modules-perl,
- libcatalyst-perl,
+ libcatalyst-perl (>= 5.90013),
  libcatalyst-view-tt-perl,
  libcatalystx-injectcomponent-perl,
  libhtml-formhandler-perl,
@@ -33,7 +32,7 @@
 Depends: ${misc:Depends}, ${perl:Depends},
  libcatalyst-action-rest-perl,
  libcatalyst-modules-perl,
- libcatalyst-perl,
+ libcatalyst-perl (>= 5.90013),
  libcatalyst-view-tt-perl,
  libcatalystx-injectcomponent-perl,
  libhtml-formhandler-perl,
diff -Nru libcatalystx-simplelogin-perl-0.15/debian/patches/pod.patch libcatalystx-simplelogin-perl-0.17/debian/patches/pod.patch
--- libcatalystx-simplelogin-perl-0.15/debian/patches/pod.patch	2012-04-07 00:00:16.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/debian/patches/pod.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-Description: add whatis entries
-Origin: vendor
-Bug: https://rt.cpan.org/Ticket/Display.html?id=76365
-Forwarded: https://rt.cpan.org/Ticket/Display.html?id=76365
-Author: gregor herrmann <gregoa@debian.org>
-Last-Update: 2012-04-06
-
---- a/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/Logout.pm
-+++ b/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/Logout.pm
-@@ -36,7 +36,7 @@
- 
- =head1 NAME
- 
--CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout
-+CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout - log users out
- 
- =head1 DESCRIPTION
- 
---- a/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/RenderAsTTTemplate.pm
-+++ b/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/RenderAsTTTemplate.pm
-@@ -19,7 +19,7 @@
- 
- =head1 NAME
- 
--CatalystX::SimpleLogin::TraitFor::Controller::Login::RenderAsTTTemplate
-+CatalystX::SimpleLogin::TraitFor::Controller::Login::RenderAsTTTemplate - render a login form with no template file
- 
- =head1 DESCRIPTION
- 
diff -Nru libcatalystx-simplelogin-perl-0.15/debian/patches/series libcatalystx-simplelogin-perl-0.17/debian/patches/series
--- libcatalystx-simplelogin-perl-0.15/debian/patches/series	2012-04-07 00:00:16.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/debian/patches/series	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-pod.patch
diff -Nru libcatalystx-simplelogin-perl-0.15/inc/Module/AutoInstall.pm libcatalystx-simplelogin-perl-0.17/inc/Module/AutoInstall.pm
--- libcatalystx-simplelogin-perl-0.15/inc/Module/AutoInstall.pm	2011-09-06 11:00:02.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/inc/Module/AutoInstall.pm	2012-07-15 19:24:12.000000000 +0200
@@ -3,11 +3,12 @@
 
 use strict;
 use Cwd                 ();
+use File::Spec          ();
 use ExtUtils::MakeMaker ();
 
 use vars qw{$VERSION};
 BEGIN {
-	$VERSION = '1.03';
+	$VERSION = '1.06';
 }
 
 # special map on pre-defined feature sets
@@ -17,11 +18,14 @@
 );
 
 # various lexical flags
-my ( @Missing, @Existing,  %DisabledTests, $UnderCPAN,     $HasCPANPLUS );
+my ( @Missing, @Existing,  %DisabledTests, $UnderCPAN, $InstallDepsTarget, $HasCPANPLUS );
 my (
-    $Config, $CheckOnly, $SkipInstall, $AcceptDefault, $TestOnly, $AllDeps
+    $Config, $CheckOnly, $SkipInstall, $AcceptDefault, $TestOnly, $AllDeps,
+    $UpgradeDeps
 );
-my ( $PostambleActions, $PostambleUsed );
+my ( $PostambleActions, $PostambleActionsNoTest, $PostambleActionsUpgradeDeps,
+    $PostambleActionsUpgradeDepsNoTest, $PostambleActionsListDeps,
+    $PostambleActionsListAllDeps, $PostambleUsed, $NoTest);
 
 # See if it's a testing or non-interactive session
 _accept_default( $ENV{AUTOMATED_TESTING} or ! -t STDIN ); 
@@ -31,6 +35,10 @@
     $AcceptDefault = shift;
 }
 
+sub _installdeps_target {
+    $InstallDepsTarget = shift;
+}
+
 sub missing_modules {
     return @Missing;
 }
@@ -63,6 +71,11 @@
             __PACKAGE__->install( $Config, @Missing = split( /,/, $1 ) );
             exit 0;
         }
+	elsif ( $arg =~ /^--upgradedeps=(.*)$/ ) {
+	    $UpgradeDeps = 1;
+	    __PACKAGE__->install( $Config, @Missing = split( /,/, $1 ) );
+	    exit 0;
+	}
         elsif ( $arg =~ /^--default(?:deps)?$/ ) {
             $AcceptDefault = 1;
         }
@@ -125,7 +138,7 @@
     # check entirely since we don't want to have to load (and configure)
     # an old CPAN just for a cosmetic message
 
-    $UnderCPAN = _check_lock(1) unless $SkipInstall;
+    $UnderCPAN = _check_lock(1) unless $SkipInstall || $InstallDepsTarget;
 
     while ( my ( $feature, $modules ) = splice( @args, 0, 2 ) ) {
         my ( @required, @tests, @skiptests );
@@ -175,7 +188,7 @@
             }
 
             # XXX: check for conflicts and uninstalls(!) them.
-            my $cur = _load($mod);
+            my $cur = _version_of($mod);
             if (_version_cmp ($cur, $arg) >= 0)
             {
                 print "loaded. ($cur" . ( $arg ? " >= $arg" : '' ) . ")\n";
@@ -207,6 +220,7 @@
                 $CheckOnly
                 or ($mandatory and $UnderCPAN)
                 or $AllDeps
+                or $InstallDepsTarget
                 or _prompt(
                     qq{==> Auto-install the }
                       . ( @required / 2 )
@@ -237,10 +251,17 @@
         }
     }
 
-    if ( @Missing and not( $CheckOnly or $UnderCPAN ) ) {
+    if ( @Missing and not( $CheckOnly or $UnderCPAN) ) {
         require Config;
-        print
-"*** Dependencies will be installed the next time you type '$Config::Config{make}'.\n";
+        my $make = $Config::Config{make};
+        if ($InstallDepsTarget) {
+            print
+"*** To install dependencies type '$make installdeps' or '$make installdeps_notest'.\n";
+        }
+        else {
+            print
+"*** Dependencies will be installed the next time you type '$make'.\n";
+        }
 
         # make an educated guess of whether we'll need root permission.
         print "    (You may need to do that as the 'root' user.)\n"
@@ -271,6 +292,10 @@
 sub _check_lock {
     return unless @Missing or @_;
 
+    if ($ENV{PERL5_CPANM_IS_RUNNING}) {
+        return _running_under('cpanminus');
+    }
+
     my $cpan_env = $ENV{PERL5_CPAN_IS_RUNNING};
 
     if ($ENV{PERL5_CPANPLUS_IS_RUNNING}) {
@@ -324,7 +349,7 @@
     while ( my ( $pkg, $ver ) = splice( @_, 0, 2 ) ) {
 
         # grep out those already installed
-        if ( _version_cmp( _load($pkg), $ver ) >= 0 ) {
+        if ( _version_cmp( _version_of($pkg), $ver ) >= 0 ) {
             push @installed, $pkg;
         }
         else {
@@ -332,6 +357,11 @@
         }
     }
 
+    if ($UpgradeDeps) {
+        push @modules, @installed;
+        @installed = ();
+    }
+
     return @installed unless @modules;  # nothing to do
     return @installed if _check_lock(); # defer to the CPAN shell
 
@@ -363,7 +393,7 @@
 
     # see if we have successfully installed them
     while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) {
-        if ( _version_cmp( _load($pkg), $ver ) >= 0 ) {
+        if ( _version_cmp( _version_of($pkg), $ver ) >= 0 ) {
             push @installed, $pkg;
         }
         elsif ( $args{do_once} and open( FAILED, '>> .#autoinstall.failed' ) ) {
@@ -463,6 +493,11 @@
 			} else {
 				die "*** Cannot convert option $key = '$value' to CPANPLUS version.\n";
 			}
+			push @config, 'prereqs', $value;
+		} elsif ( $key eq 'force' ) {
+		    push @config, $key, $value;
+		} elsif ( $key eq 'notest' ) {
+		    push @config, 'skiptest', $value;
 		} else {
 			die "*** Cannot convert option $key to CPANPLUS version.\n";
 		}
@@ -497,10 +532,14 @@
     # set additional options
     while ( my ( $opt, $arg ) = splice( @config, 0, 2 ) ) {
         ( $args{$opt} = $arg, next )
-          if $opt =~ /^force$/;    # pseudo-option
+          if $opt =~ /^(?:force|notest)$/;    # pseudo-option
         $CPAN::Config->{$opt} = $arg;
     }
 
+    if ($args{notest} && (not CPAN::Shell->can('notest'))) {
+	die "Your version of CPAN is too old to support the 'notest' pragma";
+    }
+
     local $CPAN::Config->{prerequisites_policy} = 'follow';
 
     while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) {
@@ -519,8 +558,16 @@
                 delete $INC{$inc};
             }
 
-            my $rv = $args{force} ? CPAN::Shell->force( install => $pkg )
-                                  : CPAN::Shell->install($pkg);
+            my $rv = do {
+		if ($args{force}) {
+		    CPAN::Shell->force( install => $pkg )
+		} elsif ($args{notest}) {
+		    CPAN::Shell->notest( install => $pkg )
+		} else {
+		    CPAN::Shell->install($pkg)
+		}
+	    };
+
             $rv ||= eval {
                 $CPAN::META->instance( 'CPAN::Distribution', $obj->cpan_file, )
                   ->{install}
@@ -575,7 +622,7 @@
     my $ver   = shift;
 
     return
-      if _version_cmp( _load($class), $ver ) >= 0;  # no need to upgrade
+      if _version_cmp( _version_of($class), $ver ) >= 0;  # no need to upgrade
 
     if (
         _prompt( "==> A newer version of $class ($ver) is required. Install?",
@@ -660,16 +707,30 @@
 
 # load a module and return the version it reports
 sub _load {
-    my $mod  = pop;    # class/instance doesn't matter
+    my $mod  = pop; # method/function doesn't matter
     my $file = $mod;
-
     $file =~ s|::|/|g;
     $file .= '.pm';
-
     local $@;
     return eval { require $file; $mod->VERSION } || ( $@ ? undef: 0 );
 }
 
+# report version without loading a module
+sub _version_of {
+    my $mod = pop; # method/function doesn't matter
+    my $file = $mod;
+    $file =~ s|::|/|g;
+    $file .= '.pm';
+    foreach my $dir ( @INC ) {
+        next if ref $dir;
+        my $path = File::Spec->catfile($dir, $file);
+        next unless -e $path;
+        require ExtUtils::MM_Unix;
+        return ExtUtils::MM_Unix->parse_version($path);
+    }
+    return undef;
+}
+
 # Load CPAN.pm and it's configuration
 sub _load_cpan {
     return if $CPAN::VERSION and $CPAN::Config and not @_;
@@ -763,6 +824,35 @@
         : "\$(NOECHO) \$(NOOP)"
     );
 
+    my $deps_list = join( ',', @Missing, @Existing );
+
+    $PostambleActionsUpgradeDeps =
+        "\$(PERL) $0 --config=$config --upgradedeps=$deps_list";
+
+    my $config_notest =
+      join( ',', (UNIVERSAL::isa( $Config, 'HASH' ) ? %{$Config} : @{$Config}),
+	  'notest', 1 )
+      if $Config;
+
+    $PostambleActionsNoTest = (
+        ($missing and not $UnderCPAN)
+        ? "\$(PERL) $0 --config=$config_notest --installdeps=$missing"
+        : "\$(NOECHO) \$(NOOP)"
+    );
+
+    $PostambleActionsUpgradeDepsNoTest =
+        "\$(PERL) $0 --config=$config_notest --upgradedeps=$deps_list";
+
+    $PostambleActionsListDeps =
+        '@$(PERL) -le "print for @ARGV" '
+            . join(' ', map $Missing[$_], grep $_ % 2 == 0, 0..$#Missing);
+
+    my @all = (@Missing, @Existing);
+
+    $PostambleActionsListAllDeps =
+        '@$(PERL) -le "print for @ARGV" '
+            . join(' ', map $all[$_], grep $_ % 2 == 0, 0..$#all);
+
     return %args;
 }
 
@@ -797,11 +887,15 @@
 
 sub postamble {
     $PostambleUsed = 1;
+    my $fragment;
 
-    return <<"END_MAKE";
+    $fragment .= <<"AUTO_INSTALL" if !$InstallDepsTarget;
 
 config :: installdeps
 \t\$(NOECHO) \$(NOOP)
+AUTO_INSTALL
+
+    $fragment .= <<"END_MAKE";
 
 checkdeps ::
 \t\$(PERL) $0 --checkdeps
@@ -809,12 +903,28 @@
 installdeps ::
 \t$PostambleActions
 
+installdeps_notest ::
+\t$PostambleActionsNoTest
+
+upgradedeps ::
+\t$PostambleActionsUpgradeDeps
+
+upgradedeps_notest ::
+\t$PostambleActionsUpgradeDepsNoTest
+
+listdeps ::
+\t$PostambleActionsListDeps
+
+listalldeps ::
+\t$PostambleActionsListAllDeps
+
 END_MAKE
 
+    return $fragment;
 }
 
 1;
 
 __END__
 
-#line 1071
+#line 1193
diff -Nru libcatalystx-simplelogin-perl-0.15/inc/Module/Install/AutoInstall.pm libcatalystx-simplelogin-perl-0.17/inc/Module/Install/AutoInstall.pm
--- libcatalystx-simplelogin-perl-0.15/inc/Module/Install/AutoInstall.pm	2011-09-06 11:00:02.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/inc/Module/Install/AutoInstall.pm	2012-07-15 19:24:12.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -73,6 +73,17 @@
     );
 }
 
+sub installdeps_target {
+    my ($self, @args) = @_;
+
+    $self->include('Module::AutoInstall');
+    require Module::AutoInstall;
+
+    Module::AutoInstall::_installdeps_target(1);
+
+    $self->auto_install(@args);
+}
+
 sub auto_install_now {
     my $self = shift;
     $self->auto_install(@_);
diff -Nru libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Base.pm libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Base.pm
--- libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Base.pm	2011-09-06 11:00:01.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Base.pm	2012-07-15 19:24:11.000000000 +0200
@@ -4,7 +4,7 @@
 use strict 'vars';
 use vars qw{$VERSION};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 }
 
 # Suspend handler for "redefined" warnings
diff -Nru libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Can.pm libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Can.pm
--- libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Can.pm	2011-09-06 11:00:02.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Can.pm	2012-07-15 19:24:11.000000000 +0200
@@ -3,13 +3,12 @@
 
 use strict;
 use Config                ();
-use File::Spec            ();
 use ExtUtils::MakeMaker   ();
 use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -29,7 +28,7 @@
 	eval { require $mod; $pkg->VERSION($ver || 0); 1 };
 }
 
-# check if we can run some command
+# Check if we can run some command
 sub can_run {
 	my ($self, $cmd) = @_;
 
@@ -38,14 +37,88 @@
 
 	for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') {
 		next if $dir eq '';
-		my $abs = File::Spec->catfile($dir, $_[1]);
+		require File::Spec;
+		my $abs = File::Spec->catfile($dir, $cmd);
 		return $abs if (-x $abs or $abs = MM->maybe_command($abs));
 	}
 
 	return;
 }
 
-# can we locate a (the) C compiler
+# Can our C compiler environment build XS files
+sub can_xs {
+	my $self = shift;
+
+	# Ensure we have the CBuilder module
+	$self->configure_requires( 'ExtUtils::CBuilder' => 0.27 );
+
+	# Do we have the configure_requires checker?
+	local $@;
+	eval "require ExtUtils::CBuilder;";
+	if ( $@ ) {
+		# They don't obey configure_requires, so it is
+		# someone old and delicate. Try to avoid hurting
+		# them by falling back to an older simpler test.
+		return $self->can_cc();
+	}
+
+	# Do we have a working C compiler
+	my $builder = ExtUtils::CBuilder->new(
+		quiet => 1,
+	);
+	unless ( $builder->have_compiler ) {
+		# No working C compiler
+		return 0;
+	}
+
+	# Write a C file representative of what XS becomes
+	require File::Temp;
+	my ( $FH, $tmpfile ) = File::Temp::tempfile(
+		"compilexs-XXXXX",
+		SUFFIX => '.c',
+	);
+	binmode $FH;
+	print $FH <<'END_C';
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+
+int main(int argc, char **argv) {
+    return 0;
+}
+
+int boot_sanexs() {
+    return 1;
+}
+
+END_C
+	close $FH;
+
+	# Can the C compiler access the same headers XS does
+	my @libs   = ();
+	my $object = undef;
+	eval {
+		local $^W = 0;
+		$object = $builder->compile(
+			source => $tmpfile,
+		);
+		@libs = $builder->link(
+			objects     => $object,
+			module_name => 'sanexs',
+		);
+	};
+	my $result = $@ ? 0 : 1;
+
+	# Clean up all the build files
+	foreach ( $tmpfile, $object, @libs ) {
+		next unless defined $_;
+		1 while unlink;
+	}
+
+	return $result;
+}
+
+# Can we locate a (the) C compiler
 sub can_cc {
 	my $self   = shift;
 	my @chunks = split(/ /, $Config::Config{cc}) or return;
@@ -78,4 +151,4 @@
 
 __END__
 
-#line 156
+#line 236
diff -Nru libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Fetch.pm libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Fetch.pm
--- libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Fetch.pm	2011-09-06 11:00:04.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Fetch.pm	2012-07-15 19:24:12.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff -Nru libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Include.pm libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Include.pm
--- libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Include.pm	2011-09-06 11:00:02.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Include.pm	2012-07-15 19:24:12.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff -Nru libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Makefile.pm libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Makefile.pm
--- libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Makefile.pm	2011-09-06 11:00:01.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Makefile.pm	2012-07-15 19:24:11.000000000 +0200
@@ -8,7 +8,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -215,18 +215,22 @@
 	require ExtUtils::MakeMaker;
 
 	if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) {
-		# MakeMaker can complain about module versions that include
-		# an underscore, even though its own version may contain one!
-		# Hence the funny regexp to get rid of it.  See RT #35800
-		# for details.
-		my $v = $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/;
-		$self->build_requires(     'ExtUtils::MakeMaker' => $v );
-		$self->configure_requires( 'ExtUtils::MakeMaker' => $v );
+		# This previous attempted to inherit the version of
+		# ExtUtils::MakeMaker in use by the module author, but this
+		# was found to be untenable as some authors build releases
+		# using future dev versions of EU:MM that nobody else has.
+		# Instead, #toolchain suggests we use 6.59 which is the most
+		# stable version on CPAN at time of writing and is, to quote
+		# ribasushi, "not terminally fucked, > and tested enough".
+		# TODO: We will now need to maintain this over time to push
+		# the version up as new versions are released.
+		$self->build_requires(     'ExtUtils::MakeMaker' => 6.59 );
+		$self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 );
 	} else {
 		# Allow legacy-compatibility with 5.005 by depending on the
 		# most recent EU:MM that supported 5.005.
-		$self->build_requires(     'ExtUtils::MakeMaker' => 6.42 );
-		$self->configure_requires( 'ExtUtils::MakeMaker' => 6.42 );
+		$self->build_requires(     'ExtUtils::MakeMaker' => 6.36 );
+		$self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 );
 	}
 
 	# Generate the MakeMaker params
@@ -241,7 +245,6 @@
 'all_from' if you prefer) in Makefile.PL.
 EOT
 
-	$DB::single = 1;
 	if ( $self->tests ) {
 		my @tests = split ' ', $self->tests;
 		my %seen;
@@ -412,4 +415,4 @@
 
 __END__
 
-#line 541
+#line 544
diff -Nru libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Metadata.pm libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Metadata.pm
--- libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Metadata.pm	2011-09-06 11:00:01.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Metadata.pm	2012-07-15 19:24:11.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -151,15 +151,21 @@
 sub install_as_vendor { $_[0]->installdirs('vendor') }
 
 sub dynamic_config {
-	my $self = shift;
-	unless ( @_ ) {
-		warn "You MUST provide an explicit true/false value to dynamic_config\n";
-		return $self;
+	my $self  = shift;
+	my $value = @_ ? shift : 1;
+	if ( $self->{values}->{dynamic_config} ) {
+		# Once dynamic we never change to static, for safety
+		return 0;
 	}
-	$self->{values}->{dynamic_config} = $_[0] ? 1 : 0;
+	$self->{values}->{dynamic_config} = $value ? 1 : 0;
 	return 1;
 }
 
+# Convenience command
+sub static_config {
+	shift->dynamic_config(0);
+}
+
 sub perl_version {
 	my $self = shift;
 	return $self->{values}->{perl_version} unless @_;
@@ -170,7 +176,7 @@
 	# Normalize the version
 	$version = $self->_perl_version($version);
 
-	# We don't support the reall old versions
+	# We don't support the really old versions
 	unless ( $version >= 5.005 ) {
 		die "Module::Install only supports 5.005 or newer (use ExtUtils::MakeMaker)\n";
 	}
@@ -582,7 +588,7 @@
 sub requires_from {
 	my $self     = shift;
 	my $content  = Module::Install::_readperl($_[0]);
-	my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg;
+	my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+(v?[\d\.]+)/mg;
 	while ( @requires ) {
 		my $module  = shift @requires;
 		my $version = shift @requires;
diff -Nru libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Win32.pm libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Win32.pm
--- libcatalystx-simplelogin-perl-0.15/inc/Module/Install/Win32.pm	2011-09-06 11:00:04.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/inc/Module/Install/Win32.pm	2012-07-15 19:24:12.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff -Nru libcatalystx-simplelogin-perl-0.15/inc/Module/Install/WriteAll.pm libcatalystx-simplelogin-perl-0.17/inc/Module/Install/WriteAll.pm
--- libcatalystx-simplelogin-perl-0.15/inc/Module/Install/WriteAll.pm	2011-09-06 11:00:04.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/inc/Module/Install/WriteAll.pm	2012-07-15 19:24:12.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = qw{Module::Install::Base};
 	$ISCORE  = 1;
 }
diff -Nru libcatalystx-simplelogin-perl-0.15/inc/Module/Install.pm libcatalystx-simplelogin-perl-0.17/inc/Module/Install.pm
--- libcatalystx-simplelogin-perl-0.15/inc/Module/Install.pm	2011-09-06 11:00:01.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/inc/Module/Install.pm	2012-07-15 19:24:11.000000000 +0200
@@ -31,7 +31,7 @@
 	# This is not enforced yet, but will be some time in the next few
 	# releases once we can make sure it won't clash with custom
 	# Module::Install extensions.
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 
 	# Storage for the pseudo-singleton
 	$MAIN    = undef;
@@ -451,7 +451,7 @@
 }
 
 sub _cmp ($$) {
-	_version($_[0]) <=> _version($_[1]);
+	_version($_[1]) <=> _version($_[2]);
 }
 
 # Cloned from Params::Util::_CLASS
@@ -467,4 +467,4 @@
 
 1;
 
-# Copyright 2008 - 2011 Adam Kennedy.
+# Copyright 2008 - 2012 Adam Kennedy.
diff -Nru libcatalystx-simplelogin-perl-0.15/lib/Catalyst/ActionRole/NeedsLogin.pm libcatalystx-simplelogin-perl-0.17/lib/Catalyst/ActionRole/NeedsLogin.pm
--- libcatalystx-simplelogin-perl-0.15/lib/Catalyst/ActionRole/NeedsLogin.pm	2011-09-06 00:06:58.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/Catalyst/ActionRole/NeedsLogin.pm	2012-07-15 19:22:33.000000000 +0200
@@ -30,13 +30,13 @@
 =head1 SYNOPSIS
 
     package MyApp::Controller::NeedsAuth;
-    
+
     use Moose;
     use namespace::autoclean;
 
-    # One needs to inherit from Catalyst::Controller::ActionRole in order
+    # One needs to inherit from Catalyst::Controller in order
     # to get the Does('NeedsLogin') functionality.
-    BEGIN { extends 'Catalyst::Controller::ActionRole'; }
+    BEGIN { extends 'Catalyst::Controller'; }
 
     sub inbox : Path Does('NeedsLogin') {
         # Redirects to /login if not logged in
@@ -74,9 +74,9 @@
 
 =over
 
-=item L<CatalystX::SimpleLogin::ControllerRole::Login::WithRedirect>
+=item L<CatalystX::SimpleLogin::TraitFor::Controller::Login::WithRedirect>
 
-=item L<CatalystX::SimpleLogin::ControllerRole::Login>
+=item L<CatalystX::SimpleLogin::Controller::Login>
 
 =item L<CatalystX::SimpleLogin::Form::Login>
 
diff -Nru libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/Controller/Login.pm libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/Controller/Login.pm
--- libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/Controller/Login.pm	2011-09-06 00:06:58.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/Controller/Login.pm	2012-07-15 19:22:39.000000000 +0200
@@ -6,7 +6,7 @@
 use CatalystX::SimpleLogin::Form::Login;
 use namespace::autoclean;
 
-BEGIN { extends 'Catalyst::Controller::ActionRole'; }
+BEGIN { extends 'Catalyst::Controller'; }
 
 with qw(
     CatalystX::Component::Traits
diff -Nru libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/Manual.pod libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/Manual.pod
--- libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/Manual.pod	2011-09-06 00:06:09.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/Manual.pod	2012-07-15 19:22:42.000000000 +0200
@@ -77,7 +77,7 @@
 
     use Moose;
     use namespace::autoclean;
-    BEGIN { extends 'Catalyst::Controller::ActionRole' }
+    BEGIN { extends 'Catalyst::Controller' }
 
 Now add a new action to C< lib/MyApp/Controller/Root.pm > and include
 C< Does('NeedsLogin') > to use the Catalyst ActionRole that is part of SimpleLogin:
@@ -136,7 +136,7 @@
     );
 
     package MyApp::Controller::Foo;
-    BEGIN { extends 'Catalyst::Controller::ActionRole' }
+    BEGIN { extends 'Catalyst::Controller' }
 
     sub do_something : Chained('/login/required')
                      : Does('ACL') RequiresRole('createinvoice') ACLDetachTo('/login') {}
diff -Nru libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/Logout.pm libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/Logout.pm
--- libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/Logout.pm	2011-09-06 00:06:09.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/Logout.pm	2012-05-05 13:42:48.000000000 +0200
@@ -36,7 +36,7 @@
 
 =head1 NAME
 
-CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout
+CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout - log users out
 
 =head1 DESCRIPTION
 
diff -Nru libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/RenderAsTTTemplate.pm libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/RenderAsTTTemplate.pm
--- libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/RenderAsTTTemplate.pm	2011-09-06 00:06:09.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/RenderAsTTTemplate.pm	2012-05-05 13:42:48.000000000 +0200
@@ -19,7 +19,7 @@
 
 =head1 NAME
 
-CatalystX::SimpleLogin::TraitFor::Controller::Login::RenderAsTTTemplate
+CatalystX::SimpleLogin::TraitFor::Controller::Login::RenderAsTTTemplate - render a login form with no template file
 
 =head1 DESCRIPTION
 
diff -Nru libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/WithRedirect.pm libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/WithRedirect.pm
--- libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/WithRedirect.pm	2011-09-06 00:09:17.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/WithRedirect.pm	2012-07-15 19:22:50.000000000 +0200
@@ -41,9 +41,9 @@
     use Moose;
     use namespace::autoclean;
 
-    # One needs to inherit from Catalyst::Controller::ActionRole in order
+    # One needs to inherit from Catalyst::Controller in order
     # to get the Does('NeedsLogin') functionality.
-    BEGIN { extends 'Catalyst::Controller::ActionRole'; }
+    BEGIN { extends 'Catalyst::Controller'; }
 
     sub inbox : Path Does('NeedsLogin') {
         # Redirects to /login if not logged in
diff -Nru libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin.pm libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin.pm
--- libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin.pm	2011-09-06 10:59:41.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin.pm	2012-07-15 19:23:40.000000000 +0200
@@ -3,7 +3,7 @@
 use CatalystX::InjectComponent;
 use namespace::autoclean;
 
-our $VERSION = '0.15';
+our $VERSION = '0.17';
 
 after 'setup_components' => sub {
     my $class = shift;
@@ -193,7 +193,7 @@
 
 =item *
 
-L<Catalyst::Controller::ActionRole> - Allows you to decorate actions with roles (E.g L<Catalyst::ActionRole::NeedsLogin|To force a redirect to the login page>)
+L<Catalyst::Controller> - Allows you to decorate actions with roles (E.g L<Catalyst::ActionRole::NeedsLogin|To force a redirect to the login page>)
 
 =item *
 
diff -Nru libcatalystx-simplelogin-perl-0.15/Makefile.PL libcatalystx-simplelogin-perl-0.17/Makefile.PL
--- libcatalystx-simplelogin-perl-0.15/Makefile.PL	2010-06-02 18:04:18.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/Makefile.PL	2012-07-13 16:39:40.000000000 +0200
@@ -27,6 +27,7 @@
 
 test_requires 'Test::More' => '0.94';
 test_requires 'Test::Exception';
+test_requires 'File::Temp';
 test_requires 'Catalyst::Action::RenderView';
 test_requires 'Catalyst::Plugin::Session::State::Cookie';
 test_requires 'Catalyst::Plugin::Session::Store::File';
@@ -36,7 +37,6 @@
 test_requires 'CatalystX::InjectComponent';
 test_requires 'SQL::Translator';
 
-author_requires 'Catalyst::Authentication::Credential::OpenID';
 author_requires 'Test::EOL' => '0.3';
 author_requires 'Test::NoTabs';
 author_requires 'Test::Pod' => '1.14';
diff -Nru libcatalystx-simplelogin-perl-0.15/META.yml libcatalystx-simplelogin-perl-0.17/META.yml
--- libcatalystx-simplelogin-perl-0.15/META.yml	2011-09-06 11:00:04.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/META.yml	2012-07-15 19:24:13.000000000 +0200
@@ -9,15 +9,17 @@
   Catalyst::Plugin::Session::State::Cookie: 0
   Catalyst::Plugin::Session::Store::File: 0
   CatalystX::InjectComponent: 0
-  ExtUtils::MakeMaker: 6.42
+  ExtUtils::MakeMaker: 6.36
+  File::Temp: 0
   HTTP::Request::Common: 0
   SQL::Translator: 0
   Test::Exception: 0
   Test::More: 0.94
 configure_requires:
-  ExtUtils::MakeMaker: 6.42
+  ExtUtils::MakeMaker: 6.36
 distribution_type: module
-generated_by: 'Module::Install version 1.01'
+dynamic_config: 1
+generated_by: 'Module::Install version 1.06'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -32,7 +34,7 @@
     file: lib/Catalyst/ActionRole/NeedsLogin.pm
   CatalystX::SimpleLogin:
     file: lib/CatalystX/SimpleLogin.pm
-    version: 0.15
+    version: 0.17
   CatalystX::SimpleLogin::Controller::Login:
     file: lib/CatalystX/SimpleLogin/Controller/Login.pm
   CatalystX::SimpleLogin::Form::Login:
@@ -66,4 +68,4 @@
 resources:
   license: http://dev.perl.org/licenses/
   repository: git://github.com/bobtfish/catalystx-simplelogin.git
-version: 0.15
+version: 0.17
diff -Nru libcatalystx-simplelogin-perl-0.15/README libcatalystx-simplelogin-perl-0.17/README
--- libcatalystx-simplelogin-perl-0.15/README	2011-09-06 11:00:02.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/README	2012-07-15 19:24:12.000000000 +0200
@@ -125,8 +125,8 @@
 
     *   Catalyst::Plugin::Session
 
-    *   Catalyst::Controller::ActionRole - Allows you to decorate actions
-        with roles (E.g Catalyst::ActionRole::NeedsLogin)
+    *   Catalyst::Controller - Allows you to decorate actions with roles
+        (E.g Catalyst::ActionRole::NeedsLogin)
 
     *   CatalystX::Component::Traits - Allows Moose::Role to be composed
         onto components from config
diff -Nru libcatalystx-simplelogin-perl-0.15/t/author/pod-coverage.t libcatalystx-simplelogin-perl-0.17/t/author/pod-coverage.t
--- libcatalystx-simplelogin-perl-0.15/t/author/pod-coverage.t	2009-07-28 10:36:52.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/t/author/pod-coverage.t	2012-07-13 15:10:37.000000000 +0200
@@ -1,4 +1,4 @@
-#!perl -T
+#!perl
 
 use Test::More;
 eval "use Test::Pod::Coverage 1.08";
diff -Nru libcatalystx-simplelogin-perl-0.15/t/lib/TestApp/Controller/ChainedExample.pm libcatalystx-simplelogin-perl-0.17/t/lib/TestApp/Controller/ChainedExample.pm
--- libcatalystx-simplelogin-perl-0.15/t/lib/TestApp/Controller/ChainedExample.pm	2010-02-20 19:09:34.000000000 +0100
+++ libcatalystx-simplelogin-perl-0.17/t/lib/TestApp/Controller/ChainedExample.pm	2012-07-13 15:01:16.000000000 +0200
@@ -2,7 +2,7 @@
 use Moose;
 use namespace::autoclean;
 
-BEGIN { extends 'Catalyst::Controller::ActionRole' }
+BEGIN { extends 'Catalyst::Controller' }
 
 sub base : Chained('/login/required') PathPart('chainedexample') CaptureArgs(0) {} # Chain everything in the controller off of here.
 
diff -Nru libcatalystx-simplelogin-perl-0.15/t/lib/TestApp/Controller/NeedsAuth.pm libcatalystx-simplelogin-perl-0.17/t/lib/TestApp/Controller/NeedsAuth.pm
--- libcatalystx-simplelogin-perl-0.15/t/lib/TestApp/Controller/NeedsAuth.pm	2010-01-27 22:48:54.000000000 +0100
+++ libcatalystx-simplelogin-perl-0.17/t/lib/TestApp/Controller/NeedsAuth.pm	2012-07-13 15:01:18.000000000 +0200
@@ -2,7 +2,7 @@
 use Moose;
 use namespace::autoclean;
 
-BEGIN { extends 'Catalyst::Controller::ActionRole' }
+BEGIN { extends 'Catalyst::Controller' }
 
 sub foo : Chained('/') PathPart('needsauth') Args(0) Does('NeedsLogin') {
     my ($self, $c) = @_;
diff -Nru libcatalystx-simplelogin-perl-0.15/t/lib/TestAppBase/Controller/Root.pm libcatalystx-simplelogin-perl-0.17/t/lib/TestAppBase/Controller/Root.pm
--- libcatalystx-simplelogin-perl-0.15/t/lib/TestAppBase/Controller/Root.pm	2010-02-20 19:09:34.000000000 +0100
+++ libcatalystx-simplelogin-perl-0.17/t/lib/TestAppBase/Controller/Root.pm	2012-07-13 15:01:20.000000000 +0200
@@ -2,7 +2,7 @@
 use Moose;
 use namespace::autoclean;
 
-BEGIN { extends 'Catalyst::Controller::ActionRole' }
+BEGIN { extends 'Catalyst::Controller' }
 
 __PACKAGE__->config(
     namespace => '',
diff -Nru libcatalystx-simplelogin-perl-0.15/t/lib/TestAppBase.pm libcatalystx-simplelogin-perl-0.17/t/lib/TestAppBase.pm
--- libcatalystx-simplelogin-perl-0.15/t/lib/TestAppBase.pm	2009-12-13 20:58:36.000000000 +0100
+++ libcatalystx-simplelogin-perl-0.17/t/lib/TestAppBase.pm	2012-07-13 16:39:27.000000000 +0200
@@ -1,6 +1,7 @@
 package TestAppBase;
 use Moose;
 use CatalystX::InjectComponent;
+use File::Temp qw/ tempdir /;
 use namespace::autoclean;
 
 use Catalyst qw/
@@ -42,6 +43,9 @@
             },
         },
     },
+    'Plugin::Session' => {
+        storage => tempdir( CLEANUP => 1 ),
+    },
 );
 
 after 'setup_components' => sub {
@@ -55,7 +59,7 @@
         into => $app,
         component => 'TestAppBase::View::HTML',
         as => 'HTML',
-    ) unless $app->controller('HTML');
+    ) unless $app->view('HTML');
 };
 
 1;
diff -Nru libcatalystx-simplelogin-perl-0.15/t/lib/TestAppFormArgs/Controller/NeedsAuth.pm libcatalystx-simplelogin-perl-0.17/t/lib/TestAppFormArgs/Controller/NeedsAuth.pm
--- libcatalystx-simplelogin-perl-0.15/t/lib/TestAppFormArgs/Controller/NeedsAuth.pm	2010-09-20 14:45:01.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/t/lib/TestAppFormArgs/Controller/NeedsAuth.pm	2012-07-13 15:01:25.000000000 +0200
@@ -2,7 +2,7 @@
 use Moose;
 use namespace::autoclean;
 
-BEGIN { extends 'Catalyst::Controller::ActionRole' }
+BEGIN { extends 'Catalyst::Controller' }
 
 sub foo : Chained('/') PathPart('needsauth') Args(0) Does('NeedsLogin') {
     my ($self, $c) = @_;
--- libcatalystx-simplelogin-perl-0.15/lib/Catalyst/ActionRole/NeedsLogin.pm	2011-09-06 00:06:58.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/Catalyst/ActionRole/NeedsLogin.pm	2012-07-15 19:22:33.000000000 +0200
@@ -30,13 +30,13 @@
 =head1 SYNOPSIS
 
     package MyApp::Controller::NeedsAuth;
-    
+
     use Moose;
     use namespace::autoclean;
 
-    # One needs to inherit from Catalyst::Controller::ActionRole in order
+    # One needs to inherit from Catalyst::Controller in order
     # to get the Does('NeedsLogin') functionality.
-    BEGIN { extends 'Catalyst::Controller::ActionRole'; }
+    BEGIN { extends 'Catalyst::Controller'; }
 
     sub inbox : Path Does('NeedsLogin') {
         # Redirects to /login if not logged in
@@ -74,9 +74,9 @@
 
 =over
 
-=item L<CatalystX::SimpleLogin::ControllerRole::Login::WithRedirect>
+=item L<CatalystX::SimpleLogin::TraitFor::Controller::Login::WithRedirect>
 
-=item L<CatalystX::SimpleLogin::ControllerRole::Login>
+=item L<CatalystX::SimpleLogin::Controller::Login>
 
 =item L<CatalystX::SimpleLogin::Form::Login>
 
--- libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/Controller/Login.pm	2011-09-06 00:06:58.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/Controller/Login.pm	2012-07-15 19:22:39.000000000 +0200
@@ -6,7 +6,7 @@
 use CatalystX::SimpleLogin::Form::Login;
 use namespace::autoclean;
 
-BEGIN { extends 'Catalyst::Controller::ActionRole'; }
+BEGIN { extends 'Catalyst::Controller'; }
 
 with qw(
     CatalystX::Component::Traits
--- libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/Manual.pod	2011-09-06 00:06:09.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/Manual.pod	2012-07-15 19:22:42.000000000 +0200
@@ -77,7 +77,7 @@
 
     use Moose;
     use namespace::autoclean;
-    BEGIN { extends 'Catalyst::Controller::ActionRole' }
+    BEGIN { extends 'Catalyst::Controller' }
 
 Now add a new action to C< lib/MyApp/Controller/Root.pm > and include
 C< Does('NeedsLogin') > to use the Catalyst ActionRole that is part of SimpleLogin:
@@ -136,7 +136,7 @@
     );
 
     package MyApp::Controller::Foo;
-    BEGIN { extends 'Catalyst::Controller::ActionRole' }
+    BEGIN { extends 'Catalyst::Controller' }
 
     sub do_something : Chained('/login/required')
                      : Does('ACL') RequiresRole('createinvoice') ACLDetachTo('/login') {}
--- libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/Logout.pm	2011-09-06 00:06:09.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/Logout.pm	2012-05-05 13:42:48.000000000 +0200
@@ -36,7 +36,7 @@
 
 =head1 NAME
 
-CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout
+CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout - log users out
 
 =head1 DESCRIPTION
 
--- libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/RenderAsTTTemplate.pm	2011-09-06 00:06:09.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/RenderAsTTTemplate.pm	2012-05-05 13:42:48.000000000 +0200
@@ -19,7 +19,7 @@
 
 =head1 NAME
 
-CatalystX::SimpleLogin::TraitFor::Controller::Login::RenderAsTTTemplate
+CatalystX::SimpleLogin::TraitFor::Controller::Login::RenderAsTTTemplate - render a login form with no template file
 
 =head1 DESCRIPTION
 
--- libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/WithRedirect.pm	2011-09-06 00:09:17.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin/TraitFor/Controller/Login/WithRedirect.pm	2012-07-15 19:22:50.000000000 +0200
@@ -41,9 +41,9 @@
     use Moose;
     use namespace::autoclean;
 
-    # One needs to inherit from Catalyst::Controller::ActionRole in order
+    # One needs to inherit from Catalyst::Controller in order
     # to get the Does('NeedsLogin') functionality.
-    BEGIN { extends 'Catalyst::Controller::ActionRole'; }
+    BEGIN { extends 'Catalyst::Controller'; }
 
     sub inbox : Path Does('NeedsLogin') {
         # Redirects to /login if not logged in
--- libcatalystx-simplelogin-perl-0.15/lib/CatalystX/SimpleLogin.pm	2011-09-06 10:59:41.000000000 +0200
+++ libcatalystx-simplelogin-perl-0.17/lib/CatalystX/SimpleLogin.pm	2012-07-15 19:23:40.000000000 +0200
@@ -3,7 +3,7 @@
 use CatalystX::InjectComponent;
 use namespace::autoclean;
 
-our $VERSION = '0.15';
+our $VERSION = '0.17';
 
 after 'setup_components' => sub {
     my $class = shift;
@@ -193,7 +193,7 @@
 
 =item *
 
-L<Catalyst::Controller::ActionRole> - Allows you to decorate actions with roles (E.g L<Catalyst::ActionRole::NeedsLogin|To force a redirect to the login page>)
+L<Catalyst::Controller> - Allows you to decorate actions with roles (E.g L<Catalyst::ActionRole::NeedsLogin|To force a redirect to the login page>)
 
 =item *
 
diff -Nru libcatalyst-actionrole-acl-perl-0.06/Changes libcatalyst-actionrole-acl-perl-0.07/Changes
--- libcatalyst-actionrole-acl-perl-0.06/Changes	2011-08-05 09:18:02.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/Changes	2012-07-13 14:42:20.000000000 +0200
@@ -1,3 +1,7 @@
+v0.07 Fri Jul 13 13:39:00 BST 2011
+  - Change to work with (and require) Catalyst::Runtime >= 5.90013
+    RT#78334
+
 v0.06 Fri Aug 5 08:14:00 BST 2011
   - Fix to work with Catalyst 5.9. RT#67863
   - Add repository metadata
diff -Nru libcatalyst-actionrole-acl-perl-0.06/debian/changelog libcatalyst-actionrole-acl-perl-0.07/debian/changelog
--- libcatalyst-actionrole-acl-perl-0.06/debian/changelog	2012-04-06 22:36:48.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/debian/changelog	2012-07-18 03:13:40.000000000 +0200
@@ -1,3 +1,19 @@
+libcatalyst-actionrole-acl-perl (0.07-1) unstable; urgency=low
+
+  * Imported Upstream version 0.07
+  * debian/control:
+    + added versioned dependency against libcatalyst-perl >= 5.90013 
+      since the new changes provided by upstream rely on changes in 
+      libcatalyst-perl 5.90013 and later versions
+    + removed libcatalyst-controller-actionrole-perl from the dependencys
+      because Catalyst::Controller::ActionRole is provided by
+      libcatalyst-perl since version 5.90013
+  * Added myself to Uploaders and Copyright
+  * This new version use Catalyst::Controller instead of
+    Catalyst::Controller::ActionRole fixing FTBFS (Closes: #680819)
+
+ -- Jotam Jr. Trejo <jotamjr@debian.org.sv>  Fri, 13 Jul 2012 11:29:42 -0600
+
 libcatalyst-actionrole-acl-perl (0.06-1) unstable; urgency=low
 
   * Initial release (closes: #667822).
diff -Nru libcatalyst-actionrole-acl-perl-0.06/debian/control libcatalyst-actionrole-acl-perl-0.07/debian/control
--- libcatalyst-actionrole-acl-perl-0.06/debian/control	2012-04-06 22:36:48.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/debian/control	2012-07-18 03:13:40.000000000 +0200
@@ -2,11 +2,11 @@
 Section: perl
 Priority: optional
 Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
-Uploaders: gregor herrmann <gregoa@debian.org>
+Uploaders: gregor herrmann <gregoa@debian.org>,
+ Jotam Jr. Trejo <jotamjr@debian.org.sv>
 Build-Depends: debhelper (>= 8)
 Build-Depends-Indep: perl,
- libcatalyst-controller-actionrole-perl,
- libcatalyst-perl,
+ libcatalyst-perl (>= 5.90013),
  libmoose-perl,
  libnamespace-autoclean-perl
 Standards-Version: 3.9.3
@@ -17,8 +17,7 @@
 Package: libcatalyst-actionrole-acl-perl
 Architecture: all
 Depends: ${misc:Depends}, ${perl:Depends},
- libcatalyst-controller-actionrole-perl,
- libcatalyst-perl,
+ libcatalyst-perl (>= 5.90013),
  libmoose-perl,
  libnamespace-autoclean-perl
 Description: Catalyst ActionRole for user role-based authorization
diff -Nru libcatalyst-actionrole-acl-perl-0.06/debian/copyright libcatalyst-actionrole-acl-perl-0.07/debian/copyright
--- libcatalyst-actionrole-acl-perl-0.06/debian/copyright	2012-04-06 22:36:48.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/debian/copyright	2012-07-18 03:13:40.000000000 +0200
@@ -15,6 +15,7 @@
 
 Files: debian/*
 Copyright: 2012, gregor herrmann <gregoa@debian.org>
+ 2012, Jotam Jr. Trejo <jotamjr@debian.org.sv>
 License: Artistic or GPL-1+
 
 License: Artistic
diff -Nru libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/Base.pm libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/Base.pm
--- libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/Base.pm	2011-08-05 09:18:20.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/Base.pm	2012-07-13 14:40:48.000000000 +0200
@@ -4,7 +4,7 @@
 use strict 'vars';
 use vars qw{$VERSION};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 }
 
 # Suspend handler for "redefined" warnings
diff -Nru libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/Can.pm libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/Can.pm
--- libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/Can.pm	2011-08-05 09:18:20.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/Can.pm	2012-07-13 14:40:48.000000000 +0200
@@ -3,13 +3,12 @@
 
 use strict;
 use Config                ();
-use File::Spec            ();
 use ExtUtils::MakeMaker   ();
 use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -29,7 +28,7 @@
 	eval { require $mod; $pkg->VERSION($ver || 0); 1 };
 }
 
-# check if we can run some command
+# Check if we can run some command
 sub can_run {
 	my ($self, $cmd) = @_;
 
@@ -38,14 +37,88 @@
 
 	for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') {
 		next if $dir eq '';
-		my $abs = File::Spec->catfile($dir, $_[1]);
+		require File::Spec;
+		my $abs = File::Spec->catfile($dir, $cmd);
 		return $abs if (-x $abs or $abs = MM->maybe_command($abs));
 	}
 
 	return;
 }
 
-# can we locate a (the) C compiler
+# Can our C compiler environment build XS files
+sub can_xs {
+	my $self = shift;
+
+	# Ensure we have the CBuilder module
+	$self->configure_requires( 'ExtUtils::CBuilder' => 0.27 );
+
+	# Do we have the configure_requires checker?
+	local $@;
+	eval "require ExtUtils::CBuilder;";
+	if ( $@ ) {
+		# They don't obey configure_requires, so it is
+		# someone old and delicate. Try to avoid hurting
+		# them by falling back to an older simpler test.
+		return $self->can_cc();
+	}
+
+	# Do we have a working C compiler
+	my $builder = ExtUtils::CBuilder->new(
+		quiet => 1,
+	);
+	unless ( $builder->have_compiler ) {
+		# No working C compiler
+		return 0;
+	}
+
+	# Write a C file representative of what XS becomes
+	require File::Temp;
+	my ( $FH, $tmpfile ) = File::Temp::tempfile(
+		"compilexs-XXXXX",
+		SUFFIX => '.c',
+	);
+	binmode $FH;
+	print $FH <<'END_C';
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+
+int main(int argc, char **argv) {
+    return 0;
+}
+
+int boot_sanexs() {
+    return 1;
+}
+
+END_C
+	close $FH;
+
+	# Can the C compiler access the same headers XS does
+	my @libs   = ();
+	my $object = undef;
+	eval {
+		local $^W = 0;
+		$object = $builder->compile(
+			source => $tmpfile,
+		);
+		@libs = $builder->link(
+			objects     => $object,
+			module_name => 'sanexs',
+		);
+	};
+	my $result = $@ ? 0 : 1;
+
+	# Clean up all the build files
+	foreach ( $tmpfile, $object, @libs ) {
+		next unless defined $_;
+		1 while unlink;
+	}
+
+	return $result;
+}
+
+# Can we locate a (the) C compiler
 sub can_cc {
 	my $self   = shift;
 	my @chunks = split(/ /, $Config::Config{cc}) or return;
@@ -78,4 +151,4 @@
 
 __END__
 
-#line 156
+#line 236
diff -Nru libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/Fetch.pm libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/Fetch.pm
--- libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/Fetch.pm	2011-08-05 09:18:20.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/Fetch.pm	2012-07-13 14:40:48.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff -Nru libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/Makefile.pm libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/Makefile.pm
--- libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/Makefile.pm	2011-08-05 09:18:20.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/Makefile.pm	2012-07-13 14:40:48.000000000 +0200
@@ -8,7 +8,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -215,18 +215,22 @@
 	require ExtUtils::MakeMaker;
 
 	if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) {
-		# MakeMaker can complain about module versions that include
-		# an underscore, even though its own version may contain one!
-		# Hence the funny regexp to get rid of it.  See RT #35800
-		# for details.
-		my $v = $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/;
-		$self->build_requires(     'ExtUtils::MakeMaker' => $v );
-		$self->configure_requires( 'ExtUtils::MakeMaker' => $v );
+		# This previous attempted to inherit the version of
+		# ExtUtils::MakeMaker in use by the module author, but this
+		# was found to be untenable as some authors build releases
+		# using future dev versions of EU:MM that nobody else has.
+		# Instead, #toolchain suggests we use 6.59 which is the most
+		# stable version on CPAN at time of writing and is, to quote
+		# ribasushi, "not terminally fucked, > and tested enough".
+		# TODO: We will now need to maintain this over time to push
+		# the version up as new versions are released.
+		$self->build_requires(     'ExtUtils::MakeMaker' => 6.59 );
+		$self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 );
 	} else {
 		# Allow legacy-compatibility with 5.005 by depending on the
 		# most recent EU:MM that supported 5.005.
-		$self->build_requires(     'ExtUtils::MakeMaker' => 6.42 );
-		$self->configure_requires( 'ExtUtils::MakeMaker' => 6.42 );
+		$self->build_requires(     'ExtUtils::MakeMaker' => 6.36 );
+		$self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 );
 	}
 
 	# Generate the MakeMaker params
@@ -241,7 +245,6 @@
 'all_from' if you prefer) in Makefile.PL.
 EOT
 
-	$DB::single = 1;
 	if ( $self->tests ) {
 		my @tests = split ' ', $self->tests;
 		my %seen;
@@ -412,4 +415,4 @@
 
 __END__
 
-#line 541
+#line 544
diff -Nru libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/Metadata.pm libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/Metadata.pm
--- libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/Metadata.pm	2011-08-05 09:18:20.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/Metadata.pm	2012-07-13 14:40:48.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -151,15 +151,21 @@
 sub install_as_vendor { $_[0]->installdirs('vendor') }
 
 sub dynamic_config {
-	my $self = shift;
-	unless ( @_ ) {
-		warn "You MUST provide an explicit true/false value to dynamic_config\n";
-		return $self;
+	my $self  = shift;
+	my $value = @_ ? shift : 1;
+	if ( $self->{values}->{dynamic_config} ) {
+		# Once dynamic we never change to static, for safety
+		return 0;
 	}
-	$self->{values}->{dynamic_config} = $_[0] ? 1 : 0;
+	$self->{values}->{dynamic_config} = $value ? 1 : 0;
 	return 1;
 }
 
+# Convenience command
+sub static_config {
+	shift->dynamic_config(0);
+}
+
 sub perl_version {
 	my $self = shift;
 	return $self->{values}->{perl_version} unless @_;
@@ -170,7 +176,7 @@
 	# Normalize the version
 	$version = $self->_perl_version($version);
 
-	# We don't support the reall old versions
+	# We don't support the really old versions
 	unless ( $version >= 5.005 ) {
 		die "Module::Install only supports 5.005 or newer (use ExtUtils::MakeMaker)\n";
 	}
@@ -582,7 +588,7 @@
 sub requires_from {
 	my $self     = shift;
 	my $content  = Module::Install::_readperl($_[0]);
-	my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg;
+	my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+(v?[\d\.]+)/mg;
 	while ( @requires ) {
 		my $module  = shift @requires;
 		my $version = shift @requires;
diff -Nru libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/Win32.pm libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/Win32.pm
--- libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/Win32.pm	2011-08-05 09:18:20.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/Win32.pm	2012-07-13 14:40:48.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff -Nru libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/WriteAll.pm libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/WriteAll.pm
--- libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install/WriteAll.pm	2011-08-05 09:18:20.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install/WriteAll.pm	2012-07-13 14:40:48.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 	@ISA     = qw{Module::Install::Base};
 	$ISCORE  = 1;
 }
diff -Nru libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install.pm libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install.pm
--- libcatalyst-actionrole-acl-perl-0.06/inc/Module/Install.pm	2011-08-05 09:18:20.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/inc/Module/Install.pm	2012-07-13 14:40:48.000000000 +0200
@@ -31,7 +31,7 @@
 	# This is not enforced yet, but will be some time in the next few
 	# releases once we can make sure it won't clash with custom
 	# Module::Install extensions.
-	$VERSION = '1.01';
+	$VERSION = '1.06';
 
 	# Storage for the pseudo-singleton
 	$MAIN    = undef;
@@ -451,7 +451,7 @@
 }
 
 sub _cmp ($$) {
-	_version($_[0]) <=> _version($_[1]);
+	_version($_[1]) <=> _version($_[2]);
 }
 
 # Cloned from Params::Util::_CLASS
@@ -467,4 +467,4 @@
 
 1;
 
-# Copyright 2008 - 2011 Adam Kennedy.
+# Copyright 2008 - 2012 Adam Kennedy.
diff -Nru libcatalyst-actionrole-acl-perl-0.06/lib/Catalyst/Action/Role/ACL.pm libcatalyst-actionrole-acl-perl-0.07/lib/Catalyst/Action/Role/ACL.pm
--- libcatalyst-actionrole-acl-perl-0.06/lib/Catalyst/Action/Role/ACL.pm	2011-08-05 09:18:02.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/lib/Catalyst/Action/Role/ACL.pm	2012-07-13 14:42:20.000000000 +0200
@@ -6,7 +6,7 @@
 with 'Catalyst::ActionRole::ACL';
 
 use vars qw($VERSION);
-$VERSION = '0.06'; # Note - Remember to keep in sync with Catalyst::ActionRole::ACL
+$VERSION = '0.07'; # Note - Remember to keep in sync with Catalyst::ActionRole::ACL
 
 {
     my $has_warned = 0;
diff -Nru libcatalyst-actionrole-acl-perl-0.06/lib/Catalyst/ActionRole/ACL.pm libcatalyst-actionrole-acl-perl-0.07/lib/Catalyst/ActionRole/ACL.pm
--- libcatalyst-actionrole-acl-perl-0.06/lib/Catalyst/ActionRole/ACL.pm	2011-08-05 09:18:02.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/lib/Catalyst/ActionRole/ACL.pm	2012-07-13 14:42:20.000000000 +0200
@@ -3,7 +3,7 @@
 use namespace::autoclean;
 
 use vars qw($VERSION);
-$VERSION = '0.06'; # REMEMBER TO BUMP VERSION IN Action::Role::ACL ALSO!
+$VERSION = '0.07'; # REMEMBER TO BUMP VERSION IN Action::Role::ACL ALSO!
 
 =head1 NAME
 
@@ -15,7 +15,7 @@
  use Moose;
  use namespace::autoclean;
 
- BEGIN { extends 'Catalyst::Controller::ActionRole' }
+ BEGIN { extends 'Catalyst::Controller' }
 
  sub foo
  :Local
@@ -36,7 +36,7 @@
 
 =head1 DESCRIPTION
 
-Provides a L<Catalyst reusable action role|Catalyst::Controller::ActionRole>
+Provides a reusable action role
 for user role-based authorization.
 ACLs are applied via the assignment of attributes to
 application action subroutines.
diff -Nru libcatalyst-actionrole-acl-perl-0.06/Makefile.PL libcatalyst-actionrole-acl-perl-0.07/Makefile.PL
--- libcatalyst-actionrole-acl-perl-0.06/Makefile.PL	2011-08-05 09:16:54.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/Makefile.PL	2012-07-13 14:36:37.000000000 +0200
@@ -3,7 +3,7 @@
 name 'Catalyst-ActionRole-ACL';
 all_from 'lib/Catalyst/ActionRole/ACL.pm';
 
-requires 'Catalyst::Runtime';
+requires 'Catalyst::Runtime' => '5.90013';
 requires 'Moose';
 requires 'Catalyst::Controller::ActionRole';
 requires 'namespace::autoclean';
diff -Nru libcatalyst-actionrole-acl-perl-0.06/MANIFEST libcatalyst-actionrole-acl-perl-0.07/MANIFEST
--- libcatalyst-actionrole-acl-perl-0.06/MANIFEST	2011-08-05 09:18:23.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/MANIFEST	2012-07-13 14:40:51.000000000 +0200
@@ -13,6 +13,7 @@
 MANIFEST			This list of files
 MANIFEST.SKIP
 META.yml
+MYMETA.json
 README
 t/00-load.t
 t/02-action-class.t
diff -Nru libcatalyst-actionrole-acl-perl-0.06/META.yml libcatalyst-actionrole-acl-perl-0.07/META.yml
--- libcatalyst-actionrole-acl-perl-0.06/META.yml	2011-08-05 09:18:20.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/META.yml	2012-07-13 14:40:48.000000000 +0200
@@ -3,12 +3,13 @@
 author:
   - 'David P.C. Wollmann <converter42@gmail.com>'
 build_requires:
-  ExtUtils::MakeMaker: 6.42
+  ExtUtils::MakeMaker: 6.36
   Test::More: 0
 configure_requires:
-  ExtUtils::MakeMaker: 6.42
+  ExtUtils::MakeMaker: 6.36
 distribution_type: module
-generated_by: 'Module::Install version 1.01'
+dynamic_config: 1
+generated_by: 'Module::Install version 1.06'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -20,10 +21,10 @@
     - t
 requires:
   Catalyst::Controller::ActionRole: 0
-  Catalyst::Runtime: 0
+  Catalyst::Runtime: 5.90013
   Moose: 0
   namespace::autoclean: 0
 resources:
   license: http://dev.perl.org/licenses/
   repository: git://github.com/bobtfish/catalyst-actionrole-acl.git
-version: 0.06
+version: 0.07
diff -Nru libcatalyst-actionrole-acl-perl-0.06/MYMETA.json libcatalyst-actionrole-acl-perl-0.07/MYMETA.json
--- libcatalyst-actionrole-acl-perl-0.06/MYMETA.json	1970-01-01 01:00:00.000000000 +0100
+++ libcatalyst-actionrole-acl-perl-0.07/MYMETA.json	2012-07-13 14:42:50.000000000 +0200
@@ -0,0 +1,53 @@
+{
+   "abstract" : "User role-based authorization action class",
+   "author" : [
+      "David P.C. Wollmann <converter42@gmail.com>"
+   ],
+   "dynamic_config" : 0,
+   "generated_by" : "Module::Install version 1.06, CPAN::Meta::Converter version 2.120921",
+   "license" : [
+      "perl_5"
+   ],
+   "meta-spec" : {
+      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec";,
+      "version" : "2"
+   },
+   "name" : "Catalyst-ActionRole-ACL",
+   "no_index" : {
+      "directory" : [
+         "inc",
+         "t"
+      ]
+   },
+   "prereqs" : {
+      "build" : {
+         "requires" : {
+            "ExtUtils::MakeMaker" : "6.36",
+            "Test::More" : "0"
+         }
+      },
+      "configure" : {
+         "requires" : {
+            "ExtUtils::MakeMaker" : "6.36"
+         }
+      },
+      "runtime" : {
+         "requires" : {
+            "Catalyst::Controller::ActionRole" : "0",
+            "Catalyst::Runtime" : "5.90013",
+            "Moose" : "0",
+            "namespace::autoclean" : "0"
+         }
+      }
+   },
+   "release_status" : "stable",
+   "resources" : {
+      "license" : [
+         "http://dev.perl.org/licenses/";
+      ],
+      "repository" : {
+         "url" : "git://github.com/bobtfish/catalyst-actionrole-acl.git"
+      }
+   },
+   "version" : "0.07"
+}
diff -Nru libcatalyst-actionrole-acl-perl-0.06/README libcatalyst-actionrole-acl-perl-0.07/README
--- libcatalyst-actionrole-acl-perl-0.06/README	2011-08-05 09:18:20.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/README	2012-07-13 14:40:48.000000000 +0200
@@ -6,7 +6,7 @@
      use Moose;
      use namespace::autoclean;
 
-     BEGIN { extends 'Catalyst::Controller::ActionRole' }
+     BEGIN { extends 'Catalyst::Controller' }
 
      sub foo
      :Local
@@ -26,9 +26,9 @@
      }
 
 DESCRIPTION
-    Provides a Catalyst reusable action role for user role-based
-    authorization. ACLs are applied via the assignment of attributes to
-    application action subroutines.
+    Provides a reusable action role for user role-based authorization. ACLs
+    are applied via the assignment of attributes to application action
+    subroutines.
 
 REQUIRED ATTRIBUTES
     Failure to include the following required attributes will result in an
diff -Nru libcatalyst-actionrole-acl-perl-0.06/t/lib/TestApp/Controller/Root.pm libcatalyst-actionrole-acl-perl-0.07/t/lib/TestApp/Controller/Root.pm
--- libcatalyst-actionrole-acl-perl-0.06/t/lib/TestApp/Controller/Root.pm	2009-07-28 10:39:08.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/t/lib/TestApp/Controller/Root.pm	2012-07-13 14:37:57.000000000 +0200
@@ -2,7 +2,7 @@
 use Moose;
 use namespace::autoclean;
 
-BEGIN { extends 'Catalyst::Controller::ActionRole' };
+BEGIN { extends 'Catalyst::Controller' };
 
 __PACKAGE__->config(namespace => q{});
 
diff -Nru libcatalyst-actionrole-acl-perl-0.06/t/lib/TestCanVisit/Controller/Root.pm libcatalyst-actionrole-acl-perl-0.07/t/lib/TestCanVisit/Controller/Root.pm
--- libcatalyst-actionrole-acl-perl-0.06/t/lib/TestCanVisit/Controller/Root.pm	2009-07-28 10:39:08.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/t/lib/TestCanVisit/Controller/Root.pm	2012-07-13 14:38:05.000000000 +0200
@@ -2,7 +2,7 @@
 use Moose;
 use namespace::autoclean;
 
-BEGIN { extends 'Catalyst::Controller::ActionRole' };
+BEGIN { extends 'Catalyst::Controller' };
 
 __PACKAGE__->config(namespace => q{});
 
diff -Nru libcatalyst-actionrole-acl-perl-0.06/t/lib/TestChained/Controller/Root.pm libcatalyst-actionrole-acl-perl-0.07/t/lib/TestChained/Controller/Root.pm
--- libcatalyst-actionrole-acl-perl-0.06/t/lib/TestChained/Controller/Root.pm	2009-07-28 10:39:08.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/t/lib/TestChained/Controller/Root.pm	2012-07-13 14:38:11.000000000 +0200
@@ -2,7 +2,7 @@
 use Moose;
 use namespace::autoclean;
 
-BEGIN { extends 'Catalyst::Controller::ActionRole' };
+BEGIN { extends 'Catalyst::Controller' };
 
 my $msg = '';
 
--- libcatalyst-actionrole-acl-perl-0.06/lib/Catalyst/ActionRole/ACL.pm	2011-08-05 09:18:02.000000000 +0200
+++ libcatalyst-actionrole-acl-perl-0.07/lib/Catalyst/ActionRole/ACL.pm	2012-07-13 14:42:20.000000000 +0200
@@ -3,7 +3,7 @@
 use namespace::autoclean;
 
 use vars qw($VERSION);
-$VERSION = '0.06'; # REMEMBER TO BUMP VERSION IN Action::Role::ACL ALSO!
+$VERSION = '0.07'; # REMEMBER TO BUMP VERSION IN Action::Role::ACL ALSO!
 
 =head1 NAME
 
@@ -15,7 +15,7 @@
  use Moose;
  use namespace::autoclean;
 
- BEGIN { extends 'Catalyst::Controller::ActionRole' }
+ BEGIN { extends 'Catalyst::Controller' }
 
  sub foo
  :Local
@@ -36,7 +36,7 @@
 
 =head1 DESCRIPTION
 
-Provides a L<Catalyst reusable action role|Catalyst::Controller::ActionRole>
+Provides a reusable action role
 for user role-based authorization.
 ACLs are applied via the assignment of attributes to
 application action subroutines.

Reply to: