PaulHowarth/Blog/2011-04-13

Wednesday 13th April 2011

Fedora Project

  • Discovered that the perl package in Rawhide and F-15 didn't "provide" perl(UNIVERSAL) and perl(DB) (it should, as it contains those modules), whilst a bunch of other packages [falsely] claimed to do so; this led to some weird problems with yum:

  • ERROR with rpm_check_debug vs depsolve:
    perl(UNIVERSAL) is needed by perl-DBI-1.616-3.fc16.x86_64
    Complete!
    (1, [u'Please report this error in http://yum.baseurl.org/report'])

Local Packages

  • New package perl-Path-Class (0.23)

  • Updated dovecot to 2.0.12:

    • doveadm: added "move" command for moving mails between mailboxes

    • virtual: added support for "+mailbox" entries that clear \Recent flag from messages (default is to preserve them)

    • dbox: fixes to handling of external attachments

    • dsync: more fixes to avoid hanging with remote syncs

    • dsync: many other syncing/correctness fixes

    • doveconf: v2.0.10 and v2.0.11 didn't output plugin {} section right

  • Updated perl-Module-Refresh to 0.14:

    • Actually remove subroutines from the symbol table
  • Updated perl-Moose to 2.0000:

    • API Changes:
      • Roles now have their own default attribute metaclass to use during application to a class, rather than just using the class's attribute_metaclass; this is also overridable via ::MetaRole, with the applied_attribute key in the role_metaroles hashref

      • The internal code used to generate inlined methods (accessor, constructor, etc.) has been massively rewritten; MooseX modules that do inlining will almost certainly need to be updated as well

      • The RegexpRef type constraint now accepts regular expressions blessed into other classes, such as those found in pluggable regexp engines

      • The 'Object' constraint no longer rejects objects whose implementation is a regular expression

    • New Features:
      • The Moose::Meta::Role::Attribute class now has an original_role method, which returns the role that first defined an attribute

      • Moose::Util::MetaRole will make sure that the class to which you're applying metaroles or base class roles can actually have them applied; if not (it's not a Moose class, it has a non-Moose metaclass, etc.), then it gives a useful error message

    • Enhancements:
      • We now load the roles needed for native delegations only as needed, which speeds up the compilation time for Moose itself

    • Bug Fixes:
      • Reverse the order that Moose::Exporter 'also' exports are dispatched; when trying to re-export from a package that itself exported a modified set of Moose sugar, you'd get the original Moose sugar instead of the overrides

      • Don't initialize lazy attributes with defaults in the constructor (for immutable classes)
      • When reinitializing meta objects for classes and roles, we failed to preserve roles and role applications, which led to weird bugs
      • Reinitializing anonymous roles used to accidentally clear out the role's stash in some circumstances
      • The Int type constraint now rejects integers with trailing newlines

      • When a role had its own applied_attribute metaclass (usually from MetaRole application), that metaclass would get lost when that role participated in role composition; it was also lost if that role was consumed by some other role - both of these cases have been fixed; attributes are always applied with the applied_attribute metaclass of the role that originally defined them

    • Other:
      • The entire Class::MOP distribution has been merged with Moose; in the future, the Class::MOP code itself will be merged into Moose, and eventually the Class::MOP namespace will disappear entirely, but for the current release, we have simply changed how Class::MOP is distributed

      • Switched to Dist::Zilla for development

      • Fix some indexing issues
      • Fix a few issues with the conflict checking stuff
      • Fix generation of CCFLAGS

      • Update conflicts list
      • Moose::Manual::Support now explicitly states when major releases are allowed to happen (January, April, July, or October)

  • I added this patch to suppress 'Subroutine redefined' warnings with Perl < 5.8.8:

  • diff -up Moose-2.0000/lib/Moose/Exporter.pm.orig Moose-2.0000/lib/Moose/Exporter.pm
    --- Moose-2.0000/lib/Moose/Exporter.pm.orig     2011-04-12 05:51:18.000000000 +0100
    +++ Moose-2.0000/lib/Moose/Exporter.pm  2011-04-12 21:41:37.809272162 +0100
    @@ -9,13 +9,15 @@ BEGIN {
     use strict;
     use warnings;
     
    -use XSLoader;
    -
     BEGIN {
    +  eval q{
    +    require XSLoader;
    +    no warnings 'redefined';
         XSLoader::load(
             'Moose',
             $Moose::Exporter::{VERSION} ? ${ $Moose::Exporter::{VERSION} } : ()
         );
    +  };
     }
     
     use Class::MOP;
  • Since this package now contains the current Class::MOP, I dropped the standalone perl-Class-MOP package, which is now obsolete

  • Updated perl-UNIVERSAL-require to fix bogus provide of perl(UNIVERSAL) with rpm 4.9 onwards

  • Rebuilt perl-Array-Compare to make sure it still worked with the new Moose


Recent