openSUSE Commits
Threads by month
- ----- 2024 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
September 2014
- 1 participants
- 1675 discussions
Hello community,
here is the log from the commit of package perl-SQL-Translator for openSUSE:Factory checked in at 2014-09-17 17:26:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-SQL-Translator (Old)
and /work/SRC/openSUSE:Factory/.perl-SQL-Translator.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-SQL-Translator"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-SQL-Translator/perl-SQL-Translator.changes 2013-11-29 07:04:25.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-SQL-Translator.new/perl-SQL-Translator.changes 2014-09-17 17:26:44.000000000 +0200
@@ -1,0 +2,18 @@
+Tue Sep 16 08:08:07 UTC 2014 - coolo(a)suse.com
+
+- updated to 0.11020
+ * Fix test failure if Test::PostgreSQL is installed but not working
+
+ 0.11019 2014-09-02
+
+ * Add Json and hstore types to Pg Parser (cloudinstustrie)
+ * Fix DROP TABLE in SQL Server Producer
+ * Fix Pg DBI parser test (Dagfinn Ilmari Mannsåker)
+ * Remove spurious warnings (Matt Phillips, Wallace Reis)
+ * Fix MySQL producer for columns with scalar ref in 'ON UPDATE' (Wallace Reis)
+ * Fix handling of views in MySQL DBI parser
+ * Fix handling of renamed fields in SQLite diff (Peter Mottram)
+ * Check numeric equality of default values in numeric-type fields (Wallace Reis)
+ * Fix handling of renamed fields in renamed tables in Pg diff (Peter Mottram)
+
+-------------------------------------------------------------------
Old:
----
SQL-Translator-0.11018.tar.gz
New:
----
SQL-Translator-0.11020.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-SQL-Translator.spec ++++++
--- /var/tmp/diff_new_pack.LtYJDA/_old 2014-09-17 17:26:45.000000000 +0200
+++ /var/tmp/diff_new_pack.LtYJDA/_new 2014-09-17 17:26:45.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-SQL-Translator
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,14 @@
Name: perl-SQL-Translator
-Version: 0.11018
+Version: 0.11020
Release: 0
%define cpan_name SQL-Translator
Summary: Manipulate structured data definitions (SQL and more)
License: (Artistic-1.0 or GPL-1.0+) and GPL-2.0
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/SQL-Translator/
-Source: http://www.cpan.org/authors/id/F/FR/FREW/%{cpan_name}-%{version}.tar.gz
+Source: http://www.cpan.org/authors/id/I/IL/ILMARI/%{cpan_name}-%{version}.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
++++++ SQL-Translator-0.11018.tar.gz -> SQL-Translator-0.11020.tar.gz ++++++
++++ 2026 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Config-General for openSUSE:Factory checked in at 2014-09-17 17:26:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Config-General (Old)
and /work/SRC/openSUSE:Factory/.perl-Config-General.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Config-General"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Config-General/perl-Config-General.changes 2014-06-30 21:50:27.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Config-General.new/perl-Config-General.changes 2014-09-17 17:26:41.000000000 +0200
@@ -1,0 +2,18 @@
+Tue Sep 16 08:07:57 UTC 2014 - coolo(a)suse.com
+
+- updated to 2.56
+ 2.54 - fixed rt.cpan.org#39814. changed the order of pre-processing
+ in _read(): 1) remove comments, 2) check for continuation,
+ 3) remove empty lines.
+
+ 2.53 - applied patch rt.cpan.org#68153, which adds a find() method to
+ Config::General::Extended.
+
+ - fixed rt.cpan.org#79869 (in fact it has been fixed in 2.52
+ but I forgot to mention it here).
+
+ - applied spelling fixes rt.cpan.org 87072+87080.
+
+ - fixed rt.cpan.org#89379
+
+-------------------------------------------------------------------
Old:
----
Config-General-2.52.tar.gz
New:
----
Config-General-2.56.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Config-General.spec ++++++
--- /var/tmp/diff_new_pack.tDlTqX/_old 2014-09-17 17:26:42.000000000 +0200
+++ /var/tmp/diff_new_pack.tDlTqX/_new 2014-09-17 17:26:42.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-Config-General
-Version: 2.52
+Version: 2.56
Release: 0
%define cpan_name Config-General
Summary: Generic Config Module
@@ -28,10 +28,6 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
-#BuildRequires: perl(Config::General) >= 1.18
-#BuildRequires: perl(Config::General::Extended)
-#BuildRequires: perl(Config::General::Interpolated)
-#BuildRequires: perl(Tie::IxHash)
%{perl_requires}
%description
++++++ Config-General-2.52.tar.gz -> Config-General-2.56.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Config-General-2.52/Changelog new/Config-General-2.56/Changelog
--- old/Config-General-2.52/Changelog 2013-07-03 10:01:45.000000000 +0200
+++ new/Config-General-2.56/Changelog 2014-05-01 13:17:18.000000000 +0200
@@ -1,4 +1,18 @@
- 2.52 - applied pod patch rt.cpan.org#79603
+2.54 - fixed rt.cpan.org#39814. changed the order of pre-processing
+ in _read(): 1) remove comments, 2) check for continuation,
+ 3) remove empty lines.
+
+2.53 - applied patch rt.cpan.org#68153, which adds a find() method to
+ Config::General::Extended.
+
+ - fixed rt.cpan.org#79869 (in fact it has been fixed in 2.52
+ but I forgot to mention it here).
+
+ - applied spelling fixes rt.cpan.org 87072+87080.
+
+ - fixed rt.cpan.org#89379
+
+2.52 - applied pod patch rt.cpan.org#79603
- fixed rt.cpan.org#80006, it tolerates now whitespaces
after the block closing >
@@ -32,7 +46,7 @@
parameters: -NormalizeOption, -NormalizeBlock and -NormalizeValue,
which take a subroutine reference and change the block,
option or value accordingly.
-
+
- fixed rt.cpan.org#65860+76953 undefined value error.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Config-General-2.52/General/Extended.pm new/Config-General-2.56/General/Extended.pm
--- old/Config-General-2.52/General/Extended.pm 2013-07-03 10:28:18.000000000 +0200
+++ new/Config-General-2.56/General/Extended.pm 2014-04-30 14:16:54.000000000 +0200
@@ -1,7 +1,7 @@
#
# Config::General::Extended - special Class based on Config::General
#
-# Copyright (c) 2000-2013 Thomas Linden <tlinden |AT| cpan.org>.
+# Copyright (c) 2000-2014 Thomas Linden <tlinden |AT| cpan.org>.
# All Rights Reserved. Std. disclaimer applies.
# Artistic License, same as perl itself. Have fun.
#
@@ -23,7 +23,7 @@
use strict;
-$Config::General::Extended::VERSION = "2.06";
+$Config::General::Extended::VERSION = "2.07";
sub new {
@@ -314,7 +314,17 @@
return $this->{configfile};
}
-
+sub find {
+ my $this = shift;
+ my $key = shift;
+ return undef unless $this->exists($key);
+ if (@_) {
+ return $this->obj($key)->find(@_);
+ }
+ else {
+ return $this->obj($key);
+ }
+}
sub AUTOLOAD {
#
@@ -557,12 +567,36 @@
You can use this method in B<foreach> loops as seen in an example above(obj() ).
-=item delete ('key')
+=item delete('key')
This method removes the given key and all associated data from the internal
hash structure. If 'key' contained data, then this data will be returned,
otherwise undef will be returned.
+=item find(@list)
+
+Given a list of nodes, ->find will search for a tree that branches in
+just this way, returning the Config::General::Extended object it finds
+at the bottom if it exists. You can also search partway down the tree
+and ->find should return where you left off.
+
+For example, given the values B<find (qw (A B C))> and the following
+tree (</end> tags ommitted for brevity):
+
+ <A>
+ <FOO>
+ ...
+ <B>
+ <BAZ>
+ ...
+ <C>
+ BAR = shoo
+
+B<find()> will find the object at I<C> with the value BAR = shoo and
+return it.
+
+
+
=back
@@ -606,7 +640,7 @@
=head1 COPYRIGHT
-Copyright (c) 2000-2013 Thomas Linden
+Copyright (c) 2000-2014 Thomas Linden
This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
@@ -623,7 +657,7 @@
=head1 VERSION
-2.06
+2.07
=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Config-General-2.52/General/Interpolated.pm new/Config-General-2.56/General/Interpolated.pm
--- old/Config-General-2.52/General/Interpolated.pm 2013-07-03 10:27:59.000000000 +0200
+++ new/Config-General-2.56/General/Interpolated.pm 2014-04-30 14:16:54.000000000 +0200
@@ -2,7 +2,7 @@
# Config::General::Interpolated - special Class based on Config::General
#
# Copyright (c) 2001 by Wei-Hon Chen <plasmaball(a)pchome.com.tw>.
-# Copyright (c) 2000-2013 by Thomas Linden <tlinden |AT| cpan.org>.
+# Copyright (c) 2000-2014 by Thomas Linden <tlinden |AT| cpan.org>.
# All Rights Reserved. Std. disclaimer applies.
# Artistic License, same as perl itself. Have fun.
#
@@ -340,7 +340,7 @@
=head1 COPYRIGHT
Copyright 2001 by Wei-Hon Chen E<lt>plasmaball(a)pchome.com.twE<gt>.
-Copyright 2002-2013 by Thomas Linden <tlinden |AT| cpan.org>.
+Copyright 2002-2014 by Thomas Linden <tlinden |AT| cpan.org>.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Config-General-2.52/General.pm new/Config-General-2.56/General.pm
--- old/Config-General-2.52/General.pm 2013-07-03 10:27:43.000000000 +0200
+++ new/Config-General-2.56/General.pm 2014-05-04 15:25:59.000000000 +0200
@@ -5,7 +5,7 @@
# config values from a given file and
# return it as hash structure
#
-# Copyright (c) 2000-2013 Thomas Linden <tlinden |AT| cpan.org>.
+# Copyright (c) 2000-2014 Thomas Linden <tlinden |AT| cpan.org>.
# All Rights Reserved. Std. disclaimer applies.
# Artistic License, same as perl itself. Have fun.
#
@@ -32,7 +32,7 @@
use Carp;
use Exporter;
-$Config::General::VERSION = "2.52";
+$Config::General::VERSION = "2.56";
use vars qw(@ISA @EXPORT_OK);
use base qw(Exporter);
@@ -632,12 +632,12 @@
# Remove comments and empty lines
s/(?<!\\)#.*$//; # .+ => .* bugfix rt.cpan.org#44600
next if /^\s*#/;
- next if /^\s*$/;
+ #next if /^\s*$/;
# look for multiline option, indicated by a trailing backslash
if (/(?<!\\)\\$/) {
- chop;
+ chop; # remove trailing backslash
s/^\s*//;
$longline .= $_;
next;
@@ -706,6 +706,9 @@
next;
}
else {
+ # ignore empty lines
+ next if /^\s*$/;
+
# look for include statement(s)
my $incl_file;
my $path = '';
@@ -727,7 +730,10 @@
}
}
else {
- if (/^\s*<<include\s+(.+?)>>\s*$/i) {
+ if (/^\s*<<include\s+(["'])(.+?)>>\\s*$/i) {
+ $incl_file = $2;
+ }
+ elsif (/^\s*<<include\s+(.+?)>>\s*$/i) {
$incl_file = $1;
}
}
@@ -1814,7 +1820,7 @@
=item B<-ExtendedAccess>
If set to a true value, you can use object oriented (extended) methods to
-access the parsed config. See L<Config::General::Extended> for more informations.
+access the parsed config. See L<Config::General::Extended> for more information.
=item B<-StrictObjects>
@@ -2709,11 +2715,11 @@
perllol Perl data structures: arrays of arrays
Config::General::Extended Object oriented interface to parsed configs
- Config::General::Interpolated Allows to use variables inside config files
+ Config::General::Interpolated Allows one to use variables inside config files
=head1 LICENSE AND COPYRIGHT
-Copyright (c) 2000-2013 Thomas Linden
+Copyright (c) 2000-2014 Thomas Linden
This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
@@ -2742,7 +2748,7 @@
=head1 VERSION
-2.52
+2.56
=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Config-General-2.52/MANIFEST new/Config-General-2.56/MANIFEST
--- old/Config-General-2.52/MANIFEST 2011-02-16 13:01:55.000000000 +0100
+++ new/Config-General-2.56/MANIFEST 2014-05-04 15:25:04.000000000 +0200
@@ -30,6 +30,7 @@
t/cfg.6
t/cfg.7
t/cfg.8
+t/cfg.55
t/complex/n1.cfg
t/complex/n2.cfg
t/complex.cfg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Config-General-2.52/META.yml new/Config-General-2.56/META.yml
--- old/Config-General-2.52/META.yml 2013-07-03 10:28:33.000000000 +0200
+++ new/Config-General-2.56/META.yml 2014-05-04 15:27:09.000000000 +0200
@@ -1,6 +1,6 @@
--- #YAML:1.0
name: Config-General
-version: 2.52
+version: 2.56
abstract: ~
author: []
license: perl
@@ -14,11 +14,13 @@
File::Spec::Functions: 0
FileHandle: 0
IO::File: 0
+resources:
+ repository: http://dev.catalyst.perl.org/repos/Config-General/trunk/
no_index:
directory:
- t
- inc
-generated_by: ExtUtils::MakeMaker version 6.57_05
+generated_by: ExtUtils::MakeMaker version 6.56
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Config-General-2.52/Makefile.PL new/Config-General-2.56/Makefile.PL
--- old/Config-General-2.52/Makefile.PL 2013-07-03 10:27:20.000000000 +0200
+++ new/Config-General-2.56/Makefile.PL 2014-04-30 14:16:54.000000000 +0200
@@ -1,7 +1,7 @@
#
# Makefile.PL - build file for Config::General
#
-# Copyright (c) 2000-2013 Thomas Linden <tom(a)daemon.de>.
+# Copyright (c) 2000-2014 Thomas Linden <tom(a)daemon.de>.
# All Rights Reserved. Std. disclaimer applies.
# Artistic License, same as perl itself. Have fun.
#
@@ -20,6 +20,11 @@
'File::Spec::Functions' => 0,
'File::Glob' => 0
},
+ 'META_MERGE' => {
+ resources => {
+ repository => 'http://dev.catalyst.perl.org/repos/Config-General/trunk/',
+ },
+ },
($ExtUtils::MakeMaker::VERSION ge '6.31'?
('LICENSE' => 'perl', ) : ()),
);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Config-General-2.52/README new/Config-General-2.56/README
--- old/Config-General-2.52/README 2011-02-16 13:01:55.000000000 +0100
+++ new/Config-General-2.56/README 2014-05-04 15:26:10.000000000 +0200
@@ -80,11 +80,11 @@
COPYRIGHT
Config::General
Config::General::Extended
- Copyright (c) 2000-2007 by Thomas Linden <tom(a)daemon.de>
+ Copyright (c) 2000-2014 by Thomas Linden <tom(a)daemon.de>
Config::General::Interpolated
Copyright (c) 2001 by Wei-Hon Chen <plasmaball(a)pchome.com.tw>
- Copyright (c) 2002-2007 by Thomas Linden <tom(a)daemon.de>.
+ Copyright (c) 2002-2014 by Thomas Linden <tom(a)daemon.de>.
This library is free software; you can redistribute it
and/or modify it under the same terms as Perl itself.
@@ -104,4 +104,4 @@
VERSION
- 2.50
+ 2.56
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Config-General-2.52/t/cfg.55 new/Config-General-2.56/t/cfg.55
--- old/Config-General-2.52/t/cfg.55 1970-01-01 01:00:00.000000000 +0100
+++ new/Config-General-2.56/t/cfg.55 2014-05-01 13:15:40.000000000 +0200
@@ -0,0 +1,5 @@
+a = 1
+
+b = nochop\
+
+c = should stay alone
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Config-General-2.52/t/run.t new/Config-General-2.56/t/run.t
--- old/Config-General-2.52/t/run.t 2013-07-03 09:04:29.000000000 +0200
+++ new/Config-General-2.56/t/run.t 2014-05-01 13:15:57.000000000 +0200
@@ -8,7 +8,7 @@
use Data::Dumper;
-use Test::More tests => 70;
+use Test::More tests => 71;
#use Test::More qw(no_plan);
# ahem, we deliver the test code with a local copy of
@@ -737,3 +737,8 @@
my $cfg54 = new Config::General(-NoEscape => 1, -String => qq(val = \\\$notavar:\\blah\n));
my %hash54 = $cfg54->getall();
is($hash54{val}, qq(\\\$notavar:\\blah), "check -NoEscape");
+
+# check for line continuation followed by empty line (rt.cpan.org#39814)
+my $cfg55 = new Config::General( -ConfigFile => "t/cfg.55" );
+my %hash55 = $cfg55->getall();
+is($hash55{b}, "nochop", "check continuation followed by empty line");
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-MooseX-Getopt for openSUSE:Factory checked in at 2014-09-17 17:26:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-MooseX-Getopt (Old)
and /work/SRC/openSUSE:Factory/.perl-MooseX-Getopt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-MooseX-Getopt"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-MooseX-Getopt/perl-MooseX-Getopt.changes 2014-03-11 07:23:27.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-MooseX-Getopt.new/perl-MooseX-Getopt.changes 2014-09-17 17:26:39.000000000 +0200
@@ -1,0 +2,9 @@
+Tue Sep 16 08:07:57 UTC 2014 - coolo(a)suse.com
+
+- updated to 0.65
+ - re-release to remove README.pod from shipped dist
+ - bump required version of Getopt::Long::Descriptive to avoid an infinite
+ loop problem (thanks, Bram!)
+ - fix test prereq on Test::Warnings (thanks, omega!)
+
+-------------------------------------------------------------------
Old:
----
MooseX-Getopt-0.62.tar.gz
New:
----
MooseX-Getopt-0.65.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-MooseX-Getopt.spec ++++++
--- /var/tmp/diff_new_pack.XKFHrL/_old 2014-09-17 17:26:40.000000000 +0200
+++ /var/tmp/diff_new_pack.XKFHrL/_new 2014-09-17 17:26:40.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-MooseX-Getopt
-Version: 0.62
+Version: 0.65
Release: 0
%define cpan_name MooseX-Getopt
Summary: A Moose role for processing command line options
@@ -30,8 +30,8 @@
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(Getopt::Long) >= 2.37
-BuildRequires: perl(Getopt::Long::Descriptive) >= 0.081
-BuildRequires: perl(Module::Build::Tiny) >= 0.035
+BuildRequires: perl(Getopt::Long::Descriptive) >= 0.088
+BuildRequires: perl(Module::Build::Tiny) >= 0.037
BuildRequires: perl(Module::Runtime)
BuildRequires: perl(Moose)
BuildRequires: perl(Moose::Meta::Attribute)
@@ -46,12 +46,11 @@
BuildRequires: perl(Test::Moose)
BuildRequires: perl(Test::Requires)
BuildRequires: perl(Test::Trap)
-BuildRequires: perl(Test::Warnings)
+BuildRequires: perl(Test::Warnings) >= 0.009
BuildRequires: perl(Try::Tiny)
BuildRequires: perl(namespace::autoclean)
-BuildRequires: perl(version)
Requires: perl(Getopt::Long) >= 2.37
-Requires: perl(Getopt::Long::Descriptive) >= 0.081
+Requires: perl(Getopt::Long::Descriptive) >= 0.088
Requires: perl(Moose)
Requires: perl(Moose::Meta::Attribute)
Requires: perl(Moose::Role) >= 0.56
@@ -81,6 +80,6 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes CONTRIBUTING LICENSE README README.md weaver.ini
+%doc Changes CONTRIBUTING LICENSE README weaver.ini
%changelog
++++++ MooseX-Getopt-0.62.tar.gz -> MooseX-Getopt-0.65.tar.gz ++++++
++++ 3418 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package ha-cluster-bootstrap for openSUSE:Factory checked in at 2014-09-17 17:26:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ha-cluster-bootstrap (Old)
and /work/SRC/openSUSE:Factory/.ha-cluster-bootstrap.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ha-cluster-bootstrap"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ha-cluster-bootstrap/ha-cluster-bootstrap.changes 2014-09-03 19:57:34.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ha-cluster-bootstrap.new/ha-cluster-bootstrap.changes 2014-09-17 17:26:37.000000000 +0200
@@ -1,0 +2,9 @@
+Tue Sep 16 08:16:23 UTC 2014 - kgronlund(a)suse.com
+
+- Silence grep when checking SBD config (bnc#895992)
+- Drop merged patches:
+ + Remove 0001-sbd_init_with_new_style.patch
+ + Remove 0002-clean-up-multiline-warnings.patch
+- Upstream version cs:8459115
+
+-------------------------------------------------------------------
Old:
----
0001-sbd_init_with_new_style.patch
0002-clean-up-multiline-warnings.patch
sleha-bootstrap-0.4+git.1408418098.8d38b0b.tar.bz2
New:
----
sleha-bootstrap-0.4+git.1410854324.8459115.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ha-cluster-bootstrap.spec ++++++
--- /var/tmp/diff_new_pack.TlEcTN/_old 2014-09-17 17:26:38.000000000 +0200
+++ /var/tmp/diff_new_pack.TlEcTN/_new 2014-09-17 17:26:38.000000000 +0200
@@ -18,17 +18,13 @@
Name: ha-cluster-bootstrap
-Version: 0.4+git.1408418098.8d38b0b
+Version: 0.4+git.1410854324.8459115
Release: 0
Summary: Pacemaker HA Cluster Bootstrap Tool
License: GPL-2.0
Group: Productivity/Clustering/HA
Url: https://github.com/tserong/sleha-bootstrap
Source: sleha-bootstrap-%{version}.tar.bz2
-# PATCH-FIX-UPSTREAM: Fix ha-cluster-init to init sbd configuration with new style (bnc#881484)
-Patch6: 0001-sbd_init_with_new_style.patch
-# PATCH-FIX-UPSTREAM: Clean up multiline warnings (bnc#885411)
-Patch7: 0002-clean-up-multiline-warnings.patch
Requires: csync2
Requires: hawk
@@ -47,8 +43,6 @@
%prep
%setup -n sleha-bootstrap-%{version}
-%patch6 -p1
-%patch7 -p1
%build
%install
++++++ _service ++++++
--- /var/tmp/diff_new_pack.TlEcTN/_old 2014-09-17 17:26:38.000000000 +0200
+++ /var/tmp/diff_new_pack.TlEcTN/_new 2014-09-17 17:26:38.000000000 +0200
@@ -4,7 +4,7 @@
<param name="scm">git</param>
<param name="exclude">.git</param>
<param name="versionformat">0.4+git.%ct.%h</param>
- <param name="revision">8d38b0b</param>
+ <param name="revision">8459115</param>
</service>
<service name="recompress" mode="disabled">
++++++ sleha-bootstrap-0.4+git.1408418098.8d38b0b.tar.bz2 -> sleha-bootstrap-0.4+git.1410854324.8459115.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sleha-bootstrap-0.4+git.1408418098.8d38b0b/scripts/ha-cluster-functions new/sleha-bootstrap-0.4+git.1410854324.8459115/scripts/ha-cluster-functions
--- old/sleha-bootstrap-0.4+git.1408418098.8d38b0b/scripts/ha-cluster-functions 2014-08-19 13:58:22.000000000 +0200
+++ new/sleha-bootstrap-0.4+git.1410854324.8459115/scripts/ha-cluster-functions 2014-09-16 10:16:03.000000000 +0200
@@ -184,8 +184,7 @@
invoke rcSuSEfirewall2 restart \
|| error "Failed to restart firewall"
else
- warn "Firewall is active - you may need to open ports:"
- warn " TCP $tcp"
+ warn "Firewall is active. You may need to open these TCP ports: $tcp"
fi
}
@@ -220,8 +219,7 @@
invoke rcSuSEfirewall2 restart \
|| error "Failed to restart firewall"
else
- warn "Firewall is active - you may need to open ports:"
- warn " UDP ${udp:-none}"
+ warn "Firewall is active. You may need to open these UDP ports: ${udp:-none}"
fi
}
@@ -431,13 +429,22 @@
exit $rc
}
+check_watchdog()
+{
+ watchdog_dev=$(cat /etc/modules-load.d/watchdog.conf 2>&1|grep watchdog-device |cut -d"=" -f2 >/dev/null 2>&1)
+ if [ -z "$watchdog_dev" ]; then
+ watchdog_dev="/dev/watchdog"
+ fi
+
+ wdctl $watchdog_dev >/dev/null 2>&1
+}
+
check_prereqs()
{
local -i warned=0
if ! my_hostname_resolves ; then
- warn "Hostname '$(hostname)' is unresolvable - csync2 won't work."
- warn "You should add an entry to /etc/hosts or configure DNS."
+ warn "Hostname '$(hostname)' is unresolvable - csync2 won't work. Please add an entry to /etc/hosts or configure DNS."
warned=1
fi
@@ -451,9 +458,8 @@
warned=1
fi
- if ! [ -c /dev/watchdog ] ; then
- warn "There does not appear to be a watchdog device. If you use"
- warn "SBD the cluster will be unable to start without a watchdog."
+ if ! check_watchdog ; then
+ warn "No watchdog device found. If SBD is used, the cluster will be unable to start without a watchdog."
warned=1
fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sleha-bootstrap-0.4+git.1408418098.8d38b0b/scripts/ha-cluster-init new/sleha-bootstrap-0.4+git.1410854324.8459115/scripts/ha-cluster-init
--- old/sleha-bootstrap-0.4+git.1408418098.8d38b0b/scripts/ha-cluster-init 2014-08-19 13:58:22.000000000 +0200
+++ new/sleha-bootstrap-0.4+git.1410854324.8459115/scripts/ha-cluster-init 2014-09-16 10:16:03.000000000 +0200
@@ -456,6 +456,11 @@
fi
done
SBD_DEVICE="$dev"
+
+ SBD_WATCHDOG="yes"
+ if ! check_watchdog; then
+ warn "No watchdog device detected! SBD will not work without a watchdog."
+ fi
fi
[ -b "$SBD_DEVICE" ] || error "SBD device $SBD_DEVICE does not exist"
@@ -467,12 +472,22 @@
invoke sbd -d $SBD_DEVICE create || error "Failed to initialize SBD device"
status_done
- local tmp_conf=$SYSCONFIG_SBD.$$
- cat > $tmp_conf <<END
-SBD_DEVICE="$SBD_DEVICE"
-SBD_OPTS="-W"
-END
- install_tmp $tmp_conf $SYSCONFIG_SBD
+ if [ -f $SYSCONFIG_SBD ]; then
+ if grep -E '^SBD_DEVICE=.*' $SYSCONFIG_SBD >/dev/null 2>&1; then
+ sed -i -e "s%^SBD_DEVICE=.*%SBD_DEVICE=\"$SBD_DEVICE\"%g" $SYSCONFIG_SBD
+ else
+ echo "SBD_DEVICE=\"$SBD_DEVICE\"" >> $SYSCONFIG_SBD
+ fi
+ if grep -E '^SBD_WATCHDOG=.*' $SYSCONFIG_SBD >/dev/null 2>&1; then
+ sed -i -e "s/^SBD_WATCHDOG=.*/SBD_WATCHDOG=\"$SBD_WATCHDOG\"/g" $SYSCONFIG_SBD
+ else
+ echo "SBD_WATCHDOG=\"$SBD_WATCHDOG\"" >> $SYSCONFIG_SBD
+ fi
+ else
+ echo "SBD_DEVICE=\"$SBD_DEVICE\"" > $SYSCONFIG_SBD
+ echo "SBD_WATCHDOG=\"$SBD_WATCHDOG\"" >> $SYSCONFIG_SBD
+ fi
+
invoke csync2 -m $SYSCONFIG_SBD
invoke csync2 -f $SYSCONFIG_SBD
invoke csync2 -xv $SYSCONFIG_SBD
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Plack for openSUSE:Factory checked in at 2014-09-17 17:26:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Plack (Old)
and /work/SRC/openSUSE:Factory/.perl-Plack.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Plack"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Plack/perl-Plack.changes 2013-11-26 14:41:12.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Plack.new/perl-Plack.changes 2014-09-17 17:26:34.000000000 +0200
@@ -1,0 +2,21 @@
+Tue Sep 16 08:08:05 UTC 2014 - coolo(a)suse.com
+
+- updated to 1.0031
+ [SECURITY]
+ - Plack::App::File would previously strip trailing slashes off
+ provided paths. This in combination with the common pattern
+ of serving files with Plack::Middleware::Static could allow
+ an attacker to bypass a whitelist of generated files (avar) #446
+
+ [IMPROVEMENTS]
+ - Let HTTP::Message::PSGI warn in case of invalid PSGI response (wchristian) #437
+ - Update documentation on how response_cb works with writer (doy)
+ - Make AccessLog work on non-POSIX environment (dex4er) #442
+ - Plack::App::WrapCGI no longer warns under 5.19.9 (frew)
+ - Avoid Rosetta Flash attack in JSONP middleware (nichtich) #464
+ - Fix Plack::Util::inline_object to make it work with can() as a class method
+
+ [NEW FEATURES]
+ - Add $req->query_string shortcut to access QUERY_STRING in PSGI environment
+
+-------------------------------------------------------------------
Old:
----
Plack-1.0030.tar.gz
New:
----
Plack-1.0031.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Plack.spec ++++++
--- /var/tmp/diff_new_pack.mdouuy/_old 2014-09-17 17:26:36.000000000 +0200
+++ /var/tmp/diff_new_pack.mdouuy/_new 2014-09-17 17:26:36.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Plack
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: perl-Plack
-Version: 1.0030
+Version: 1.0031
Release: 0
%define cpan_name Plack
Summary: Perl Superglue for Web frameworks and Web Servers (PSGI toolkit)
@@ -33,7 +33,7 @@
BuildRequires: perl(Devel::StackTrace) >= 1.23
BuildRequires: perl(Devel::StackTrace::AsHTML) >= 0.11
BuildRequires: perl(File::ShareDir) >= 1.00
-BuildRequires: perl(File::ShareDir::Install) >= 0.03
+BuildRequires: perl(File::ShareDir::Install) >= 0.06
BuildRequires: perl(Filesys::Notify::Simple)
BuildRequires: perl(HTTP::Body) >= 1.06
BuildRequires: perl(HTTP::Message) >= 5.814
++++++ Plack-1.0030.tar.gz -> Plack-1.0031.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/Changes new/Plack-1.0031/Changes
--- old/Plack-1.0030/Changes 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/Changes 2014-08-01 22:19:17.000000000 +0200
@@ -1,5 +1,23 @@
Go to http://github.com/plack/Plack/issues for the roadmap and known issues.
+1.0031 2014-08-01 13:19:14 PDT
+ [SECURITY]
+ - Plack::App::File would previously strip trailing slashes off
+ provided paths. This in combination with the common pattern
+ of serving files with Plack::Middleware::Static could allow
+ an attacker to bypass a whitelist of generated files (avar) #446
+
+ [IMPROVEMENTS]
+ - Let HTTP::Message::PSGI warn in case of invalid PSGI response (wchristian) #437
+ - Update documentation on how response_cb works with writer (doy)
+ - Make AccessLog work on non-POSIX environment (dex4er) #442
+ - Plack::App::WrapCGI no longer warns under 5.19.9 (frew)
+ - Avoid Rosetta Flash attack in JSONP middleware (nichtich) #464
+ - Fix Plack::Util::inline_object to make it work with can() as a class method
+
+ [NEW FEATURES]
+ - Add $req->query_string shortcut to access QUERY_STRING in PSGI environment
+
1.0030 2013-11-23 08:54:01 CET
[IMPROVEMENTS]
- Middleware::LogDispatch stringifies objects (oalders) #427
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/LICENSE new/Plack-1.0031/LICENSE
--- old/Plack-1.0030/LICENSE 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/LICENSE 2014-08-01 22:19:17.000000000 +0200
@@ -22,7 +22,7 @@
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/MANIFEST new/Plack-1.0031/MANIFEST
--- old/Plack-1.0030/MANIFEST 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/MANIFEST 2014-08-01 22:19:17.000000000 +0200
@@ -1,3 +1,4 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.020.
Changes
LICENSE
MANIFEST
@@ -106,6 +107,7 @@
t/HTTP-Message-PSGI/empty_streamed_response.t
t/HTTP-Message-PSGI/host.t
t/HTTP-Message-PSGI/path_info.t
+t/HTTP-Message-PSGI/unknown_response.t
t/HTTP-Message-PSGI/utf8_req.t
t/HTTP-Server-PSGI/harakiri.t
t/HTTP-Server-PSGI/post.t
@@ -219,6 +221,7 @@
t/Plack-Request/params.t
t/Plack-Request/path_info.t
t/Plack-Request/path_info_escaped.t
+t/Plack-Request/query_string.t
t/Plack-Request/readbody.t
t/Plack-Request/request_uri.t
t/Plack-Request/upload-basename.t
@@ -245,6 +248,7 @@
t/Plack-Util/bad.psgi
t/Plack-Util/bad2.psgi
t/Plack-Util/bin/findbin.psgi
+t/Plack-Util/can.t
t/Plack-Util/error.psgi
t/Plack-Util/foreach.t
t/Plack-Util/headers.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/META.json new/Plack-1.0031/META.json
--- old/Plack-1.0030/META.json 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/META.json 2014-08-01 22:19:17.000000000 +0200
@@ -4,7 +4,7 @@
"Tatsuhiko Miyagawa"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Milla version v1.0.4, Dist::Zilla version 5.006, CPAN::Meta::Converter version 2.132830",
+ "generated_by" : "Dist::Milla version v1.0.5, Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060",
"license" : [
"perl_5"
],
@@ -26,8 +26,8 @@
"prereqs" : {
"configure" : {
"requires" : {
- "ExtUtils::MakeMaker" : "6.30",
- "File::ShareDir::Install" : "0.03"
+ "ExtUtils::MakeMaker" : "0",
+ "File::ShareDir::Install" : "0.06"
}
},
"develop" : {
@@ -95,18 +95,20 @@
"web" : "https://github.com/plack/Plack"
}
},
- "version" : "1.0030",
+ "version" : "1.0031",
"x_authority" : "cpan:MIYAGAWA",
"x_contributors" : [
"Aaron Trevena <aaron.trevena(a)gmail.com>",
- "Alex J. G. Burzy\u0144ski <ajgb(a)cpan.org>",
+ "Alex J. G. Burzyński <ajgb(a)cpan.org>",
"Alexandr Ciornii <alexchorny(a)gmail.com>",
"Andrew Rodland <andrew(a)cleverdomain.org>",
"Andy Wardley <abw(a)wardley.org>",
"Aristotle Pagaltzis <pagaltzis(a)gmx.de>",
- "Ask Bj\u00f8rn Hansen <ask(a)develooper.com>",
+ "Arthur Axel 'fREW' Schmidt <frioux(a)gmail.com>",
+ "Ask Bjørn Hansen <ask(a)develooper.com>",
"Ben Morrow <ben(a)morrow.me.uk>",
"Bernhard Graf <augensalat(a)gmail.com>",
+ "Chad Granum <chad.granum(a)dreamhost.com>",
"Chia-liang Kao <clkao(a)clkao.org>",
"Christian Walde <walde.christian(a)googlemail.com>",
"Cosimo Streppone <cosimo(a)cpan.org>",
@@ -124,6 +126,7 @@
"Henry Baragar <Henry.Baragar(a)Instantiated.Ca>",
"Hiroshi Sakai <ziguzagu(a)gmail.com>",
"Jakob Voss <jakob(a)nichtich.de>",
+ "Jakob Voss <voss(a)gbv.de>",
"Jay Hannah <jay.hannah(a)iinteractive.com>",
"Jesse Luehrs <doy(a)cpan.org>",
"Jiro Nishiguchi <jiro(a)cpan.org>",
@@ -149,7 +152,7 @@
"Olaf Alders <olaf(a)wundersolutions.com>",
"Oliver Gorwits <oliver(a)cpan.org>",
"Oliver Paukstadt <pstadt(a)sourcentral.org>",
- "Olivier Mengu\u00e9 <dolmen(a)cpan.org>",
+ "Olivier Mengué <dolmen(a)cpan.org>",
"Panu Ervamaa <panu.ervamaa(a)frantic.com>",
"Paul Driver <frodwith(a)gmail.com>",
"Pedro Melo <melo(a)simplicidade.org>",
@@ -162,6 +165,7 @@
"Ricky Morse <remorse(a)partners.org>",
"Rob Hoelz <rob(a)hoelz.ro>",
"Ryo Miyake <ryo.studiom(a)gmail.com>",
+ "Sawyer X <xsawyerx(a)cpan.org>",
"Scott S. McCoy <smccoy(a)saymedia.com>",
"Shawn M Moore <sartak(a)gmail.com>",
"Stephen Clouse <stephenclouse(a)gmail.com>",
@@ -190,8 +194,8 @@
"vti <viacheslav.t(a)gmail.com>",
"xaicron <xaicron(a)gmail.com>",
"yappo <yappo(a)shibuya.pl>",
- "\u00c6var Arnfj\u00f6r\u00f0 Bjarmason <avarab(a)gmail.com>",
- "\u5510\u9cf3 <audreyt(a)audreyt.org>"
+ "Ævar Arnfjörð Bjarmason <avarab(a)gmail.com>",
+ "唐鳳 <audreyt(a)audreyt.org>"
]
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/META.yml new/Plack-1.0031/META.yml
--- old/Plack-1.0030/META.yml 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/META.yml 2014-08-01 22:19:17.000000000 +0200
@@ -3,17 +3,17 @@
author:
- 'Tatsuhiko Miyagawa'
build_requires:
- Test::More: 0.88
- Test::Requires: 0
+ Test::More: '0.88'
+ Test::Requires: '0'
configure_requires:
- ExtUtils::MakeMaker: 6.30
- File::ShareDir::Install: 0.03
+ ExtUtils::MakeMaker: '0'
+ File::ShareDir::Install: '0.06'
dynamic_config: 0
-generated_by: 'Dist::Milla version v1.0.4, Dist::Zilla version 5.006, CPAN::Meta::Converter version 2.132830'
+generated_by: 'Dist::Milla version v1.0.5, Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Plack
no_index:
directory:
@@ -24,27 +24,27 @@
- eg
- examples
requires:
- Apache::LogFormat::Compiler: 0.12
- Devel::StackTrace: 1.23
- Devel::StackTrace::AsHTML: 0.11
- File::ShareDir: 1.00
- Filesys::Notify::Simple: 0
- HTTP::Body: 1.06
- HTTP::Message: 5.814
- HTTP::Tiny: 0.034
- Hash::MultiValue: 0.05
- Pod::Usage: 1.36
- Stream::Buffered: 0.02
- Test::TCP: 2.00
- Try::Tiny: 0
- URI: 1.59
- parent: 0
- perl: 5.008001
+ Apache::LogFormat::Compiler: '0.12'
+ Devel::StackTrace: '1.23'
+ Devel::StackTrace::AsHTML: '0.11'
+ File::ShareDir: '1.00'
+ Filesys::Notify::Simple: '0'
+ HTTP::Body: '1.06'
+ HTTP::Message: '5.814'
+ HTTP::Tiny: '0.034'
+ Hash::MultiValue: '0.05'
+ Pod::Usage: '1.36'
+ Stream::Buffered: '0.02'
+ Test::TCP: '2.00'
+ Try::Tiny: '0'
+ URI: '1.59'
+ parent: '0'
+ perl: '5.008001'
resources:
bugtracker: https://github.com/plack/Plack/issues
homepage: https://github.com/plack/Plack
repository: https://github.com/plack/Plack.git
-version: 1.0030
+version: '1.0031'
x_authority: cpan:MIYAGAWA
x_contributors:
- 'Aaron Trevena <aaron.trevena(a)gmail.com>'
@@ -53,9 +53,11 @@
- 'Andrew Rodland <andrew(a)cleverdomain.org>'
- 'Andy Wardley <abw(a)wardley.org>'
- 'Aristotle Pagaltzis <pagaltzis(a)gmx.de>'
+ - "Arthur Axel 'fREW' Schmidt <frioux(a)gmail.com>"
- 'Ask Bjørn Hansen <ask(a)develooper.com>'
- 'Ben Morrow <ben(a)morrow.me.uk>'
- 'Bernhard Graf <augensalat(a)gmail.com>'
+ - 'Chad Granum <chad.granum(a)dreamhost.com>'
- 'Chia-liang Kao <clkao(a)clkao.org>'
- 'Christian Walde <walde.christian(a)googlemail.com>'
- 'Cosimo Streppone <cosimo(a)cpan.org>'
@@ -73,6 +75,7 @@
- 'Henry Baragar <Henry.Baragar(a)Instantiated.Ca>'
- 'Hiroshi Sakai <ziguzagu(a)gmail.com>'
- 'Jakob Voss <jakob(a)nichtich.de>'
+ - 'Jakob Voss <voss(a)gbv.de>'
- 'Jay Hannah <jay.hannah(a)iinteractive.com>'
- 'Jesse Luehrs <doy(a)cpan.org>'
- 'Jiro Nishiguchi <jiro(a)cpan.org>'
@@ -111,6 +114,7 @@
- 'Ricky Morse <remorse(a)partners.org>'
- 'Rob Hoelz <rob(a)hoelz.ro>'
- 'Ryo Miyake <ryo.studiom(a)gmail.com>'
+ - 'Sawyer X <xsawyerx(a)cpan.org>'
- 'Scott S. McCoy <smccoy(a)saymedia.com>'
- 'Shawn M Moore <sartak(a)gmail.com>'
- 'Stephen Clouse <stephenclouse(a)gmail.com>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/Makefile.PL new/Plack-1.0031/Makefile.PL
--- old/Plack-1.0030/Makefile.PL 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/Makefile.PL 2014-08-01 22:19:17.000000000 +0200
@@ -1,22 +1,24 @@
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.020.
use strict;
use warnings;
use 5.008001;
-use ExtUtils::MakeMaker 6.30;
+use ExtUtils::MakeMaker ;
use File::ShareDir::Install;
+$File::ShareDir::Install::INCLUDE_DOTFILES = 1;
+$File::ShareDir::Install::INCLUDE_DOTDIRS = 1;
install_share dist => "share";
my %WriteMakefileArgs = (
"ABSTRACT" => "Perl Superglue for Web frameworks and Web Servers (PSGI toolkit)",
"AUTHOR" => "Tatsuhiko Miyagawa",
- "BUILD_REQUIRES" => {},
"CONFIGURE_REQUIRES" => {
- "ExtUtils::MakeMaker" => "6.30",
- "File::ShareDir::Install" => "0.03"
+ "ExtUtils::MakeMaker" => 0,
+ "File::ShareDir::Install" => "0.06"
},
"DISTNAME" => "Plack",
"EXE_FILES" => [
@@ -45,7 +47,7 @@
"Test::More" => "0.88",
"Test::Requires" => 0
},
- "VERSION" => "1.0030",
+ "VERSION" => "1.0031",
"test" => {
"TESTS" => "t/*.t t/HTTP-Message-PSGI/*.t t/HTTP-Server-PSGI/*.t t/Plack-Builder/*.t t/Plack-HTTPParser-PP/*.t t/Plack-Handler/*.t t/Plack-Loader/*.t t/Plack-MIME/*.t t/Plack-Middleware/*.t t/Plack-Middleware/cascade/*.t t/Plack-Middleware/recursive/*.t t/Plack-Middleware/stacktrace/*.t t/Plack-Request/*.t t/Plack-Response/*.t t/Plack-Runner/*.t t/Plack-TempBuffer/*.t t/Plack-Test/*.t t/Plack-Util/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/lib/HTTP/Message/PSGI.pm new/Plack-1.0031/lib/HTTP/Message/PSGI.pm
--- old/Plack-1.0030/lib/HTTP/Message/PSGI.pm 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/lib/HTTP/Message/PSGI.pm 2014-08-01 22:19:17.000000000 +0200
@@ -99,11 +99,12 @@
my $res;
if (ref $psgi_res eq 'ARRAY') {
_res_from_psgi($psgi_res, \$res);
- }
- elsif (ref $psgi_res eq 'CODE') {
+ } elsif (ref $psgi_res eq 'CODE') {
$psgi_res->(sub {
_res_from_psgi($_[0], \$res);
});
+ } else {
+ Carp::croak("Bad response: ", defined $psgi_res ? $psgi_res : 'undef');
}
return $res;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/lib/Plack/App/File.pm new/Plack-1.0031/lib/Plack/App/File.pm
--- old/Plack-1.0030/lib/Plack/App/File.pm 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/lib/Plack/App/File.pm 2014-08-01 22:19:17.000000000 +0200
@@ -44,7 +44,7 @@
}
my $docroot = $self->root || ".";
- my @path = split /[\\\/]/, $path;
+ my @path = split /[\\\/]/, $path, -1; # -1 *MUST* be here to avoid security issues!
if (@path) {
shift @path if $path[0] eq '';
} else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/lib/Plack/App/WrapCGI.pm new/Plack-1.0031/lib/Plack/App/WrapCGI.pm
--- old/Plack-1.0030/lib/Plack/App/WrapCGI.pm 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/lib/Plack/App/WrapCGI.pm 2014-08-01 22:19:17.000000000 +0200
@@ -63,9 +63,9 @@
my $res = '';
while (waitpid($pid, WNOHANG) <= 0) {
- $res .= do { local $/; <$stdoutr> };
+ $res .= do { local $/; <$stdoutr> } || '';
}
- $res .= do { local $/; <$stdoutr> };
+ $res .= do { local $/; <$stdoutr> } || '';
if (POSIX::WIFEXITED($?)) {
return CGI::Parse::PSGI::parse_cgi_output(\$res);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/lib/Plack/Middleware/JSONP.pm new/Plack-1.0031/lib/Plack/Middleware/JSONP.pm
--- old/Plack-1.0030/lib/Plack/Middleware/JSONP.pm 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/lib/Plack/Middleware/JSONP.pm 2014-08-01 22:19:17.000000000 +0200
@@ -27,7 +27,7 @@
if ($cb =~ /^[\w\.\[\]]+$/) {
my $body;
Plack::Util::foreach($res->[2], sub { $body .= $_[0] });
- my $jsonp = "$cb($body)";
+ my $jsonp = "/**/$cb($body)";
$res->[2] = [ $jsonp ];
$h->set('Content-Length', length $jsonp);
$h->set('Content-Type', 'text/javascript');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/lib/Plack/Middleware/Runtime.pm new/Plack-1.0031/lib/Plack/Middleware/Runtime.pm
--- old/Plack-1.0030/lib/Plack/Middleware/Runtime.pm 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/lib/Plack/Middleware/Runtime.pm 2014-08-01 22:19:17.000000000 +0200
@@ -10,11 +10,12 @@
my $start = [ Time::HiRes::gettimeofday ];
my $res = $self->app->($env);
+ my $header = $self->header_name || 'X-Runtime';
$self->response_cb($res, sub {
my $res = shift;
my $req_time = sprintf '%.6f', Time::HiRes::tv_interval($start);
- Plack::Util::header_set($res->[1], 'X-Runtime', $req_time);
+ Plack::Util::header_set($res->[1], $header, $req_time);
});
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/lib/Plack/Middleware/SimpleLogger.pm new/Plack-1.0031/lib/Plack/Middleware/SimpleLogger.pm
--- old/Plack-1.0030/lib/Plack/Middleware/SimpleLogger.pm 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/lib/Plack/Middleware/SimpleLogger.pm 2014-08-01 22:19:17.000000000 +0200
@@ -1,6 +1,7 @@
package Plack::Middleware::SimpleLogger;
use strict;
use parent qw(Plack::Middleware);
+use Config ();
use Plack::Util::Accessor qw(level);
use POSIX ();
use Scalar::Util ();
@@ -29,10 +30,15 @@
}
sub format_time {
- my $old_locale = POSIX::setlocale(&POSIX::LC_ALL);
- POSIX::setlocale(&POSIX::LC_ALL, 'C');
+ my $old_locale;
+ if ( $Config::config{d_setlocale} ) {
+ $old_locale = POSIX::setlocale(&POSIX::LC_ALL);
+ POSIX::setlocale(&POSIX::LC_ALL, 'C');
+ }
my $out = POSIX::strftime(@_);
- POSIX::setlocale(&POSIX::LC_ALL, $old_locale);
+ if ( $Config::config{d_setlocale} ) {
+ POSIX::setlocale(&POSIX::LC_ALL, $old_locale);
+ };
return $out;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/lib/Plack/Middleware.pm new/Plack-1.0031/lib/Plack/Middleware.pm
--- old/Plack-1.0030/lib/Plack/Middleware.pm 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/lib/Plack/Middleware.pm 2014-08-01 22:19:17.000000000 +0200
@@ -106,8 +106,11 @@
# do something with $res;
});
-The callback function gets a PSGI response as a 3 element array
-reference, and you can update the reference to implement the post-processing.
+The callback function gets a response as an array reference, and you can
+update the reference to implement the post-processing. In the normal
+case, this arrayref will have three elements (as described by the PSGI
+spec), but will have only two elements when using a C<$writer> as
+described below.
package Plack::Middleware::Always500;
use parent qw(Plack::Middleware);
@@ -151,12 +154,13 @@
return;
});
-The third element of the PSGI response array ref is a body, and it could
+The third element of the response array ref is a body, and it could
be either an arrayref or L<IO::Handle>-ish object. The application could
also make use of the C<$writer> object if C<psgi.streaming> is in
-effect. Dealing with these variants is again really painful, and
-C<response_cb> can take care of that too, by allowing you to return a
-content filter as a code reference.
+effect, and in this case, the third element will not exist
+(C<@$res == 2>). Dealing with these variants is again really painful,
+and C<response_cb> can take care of that too, by allowing you to return
+a content filter as a code reference.
# replace all "Foo" in content body with "Bar"
Plack::Util::response_cb($res, sub {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/lib/Plack/Request.pm new/Plack-1.0031/lib/Plack/Request.pm
--- old/Plack-1.0030/lib/Plack/Request.pm 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/lib/Plack/Request.pm 2014-08-01 22:19:17.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
use 5.008_001;
-our $VERSION = '1.0030';
+our $VERSION = '1.0031';
use HTTP::Headers;
use Carp ();
@@ -33,6 +33,7 @@
sub request_uri { $_[0]->env->{REQUEST_URI} }
sub path_info { $_[0]->env->{PATH_INFO} }
sub path { $_[0]->env->{PATH_INFO} || '/' }
+sub query_string{ $_[0]->env->{QUERY_STRING} }
sub script_name { $_[0]->env->{SCRIPT_NAME} }
sub scheme { $_[0]->env->{'psgi.url_scheme'} }
sub secure { $_[0]->scheme eq 'https' }
@@ -85,18 +86,10 @@
my @query;
my $query_string = $self->env->{QUERY_STRING};
if (defined $query_string) {
- if ($query_string =~ /=/) {
- # Handle ?foo=bar&bar=foo type of query
- @query =
- map { s/\+/ /g; URI::Escape::uri_unescape($_) }
- map { /=/ ? split(/=/, $_, 2) : ($_ => '')}
- split(/[&;]/, $query_string);
- } else {
- # Handle ...?dog+bones type of query
- @query =
- map { (URI::Escape::uri_unescape($_), '') }
- split(/\+/, $query_string, -1);
- }
+ @query =
+ map { s/\+/ /g; URI::Escape::uri_unescape($_) }
+ map { /=/ ? split(/=/, $_, 2) : ($_ => '')}
+ split(/[&;]/, $query_string);
}
Hash::MultiValue->new(@query);
@@ -417,6 +410,11 @@
words, it returns the virtual path of the request URI after C<<
$req->base >>. See L</"DISPATCHING"> for details.
+=item query_string
+
+Returns B<QUERY_STRING> in the environment. This is the undecoded
+query string in the request URI.
+
=item script_name
Returns B<SCRIPT_NAME> in the environment. This is the absolute path
@@ -459,7 +457,7 @@
If there are multiple cookies with the same name in the request, this
method will ignore the duplicates and return only the first value. If
that causes issues for you, you may have to use modules like
-CGI::Simple::Cookie to parse C<$request->header('Cookies')> by
+CGI::Simple::Cookie to parse C<<$request->header('Cookies')>> by
yourself.
=item query_parameters
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/lib/Plack/Response.pm new/Plack-1.0031/lib/Plack/Response.pm
--- old/Plack-1.0030/lib/Plack/Response.pm 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/lib/Plack/Response.pm 2014-08-01 22:19:17.000000000 +0200
@@ -1,7 +1,7 @@
package Plack::Response;
use strict;
use warnings;
-our $VERSION = '1.0030';
+our $VERSION = '1.0031';
use Plack::Util::Accessor qw(body status);
use Carp ();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/lib/Plack/Util.pm new/Plack-1.0031/lib/Plack/Util.pm
--- old/Plack-1.0030/lib/Plack/Util.pm 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/lib/Plack/Util.pm 2014-08-01 22:19:17.000000000 +0200
@@ -309,7 +309,8 @@
our $AUTOLOAD;
sub can {
- $_[0]->{$_[1]};
+ return $_[0]->{$_[1]} if Scalar::Util::blessed($_[0]);
+ goto &UNIVERSAL::can;
}
sub AUTOLOAD {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/lib/Plack.pm new/Plack-1.0031/lib/Plack.pm
--- old/Plack-1.0030/lib/Plack.pm 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/lib/Plack.pm 2014-08-01 22:19:17.000000000 +0200
@@ -3,7 +3,7 @@
use strict;
use warnings;
use 5.008_001;
-our $VERSION = '1.0030';
+our $VERSION = '1.0031';
1;
__END__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/t/HTTP-Message-PSGI/unknown_response.t new/Plack-1.0031/t/HTTP-Message-PSGI/unknown_response.t
--- old/Plack-1.0030/t/HTTP-Message-PSGI/unknown_response.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Plack-1.0031/t/HTTP-Message-PSGI/unknown_response.t 2014-08-01 22:19:17.000000000 +0200
@@ -0,0 +1,20 @@
+use strict;
+use warnings;
+use Test::More;
+use HTTP::Message::PSGI;
+use HTTP::Request;
+use HTTP::Response;
+
+my $res;
+my $app = sub { $res };
+my $env = req_to_psgi(HTTP::Request->new(GET => "http://localhost/"));
+
+eval { HTTP::Response->from_psgi($app->($env)) };
+like($@, qr/Bad response: undef/, 'converting undef PSGI response results in error');
+
+$res = 5;
+
+eval { HTTP::Response->from_psgi($app->($env)) };
+like($@, qr/Bad response: 5/, 'converting invalid PSGI response results in error');
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/t/Plack-Middleware/file.t new/Plack-1.0031/t/Plack-Middleware/file.t
--- old/Plack-1.0030/t/Plack-Middleware/file.t 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/t/Plack-Middleware/file.t 2014-08-01 22:19:17.000000000 +0200
@@ -3,6 +3,7 @@
use Test::More;
use HTTP::Request::Common;
use Plack::App::File;
+use FindBin qw($Bin);
my $app = Plack::App::File->new(file => 'Changes');
@@ -35,6 +36,24 @@
is $res->code, 200;
};
+my $app_secure = Plack::App::File->new(root => $Bin);
+test_psgi $app_secure, sub {
+ my $cb = shift;
+
+ my $res = $cb->(GET "/file.t");
+ is $res->code, 200;
+ like $res->content, qr/We will find for this literal string/;
+
+ my $res = $cb->(GET "/../Plack-Middleware/file.t");
+ is $res->code, 403;
+ is $res->content, 'forbidden';
+
+ for my $i (1..100) {
+ $res = $cb->(GET "/file.t" . ("/" x $i));
+ is $res->code, 404;
+ is $res->content, 'not found';
+ }
+};
done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/t/Plack-Middleware/jsonp.t new/Plack-1.0031/t/Plack-Middleware/jsonp.t
--- old/Plack-1.0030/t/Plack-Middleware/jsonp.t 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/t/Plack-Middleware/jsonp.t 2014-08-01 22:19:17.000000000 +0200
@@ -50,7 +50,7 @@
is $res->content, $json;
$res = $cb->(HTTP::Request->new(GET => 'http://localhost/?'.$callback_key.'=foo'));
is $res->content_type, 'text/javascript';
- is $res->content, "foo($json)";
+ is $res->content, "/**/foo($json)";
};
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/t/Plack-Request/query_string.t new/Plack-1.0031/t/Plack-Request/query_string.t
--- old/Plack-1.0030/t/Plack-Request/query_string.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Plack-1.0031/t/Plack-Request/query_string.t 2014-08-01 22:19:17.000000000 +0200
@@ -0,0 +1,22 @@
+use strict;
+use Test::More;
+use Plack::Request;
+use Plack::Test;
+use HTTP::Request::Common;
+
+my $app = sub {
+ my $req = Plack::Request->new(shift);
+ return [ 200, [], [ $req->query_string ] ];
+};
+
+test_psgi $app, sub {
+ my $cb = shift;
+
+ my $res = $cb->(GET "http://localhost/?foo=bar");
+ is $res->content, 'foo=bar';
+
+ $res = $cb->(GET "http://localhost/?foo+bar");
+ is $res->content, 'foo+bar';
+};
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/t/Plack-Request/uri.t new/Plack-1.0031/t/Plack-Request/uri.t
--- old/Plack-1.0030/t/Plack-Request/uri.t 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/t/Plack-Request/uri.t 2014-08-01 22:19:17.000000000 +0200
@@ -82,6 +82,13 @@
{ add_env => {
HTTP_HOST => 'example.com',
SCRIPT_NAME => "",
+ QUERY_STRING => "foo+bar"
+ },
+ uri => 'http://example.com/?foo+bar',
+ parameters => { 'foo bar' => '' } },
+ { add_env => {
+ HTTP_HOST => 'example.com',
+ SCRIPT_NAME => "",
QUERY_STRING => 0
},
uri => 'http://example.com/?0',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/t/Plack-Util/can.t new/Plack-1.0031/t/Plack-Util/can.t
--- old/Plack-1.0030/t/Plack-Util/can.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Plack-1.0031/t/Plack-Util/can.t 2014-08-01 22:19:17.000000000 +0200
@@ -0,0 +1,15 @@
+use strict;
+use warnings;
+use Test::More;
+use Plack::Util;
+
+my $can;
+my $lives = eval { $can = Plack::Util->can('something_obviously_fake'); 1 };
+ok($lives, "Did not die calling 'can' on Plack::Util package with invalid sub");
+is($can, undef, "Cannot do that method");
+
+$lives = eval { $can = Plack::Util->can('content_length'); 1 };
+ok($lives, "Did not die calling 'can' on Plack::Util package with real sub");
+is($can, \&Plack::Util::content_length, "can() returns the sub");
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Plack-1.0030/t/release-pod-syntax.t new/Plack-1.0031/t/release-pod-syntax.t
--- old/Plack-1.0030/t/release-pod-syntax.t 2013-11-23 08:54:05.000000000 +0100
+++ new/Plack-1.0031/t/release-pod-syntax.t 2014-08-01 22:19:17.000000000 +0200
@@ -7,9 +7,8 @@
}
}
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
+use Test::Pod 1.41;
all_pod_files_ok();
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-strictures for openSUSE:Factory checked in at 2014-09-17 17:26:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-strictures (Old)
and /work/SRC/openSUSE:Factory/.perl-strictures.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-strictures"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-strictures/perl-strictures.changes 2014-03-02 07:43:06.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-strictures.new/perl-strictures.changes 2014-09-17 17:26:33.000000000 +0200
@@ -1,0 +2,7 @@
+Tue Sep 16 08:07:55 UTC 2014 - coolo(a)suse.com
+
+- updated to 1.005005
+ - include minimum perl version in metadata
+ - make sure meta files list extra modules as recommendations, not requirements
+
+-------------------------------------------------------------------
Old:
----
strictures-1.005003.tar.gz
New:
----
strictures-1.005005.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-strictures.spec ++++++
--- /var/tmp/diff_new_pack.dBPF8N/_old 2014-09-17 17:26:34.000000000 +0200
+++ /var/tmp/diff_new_pack.dBPF8N/_new 2014-09-17 17:26:34.000000000 +0200
@@ -17,10 +17,10 @@
Name: perl-strictures
-Version: 1.005003
+Version: 1.005005
Release: 0
%define cpan_name strictures
-Summary: turn on strict and make all warnings fatal
+Summary: Turn on strict and make all warnings fatal
License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/strictures/
@@ -29,13 +29,15 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
-BuildRequires: perl(ExtUtils::CBuilder)
BuildRequires: perl(bareword::filehandles)
BuildRequires: perl(indirect)
BuildRequires: perl(multidimensional)
Requires: perl(bareword::filehandles)
Requires: perl(indirect)
Requires: perl(multidimensional)
+Recommends: perl(bareword::filehandles)
+Recommends: perl(indirect)
+Recommends: perl(multidimensional)
%{perl_requires}
%description
++++++ strictures-1.005003.tar.gz -> strictures-1.005005.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/strictures-1.005003/Changes new/strictures-1.005005/Changes
--- old/strictures-1.005003/Changes 2014-02-12 23:01:53.000000000 +0100
+++ new/strictures-1.005005/Changes 2014-08-16 03:16:45.000000000 +0200
@@ -1,5 +1,11 @@
Release history for strictures
+1.005005 - 2014-08-16
+ - include minimum perl version in metadata
+
+1.005004 - 2014-03-06
+ - make sure meta files list extra modules as recommendations, not requirements
+
1.005003 - 2014-02-12
- added support for PUREPERL_ONLY (rt#91407)
- fixed using strictures->VERSION to query the version (rt#92965)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/strictures-1.005003/META.json new/strictures-1.005005/META.json
--- old/strictures-1.005003/META.json 2014-02-12 23:02:02.000000000 +0100
+++ new/strictures-1.005005/META.json 2014-08-16 03:16:54.000000000 +0200
@@ -4,7 +4,7 @@
"mst - Matt S. Trout (cpan:MSTROUT) <mst(a)shadowcat.co.uk>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.86, CPAN::Meta::Converter version 2.133380",
+ "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.141520",
"license" : [
"perl_5"
],
@@ -16,28 +16,37 @@
"no_index" : {
"directory" : [
"t",
- "inc"
+ "xt"
]
},
"prereqs" : {
"build" : {
- "requires" : {
- "ExtUtils::MakeMaker" : "0"
- }
+ "requires" : {}
},
"configure" : {
+ "requires" : {}
+ },
+ "develop" : {
"requires" : {
- "ExtUtils::CBuilder" : "0",
- "ExtUtils::MakeMaker" : "0"
+ "bareword::filehandles" : "0",
+ "indirect" : "0",
+ "multidimensional" : "0"
}
},
"runtime" : {
- "requires" : {
+ "recommends" : {
"bareword::filehandles" : "0",
"indirect" : "0",
- "multidimensional" : "0",
+ "multidimensional" : "0"
+ },
+ "requires" : {
"perl" : "5.006"
}
+ },
+ "test" : {
+ "requires" : {
+ "Test::More" : "0"
+ }
}
},
"release_status" : "stable",
@@ -46,11 +55,14 @@
"mailto" : "bug-strictures(a)rt.cpan.org",
"web" : "https://rt.cpan.org/Public/Dist/Display.html?Name=strictures"
},
+ "license" : [
+ "http://dev.perl.org/licenses/"
+ ],
"repository" : {
"type" : "git",
"url" : "git://git.shadowcat.co.uk/p5sagit/strictures.git",
"web" : "http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/strictures.git"
}
},
- "version" : "1.005003"
+ "version" : "1.005005"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/strictures-1.005003/META.yml new/strictures-1.005005/META.yml
--- old/strictures-1.005003/META.yml 2014-02-12 23:02:02.000000000 +0100
+++ new/strictures-1.005005/META.yml 2014-08-16 03:16:54.000000000 +0200
@@ -3,27 +3,27 @@
author:
- 'mst - Matt S. Trout (cpan:MSTROUT) <mst(a)shadowcat.co.uk>'
build_requires:
- ExtUtils::MakeMaker: 0
-configure_requires:
- ExtUtils::CBuilder: 0
- ExtUtils::MakeMaker: 0
+ Test::More: '0'
+configure_requires: {}
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.86, CPAN::Meta::Converter version 2.133380'
+generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.141520'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: strictures
no_index:
directory:
- t
- - inc
+ - xt
+recommends:
+ bareword::filehandles: '0'
+ indirect: '0'
+ multidimensional: '0'
requires:
- bareword::filehandles: 0
- indirect: 0
- multidimensional: 0
- perl: 5.006
+ perl: '5.006'
resources:
bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=strictures
+ license: http://dev.perl.org/licenses/
repository: git://git.shadowcat.co.uk/p5sagit/strictures.git
-version: 1.005003
+version: '1.005005'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/strictures-1.005003/Makefile.PL new/strictures-1.005005/Makefile.PL
--- old/strictures-1.005003/Makefile.PL 2014-02-12 19:59:33.000000000 +0100
+++ new/strictures-1.005005/Makefile.PL 2014-08-12 09:50:11.000000000 +0200
@@ -1,8 +1,11 @@
use strict;
use warnings FATAL => 'all';
-use ExtUtils::MakeMaker;
+use 5.006;
-(do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml';
+my $have_compiler
+ = ! parse_args()->{PUREPERL_ONLY}
+ && eval { require ExtUtils::CBuilder; 1 }
+ && ExtUtils::CBuilder->new->have_compiler;
my %extra_prereqs = (
indirect => 0,
@@ -10,9 +13,56 @@
'bareword::filehandles' => 0,
);
-use Text::ParseWords;
+my %META = (
+ name => 'strictures',
+ license => 'perl_5',
+ prereqs => {
+ configure => { requires => { } },
+ build => { requires => { } },
+ test => { requires => {
+ 'Test::More' => 0,
+ } },
+ runtime => {
+ requires => {
+ perl => '5.006',
+ },
+ recommends => {
+ %extra_prereqs,
+ },
+ },
+ develop => { requires => {
+ %extra_prereqs,
+ } },
+ },
+ resources => {
+ # r/w: p5sagit@git.shadowcat.co.uk:strictures.git
+ repository => {
+ url => 'git://git.shadowcat.co.uk/p5sagit/strictures.git',
+ web => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/strictures.git',
+ type => 'git',
+ },
+ bugtracker => {
+ mailto => 'bug-strictures(a)rt.cpan.org',
+ web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=strictures',
+ },
+ license => [ 'http://dev.perl.org/licenses/' ],
+ },
+ no_index => {
+ directory => [ 't', 'xt' ]
+ },
+);
+
+my %MM_ARGS = (
+ PREREQ_PM => {
+ ($] >= 5.008004 && $have_compiler ? %extra_prereqs : () )
+ },
+ realclean => { FILES => [ 'Distar/', 'MANIFEST*' ] },
+);
+
sub parse_args {
# copied from EUMM
+ require ExtUtils::MakeMaker;
+ require Text::ParseWords;
ExtUtils::MakeMaker::parse_args(
my $tmp = {},
Text::ParseWords::shellwords($ENV{PERL_MM_OPT} || ''),
@@ -21,46 +71,42 @@
return $tmp->{ARGS} || {};
}
-my $have_compiler
- = ! parse_args()->{PUREPERL_ONLY}
- && eval { require ExtUtils::CBuilder; 1 }
- && ExtUtils::CBuilder->new->have_compiler;
+##############################################################################
+require ExtUtils::MakeMaker;
+(do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml';
-WriteMakefile(
- NAME => 'strictures',
- VERSION_FROM => 'lib/strictures.pm',
- MIN_PERL_VERSION => '5.006',
-
- META_MERGE => {
- 'meta-spec' => { version => 2 },
- dynamic_config => 1,
-
- resources => {
- # r/w: p5sagit@git.shadowcat.co.uk:strictures.git
- repository => {
- url => 'git://git.shadowcat.co.uk/p5sagit/strictures.git',
- web => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/strictures.git',
- type => 'git',
- },
- bugtracker => {
- mailto => 'bug-strictures(a)rt.cpan.org',
- web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=strictures',
- },
- },
+# have to do this since old EUMM dev releases miss the eval $VERSION line
+my $eumm_version = eval $ExtUtils::MakeMaker::VERSION;
+my $mymeta = $eumm_version >= 6.57_02;
+my $mymeta_broken = $mymeta && $eumm_version < 6.57_07;
+
+($MM_ARGS{NAME} = $META{name}) =~ s/-/::/g;
+($MM_ARGS{VERSION_FROM} = "lib/$MM_ARGS{NAME}.pm") =~ s{::}{/}g;
+$MM_ARGS{LICENSE} = $META{license}
+ if $eumm_version >= 6.30;
+$MM_ARGS{NO_MYMETA} = 1
+ if $mymeta_broken;
+$MM_ARGS{META_ADD} = { 'meta-spec' => { version => 2 }, %META }
+ unless -f 'META.yml';
+
+for (qw(configure build test runtime)) {
+ my $key = $_ eq 'runtime' ? 'PREREQ_PM' : uc $_.'_REQUIRES';
+ my $r = $MM_ARGS{$key} = {
+ %{$META{prereqs}{$_}{requires} || {}},
+ %{delete $MM_ARGS{$key} || {}},
+ };
+ defined $r->{$_} or delete $r->{$_} for keys %$r;
+}
- prereqs => {
- configure => {
- requires => {
- 'ExtUtils::CBuilder' => 0,
- },
- },
- runtime => {
- ( $] >= 5.008004 && !$have_compiler
- ? ( recommends => \%extra_prereqs ) : () ),
- },
- },
- },
+$MM_ARGS{MIN_PERL_VERSION} = delete $MM_ARGS{PREREQ_PM}{perl} || 0;
- ($] >= 5.008004 && $have_compiler
- ? ( PREREQ_PM => \%extra_prereqs ) : () ),
-);
+delete $MM_ARGS{MIN_PERL_VERSION}
+ if $eumm_version < 6.47_01;
+$MM_ARGS{BUILD_REQUIRES} = {%{$MM_ARGS{BUILD_REQUIRES}}, %{delete $MM_ARGS{TEST_REQUIRES}}}
+ if $eumm_version < 6.63_03;
+$MM_ARGS{PREREQ_PM} = {%{$MM_ARGS{PREREQ_PM}}, %{delete $MM_ARGS{BUILD_REQUIRES}}}
+ if $eumm_version < 6.55_01;
+delete $MM_ARGS{CONFIGURE_REQUIRES}
+ if $eumm_version < 6.51_03;
+
+ExtUtils::MakeMaker::WriteMakefile(%MM_ARGS);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/strictures-1.005003/lib/strictures.pm new/strictures-1.005005/lib/strictures.pm
--- old/strictures-1.005003/lib/strictures.pm 2014-02-12 23:00:22.000000000 +0100
+++ new/strictures-1.005005/lib/strictures.pm 2014-08-16 03:16:14.000000000 +0200
@@ -7,7 +7,7 @@
*_PERL_LT_5_8_4 = ($] < 5.008004) ? sub(){1} : sub(){0};
}
-our $VERSION = '1.005003'; # 1.5.3
+our $VERSION = '1.005005';
sub VERSION {
my ($class, $version) = @_;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/strictures-1.005003/maint/bump-version new/strictures-1.005005/maint/bump-version
--- old/strictures-1.005003/maint/bump-version 2013-09-18 08:11:53.000000000 +0200
+++ new/strictures-1.005005/maint/bump-version 2014-08-16 03:15:28.000000000 +0200
@@ -7,9 +7,10 @@
chomp(my $LATEST = qx(grep '^[0-9]' Changes | head -1 | awk '{print \$1}'));
-my @parts = split /\./, $LATEST;
+my @parts = map { m/(\d{1,3})/g } split /\./, $LATEST;
+push @parts, 0, 0;
-my $OLD_DECIMAL = sprintf('%i.%03i%03i', @parts);
+my $OLD_DECIMAL = sprintf('%i.%03i%03i', @parts[0..2]);
my %bump_part = (major => 0, minor => 1, bugfix => 2);
@@ -21,16 +22,18 @@
$new_parts[$bump_this]++;
-my $NEW_DECIMAL = sprintf('%i.%03i%03i', @new_parts);
+my $NEW_DECIMAL = sprintf('%i.%03i%03i', @new_parts[0..2]);
-warn "Bumping $OLD_DECIMAL -> $NEW_DECIMAL\n";
+my @PM_FILES = ( 'lib/strictures.pm' );
-my $PM_FILE = 'lib/Module/Metadata.pm';
+foreach my $filename (@PM_FILES) {
+ warn "Bumping $OLD_DECIMAL -> $NEW_DECIMAL in $filename\n";
-my $file = do { local (@ARGV, $/) = ($PM_FILE); <> };
+ my $file = do { local (@ARGV, $/) = ($filename); <> };
-$file =~ s/(?<=\$VERSION = ')${\quotemeta $OLD_DECIMAL}/${NEW_DECIMAL}/;
+ $file =~ s/(?<=\$VERSION = ')${\quotemeta $OLD_DECIMAL}/${NEW_DECIMAL}/;
-open my $out, '>', $PM_FILE;
+ open my $out, '>', $filename;
-print $out $file;
+ print $out $file;
+}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Sysadm-Install for openSUSE:Factory checked in at 2014-09-17 17:26:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Sysadm-Install (Old)
and /work/SRC/openSUSE:Factory/.perl-Sysadm-Install.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Sysadm-Install"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Sysadm-Install/perl-Sysadm-Install.changes 2013-06-21 13:37:20.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Sysadm-Install.new/perl-Sysadm-Install.changes 2014-09-17 17:26:32.000000000 +0200
@@ -1,0 +2,8 @@
+Tue Sep 16 08:07:56 UTC 2014 - coolo(a)suse.com
+
+- updated to 0.44
+ (ms) replaced bin_find() implementation by File::Which
+ (ms) tap() with raise_error option set now dies with stderr output,
+ because $! isn't set on failed close().
+
+-------------------------------------------------------------------
Old:
----
Sysadm-Install-0.43.tar.gz
New:
----
Sysadm-Install-0.44.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Sysadm-Install.spec ++++++
--- /var/tmp/diff_new_pack.mWxy5y/_old 2014-09-17 17:26:33.000000000 +0200
+++ /var/tmp/diff_new_pack.mWxy5y/_new 2014-09-17 17:26:33.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Sysadm-Install
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: perl-Sysadm-Install
-Version: 0.43
+Version: 0.44
Release: 0
%define cpan_name Sysadm-Install
Summary: Typical installation tasks for system administrators
@@ -29,16 +29,11 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
+BuildRequires: perl(File::Which) >= 1.09
BuildRequires: perl(LWP::Simple)
BuildRequires: perl(Log::Log4perl) >= 1.28
BuildRequires: perl(Term::ReadKey)
-#BuildRequires: perl(Archive::Tar)
-#BuildRequires: perl(Expect)
-#BuildRequires: perl(HTTP::Request)
-#BuildRequires: perl(HTTP::Status)
-#BuildRequires: perl(Log::Log4perl::Util)
-#BuildRequires: perl(LWP::UserAgent)
-#BuildRequires: perl(Sysadm::Install)
+Requires: perl(File::Which) >= 1.09
Requires: perl(LWP::Simple)
Requires: perl(Log::Log4perl) >= 1.28
Requires: perl(Term::ReadKey)
++++++ Sysadm-Install-0.43.tar.gz -> Sysadm-Install-0.44.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sysadm-Install-0.43/Changes new/Sysadm-Install-0.44/Changes
--- old/Sysadm-Install-0.43/Changes 2013-03-17 08:23:53.000000000 +0100
+++ new/Sysadm-Install-0.44/Changes 2014-05-21 05:53:56.000000000 +0200
@@ -2,6 +2,11 @@
Revision history for Sysadm::Install
########################################
+0.44 (2014/05/20)
+ (ms) replaced bin_find() implementation by File::Which
+ (ms) tap() with raise_error option set now dies with stderr output,
+ because $! isn't set on failed close().
+
0.43 (2013/03/16)
(ms) Using binmode() now for slurp/blurt for compatibility with Win32
systems.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sysadm-Install-0.43/META.json new/Sysadm-Install-0.44/META.json
--- old/Sysadm-Install-0.43/META.json 2013-03-19 04:59:27.000000000 +0100
+++ new/Sysadm-Install-0.44/META.json 2014-05-21 05:54:09.000000000 +0200
@@ -4,7 +4,7 @@
"Mike Schilli <m(a)perlmeister.com>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.6302, CPAN::Meta::Converter version 2.120630",
+ "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.131560",
"license" : [
"unknown"
],
@@ -37,6 +37,7 @@
"File::Copy" : "0",
"File::Path" : "0",
"File::Temp" : "0.16",
+ "File::Which" : "1.09",
"LWP::Simple" : "0",
"Log::Log4perl" : "1.28",
"Term::ReadKey" : "0"
@@ -49,5 +50,5 @@
"url" : "http://github.com/mschilli/sysadm-install-perl"
}
},
- "version" : "0.43"
+ "version" : "0.44"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sysadm-Install-0.43/META.yml new/Sysadm-Install-0.44/META.yml
--- old/Sysadm-Install-0.43/META.yml 2013-03-19 04:59:26.000000000 +0100
+++ new/Sysadm-Install-0.44/META.yml 2014-05-21 05:54:09.000000000 +0200
@@ -7,7 +7,7 @@
configure_requires:
ExtUtils::MakeMaker: 0
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.6302, CPAN::Meta::Converter version 2.120630'
+generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.131560'
license: unknown
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -23,9 +23,10 @@
File::Copy: 0
File::Path: 0
File::Temp: 0.16
+ File::Which: 1.09
LWP::Simple: 0
Log::Log4perl: 1.28
Term::ReadKey: 0
resources:
repository: http://github.com/mschilli/sysadm-install-perl
-version: 0.43
+version: 0.44
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sysadm-Install-0.43/MYMETA.json new/Sysadm-Install-0.44/MYMETA.json
--- old/Sysadm-Install-0.43/MYMETA.json 2013-03-19 04:59:26.000000000 +0100
+++ new/Sysadm-Install-0.44/MYMETA.json 2014-05-21 05:54:09.000000000 +0200
@@ -4,7 +4,7 @@
"Mike Schilli <m(a)perlmeister.com>"
],
"dynamic_config" : 0,
- "generated_by" : "ExtUtils::MakeMaker version 6.6302, CPAN::Meta::Converter version 2.120630",
+ "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.131560",
"license" : [
"unknown"
],
@@ -37,6 +37,7 @@
"File::Copy" : "0",
"File::Path" : "0",
"File::Temp" : "0.16",
+ "File::Which" : "1.09",
"LWP::Simple" : "0",
"Log::Log4perl" : "1.28",
"Term::ReadKey" : "0"
@@ -49,5 +50,5 @@
"url" : "http://github.com/mschilli/sysadm-install-perl"
}
},
- "version" : "0.43"
+ "version" : "0.44"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sysadm-Install-0.43/MYMETA.yml new/Sysadm-Install-0.44/MYMETA.yml
--- old/Sysadm-Install-0.43/MYMETA.yml 2013-03-19 04:59:26.000000000 +0100
+++ new/Sysadm-Install-0.44/MYMETA.yml 2014-05-21 05:54:09.000000000 +0200
@@ -7,7 +7,7 @@
configure_requires:
ExtUtils::MakeMaker: 0
dynamic_config: 0
-generated_by: 'ExtUtils::MakeMaker version 6.6302, CPAN::Meta::Converter version 2.120630'
+generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.131560'
license: unknown
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -23,9 +23,10 @@
File::Copy: 0
File::Path: 0
File::Temp: 0.16
+ File::Which: 1.09
LWP::Simple: 0
Log::Log4perl: 1.28
Term::ReadKey: 0
resources:
repository: http://github.com/mschilli/sysadm-install-perl
-version: 0.43
+version: 0.44
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sysadm-Install-0.43/Makefile.PL new/Sysadm-Install-0.44/Makefile.PL
--- old/Sysadm-Install-0.43/Makefile.PL 2013-03-15 21:07:26.000000000 +0100
+++ new/Sysadm-Install-0.44/Makefile.PL 2014-05-07 08:37:21.000000000 +0200
@@ -44,6 +44,7 @@
File::Copy => 0,
File::Path => 0,
File::Basename => 0,
+ File::Which => 1.09,
Term::ReadKey => 0,
LWP::Simple => 0,
Cwd => 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sysadm-Install-0.43/README new/Sysadm-Install-0.44/README
--- old/Sysadm-Install-0.43/README 2013-03-19 04:59:25.000000000 +0100
+++ new/Sysadm-Install-0.44/README 2014-05-21 05:54:09.000000000 +0200
@@ -1,5 +1,5 @@
######################################################################
- Sysadm::Install 0.43
+ Sysadm::Install 0.44
######################################################################
NAME
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sysadm-Install-0.43/lib/Sysadm/Install.pm new/Sysadm-Install-0.44/lib/Sysadm/Install.pm
--- old/Sysadm-Install-0.43/lib/Sysadm/Install.pm 2013-03-17 08:26:01.000000000 +0100
+++ new/Sysadm-Install-0.44/lib/Sysadm/Install.pm 2014-05-21 05:51:38.000000000 +0200
@@ -6,10 +6,11 @@
use strict;
use warnings;
-our $VERSION = '0.43';
+our $VERSION = '0.44';
use File::Copy;
use File::Path;
+use File::Which;
use Log::Log4perl qw(:easy);
use Log::Log4perl::Util;
use File::Basename;
@@ -1044,20 +1045,20 @@
my $exit_code = $?;
- if($exit_code != 0 and $opts->{raise_error}) {
- LOGCROAK("tap $cmd | failed ($!)");
+ my $stderr = slurp($tmpfile, $options);
+
+ if( $opts->{ stderr_limit } ) {
+ $stderr = snip( $stderr, $opts->{ stderr_limit } );
}
- my $stderr = slurp($tmpfile, $options);
+ if($exit_code != 0 and $opts->{raise_error}) {
+ LOGCROAK("tap $cmd | failed ($stderr)");
+ }
if( $opts->{ stdout_limit } ) {
$stdout = snip( $stdout, $opts->{ stdout_limit } );
}
- if( $opts->{ stderr_limit } ) {
- $stderr = snip( $stderr, $opts->{ stderr_limit } );
- }
-
DEBUG "tap $cmd results: rc=$exit_code stderr=[$stderr] stdout=[$stdout]";
return ($stdout, $stderr, $exit_code);
@@ -1465,17 +1466,9 @@
######################################
my($exe) = @_;
- require Config;
- my $path_sep = ":";
- $path_sep = $Config::Config{path_sep} if defined $Config::Config{path_sep};
-
- for my $path (split /$path_sep/, $ENV{PATH}) {
- my $full = File::Spec->catfile($path, $exe);
-
- return $full if -x $full and ! -d $full;
- }
-
- return undef;
+ # File::Which returns a list in list context, we just want the first
+ # match.
+ return scalar File::Which::which( $exe );
}
=pod
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sysadm-Install-0.43/t/012tap.t new/Sysadm-Install-0.44/t/012tap.t
--- old/Sysadm-Install-0.43/t/012tap.t 2013-03-15 21:07:26.000000000 +0100
+++ new/Sysadm-Install-0.44/t/012tap.t 2014-05-21 05:51:16.000000000 +0200
@@ -2,9 +2,10 @@
# Tests for Sysadm::Install
#####################################
-use Test::More tests => 4;
+use Test::More tests => 5;
use Sysadm::Install qw(:all);
+use File::Temp qw( tempfile );
SKIP: {
skip "echo not supported on Win32", 2 if $^O eq "MSWin32";
@@ -24,4 +25,16 @@
$ENV{ PATH } = "";
($stdout, $stderr, $rc) = tap $ls, "/";
is($rc, 0, "cmd ok");
+
+ # Capture STDERR to a temporary file and a filehandle to read from it
+ my( $fh, $tmpfile ) = tempfile();
+ open STDERR, ">$tmpfile";
+ select STDERR; $| = 1; #needed on win32
+ open IN, "<$tmpfile" or die "Cannot open $tmpfile";
+ sub readstderr { return join("", <IN>); }
+
+ eval {
+ tap { raise_error => 1 }, "ls", "/gobbelgobbel987gobbel";
+ };
+ ok length $@ > 10, "raise_error prints error message"
}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Path-Class for openSUSE:Factory checked in at 2014-09-17 17:26:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Path-Class (Old)
and /work/SRC/openSUSE:Factory/.perl-Path-Class.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Path-Class"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Path-Class/perl-Path-Class.changes 2013-12-19 12:24:10.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Path-Class.new/perl-Path-Class.changes 2014-09-17 17:26:31.000000000 +0200
@@ -1,0 +2,13 @@
+Tue Sep 16 08:08:00 UTC 2014 - coolo(a)suse.com
+
+- updated to 0.35
+ - fce4b8e - Fixed a t/03-filesystem.t test error on Windows <Andrew Gregory>
+ - df23e17 - Add a new spew_lines() method <William Stevenson>
+ - 3ffef39 - Don't convert file into directory in subsumes() <Dagfinn Ilmari Mannsåker>
+ - 9a01a71 - Updated POD for copy_to and move_to methods <Robert Rothenberg>
+ - 210a7ef - Stringify destination for copy_to method <Robert Rothenberg>
+ - 9f83723 - Stringify destination for move_to method <Robert Rothenberg>
+ - 5e2cb26, d5c7e62 - Add Continuous Integration with Travis CI <Ken Williams>
+ - d372be1 - Change bugtracker to github's <Ken Williams>
+
+-------------------------------------------------------------------
Old:
----
Path-Class-0.33.tar.gz
New:
----
Path-Class-0.35.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Path-Class.spec ++++++
--- /var/tmp/diff_new_pack.HEXofA/_old 2014-09-17 17:26:31.000000000 +0200
+++ /var/tmp/diff_new_pack.HEXofA/_new 2014-09-17 17:26:32.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Path-Class
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: perl-Path-Class
-Version: 0.33
+Version: 0.35
Release: 0
%define cpan_name Path-Class
Summary: Cross-platform path specification manipulation
@@ -33,7 +33,6 @@
BuildRequires: perl(Module::Build) >= 0.3601
BuildRequires: perl(Perl::OSType)
BuildRequires: perl(parent)
-
Requires: perl(File::Spec) >= 3.26
Requires: perl(Perl::OSType)
Requires: perl(parent)
@@ -103,6 +102,6 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes LICENSE README
+%doc Changes cpanfile LICENSE README
%changelog
++++++ Path-Class-0.33.tar.gz -> Path-Class-0.35.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/Build.PL new/Path-Class-0.35/Build.PL
--- old/Path-Class-0.33/Build.PL 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/Build.PL 2014-09-15 04:32:09.000000000 +0200
@@ -18,7 +18,7 @@
"Ken Williams <kwilliams\(a)cpan.org>"
],
"dist_name" => "Path-Class",
- "dist_version" => "0.33",
+ "dist_version" => "0.35",
"license" => "perl",
"module_name" => "Path::Class",
"recommends" => {},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/Changes new/Path-Class-0.35/Changes
--- old/Path-Class-0.33/Changes 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/Changes 2014-09-15 04:32:09.000000000 +0200
@@ -1,5 +1,27 @@
Revision history for Perl extension Path::Class.
+0.35 Sun Sep 14 21:29:07 CDT 2014
+
+ - fce4b8e - Fixed a t/03-filesystem.t test error on Windows <Andrew Gregory>
+
+
+0.34 Thu Aug 28 22:27:03 CDT 2014
+
+ - df23e17 - Add a new spew_lines() method <William Stevenson>
+
+ - 3ffef39 - Don't convert file into directory in subsumes() <Dagfinn Ilmari Mannsåker>
+
+ - 9a01a71 - Updated POD for copy_to and move_to methods <Robert Rothenberg>
+
+ - 210a7ef - Stringify destination for copy_to method <Robert Rothenberg>
+
+ - 9f83723 - Stringify destination for move_to method <Robert Rothenberg>
+
+ - 5e2cb26, d5c7e62 - Add Continuous Integration with Travis CI <Ken Williams>
+
+ - d372be1 - Change bugtracker to github's <Ken Williams>
+
+
0.33 Wed Dec 11 21:30:35 CST 2013
- New copy_to() and move_to() methods. [Robert Rothenberg & Ken Williams]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/LICENSE new/Path-Class-0.35/LICENSE
--- old/Path-Class-0.33/LICENSE 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/LICENSE 2014-09-15 04:32:09.000000000 +0200
@@ -1,4 +1,4 @@
-This software is copyright (c) 2013 by Ken Williams.
+This software is copyright (c) 2014 by Ken Williams.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2013 by Ken Williams.
+This software is Copyright (c) 2014 by Ken Williams.
This is free software, licensed under:
@@ -272,7 +272,7 @@
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2013 by Ken Williams.
+This software is Copyright (c) 2014 by Ken Williams.
This is free software, licensed under:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/MANIFEST new/Path-Class-0.35/MANIFEST
--- old/Path-Class-0.33/MANIFEST 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/MANIFEST 2014-09-15 04:32:09.000000000 +0200
@@ -8,6 +8,7 @@
README
README.pod
SIGNATURE
+cpanfile
dist.ini
lib/Path/Class.pm
lib/Path/Class/Dir.pm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/META.yml new/Path-Class-0.35/META.yml
--- old/Path-Class-0.33/META.yml 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/META.yml 2014-09-15 04:32:09.000000000 +0200
@@ -34,6 +34,6 @@
parent: 0
strict: 0
resources:
- bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=Path-Class
+ bugtracker: http://github.com/kenahoo/Path-Class/issues
repository: git://github.com/kenahoo/Path-Class.git
-version: 0.33
+version: 0.35
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/Makefile.PL new/Path-Class-0.35/Makefile.PL
--- old/Path-Class-0.33/Makefile.PL 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/Makefile.PL 2014-09-15 04:32:09.000000000 +0200
@@ -44,7 +44,7 @@
"Test::More" => 0,
"warnings" => 0
},
- "VERSION" => "0.33",
+ "VERSION" => "0.35",
"test" => {
"TESTS" => "t/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/README new/Path-Class-0.35/README
--- old/Path-Class-0.33/README 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/README 2014-09-15 04:32:09.000000000 +0200
@@ -1,11 +1,11 @@
This archive contains the distribution Path-Class,
-version 0.33:
+version 0.35:
Cross-platform path specification manipulation
-This software is copyright (c) 2013 by Ken Williams.
+This software is copyright (c) 2014 by Ken Williams.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/SIGNATURE new/Path-Class-0.35/SIGNATURE
--- old/Path-Class-0.33/SIGNATURE 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/SIGNATURE 2014-09-15 04:32:09.000000000 +0200
@@ -14,33 +14,34 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-SHA1 6ac2c44c6b51b498e1b99b7300d2ec7acbdeae2a Build.PL
-SHA1 2c368cb4b8cf9b19fbc367d91aa7124f85969215 Changes
+SHA1 251efa678f8a84675eac8d0584e757b472ed35d8 Build.PL
+SHA1 5ba036a7d7e871ca8903bd8806f0c7c69b513b34 Changes
SHA1 771edd8859e502c500ae883cd9ebb7105c1b453d INSTALL
-SHA1 89884a27efb5ba2d96f817f53a1726b00e185225 LICENSE
-SHA1 dd5bf80ec1724df9d52ce5ffcc29753b83bd8f24 MANIFEST
-SHA1 86ef234e4beca4cf4675df53124e3326b67ee4ed META.yml
-SHA1 1bb04d14f2d3c4f16271d55add732449843cd07b Makefile.PL
-SHA1 ed8969489ffd5de1bf7e1d6e976bb550a66bb21d README
+SHA1 3435fed6ff44a424d628bb95c7f69b2f536cd892 LICENSE
+SHA1 78bde2759290c5e4b12079578f187a024e11dd16 MANIFEST
+SHA1 aaa3716276ccd7841e2d5511aa6af878250fe4b3 META.yml
+SHA1 d159030591912fb61ee6bacb857aaacc94202080 Makefile.PL
+SHA1 914f9acd84676f28eabb708c68f31235675aa6e6 README
SHA1 767e92b9cc035fc40c62a7deda816efddd4c14f2 README.pod
-SHA1 eb9ac556153244a9f9ef7ac46e67cd80342f9a2e dist.ini
-SHA1 3a08937fcaa637509bb453f659b2a1ea4567d78a lib/Path/Class.pm
-SHA1 c5c7d0576fa121e2f2709d118311b0c0d0c41b9c lib/Path/Class/Dir.pm
-SHA1 0381b3ab0fa4038e272285fbca79c7a4e46c7b3e lib/Path/Class/Entity.pm
-SHA1 7b791de2a209f88be3fcfaacb032de1a0ef07abc lib/Path/Class/File.pm
-SHA1 212c128d87fa012c36016210e6e9213112fc3c23 t/01-basic.t
+SHA1 18788b0ba358db9fe04c981452039f3bd62bcdb2 cpanfile
+SHA1 b59d7dbc33a1ea679b47ac462be15558c5b788a0 dist.ini
+SHA1 e1c966a8eef1892574ca3f4e49d82bbb55ef7b1b lib/Path/Class.pm
+SHA1 0a47d807085c39b384a75ac6701168bac070b051 lib/Path/Class/Dir.pm
+SHA1 e3d51c703ac215b25409b75424e1e550cbabc061 lib/Path/Class/Entity.pm
+SHA1 6710252344b164ad91f2834832ee5c1d2dcab5e8 lib/Path/Class/File.pm
+SHA1 1984dc68cf6d60e09510af962e56f63c42c0b706 t/01-basic.t
SHA1 2dc6abce3b4c4601fe22bce9b0d58cb9484bcd0f t/02-foreign.t
-SHA1 e89a18c10016807e90a5070cff509c71adf36b65 t/03-filesystem.t
+SHA1 adc77bc8513166b9ee1ceca92497ec80de56670a t/03-filesystem.t
SHA1 d18a55c06da766987268ad541578a03a17ecee41 t/04-subclass.t
SHA1 a154070d2cb1369f6cebf4228742edea39c43c63 t/05-traverse.t
SHA1 c71c41e78012d9577c47aa71b6d962e2c70d0e0e t/06-traverse_filt.t
SHA1 108772f2ba8c196345adf814a39a03401031651c t/07-recurseprune.t
SHA1 fa45d6e6ab1cd421349dea4ef527bfd5cdc8a09e t/author-critic.t
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
+Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org
-iEYEARECAAYFAlKpMecACgkQgrvMBLfvlHbwbACg5wAMCh5qitUbcs4R4qyB0qQQ
-X8MAoI7fBptesxgYcVRv0o/OLYaM/MlP
-=fjvh
+iEYEARECAAYFAlQWT6QACgkQgrvMBLfvlHYujgCfc5Uujo7Qqrkp0WF9rJJF68/D
+v7IAoOVeREvngdENutm3UbM/7LsHiYPC
+=ebAU
-----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/cpanfile new/Path-Class-0.35/cpanfile
--- old/Path-Class-0.33/cpanfile 1970-01-01 01:00:00.000000000 +0100
+++ new/Path-Class-0.35/cpanfile 2014-09-15 04:32:09.000000000 +0200
@@ -0,0 +1,30 @@
+requires "Carp" => "0";
+requires "Cwd" => "0";
+requires "Exporter" => "0";
+requires "File::Copy" => "0";
+requires "File::Path" => "0";
+requires "File::Spec" => "3.26";
+requires "File::Temp" => "0";
+requires "File::stat" => "0";
+requires "IO::Dir" => "0";
+requires "IO::File" => "0";
+requires "Perl::OSType" => "0";
+requires "Scalar::Util" => "0";
+requires "overload" => "0";
+requires "parent" => "0";
+requires "strict" => "0";
+
+on 'build' => sub {
+ requires "Module::Build" => "0.3601";
+};
+
+on 'test' => sub {
+ requires "Test" => "0";
+ requires "Test::More" => "0";
+ requires "warnings" => "0";
+};
+
+on 'configure' => sub {
+ requires "ExtUtils::MakeMaker" => "6.30";
+ requires "Module::Build" => "0.3601";
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/dist.ini new/Path-Class-0.35/dist.ini
--- old/Path-Class-0.33/dist.ini 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/dist.ini 2014-09-15 04:32:09.000000000 +0200
@@ -1,10 +1,25 @@
name = Path-Class
-version = 0.33
+version = 0.35
author = Ken Williams <kwilliams(a)cpan.org>
license = Perl_5
copyright_holder = Ken Williams
-[@Basic]
+[GatherDir]
+ exclude_filename = cpanfile
+[PruneCruft]
+[ManifestSkip]
+[MetaYAML]
+[License]
+[Readme]
+[ExtraTests]
+[ExecDir]
+[ShareDir]
+[MakeMaker]
+[Manifest]
+[TestRelease]
+[ConfirmRelease]
+[UploadToCPAN]
+
[PkgVersion]
[PodVersion]
@@ -15,6 +30,7 @@
[Signature]
[Bugtracker]
+web = http://github.com/kenahoo/%s/issues
[Repository]
[ModuleBuild]
[InstallGuide]
@@ -26,3 +42,9 @@
skip = ^English$
[Git::Tag]
+
+;; TravisCI integration, see
+;; http://blogs.perl.org/users/neilb/2014/08/try-travis-ci-with-your-cpan-dist…
+[CPANFile]
+[CopyFilesFromBuild]
+copy = cpanfile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/lib/Path/Class/Dir.pm new/Path-Class-0.35/lib/Path/Class/Dir.pm
--- old/Path-Class-0.33/lib/Path/Class/Dir.pm 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/lib/Path/Class/Dir.pm 2014-09-15 04:32:09.000000000 +0200
@@ -2,7 +2,7 @@
package Path::Class::Dir;
{
- $Path::Class::Dir::VERSION = '0.33';
+ $Path::Class::Dir::VERSION = '0.35';
}
use Path::Class::File;
@@ -273,7 +273,7 @@
my ($self, $other) = @_;
die "No second entity given to subsumes()" unless $other;
- $other = $self->new($other) unless UNIVERSAL::isa($other, __PACKAGE__);
+ $other = $self->new($other) unless UNIVERSAL::isa($other, "Path::Class::Entity");
$other = $other->dir unless $other->is_dir;
if ($self->is_absolute) {
@@ -321,7 +321,7 @@
=head1 VERSION
-version 0.33
+version 0.35
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/lib/Path/Class/Entity.pm new/Path-Class-0.35/lib/Path/Class/Entity.pm
--- old/Path-Class-0.33/lib/Path/Class/Entity.pm 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/lib/Path/Class/Entity.pm 2014-09-15 04:32:09.000000000 +0200
@@ -2,7 +2,7 @@
package Path::Class::Entity;
{
- $Path::Class::Entity::VERSION = '0.33';
+ $Path::Class::Entity::VERSION = '0.35';
}
use File::Spec 3.26;
@@ -99,7 +99,7 @@
=head1 VERSION
-version 0.33
+version 0.35
=head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/lib/Path/Class/File.pm new/Path-Class-0.35/lib/Path/Class/File.pm
--- old/Path-Class-0.33/lib/Path/Class/File.pm 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/lib/Path/Class/File.pm 2014-09-15 04:32:09.000000000 +0200
@@ -2,7 +2,7 @@
package Path::Class::File;
{
- $Path::Class::File::VERSION = '0.33';
+ $Path::Class::File::VERSION = '0.35';
}
use Path::Class::Dir;
@@ -19,14 +19,14 @@
my @dirs = @_;
my ($volume, $dirs, $base) = $self->_spec->splitpath($file);
-
+
if (length $dirs) {
push @dirs, $self->_spec->catpath($volume, $dirs, '');
}
-
+
$self->{dir} = @dirs ? $self->dir_class->new(@dirs) : undef;
$self->{file} = $base;
-
+
return $self;
}
@@ -133,6 +133,23 @@
return;
}
+sub spew_lines {
+ my $self = shift;
+ my %args = splice( @_, 0, @_-1 );
+
+ my $content = $_[0];
+
+ # If content is an array ref, appends $/ to each element of the array.
+ # Otherwise, if it is a simple scalar, just appends $/ to that scalar.
+
+ $content
+ = ref( $content ) eq 'ARRAY'
+ ? [ map { $_, $/ } @$content ]
+ : "$content$/";
+
+ return $self->spew( %args, $content );
+}
+
sub remove {
my $file = shift->stringify;
return unlink $file unless -e $file; # Sets $! correctly
@@ -155,11 +172,11 @@
if ( !Perl::OSType::is_os_type('Unix') ) {
- return unless File::Copy::cp($self->stringify, $dest);
+ return unless File::Copy::cp($self->stringify, "${dest}");
} else {
- return unless (system('cp', $self->stringify, $dest) == 0);
+ return unless (system('cp', $self->stringify, "${dest}") == 0);
}
@@ -168,12 +185,12 @@
sub move_to {
my ($self, $dest) = @_;
- if (File::Copy::move($self->stringify, $dest)) {
+ if (File::Copy::move($self->stringify, "${dest}")) {
my $new = $self->new($dest);
$self->{$_} = $new->{$_} foreach (qw/ dir file /);
-
+
return $self;
} else {
@@ -204,29 +221,29 @@
=head1 VERSION
-version 0.33
+version 0.35
=head1 SYNOPSIS
use Path::Class; # Exports file() by default
-
+
my $file = file('foo', 'bar.txt'); # Path::Class::File object
my $file = Path::Class::File->new('foo', 'bar.txt'); # Same thing
-
+
# Stringifies to 'foo/bar.txt' on Unix, 'foo\bar.txt' on Windows, etc.
print "file: $file\n";
-
+
if ($file->is_absolute) { ... }
if ($file->is_relative) { ... }
-
+
my $v = $file->volume; # Could be 'C:' on Windows, empty string
# on Unix, 'Macintosh HD:' on Mac OS
-
+
$file->cleanup; # Perform logical cleanup of pathname
$file->resolve; # Perform physical cleanup of pathname
-
+
my $dir = $file->dir; # A Path::Class::Dir object
-
+
my $abs = $file->absolute; # Transform to absolute path
my $rel = $file->relative; # Transform to relative path
@@ -457,6 +474,15 @@
The default C<iomode> is C<w>.
+=item $file->spew_lines( $content );
+
+Just like C<spew>, but, if $content is a plain scalar, appends $/
+to it, or, if $content is an array ref, appends $/ to each element
+of the array.
+
+Can also take an C<iomode> parameter like C<spew>. Again, the
+default C<iomode> is C<w>.
+
=item $file->traverse(sub { ... }, @args)
Calls the given callback on $file. This doesn't do much on its own,
@@ -466,7 +492,7 @@
This method will remove the file in a way that works well on all
platforms, and returns a boolean value indicating whether or not the
-file was successfully removed.
+file was successfully removed.
C<remove()> is better than simply calling Perl's C<unlink()> function,
because on some platforms (notably VMS) you actually may need to call
@@ -489,13 +515,16 @@
Generally overridden whenever this class is subclassed.
-=item $file->copy_to( $dest );
+=item $copy = $file->copy_to( $dest );
+
+Copies the C<$file> to C<$dest>. It returns a L<Path::Class::File>
+object when successful, C<undef> otherwise.
-Copies the C<$file> to C<$dest>.
+=item $moved = $file->move_to( $dest );
-=item $file->move_to( $dest );
+Moves the C<$file> to C<$dest>, and updates C<$file> accordingly.
-Moves the C<$file> to C<$dest>.
+It returns C<$file> is successful, C<undef> otherwise.
=back
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/lib/Path/Class.pm new/Path-Class-0.35/lib/Path/Class.pm
--- old/Path-Class-0.33/lib/Path/Class.pm 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/lib/Path/Class.pm 2014-09-15 04:32:09.000000000 +0200
@@ -2,7 +2,7 @@
package Path::Class;
{
- $Path::Class::VERSION = '0.33';
+ $Path::Class::VERSION = '0.35';
}
{
@@ -34,7 +34,7 @@
=head1 VERSION
-version 0.33
+version 0.35
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/t/01-basic.t new/Path-Class-0.35/t/01-basic.t
--- old/Path-Class-0.33/t/01-basic.t 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/t/01-basic.t 2014-09-15 04:32:09.000000000 +0200
@@ -7,7 +7,7 @@
use Path::Class;
use Cwd;
-plan tests => 68;
+plan tests => 70;
ok(1);
my $file1 = Path::Class::File->new('foo.txt');
@@ -147,4 +147,6 @@
ok dir('/foo/bar')->subsumes('foo/bar'), 0;
ok dir('/foo/bar')->subsumes('/foo/baz'), 0;
ok dir('/')->subsumes('/foo/bar'), 1;
+ ok dir('/')->subsumes(file('/foo')), 1;
+ ok dir('/foo')->subsumes(file('/foo')), 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.33/t/03-filesystem.t new/Path-Class-0.35/t/03-filesystem.t
--- old/Path-Class-0.33/t/03-filesystem.t 2013-12-12 04:47:52.000000000 +0100
+++ new/Path-Class-0.35/t/03-filesystem.t 2014-09-15 04:32:09.000000000 +0200
@@ -2,7 +2,7 @@
use Test::More;
use File::Temp qw(tmpnam tempdir);
-plan tests => 101;
+plan tests => 103;
use_ok 'Path::Class';
@@ -193,6 +193,20 @@
$file->remove;
ok not -e $file;
+}
+
+{
+ my $file = file('t', 'spew_lines');
+ $file->remove() if -e $file;
+ $file->spew_lines( iomode => '>:raw', "Line1" );
+ $file->spew_lines( iomode => '>>:raw', [qw/Line2 Line3/] );
+
+ my $content = $file->slurp( iomode => '<:raw');
+
+ is( $content, "Line1$/Line2$/Line3$/" );
+
+ $file->remove;
+ ok not -e $file;
}
{
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
17 Sep '14
Hello community,
here is the log from the commit of package perl-Class-Method-Modifiers for openSUSE:Factory checked in at 2014-09-17 17:26:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Class-Method-Modifiers (Old)
and /work/SRC/openSUSE:Factory/.perl-Class-Method-Modifiers.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Class-Method-Modifiers"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Class-Method-Modifiers/perl-Class-Method-Modifiers.changes 2014-03-09 18:34:47.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Class-Method-Modifiers.new/perl-Class-Method-Modifiers.changes 2014-09-17 17:26:29.000000000 +0200
@@ -1,0 +2,7 @@
+Tue Sep 16 08:07:56 UTC 2014 - coolo(a)suse.com
+
+- updated to 2.11
+ - add documentation for modifying multiple methods at once (mannih,
+ github #2)
+
+-------------------------------------------------------------------
Old:
----
Class-Method-Modifiers-2.10.tar.gz
New:
----
Class-Method-Modifiers-2.11.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Class-Method-Modifiers.spec ++++++
--- /var/tmp/diff_new_pack.h684mZ/_old 2014-09-17 17:26:30.000000000 +0200
+++ /var/tmp/diff_new_pack.h684mZ/_new 2014-09-17 17:26:30.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-Class-Method-Modifiers
-Version: 2.10
+Version: 2.11
Release: 0
%define cpan_name Class-Method-Modifiers
Summary: provides Moose-like method modifiers
@@ -30,7 +30,7 @@
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(Test::Fatal)
-BuildRequires: perl(version)
+BuildRequires: perl(Test::Requires)
%{perl_requires}
%description
@@ -88,6 +88,6 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes CONTRIBUTING LICENSE README README.md
+%doc Changes CONTRIBUTING LICENSE README
%changelog
++++++ Class-Method-Modifiers-2.10.tar.gz -> Class-Method-Modifiers-2.11.tar.gz ++++++
++++ 2723 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package openbox for openSUSE:Factory checked in at 2014-09-17 17:26:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openbox (Old)
and /work/SRC/openSUSE:Factory/.openbox.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openbox"
Changes:
--------
--- /work/SRC/openSUSE:Factory/openbox/openbox.changes 2014-04-11 13:41:54.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.openbox.new/openbox.changes 2014-09-17 17:26:28.000000000 +0200
@@ -1,0 +2,10 @@
+Mon Sep 15 20:44:30 UTC 2014 - crrodriguez(a)opensuse.org
+
+- Cleanup BuildRequires so only exactly what is required is
+ pulled for build, in particular avoid using metapackage
+ xorg-x11-dev.
+- Enable verbose build.
+- Use --disable-static instead of just removing the libraries.
+- removed unused openbox-no_nb.patch patch
+
+-------------------------------------------------------------------
Old:
----
openbox-no_nb.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openbox.spec ++++++
--- /var/tmp/diff_new_pack.YHzcG2/_old 2014-09-17 17:26:29.000000000 +0200
+++ /var/tmp/diff_new_pack.YHzcG2/_new 2014-09-17 17:26:29.000000000 +0200
@@ -33,23 +33,30 @@
Patch1: %name-3.5.2-return.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
-BuildRequires: freetype2-devel
-BuildRequires: imlib2-devel
+BuildRequires: pkgconfig
+BuildRequires: pkgconfig(freetype2)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(gobject-2.0)
+BuildRequires: pkgconfig(ice)
+BuildRequires: pkgconfig(imlib2)
+BuildRequires: pkgconfig(libstartup-notification-1.0)
+BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(pango)
+BuildRequires: pkgconfig(pangoxft)
+BuildRequires: pkgconfig(sm)
+BuildRequires: pkgconfig(xcursor)
+BuildRequires: pkgconfig(xext)
+BuildRequires: pkgconfig(xft)
+BuildRequires: pkgconfig(xinerama)
+BuildRequires: pkgconfig(xrandr)
%if 0%{?suse_version} >= 1230
-BuildRequires: cairo-devel
-BuildRequires: librsvg-devel
+BuildRequires: pkgconfig(cairo)
+BuildRequires: pkgconfig(librsvg-2.0)
%endif
# only for ownership of datadir/share/gnome-sessions/
-BuildRequires: gcc-c++
-BuildRequires: glib2-devel
BuildRequires: gnome-session-core
BuildRequires: libtool
-BuildRequires: libxml2-devel
-BuildRequires: pango-devel
-BuildRequires: startup-notification-devel
BuildRequires: update-desktop-files
-BuildRequires: xorg-x11
-BuildRequires: xorg-x11-devel
Requires: libxslt
Requires: xdg-menu
Recommends: obconf
@@ -105,15 +112,14 @@
%build
autoreconf -fiv
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
-%configure
+%configure --disable-static --with-pic
%__make clean
-%__make %{?_smp_mflags}
+%__make %{?_smp_mflags} V=1
%install
%makeinstall
# we dont want static libs
rm $RPM_BUILD_ROOT%_libdir/*.la
-rm $RPM_BUILD_ROOT%_libdir/*.a
# we dont want the stupid docdir
rm -rf $RPM_BUILD_ROOT%_datadir/doc/%name
# we dont want invalid locales
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Class-Date for openSUSE:Factory checked in at 2014-09-17 17:26:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Class-Date (Old)
and /work/SRC/openSUSE:Factory/.perl-Class-Date.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Class-Date"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Class-Date/perl-Class-Date.changes 2013-03-01 08:03:57.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Class-Date.new/perl-Class-Date.changes 2014-09-17 17:26:26.000000000 +0200
@@ -1,0 +2,22 @@
+Mon Sep 15 15:44:34 UTC 2014 - coolo(a)suse.com
+
+- updated to 1.1.15
+ - Move Date/Const.pm to lib/Calss/Date/
+ - Move Class::Date::Invalid and Class::Date::Rel to their own files in lib/Class/Date/
+ - Require Scalar::Util and remove work-around lack of Scalar::Util
+ - Require Env::C
+
+ 1.1.13 Fri May 2 08:32:15 2014
+ - Use Test::More for testing
+
+ 1.1.12 Wed Apr 30 08:44:29 2014
+ - Fixing MANIFEST.SKIP to include Makefile.PL and exclue MYMETA files.
+
+ 1.1.11 Wed Apr 30 06:56:24 2014
+ - Convert the pod to UTF8 and add =encoding RT #94657
+ - Minumum version of perl is not 5.006
+ - Makefile updated
+ - New maintainer: Gabor Szabo
+- remove Class-Date-1.1.10.diff
+
+-------------------------------------------------------------------
Old:
----
Class-Date-1.1.10.diff
Class-Date-1.1.10.tar.gz
New:
----
Class-Date-1.1.15.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Class-Date.spec ++++++
--- /var/tmp/diff_new_pack.J1QAqR/_old 2014-09-17 17:26:27.000000000 +0200
+++ /var/tmp/diff_new_pack.J1QAqR/_new 2014-09-17 17:26:28.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Class-Date
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,44 +17,36 @@
Name: perl-Class-Date
+Version: 1.1.15
+Release: 0
%define cpan_name Class-Date
Summary: Class for easy date and time manipulation
-License: Artistic-1.0 or GPL-2.0+
+License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
-Version: 1.1.10
-Release: 0
-Url: http://search.cpan.org/dist/Class-Date
-Source: %{cpan_name}-%{version}.tar.gz
-Patch: %{cpan_name}-%{version}.diff
+Url: http://search.cpan.org/dist/Class-Date/
+Source: http://www.cpan.org/authors/id/S/SZ/SZABGAB/%{cpan_name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%{perl_requires}
BuildRequires: perl
BuildRequires: perl-macros
-Requires: perl(Date::Parse)
-Requires: perl(Time::Local)
-## Env::C does not compile on perl 5.10.0
-#Requires: perl(Env::C)
+BuildRequires: perl(Scalar::Util) >= 1.38
+BuildRequires: perl(Test::More) >= 1.001
+%{perl_requires}
+# MANUAL
+BuildRequires: timezone
%description
-This module is intended to provide a general-purpose date and datetime
-type for perl. You have a Class::Date class for absolute date and
-datetime and have a Class::Date::Rel class for relative dates.
+This module is intended to provide a general-purpose date and datetime type
+for perl. You have a Class::Date class for absolute date and datetime, and
+have a Class::Date::Rel class for relative dates.
-You can use "+", "-", "<" and ">" operators as with native perl data
-types.
-
-
-
-Authors:
---------
- dLux (Szabo, Bal�zs) <dlux(a)kapu.hu>
+You can use "+", "-", "<" and ">" operators as with native perl data types.
%prep
%setup -q -n %{cpan_name}-%{version}
-%patch
+find . -type f -print0 | xargs -0 chmod 644
%build
-CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL
+%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"
%{__make} %{?_smp_mflags}
%check
@@ -65,11 +57,8 @@
%perl_process_packlist
%perl_gen_filelist
-%clean
-%{__rm} -rf $RPM_BUILD_ROOT
-
%files -f %{name}.files
-%defattr(0644,root,root,0755)
-%doc Changes README
+%defattr(-,root,root,755)
+%doc Changes README success.txt
%changelog
++++++ Class-Date-1.1.10.tar.gz -> Class-Date-1.1.15.tar.gz ++++++
++++ 5273 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Task-Kensho-CLI for openSUSE:Factory checked in at 2014-09-17 17:26:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Task-Kensho-CLI (Old)
and /work/SRC/openSUSE:Factory/.perl-Task-Kensho-CLI.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Task-Kensho-CLI"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Task-Kensho-CLI/perl-Task-Kensho-CLI.changes 2012-01-09 11:16:35.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Task-Kensho-CLI.new/perl-Task-Kensho-CLI.changes 2014-09-17 17:26:25.000000000 +0200
@@ -1,0 +2,19 @@
+Mon Sep 15 15:44:32 UTC 2014 - coolo(a)suse.com
+
+- updated to 0.38
+ - WebDev: Template::Toolkit is not indexed (see RT#92588) -
+ refer to Template instead
+ - subtask distributions now just use regular prereqs on their
+ component modules, rather than using optional_features metadata
+ - Task-Kensho now once again prompts at install time for each
+ subtask to be optionally installed
+ - ModuleDev: Switch Carp::Always over to Devel::Confess (per mst)
+ - ModuleDev: Add Data::Printer (per Sawyer X)
+ - ModuleDev: Add Devel::Dwarn (per mst)
+ - Toolchain: Add Pinto (per Sawyer X)
+ - Toolchain: Add App::FatPacker (per perigrin)
+ - fix pod markup error in main Task::Kensho distribution
+ - module list revisions to CLI, Dates, Toolchain, WebCrawling,
+ WebDev
+
+-------------------------------------------------------------------
Old:
----
Task-Kensho-CLI-0.29.tar.gz
New:
----
Task-Kensho-CLI-0.38.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Task-Kensho-CLI.spec ++++++
--- /var/tmp/diff_new_pack.ClwWAM/_old 2014-09-17 17:26:26.000000000 +0200
+++ /var/tmp/diff_new_pack.ClwWAM/_new 2014-09-17 17:26:26.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Task-Kensho-CLI
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,60 +15,80 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
Name: perl-Task-Kensho-CLI
-Version: 0.29
+Version: 0.38
Release: 0
%define cpan_name Task-Kensho-CLI
-Summary: A Glimpse at an Enlightened Perl (CLI)
+Summary: A Glimpse at an Enlightened Perl: Useful Command-line Tools
License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Task-Kensho-CLI/
-Source: http://www.cpan.org/authors/id/A/AP/APEIRON/%{cpan_name}-%{version}.tar.gz
+Source: http://www.cpan.org/authors/id/E/ET/ETHER/%{cpan_name}-%{version}.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(App::Ack)
BuildRequires: perl(App::Nopaste)
-BuildRequires: perl(App::perlbrew)
BuildRequires: perl(Devel::REPL)
+BuildRequires: perl(Module::Build::Tiny) >= 0.038
BuildRequires: perl(Module::CoreList)
-#BuildRequires: perl(CPANPLUS::Backend)
-#BuildRequires: perl(inc::Module::Install)
-#BuildRequires: perl(JSON)
-#BuildRequires: perl(LWP::Simple)
-#BuildRequires: perl(Module::AutoInstall)
-#BuildRequires: perl(Module::Build)
-#BuildRequires: perl(Module::Install::Base)
-#BuildRequires: perl(Parse::CPAN::Meta)
-#BuildRequires: perl(YAML::Tiny)
Requires: perl(App::Ack)
Requires: perl(App::Nopaste)
-Requires: perl(App::perlbrew)
Requires: perl(Devel::REPL)
Requires: perl(Module::CoreList)
%{perl_requires}
%description
-A Glimpse at an Enlightened Perl (CLI)
+From the http://en.wikipedia.org/wiki/Kensho manpage:
+
+ Kenshō (見性) (C. Wu) is a Japanese term for enlightenment experiences -
+ most commonly used within the confines of Zen Buddhism - literally
+ meaning "seeing one's nature"[1] or "true self."[2] It generally
+ "refers to the realization of nonduality of subject and object."[3]
+
+the Task::Kensho manpage is a list of recommended modules for Enlightened
+Perl development. CPAN is wonderful, but there are too many wheels and you
+have to pick and choose amongst the various competing technologies.
+
+The plan is for the Task::Kensho manpage to be a rough testing ground for
+ideas that go into among other things the Enlightened Perl Organisation
+Extended Core (EPO-EC).
+
+The modules that are bundled by the Task::Kensho manpage are broken down
+into several categories and are still being considered. They are all taken
+from various top 100 most used perl modules lists and from discussions with
+various subject matter experts in the Perl Community. That said, this
+bundle does _not_ follow the guidelines established for the EPO-EC for peer
+review via industry advisers.
+
+Starting in 2011, the Task::Kensho manpage split its sub-groups of modules
+into individually-installable tasks. Each the Task::Kensho manpage sub-task
+is listed at the beginning of its section in this documentation.
+
+When installing the Task::Kensho manpage itself, you will be asked to
+install each sub-task in turn, or you can install individual tasks
+separately. These individual tasks will always install all their modules by
+default. This facilitates the ease and simplicity the distribution aims to
+achieve.
%prep
%setup -q -n %{cpan_name}-%{version}
%build
-%{__perl} Makefile.PL INSTALLDIRS=vendor
-%{__make} %{?_smp_mflags}
+%{__perl} Build.PL --installdirs=vendor
+./Build build --flags=%{?_smp_mflags}
%check
-%{__make} test
+./Build test
%install
-%perl_make_install
-%perl_process_packlist
+./Build install --destdir=%{buildroot} --create_packlist=0
%perl_gen_filelist
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes MYMETA.yml README
+%doc Changes LICENSE README weaver.ini
%changelog
++++++ Task-Kensho-CLI-0.29.tar.gz -> Task-Kensho-CLI-0.38.tar.gz ++++++
++++ 6273 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-SQL-Abstract for openSUSE:Factory checked in at 2014-09-17 17:26:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-SQL-Abstract (Old)
and /work/SRC/openSUSE:Factory/.perl-SQL-Abstract.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-SQL-Abstract"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-SQL-Abstract/perl-SQL-Abstract.changes 2014-02-28 19:16:02.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-SQL-Abstract.new/perl-SQL-Abstract.changes 2014-09-17 17:26:23.000000000 +0200
@@ -1,0 +2,11 @@
+Mon Sep 15 15:44:40 UTC 2014 - coolo(a)suse.com
+
+- updated to 1.78
+ - Fix parsing of binary ops to correctly take up only a single LHS
+ element, instead of gobbling up the entire parse-to-date
+ - Explicitly handle ROW_NUMBER() OVER as the snowflake-operator it is
+ - Improve signatures/documentation of is_same_sql_bind / eq_sql_bind
+ - Retire script/format-sql - the utility needs more work to be truly
+ end-user convenient
+
+-------------------------------------------------------------------
Old:
----
SQL-Abstract-1.77.tar.gz
New:
----
SQL-Abstract-1.78.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-SQL-Abstract.spec ++++++
--- /var/tmp/diff_new_pack.Mb4uvV/_old 2014-09-17 17:26:24.000000000 +0200
+++ /var/tmp/diff_new_pack.Mb4uvV/_new 2014-09-17 17:26:24.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-SQL-Abstract
-Version: 1.77
+Version: 1.78
Release: 0
%define cpan_name SQL-Abstract
Summary: Generate SQL from Perl data structures
@@ -29,16 +29,14 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
-BuildRequires: perl(Class::Accessor::Grouped) >= 0.10005
-BuildRequires: perl(Getopt::Long::Descriptive) >= 0.091
BuildRequires: perl(Hash::Merge) >= 0.12
+BuildRequires: perl(Moo) >= 1.004002
BuildRequires: perl(Test::Deep) >= 0.101
-BuildRequires: perl(Test::Exception)
-BuildRequires: perl(Test::More) >= 0.92
+BuildRequires: perl(Test::Exception) >= 0.31
+BuildRequires: perl(Test::More) >= 0.88
BuildRequires: perl(Test::Warn)
-Requires: perl(Class::Accessor::Grouped) >= 0.10005
-Requires: perl(Getopt::Long::Descriptive) >= 0.091
Requires: perl(Hash::Merge) >= 0.12
+Requires: perl(Moo) >= 1.004002
%{perl_requires}
%description
++++++ SQL-Abstract-1.77.tar.gz -> SQL-Abstract-1.78.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/Changes new/SQL-Abstract-1.78/Changes
--- old/SQL-Abstract-1.77/Changes 2014-01-17 02:04:54.000000000 +0100
+++ new/SQL-Abstract-1.78/Changes 2014-05-28 12:11:40.000000000 +0200
@@ -1,5 +1,14 @@
Revision history for SQL::Abstract
+revision 1.78 2014-05-28
+----------------------------
+ - Fix parsing of binary ops to correctly take up only a single LHS
+ element, instead of gobbling up the entire parse-to-date
+ - Explicitly handle ROW_NUMBER() OVER as the snowflake-operator it is
+ - Improve signatures/documentation of is_same_sql_bind / eq_sql_bind
+ - Retire script/format-sql - the utility needs more work to be truly
+ end-user convenient
+
revision 1.77 2014-01-17
----------------------------
- Reintroduce { -not => undef } column operator (regression from 1.75)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/MANIFEST new/SQL-Abstract-1.78/MANIFEST
--- old/SQL-Abstract-1.77/MANIFEST 2014-01-17 02:06:19.000000000 +0100
+++ new/SQL-Abstract-1.78/MANIFEST 2014-05-28 12:14:07.000000000 +0200
@@ -1,6 +1,7 @@
Changes
examples/console.pl
examples/dbic-console.pl
+examples/sqla-format
inc/Module/AutoInstall.pm
inc/Module/Install.pm
inc/Module/Install/AutoInstall.pm
@@ -10,7 +11,6 @@
inc/Module/Install/Include.pm
inc/Module/Install/Makefile.pm
inc/Module/Install/Metadata.pm
-inc/Module/Install/Scripts.pm
inc/Module/Install/Win32.pm
inc/Module/Install/WriteAll.pm
lib/DBIx/Class/Storage/Debug/PrettyPrint.pm
@@ -20,7 +20,6 @@
Makefile.PL
MANIFEST This list of files
META.yml
-script/format-sql
t/00new.t
t/01generate.t
t/02where.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/META.yml new/SQL-Abstract-1.78/META.yml
--- old/SQL-Abstract-1.77/META.yml 2014-01-17 02:06:14.000000000 +0100
+++ new/SQL-Abstract-1.78/META.yml 2014-05-28 12:13:59.000000000 +0200
@@ -6,8 +6,8 @@
ExtUtils::MakeMaker: 6.59
Storable: 0
Test::Deep: 0.101
- Test::Exception: 0
- Test::More: 0.92
+ Test::Exception: 0.31
+ Test::More: 0.88
Test::Warn: 0
configure_requires:
ExtUtils::MakeMaker: 6.59
@@ -28,14 +28,13 @@
package:
- DBIx::Class::Storage::Debug::PrettyPrint
requires:
- Class::Accessor::Grouped: 0.10005
- Getopt::Long::Descriptive: 0.091
Hash::Merge: 0.12
List::Util: 0
+ Moo: 1.004002
Scalar::Util: 0
- perl: 5.6.2
+ perl: 5.6.0
resources:
bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=SQL-Abstract
license: http://dev.perl.org/licenses/
repository: git://git.shadowcat.co.uk/dbsrgits/SQL-Abstract.git
-version: 1.77
+version: 1.78
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/Makefile.PL new/SQL-Abstract-1.78/Makefile.PL
--- old/SQL-Abstract-1.77/Makefile.PL 2014-01-17 02:01:03.000000000 +0100
+++ new/SQL-Abstract-1.78/Makefile.PL 2014-05-28 12:10:34.000000000 +0200
@@ -2,9 +2,9 @@
use strict;
use warnings;
-use 5.006002;
+use 5.006;
-perl_version '5.006002';
+perl_version '5.006';
name 'SQL-Abstract';
author 'Nathan Wiger <nate(a)wiger.org>';
resources 'license' => 'http://dev.perl.org/licenses/';
@@ -17,21 +17,18 @@
requires 'List::Util' => 0;
requires 'Scalar::Util' => 0;
-requires 'Class::Accessor::Grouped' => 0.10005;
-requires 'Getopt::Long::Descriptive' => 0.091;
-requires 'Hash::Merge' => 0.12;
+requires 'Moo' => 1.004002;
+requires 'Hash::Merge' => 0.12;
-test_requires "Test::More" => 0.92;
-test_requires "Test::Exception" => 0;
+test_requires "Test::More" => 0.88;
+test_requires "Test::Exception" => 0.31;
test_requires "Test::Warn" => 0;
-test_requires "Test::Deep" => '0.101';
+test_requires "Test::Deep" => 0.101;
test_requires "Storable" => 0; # for cloning in tests
no_index package => 'DBIx::Class::Storage::Debug::PrettyPrint';
no_index directory => 'examples';
-install_script 'format-sql';
-
tests_recursive 't';
auto_install();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/examples/console.pl new/SQL-Abstract-1.78/examples/console.pl
--- old/SQL-Abstract-1.77/examples/console.pl 2012-03-09 02:04:01.000000000 +0100
+++ new/SQL-Abstract-1.78/examples/console.pl 2014-05-28 12:09:43.000000000 +0200
@@ -1,5 +1,8 @@
#!/sur/bin/env perl
+use warnings;
+use strict;
+
use SQL::Abstract::Tree;
my $sqlat = SQL::Abstract::Tree->new({ profile => 'console' });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/examples/dbic-console.pl new/SQL-Abstract-1.78/examples/dbic-console.pl
--- old/SQL-Abstract-1.77/examples/dbic-console.pl 2012-03-09 02:04:01.000000000 +0100
+++ new/SQL-Abstract-1.78/examples/dbic-console.pl 2014-05-28 12:09:43.000000000 +0200
@@ -1,5 +1,8 @@
#!/sur/bin/env perl
+use warnings;
+use strict;
+
use DBIx::Class::Storage::Debug::PrettyPrint;
my $pp = DBIx::Class::Storage::Debug::PrettyPrint->new({
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/examples/sqla-format new/SQL-Abstract-1.78/examples/sqla-format
--- old/SQL-Abstract-1.77/examples/sqla-format 1970-01-01 01:00:00.000000000 +0100
+++ new/SQL-Abstract-1.78/examples/sqla-format 2014-05-28 12:09:43.000000000 +0200
@@ -0,0 +1,61 @@
+#!/usr/bin/env perl
+
+use warnings;
+use strict;
+
+use Getopt::Long;
+my $p = Getopt::Long::Parser->new(config => [qw( gnu_getopt no_ignore_case )]);
+my $opts = { profile => 'console', help => \&showhelp };
+$p->getoptions( $opts, qw(
+ profile|p=s
+ help|h
+)) or showhelp();
+
+sub showhelp {
+ require Pod::Usage;
+ Pod::Usage::pod2usage( -verbose => 0, -exitval => 2 );
+}
+
+require SQL::Abstract::Tree;
+my $sqlat = SQL::Abstract::Tree->new({ profile => $opts->{profile}, fill_in_placeholders => 0 });
+
+my $chunk = '';
+my $leftover = '';
+do {
+ $chunk = $leftover . $chunk if length $leftover;
+
+ if ($chunk =~ / \A (.+?) (?:
+ (?<=\S)\:\s+\'[^\n]+ # pasting DBIC_TRACE output directly
+ |
+ \;(?: \s | \z)
+ |
+ \z
+ |
+ ^ \s* (?=SELECT|INSERT|UPDATE|DELETE)
+ ) (.*) /smix) {
+
+ $leftover = $2;
+ print $sqlat->format($1);
+ print "\n";
+ }
+ else {
+ $leftover = $chunk;
+ }
+} while ( (read *STDIN, $chunk, 4096) or length $leftover );
+
+=head1 NAME
+
+sqla-format - An intelligent SQL formatter
+
+=head1 SYNOPSIS
+
+ ~$ sqla-format << log.sql
+
+ ~$ myprogram -v | sqla-format -p html > sqltrace.html
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/inc/Module/Install/Scripts.pm new/SQL-Abstract-1.78/inc/Module/Install/Scripts.pm
--- old/SQL-Abstract-1.77/inc/Module/Install/Scripts.pm 2014-01-17 02:06:13.000000000 +0100
+++ new/SQL-Abstract-1.78/inc/Module/Install/Scripts.pm 1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-#line 1
-package Module::Install::Scripts;
-
-use strict 'vars';
-use Module::Install::Base ();
-
-use vars qw{$VERSION @ISA $ISCORE};
-BEGIN {
- $VERSION = '1.06';
- @ISA = 'Module::Install::Base';
- $ISCORE = 1;
-}
-
-sub install_script {
- my $self = shift;
- my $args = $self->makemaker_args;
- my $exe = $args->{EXE_FILES} ||= [];
- foreach ( @_ ) {
- if ( -f $_ ) {
- push @$exe, $_;
- } elsif ( -d 'script' and -f "script/$_" ) {
- push @$exe, "script/$_";
- } else {
- die("Cannot find script '$_'");
- }
- }
-}
-
-1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/lib/SQL/Abstract/Test.pm new/SQL-Abstract-1.78/lib/SQL/Abstract/Test.pm
--- old/SQL-Abstract-1.77/lib/SQL/Abstract/Test.pm 2014-01-17 01:42:27.000000000 +0100
+++ new/SQL-Abstract-1.78/lib/SQL/Abstract/Test.pm 2014-05-28 05:48:06.000000000 +0200
@@ -3,7 +3,6 @@
use strict;
use warnings;
use base qw(Test::Builder::Module Exporter);
-use Data::Dumper;
use Test::Builder;
use Test::Deep ();
use SQL::Abstract::Tree;
@@ -23,8 +22,30 @@
our $sql_differ; # keeps track of differing portion between SQLs
our $tb = __PACKAGE__->builder;
+sub _unpack_arrayrefref {
+
+ my @args;
+ for (1,2) {
+ my $chunk = shift @_;
+
+ if ( ref $chunk eq 'REF' and ref $$chunk eq 'ARRAY' ) {
+ my ($sql, @bind) = @$$chunk;
+ push @args, ($sql, \@bind);
+ }
+ else {
+ push @args, $chunk, shift @_;
+ }
+
+ }
+
+ # maybe $msg and ... stuff
+ push @args, @_;
+
+ @args;
+}
+
sub is_same_sql_bind {
- my ($sql1, $bind_ref1, $sql2, $bind_ref2, $msg) = @_;
+ my ($sql1, $bind_ref1, $sql2, $bind_ref2, $msg) = &_unpack_arrayrefref;
# compare
my $same_sql = eq_sql($sql1, $sql2);
@@ -49,7 +70,7 @@
my ($sql1, $sql2, $msg) = @_;
# compare
- my $same_sql = eq_sql($sql1, $sql2);
+ my $same_sql = eq_sql($sql1, $sql2);
# call Test::Builder::ok
my $ret = $tb->ok($same_sql, $msg);
@@ -82,7 +103,12 @@
}
sub dumper {
- Data::Dumper->new([])->Terse(1)->Indent(1)->Useqq(1)->Deparse(1)->Quotekeys(0)->Sortkeys(1)->Maxdepth(0)->Values([@_])->Dump;
+ # FIXME
+ # if we save the instance, we will end up with $VARx references
+ # no time to figure out how to avoid this (Deepcopy is *not* an option)
+ require Data::Dumper;
+ Data::Dumper->new([])->Terse(1)->Indent(1)->Useqq(1)->Deparse(1)->Quotekeys(0)->Sortkeys(1)->Maxdepth(0)
+ ->Values([@_])->Dump;
}
sub diag_where{
@@ -90,13 +116,14 @@
}
sub _sql_differ_diag {
- my ($sql1, $sql2) = @_;
+ my $sql1 = shift || '';
+ my $sql2 = shift || '';
$tb->${\( $tb->in_todo ? 'note' : 'diag')} (
"SQL expressions differ\n"
- ." got: $sql1\n"
- ."expected: $sql2\n"
- ."differing in :\n$sql_differ\n"
+ ." got: $sql1\n"
+ ."want: $sql2\n"
+ ."\nmismatch around\n$sql_differ\n"
);
}
@@ -104,14 +131,12 @@
my ($bind_ref1, $bind_ref2) = @_;
$tb->${\( $tb->in_todo ? 'note' : 'diag')} (
- "BIND values differ\n"
- ." got: " . dumper($bind_ref1)
- ."expected: " . dumper($bind_ref2)
- );
+ "BIND values differ " . dumper({ got => $bind_ref1, want => $bind_ref2 })
+ );
}
sub eq_sql_bind {
- my ($sql1, $bind_ref1, $sql2, $bind_ref2) = @_;
+ my ($sql1, $bind_ref1, $sql2, $bind_ref2) = &_unpack_arrayrefref;
return eq_sql($sql1, $sql2) && eq_bind($bind_ref1, $bind_ref2);
}
@@ -267,52 +292,83 @@
A lot of effort goes into distinguishing significant from
non-significant parenthesis, including AND/OR operator associativity.
Currently this module does not support commutativity and more
-intelligent transformations like Morgan laws, etc.
+intelligent transformations like L<De Morgan's laws
+|http://en.wikipedia.org/wiki/De_Morgan's_laws>, etc.
-For a good overview of what this test framework is capable of refer
+For a good overview of what this test framework is currently capable of refer
to C<t/10test.t>
=head1 FUNCTIONS
=head2 is_same_sql_bind
- is_same_sql_bind($given_sql, \@given_bind,
- $expected_sql, \@expected_bind, $test_msg);
+ is_same_sql_bind(
+ $given_sql, \@given_bind,
+ $expected_sql, \@expected_bind,
+ $test_msg
+ );
-Compares given and expected pairs of C<($sql, \@bind)>, and calls
-L<Test::Builder/ok> on the result, with C<$test_msg> as message. If the test
-fails, a detailed diagnostic is printed. For clients which use L<Test::More>,
-this is the one of the three functions (L</is_same_sql_bind>, L</is_same_sql>,
-L</is_same_bind>) that needs to be imported.
+ is_same_sql_bind(
+ \[$given_sql, @given_bind],
+ \[$expected_sql, @expected_bind],
+ $test_msg
+ );
+
+ is_same_sql_bind(
+ $dbic_rs->as_query
+ $expected_sql, \@expected_bind,
+ $test_msg
+ );
+
+Compares given and expected pairs of C<($sql, \@bind)> by unpacking C<@_>
+as shown in the examples above and passing the arguments to L</eq_sql> and
+L</eq_bind>. Calls L<Test::Builder/ok> with the combined result, with
+C<$test_msg> as message.
+If the test fails, a detailed diagnostic is printed.
=head2 is_same_sql
- is_same_sql($given_sql, $expected_sql, $test_msg);
+ is_same_sql(
+ $given_sql,
+ $expected_sql,
+ $test_msg
+ );
-Compares given and expected SQL statements, and calls L<Test::Builder/ok> on
-the result, with C<$test_msg> as message. If the test fails, a detailed
-diagnostic is printed. For clients which use L<Test::More>, this is the one of
-the three functions (L</is_same_sql_bind>, L</is_same_sql>, L</is_same_bind>)
-that needs to be imported.
+Compares given and expected SQL statements via L</eq_sql>, and calls
+L<Test::Builder/ok> on the result, with C<$test_msg> as message.
+If the test fails, a detailed diagnostic is printed.
=head2 is_same_bind
- is_same_bind(\@given_bind, \@expected_bind, $test_msg);
+ is_same_bind(
+ \@given_bind,
+ \@expected_bind,
+ $test_msg
+ );
-Compares given and expected bind values, and calls L<Test::Builder/ok> on the
-result, with C<$test_msg> as message. If the test fails, a detailed diagnostic
-is printed. For clients which use L<Test::More>, this is the one of the three
-functions (L</is_same_sql_bind>, L</is_same_sql>, L</is_same_bind>) that needs
-to be imported.
+Compares given and expected bind values via L</eq_bind>, and calls
+L<Test::Builder/ok> on the result, with C<$test_msg> as message.
+If the test fails, a detailed diagnostic is printed.
=head2 eq_sql_bind
- my $is_same = eq_sql_bind($given_sql, \@given_bind,
- $expected_sql, \@expected_bind);
+ my $is_same = eq_sql_bind(
+ $given_sql, \@given_bind,
+ $expected_sql, \@expected_bind,
+ );
-Compares given and expected pairs of C<($sql, \@bind)>. Similar to
-L</is_same_sql_bind>, but it just returns a boolean value and does not print
-diagnostics or talk to L<Test::Builder>.
+ my $is_same = eq_sql_bind(
+ \[$given_sql, @given_bind],
+ \[$expected_sql, @expected_bind],
+ );
+
+ my $is_same = eq_sql_bind(
+ $dbic_rs->as_query
+ $expected_sql, \@expected_bind,
+ );
+
+Unpacks C<@_> depending on the given arguments and calls L</eq_sql> and
+L</eq_bind>, returning their combined result.
=head2 eq_sql
@@ -356,14 +412,13 @@
C<$sql_differ> contains the SQL portion
where a difference was encountered.
-
=head1 SEE ALSO
L<SQL::Abstract>, L<Test::More>, L<Test::Builder>.
=head1 AUTHORS
-Laurent Dami, E<lt>laurent.dami AT etat geneve chE<gt>
+Laurent Dami <laurent.dami AT etat geneve ch>
Norbert Buchmuller <norbi(a)nix.hu>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/lib/SQL/Abstract/Tree.pm new/SQL-Abstract-1.78/lib/SQL/Abstract/Tree.pm
--- old/SQL-Abstract-1.77/lib/SQL/Abstract/Tree.pm 2014-01-17 01:42:27.000000000 +0100
+++ new/SQL-Abstract-1.78/lib/SQL/Abstract/Tree.pm 2014-05-28 05:48:09.000000000 +0200
@@ -1,38 +1,22 @@
package SQL::Abstract::Tree;
+# DO NOT edit away without talking to riba first, he will just put it back
+# BEGIN pre-Moo2 import block
+BEGIN {
+ require warnings;
+ my $initial_fatal_bits = (${^WARNING_BITS}||'') & $warnings::DeadBits{all};
+ local $ENV{PERL_STRICTURES_EXTRA} = 0;
+ require Moo; Moo->import;
+ require Sub::Quote; Sub::Quote->import('quote_sub');
+ ${^WARNING_BITS} &= ( $initial_fatal_bits | ~ $warnings::DeadBits{all} );
+}
+# END pre-Moo2 import block
+
use strict;
use warnings;
no warnings 'qw';
-use Carp;
-
-use Hash::Merge qw//;
-use base 'Class::Accessor::Grouped';
-
-__PACKAGE__->mk_group_accessors( simple => qw(
- newline indent_string indent_amount colormap indentmap fill_in_placeholders
- placeholder_surround
-));
-
-my $merger = Hash::Merge->new;
-
-$merger->specify_behavior({
- SCALAR => {
- SCALAR => sub { $_[1] },
- ARRAY => sub { [ $_[0], @{$_[1]} ] },
- HASH => sub { $_[1] },
- },
- ARRAY => {
- SCALAR => sub { $_[1] },
- ARRAY => sub { $_[1] },
- HASH => sub { $_[1] },
- },
- HASH => {
- SCALAR => sub { $_[1] },
- ARRAY => sub { [ values %{$_[0]}, @{$_[1]} ] },
- HASH => sub { Hash::Merge::_merge_hashes( $_[0], $_[1] ) },
- },
-}, 'SQLA::Tree Behavior' );
+use Carp;
my $op_look_ahead = '(?: (?= [\s\)\(\;] ) | \z)';
my $op_look_behind = '(?: (?<= [\,\s\)\(] ) | \A )';
@@ -83,7 +67,6 @@
'SAVEPOINT',
'RELEASE \s+ SAVEPOINT',
'RETURNING',
- 'ROW_NUMBER \s* \( \s* \) \s+ OVER',
);
my $expr_start_re = join ("\n\t|\n", @expression_start_keywords );
@@ -115,7 +98,9 @@
;
$binary_op_re = qr/$binary_op_re/x;
-my $unary_op_re = '(?: NOT \s+ EXISTS | NOT )';
+my $rno_re = qr/ROW_NUMBER \s* \( \s* \) \s+ OVER/ix;
+
+my $unary_op_re = 'NOT \s+ EXISTS | NOT | ' . $rno_re;
$unary_op_re = join "\n\t|\n",
"$op_look_behind (?i: $unary_op_re ) $op_look_ahead",
;
@@ -195,18 +180,33 @@
first => 1,
);
-my %profiles = (
- console => {
- fill_in_placeholders => 1,
- placeholder_surround => ['?/', ''],
- indent_string => ' ',
- indent_amount => 2,
- newline => "\n",
- colormap => {},
- indentmap => \%indents,
- eval { require Term::ANSIColor }
- ? do {
+has [qw(
+ newline indent_string indent_amount fill_in_placeholders placeholder_surround
+)] => (is => 'ro');
+
+has [qw( indentmap colormap )] => ( is => 'ro', default => quote_sub('{}') );
+
+# class global is in fact desired
+my $merger;
+
+sub BUILDARGS {
+ my $class = shift;
+ my $args = ref $_[0] eq 'HASH' ? $_[0] : {@_};
+
+ if (my $p = delete $args->{profile}) {
+ my %extra_args;
+ if ($p eq 'console') {
+ %extra_args = (
+ fill_in_placeholders => 1,
+ placeholder_surround => ['?/', ''],
+ indent_string => ' ',
+ indent_amount => 2,
+ newline => "\n",
+ colormap => {},
+ indentmap => \%indents,
+
+ ! ( eval { require Term::ANSIColor } ) ? () : do {
my $c = \&Term::ANSIColor::color;
my $red = [$c->('red') , $c->('reset')];
@@ -251,79 +251,86 @@
offset => $green,
}
);
- } : (),
- },
- console_monochrome => {
- fill_in_placeholders => 1,
- placeholder_surround => ['?/', ''],
- indent_string => ' ',
- indent_amount => 2,
- newline => "\n",
- colormap => {},
- indentmap => \%indents,
- },
- html => {
- fill_in_placeholders => 1,
- placeholder_surround => ['<span class="placeholder">', '</span>'],
- indent_string => ' ',
- indent_amount => 2,
- newline => "<br />\n",
- colormap => {
- select => ['<span class="select">' , '</span>'],
- 'insert into' => ['<span class="insert-into">' , '</span>'],
- update => ['<span class="select">' , '</span>'],
- 'delete from' => ['<span class="delete-from">' , '</span>'],
-
- set => ['<span class="set">', '</span>'],
- from => ['<span class="from">' , '</span>'],
-
- where => ['<span class="where">' , '</span>'],
- values => ['<span class="values">', '</span>'],
-
- join => ['<span class="join">' , '</span>'],
- 'left join' => ['<span class="left-join">','</span>'],
- on => ['<span class="on">' , '</span>'],
-
- 'group by' => ['<span class="group-by">', '</span>'],
- having => ['<span class="having">', '</span>'],
- 'order by' => ['<span class="order-by">', '</span>'],
-
- skip => ['<span class="skip">', '</span>'],
- first => ['<span class="first">', '</span>'],
- limit => ['<span class="limit">', '</span>'],
- offset => ['<span class="offset">', '</span>'],
-
- 'begin work' => ['<span class="begin-work">', '</span>'],
- commit => ['<span class="commit">', '</span>'],
- rollback => ['<span class="rollback">', '</span>'],
- savepoint => ['<span class="savepoint">', '</span>'],
- 'rollback to savepoint' => ['<span class="rollback-to-savepoint">', '</span>'],
- 'release savepoint' => ['<span class="release-savepoint">', '</span>'],
- },
- indentmap => \%indents,
- },
- none => {
- colormap => {},
- indentmap => {},
- },
-);
-
-sub new {
- my $class = shift;
- my $args = shift || {};
+ },
+ );
+ }
+ elsif ($p eq 'console_monochrome') {
+ %extra_args = (
+ fill_in_placeholders => 1,
+ placeholder_surround => ['?/', ''],
+ indent_string => ' ',
+ indent_amount => 2,
+ newline => "\n",
+ indentmap => \%indents,
+ );
+ }
+ elsif ($p eq 'html') {
+ %extra_args = (
+ fill_in_placeholders => 1,
+ placeholder_surround => ['<span class="placeholder">', '</span>'],
+ indent_string => ' ',
+ indent_amount => 2,
+ newline => "<br />\n",
+ colormap => { map {
+ (my $class = $_) =~ s/\s+/-/g;
+ ( $_ => [ qq|<span class="$class">|, '</span>' ] )
+ } (
+ keys %indents,
+ qw(commit rollback savepoint),
+ 'begin work', 'rollback to savepoint', 'release savepoint',
+ ) },
+ indentmap => \%indents,
+ );
+ }
+ elsif ($p eq 'none') {
+ # nada
+ }
+ else {
+ croak "No such profile '$p'";
+ }
- my $profile = delete $args->{profile} || 'none';
+ # see if we got any duplicates and merge if needed
+ if (scalar grep { exists $args->{$_} } keys %extra_args) {
+ # heavy-duty merge
+ $args = ($merger ||= do {
+ require Hash::Merge;
+ my $m = Hash::Merge->new;
+
+ $m->specify_behavior({
+ SCALAR => {
+ SCALAR => sub { $_[1] },
+ ARRAY => sub { [ $_[0], @{$_[1]} ] },
+ HASH => sub { $_[1] },
+ },
+ ARRAY => {
+ SCALAR => sub { $_[1] },
+ ARRAY => sub { $_[1] },
+ HASH => sub { $_[1] },
+ },
+ HASH => {
+ SCALAR => sub { $_[1] },
+ ARRAY => sub { [ values %{$_[0]}, @{$_[1]} ] },
+ HASH => sub { Hash::Merge::_merge_hashes( $_[0], $_[1] ) },
+ },
+ }, 'SQLA::Tree Behavior' );
- die "No such profile '$profile'!" unless exists $profiles{$profile};
+ $m;
+ })->merge(\%extra_args, $args );
- my $data = $merger->merge( $profiles{$profile}, $args );
+ }
+ else {
+ $args = { %extra_args, %$args };
+ }
+ }
- bless $data, $class
+ $args;
}
sub parse {
my ($self, $s) = @_;
+ return [] unless defined $s;
+
# tokenize string, and remove all optional whitespace
my $tokens = [];
foreach my $token (split $tokenizer_re, $s) {
@@ -419,12 +426,16 @@
@right = $self->_recurse_parse($tokens, PARSE_IN_EXPR);
}
- @left = [$op => [ @left, @right ]];
+ push @left, [$op => [ (@left ? pop @left : ''), @right ]];
}
# unary op keywords
elsif ( $token =~ $unary_op_re ) {
my $op = uc $token;
+
+ # normalize RNO explicitly
+ $op = 'ROW_NUMBER() OVER' if $op =~ /^$rno_re$/;
+
my @right = $self->_recurse_parse ($tokens, PARSE_RHS);
push @left, [ $op => \@right ];
@@ -658,25 +669,38 @@
next;
}
+ my $parent_op = $ast->[0];
+
# unroll nested parenthesis
- while ( $ast->[0] ne 'IN' and @{$child->[1]} == 1 and $child->[1][0][0] eq '-PAREN') {
+ while ( $parent_op ne 'IN' and @{$child->[1]} == 1 and $child->[1][0][0] eq '-PAREN') {
$child = $child->[1][0];
$changes++;
}
- # if the parent operator explicitly allows it nuke the parenthesis
- if ( $ast->[0] =~ $unrollable_ops_re ) {
+ # set to CHILD in the case of PARENT ( CHILD )
+ # but NOT in the case of PARENT( CHILD1, CHILD2 )
+ my $single_child_op = (@{$child->[1]} == 1) ? $child->[1][0][0] : '';
+
+ my $child_op_argc = $single_child_op ? scalar @{$child->[1][0][1]} : undef;
+
+ my $single_grandchild_op
+ = ( $child_op_argc||0 == 1 and ref $child->[1][0][1][0] eq 'ARRAY' )
+ ? $child->[1][0][1][0][0]
+ : ''
+ ;
+
+ # if the parent operator explicitly allows it AND the child isn't a subselect
+ # nuke the parenthesis
+ if ($parent_op =~ $unrollable_ops_re and $single_child_op ne 'SELECT') {
push @children, @{$child->[1]};
$changes++;
}
# if the parenthesis are wrapped around an AND/OR matching the parent AND/OR - open the parenthesis up and merge the list
elsif (
- @{$child->[1]} == 1
- and
- ( $ast->[0] eq 'AND' or $ast->[0] eq 'OR')
- and
- $child->[1][0][0] eq $ast->[0]
+ $single_child_op eq $parent_op
+ and
+ ( $parent_op eq 'AND' or $parent_op eq 'OR')
) {
push @children, @{$child->[1][0][1]};
$changes++;
@@ -685,13 +709,9 @@
# only *ONE* LITERAL or placeholder element
# as an AND/OR/NOT argument
elsif (
- @{$child->[1]} == 1 && (
- $child->[1][0][0] eq '-LITERAL'
- or
- $child->[1][0][0] eq '-PLACEHOLDER'
- ) && (
- $ast->[0] eq 'AND' or $ast->[0] eq 'OR' or $ast->[0] eq 'NOT'
- )
+ ( $single_child_op eq '-LITERAL' or $single_child_op eq '-PLACEHOLDER' )
+ and
+ ( $parent_op eq 'AND' or $parent_op eq 'OR' or $parent_op eq 'NOT' )
) {
push @children, @{$child->[1]};
$changes++;
@@ -704,20 +724,18 @@
# break precedence) or when the child is BETWEEN (special
# case)
elsif (
- @{$child->[1]} == 1
- and
- ($ast->[0] eq 'AND' or $ast->[0] eq 'OR')
+ ($parent_op eq 'AND' or $parent_op eq 'OR')
and
- $child->[1][0][0] =~ $binary_op_re
+ $single_child_op =~ $binary_op_re
and
- $child->[1][0][0] ne 'BETWEEN'
+ $single_child_op ne 'BETWEEN'
and
- @{$child->[1][0][1]} == 2
+ $child_op_argc == 2
and
! (
- $child->[1][0][0] =~ $alphanum_cmp_op_re
+ $single_child_op =~ $alphanum_cmp_op_re
and
- $ast->[0] =~ $alphanum_cmp_op_re
+ $parent_op =~ $alphanum_cmp_op_re
)
) {
push @children, @{$child->[1]};
@@ -731,20 +749,20 @@
# or a single non-mathop with a single LITERAL ( nonmathop foo )
# or a single non-mathop with a single PLACEHOLDER ( nonmathop ? )
elsif (
- @{$child->[1]} == 1
+ $single_child_op
and
- @{$child->[1][0][1]} == 1
+ $parent_op =~ $alphanum_cmp_op_re
and
- $ast->[0] =~ $alphanum_cmp_op_re
+ $single_child_op !~ $alphanum_cmp_op_re
and
- $child->[1][0][0] !~ $alphanum_cmp_op_re
+ $child_op_argc == 1
and
(
- $child->[1][0][1][0][0] eq '-PAREN'
+ $single_grandchild_op eq '-PAREN'
or
- $child->[1][0][1][0][0] eq '-LITERAL'
+ $single_grandchild_op eq '-LITERAL'
or
- $child->[1][0][1][0][0] eq '-PLACEHOLDER'
+ $single_grandchild_op eq '-PLACEHOLDER'
)
) {
push @children, @{$child->[1]};
@@ -753,16 +771,17 @@
# a construct of ... ( somefunc ( ... ) ) ... can safely lose the outer parens
# except for the case of ( NOT ( ... ) ) which has already been handled earlier
+ # and except for the case of RNO, where the double are explicit syntax
elsif (
- @{$child->[1]} == 1
+ $parent_op ne 'ROW_NUMBER() OVER'
and
- @{$child->[1][0][1]} == 1
+ $single_child_op
and
- $child->[1][0][0] ne 'NOT'
+ $single_child_op ne 'NOT'
and
- ref $child->[1][0][1][0] eq 'ARRAY'
+ $child_op_argc == 1
and
- $child->[1][0][1][0][0] eq '-PAREN'
+ $single_grandchild_op eq '-PAREN'
) {
push @children, @{$child->[1]};
$changes++;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/lib/SQL/Abstract.pm new/SQL-Abstract-1.78/lib/SQL/Abstract.pm
--- old/SQL-Abstract-1.77/lib/SQL/Abstract.pm 2014-01-17 02:05:06.000000000 +0100
+++ new/SQL-Abstract-1.78/lib/SQL/Abstract.pm 2014-05-28 12:12:07.000000000 +0200
@@ -10,7 +10,7 @@
# GLOBALS
#======================================================================
-our $VERSION = '1.77';
+our $VERSION = '1.78';
# This would confuse some packagers
$VERSION = eval $VERSION if $VERSION =~ /_/; # numify for warning-free dev releases
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/script/format-sql new/SQL-Abstract-1.78/script/format-sql
--- old/SQL-Abstract-1.77/script/format-sql 2013-12-26 11:14:22.000000000 +0100
+++ new/SQL-Abstract-1.78/script/format-sql 1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
-#!/usr/bin/env perl
-
-use SQL::Abstract::Tree;
-use Getopt::Long::Descriptive;
-
-my ($opt, $usage) = describe_options(
- 'format-sql %o',
- [ 'profile|p=s', "the profile to use", { default => 'console' } ],
- [ 'help', "print usage message and exit" ],
-);
-
- print($usage->text), exit if $opt->help;
-
-my $sqlat = SQL::Abstract::Tree->new({ profile => $opt->profile, fill_in_placeholders => 0 });
-
-print $sqlat->format($_) . "\n" while <>;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/t/10test.t new/SQL-Abstract-1.78/t/10test.t
--- old/SQL-Abstract-1.77/t/10test.t 2014-01-17 01:42:27.000000000 +0100
+++ new/SQL-Abstract-1.78/t/10test.t 2014-05-28 05:48:06.000000000 +0200
@@ -1093,4 +1093,17 @@
'expected debug of missing branch',
);
+
+ok (eq_sql_bind (
+ \[ 'SELECT foo FROM bar WHERE baz = ? or buzz = ?', [ {} => 1 ], 2 ],
+ 'SELECT foo FROM bar WHERE (baz = ?) OR buzz = ?',
+ [ [ {} => 1 ], 2 ],
+), 'arrayrefref unpacks correctly' );
+
+is_same_sql_bind(
+ \[ 'SELECT foo FROM bar WHERE baz = ? or buzz = ?', [ {} => 1 ], 2 ],
+ \[ 'SELECT foo FROM bar WHERE (( baz = ? OR (buzz = ?) ))', [ {} => 1 ], 2 ],
+ 'double arrayrefref unpacks correctly'
+);
+
done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/t/11parser.t new/SQL-Abstract-1.78/t/11parser.t
--- old/SQL-Abstract-1.77/t/11parser.t 2014-01-17 01:42:27.000000000 +0100
+++ new/SQL-Abstract-1.78/t/11parser.t 2014-05-21 11:10:04.000000000 +0200
@@ -533,6 +533,122 @@
]
], 'real life statement 1 parsed correctly');
+is_deeply($sqlat->parse("CASE WHEN FOO() > BAR()"), [
+ [
+ "-MISC",
+ [
+ [
+ "-LITERAL",
+ [
+ "CASE"
+ ]
+ ],
+ [
+ "-LITERAL",
+ [
+ "WHEN"
+ ]
+ ]
+ ]
+ ],
+ [
+ ">",
+ [
+ [
+ "FOO",
+ [
+ [
+ "-PAREN",
+ []
+ ]
+ ]
+ ],
+ [
+ "BAR",
+ [
+ [
+ "-PAREN",
+ []
+ ]
+ ]
+ ]
+ ]
+ ]
+]);
+
+is_deeply($sqlat->parse("SELECT [me].[id], ROW_NUMBER ( ) OVER (ORDER BY (SELECT 1)) AS [rno__row__index] FROM bar"), [
+ [
+ "SELECT",
+ [
+ [
+ "-LIST",
+ [
+ [
+ "-LITERAL",
+ [
+ "[me].[id]"
+ ]
+ ],
+ [
+ "AS",
+ [
+ [
+ "ROW_NUMBER() OVER",
+ [
+ [
+ "-PAREN",
+ [
+ [
+ "ORDER BY",
+ [
+ [
+ "-PAREN",
+ [
+ [
+ "SELECT",
+ [
+ [
+ "-LITERAL",
+ [
+ 1
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ [
+ "-LITERAL",
+ [
+ "[rno__row__index]"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ [
+ "FROM",
+ [
+ [
+ "-LITERAL",
+ [
+ "bar"
+ ]
+ ]
+ ]
+ ]
+]);
+
+
is_deeply($sqlat->parse("SELECT x, y FROM foo WHERE x IN (?, ?, ?, ?)"), [
[
"SELECT",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SQL-Abstract-1.77/t/14roundtrippin.t new/SQL-Abstract-1.78/t/14roundtrippin.t
--- old/SQL-Abstract-1.77/t/14roundtrippin.t 2014-01-17 01:42:27.000000000 +0100
+++ new/SQL-Abstract-1.78/t/14roundtrippin.t 2014-05-28 05:47:34.000000000 +0200
@@ -20,12 +20,16 @@
"SELECT [screen].[id], [screen].[name], [screen].[section_id], [screen].[xtype] FROM [users_roles] [me] JOIN [roles] [role] ON [role].[id] = [me].[role_id] JOIN [roles_permissions] [role_permissions] ON [role_permissions].[role_id] = [role].[id] JOIN [permissions] [permission] ON [permission].[id] = [role_permissions].[permission_id] JOIN [permissionscreens] [permission_screens] ON [permission_screens].[permission_id] = [permission].[id] JOIN [screens] [screen] ON [screen].[id] = [permission_screens].[screen_id] WHERE ( [me].[user_id] = ? ) GROUP BY [screen].[id], [screen].[name], [screen].[section_id], [screen].[xtype]",
"SELECT * FROM foo WHERE NOT EXISTS (SELECT bar FROM baz)",
"SELECT * FROM (SELECT SUM (CASE WHEN me.artist = 'foo' THEN 1 ELSE 0 END AS artist_sum) FROM foobar) WHERE foo.a = 1 and foo.b LIKE 'station'",
+ "SELECT * FROM (SELECT SUM (CASE WHEN GETUTCDATE() > DATEADD(second, 4 * 60, last_checkin) THEN 1 ELSE 0 END) FROM foobar) WHERE foo.a = 1 and foo.b LIKE 'station'",
"SELECT COUNT( * ) FROM foo me JOIN bar rel_bar ON rel_bar.id_bar = me.fk_bar WHERE NOT EXISTS (SELECT inner_baz.id_baz FROM baz inner_baz WHERE ( ( inner_baz.fk_a != ? AND ( fk_bar = me.fk_bar AND name = me.name ) ) ) )",
"SELECT foo AS bar FROM baz ORDER BY x + ? DESC, oomph, y - ? DESC, unf, baz.g / ? ASC, buzz * 0 DESC, foo DESC, ickk ASC",
"SELECT inner_forum_roles.forum_id FROM forum_roles AS inner_forum_roles LEFT JOIN user_roles AS inner_user_roles USING(user_role_type_id) WHERE inner_user_roles.user_id = users__row.user_id",
"SELECT * FROM foo WHERE foo.a @@ to_tsquery('word')",
"SELECT * FROM foo ORDER BY name + ?, [me].[id]",
"SELECT foo AS bar FROM baz ORDER BY x + ? DESC, baz.g",
+ "SELECT [me].[id], ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS [rno__row__index] FROM ( SELECT [me].[id] FROM [LogParents] [me]) [me]",
+ # deliberate batshit insanity
+ "SELECT foo FROM bar WHERE > 12",
);
# FIXME FIXME FIXME
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-CPAN-Perl-Releases for openSUSE:Factory checked in at 2014-09-17 17:26:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-CPAN-Perl-Releases (Old)
and /work/SRC/openSUSE:Factory/.perl-CPAN-Perl-Releases.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-CPAN-Perl-Releases"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-CPAN-Perl-Releases/perl-CPAN-Perl-Releases.changes 2014-03-09 18:35:18.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-CPAN-Perl-Releases.new/perl-CPAN-Perl-Releases.changes 2014-09-17 17:26:21.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Sep 15 16:02:05 UTC 2014 - coolo(a)suse.com
+
+- updated to 1.86
+ Updated for v5.20.1
+
+-------------------------------------------------------------------
Old:
----
CPAN-Perl-Releases-1.64.tar.gz
New:
----
CPAN-Perl-Releases-1.86.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-CPAN-Perl-Releases.spec ++++++
--- /var/tmp/diff_new_pack.PrYBEe/_old 2014-09-17 17:26:23.000000000 +0200
+++ /var/tmp/diff_new_pack.PrYBEe/_new 2014-09-17 17:26:23.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-CPAN-Perl-Releases
-Version: 1.64
+Version: 1.86
Release: 0
%define cpan_name CPAN-Perl-Releases
Summary: Mapping Perl releases on CPAN to the location of the tarballs
++++++ CPAN-Perl-Releases-1.64.tar.gz -> CPAN-Perl-Releases-1.86.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-1.64/Changes new/CPAN-Perl-Releases-1.86/Changes
--- old/CPAN-Perl-Releases-1.64/Changes 2014-02-20 11:52:57.000000000 +0100
+++ new/CPAN-Perl-Releases-1.86/Changes 2014-09-14 15:32:25.000000000 +0200
@@ -1,8 +1,118 @@
==================================================
-Changes from 2009-02-21 00:00:00 +0000 to present.
+Changes from 2009-09-15 00:00:00 +0000 to present.
==================================================
-----------------------------------------
+version 1.86 at 2014-09-14 13:31:59 +0000
+-----------------------------------------
+
+ Change: 82d88d9ff81387236216082a8f524218a8a4b5ef
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2014-09-14 14:31:59 +0000
+
+ Updated for v5.20.1
+
+-----------------------------------------
+version 1.84 at 2014-09-07 17:12:53 +0000
+-----------------------------------------
+
+ Change: ed22a5524880d440f0e8f10535368c1486789969
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2014-09-07 18:12:53 +0000
+
+ Updated for v5.20.1-RC2
+
+-----------------------------------------
+version 1.82 at 2014-08-26 01:37:01 +0000
+-----------------------------------------
+
+ Change: edc43680f5c5141fec8507e66d7f3dcab4e92fa5
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2014-08-26 02:37:01 +0000
+
+ Updated for v5.20.1-RC1
+
+-----------------------------------------
+version 1.80 at 2014-08-21 09:00:13 +0000
+-----------------------------------------
+
+ Change: 6a1d4dde10d01eef0b44df2f1c65bed608480bd3
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2014-08-21 10:00:13 +0000
+
+ Updated for v5.21.3
+
+-----------------------------------------
+version 1.78 at 2014-07-20 13:45:18 +0000
+-----------------------------------------
+
+ Change: 0e67e38d070716e6831b2165cfc0cfedf1274fb6
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2014-07-20 14:45:18 +0000
+
+ Updated for v5.21.2
+
+-----------------------------------------
+version 1.76 at 2014-06-20 13:46:55 +0000
+-----------------------------------------
+
+ Change: 134a45e051aa5ae1cd4c8bc5d2fbe2095da5548b
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2014-06-20 14:46:55 +0000
+
+ Updated for v5.21.1
+
+-----------------------------------------
+version 1.74 at 2014-05-29 10:49:22 +0000
+-----------------------------------------
+
+ Change: cd318caa80e42105ed9c8857b92c2772d4fb82fa
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2014-05-29 11:49:22 +0000
+
+ Updated for v5.21.0
+
+-----------------------------------------
+version 1.72 at 2014-05-27 08:38:14 +0000
+-----------------------------------------
+
+ Change: efebe6c6be5b75df38318ec023bbcec2de5d305a
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2014-05-27 09:38:14 +0000
+
+ Updated for v5.20.0
+
+-----------------------------------------
+version 1.70 at 2014-05-19 12:08:57 +0000
+-----------------------------------------
+
+ Change: b71b39bb96500373db858cabb11668d44f3b7837
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2014-05-19 13:08:57 +0000
+
+ Updated for v5.20.0-RC1
+
+-----------------------------------------
+version 1.68 at 2014-04-20 15:22:59 +0000
+-----------------------------------------
+
+ Change: 32e9b6ef2ecc64e1b8cbc541582a206b68c08ffb
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2014-04-20 16:22:59 +0000
+
+ Updated for v5.19.11
+
+-----------------------------------------
+version 1.66 at 2014-03-20 19:46:54 +0000
+-----------------------------------------
+
+ Change: 91ac20e6be88671b3497450d87dc587795e74211
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2014-03-20 19:46:54 +0000
+
+ Updated for v5.19.10
+
+-----------------------------------------
version 1.64 at 2014-02-20 10:52:31 +0000
-----------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-1.64/LICENSE new/CPAN-Perl-Releases-1.86/LICENSE
--- old/CPAN-Perl-Releases-1.64/LICENSE 2014-02-20 11:52:57.000000000 +0100
+++ new/CPAN-Perl-Releases-1.86/LICENSE 2014-09-14 15:32:25.000000000 +0200
@@ -22,7 +22,7 @@
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-1.64/MANIFEST new/CPAN-Perl-Releases-1.86/MANIFEST
--- old/CPAN-Perl-Releases-1.64/MANIFEST 2014-02-20 11:52:57.000000000 +0100
+++ new/CPAN-Perl-Releases-1.86/MANIFEST 2014-09-14 15:32:25.000000000 +0200
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.013.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.020.
Changes
LICENSE
MANIFEST
@@ -8,6 +8,7 @@
README
dist.ini
lib/CPAN/Perl/Releases.pm
+t/00-compile.t
t/01-releases.t
t/02-refactor.t
t/release-pod-coverage.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-1.64/META.json new/CPAN-Perl-Releases-1.86/META.json
--- old/CPAN-Perl-Releases-1.64/META.json 2014-02-20 11:52:57.000000000 +0100
+++ new/CPAN-Perl-Releases-1.86/META.json 2014-09-14 15:32:25.000000000 +0200
@@ -4,7 +4,7 @@
"Chris Williams <chris(a)bingosnet.co.uk>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 5.013, CPAN::Meta::Converter version 2.133380",
+ "generated_by" : "Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060",
"license" : [
"perl_5"
],
@@ -21,7 +21,7 @@
},
"configure" : {
"requires" : {
- "ExtUtils::MakeMaker" : "6.30"
+ "ExtUtils::MakeMaker" : "0"
}
},
"develop" : {
@@ -35,6 +35,14 @@
"requires" : {
"perl" : "v5.6.0"
}
+ },
+ "test" : {
+ "requires" : {
+ "File::Spec" : "0",
+ "IO::Handle" : "0",
+ "IPC::Open3" : "0",
+ "Test::More" : "0.47"
+ }
}
},
"release_status" : "stable",
@@ -46,6 +54,6 @@
"web" : "https://github.com/bingos/cpan-perl-releases"
}
},
- "version" : "1.64"
+ "version" : "1.86"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-1.64/META.yml new/CPAN-Perl-Releases-1.86/META.yml
--- old/CPAN-Perl-Releases-1.64/META.yml 2014-02-20 11:52:57.000000000 +0100
+++ new/CPAN-Perl-Releases-1.86/META.yml 2014-09-14 15:32:25.000000000 +0200
@@ -3,11 +3,14 @@
author:
- 'Chris Williams <chris(a)bingosnet.co.uk>'
build_requires:
+ File::Spec: '0'
+ IO::Handle: '0'
+ IPC::Open3: '0'
Test::More: '0.47'
configure_requires:
- ExtUtils::MakeMaker: '6.30'
+ ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.013, CPAN::Meta::Converter version 2.133380'
+generated_by: 'Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -18,4 +21,4 @@
resources:
homepage: https://github.com/bingos/cpan-perl-releases
repository: https://github.com/bingos/cpan-perl-releases.git
-version: '1.64'
+version: '1.86'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-1.64/Makefile.PL new/CPAN-Perl-Releases-1.86/Makefile.PL
--- old/CPAN-Perl-Releases-1.64/Makefile.PL 2014-02-20 11:52:57.000000000 +0100
+++ new/CPAN-Perl-Releases-1.86/Makefile.PL 2014-09-14 15:32:25.000000000 +0200
@@ -1,11 +1,11 @@
-# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.013.
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.020.
use strict;
use warnings;
use 5.006000;
-use ExtUtils::MakeMaker 6.30;
+use ExtUtils::MakeMaker ;
@@ -16,15 +16,20 @@
"Test::More" => "0.47"
},
"CONFIGURE_REQUIRES" => {
- "ExtUtils::MakeMaker" => "6.30"
+ "ExtUtils::MakeMaker" => 0
},
"DISTNAME" => "CPAN-Perl-Releases",
"EXE_FILES" => [],
"LICENSE" => "perl",
"NAME" => "CPAN::Perl::Releases",
"PREREQ_PM" => {},
- "TEST_REQUIRES" => {},
- "VERSION" => "1.64",
+ "TEST_REQUIRES" => {
+ "File::Spec" => 0,
+ "IO::Handle" => 0,
+ "IPC::Open3" => 0,
+ "Test::More" => "0.47"
+ },
+ "VERSION" => "1.86",
"test" => {
"TESTS" => "t/*.t"
}
@@ -32,6 +37,9 @@
my %FallbackPrereqs = (
+ "File::Spec" => 0,
+ "IO::Handle" => 0,
+ "IPC::Open3" => 0,
"Test::More" => "0.47"
);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-1.64/README new/CPAN-Perl-Releases-1.86/README
--- old/CPAN-Perl-Releases-1.64/README 2014-02-20 11:52:57.000000000 +0100
+++ new/CPAN-Perl-Releases-1.86/README 2014-09-14 15:32:25.000000000 +0200
@@ -3,7 +3,7 @@
the tarballs
VERSION
- version 1.64
+ version 1.86
SYNOPSIS
use CPAN::Perl::Releases qw[perl_tarballs];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-1.64/dist.ini new/CPAN-Perl-Releases-1.86/dist.ini
--- old/CPAN-Perl-Releases-1.64/dist.ini 2014-02-20 11:52:57.000000000 +0100
+++ new/CPAN-Perl-Releases-1.86/dist.ini 2014-09-14 15:32:25.000000000 +0200
@@ -1,11 +1,10 @@
name = CPAN-Perl-Releases
-version = 1.64
+version = 1.86
author = Chris Williams <chris(a)bingosnet.co.uk>
license = Perl_5
copyright_holder = Chris Williams
[@BINGOS]
--remove = Test::Compile
[Prereqs / BuildRequires]
Test::More = 0.47
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-1.64/lib/CPAN/Perl/Releases.pm new/CPAN-Perl-Releases-1.86/lib/CPAN/Perl/Releases.pm
--- old/CPAN-Perl-Releases-1.64/lib/CPAN/Perl/Releases.pm 2014-02-20 11:52:57.000000000 +0100
+++ new/CPAN-Perl-Releases-1.86/lib/CPAN/Perl/Releases.pm 2014-09-14 15:32:25.000000000 +0200
@@ -1,5 +1,5 @@
package CPAN::Perl::Releases;
-$CPAN::Perl::Releases::VERSION = '1.64';
+$CPAN::Perl::Releases::VERSION = '1.86';
#ABSTRACT: Mapping Perl releases on CPAN to the location of the tarballs
use strict;
@@ -138,6 +138,17 @@
"5.18.2" => { id => 'RJBS' },
"5.19.8" => { id => 'RJBS' },
"5.19.9" => { id => 'TONYC' },
+"5.19.10" => { id => 'ARC' },
+"5.19.11" => { id => 'SHAY' },
+"5.20.0-RC1" => { id => 'RJBS' },
+"5.20.0" => { id => 'RJBS' },
+"5.21.0" => { id => 'RJBS' },
+"5.21.1" => { id => 'WOLFSAGE' },
+"5.21.2" => { id => 'ABIGAIL' },
+"5.21.3" => { id => 'PCM' },
+"5.20.1-RC1" => { id => 'SHAY' },
+"5.20.1-RC2" => { id => 'SHAY' },
+"5.20.1" => { id => 'SHAY' },
};
sub perl_tarballs {
@@ -194,7 +205,7 @@
=head1 VERSION
-version 1.64
+version 1.86
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-1.64/t/00-compile.t new/CPAN-Perl-Releases-1.86/t/00-compile.t
--- old/CPAN-Perl-Releases-1.64/t/00-compile.t 1970-01-01 01:00:00.000000000 +0100
+++ new/CPAN-Perl-Releases-1.86/t/00-compile.t 2014-09-14 15:32:25.000000000 +0200
@@ -0,0 +1,50 @@
+use 5.006;
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.046
+
+use Test::More tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
+
+
+
+my @module_files = (
+ 'CPAN/Perl/Releases.pm'
+);
+
+
+
+# no fake home requested
+
+my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib';
+
+use File::Spec;
+use IPC::Open3;
+use IO::Handle;
+
+open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
+
+my @warnings;
+for my $lib (@module_files)
+{
+ # see L<perlfaq8/How can I capture STDERR from an external command?>
+ my $stderr = IO::Handle->new;
+
+ my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]");
+ binmode $stderr, ':crlf' if $^O eq 'MSWin32';
+ my @_warnings = <$stderr>;
+ waitpid($pid, 0);
+ is($?, 0, "$lib loaded ok");
+
+ if (@_warnings)
+ {
+ warn @_warnings;
+ push @warnings, @_warnings;
+ }
+}
+
+
+
+is(scalar(@warnings), 0, 'no warnings found') or diag 'got warnings: ', explain \@warnings if $ENV{AUTHOR_TESTING};
+
+
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-local-lib for openSUSE:Factory checked in at 2014-09-17 17:25:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-local-lib (Old)
and /work/SRC/openSUSE:Factory/.perl-local-lib.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-local-lib"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-local-lib/perl-local-lib.changes 2014-03-18 13:57:57.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-local-lib.new/perl-local-lib.changes 2014-09-17 17:26:20.000000000 +0200
@@ -1,0 +2,32 @@
+Mon Sep 15 15:44:36 UTC 2014 - coolo(a)suse.com
+
+- updated to 2.000014
+ - fix taint-mode test in some cases on case insensitive filesystems
+
+ 2.000013 - 2014-08-16
+ - fix test failure in ActiveState perl
+ - better test diagnostics
+ - fix quoting of spaces for fish shell (rt#95268)
+ - improve quoting for use with cmd.exe
+ - fix quoting any arbitrary character when contructing strings for bash
+ - skip testing use with shells if the shell doesn't work at all
+
+ 2.000012 - 2014-05-12
+ - restore build_activate_environment_vars_for,
+ build_deactivate_environment_vars_for, build_deact_all_environment_vars_for
+ methods for perlbrew compatibility
+ - fix transforming relative paths to absolute paths in older perls
+ - fix quoting for fish shell
+
+ 2.000011 - 2014-04-02
+ - more fixes for issue where PERL5LIB Carp is not the same version as in the
+ local-lib
+
+ 2.000010 - 2014-03-28
+ - fix shell test on cygwin
+
+ 2.000_009 - 2014-03-15
+ - no longer loads File::Spec, so an upgraded version installed inside a local
+ lib dir can be used by scripts
+
+-------------------------------------------------------------------
Old:
----
local-lib-2.000008.tar.gz
New:
----
local-lib-2.000014.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-local-lib.spec ++++++
--- /var/tmp/diff_new_pack.s5aruZ/_old 2014-09-17 17:26:21.000000000 +0200
+++ /var/tmp/diff_new_pack.s5aruZ/_new 2014-09-17 17:26:21.000000000 +0200
@@ -18,7 +18,7 @@
Name: perl-local-lib
-Version: 2.000008
+Version: 2.000014
Release: 0
Summary: Create and Use a local Library Directory for Perl Modules
License: Artistic-1.0 or GPL-1.0+
++++++ local-lib-2.000008.tar.gz -> local-lib-2.000014.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local-lib-2.000008/Changes new/local-lib-2.000014/Changes
--- old/local-lib-2.000008/Changes 2014-03-13 17:30:08.000000000 +0100
+++ new/local-lib-2.000014/Changes 2014-09-04 11:49:23.000000000 +0200
@@ -1,5 +1,34 @@
Revision history for local::lib
+2.000014 - 2014-09-04
+ - fix taint-mode test in some cases on case insensitive filesystems
+
+2.000013 - 2014-08-16
+ - fix test failure in ActiveState perl
+ - better test diagnostics
+ - fix quoting of spaces for fish shell (rt#95268)
+ - improve quoting for use with cmd.exe
+ - fix quoting any arbitrary character when contructing strings for bash
+ - skip testing use with shells if the shell doesn't work at all
+
+2.000012 - 2014-05-12
+ - restore build_activate_environment_vars_for,
+ build_deactivate_environment_vars_for, build_deact_all_environment_vars_for
+ methods for perlbrew compatibility
+ - fix transforming relative paths to absolute paths in older perls
+ - fix quoting for fish shell
+
+2.000011 - 2014-04-02
+ - more fixes for issue where PERL5LIB Carp is not the same version as in the
+ local-lib
+
+2.000010 - 2014-03-28
+ - fix shell test on cygwin
+
+2.000_009 - 2014-03-15
+ - no longer loads File::Spec, so an upgraded version installed inside a local
+ lib dir can be used by scripts
+
2.000008 - 2014-03-13
- fix --bootstrap option without a path specified
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local-lib-2.000008/MANIFEST new/local-lib-2.000014/MANIFEST
--- old/local-lib-2.000008/MANIFEST 2014-03-13 17:30:25.000000000 +0100
+++ new/local-lib-2.000014/MANIFEST 2014-09-04 11:50:06.000000000 +0200
@@ -10,6 +10,7 @@
Makefile.PL
MANIFEST This list of files
t/bad_variables.t
+t/carp-mismatch.t
t/classmethod.t
t/coderefs_in_inc.t
t/de-dup.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local-lib-2.000008/META.json new/local-lib-2.000014/META.json
--- old/local-lib-2.000008/META.json 2014-03-13 17:30:25.000000000 +0100
+++ new/local-lib-2.000014/META.json 2014-09-04 11:50:06.000000000 +0200
@@ -4,7 +4,7 @@
"mst - Matt S. Trout (cpan:MSTROUT) <mst(a)shadowcat.co.uk>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.9, CPAN::Meta::Converter version 2.140640",
+ "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.141520",
"license" : [
"perl_5"
],
@@ -32,7 +32,9 @@
},
"requires" : {
"Capture::Tiny" : "0",
+ "Perl::MinimumVersion" : "1.35",
"Test::EOL" : "0",
+ "Test::MinimumVersion" : "0",
"Test::More" : "0.8101",
"Test::NoTabs" : "0",
"Test::Pod" : "0"
@@ -69,5 +71,5 @@
},
"x_IRC" : "irc://irc.perl.org/#local-lib"
},
- "version" : "2.000008"
+ "version" : "2.000014"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local-lib-2.000008/META.yml new/local-lib-2.000014/META.yml
--- old/local-lib-2.000008/META.yml 2014-03-13 17:30:25.000000000 +0100
+++ new/local-lib-2.000014/META.yml 2014-09-04 11:50:06.000000000 +0200
@@ -6,7 +6,7 @@
Test::More: '0'
configure_requires: {}
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.9, CPAN::Meta::Converter version 2.140640'
+generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.141520'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -27,4 +27,4 @@
bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=local-lib
license: http://dev.perl.org/licenses/
repository: git://github.com/Perl-Toolchain-Gang/local-lib
-version: '2.000008'
+version: '2.000014'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local-lib-2.000008/Makefile.PL new/local-lib-2.000014/Makefile.PL
--- old/local-lib-2.000008/Makefile.PL 2014-03-13 17:27:36.000000000 +0100
+++ new/local-lib-2.000014/Makefile.PL 2014-09-04 11:47:59.000000000 +0200
@@ -26,6 +26,8 @@
'Test::Pod' => 0,
'Capture::Tiny' => 0,
'Test::More' => 0.81_01,
+ 'Test::MinimumVersion' => 0,
+ 'Perl::MinimumVersion' => 1.35,
},
recommends => {
'Test::CPAN::Changes' => 0,
@@ -167,7 +169,7 @@
if $status;
}
-##############################################################################
+## BOILERPLATE ###############################################################
require ExtUtils::MakeMaker;
(do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml';
@@ -178,8 +180,10 @@
($MM_ARGS{NAME} = $META{name}) =~ s/-/::/g;
($MM_ARGS{VERSION_FROM} = "lib/$MM_ARGS{NAME}.pm") =~ s{::}{/}g;
-$MM_ARGS{LICENSE} = $META{license}
- if $eumm_version >= 6.30;
+$META{license} = [ $META{license} ]
+ if $META{license} && !ref $META{license};
+$MM_ARGS{LICENSE} = $META{license}[0]
+ if $META{license} && $eumm_version >= 6.30;
$MM_ARGS{NO_MYMETA} = 1
if $mymeta_broken;
$MM_ARGS{META_ADD} = { 'meta-spec' => { version => 2 }, %META }
@@ -188,7 +192,7 @@
for (qw(configure build test runtime)) {
my $key = $_ eq 'runtime' ? 'PREREQ_PM' : uc $_.'_REQUIRES';
my $r = $MM_ARGS{$key} = {
- %{$META{prereqs}{$_}{requires}},
+ %{$META{prereqs}{$_}{requires} || {}},
%{delete $MM_ARGS{$key} || {}},
};
defined $r->{$_} or delete $r->{$_} for keys %$r;
@@ -206,3 +210,4 @@
if $eumm_version < 6.51_03;
ExtUtils::MakeMaker::WriteMakefile(%MM_ARGS);
+## END BOILERPLATE ###########################################################
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local-lib-2.000008/README new/local-lib-2.000014/README
--- old/local-lib-2.000008/README 2014-03-13 17:30:25.000000000 +0100
+++ new/local-lib-2.000014/README 2014-09-04 11:50:06.000000000 +0200
@@ -476,11 +476,11 @@
* Should probably auto-fixup CPAN config if not already done.
- * local::lib loads File::Spec. When used to set shell variables, this
- isn't a problem. When used inside a perl script, any File::Spec
- version inside the local::lib will be ignored. A workaround for this
- is using "use lib "$ENV{HOME}/perl5/lib/perl5";" inside the script
- instead of using "local::lib" directly.
+ * On VMS and MacOS Classic (pre-OS X), local::lib loads File::Spec.
+ This means any File::Spec version installed in the local::lib will
+ be ignored by scripts using local::lib. A workaround for this is
+ using "use lib "$local_lib/lib/perl5";" instead of using
+ "local::lib" directly.
* Conflicts with ExtUtils::MakeMaker's "PREFIX" option. "local::lib"
uses the "INSTALL_BASE" option, as it has more predictable and sane
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local-lib-2.000008/lib/local/lib.pm new/local-lib-2.000014/lib/local/lib.pm
--- old/local-lib-2.000008/lib/local/lib.pm 2014-03-13 17:29:34.000000000 +0100
+++ new/local-lib-2.000014/lib/local/lib.pm 2014-09-04 11:48:41.000000000 +0200
@@ -3,11 +3,88 @@
use strict;
use warnings;
use Config;
-use File::Spec ();
-our $VERSION = '2.000008'; # 2.0.8
+our $VERSION = '2.000014';
$VERSION = eval $VERSION;
+BEGIN {
+ *_WIN32 = ($^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'symbian')
+ ? sub(){1} : sub(){0};
+ # punt on these systems
+ *_USE_FSPEC = ($^O eq 'MacOS' || $^O eq 'VMS' || $INC{'File/Spec.pm'})
+ ? sub(){1} : sub(){0};
+}
+our $_DIR_JOIN = _WIN32 ? '\\' : '/';
+our $_DIR_SPLIT = (_WIN32 || $^O eq 'cygwin') ? qr{[\\/]}
+ : qr{/};
+our $_ROOT = _WIN32 ? do {
+ my $UNC = qr{[\\/]{2}[^\\/]+[\\/][^\\/]+};
+ qr{^(?:$UNC|[A-Za-z]:|)$_DIR_SPLIT};
+} : qr{^/};
+our $_PERL;
+
+sub _cwd {
+ my $drive = shift;
+ if (!$_PERL) {
+ ($_PERL) = $^X =~ /(.+)/; # $^X is internal how could it be tainted?!
+ if (_is_abs($_PERL)) {
+ }
+ elsif (-x $Config{perlpath}) {
+ $_PERL = $Config{perlpath};
+ }
+ else {
+ ($_PERL) =
+ map { /(.*)/ }
+ grep { -x $_ }
+ map { join($_DIR_JOIN, $_, $_PERL) }
+ split /\Q$Config{path_sep}\E/, $ENV{PATH};
+ }
+ }
+ local @ENV{qw(PATH IFS CDPATH ENV BASH_ENV)};
+ my $cmd = $drive ? "eval { Cwd::getdcwd(q($drive)) }"
+ : 'getcwd';
+ my $cwd = `"$_PERL" -MCwd -le "print $cmd"`;
+ chomp $cwd;
+ if (!length $cwd && $drive) {
+ $cwd = $drive;
+ }
+ $cwd =~ s/$_DIR_SPLIT?$/$_DIR_JOIN/;
+ $cwd;
+}
+
+sub _catdir {
+ if (_USE_FSPEC) {
+ require File::Spec;
+ File::Spec->catdir(@_);
+ }
+ else {
+ my $dir = join($_DIR_JOIN, @_);
+ $dir =~ s{($_DIR_SPLIT)(?:\.?$_DIR_SPLIT)+}{$1}g;
+ $dir;
+ }
+}
+
+sub _is_abs {
+ if (_USE_FSPEC) {
+ require File::Spec;
+ File::Spec->file_name_is_absolute($_[0]);
+ }
+ else {
+ $_[0] =~ $_ROOT;
+ }
+}
+
+sub _rel2abs {
+ my ($dir, $base) = @_;
+ return $dir
+ if _is_abs($dir);
+
+ $base = _WIN32 && $dir =~ s/^([A-Za-z]:)// ? _cwd("$1")
+ : $base ? $base
+ : _cwd;
+ return _catdir($base, $dir);
+}
+
sub import {
my ($class, @args) = @_;
push @args, @ARGV
@@ -133,21 +210,21 @@
sub install_base_bin_path {
my ($class, $path) = @_;
- return File::Spec->catdir($path, 'bin');
+ return _catdir($path, 'bin');
}
sub install_base_perl_path {
my ($class, $path) = @_;
- return File::Spec->catdir($path, 'lib', 'perl5');
+ return _catdir($path, 'lib', 'perl5');
}
sub install_base_arch_path {
my ($class, $path) = @_;
- File::Spec->catdir($class->install_base_perl_path($path), $_archname);
+ _catdir($class->install_base_perl_path($path), $_archname);
}
sub lib_paths_for {
my ($class, $path) = @_;
my $base = $class->install_base_perl_path($path);
- return map { File::Spec->catdir($base, @$_) } @_lib_subdirs;
+ return map { _catdir($base, @$_) } @_lib_subdirs;
}
sub _mm_escape_path {
@@ -280,6 +357,18 @@
my $self = $_[0]->new->activate($_[1]);
$self->build_environment_vars;
}
+sub build_activate_environment_vars_for {
+ my $self = $_[0]->new->activate($_[1]);
+ $self->build_environment_vars;
+}
+sub build_deactivate_environment_vars_for {
+ my $self = $_[0]->new->deactivate($_[1]);
+ $self->build_environment_vars;
+}
+sub build_deact_all_environment_vars_for {
+ my $self = $_[0]->new->deactivate_all;
+ $self->build_environment_vars;
+}
sub build_environment_vars {
my $self = shift;
(
@@ -297,6 +386,12 @@
sub setup_local_lib {
my $self = shift;
+
+ # if Carp is already loaded, ensure Carp::Heavy is also loaded, to avoid
+ # $VERSION mismatch errors (Carp::Heavy loads Carp, so we do not need to
+ # check in the other direction)
+ require Carp::Heavy if $INC{'Carp.pm'};
+
$self->setup_env_hash;
@INC = @{$self->inc};
}
@@ -331,8 +426,6 @@
$shelltype ||= $self->guess_shelltype;
- my $build_method = "build_${shelltype}_env_declaration";
-
my $extra = $self->extra;
my @envs = (
PATH => $self->bins,
@@ -340,6 +433,15 @@
PERL_LOCAL_LIB_ROOT => $self->roots,
map { $_ => $extra->{$_} } sort keys %$extra,
);
+ $self->_build_env_string($shelltype, \@envs);
+}
+
+sub _build_env_string {
+ my ($self, $shelltype, $envs) = @_;
+ my @envs = @$envs;
+
+ my $build_method = "build_${shelltype}_env_declaration";
+
my $out = '';
while (@envs) {
my ($name, $value) = (shift(@envs), shift(@envs));
@@ -351,14 +453,6 @@
&& ${$value->[0]} eq $name) {
next;
}
- if (
- !ref $value
- and defined $value
- ? (defined $ENV{$name} && $value eq $ENV{$name})
- : !defined $ENV{$name}
- ) {
- next;
- }
$out .= $self->$build_method($name, $value);
}
my $wrap_method = "wrap_${shelltype}_output";
@@ -370,21 +464,21 @@
sub build_bourne_env_declaration {
my ($class, $name, $args) = @_;
- my $value = $class->_interpolate($args, '$%s', '"', '\\%s');
+ my $value = $class->_interpolate($args, '${%s}', qr/["\\\$!`]/, '\\%s');
if (!defined $value) {
return qq{unset $name;\n};
}
- $value =~ s/(^|\G|$_path_sep)\$$name$_path_sep/$1\$$name\${$name+$_path_sep}/g;
- $value =~ s/$_path_sep\$$name$/\${$name+$_path_sep}\$$name/;
+ $value =~ s/(^|\G|$_path_sep)\$\{$name\}$_path_sep/$1\${$name}\${$name+$_path_sep}/g;
+ $value =~ s/$_path_sep\$\{$name\}$/\${$name+$_path_sep}\${$name}/;
qq{${name}="$value"; export ${name};\n}
}
sub build_csh_env_declaration {
my ($class, $name, $args) = @_;
- my ($value, @vars) = $class->_interpolate($args, '$%s', '"', '"\\%s"');
+ my ($value, @vars) = $class->_interpolate($args, '${%s}', '"', '"\\%s"');
if (!defined $value) {
return qq{unsetenv $name;\n};
}
@@ -395,9 +489,9 @@
}
my $value_without = $value;
- if ($value_without =~ s/(?:^|$_path_sep)\$$name(?:$_path_sep|$)//g) {
- $out .= qq{if "\$$name" != '' setenv $name "$value";\n};
- $out .= qq{if "\$$name" == '' };
+ if ($value_without =~ s/(?:^|$_path_sep)\$\{$name\}(?:$_path_sep|$)//g) {
+ $out .= qq{if "\${$name}" != '' setenv $name "$value";\n};
+ $out .= qq{if "\${$name}" == '' };
}
$out .= qq{setenv $name "$value_without";\n};
return $out;
@@ -405,7 +499,7 @@
sub build_cmd_env_declaration {
my ($class, $name, $args) = @_;
- my $value = $class->_interpolate($args, '%%%s%%', qr([()!^"<>&|]), '^%s');
+ my $value = $class->_interpolate($args, '%%%s%%', qr(%), '%s');
if (!$value) {
return qq{\@set $name=\n};
}
@@ -413,10 +507,10 @@
my $out = '';
my $value_without = $value;
if ($value_without =~ s/(?:^|$_path_sep)%$name%(?:$_path_sep|$)//g) {
- $out .= qq{\@if not "%$name%"=="" set $name=$value\n};
+ $out .= qq{\@if not "%$name%"=="" set "$name=$value"\n};
$out .= qq{\@if "%$name%"=="" };
}
- $out .= qq{\@set $name=$value_without\n};
+ $out .= qq{\@set "$name=$value_without"\n};
return $out;
}
@@ -441,7 +535,7 @@
sub build_fish_env_declaration {
my ($class, $name, $args) = @_;
- my $value = $class->_interpolate($args, '$%s', '"', '\\%s');
+ my $value = $class->_interpolate($args, '$%s', qr/[\\"' ]/, '\\%s');
if (!defined $value) {
return qq{set -e $name;\n};
}
@@ -519,7 +613,7 @@
}
};
unless (defined $homedir) {
- require Carp;
+ require Carp; require Carp::Heavy;
Carp::croak(
"Couldn't resolve homedir for "
.(defined $user ? $user : 'current user')
@@ -531,7 +625,7 @@
sub resolve_relative_path {
my ($class, $path) = @_;
- $path = File::Spec->rel2abs($path);
+ _rel2abs($path);
}
sub ensure_dir_structure_for {
@@ -1207,11 +1301,10 @@
=item * Should probably auto-fixup CPAN config if not already done.
-=item * local::lib loads L<File::Spec>. When used to set shell variables,
-this isn't a problem. When used inside a perl script, any L<File::Spec>
-version inside the local::lib will be ignored. A workaround for this is using
-C<use lib "$ENV{HOME}/perl5/lib/perl5";> inside the script instead of using
-C<local::lib> directly.
+=item * On VMS and MacOS Classic (pre-OS X), local::lib loads L<File::Spec>.
+This means any L<File::Spec> version installed in the local::lib will be
+ignored by scripts using local::lib. A workaround for this is using
+C<use lib "$local_lib/lib/perl5";> instead of using C<local::lib> directly.
=item * Conflicts with L<ExtUtils::MakeMaker>'s C<PREFIX> option.
C<local::lib> uses the C<INSTALL_BASE> option, as it has more predictable and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local-lib-2.000008/t/carp-mismatch.t new/local-lib-2.000014/t/carp-mismatch.t
--- old/local-lib-2.000008/t/carp-mismatch.t 1970-01-01 01:00:00.000000000 +0100
+++ new/local-lib-2.000014/t/carp-mismatch.t 2014-05-05 21:27:01.000000000 +0200
@@ -0,0 +1,51 @@
+use strict;
+use warnings;
+
+# something else (presumably a core module that local::lib uses) loads Carp,
+# and then later on something loads Carp::Heavy from the local-lib, which is
+# at a newer version
+
+use Carp;
+use Test::More tests => 4 + ( $Carp::VERSION < '1.22' ? 0 : 1 );
+use File::Spec;
+use File::Path qw(mkpath rmtree); # use legacy versions for backcompat
+use local::lib ();
+
+is $Carp::Heavy::VERSION, undef, 'Carp::Heavy is not yet loaded';
+
+# we do not use File::Temp because it loads Carp::Heavy.
+my $libdir = File::Spec->catdir(File::Spec->tmpdir, 'tmp-carp-newer-' . $$);
+my $carpdir = File::Spec->catdir($libdir, 'lib', 'perl5', 'Carp');
+mkpath($carpdir);
+
+{
+ my $heavy = File::Spec->catfile($carpdir, 'Heavy.pm');
+ open my $fh, '>', $heavy or die "failed to open $heavy for writing: $!";
+ print $fh "package Carp::Heavy;\nour \$VERSION = '500.0';\n";
+ close $fh;
+}
+{
+ # another module, simply to ensure that we got the libdir path correct
+ my $foo = File::Spec->catfile($carpdir, 'Foo.pm');
+ open my $fh, '>', $foo or die "failed to open foo heavy for writing: $!";
+ print $fh "package Carp::Foo;\nour \$VERSION = '200.0';\n";
+ close $fh;
+}
+
+local::lib->import($libdir);
+
+require Carp::Foo;
+is $Carp::Foo::VERSION, '200.0',
+ 'some other module was loaded from our local::lib';
+
+ok $INC{'Carp/Heavy.pm'}, 'Carp::Heavy has now been loaded';
+is $Carp::Heavy::VERSION, $Carp::VERSION,
+ 'Carp::Heavy matching Carp was loaded'
+ unless $Carp::VERSION < '1.22'; # Carp::Heavy namespace did not exist
+isnt $Carp::Heavy::VERSION, '500.0',
+ 'Carp::Heavy was not loaded from our local::lib';
+
+
+END {
+ rmtree($libdir) if $libdir;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local-lib-2.000008/t/shell.t new/local-lib-2.000014/t/shell.t
--- old/local-lib-2.000008/t/shell.t 2014-03-13 11:17:28.000000000 +0100
+++ new/local-lib-2.000014/t/shell.t 2014-07-26 08:54:49.000000000 +0200
@@ -4,8 +4,10 @@
use File::Spec;
use File::Basename qw(dirname);
use File::Temp ();
+use File::Path;
use Config;
use local::lib ();
+use IPC::Open3 qw(open3);
my @ext = $^O eq 'MSWin32' ? (split /\Q$Config{path_sep}/, $ENV{PATHEXT}) : ();
sub which {
@@ -18,6 +20,19 @@
return $full;
}
+BEGIN {
+ *quote_literal =
+ $^O ne 'MSWin32'
+ ? sub { $_[0] }
+ : sub {
+ my ($text) = @_;
+ $text =~ s{(\\*)(?="|\z)}{$1$1}g;
+ $text =~ s{"}{\\"}g;
+ $text = qq{"$text"};
+ return $text;
+ };
+}
+
my %shell_path;
{
my @shell_paths;
@@ -32,50 +47,61 @@
( '/bin/sh', '/bin/csh', $ENV{'ComSpec'}, @shell_paths );
}
-my $extra_lib = '-I"' . dirname(dirname($INC{'local/lib.pm'})) . '"';
+my @extra_lib = ('-I' . dirname(dirname($INC{'local/lib.pm'})));
+my $nul = File::Spec->devnull;
my @shells;
for my $shell (
{
name => 'sh',
+ test => '-c "exit 0"',
},
{
name => 'dash',
+ test => '-c "exit 0"',
},
{
name => 'bash',
+ test => '-c "exit 0"',
},
{
name => 'zsh',
+ test => '-c "exit 0"',
},
{
name => 'ksh',
+ test => '-c "exit 0"',
},
{
name => 'csh',
+ test => '-c "exit 0"',
opt => '-f',
},
{
name => 'tcsh',
+ test => '-c "exit 0"',
opt => '-f',
},
{
name => 'fish',
+ test => '-c "exit 0"',
},
{
name => 'cmd.exe',
opt => '/Q /D /C',
+ test => '/Q /D /C "exit 0"',
ext => 'bat',
perl => qq{@"$^X"},
- skip => !$^O eq 'MSWin32',
+ skip => $^O ne 'MSWin32',
},
{
name => 'powershell.exe',
shell => which('powershell.exe'),
opt => '-NoProfile -ExecutionPolicy Unrestricted -File',
+ test => '-NoProfile -Command "exit 0"',
ext => 'ps1',
perl => qq{& '$^X'},
- skip => !$^O eq 'MSWin32',
+ skip => $^O ne 'MSWin32',
},
) {
my $name = $shell->{name};
@@ -94,72 +120,132 @@
elsif ($shell->{skip} || !$shell->{shell}) {
next;
}
+ elsif ($shell->{test}) {
+ no warnings 'exec';
+ if (system "$shell->{shell} $shell->{test} > $nul 2> $nul") {
+ diag "$name seems broken, skipping";
+ next;
+ }
+ }
push @shells, $shell;
}
if (!@shells) {
plan skip_all => 'no supported shells found';
}
-plan tests => 6*@shells;
+my @vars = qw(PATH PERL5LIB PERL_LOCAL_LIB_ROOT PERL_MM_OPT PERL_MB_OPT);
+my @strings = (
+ 'string',
+ 'with space',
+ 'with"quote',
+ "with'squote",
+ 'with\\bslash',
+ 'with%per%cent',
+);
+
+plan tests => @shells * (@vars * 2 + @strings * 2);
my $sep = $Config{path_sep};
my $root = File::Spec->rootdir;
for my $shell (@shells) {
- my $ll = File::Temp->newdir();
- my $ll_dir = local::lib->normalize_path("$ll");
- local $ENV{PERL_LOCAL_LIB_ROOT};
- delete $ENV{PERL_LOCAL_LIB_ROOT};
- local $ENV{PATH} = $root;
- local $ENV{PERL5LIB};
- delete $ENV{PERL5LIB};
- my $bin_path = local::lib->install_base_bin_path($ll_dir);
+ my $ll = local::lib->normalize_path(File::Temp::tempdir(CLEANUP => 1));
+ local $ENV{$_}
+ for @vars;
+ delete $ENV{$_}
+ for @vars;
+ $ENV{PATH} = $root;
+ my $bin_path = local::lib->install_base_bin_path($ll);
mkdir $bin_path;
- my $env = call_ll($shell, "$ll");
- is $env->{PERL_LOCAL_LIB_ROOT}, $ll_dir,
+ my $env = call_ll($shell, $ll);
+ is $env->{PERL_LOCAL_LIB_ROOT}, $ll,
"$shell->{name}: activate root";
like $env->{PATH}, qr/^\Q$bin_path$sep\E/,
"$shell->{name}: activate PATH";
- is $env->{PERL5LIB}, local::lib->install_base_perl_path($ll_dir),
+ is $env->{PERL5LIB}, local::lib->install_base_perl_path($ll),
"$shell->{name}: activate PERL5LIB";
+ my %install_opts = local::lib->installer_options_for($ll);
+ for my $var (qw(PERL_MM_OPT PERL_MB_OPT)) {
+ is $env->{$var}, $install_opts{$var},
+ "$shell->{name}: activate $var";
+ }
- $ENV{$_} = $env->{$_} for qw(PATH PERL5LIB PERL_LOCAL_LIB_ROOT);
+ $ENV{$_} = $env->{$_} for @vars;
$env = call_ll($shell, '--deactivate', "$ll");
- is $env->{PERL_LOCAL_LIB_ROOT}, undef,
- "$shell->{name}: deactivate root";
unlike $env->{PATH}, qr/^\Q$bin_path$sep\E/,
"$shell->{name}: deactivate PATH";
- is $env->{PERL5LIB}, undef,
- "$shell->{name}: deactivate PERL5LIB";
+ for my $var (grep { $_ ne 'PATH' } @vars) {
+ is $env->{$var}, undef,
+ "$shell->{name}: deactivate $var";
+ }
+
+ my $shelltype = do {
+ local $ENV{SHELL} = $shell->{shell};
+ local::lib->guess_shelltype;
+ };
+ for my $string (@strings) {
+ local $TODO = "$shell->{name}: can't quote strings with percents"
+ if $shell->{name} eq 'cmd.exe' && $string =~ /%/;
+
+ local $ENV{LL_TEST};
+ delete $ENV{LL_TEST};
+ my $script = local::lib->_build_env_string($shelltype, [
+ LL_TEST => $string,
+ ]);
+ my $env = call_shell($shell, $script);
+ is $env->{LL_TEST}, $string, "$shell->{name}: can quote [$string]";
+
+ local $TODO = "$shell->{name}: can't test strings with double quotes"
+ if $shell->{name} eq 'cmd.exe' && $string =~ /"/;
+
+ $ENV{LL_TEST} = 'pre';
+ $script = local::lib->_build_env_string($shelltype, [
+ LL_TEST => [\"LL_TEST", $string],
+ ]);
+ $env = call_shell($shell, $script);
+ is $env->{LL_TEST}, "pre$sep$string",
+ "$shell->{name}: can append [$string]";
+ }
}
sub call_ll {
my ($info, @options) = @_;
- my $option = @options ? '='.join(',', @options) : '';
-
local $ENV{SHELL} = $info->{shell};
- my $script
- = `"$^X" $extra_lib -Mlocal::lib$option` . "\n"
- . qq{$info->{perl} -Mt::lib::ENVDumper -e1\n};
-
- my $file = File::Temp->new(
- TEMPLATE => 'll-test-script-XXXXX',
- TMPDIR => 1,
+ open my $in, '<', File::Spec->devnull;
+ open my $err, '>', File::Spec->devnull;
+ open3 $in, my $out, $err,
+ $^X, @extra_lib, '-Mlocal::lib', '-', '--no-create',
+ map { quote_literal($_) } @options
+ or die "blah";
+ my $script = do { local $/; <$out> };
+ close $out;
+ call_shell($info, $script);
+}
+
+sub call_shell {
+ my ($info, $script) = @_;
+ $script .= "\n" . qq{$info->{perl} -Mt::lib::ENVDumper -e1\n};
+
+ my ($fh, $file) = File::Temp::tempfile(
+ 'll-test-script-XXXXX',
+ DIR => File::Spec->tmpdir,
SUFFIX => '.'.$info->{ext},
+ UNLINK => 1,
);
- print { $file } $script;
- close $file;
+ print { $fh } $script;
+ close $fh;
my $opt = $info->{opt} ? "$info->{opt} " : '';
my $cmd = qq{"$info->{shell}" $opt"$file"};
- my $out = `$cmd`;
+ my $output = `$cmd`;
if ($?) {
diag "script:\n$script";
diag "running:\n$cmd";
- die "failed with code: $?";
+ diag "failed with code: $?";
+ return {};
}
- my $env = eval $out or die "bad output: $@";
+ my $env = eval $output or die "bad output: $@";
$env;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local-lib-2.000008/t/taint-mode.t new/local-lib-2.000014/t/taint-mode.t
--- old/local-lib-2.000008/t/taint-mode.t 2014-03-13 11:17:28.000000000 +0100
+++ new/local-lib-2.000014/t/taint-mode.t 2014-08-19 14:39:11.000000000 +0200
@@ -6,11 +6,13 @@
use strict;
use warnings;
-use Test::More tests => 3;
+use Cwd; # load before anything else to work around ActiveState bug
+use Test::More tests => 4;
use File::Temp 'tempfile';
-use Cwd;
+use File::Basename qw(basename dirname);
use File::Spec;
use IPC::Open3;
+use Config;
use lib 't/lib'; use TempDir;
@@ -26,7 +28,12 @@
# Create a script that has taint mode turned on, and tries to use a
# local lib to the same temp dir.
-my ($fh, $filename) = tempfile('test_local_lib-XXXXX', DIR => Cwd::abs_path('t'), UNLINK => 1);
+mkdir 't/temp';
+my ($fh, $filename) = tempfile(
+ 'test_local_lib-XXXXX',
+ DIR => Cwd::abs_path('t/temp'),
+ UNLINK => 1,
+);
print $fh <<"EOM";
#!/usr/bin/perl -T
@@ -53,3 +60,34 @@
ok !grep($_ eq $dir2_lib, @libs),
'local::lib not used used in taint script not added to @INC'
or diag "searched for '$dir2_lib' in: ", join(', ', map "'$_'", @libs);
+
+{
+ my $perl_file = basename($^X);
+ if (!File::Spec->file_name_is_absolute($^X)) {
+ my $perl_dir = dirname($^X);
+ $ENV{PATH} = join($Config{path_sep}, $ENV{PATH}, $perl_dir);
+ }
+
+ my ($fh, $filename) = tempfile(
+ 'test_local_lib-XXXXX',
+ DIR => Cwd::abs_path('t/temp'),
+ UNLINK => 1,
+ );
+
+ print $fh <<'EOM';
+#!/usr/bin/perl -T
+use strict; use warnings;
+use local::lib ();
+print local::lib::_cwd();
+EOM
+ close $fh;
+
+ open my $err, '>', File::Spec->devnull
+ or die "can't open null output: $!";
+ my $out;
+ my $pid = open3($in, $out, $err, $^X, map("-I$_", @INC_CLEAN), '-T', $filename);
+ my $cwd = do { local $/; <$out> };
+ $cwd =~ s/[\r\n]*\z//;
+ $cwd = File::Spec->canonpath($cwd);
+ is $cwd, File::Spec->canonpath(Cwd::getcwd()), 'reimplemented cwd matches standard cwd';
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local-lib-2.000008/xt/bootstrap.t new/local-lib-2.000014/xt/bootstrap.t
--- old/local-lib-2.000008/xt/bootstrap.t 2014-03-13 11:17:28.000000000 +0100
+++ new/local-lib-2.000014/xt/bootstrap.t 2014-04-03 22:55:17.000000000 +0200
@@ -48,14 +48,14 @@
@perl = $^X
unless @perl;
-my @modules = (
- [ 'ExtUtils::MakeMaker' => 6.74 ],
- [ 'ExtUtils::Install' => 1.43 ],
- [ 'Module::Build' => 0.36 ],
- [ 'CPAN' => 1.82 ],
+my %modules = (
+ 'ExtUtils::MakeMaker' => 6.74,
+ 'ExtUtils::Install' => 1.43,
+ 'Module::Build' => 0.36,
+ 'CPAN' => 1.82,
);
-plan tests => @perl * (1+@modules);
+plan tests => @perl * (1+keys %modules);
for my $perl (@perl) {
local @INC = @INC;
@@ -71,10 +71,12 @@
local $ENV{HOME} = my $home = File::Temp::tempdir('local-lib-home-XXXXX', CLEANUP => 1, TMPDIR => 1);
diag "testing bootstrap with $perl";
- for my $module (@modules) {
- my $version = check_version($perl, $module->[0]);
- if ($version && $version >= $module->[1]) {
- diag "Can't test bootstrap of $module->[0], version $version already meets requirement of $module->[1]";
+ my %old_versions;
+ for my $module (sort keys %modules) {
+ my $version = check_version($perl, $module);
+ $old_versions{$module} = $version;
+ if ($version && $version >= $modules{$module}) {
+ diag "Can't test bootstrap of $module, version $version already meets requirement of $modules{$module}";
}
}
@@ -94,13 +96,18 @@
local::lib->setup_env_hash_for($ll);
- for my $module (@modules) {
+ for my $module (sort keys %modules) {
SKIP: {
- my $need_version = $meta->{requires}{$module->[0]}
- or skip "$module->[0] not needed for $perl", 1;
- my $version = check_version($perl, $module->[0]);
- cmp_ok $version, '>=', $module->[1], "bootstrap installed new enough $module->[0]"
- or diag "PERL5LIB: $ENV{PERL5LIB}";
+ my $need_version = $meta->{requires}{$module}
+ or skip "$module not needed for $perl", 1;
+ my $version = check_version($perl, $module);
+ if (defined $old_versions{$module}) {
+ cmp_ok $version, '>=', $modules{$module}, "bootstrap upgraded to new enough $module"
+ or diag "PERL5LIB: $ENV{PERL5LIB}";
+ }
+ else {
+ is $version, undef, "bootstrap didn't install new module $module";
+ }
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local-lib-2.000008/xt/install.t new/local-lib-2.000014/xt/install.t
--- old/local-lib-2.000008/xt/install.t 2014-03-13 17:13:23.000000000 +0100
+++ new/local-lib-2.000014/xt/install.t 2014-07-26 14:11:26.000000000 +0200
@@ -55,6 +55,13 @@
for my $dir_base (@dirs) {
for my $dist_type (sort keys %dist_types) {
chdir $orig_dir;
+ local @ENV{
+ 'PERL_MM_OPT',
+ 'PERL_MB_OPT',
+ 'PERL_LOCAL_LIB_ROOT',
+ grep /^MAKE/, keys %ENV
+ };
+ local $ENV{PERL5LIB} = $ENV{PERL5LIB};
my $temp = mk_temp_dir("install-$dist_type-XXXXX");
my $ll_dir = "$dist_type-$dir_base";
my $ll = "$temp/$ll_dir";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/local-lib-2.000008/xt/release/minimum-version.t new/local-lib-2.000014/xt/release/minimum-version.t
--- old/local-lib-2.000008/xt/release/minimum-version.t 2014-01-21 00:42:00.000000000 +0100
+++ new/local-lib-2.000014/xt/release/minimum-version.t 2014-07-25 12:28:40.000000000 +0200
@@ -1,6 +1,6 @@
use strict;
use warnings;
-use Test::More skip_all => 'Broken until RT#89173 is fixed';
+use Perl::MinimumVersion 1.35;
use Test::MinimumVersion;
all_minimum_version_ok( qq{5.006} );
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Net-IDN-Encode for openSUSE:Factory checked in at 2014-09-17 17:25:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Net-IDN-Encode (Old)
and /work/SRC/openSUSE:Factory/.perl-Net-IDN-Encode.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Net-IDN-Encode"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Net-IDN-Encode/perl-Net-IDN-Encode.changes 2014-07-24 01:04:53.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Net-IDN-Encode.new/perl-Net-IDN-Encode.changes 2014-09-17 17:26:18.000000000 +0200
@@ -1,0 +2,9 @@
+Mon Sep 15 15:44:52 UTC 2014 - coolo(a)suse.com
+
+- updated to 2.201
+ - correct handling of uppercase a-labels in
+ domain_to_{ascii,unicode}
+ - FIXES: #98354: Capitalized ACE prefix does not work (reported
+ by victor(a)*****.ru)
+
+-------------------------------------------------------------------
Old:
----
Net-IDN-Encode-2.200.tar.gz
New:
----
Net-IDN-Encode-2.201.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Net-IDN-Encode.spec ++++++
--- /var/tmp/diff_new_pack.MLJqcs/_old 2014-09-17 17:26:19.000000000 +0200
+++ /var/tmp/diff_new_pack.MLJqcs/_new 2014-09-17 17:26:19.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-Net-IDN-Encode
-Version: 2.200
+Version: 2.201
Release: 0
%define cpan_name Net-IDN-Encode
Summary: Internationalizing Domain Names in Applications (IDNA)
@@ -25,7 +25,7 @@
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Net-IDN-Encode/
Source: http://www.cpan.org/authors/id/C/CF/CFAERBER/%{cpan_name}-%{version}.tar.gz
-Patch: encodeoffbyone.diff
+Patch0: encodeoffbyone.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
@@ -48,7 +48,7 @@
%prep
%setup -q -n %{cpan_name}-%{version}
-%patch
+%patch0
find . -type f -print0 | xargs -0 chmod 644
%build
++++++ Net-IDN-Encode-2.200.tar.gz -> Net-IDN-Encode-2.201.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-IDN-Encode-2.200/Build.PL new/Net-IDN-Encode-2.201/Build.PL
--- old/Net-IDN-Encode-2.200/Build.PL 2014-06-21 13:28:45.000000000 +0200
+++ new/Net-IDN-Encode-2.201/Build.PL 2014-08-30 17:45:43.000000000 +0200
@@ -28,7 +28,7 @@
'PL_Files' => {
'lib/Unicode/UTS46/_Mapping.PL' => [
- 'lib/Unicode/UTS46/_Mapping.pm',
+ 'lib/Net/IDN/UTS46/_Mapping.pm',
],
'lib/Unicode/UTS46/GenTests.PL' => [
't/uts46_to_ascii.t',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-IDN-Encode-2.200/Changes new/Net-IDN-Encode-2.201/Changes
--- old/Net-IDN-Encode-2.200/Changes 2014-06-21 13:28:45.000000000 +0200
+++ new/Net-IDN-Encode-2.201/Changes 2014-08-30 17:45:43.000000000 +0200
@@ -1,5 +1,11 @@
Revision history for Perl extension Net::IDN::Encode
+2.201 (2014-08-30)
+ - correct handling of uppercase a-labels in
+ domain_to_{ascii,unicode}
+ - FIXES: #98354: Capitalized ACE prefix does not work (reported
+ by victor(a)*****.ru)
+
2.200 (2014-06-21)
- Net::IDN::UTS46: update to Unicode® 7.0.0 and UTS #46 r13
- typo and metadata fixes from dstreinbrunner
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-IDN-Encode-2.200/LICENSE new/Net-IDN-Encode-2.201/LICENSE
--- old/Net-IDN-Encode-2.200/LICENSE 2014-06-21 13:28:45.000000000 +0200
+++ new/Net-IDN-Encode-2.201/LICENSE 2014-08-30 17:45:43.000000000 +0200
@@ -22,7 +22,7 @@
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-IDN-Encode-2.200/META.json new/Net-IDN-Encode-2.201/META.json
--- old/Net-IDN-Encode-2.200/META.json 2014-06-21 13:28:45.000000000 +0200
+++ new/Net-IDN-Encode-2.201/META.json 2014-08-30 17:45:43.000000000 +0200
@@ -4,7 +4,7 @@
"Claus Färber <CFAERBER(a)cpan.org>"
],
"dynamic_config" : 1,
- "generated_by" : "Module::Build version 0.4203",
+ "generated_by" : "Module::Build version 0.4208",
"license" : [
"perl_5"
],
@@ -45,5 +45,5 @@
"http://dev.perl.org/licenses/"
]
},
- "version" : "2.200"
+ "version" : "2.201"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-IDN-Encode-2.200/META.yml new/Net-IDN-Encode-2.201/META.yml
--- old/Net-IDN-Encode-2.200/META.yml 2014-06-21 13:28:45.000000000 +0200
+++ new/Net-IDN-Encode-2.201/META.yml 2014-08-30 17:45:43.000000000 +0200
@@ -9,7 +9,7 @@
configure_requires:
Module::Build: 0.42
dynamic_config: 1
-generated_by: 'Module::Build version 0.4203, CPAN::Meta::Converter version 2.133380'
+generated_by: 'Module::Build version 0.4208, CPAN::Meta::Converter version 2.120630'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -24,4 +24,4 @@
perl: 5.008005
resources:
license: http://dev.perl.org/licenses/
-version: 2.200
+version: 2.201
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-IDN-Encode-2.200/Makefile.PL new/Net-IDN-Encode-2.201/Makefile.PL
--- old/Net-IDN-Encode-2.200/Makefile.PL 2014-06-21 13:28:45.000000000 +0200
+++ new/Net-IDN-Encode-2.201/Makefile.PL 2014-08-30 17:45:43.000000000 +0200
@@ -1,18 +1,18 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.4203
+# Note: this file was auto-generated by Module::Build::Compat version 0.4208
require 5.008005;
use ExtUtils::MakeMaker;
WriteMakefile
(
- 'VERSION_FROM' => 'lib/Net/IDN/Encode.pm',
'PL_FILES' => {},
'INSTALLDIRS' => 'site',
'NAME' => 'Net::IDN::Encode',
+ 'EXE_FILES' => [],
+ 'VERSION_FROM' => 'lib/Net/IDN/Encode.pm',
'PREREQ_PM' => {
+ 'Test::More' => 0,
'Test::NoWarnings' => 0,
'Unicode::Normalize' => 0,
- 'Test::More' => 0,
'ExtUtils::CBuilder' => 0
- },
- 'EXE_FILES' => []
+ }
)
;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-IDN-Encode-2.200/SIGNATURE new/Net-IDN-Encode-2.201/SIGNATURE
--- old/Net-IDN-Encode-2.200/SIGNATURE 2014-06-21 13:28:48.000000000 +0200
+++ new/Net-IDN-Encode-2.201/SIGNATURE 2014-08-30 17:45:46.000000000 +0200
@@ -14,17 +14,17 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
-SHA1 04a13098c55c43968a5e156a521f92dbade4c0bb Build.PL
-SHA1 a2d9a1b80a22ebae319d18b9998ae2eaf25bc595 Changes
-SHA1 8a45f1f10033f17c227c83e9309df8e1c51e495d LICENSE
+SHA1 349441099c4ef03e28711e0a940feffb35943473 Build.PL
+SHA1 30ac98c695fc45f9141c523c6cb0655e19d1edd6 Changes
+SHA1 e8b06840514b1b463c34911c54d7fa77dfdcf5e6 LICENSE
SHA1 b947efa2ea37142ead6dfab2e1bc3ef6ccf2666b MANIFEST
-SHA1 8b56d002a9443b0d66fbbfbd34de4fa1ac4a7a7c META.json
-SHA1 d59d35cb644dd287a76a46684c202df5d7285434 META.yml
-SHA1 ba80a90efe048742641b278b0c5a4f544cd9515c Makefile.PL
+SHA1 3763dcf09f315fee2dc5947b85021d8d3373a291 META.json
+SHA1 7eb2f4aff0001e7ff27886abb8e62ab6e0fb97e7 META.yml
+SHA1 0a7b795f394894d88ce73fd646ce4db404d8b7a7 Makefile.PL
SHA1 3807b576f4488318a73d35db802b2609e2560070 README
SHA1 c7825316b854216c50a88b5750c3a08a91e56695 eg/hello_idn.pl
SHA1 da626e4a67218dc2ed50b4a5b45b258078db0681 eg/hello_idn_email.pl
-SHA1 7e73a36e433edc30e3835d5ac7116e06381d0895 lib/Net/IDN/Encode.pm
+SHA1 f15ac6a16fb6bfde7d1489f0d51a967fa23ede86 lib/Net/IDN/Encode.pm
SHA1 06fb96d373d1c8e35252a0d591fc63f2614b58f6 lib/Net/IDN/Overview.pod
SHA1 f0f3fce7868cf66d8ac09ab577c3bc2fade4f927 lib/Net/IDN/Punycode.pm
SHA1 6be71e4aef31bb784c7d4b819297b1150bb458b6 lib/Net/IDN/Punycode.xs
@@ -35,8 +35,8 @@
SHA1 aee3164d2582e59a5cacc389f455a54d5a3e42e5 t/00use.t
SHA1 4bf2ce7aa9320362cccabd1e8a1b623192584890 t/10pod.t
SHA1 7b363ec736008d60ede786cd9e62ae8db99e7628 t/11pod_cover.t
-SHA1 42c6a0a5c049f8e43ee1197a3f25600527d9a58c t/domain_to_ascii.t
-SHA1 4984ddb57d80f5514c6362fc72b63381fc2dc078 t/domain_to_unicode.t
+SHA1 67367aeaed29db4eb2c54d532a54834d18bef4b7 t/domain_to_ascii.t
+SHA1 fee27b5edc1b16a7ea215b4cf06e0d2835f762fd t/domain_to_unicode.t
SHA1 659313cde51535a32053b02c07991da57725c214 t/encode_bytes.t
SHA1 9cc5d106c594c43370fc135adf44d2f61372cfa7 t/encode_utf8.t
SHA1 11738a334df75b930f65a8b771e8dd10f99c2e5a t/punycode_vec-pp.t
@@ -46,15 +46,15 @@
SHA1 832f448cbe5b33956124c91a1e6b93d3e7e690ef t/uts46_encode_utf8.t
SHA1 c7b6e1c3d540048019e2f0579aa8124c9431417c t/uts46_to_ascii-trans.t
SHA1 51f195194efe38597f2644df21354d7d032ed87d t/uts46_to_ascii.t
-SHA1 67867f28858fee1ec8687799ad72fbfb93b732a5 t/uts46_to_unicode.t
+SHA1 d12f676174707bae224c27dddc9dd7d92ec217a5 t/uts46_to_unicode.t
SHA1 245b13d82d5ab98b510dc4b0221cab1ffd347237 t/xtra_pp.t
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCAAGBQJTpWxuAAoJEIS+srvgrWBmGZIH/iZNZT0bWVSYlvFW977TIKVr
-POSemeQg9x9GAwQcqA3zk2Wpya/pkUYhw99HB0d6WOxrYV1mxLh/X0u9A9DV8fQI
-oW2hT3vJKoSD8KbBXLs7BdrrqqDoFNEaOJ2UBlLOouJUOBjqFXn0ZCO0RCM8tvD4
-0ow/UXlwlFkUY/F+3zp5yiN21Kk2bSERiQYMMJB5asOXX+TyLJnPGsQw4sLQi3xh
-nubL80oi+8pR1pXxBej07o/ML4PK4evClVWn3zpG2AcVpJ0CieStaoajEegJsVys
-oS2KgTt6kma6zk4fNaqsh/clkV/7kN+S0+Xqkraf6YJ3EE9G+PNfLErMZ3ldaBU=
-=OcF2
+iQEcBAEBCAAGBQJUAfGnAAoJEIS+srvgrWBmcX0IAJW9E0aJ+gfhxphtQGtLDnT7
+BVB7twa1EZJawQLjWG3d7UKnK+vc2upN8KIKgbzMfG/ATP7I2H5X5U+2emtHzwmJ
+MD6IUiWzEKO+I5qm/M5ja6cb4/2hQUI5VC5re5Z1mpwAf6meTb7DxN3BIeR0NSJe
+DfiowqOw70OQUiTpAsAyOkBKYTV0VH9zxx91k3OZywCCdlhnq50PZK3ZYHOXDag5
+gF0d/qHsk6ikp2gRNRIbkPYToohAsG4Cmq3+ToP1rAXKvj3cNNK3RbWiyFBhx5u4
+W8k0Y7R6KTvbE54D+APXaU91elNfcQj8C3ddWeykaUaHnfM9AGXE5SZh1JYzwwQ=
+=Hnm5
-----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-IDN-Encode-2.200/lib/Net/IDN/Encode.pm new/Net-IDN-Encode-2.201/lib/Net/IDN/Encode.pm
--- old/Net-IDN-Encode-2.200/lib/Net/IDN/Encode.pm 2014-06-21 13:28:45.000000000 +0200
+++ new/Net-IDN-Encode-2.201/lib/Net/IDN/Encode.pm 2014-08-30 17:45:43.000000000 +0200
@@ -6,7 +6,7 @@
use utf8;
use warnings;
-our $VERSION = "2.200";
+our $VERSION = "2.201";
$VERSION = eval $VERSION;
use Carp;
@@ -56,7 +56,7 @@
my($label,%param) = @_;
croak 'Invalid label' if $label =~ m/\p{IsIDNADot}/o;
- if($label =~ m/\P{ASCII}|^$IDNA_PREFIX/o) {
+ if($label =~ m/\P{ASCII}|^$IDNA_PREFIX/oi) {
$label = Net::IDN::UTS46::to_unicode(@_);
}
return $label;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-IDN-Encode-2.200/t/domain_to_ascii.t new/Net-IDN-Encode-2.201/t/domain_to_ascii.t
--- old/Net-IDN-Encode-2.200/t/domain_to_ascii.t 2014-06-21 13:28:45.000000000 +0200
+++ new/Net-IDN-Encode-2.201/t/domain_to_ascii.t 2014-08-30 17:45:43.000000000 +0200
@@ -5,12 +5,14 @@
use Net::IDN::Encode qw(:all);
-use Test::More tests => 1 + 11;
+use Test::More tests => 1 + 12;
use Test::NoWarnings;
use Net::IDN::Encode qw(:all);
-is(eval{domain_to_ascii('müller')} || $@, 'xn--mller-kva', 'single label');
+is(eval{domain_to_ascii('müller')} || $@, 'xn--mller-kva', 'single label (to_ascii)');
+is(eval{domain_to_ascii('XN--MLLER-KVA')} || $@, 'XN--MLLER-KVA', 'single uppercase label (to_ascii)');
+
is(eval{domain_to_ascii('www.jürg.xn--mller-kva.com', )} || $@, 'www.xn--jrg-hoa.xn--mller-kva.com', 'mixed utf8/ace/ascii');
is(eval{domain_to_ascii('www.a.b。c.d。com', )} || $@, 'www.a.b.c.d.com', 'mixed dots');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-IDN-Encode-2.200/t/domain_to_unicode.t new/Net-IDN-Encode-2.201/t/domain_to_unicode.t
--- old/Net-IDN-Encode-2.200/t/domain_to_unicode.t 2014-06-21 13:28:45.000000000 +0200
+++ new/Net-IDN-Encode-2.201/t/domain_to_unicode.t 2014-08-30 17:45:43.000000000 +0200
@@ -3,12 +3,14 @@
BEGIN { binmode STDOUT, ':utf8'; binmode STDERR, ':utf8'; }
-use Test::More tests => 1 + 10;
+use Test::More tests => 1 + 13;
use Test::NoWarnings;
use Net::IDN::Encode qw(:all);
is(eval{domain_to_unicode('xn--mller-kva')} || $@, 'müller', 'single label (to_unicode)');
+is(eval{domain_to_unicode('XN--MLLER-KVA')} || $@, 'müller', 'single uppercase label (to_unicode)');
+
is(eval{domain_to_unicode('www.jürg.xn--mller-kva.com', )} || $@, 'www.jürg.müller.com', 'mixed utf8/ace/ascii (to_unicode)');
is(eval{domain_to_unicode('www.a.b。c.d。com', )} || $@, 'www.a.b。c.d。com', 'mixed dots (to_unicode)');
@@ -17,6 +19,9 @@
is(eval{domain_to_unicode('www.xn-- -7kav3ivb.example', 'UseSTD3ASCIIRules' => 0)}, 'www.ä ö ü ß.example', 'blank (with STD3 rules) (to_unicode)') or diag $@;
is(eval{domain_to_unicode('www.xn-- -7kav3ivb.example', 'UseSTD3ASCIIRules' => 1)}, undef, 'blank (with STD3 rules) (to_unicode pass-through)') or diag $@;
+is(eval{domain_to_unicode("EXAMPLE.XN--11B5BS3A9AJ6G")}, 'EXAMPLE.परीक्षा', 'lowercase IDNA prefix') or diag $@;
+is(eval{domain_to_unicode("EXAMPLE.xn--11B5BS3A9AJ6G")}, 'EXAMPLE.परीक्षा', 'uppercase IDNA prefix') or diag $@;
+
is(eval{domain_to_unicode("I.\x{2665}.Perl.invalid")}, "I.\x{2665}.Perl.invalid", 'mixed case');
is(eval{domain_to_unicode('I.xn--g6h.Perl.invalid')}, "I.\x{2665}.Perl.invalid", 'mixed case');
is(eval{domain_to_unicode('_test._srv.xn--mller-kva.example.com')}, '_test._srv.müller.example.com', 'SRV record');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-IDN-Encode-2.200/t/uts46_to_unicode.t new/Net-IDN-Encode-2.201/t/uts46_to_unicode.t
--- old/Net-IDN-Encode-2.200/t/uts46_to_unicode.t 2014-06-21 13:28:45.000000000 +0200
+++ new/Net-IDN-Encode-2.201/t/uts46_to_unicode.t 2014-08-30 17:45:43.000000000 +0200
@@ -4791,14 +4791,14 @@
is(eval{uts46_to_unicode("\x{10B89}\x{064C}。-Ssꡮ\x{200C}", %p)}, undef, "to_unicode\(\'\\uD802\\uDF89\\u064C\。\-Ssꡮ\\u200C\'\)\ throws\ error\ P1\ V6\ V3\ C1\ \[data\/IdnaTest\.txt\:4836\]") or ($@ and diag($@));
is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.;🔔Ⴡ", %p)}, undef, "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF.;🔔Ⴡ\'\)\ throws\ error\ P1\ V5\ V6\ C2\ \[data\/IdnaTest\.txt\:4837\]") or ($@ and diag($@));
is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.;🔔Ⴡ", %p)}, undef, "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF.;🔔Ⴡ\'\)\ throws\ error\ P1\ V5\ V6\ C2\ \[data\/IdnaTest\.txt\:4838\]") or ($@ and diag($@));
-TODO: { local $TODO = "test file was generated on perl 5.019007, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔Ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF.\'\)\ \[data\/IdnaTest\.txt\:4839\]") or ($@ and diag($@)); }
-TODO: { local $TODO = "test file was generated on perl 5.019007, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔Ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF.\'\)\ \[data\/IdnaTest\.txt\:4840\]") or ($@ and diag($@)); }
-TODO: { local $TODO = "test file was generated on perl 5.019007, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔Ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF\.\'\)\ \[data\/IdnaTest\.txt\:4841\]") or ($@ and diag($@)); }
-TODO: { local $TODO = "test file was generated on perl 5.019007, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔Ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF\.\'\)\ \[data\/IdnaTest\.txt\:4842\]") or ($@ and diag($@)); }
-TODO: { local $TODO = "test file was generated on perl 5.019007, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF\.\'\)\ \[data\/IdnaTest\.txt\:4843\]") or ($@ and diag($@)); }
-TODO: { local $TODO = "test file was generated on perl 5.019007, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF\.\'\)\ \[data\/IdnaTest\.txt\:4844\]") or ($@ and diag($@)); }
-TODO: { local $TODO = "test file was generated on perl 5.019007, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF.\'\)\ \[data\/IdnaTest\.txt\:4845\]") or ($@ and diag($@)); }
-TODO: { local $TODO = "test file was generated on perl 5.019007, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF.\'\)\ \[data\/IdnaTest\.txt\:4846\]") or ($@ and diag($@)); }
+TODO: { local $TODO = "test file was generated on perl 5.016003, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔Ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF.\'\)\ \[data\/IdnaTest\.txt\:4839\]") or ($@ and diag($@)); }
+TODO: { local $TODO = "test file was generated on perl 5.016003, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔Ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF.\'\)\ \[data\/IdnaTest\.txt\:4840\]") or ($@ and diag($@)); }
+TODO: { local $TODO = "test file was generated on perl 5.016003, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔Ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF\.\'\)\ \[data\/IdnaTest\.txt\:4841\]") or ($@ and diag($@)); }
+TODO: { local $TODO = "test file was generated on perl 5.016003, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔Ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF\.\'\)\ \[data\/IdnaTest\.txt\:4842\]") or ($@ and diag($@)); }
+TODO: { local $TODO = "test file was generated on perl 5.016003, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF\.\'\)\ \[data\/IdnaTest\.txt\:4843\]") or ($@ and diag($@)); }
+TODO: { local $TODO = "test file was generated on perl 5.016003, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF\.\'\)\ \[data\/IdnaTest\.txt\:4844\]") or ($@ and diag($@)); }
+TODO: { local $TODO = "test file was generated on perl 5.016003, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF.\'\)\ \[data\/IdnaTest\.txt\:4845\]") or ($@ and diag($@)); }
+TODO: { local $TODO = "test file was generated on perl 5.016003, which is too old"; is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.", %p)}, "🔔ⴡ", "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF.\'\)\ \[data\/IdnaTest\.txt\:4846\]") or ($@ and diag($@)); }
is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.;🔔ⴡ", %p)}, undef, "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF.;🔔ⴡ\'\)\ throws\ error\ P1\ V5\ V6\ C2\ \[data\/IdnaTest\.txt\:4847\]") or ($@ and diag($@));
is(eval{uts46_to_unicode("\x{A94C}\x{200D}ᡠ\x{549EF}.;🔔ⴡ", %p)}, undef, "to_unicode\(\'\\uA94C\\u200Dᡠ\\uD912\\uDDEF.;🔔ⴡ\'\)\ throws\ error\ P1\ V5\ V6\ C2\ \[data\/IdnaTest\.txt\:4848\]") or ($@ and diag($@));
is(eval{uts46_to_unicode("\x{2DBF}.ß\x{200D}", %p)}, undef, "to_unicode\(\'\\u2DBF\.ß\\u200D\'\)\ throws\ error\ P1\ V6\ C2\ \[data\/IdnaTest\.txt\:4849\]") or ($@ and diag($@));
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-URI-Find for openSUSE:Factory checked in at 2014-09-17 17:25:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-URI-Find (Old)
and /work/SRC/openSUSE:Factory/.perl-URI-Find.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-URI-Find"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-URI-Find/perl-URI-Find.changes 2011-12-22 10:54:49.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-URI-Find.new/perl-URI-Find.changes 2014-09-17 17:26:16.000000000 +0200
@@ -1,0 +2,38 @@
+Mon Sep 15 15:44:32 UTC 2014 - coolo(a)suse.com
+
+- updated to 20140709
+ New Features
+ * The "git" scheme is supported. (Schwern)
+ * svn, ssh and svn+ssh schemes are supported. [rt.cpan.org 57490] (Schwern)
+ * Added a --schemeless option to urifind. (Schwern)
+
+ Bug Fixes
+ * http:// is no longer matched [rt.cpan.org 63283] (Schwern)
+
+ Backwards Incompatibilities
+ * Previously, URIs stringified to their canonical version. Now
+ they stringify as written. This results in less loss of
+ information. For example. "Blah HTTP:://FOO.COM" previously
+ would stringify as "http://foo.com/" and now it will stringify
+ as "HTTP://FOO.COM". To restore the old behavior you can call
+ $uri->canonical. (Schwern)
+
+ Distribution Changes
+ * No longer using URI::URL. (Schwern)
+ * Now requires URI 1.60 for Unicode support. (Schwern)
+
+
+ 20140702 Wed Jul 2 13:41:47 PDT 2014
+ New Features
+ * IDNA (aka Unicode) domains are now supported. [github 3] (GwenDragon)
+ * The list of TLDs for schemeless matching has been updated. [github 3] (GwenDragon)
+
+ Bug Fixes
+ * Handle balanced [], {} and quotes in addition to (). [rt.cpan.org 85053] (Schwern)
+ * Don't mangle IPv6 URLs. [rt.cpan.org 85053] (Schwern)
+ * Schemeless is more accurate about two letter TLDs. [github 3] (GwenDragon)
+
+ Distribution Changes
+ * Switched the issue tracker to Github. (Schwern)
+
+-------------------------------------------------------------------
Old:
----
URI-Find-20111103.tar.gz
New:
----
URI-Find-20140709.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-URI-Find.spec ++++++
--- /var/tmp/diff_new_pack.IuVx3G/_old 2014-09-17 17:26:17.000000000 +0200
+++ /var/tmp/diff_new_pack.IuVx3G/_new 2014-09-17 17:26:17.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-URI-Find
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: perl-URI-Find
-Version: 20111103
+Version: 20140709
Release: 0
%define cpan_name URI-Find
Summary: Find URIs in arbitrary text
@@ -31,16 +31,13 @@
BuildRequires: perl-macros
BuildRequires: perl(Module::Build) >= 0.30
BuildRequires: perl(Test::More) >= 0.88
-BuildRequires: perl(URI) >= 1.00
-BuildRequires: perl(URI::URL) >= 5.00
-#BuildRequires: perl(URI::Find)
-Requires: perl(URI) >= 1.00
-Requires: perl(URI::URL) >= 5.00
+BuildRequires: perl(URI) >= 1.60
+Requires: perl(URI) >= 1.60
%{perl_requires}
%description
This module does one thing: Finds URIs and URLs in plain text. It finds
-them quickly and it finds them *all* (or what URI::URL considers a URI to
+them quickly and it finds them *all* (or what URI.pm considers a URI to
be.) It only finds URIs which include a scheme (http:// or the like), for
something a bit less strict have a look at URI::Find::Schemeless.
++++++ URI-Find-20111103.tar.gz -> URI-Find-20140709.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/Build.PL new/URI-Find-20140709/Build.PL
--- old/URI-Find-20111103/Build.PL 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/Build.PL 2014-07-10 01:32:18.000000000 +0200
@@ -17,9 +17,8 @@
},
requires => {
- perl => '5.6.0',
- URI => '1.00',
- URI::URL => '5.00',
+ perl => '5.8.9',
+ URI => '1.60',
},
license => 'perl',
@@ -29,8 +28,8 @@
meta_merge => {
resources => {
homepage => 'http://search.cpan.org/dist/URI-Find',
- bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=URI-Find',
- repository => 'http://github.com/schwern/uri-find/tree/master',
+ bugtracker => 'http://github.com/schwern/URI-Find/issues/',
+ repository => 'http://github.com/schwern/URI-Find/',
}
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/Changes new/URI-Find-20140709/Changes
--- old/URI-Find-20111103/Changes 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/Changes 2014-07-10 01:32:18.000000000 +0200
@@ -1,3 +1,39 @@
+20140709 Wed Jul 9 16:28:37 PDT 2014
+ New Features
+ * The "git" scheme is supported. (Schwern)
+ * svn, ssh and svn+ssh schemes are supported. [rt.cpan.org 57490] (Schwern)
+ * Added a --schemeless option to urifind. (Schwern)
+
+ Bug Fixes
+ * http:// is no longer matched [rt.cpan.org 63283] (Schwern)
+
+ Backwards Incompatibilities
+ * Previously, URIs stringified to their canonical version. Now
+ they stringify as written. This results in less loss of
+ information. For example. "Blah HTTP:://FOO.COM" previously
+ would stringify as "http://foo.com/" and now it will stringify
+ as "HTTP://FOO.COM". To restore the old behavior you can call
+ $uri->canonical. (Schwern)
+
+ Distribution Changes
+ * No longer using URI::URL. (Schwern)
+ * Now requires URI 1.60 for Unicode support. (Schwern)
+
+
+20140702 Wed Jul 2 13:41:47 PDT 2014
+ New Features
+ * IDNA (aka Unicode) domains are now supported. [github 3] (GwenDragon)
+ * The list of TLDs for schemeless matching has been updated. [github 3] (GwenDragon)
+
+ Bug Fixes
+ * Handle balanced [], {} and quotes in addition to (). [rt.cpan.org 85053] (Schwern)
+ * Don't mangle IPv6 URLs. [rt.cpan.org 85053] (Schwern)
+ * Schemeless is more accurate about two letter TLDs. [github 3] (GwenDragon)
+
+ Distribution Changes
+ * Switched the issue tracker to Github. (Schwern)
+
+
20111103 Thu Nov 3 12:14:21 PDT 2011
Bug Fixes
* URI::URL::strict will no longer leak out of find() if the callback
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/INSTALL new/URI-Find-20140709/INSTALL
--- old/URI-Find-20111103/INSTALL 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/INSTALL 2014-07-10 01:32:18.000000000 +0200
@@ -22,7 +22,7 @@
WHAT VERSION OF PERL DO I NEED?
- perl 5.6.0 or higher
+ perl 5.8.9 or higher
WHAT MODULES DO I NEED?
@@ -30,11 +30,10 @@
To build, test and install the module you need:
Module::Build 0.30 or higher
- Test::More 0.82 or higher
+ Test::More 0.88 or higher
To run the module you need:
- URI.pm 1.00 or higher
- URI::URL 5.00 or higher
+ URI 1.60 or higher
They can all be found on http://search.cpan.org/ or by running your CPAN shell.
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/MANIFEST new/URI-Find-20140709/MANIFEST
--- old/URI-Find-20111103/MANIFEST 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/MANIFEST 2014-07-10 01:32:18.000000000 +0200
@@ -15,9 +15,7 @@
t/is_schemed.t
t/load-schemeless.t
t/rfc3986_appendix_c.t
-t/strict_leak.t
t/urifind/find.t
t/urifind/pod.t
t/urifind/sciencenews
TODO
-SIGNATURE Added here by Module::Build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/MANIFEST.SKIP new/URI-Find-20140709/MANIFEST.SKIP
--- old/URI-Find-20111103/MANIFEST.SKIP 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/MANIFEST.SKIP 2014-07-10 01:32:18.000000000 +0200
@@ -60,4 +60,8 @@
# Avoid patches and diff files lying around
\.patch$
-\.diff$
\ No newline at end of file
+\.diff$
+
+
+# Don't ship the Travis config.
+^\.travis\.yml$
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/META.json new/URI-Find-20140709/META.json
--- old/URI-Find-20111103/META.json 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/META.json 2014-07-10 01:32:18.000000000 +0200
@@ -4,7 +4,7 @@
"Michael G Schwern <schwern(a)pobox.com>"
],
"dynamic_config" : 1,
- "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112621",
+ "generated_by" : "Module::Build version 0.4205",
"license" : [
"perl_5"
],
@@ -27,34 +27,33 @@
},
"runtime" : {
"requires" : {
- "URI" : "1.00",
- "URI::URL" : "5.00",
- "perl" : "v5.6.0"
+ "URI" : "1.60",
+ "perl" : "v5.8.9"
}
}
},
"provides" : {
"URI::Find" : {
"file" : "lib/URI/Find.pm",
- "version" : "20111103"
+ "version" : "20140709"
},
"URI::Find::Schemeless" : {
"file" : "lib/URI/Find/Schemeless.pm",
- "version" : "20111103"
+ "version" : "20140709"
}
},
"release_status" : "stable",
"resources" : {
"bugtracker" : {
- "web" : "http://rt.cpan.org/Public/Dist/Display.html?Name=URI-Find"
+ "web" : "http://github.com/schwern/URI-Find/issues/"
},
"homepage" : "http://search.cpan.org/dist/URI-Find",
"license" : [
"http://dev.perl.org/licenses/"
],
"repository" : {
- "url" : "http://github.com/schwern/uri-find/tree/master"
+ "url" : "http://github.com/schwern/URI-Find/"
}
},
- "version" : "20111103"
+ "version" : "20140709"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/META.yml new/URI-Find-20140709/META.yml
--- old/URI-Find-20111103/META.yml 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/META.yml 2014-07-10 01:32:18.000000000 +0200
@@ -3,31 +3,30 @@
author:
- 'Michael G Schwern <schwern(a)pobox.com>'
build_requires:
- Module::Build: 0.30
- Test::More: 0.88
+ Module::Build: '0.30'
+ Test::More: '0.88'
configure_requires:
- Module::Build: 0.30
+ Module::Build: '0.30'
dynamic_config: 1
-generated_by: 'Module::Build version 0.38, CPAN::Meta::Converter version 2.112621'
+generated_by: 'Module::Build version 0.4205, CPAN::Meta::Converter version 2.141520'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: URI-Find
provides:
URI::Find:
file: lib/URI/Find.pm
- version: 20111103
+ version: '20140709'
URI::Find::Schemeless:
file: lib/URI/Find/Schemeless.pm
- version: 20111103
+ version: '20140709'
requires:
- URI: 1.00
- URI::URL: 5.00
- perl: v5.6.0
+ URI: '1.60'
+ perl: v5.8.9
resources:
- bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=URI-Find
+ bugtracker: http://github.com/schwern/URI-Find/issues/
homepage: http://search.cpan.org/dist/URI-Find
license: http://dev.perl.org/licenses/
- repository: http://github.com/schwern/uri-find/tree/master
-version: 20111103
+ repository: http://github.com/schwern/URI-Find/
+version: '20140709'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/SIGNATURE new/URI-Find-20140709/SIGNATURE
--- old/URI-Find-20111103/SIGNATURE 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/SIGNATURE 1970-01-01 01:00:00.000000000 +0100
@@ -1,45 +0,0 @@
-This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.68.
-
-To verify the content in this distribution, first make sure you have
-Module::Signature installed, then type:
-
- % cpansign -v
-
-It will check each file's integrity, as well as the signature's
-validity. If "==> Signature verified OK! <==" is not displayed,
-the distribution may already have been compromised, and you should
-not run its Makefile.PL or Build.PL.
-
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-SHA1 4980e7e39e8e37b06249f58f54e7dee8055be6cc Build.PL
-SHA1 03a01e797601036531f85a24245ca2cfe5d9d413 Changes
-SHA1 3ca0307f0585442c160041b8d8f3472359735108 INSTALL
-SHA1 90bf8962c7a2396772f77235465ee2fc36b1cb99 MANIFEST
-SHA1 fe61e38edb3e406107b3953fd0b9b10dd7b85823 MANIFEST.SKIP
-SHA1 6edfdc3c57b4a3a4f68b6515af705c35809d4d08 META.json
-SHA1 a754caa1786c7111a0d98b66a2af0b08afef1b19 META.yml
-SHA1 fc72946137d28d945b8c7027b4a49a001ec49cd1 README
-SHA1 7dc0589de524cbd4c983c5cd6e9da58fd474b34a TODO
-SHA1 a08831e8073d4182201c06d2db1c25247b70de9d bin/urifind
-SHA1 091ecea74f29c23dae2c2c0edb01a62e86333d9c lib/URI/Find.pm
-SHA1 26a9b46160b195bfead3edf5ae76d6c770b0b76c lib/URI/Find/Schemeless.pm
-SHA1 c0d4570cd9b83c474cb3761a206edc139653f7f7 t/Find.t
-SHA1 789861fdf1ab6465748f8cacafcef27ee70a7ac9 t/filter.t
-SHA1 1071febaa25419c5cdb2580bf87ee81834e70132 t/html.t
-SHA1 2c057ac42eb47f6b7da78c3b7ebb20b94f33e719 t/is_schemed.t
-SHA1 a0fdf62d822e769d80b229bb88f1a013f6ab0964 t/load-schemeless.t
-SHA1 0c5eb1bda18407bdf26b8831a08cad4a14938082 t/rfc3986_appendix_c.t
-SHA1 8fd6bf632cfd8a654a1edc06ffa2ea4fbdd4647b t/strict_leak.t
-SHA1 6aaf29926da83d3c369cf28969bd6c48df8deff4 t/urifind/find.t
-SHA1 9ff9e4e6fef205eebead0f792da79dedd61b4b7e t/urifind/pod.t
-SHA1 0cb2627de8403934f9893ed2e86145e7c372402c t/urifind/sciencenews
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.18 (Darwin)
-
-iEYEARECAAYFAk6y6EsACgkQWMohlhD1QydrhwCfd3gNydcSbENAcdiG7aPCPD+D
-QgwAnieFByYg0uQKTzSA7o5ITOXRy+gP
-=IcdT
------END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/bin/urifind new/URI-Find-20140709/bin/urifind
--- old/URI-Find-20111103/bin/urifind 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/bin/urifind 2014-07-10 01:32:18.000000000 +0200
@@ -7,12 +7,13 @@
use strict;
-our $VERSION = 20111103;
+our $VERSION = 20140709;
use File::Basename qw(basename);
use Getopt::Long qw(GetOptions);
use IO::File;
use URI::Find;
+use URI::Find::Schemeless;
# What to do, and how
my $help = 0;
@@ -25,19 +26,23 @@
my @pats = ();
my @schemes = ();
my $dump = 0;
+my $schemeless = 0;
Getopt::Long::Configure(qw{no_ignore_case bundling});
-GetOptions('s!' => \$sort,
- 'u!' => \$unique,
- 'p!' => \$prefix,
- 'n!' => \$noprefix,
- 'r!' => \$reverse,
- 'h!' => \$help,
- 'v!' => \$version,
- 'd!' => sub { $dump = 1 },
- 'D!' => sub { $dump = 2 },
- 'P=s@' => \@pats,
- 'S=s@' => \@schemes);
+GetOptions(
+ 's!' => \$sort,
+ 'u!' => \$unique,
+ 'p!' => \$prefix,
+ 'n!' => \$noprefix,
+ 'r!' => \$reverse,
+ 'h!' => \$help,
+ 'v!' => \$version,
+ 'd!' => sub { $dump = 1 },
+ 'D!' => sub { $dump = 2 },
+ 'P=s@' => \@pats,
+ 'S=s@' => \@schemes,
+ 'schemeless!' => \$schemeless,
+);
if ($help || $version) {
my $prog = basename($0);
@@ -122,7 +127,8 @@
$name = $argv;
}
- my $finder = URI::Find->new(sub { push @uris => [ $name, $_[0] ] });
+ my $class = $schemeless ? "URI::Find::Schemeless" : "URI::Find";
+ my $finder = $class->new(sub { push @uris => [ $name, $_[0] ] });
$finder->find(\$data);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/lib/URI/Find/Schemeless.pm new/URI-Find-20140709/lib/URI/Find/Schemeless.pm
--- old/URI-Find-20111103/lib/URI/Find/Schemeless.pm 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/lib/URI/Find/Schemeless.pm 2014-07-10 01:32:18.000000000 +0200
@@ -12,9 +12,9 @@
use URI::Find ();
use vars qw($VERSION);
-$VERSION = 20111103;
+$VERSION = 20140709;
-my($dnsSet) = 'A-Za-z0-9-';
+my($dnsSet) = '\p{isAlpha}A-Za-z0-9-'; # extended for IDNA domains
my($cruftSet) = __PACKAGE__->cruft_set . '<>?}';
@@ -87,7 +87,8 @@
@_ == 1 || __PACKAGE__->badinvo;
my($self) = shift;
- # Updated from http://www.iana.org/domains/root/db/
+ use utf8;
+ # Updated from http://www.iana.org/domains/root/db/ with new TLDs
my $plain = join '|', qw(
AERO
ARPA
@@ -110,9 +111,660 @@
PRO
TEL
TRAVEL
+ ac
+ academy
+ accountants
+ active
+ actor
+ ad
+ ae
+ aero
+ af
+ ag
+ agency
+ ai
+ airforce
+ al
+ am
+ an
+ ao
+ aq
+ ar
+ archi
+ army
+ arpa
+ as
+ asia
+ associates
+ at
+ attorney
+ au
+ audio
+ autos
+ aw
+ ax
+ axa
+ az
+ ba
+ bar
+ bargains
+ bayern
+ bb
+ bd
+ be
+ beer
+ berlin
+ best
+ bf
+ bg
+ bh
+ bi
+ bid
+ bike
+ bio
+ biz
+ bj
+ bl
+ black
+ blackfriday
+ blue
+ bm
+ bmw
+ bn
+ bo
+ boutique
+ bq
+ br
+ brussels
+ bs
+ bt
+ build
+ builders
+ buzz
+ bv
+ bw
+ by
+ bz
+ bzh
+ ca
+ cab
+ camera
+ camp
+ capetown
+ capital
+ cards
+ care
+ career
+ careers
+ cash
+ cat
+ catering
+ cc
+ cd
+ center
+ ceo
+ cf
+ cg
+ ch
+ cheap
+ christmas
+ church
+ ci
+ citic
+ ck
+ cl
+ claims
+ cleaning
+ clinic
+ clothing
+ club
+ cm
+ cn
+ co
+ codes
+ coffee
+ college
+ cologne
+ com
+ community
+ company
+ computer
+ condos
+ construction
+ consulting
+ contractors
+ cooking
+ cool
+ coop
+ country
+ cr
+ credit
+ creditcard
+ cruises
+ cu
+ cv
+ cw
+ cx
+ cy
+ cz
+ dance
+ dating
+ de
+ degree
+ democrat
+ dental
+ dentist
+ desi
+ diamonds
+ digital
+ directory
+ discount
+ dj
+ dk
+ dm
+ dnp
+ do
+ domains
+ durban
+ dz
+ ec
+ edu
+ education
+ ee
+ eg
+ eh
+ email
+ engineer
+ engineering
+ enterprises
+ equipment
+ er
+ es
+ estate
+ et
+ eu
+ eus
+ events
+ exchange
+ expert
+ exposed
+ fail
+ farm
+ feedback
+ fi
+ finance
+ financial
+ fish
+ fishing
+ fitness
+ fj
+ fk
+ flights
+ florist
+ fm
+ fo
+ foo
+ foundation
+ fr
+ frogans
+ fund
+ furniture
+ futbol
+ ga
+ gal
+ gallery
+ gb
+ gd
+ ge
+ gf
+ gg
+ gh
+ gi
+ gift
+ gives
+ gl
+ glass
+ global
+ globo
+ gm
+ gmo
+ gn
+ gop
+ gov
+ gp
+ gq
+ gr
+ graphics
+ gratis
+ green
+ gripe
+ gs
+ gt
+ gu
+ guide
+ guitars
+ guru
+ gw
+ gy
+ hamburg
+ haus
+ hiphop
+ hiv
+ hk
+ hm
+ hn
+ holdings
+ holiday
+ homes
+ horse
+ host
+ house
+ hr
+ ht
+ hu
+ id
+ ie
+ il
+ im
+ immobilien
+ in
+ industries
+ info
+ ink
+ institute
+ insure
+ int
+ international
+ investments
+ io
+ iq
+ ir
+ is
+ it
+ je
+ jetzt
+ jm
+ jo
+ jobs
+ joburg
+ jp
+ juegos
+ kaufen
+ ke
+ kg
+ kh
+ ki
+ kim
+ kitchen
+ kiwi
+ km
+ kn
+ koeln
+ kp
+ kr
+ kred
+ kw
+ ky
+ kz
+ la
+ land
+ lawyer
+ lb
+ lc
+ lease
+ li
+ life
+ lighting
+ limited
+ limo
+ link
+ lk
+ loans
+ london
+ lotto
+ lr
+ ls
+ lt
+ lu
+ luxe
+ luxury
+ lv
+ ly
+ ma
+ maison
+ management
+ mango
+ market
+ marketing
+ mc
+ md
+ me
+ media
+ meet
+ menu
+ mf
+ mg
+ mh
+ miami
+ mil
+ mini
+ mk
+ ml
+ mm
+ mn
+ mo
+ mobi
+ moda
+ moe
+ monash
+ mortgage
+ moscow
+ motorcycles
+ mp
+ mq
+ mr
+ ms
+ mt
+ mu
+ museum
+ mv
+ mw
+ mx
+ my
+ mz
+ na
+ nagoya
+ name
+ navy
+ nc
+ ne
+ net
+ neustar
+ nf
+ ng
+ nhk
+ ni
+ ninja
+ nl
+ no
+ np
+ nr
+ nu
+ nyc
+ nz
+ okinawa
+ om
+ onl
+ org
+ organic
+ ovh
+ pa
+ paris
+ partners
+ parts
+ pe
+ pf
+ pg
+ ph
+ photo
+ photography
+ photos
+ physio
+ pics
+ pictures
+ pink
+ pk
+ pl
+ plumbing
+ pm
+ pn
+ post
+ pr
+ press
+ pro
+ productions
+ properties
+ ps
+ pt
+ pub
+ pw
+ py
+ qa
+ qpon
+ quebec
+ re
+ recipes
+ red
+ rehab
+ reise
+ reisen
+ ren
+ rentals
+ repair
+ report
+ republican
+ rest
+ reviews
+ rich
+ rio
+ ro
+ rocks
+ rodeo
+ rs
+ ru
+ ruhr
+ rw
+ ryukyu
+ sa
+ saarland
+ sb
+ sc
+ schule
+ scot
+ sd
+ se
+ services
+ sexy
+ sg
+ sh
+ shiksha
+ shoes
+ si
+ singles
+ sj
+ sk
+ sl
+ sm
+ sn
+ so
+ social
+ software
+ sohu
+ solar
+ solutions
+ soy
+ space
+ sr
+ ss
+ st
+ su
+ supplies
+ supply
+ support
+ surf
+ surgery
+ sv
+ sx
+ sy
+ systems
+ sz
+ tattoo
+ tax
+ tc
+ td
+ technology
+ tel
+ tf
+ tg
+ th
+ tienda
+ tips
+ tirol
+ tj
+ tk
+ tl
+ tm
+ tn
+ to
+ today
+ tokyo
+ tools
+ town
+ toys
+ tp
+ tr
+ trade
+ training
+ travel
+ tt
+ tv
+ tw
+ tz
+ ua
+ ug
+ uk
+ um
+ university
+ uno
+ us
+ uy
+ uz
+ va
+ vacations
+ vc
+ ve
+ vegas
+ ventures
+ versicherung
+ vet
+ vg
+ vi
+ viajes
+ villas
+ vision
+ vlaanderen
+ vn
+ vodka
+ vote
+ voting
+ voto
+ voyage
+ vu
+ wang
+ watch
+ webcam
+ website
+ wed
+ wf
+ wien
+ wiki
+ works
+ ws
+ wtc
+ wtf
+ 测试
+ परीक्षा
+ 集团
+ 在线
+ 한국
+ ভারত
+ موقع
+ বাংলা
+ 公益
+ 公司
+ 移动
+ 我爱你
+ москва
+ испытание
+ қаз
+ онлайн
+ сайт
+ срб
+ 테스트
+ орг
+ 삼성
+ சிங்கப்பூர்
+ 商标
+ 商城
+ дети
+ мкд
+ טעסט
+ 中文网
+ 中信
+ 中国
+ 中國
+ భారత్
+ ලංකා
+ 測試
+ ભારત
+ भारत
+ آزمایشی
+ பரிட்சை
+ संगठन
+ 网络
+ укр
+ 香港
+ δοκιμή
+ إختبار
+ 台湾
+ 台灣
+ мон
+ الجزائر
+ عمان
+ ایران
+ امارات
+ بازار
+ پاکستان
+ الاردن
+ بھارت
+ المغرب
+ السعودية
+ سودان
+ مليسيا
+ شبكة
+ გე
+ 机构
+ 组织机构
+ ไทย
+ سورية
+ рф
+ تونس
+ みんな
+ 世界
+ ਭਾਰਤ
+ 网址
+ 游戏
+ مصر
+ قطر
+ இலங்கை
+ இந்தியா
+ 新加坡
+ فلسطين
+ テスト
+ 政务
+ xxx
+ xyz
+ yachts
+ ye
+ yokohama
+ yt
+ za
+ zm
+ zone
+ zw
);
-
- return qr/(?:[a-z]{2}|$plain)/i;
+
+ return qr/(?:$plain)/i;
}
=head1 AUTHOR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/lib/URI/Find.pm new/URI-Find-20140709/lib/URI/Find.pm
--- old/URI-Find-20111103/lib/URI/Find.pm 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/lib/URI/Find.pm 2014-07-10 01:32:18.000000000 +0200
@@ -10,21 +10,28 @@
use base qw(Exporter);
use vars qw($VERSION @EXPORT);
-$VERSION = 20111103;
+$VERSION = 20140709;
@EXPORT = qw(find_uris);
use constant YES => (1==1);
use constant NO => !YES;
use Carp qw(croak);
-use URI::URL;
require URI;
+my $reserved = q(;/?:@&=+$,[]);
+my $mark = q(-_.!~*'());
+my $unreserved = "A-Za-z0-9\Q$mark\E";
+my $uric = quotemeta($reserved) . '\p{isAlpha}' . $unreserved . "%";
+
# URI scheme pattern without the non-alpha numerics.
# Those are extremely uncommon and interfere with the match.
-my($schemeRe) = qr/[a-zA-Z][a-zA-Z0-9]*/;
-my($uricSet) = $URI::uric;
+my($schemeRe) = qr/[a-zA-Z][a-zA-Z0-9\+]*/;
+my($uricSet) = $uric; # use new set
+
+# Some schemes which URI.pm does not explicitly support.
+my $extraSchemesRe = qr{^(?:git|svn|ssh|svn\+ssh)$};
# We need to avoid picking up 'HTTP::Request::Common' so we have a
# subset of uric without a colon ("I have no colon and yet I must poop")
@@ -32,7 +39,7 @@
$uricCheat =~ tr/://d;
# Identifying characters accidentally picked up with a URI.
-my($cruftSet) = q{]),.'";}; #'#
+my($cruftSet) = q{])\},.'";}; #'#
=head1 NAME
@@ -49,10 +56,10 @@
=head1 DESCRIPTION
-This module does one thing: Finds URIs and URLs in plain text. It finds
-them quickly and it finds them B<all> (or what URI::URL considers a URI
-to be.) It only finds URIs which include a scheme (http:// or the
-like), for something a bit less strict have a look at
+This module does one thing: Finds URIs and URLs in plain text. It
+finds them quickly and it finds them B<all> (or what URI.pm considers
+a URI to be.) It only finds URIs which include a scheme (http:// or
+the like), for something a bit less strict have a look at
L<URI::Find::Schemeless|URI::Find::Schemeless>.
For a command-line interface, L<urifind> is provided.
@@ -68,10 +75,9 @@
Creates a new URI::Find object.
&callback is a function which is called on each URI found. It is
-passed two arguments, the first is a URI::URL object representing the
-URI found. The second is the original text of the URI found. The
-return value of the callback will replace the original URI in the
-text.
+passed two arguments, the first is a URI object representing the URI
+found. The second is the original text of the URI found. The return
+value of the callback will replace the original URI in the text.
=cut
@@ -120,7 +126,7 @@
$self->{_uris_found} = 0;
# Yes, evil. Basically, look for something vaguely resembling a URL,
- # then hand it off to URI::URL for examination. If it passes, throw
+ # then hand it off to URI for examination. If it passes, throw
# it to a callback and put the result in its place.
local $SIG{__DIE__} = 'DEFAULT';
my $uri_cand;
@@ -310,6 +316,14 @@
=cut
+my %balanced_cruft = (
+ '(' => ')',
+ '{' => '}',
+ '[' => ']',
+ '"' => '"',
+ q['] => q['],
+);
+
sub decruft {
@_ == 2 || __PACKAGE__->badinvo;
my($self, $orig_match) = @_;
@@ -326,11 +340,8 @@
$cruft =~ s/^;//;
}
- my $opening = $orig_match =~ tr/(/(/;
- my $closing = $orig_match =~ tr/)/)/;
- if ( $cruft =~ /\)$/ && $opening == ( $closing + 1 ) ) {
- $orig_match .= ')';
- $cruft =~ s/\)$//;
+ while( my($open, $close) = each %balanced_cruft ) {
+ $self->recruft_balanced(\$orig_match, \$cruft, $open, $close);
}
$self->{end_cruft} = $cruft if $cruft;
@@ -339,6 +350,23 @@
return $orig_match;
}
+
+sub recruft_balanced {
+ my $self = shift;
+ my($orig_match, $cruft, $open, $close) = @_;
+
+ my $open_count = () = $$orig_match =~ m{\Q$open}g;
+ my $close_count = () = $$orig_match =~ m{\Q$close}g;
+
+ if ( $$cruft =~ /\Q$close\E$/ && $open_count == ( $close_count + 1 ) ) {
+ $$orig_match .= $close;
+ $$cruft =~ s/\Q$close\E$//;
+ }
+
+ return;
+}
+
+
=item B<recruft>
my $uri = $self->recruft($uri);
@@ -492,15 +520,18 @@
$uri =~ $self->schemeless_uri_re and
$uri !~ /^<?$schemeRe:/;
- # Set strict to avoid bogus schemes
- my $old_strict = URI::URL::strict(1);
-
eval {
- $uri = URI::URL->new($uri);
- };
+ $uri = URI->new($uri);
- # And restore it
- URI::URL::strict($old_strict);
+ # Throw out anything with an invalid scheme.
+ my $has_invalid_scheme = $uri->isa("URI::_foreign") &&
+ $uri->scheme !~ $extraSchemesRe;
+
+ # Toss out things like http:// but keep file:///
+ my $is_empty = $uri =~ m{^$schemeRe://$};
+
+ undef $uri if $has_invalid_scheme || $is_empty;
+ };
if($@ || !defined $uri) { # leave everything untouched, its not a URI.
return NO;
@@ -539,8 +570,7 @@
=head1 SEE ALSO
-L<urifind>, L<URI::Find::Schemeless>, L<URI::URL>, L<URI>,
-RFC 3986 Appendix C
+L<urifind>, L<URI::Find::Schemeless>, L<URI>, RFC 3986 Appendix C
=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/t/Find.t new/URI-Find-20140709/t/Find.t
--- old/URI-Find-20111103/t/Find.t 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/t/Find.t 2014-07-10 01:32:18.000000000 +0200
@@ -2,6 +2,7 @@
use strict;
+use open ':std', ':encoding(utf8)';
use Test::More 'no_plan';
use_ok 'URI::Find';
@@ -53,29 +54,28 @@
my %Tests;
BEGIN {
my $all = join '', keys %Run;
-
- # ARGH! URI::URL is inconsistant in how it normalizes URLs!
- # HTTP URLs get a trailing slash, FTP and gopher do not.
+
+ use utf8;
%Tests = (
'Something something something.travel and stuff'
- => [[ S => 'http://something.travel/' ]],
- '<URL:http://www.perl.com>' => 'http://www.perl.com/',
+ => [[ S => 'http://something.travel' ]],
+ '<URL:http://www.perl.com>' => 'http://www.perl.com',
'<ftp://ftp.site.org>' => 'ftp://ftp.site.org',
'<ftp.site.org>' => [[ S => 'ftp://ftp.site.org' ]],
'Make sure "http://www.foo.com" is caught' =>
- 'http://www.foo.com/',
- 'http://www.foo.com' => 'http://www.foo.com/',
- 'www.foo.com' => [[ S => 'http://www.foo.com/' ]],
+ 'http://www.foo.com',
+ 'http://www.foo.com' => 'http://www.foo.com',
+ 'www.foo.com' => [[ S => 'http://www.foo.com' ]],
'ftp.foo.com' => [[ S => 'ftp://ftp.foo.com' ]],
'gopher://moo.foo.com' => 'gopher://moo.foo.com',
'I saw this site, http://www.foo.com, and its really neat!'
- => 'http://www.foo.com/',
+ => 'http://www.foo.com',
'Foo Industries (at http://www.foo.com)'
- => 'http://www.foo.com/',
+ => 'http://www.foo.com',
'Oh, dear. Another message from Dejanews. http://www.deja.com/%5BST_rn=ps%5D/qs.xp?ST=PS&svcclass=dnyr&QRY=lwall&defa… How fun.'
=> 'http://www.deja.com/%5BST_rn=ps%5D/qs.xp?ST=PS&svcclass=dnyr&QRY=lwall&defa…',
'Hmmm, Storyserver from news.com. http://news.cnet.com/news/0-1004-200-1537811.html?tag=st.ne.1002.thed.1004-… How nice.'
- => [[S => 'http://news.com/'],
+ => [[S => 'http://news.com'],
[$all => 'http://news.cnet.com/news/0-1004-200-1537811.html?tag=st.ne.1002.thed.1004-…']],
'$html = get("http://www.perl.com/");' => 'http://www.perl.com/',
q|my $url = url('http://www.perl.com/cgi-bin/cpan_mod');|
@@ -83,36 +83,65 @@
'http://www.perl.org/support/online_support.html#mail'
=> 'http://www.perl.org/support/online_support.html#mail',
'irc.lightning.net irc.mcs.net'
- => [[S => 'http://irc.lightning.net/'],
- [S => 'http://irc.mcs.net/']],
- 'foo.bar.xx/~baz/',
- => [[S => 'http://foo.bar.xx/~baz/']],
+ => [[S => 'http://irc.lightning.net'],
+ [S => 'http://irc.mcs.net']],
+ 'foo.bar.xx/~baz/' => [],
'foo.bar.xx/~baz/ abcd.efgh.mil, none.such/asdf/ hi.there.org'
- => [[S => 'http://foo.bar.xx/~baz/'],
- [S => 'http://abcd.efgh.mil/'],
- [S => 'http://hi.there.org/']],
+ => [[S => 'http://abcd.efgh.mil'],
+ [S => 'http://hi.there.org']],
'foo:<1.2.3.4>'
- => [[S => 'http://1.2.3.4/']],
+ => [[S => 'http://1.2.3.4']],
'mail.eserv.com.au? failed before ? designated end'
- => [[S => 'http://mail.eserv.com.au/']],
+ => [[S => 'http://mail.eserv.com.au']],
'foo.info/himom ftp.bar.biz'
=> [[S => 'http://foo.info/himom'],
[S => 'ftp://ftp.bar.biz']],
- '(http://round.com)' => 'http://round.com/',
- '[http://square.com]' => 'http://square.com/',
- '{http://brace.com}' => 'http://brace.com/',
- '<http://angle.com>' => 'http://angle.com/',
- '(round.com)' => [[S => 'http://round.com/' ]],
- '[square.com]' => [[S => 'http://square.com/' ]],
- '{brace.com}' => [[S => 'http://brace.com/' ]],
- '<angle.com>' => [[S => 'http://angle.com/' ]],
- '<x>intag.com</x>' => [[S => 'http://intag.com/' ]],
+ '(http://round.com)' => 'http://round.com',
+ '[http://square.com]' => 'http://square.com',
+ '{http://brace.com}' => 'http://brace.com',
+ '<http://angle.com>' => 'http://angle.com',
+ '(round.com)' => [[S => 'http://round.com' ]],
+ '[square.com]' => [[S => 'http://square.com' ]],
+ '{brace.com}' => [[S => 'http://brace.com' ]],
+ '<angle.com>' => [[S => 'http://angle.com' ]],
+ '<x>intag.com</x>' => [[S => 'http://intag.com' ]],
'[mailto:somebody@company.ext]' => 'mailto:somebody@company.ext',
- 'HTtp://MIXED-Case.Com' => 'http://mixed-case.com/',
+ 'HTtp://MIXED-Case.Com' => 'HTtp://MIXED-Case.Com',
"The technology of magnetic energy has become so powerful an entire ".
"house can...http://bit.ly/8yEdeb"
=> "http://bit.ly/8yEdeb",
'http://www.foo.com/bar((baz)blah)' => 'http://www.foo.com/bar((baz)blah)',
+ 'https://[2607:5300:60:1509::228d:413a]' => 'https://[2607:5300:60:1509::228d:413a]',
+ '[https://[2607:5300:60:1509::228d:413a]]' => 'https://[2607:5300:60:1509::228d:413a]',
+
+ # Tests for file:
+ "origin file:///Users/schwern/devel/URI-Find/ (fetch)"
+ => 'file:///Users/schwern/devel/URI-Find/',
+ "This is how you express the root path file:/// as a URL"
+ => 'file:///',
+
+ # Tests for git:
+ 'GwenDragon git://github.com/GwenDragon/uri-find.git (fetch)'
+ => 'git://github.com/GwenDragon/uri-find.git',
+
+ # Tests for svn+ssh:
+ "URLs like svn+ssh://example.net aren't found"
+ => 'svn+ssh://example.net',
+
+ # Tests for IDNA domains
+ 'http://müller.de' => 'http://xn--mller-kva.de',
+ 'http://موقع.وزارة-الاتصالات.مصر' => 'http://xn--4gbrim.xn----ymcbaaajlc6dj7bxne2c.xn--wgbh1c',
+ 'http://правительство.рф' => 'http://xn--80aealotwbjpid2k.xn--p1ai',
+ 'http://北京大学.中國' => 'http://xn--1lq90ic7fzpc.xn--fiqz9s',
+ 'http://北京大学.cn' => 'http://xn--1lq90ic7fzpc.cn',
+
+ # Test new TLDs
+ 'http://my.test.transport' => 'http://my.test.transport',
+ 'http://regierung.bayern' => 'http://regierung.bayern',
+ 'http://kaiser-senf.gmbh/shop/' => 'http://kaiser-senf.gmbh/shop/',
+ 'Have vacation in lovely Bavaria and visit tourist.in.bayern to go to King Ludwig New Schwanstein. For political information see website regierung.bayern to get more.'
+ => [[S => 'http://tourist.in.bayern' ], [S => 'http://regierung.bayern' ]],
+ 'The mießlich-österlich-mück.ag was established in 2032 by M. Ostrich.' => [[S => 'http://xn--mielich-sterlich-mck-dwb52cye.ag' ]],
# False tests
'HTTP::Request::Common' => [],
@@ -125,6 +154,9 @@
'x comp.ai.nat-lang libdb.so.3 x' => [],
'x comp.ai.nat-lang libdb.so.3 x' => [],
'www.marselisl www.info@skive-hallerne.dk' => [],
+ 'bogusscheme://foo.com/' => [],
+ 'http:' => [],
+ 'http://' => [],
# XXX broken
# q{$url = 'http://'.rand(1000000).'@anonymizer.com/'.$url;}
# => [],
@@ -197,13 +229,3 @@
while( my($text, $rspec_list) = each %Tests ) {
run $text, @$rspec_list;
}
-
-# We used to turn URI::URL strict on and leave it on.
-
-for my $val (0, 1) {
- URI::URL::strict($val);
- my $f = URI::Find->new(sub { });
- my $t = "foo";
- $f->find(\$t);
- is $val, URI::URL::strict(), "URI::URL::strict $val";
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/t/strict_leak.t new/URI-Find-20140709/t/strict_leak.t
--- old/URI-Find-20111103/t/strict_leak.t 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/t/strict_leak.t 1970-01-01 01:00:00.000000000 +0100
@@ -1,35 +0,0 @@
-#!/usr/bin/env perl -w
-
-# Test that URI::URL::strict does not remain on if a callback or filter dies.
-# rt.cpan.org 71153
-
-use strict;
-use warnings;
-
-use Test::More;
-
-use URI::Find;
-
-note "with a dying callback"; {
- my $text = "Foo http://example.com bar";
- my $finder = URI::Find->new( sub { die; } );
-
- URI::URL::strict(0);
- ok !URI::URL::strict();
- ok !eval { $finder->find(\$text); 1 };
- ok !URI::URL::strict();
-}
-
-
-note "with a dying filter"; {
- my $text = "Foo http://example.com bar";
- my $finder = URI::Find->new( sub {} );
-
- URI::URL::strict(0);
- ok !URI::URL::strict();
- ok !eval { $finder->find(\$text, sub { die; }); 1 };
- ok !URI::URL::strict();
-}
-
-
-done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/URI-Find-20111103/t/urifind/find.t new/URI-Find-20140709/t/urifind/find.t
--- old/URI-Find-20111103/t/urifind/find.t 2011-11-03 20:15:23.000000000 +0100
+++ new/URI-Find-20140709/t/urifind/find.t 2014-07-10 01:32:18.000000000 +0200
@@ -5,8 +5,6 @@
use Test::More;
use File::Spec;
-plan tests => 13;
-
ok(my $ifile = File::Spec->catfile(qw(t urifind sciencenews)),
"Test file found");
my $urifind = File::Spec->catfile(qw(blib script urifind));
@@ -42,3 +40,28 @@
@data = `$^X $urifind -S http -P \.org $ifile`;
is(@data, 8, "Correct number elements when invoked with -P \.org -S http");
+
+@data = `$^X $urifind --schemeless $ifile`;
+chomp @data;
+is_deeply \@data, [map { "$_" } qw(
+ http://66.33.90.123
+ http://efwd.dnsix.com
+ mailto:eletter@lists.sciencenews.org
+ mailto:eletter-help@lists.sciencenews.org
+ mailto:eletter-unsubscribe@lists.sciencenews.org
+ mailto:eletter-subscribe@lists.sciencenews.org
+ http://www.sciencenews.org
+ http://www.sciencenews.org/20030705/fob1.asp
+ http://www.sciencenews.org/20030705/fob5.asp
+ http://www.sciencenews.org/20030705/bob8.asp
+ http://www.sciencenews.org/20030705/mathtrek.asp
+ http://www.sciencenews.org/20030705/food.asp
+ http://www.sciencenews.org
+ http://www.sciencenews.org/20030705/toc.asp
+ http://www.sciencenews.org
+ http://www.sciencenews.org/20030705/fob2.asp
+ http://www.sciencenews.org/20030705/fob3.asp
+ http:/%
+)];
+
+done_testing;
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Tie-Cache for openSUSE:Factory checked in at 2014-09-17 17:25:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Tie-Cache (Old)
and /work/SRC/openSUSE:Factory/.perl-Tie-Cache.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Tie-Cache"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Tie-Cache/perl-Tie-Cache.changes 2011-11-21 12:49:21.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Tie-Cache.new/perl-Tie-Cache.changes 2014-09-17 17:26:15.000000000 +0200
@@ -1,0 +2,10 @@
+Mon Sep 15 15:44:32 UTC 2014 - coolo(a)suse.com
+
+- updated to 0.21
+ + fixed internal $VERSION number
+ + added cleaner ref() checking for data size calculations when using a MaxBytes cache, to address bug
+ https://rt.cpan.org/Public/Bug/Display.html?id=69976
+ + updated test.pl to "use Tie::Cache" to prevent test conflicts with Cache.pm
+- removed outdated Tie-Cache-0.17.diff
+
+-------------------------------------------------------------------
Old:
----
Tie-Cache-0.17.diff
Tie-Cache-0.17.tar.gz
New:
----
Tie-Cache-0.21.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Tie-Cache.spec ++++++
--- /var/tmp/diff_new_pack.4RjXPk/_old 2014-09-17 17:26:16.000000000 +0200
+++ /var/tmp/diff_new_pack.4RjXPk/_new 2014-09-17 17:26:16.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Tie-Cache
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,56 +15,58 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-# norootforbuild
-
Name: perl-Tie-Cache
-Version: 0.17
-Release: 388
-AutoReqProv: on
+Version: 0.21
+Release: 0
+%define cpan_name Tie-Cache
+Summary: LRU Cache in Memory
+License: GPL-1.0+ or Artistic-1.0
Group: Development/Libraries/Perl
-License: Artistic-1.0
-Url: http://cpan.org/modules/by-module/Tie
-Summary: Perl module Tie::Cache
-Source: Tie-Cache-%{version}.tar.gz
-Patch: Tie-Cache-%{version}.diff
+Url: http://search.cpan.org/dist/Tie-Cache/
+Source: http://www.cpan.org/authors/id/C/CH/CHAMAS/%{cpan_name}-%{version}.tar.gz
+BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%{perl_requires}
BuildRequires: perl
BuildRequires: perl-macros
+%{perl_requires}
%description
-This module implements a least recently used (LRU) cache in memory
-through a tie interface.
-
-
-
-Authors:
---------
- Joshua Chamas <chamas(a)alumni.stanford.org>
+This module implements a least recently used (LRU) cache in memory through
+a tie interface. Any time data is stored in the tied hash, that key/value
+pair has an entry time associated with it, and as the cache fills up, those
+members of the cache that are the oldest are removed to make room for new
+entries.
+
+So, the cache only "remembers" the last written entries, up to the size of
+the cache. This can be especially useful if you access great amounts of
+data, but only access a minority of the data a majority of the time.
+
+The implementation is a hash, for quick lookups, overlaying a doubly linked
+list for quick insertion and deletion. On a WinNT PII 300, writes to the
+hash were done at a rate 3100 per second, and reads from the hash at 6300
+per second. Work has been done to optimize refreshing cache entries that
+are frequently read from, code like $cache{entry}, which moves the entry to
+the end of the linked list internally.
%prep
-%setup -n Tie-Cache-%{version}
-%patch
+%setup -q -n %{cpan_name}-%{version}
+find . -type f -print0 | xargs -0 chmod 644
%build
-perl Makefile.PL
-make %{?_smp_mflags}
-make test
+%{__perl} Makefile.PL INSTALLDIRS=vendor
+%{__make} %{?_smp_mflags}
+
+%check
+%{__make} test
%install
-rm -rf $RPM_BUILD_ROOT
-make DESTDIR=$RPM_BUILD_ROOT install_vendor
+%perl_make_install
%perl_process_packlist
+%perl_gen_filelist
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files
-%defattr(-,root,root)
-%doc README CHANGES bench.pl
-%doc %{_mandir}/man?/*
-%{perl_vendorlib}/Tie
-%{perl_vendorarch}/auto/Tie
+%files -f %{name}.files
+%defattr(-,root,root,755)
+%doc CHANGES README
%changelog
++++++ Tie-Cache-0.17.tar.gz -> Tie-Cache-0.21.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Tie-Cache-0.17/CHANGES new/Tie-Cache-0.21/CHANGES
--- old/Tie-Cache-0.17/CHANGES 2002-07-03 09:42:48.000000000 +0200
+++ new/Tie-Cache-0.21/CHANGES 2014-05-19 17:45:20.000000000 +0200
@@ -1,3 +1,14 @@
+$MODULE = "Tie::Cache"; $VERSION = .21; $DATE = '05/19/2014';
+
++ fixed internal $VERSION number
+
+$MODULE = "Tie::Cache"; $VERSION = .19; $DATE = '02/23/2012';
+
++ added cleaner ref() checking for data size calculations when using a MaxBytes cache, to address bug
+ https://rt.cpan.org/Public/Bug/Display.html?id=69976
+
++ updated test.pl to "use Tie::Cache" to prevent test conflicts with Cache.pm
+
$MODULE = "Tie::Cache"; $VERSION = .17; $DATE = '07/03/2002';
+ added tied(%cache)->flush() method to sync dirty writes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Tie-Cache-0.17/Cache.pm new/Tie-Cache-0.21/Cache.pm
--- old/Tie-Cache-0.17/Cache.pm 2002-06-29 00:20:38.000000000 +0200
+++ new/Tie-Cache-0.21/Cache.pm 2014-05-19 17:45:27.000000000 +0200
@@ -7,7 +7,7 @@
$BEFORE $AFTER $KEY $VALUE $BYTES $DIRTY
);
-$VERSION = .17;
+$VERSION = .21;
$Debug = 0; # set to 1 for summary, 2 for debug output
$STRUCT_SIZE = 240; # per cached elem bytes overhead, approximate
$REF_SIZE = 16;
@@ -90,7 +90,9 @@
frequently read from, code like $cache{entry}, which moves the
entry to the end of the linked list internally.
-=cut Documentation continues at the end of the module.
+=cut
+
+# Documentation continues at the end of the module.
sub TIEHASH {
my($class, $max_count, $options) = @_;
@@ -396,7 +398,7 @@
while(my $elem = shift @data) {
next if $refs{$elem};
$refs{$elem} = 1;
- if(ref $elem && $elem =~ /(SCALAR|HASH|ARRAY)/) {
+ if(ref $elem && ref($elem) =~ /^(SCALAR|HASH|ARRAY)$/) {
my $type = $1;
$length += $REF_SIZE; # guess, 16 bytes per ref, probably more
if (($type eq 'SCALAR')) {
@@ -592,13 +594,15 @@
Through healthy competition, Michael G Schwern got
Tie::Cache::LRU mostly faster than Tie::Cache on reads & writes:
- Cache Size 5000 Tie::Cache 0.17 Tie::Cache::LRU 0.21
- 10000 Writes 1.55 CPU sec 1.10 CPU sec
- 40000 Reads 1.82 CPU sec 1.58 CPU sec
- 10000 Deletes 0.55 CPU sec 0.59 CPU sec
+ Cache Size 5000 Tie::Cache 0.17 Tie::Cache::LRU 20110205.00
+ 10000 Writes 0.63 CPU sec 0.47 CPU sec
+ 40000 Reads 0.79 CPU sec 0.71 CPU sec
+ 10000 Deletes 0.23 CPU sec 0.26 CPU sec
Unless you are using TRUE CACHE or MaxBytes functionality,
-using Tie::Cache::LRU should be an easy replacement for Tie::Cache.
+using Tie::Cache::LRU could be an easy replacement for Tie::Cache.
+
+OTOH one nice thing about this module is its lack of external module dependencies!
=head1 TRUE CACHE
@@ -676,16 +680,14 @@
=head1 AUTHOR
-Please send any questions or comments to Joshua Chamas
-at chamas(a)alumni.stanford.org
+Please send any questions or comments to Joshua Chamas at chamas(a)alumni.stanford.org
=head1 COPYRIGHT
-Copyright (c) 1999-2002 Joshua Chamas, Chamas Enterprises Inc.
-Sponsored by development on NodeWorks http://www.nodeworks.com
+Copyright (c) 1999-2012 Joshua Chamas, Chamas Enterprises Inc.
+Sponsored by development on NodeWorks http://nodeworks.com and Web Test.org http://web-test.org
-All rights reserved. This program is free software;
-you can redistribute it and/or modify it under the same
+All rights reserved. This program is free software; you can redistribute it and/or modify it under the same
terms as Perl itself.
=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Tie-Cache-0.17/MANIFEST new/Tie-Cache-0.21/MANIFEST
--- old/Tie-Cache-0.17/MANIFEST 2002-06-29 00:22:41.000000000 +0200
+++ new/Tie-Cache-0.21/MANIFEST 2014-05-19 17:45:52.000000000 +0200
@@ -5,5 +5,6 @@
MANIFEST.bak
Makefile.PL
README
-bench.pl
+tie-cache-bench.pl
test.pl
+META.yml Module meta-data (added by MakeMaker)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Tie-Cache-0.17/META.yml new/Tie-Cache-0.21/META.yml
--- old/Tie-Cache-0.17/META.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/Tie-Cache-0.21/META.yml 2014-05-19 17:45:52.000000000 +0200
@@ -0,0 +1,20 @@
+--- #YAML:1.0
+name: Tie-Cache
+version: 0.21
+abstract: ~
+author: []
+license: unknown
+distribution_type: module
+configure_requires:
+ ExtUtils::MakeMaker: 0
+build_requires:
+ ExtUtils::MakeMaker: 0
+requires: {}
+no_index:
+ directory:
+ - t
+ - inc
+generated_by: ExtUtils::MakeMaker version 6.57_05
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Tie-Cache-0.17/README new/Tie-Cache-0.21/README
--- old/Tie-Cache-0.17/README 2002-06-29 00:23:14.000000000 +0200
+++ new/Tie-Cache-0.21/README 2012-02-24 01:48:55.000000000 +0100
@@ -44,26 +44,26 @@
%cache = (); # CLEAR
DESCRIPTION
- This module implements a least recently used (LRU) cache in memory
- through a tie interface. Any time data is stored in the tied hash, that
- key/value pair has an entry time associated with it, and as the cache
- fills up, those members of the cache that are the oldest are removed to
- make room for new entries.
-
- So, the cache only "remembers" the last written entries, up to the size
- of the cache. This can be especially useful if you access great amounts
- of data, but only access a minority of the data a majority of the time.
-
- The implementation is a hash, for quick lookups, overlaying a doubly
- linked list for quick insertion and deletion. On a WinNT PII 300, writes
- to the hash were done at a rate 3100 per second, and reads from the hash
- at 6300 per second. Work has been done to optimize refreshing cache
- entries that are frequently read from, code like $cache{entry}, which
- moves the entry to the end of the linked list internally.
+ This module implements a least recently used (LRU) cache in memory through a
+ tie interface. Any time data is stored in the tied hash, that key/value pair
+ has an entry time associated with it, and as the cache fills up, those
+ members of the cache that are the oldest are removed to make room for new
+ entries.
+
+ So, the cache only "remembers" the last written entries, up to the size of
+ the cache. This can be especially useful if you access great amounts of
+ data, but only access a minority of the data a majority of the time.
+
+ The implementation is a hash, for quick lookups, overlaying a doubly linked
+ list for quick insertion and deletion. On a WinNT PII 300, writes to the
+ hash were done at a rate 3100 per second, and reads from the hash at 6300
+ per second. Work has been done to optimize refreshing cache entries that are
+ frequently read from, code like $cache{entry}, which moves the entry to the
+ end of the linked list internally.
INSTALLATION
- Tie::Cache installs easily using the make or nmake commands as shown
- below. Otherwise, just copy Cache.pm to $PERLLIB/site/Tie
+ Tie::Cache installs easily using the make or nmake commands as shown below.
+ Otherwise, just copy Cache.pm to $PERLLIB/site/Tie
> perl Makefile.PL
> make
@@ -74,37 +74,38 @@
** you can also just copy Cache.pm to $perllib/Tie
BENCMARKS
- There is another simpler LRU cache implementation in CPAN,
- Tie::Cache::LRU, which has the same basic size limiting functionality,
- and for this functionality, the exact same interface.
-
- Through healthy competition, Michael G Schwern got Tie::Cache::LRU
- mostly faster than Tie::Cache on reads & writes:
-
- Cache Size 5000 Tie::Cache 0.17 Tie::Cache::LRU 0.21
- 10000 Writes 1.55 CPU sec 1.10 CPU sec
- 40000 Reads 1.82 CPU sec 1.58 CPU sec
- 10000 Deletes 0.55 CPU sec 0.59 CPU sec
+ There is another simpler LRU cache implementation in CPAN, Tie::Cache::LRU,
+ which has the same basic size limiting functionality, and for this
+ functionality, the exact same interface.
+
+ Through healthy competition, Michael G Schwern got Tie::Cache::LRU mostly
+ faster than Tie::Cache on reads & writes:
+
+ Cache Size 5000 Tie::Cache 0.17 Tie::Cache::LRU 20110205.00
+ 10000 Writes 0.63 CPU sec 0.47 CPU sec
+ 40000 Reads 0.79 CPU sec 0.71 CPU sec
+ 10000 Deletes 0.23 CPU sec 0.26 CPU sec
Unless you are using TRUE CACHE or MaxBytes functionality, using
- Tie::Cache::LRU should be an easy replacement for Tie::Cache.
+ Tie::Cache::LRU could be an easy replacement for Tie::Cache.
+
+ OTOH one nice thing about this module is its lack of external module
+ dependencies!
TRUE CACHE
- To use class as a true cache, which acts as the sole interface for some
- data set, subclass the real cache off Tie::Cache, with @ISA = qw(
- 'Tie::Cache' ) notation. Then override the read() method for behavior
- when there is a cache miss, and the write() method for behavior when the
- cache's data changes.
-
- When WriteSync is 1 or TRUE (DEFAULT), write() is called immediately
- when data in the cache is modified. If set to 0, data that has been
- modified in the cache gets written out when the entries are deleted or
- during the DESTROY phase of the cache object, usually at the end of a
- script.
+ To use class as a true cache, which acts as the sole interface for some data
+ set, subclass the real cache off Tie::Cache, with @ISA = qw( 'Tie::Cache' )
+ notation. Then override the read() method for behavior when there is a cache
+ miss, and the write() method for behavior when the cache's data changes.
+
+ When WriteSync is 1 or TRUE (DEFAULT), write() is called immediately when
+ data in the cache is modified. If set to 0, data that has been modified in
+ the cache gets written out when the entries are deleted or during the
+ DESTROY phase of the cache object, usually at the end of a script.
To have the dirty data write() periodically while WriteSync is set to 0,
- there is a flush() cache API call that will flush the dirty writes in
- this way. Just call the flush() API like:
+ there is a flush() cache API call that will flush the dirty writes in this
+ way. Just call the flush() API like:
my $write_flush_count = tied(%cache)->flush();
@@ -164,9 +165,10 @@
chamas(a)alumni.stanford.org
COPYRIGHT
- Copyright (c) 1999-2002 Joshua Chamas, Chamas Enterprises Inc. Sponsored
- by development on NodeWorks http://www.nodeworks.com
+ Copyright (c) 1999-2012 Joshua Chamas, Chamas Enterprises Inc. Sponsored by
+ development on NodeWorks http://nodeworks.com and Web Test.org
+ http://web-test.org
- All rights reserved. This program is free software; you can redistribute
- it and/or modify it under the same terms as Perl itself.
+ All rights reserved. This program is free software; you can redistribute it
+ and/or modify it under the same terms as Perl itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Tie-Cache-0.17/bench.pl new/Tie-Cache-0.21/bench.pl
--- old/Tie-Cache-0.17/bench.pl 2002-06-29 00:46:27.000000000 +0200
+++ new/Tie-Cache-0.21/bench.pl 1970-01-01 01:00:00.000000000 +0100
@@ -1,64 +0,0 @@
-#!/usr/bin/perl
-
-use Tie::Cache;
-use Tie::Cache::LRU;
-use Benchmark;
-use strict;
-
-my $cache_size = 5000;
-my $write_count = $cache_size * 2;
-my $read_count = $write_count * 4;
-my $delete_count = $write_count;
-
-tie my %cache, 'Tie::Cache', $cache_size;
-tie my %cache_lru, 'Tie::Cache::LRU', $cache_size;
-
-my @cols;
-push(@cols, \%cache, \%cache_lru);
-
-printf " %15s", "Cache Size $cache_size";
-for(@cols) {
- my $module = ref(tied(%$_));
- printf " %16s %3.2f", $module, eval "\$$module"."::VERSION";
-}
-print "\n";
-
-&report("$write_count Writes", sub {
- my $cache = shift;
- for(1..$write_count) {
- $cache->{$_} = $_;
- }
- },
- @cols,
- );
-
-&report("$read_count Reads", sub {
- my $cache = shift;
- for(1..$read_count) {
- my $value = $cache->{$_};
- }
- },
- @cols,
- );
-
-&report("$delete_count Deletes", sub {
- my $cache = shift;
- for(1..$delete_count) {
- my $value = $cache->{$_};
- }
- },
- @cols,
- );
-
-sub report {
- my($desc, $sub, @caches) = @_;
-
- printf(" %-15s", $desc);
- for my $cache (@caches) {
- my $timed = timestr(timeit(1, sub { &$sub($cache) }));
- $timed =~ /([\d\.]+\s+cpu)/i;
- printf("%18s sec", $1);
- }
- print "\n";
-}
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Tie-Cache-0.17/test.pl new/Tie-Cache-0.21/test.pl
--- old/Tie-Cache-0.17/test.pl 2002-06-28 23:52:34.000000000 +0200
+++ new/Tie-Cache-0.21/test.pl 2012-02-24 01:22:03.000000000 +0100
@@ -1,6 +1,6 @@
#!/usr/local/bin/perl
-use Cache;
+use Tie::Cache;
use Benchmark;
use vars qw($Size %cache %count_cache);
use strict;
@@ -132,6 +132,18 @@
sub { keys %cache == $Size - 1 }
);
+test("array type insert/read on MaxBytes cache",
+ sub { $cache{'array'} = ["test"]; $cache{'array'}->[0] eq "test" }
+ );
+test("string type called ARRAY insert/read on MaxBytes cache",
+ sub { $cache{'array-fake'} = "ARRAY"; $cache{'array-fake'} eq "ARRAY" }
+ );
+test("hash type insert/read on MaxBytes cache",
+ sub { $cache{'array'} = { 'foo' => 'bar' }; $cache{'array'}->{'foo'} eq "bar" }
+ );
+
+exit;
+
print "\n++++ Stats for %cache\n\n";
my $obj = tied(%cache);
print join("\n", map { "$_:\t$obj->{$_}" } 'count', 'hit', 'miss', 'bytes');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Tie-Cache-0.17/tie-cache-bench.pl new/Tie-Cache-0.21/tie-cache-bench.pl
--- old/Tie-Cache-0.17/tie-cache-bench.pl 1970-01-01 01:00:00.000000000 +0100
+++ new/Tie-Cache-0.21/tie-cache-bench.pl 2002-06-29 00:46:27.000000000 +0200
@@ -0,0 +1,64 @@
+#!/usr/bin/perl
+
+use Tie::Cache;
+use Tie::Cache::LRU;
+use Benchmark;
+use strict;
+
+my $cache_size = 5000;
+my $write_count = $cache_size * 2;
+my $read_count = $write_count * 4;
+my $delete_count = $write_count;
+
+tie my %cache, 'Tie::Cache', $cache_size;
+tie my %cache_lru, 'Tie::Cache::LRU', $cache_size;
+
+my @cols;
+push(@cols, \%cache, \%cache_lru);
+
+printf " %15s", "Cache Size $cache_size";
+for(@cols) {
+ my $module = ref(tied(%$_));
+ printf " %16s %3.2f", $module, eval "\$$module"."::VERSION";
+}
+print "\n";
+
+&report("$write_count Writes", sub {
+ my $cache = shift;
+ for(1..$write_count) {
+ $cache->{$_} = $_;
+ }
+ },
+ @cols,
+ );
+
+&report("$read_count Reads", sub {
+ my $cache = shift;
+ for(1..$read_count) {
+ my $value = $cache->{$_};
+ }
+ },
+ @cols,
+ );
+
+&report("$delete_count Deletes", sub {
+ my $cache = shift;
+ for(1..$delete_count) {
+ my $value = $cache->{$_};
+ }
+ },
+ @cols,
+ );
+
+sub report {
+ my($desc, $sub, @caches) = @_;
+
+ printf(" %-15s", $desc);
+ for my $cache (@caches) {
+ my $timed = timestr(timeit(1, sub { &$sub($cache) }));
+ $timed =~ /([\d\.]+\s+cpu)/i;
+ printf("%18s sec", $1);
+ }
+ print "\n";
+}
+
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-CPAN-Meta for openSUSE:Factory checked in at 2014-09-17 17:25:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-CPAN-Meta (Old)
and /work/SRC/openSUSE:Factory/.perl-CPAN-Meta.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-CPAN-Meta"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-CPAN-Meta/perl-CPAN-Meta.changes 2014-05-26 14:41:24.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-CPAN-Meta.new/perl-CPAN-Meta.changes 2014-09-17 17:26:13.000000000 +0200
@@ -1,0 +2,17 @@
+Mon Sep 15 15:44:38 UTC 2014 - coolo(a)suse.com
+
+- updated to 2.142060
+
+ [ADDED]
+
+ - CPAN::Meta::Merge is a new class for merging two possibly overlapping
+ instances of metadata. It will accept both CPAN::Meta objects and
+ (possibly incomplete) hashrefs of metadata.
+
+ 2.141520 2014-05-31 23:41:13-04:00 America/New_York
+
+ [DOCUMENTED]
+
+ - Clarified use of 'file' for the 'provides' field in the Spec
+
+-------------------------------------------------------------------
Old:
----
CPAN-Meta-2.141170.tar.gz
New:
----
CPAN-Meta-2.142060.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-CPAN-Meta.spec ++++++
--- /var/tmp/diff_new_pack.axIlh8/_old 2014-09-17 17:26:14.000000000 +0200
+++ /var/tmp/diff_new_pack.axIlh8/_new 2014-09-17 17:26:14.000000000 +0200
@@ -17,14 +17,14 @@
Name: perl-CPAN-Meta
-Version: 2.141170
+Version: 2.142060
Release: 0
%define cpan_name CPAN-Meta
Summary: Distribution metadata for a CPAN dist
License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/CPAN-Meta/
-Source: CPAN-Meta-2.141170.tar.gz
+Source: http://www.cpan.org/authors/id/D/DA/DAGOLDEN/%{cpan_name}-%{version}.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
@@ -36,17 +36,6 @@
BuildRequires: perl(Parse::CPAN::Meta) >= 1.4414
BuildRequires: perl(Test::More) >= 0.88
BuildRequires: perl(version) >= 0.88
-#BuildRequires: perl(CPAN::Meta)
-#BuildRequires: perl(CPAN::Meta::Converter)
-#BuildRequires: perl(CPAN::Meta::Feature)
-#BuildRequires: perl(CPAN::Meta::Prereqs)
-#BuildRequires: perl(CPAN::Meta::Validator)
-#BuildRequires: perl(Pod::Coverage::TrustPod)
-#BuildRequires: perl(Pod::Wordlist)
-#BuildRequires: perl(Test::CPAN::Meta)
-#BuildRequires: perl(Test::Pod) >= 1.41
-#BuildRequires: perl(Test::Pod::Coverage) >= 1.08
-#BuildRequires: perl(Test::Spelling) >= 0.12
Requires: perl(CPAN::Meta::Requirements) >= 2.121
Requires: perl(CPAN::Meta::YAML) >= 0.008
Requires: perl(JSON::PP) >= 2.27200
++++++ CPAN-Meta-2.141170.tar.gz -> CPAN-Meta-2.142060.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/Changes new/CPAN-Meta-2.142060/Changes
--- old/CPAN-Meta-2.141170/Changes 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/Changes 2014-07-25 19:30:29.000000000 +0200
@@ -1,5 +1,19 @@
Revision history for CPAN-Meta
+2.142060 2014-07-25 13:30:06-04:00 America/New_York
+
+ [ADDED]
+
+ - CPAN::Meta::Merge is a new class for merging two possibly overlapping
+ instances of metadata. It will accept both CPAN::Meta objects and
+ (possibly incomplete) hashrefs of metadata.
+
+2.141520 2014-05-31 23:41:13-04:00 America/New_York
+
+ [DOCUMENTED]
+
+ - Clarified use of 'file' for the 'provides' field in the Spec
+
2.141170 2014-04-27 13:03:37-04:00 America/New_York
[ADDED]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/MANIFEST new/CPAN-Meta-2.142060/MANIFEST
--- old/CPAN-Meta-2.141170/MANIFEST 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/MANIFEST 2014-07-25 19:30:29.000000000 +0200
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.015.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.019.
CONTRIBUTING
Changes
LICENSE
@@ -19,10 +19,12 @@
lib/CPAN/Meta/Converter.pm
lib/CPAN/Meta/Feature.pm
lib/CPAN/Meta/History.pm
+lib/CPAN/Meta/Merge.pm
lib/CPAN/Meta/Prereqs.pm
lib/CPAN/Meta/Spec.pm
lib/CPAN/Meta/Validator.pm
perlcritic.rc
+t/00-report-prereqs.dd
t/00-report-prereqs.t
t/README-data.txt
t/converter-bad.t
@@ -78,6 +80,7 @@
t/data-valid/META-1_1.yml
t/data-valid/scalar-meta-spec.yml
t/load-bad.t
+t/merge.t
t/meta-obj.t
t/no-index.t
t/prereqs-finalize.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/META.json new/CPAN-Meta-2.142060/META.json
--- old/CPAN-Meta-2.141170/META.json 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/META.json 2014-07-25 19:30:29.000000000 +0200
@@ -5,7 +5,7 @@
"Ricardo Signes <rjbs(a)cpan.org>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 5.015, CPAN::Meta::Converter version 2.140640",
+ "generated_by" : "Dist::Zilla version 5.019, CPAN::Meta::Converter version 2.141170",
"license" : [
"perl_5"
],
@@ -34,7 +34,7 @@
},
"develop" : {
"requires" : {
- "Dist::Zilla" : "5.015",
+ "Dist::Zilla" : "5",
"Dist::Zilla::Plugin::AutoVersion" : "0",
"Dist::Zilla::Plugin::MakeMaker" : "0",
"Dist::Zilla::Plugin::MakeMaker::Highlander" : "0.003",
@@ -49,7 +49,8 @@
"Test::CPAN::Meta" : "0",
"Test::More" : "0",
"Test::Pod" : "1.41",
- "Test::Pod::Coverage" : "1.08"
+ "Test::Pod::Coverage" : "1.08",
+ "Test::Spelling" : "0.12"
}
},
"runtime" : {
@@ -69,6 +70,7 @@
"test" : {
"recommends" : {
"CPAN::Meta" : "0",
+ "CPAN::Meta::Prereqs" : "0",
"CPAN::Meta::Requirements" : "2.120900"
},
"requires" : {
@@ -80,40 +82,46 @@
"File::Temp" : "0.20",
"IO::Dir" : "0",
"List::Util" : "0",
+ "Scalar::Util" : "0",
"Test::More" : "0.88",
"overload" : "0",
- "utf8" : "0"
+ "utf8" : "0",
+ "version" : "0.88"
}
}
},
"provides" : {
"CPAN::Meta" : {
"file" : "lib/CPAN/Meta.pm",
- "version" : "2.141170"
+ "version" : "2.142060"
},
"CPAN::Meta::Converter" : {
"file" : "lib/CPAN/Meta/Converter.pm",
- "version" : "2.141170"
+ "version" : "2.142060"
},
"CPAN::Meta::Feature" : {
"file" : "lib/CPAN/Meta/Feature.pm",
- "version" : "2.141170"
+ "version" : "2.142060"
},
"CPAN::Meta::History" : {
"file" : "lib/CPAN/Meta/History.pm",
- "version" : "2.141170"
+ "version" : "2.142060"
+ },
+ "CPAN::Meta::Merge" : {
+ "file" : "lib/CPAN/Meta/Merge.pm",
+ "version" : "2.142060"
},
"CPAN::Meta::Prereqs" : {
"file" : "lib/CPAN/Meta/Prereqs.pm",
- "version" : "2.141170"
+ "version" : "2.142060"
},
"CPAN::Meta::Spec" : {
"file" : "lib/CPAN/Meta/Spec.pm",
- "version" : "2.141170"
+ "version" : "2.142060"
},
"CPAN::Meta::Validator" : {
"file" : "lib/CPAN/Meta/Validator.pm",
- "version" : "2.141170"
+ "version" : "2.142060"
}
},
"release_status" : "stable",
@@ -128,7 +136,7 @@
"web" : "https://github.com/Perl-Toolchain-Gang/CPAN-Meta"
}
},
- "version" : "2.141170",
+ "version" : "2.142060",
"x_authority" : "cpan:DAGOLDEN",
"x_contributors" : [
"Ansgar Burchardt <ansgar(a)cpan.org>",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/META.yml new/CPAN-Meta-2.142060/META.yml
--- old/CPAN-Meta-2.141170/META.yml 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/META.yml 2014-07-25 19:30:29.000000000 +0200
@@ -12,13 +12,15 @@
File::Temp: '0.20'
IO::Dir: '0'
List::Util: '0'
+ Scalar::Util: '0'
Test::More: '0.88'
overload: '0'
utf8: '0'
+ version: '0.88'
configure_requires:
ExtUtils::MakeMaker: '6.17'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.015, CPAN::Meta::Converter version 2.140640'
+generated_by: 'Dist::Zilla version 5.019, CPAN::Meta::Converter version 2.141170'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -36,25 +38,28 @@
provides:
CPAN::Meta:
file: lib/CPAN/Meta.pm
- version: '2.141170'
+ version: '2.142060'
CPAN::Meta::Converter:
file: lib/CPAN/Meta/Converter.pm
- version: '2.141170'
+ version: '2.142060'
CPAN::Meta::Feature:
file: lib/CPAN/Meta/Feature.pm
- version: '2.141170'
+ version: '2.142060'
CPAN::Meta::History:
file: lib/CPAN/Meta/History.pm
- version: '2.141170'
+ version: '2.142060'
+ CPAN::Meta::Merge:
+ file: lib/CPAN/Meta/Merge.pm
+ version: '2.142060'
CPAN::Meta::Prereqs:
file: lib/CPAN/Meta/Prereqs.pm
- version: '2.141170'
+ version: '2.142060'
CPAN::Meta::Spec:
file: lib/CPAN/Meta/Spec.pm
- version: '2.141170'
+ version: '2.142060'
CPAN::Meta::Validator:
file: lib/CPAN/Meta/Validator.pm
- version: '2.141170'
+ version: '2.142060'
requires:
CPAN::Meta::Requirements: '2.121'
CPAN::Meta::YAML: '0.008'
@@ -70,7 +75,7 @@
bugtracker: https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues
homepage: https://github.com/Perl-Toolchain-Gang/CPAN-Meta
repository: https://github.com/Perl-Toolchain-Gang/CPAN-Meta.git
-version: '2.141170'
+version: '2.142060'
x_authority: cpan:DAGOLDEN
x_contributors:
- 'Ansgar Burchardt <ansgar(a)cpan.org>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/Makefile.PL new/CPAN-Meta-2.142060/Makefile.PL
--- old/CPAN-Meta-2.141170/Makefile.PL 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/Makefile.PL 2014-07-25 19:30:29.000000000 +0200
@@ -1,5 +1,5 @@
-# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.015.
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.019.
use strict;
use warnings;
@@ -12,7 +12,6 @@
my %WriteMakefileArgs = (
"ABSTRACT" => "the distribution metadata for a CPAN dist",
"AUTHOR" => "David Golden <dagolden\(a)cpan.org>, Ricardo Signes <rjbs\(a)cpan.org>",
- "BUILD_REQUIRES" => {},
"CONFIGURE_REQUIRES" => {
"ExtUtils::MakeMaker" => "6.17"
},
@@ -40,11 +39,13 @@
"File::Temp" => "0.20",
"IO::Dir" => 0,
"List::Util" => 0,
+ "Scalar::Util" => 0,
"Test::More" => "0.88",
"overload" => 0,
- "utf8" => 0
+ "utf8" => 0,
+ "version" => "0.88"
},
- "VERSION" => "2.141170",
+ "VERSION" => "2.142060",
"test" => {
"TESTS" => "t/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/README new/CPAN-Meta-2.142060/README
--- old/CPAN-Meta-2.141170/README 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/README 2014-07-25 19:30:29.000000000 +0200
@@ -2,7 +2,7 @@
CPAN::Meta - the distribution metadata for a CPAN dist
VERSION
- version 2.141170
+ version 2.142060
SYNOPSIS
use v5.10;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/cpanfile new/CPAN-Meta-2.142060/cpanfile
--- old/CPAN-Meta-2.141170/cpanfile 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/cpanfile 2014-07-25 19:30:29.000000000 +0200
@@ -18,13 +18,16 @@
requires "File::Temp" => "0.20";
requires "IO::Dir" => "0";
requires "List::Util" => "0";
+ requires "Scalar::Util" => "0";
requires "Test::More" => "0.88";
requires "overload" => "0";
requires "utf8" => "0";
+ requires "version" => "0.88";
};
on 'test' => sub {
recommends "CPAN::Meta" => "0";
+ recommends "CPAN::Meta::Prereqs" => "0";
recommends "CPAN::Meta::Requirements" => "2.120900";
};
@@ -33,7 +36,7 @@
};
on 'develop' => sub {
- requires "Dist::Zilla" => "5.015";
+ requires "Dist::Zilla" => "5";
requires "Dist::Zilla::Plugin::AutoVersion" => "0";
requires "Dist::Zilla::Plugin::MakeMaker" => "0";
requires "Dist::Zilla::Plugin::MakeMaker::Highlander" => "0.003";
@@ -49,4 +52,5 @@
requires "Test::More" => "0";
requires "Test::Pod" => "1.41";
requires "Test::Pod::Coverage" => "1.08";
+ requires "Test::Spelling" => "0.12";
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/lib/CPAN/Meta/Converter.pm new/CPAN-Meta-2.142060/lib/CPAN/Meta/Converter.pm
--- old/CPAN-Meta-2.141170/lib/CPAN/Meta/Converter.pm 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/lib/CPAN/Meta/Converter.pm 2014-07-25 19:30:29.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
package CPAN::Meta::Converter;
-our $VERSION = '2.141170'; # VERSION
+our $VERSION = '2.142060'; # VERSION
#pod =head1 SYNOPSIS
#pod
@@ -741,12 +741,15 @@
}
sub _convert {
- my ($data, $spec, $to_version) = @_;
+ my ($data, $spec, $to_version, $is_fragment) = @_;
my $new_data = {};
for my $key ( keys %$spec ) {
next if $key eq ':custom' || $key eq ':drop';
next unless my $fcn = $spec->{$key};
+ if ( $is_fragment && $key eq 'generated_by' ) {
+ $fcn = \&_keep;
+ }
die "spec for '$key' is not a coderef"
unless ref $fcn && ref $fcn eq 'CODE';
my $new_value = $fcn->($data->{$key}, $key, $data, $to_version);
@@ -1384,13 +1387,14 @@
my $args = { %args };
my $new_version = $args->{version} || $HIGHEST;
+ my $is_fragment = $args->{is_fragment};
my ($old_version) = $self->{spec};
my $converted = _dclone($self->{data});
if ( $old_version == $new_version ) {
- $converted = _convert( $converted, $cleanup{$old_version}, $old_version );
- unless ( $args->{no_validation} ) {
+ $converted = _convert( $converted, $cleanup{$old_version}, $old_version, $is_fragment );
+ unless ( $args->{is_fragment} ) {
my $cmv = CPAN::Meta::Validator->new( $converted );
unless ( $cmv->is_valid ) {
my $errs = join("\n", $cmv->errors);
@@ -1405,8 +1409,8 @@
next if $vers[$i] > $old_version;
last if $vers[$i+1] < $new_version;
my $spec_string = "$vers[$i+1]-from-$vers[$i]";
- $converted = _convert( $converted, $down_convert{$spec_string}, $vers[$i+1] );
- unless ( $args->{no_validation} ) {
+ $converted = _convert( $converted, $down_convert{$spec_string}, $vers[$i+1], $is_fragment );
+ unless ( $args->{is_fragment} ) {
my $cmv = CPAN::Meta::Validator->new( $converted );
unless ( $cmv->is_valid ) {
my $errs = join("\n", $cmv->errors);
@@ -1422,8 +1426,8 @@
next if $vers[$i] < $old_version;
last if $vers[$i+1] > $new_version;
my $spec_string = "$vers[$i+1]-from-$vers[$i]";
- $converted = _convert( $converted, $up_convert{$spec_string}, $vers[$i+1] );
- unless ( $args->{no_validation} ) {
+ $converted = _convert( $converted, $up_convert{$spec_string}, $vers[$i+1], $is_fragment );
+ unless ( $args->{is_fragment} ) {
my $cmv = CPAN::Meta::Validator->new( $converted );
unless ( $cmv->is_valid ) {
my $errs = join("\n", $cmv->errors);
@@ -1453,7 +1457,7 @@
grep { defined }
map { $fragments_generate{$old_version}{$_} }
keys %{ $self->{data} };
- my $converted = $self->convert( version => $HIGHEST, no_validation => 1 );
+ my $converted = $self->convert( version => $HIGHEST, is_fragment => 1 );
for my $key ( keys %$converted ) {
next if $key =~ /^x_/i || $key eq 'meta-spec';
delete $converted->{$key} unless $expected{$key};
@@ -1475,7 +1479,7 @@
=head1 VERSION
-version 2.141170
+version 2.142060
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/lib/CPAN/Meta/Feature.pm new/CPAN-Meta-2.142060/lib/CPAN/Meta/Feature.pm
--- old/CPAN-Meta-2.141170/lib/CPAN/Meta/Feature.pm 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/lib/CPAN/Meta/Feature.pm 2014-07-25 19:30:29.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
package CPAN::Meta::Feature;
-our $VERSION = '2.141170'; # VERSION
+our $VERSION = '2.142060'; # VERSION
use CPAN::Meta::Prereqs;
@@ -78,7 +78,7 @@
=head1 VERSION
-version 2.141170
+version 2.142060
=head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/lib/CPAN/Meta/History.pm new/CPAN-Meta-2.142060/lib/CPAN/Meta/History.pm
--- old/CPAN-Meta-2.141170/lib/CPAN/Meta/History.pm 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/lib/CPAN/Meta/History.pm 2014-07-25 19:30:29.000000000 +0200
@@ -3,7 +3,7 @@
use strict;
use warnings;
package CPAN::Meta::History;
-our $VERSION = '2.141170'; # VERSION
+our $VERSION = '2.142060'; # VERSION
1;
@@ -21,7 +21,7 @@
=head1 VERSION
-version 2.141170
+version 2.142060
=head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/lib/CPAN/Meta/Merge.pm new/CPAN-Meta-2.142060/lib/CPAN/Meta/Merge.pm
--- old/CPAN-Meta-2.141170/lib/CPAN/Meta/Merge.pm 1970-01-01 01:00:00.000000000 +0100
+++ new/CPAN-Meta-2.142060/lib/CPAN/Meta/Merge.pm 2014-07-25 19:30:29.000000000 +0200
@@ -0,0 +1,248 @@
+package CPAN::Meta::Merge;
+
+use strict;
+use warnings;
+
+our $VERSION = '2.142060'; # VERSION
+
+use Carp qw/croak/;
+use Scalar::Util qw/blessed/;
+use CPAN::Meta::Converter;
+
+sub _identical {
+ my ($left, $right, $path) = @_;
+ croak "Can't merge attribute " . join '.', @{$path} unless $left eq $right;
+ return $left;
+}
+
+sub _merge {
+ my ($current, $next, $mergers, $path) = @_;
+ for my $key (keys %{$next}) {
+ if (not exists $current->{$key}) {
+ $current->{$key} = $next->{$key};
+ }
+ elsif (my $merger = $mergers->{$key}) {
+ $current->{$key} = $merger->($current->{$key}, $next->{$key}, [ @{$path}, $key ]);
+ }
+ elsif ($merger = $mergers->{':default'}) {
+ $current->{$key} = $merger->($current->{$key}, $next->{$key}, [ @{$path}, $key ]);
+ }
+ else {
+ croak sprintf "Can't merge unknown attribute '%s'", join '.', @{$path}, $key;
+ }
+ }
+ return $current;
+}
+
+sub _uniq {
+ my %seen = ();
+ return grep { not $seen{$_}++ } @_;
+}
+
+sub _set_addition {
+ my ($left, $right) = @_;
+ return [ +_uniq(@{$left}, @{$right}) ];
+}
+
+sub _uniq_map {
+ my ($left, $right, $path) = @_;
+ for my $key (keys %{$right}) {
+ if (not exists $left->{$key}) {
+ $left->{$key} = $right->{$key};
+ }
+ else {
+ croak 'Duplication of element ' . join '.', @{$path}, $key;
+ }
+ }
+ return $left;
+}
+
+sub _improvize {
+ my ($left, $right, $path) = @_;
+ my ($name) = reverse @{$path};
+ if ($name =~ /^x_/) {
+ if (ref($left) eq 'ARRAY') {
+ return _set_addition($left, $right, $path);
+ }
+ elsif (ref($left) eq 'HASH') {
+ return _uniq_map($left, $right, $path);
+ }
+ else {
+ return _identical($left, $right, $path);
+ }
+ }
+ croak sprintf "Can't merge '%s'", join '.', @{$path};
+}
+
+my %default = (
+ abstract => \&_identical,
+ author => \&_set_addition,
+ dynamic_config => sub {
+ my ($left, $right) = @_;
+ return $left || $right;
+ },
+ generated_by => sub {
+ my ($left, $right) = @_;
+ return join ', ', _uniq(split(/, /, $left), split(/, /, $right));
+ },
+ license => \&_set_addition,
+ 'meta-spec' => {
+ version => \&_identical,
+ url => \&_identical
+ },
+ name => \&_identical,
+ release_status => \&_identical,
+ version => \&_identical,
+ description => \&_identical,
+ keywords => \&_set_addition,
+ no_index => { map { ($_ => \&_set_addition) } qw/file directory package namespace/ },
+ optional_features => \&_uniq_map,
+ prereqs => sub {
+ require CPAN::Meta::Prereqs;
+ my ($left, $right) = map { CPAN::Meta::Prereqs->new($_) } @_[0,1];
+ return $left->with_merged_prereqs($right)->as_string_hash;
+ },
+ provides => \&_uniq_map,
+ resources => {
+ license => \&_set_addition,
+ homepage => \&_identical,
+ bugtracker => \&_uniq_map,
+ repository => \&_uniq_map,
+ ':default' => \&_improvize,
+ },
+ ':default' => \&_improvize,
+);
+
+sub new {
+ my ($class, %arguments) = @_;
+ croak 'default version required' if not exists $arguments{default_version};
+ my %mapping = %default;
+ my %extra = %{ $arguments{extra_mappings} || {} };
+ for my $key (keys %extra) {
+ if (ref($mapping{$key}) eq 'HASH') {
+ $mapping{$key} = { %{ $mapping{$key} }, %{ $extra{$key} } };
+ }
+ else {
+ $mapping{$key} = $extra{$key};
+ }
+ }
+ return bless {
+ default_version => $arguments{default_version},
+ mapping => _coerce_mapping(\%mapping, []),
+ }, $class;
+}
+
+my %coderef_for = (
+ set_addition => \&_set_addition,
+ uniq_map => \&_uniq_map,
+ identical => \&_identical,
+ improvize => \&_improvize,
+);
+
+sub _coerce_mapping {
+ my ($orig, $map_path) = @_;
+ my %ret;
+ for my $key (keys %{$orig}) {
+ my $value = $orig->{$key};
+ if (ref($orig->{$key}) eq 'CODE') {
+ $ret{$key} = $value;
+ }
+ elsif (ref($value) eq 'HASH') {
+ my $mapping = _coerce_mapping($value, [ @{$map_path}, $key ]);
+ $ret{$key} = sub {
+ my ($left, $right, $path) = @_;
+ return _merge($left, $right, $mapping, [ @{$path}, $key ]);
+ };
+ }
+ elsif ($coderef_for{$value}) {
+ $ret{$key} = $coderef_for{$value};
+ }
+ else {
+ croak "Don't know what to do with " . join '.', @{$map_path}, $key;
+ }
+ }
+ return \%ret;
+}
+
+sub merge {
+ my ($self, @items) = @_;
+ my $current = {};
+ for my $next (@items) {
+ if ( blessed($next) && $next->isa('CPAN::Meta') ) {
+ $next = $next->as_string_hash;
+ }
+ elsif ( ref($next) eq 'HASH' ) {
+ my $cmc = CPAN::Meta::Converter->new(
+ $next, default_version => $self->{default_version}
+ );
+ $next = $cmc->upgrade_fragment;
+ }
+ else {
+ croak "Don't know how to merge '$next'";
+ }
+ $current = _merge($current, $next, $self->{mapping}, []);
+ }
+ return $current;
+}
+
+1;
+
+# ABSTRACT: Merging CPAN Meta fragments
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+CPAN::Meta::Merge - Merging CPAN Meta fragments
+
+=head1 VERSION
+
+version 2.142060
+
+=head1 SYNOPSIS
+
+ my $merger = CPAN::Meta::Merge->new(default_version => "2");
+ my $meta = $merger->merge($base, @additional);
+
+=head1 DESCRIPTION
+
+=head1 METHODS
+
+=head2 new
+
+This creates a CPAN::Meta::Merge object. It takes one mandatory named
+argument, C<version>, declaring the version of the meta-spec that must be
+used for the merge. It can optionally take an C<extra_mappings> argument
+that allows one to add additional merging functions for specific elements.
+
+=head2 merge(@fragments)
+
+Merge all C<@fragments> together. It will accept both CPAN::Meta objects and
+(possibly incomplete) hashrefs of metadata.
+
+=head1 AUTHORS
+
+=over 4
+
+=item *
+
+David Golden <dagolden(a)cpan.org>
+
+=item *
+
+Ricardo Signes <rjbs(a)cpan.org>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/lib/CPAN/Meta/Prereqs.pm new/CPAN-Meta-2.142060/lib/CPAN/Meta/Prereqs.pm
--- old/CPAN-Meta-2.141170/lib/CPAN/Meta/Prereqs.pm 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/lib/CPAN/Meta/Prereqs.pm 2014-07-25 19:30:29.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
package CPAN::Meta::Prereqs;
-our $VERSION = '2.141170'; # VERSION
+our $VERSION = '2.142060'; # VERSION
#pod =head1 DESCRIPTION
#pod
@@ -286,7 +286,7 @@
=head1 VERSION
-version 2.141170
+version 2.142060
=head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/lib/CPAN/Meta/Spec.pm new/CPAN-Meta-2.142060/lib/CPAN/Meta/Spec.pm
--- old/CPAN-Meta-2.141170/lib/CPAN/Meta/Spec.pm 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/lib/CPAN/Meta/Spec.pm 2014-07-25 19:30:29.000000000 +0200
@@ -7,7 +7,7 @@
use strict;
use warnings;
package CPAN::Meta::Spec;
-our $VERSION = '2.141170'; # VERSION
+our $VERSION = '2.142060'; # VERSION
1;
@@ -28,7 +28,7 @@
=head1 VERSION
-version 2.141170
+version 2.142060
=head1 SYNOPSIS
@@ -696,7 +696,8 @@
This field is required. It must contain a Unix-style relative file path
from the root of the distribution directory to a file that contains or
-generates the package.
+generates the package. It may be given as C<META.yml> or C<META.json>
+to claim a package for indexing without needing a C<*.pm>.
=item version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/lib/CPAN/Meta/Validator.pm new/CPAN-Meta-2.142060/lib/CPAN/Meta/Validator.pm
--- old/CPAN-Meta-2.141170/lib/CPAN/Meta/Validator.pm 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/lib/CPAN/Meta/Validator.pm 2014-07-25 19:30:29.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
package CPAN::Meta::Validator;
-our $VERSION = '2.141170'; # VERSION
+our $VERSION = '2.142060'; # VERSION
#pod =head1 SYNOPSIS
#pod
@@ -997,7 +997,7 @@
=head1 VERSION
-version 2.141170
+version 2.142060
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/lib/CPAN/Meta.pm new/CPAN-Meta-2.142060/lib/CPAN/Meta.pm
--- old/CPAN-Meta-2.141170/lib/CPAN/Meta.pm 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/lib/CPAN/Meta.pm 2014-07-25 19:30:29.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
package CPAN::Meta;
-our $VERSION = '2.141170'; # VERSION
+our $VERSION = '2.142060'; # VERSION
#pod =head1 SYNOPSIS
#pod
@@ -641,7 +641,7 @@
=head1 VERSION
-version 2.141170
+version 2.142060
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/t/00-report-prereqs.dd new/CPAN-Meta-2.142060/t/00-report-prereqs.dd
--- old/CPAN-Meta-2.141170/t/00-report-prereqs.dd 1970-01-01 01:00:00.000000000 +0100
+++ new/CPAN-Meta-2.142060/t/00-report-prereqs.dd 2014-07-25 19:30:29.000000000 +0200
@@ -0,0 +1,66 @@
+do { my $x = {
+ 'configure' => {
+ 'requires' => {
+ 'ExtUtils::MakeMaker' => '6.17'
+ }
+ },
+ 'develop' => {
+ 'requires' => {
+ 'Dist::Zilla' => '5',
+ 'Dist::Zilla::Plugin::AutoVersion' => '0',
+ 'Dist::Zilla::Plugin::MakeMaker' => '0',
+ 'Dist::Zilla::Plugin::MakeMaker::Highlander' => '0.003',
+ 'Dist::Zilla::Plugin::OnlyCorePrereqs' => '0.013',
+ 'Dist::Zilla::Plugin::Prereqs' => '0',
+ 'Dist::Zilla::PluginBundle::DAGOLDEN' => '0.053',
+ 'File::Spec' => '0',
+ 'File::Temp' => '0',
+ 'IO::Handle' => '0',
+ 'IPC::Open3' => '0',
+ 'Pod::Coverage::TrustPod' => '0',
+ 'Test::CPAN::Meta' => '0',
+ 'Test::More' => '0',
+ 'Test::Pod' => '1.41',
+ 'Test::Pod::Coverage' => '1.08',
+ 'Test::Spelling' => '0.12'
+ }
+ },
+ 'runtime' => {
+ 'requires' => {
+ 'CPAN::Meta::Requirements' => '2.121',
+ 'CPAN::Meta::YAML' => '0.008',
+ 'Carp' => '0',
+ 'JSON::PP' => '2.27200',
+ 'Parse::CPAN::Meta' => '1.4414',
+ 'Scalar::Util' => '0',
+ 'perl' => '5.008',
+ 'strict' => '0',
+ 'version' => '0.88',
+ 'warnings' => '0'
+ }
+ },
+ 'test' => {
+ 'recommends' => {
+ 'CPAN::Meta' => '0',
+ 'CPAN::Meta::Prereqs' => '0',
+ 'CPAN::Meta::Requirements' => '2.120900'
+ },
+ 'requires' => {
+ 'Data::Dumper' => '0',
+ 'ExtUtils::MakeMaker' => '0',
+ 'File::Basename' => '0',
+ 'File::Spec' => '0',
+ 'File::Spec::Functions' => '0',
+ 'File::Temp' => '0.20',
+ 'IO::Dir' => '0',
+ 'List::Util' => '0',
+ 'Scalar::Util' => '0',
+ 'Test::More' => '0.88',
+ 'overload' => '0',
+ 'utf8' => '0',
+ 'version' => '0.88'
+ }
+ }
+ };
+ $x;
+ }
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/t/00-report-prereqs.t new/CPAN-Meta-2.142060/t/00-report-prereqs.t
--- old/CPAN-Meta-2.141170/t/00-report-prereqs.t 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/t/00-report-prereqs.t 2014-07-25 19:30:29.000000000 +0200
@@ -3,18 +3,20 @@
use strict;
use warnings;
-# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.013
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.014
use Test::More tests => 1;
use ExtUtils::MakeMaker;
use File::Spec::Functions;
-use List::Util qw/max/;
+use List::Util qw/max first/;
+use Scalar::Util qw/blessed/;
use version;
# hide optional CPAN::Meta modules from prereq scanner
# and check if they are available
my $cpan_meta = "CPAN::Meta";
+my $cpan_meta_pre = "CPAN::Meta::Prereqs";
my $cpan_meta_req = "CPAN::Meta::Requirements";
my $HAS_CPAN_META = eval "require $cpan_meta"; ## no critic
my $HAS_CPAN_META_REQ = eval "require $cpan_meta_req; $cpan_meta_req->VERSION('2.120900')";
@@ -22,173 +24,139 @@
# Verify requirements?
my $DO_VERIFY_PREREQS = 1;
-sub _merge_requires {
+sub _merge_prereqs {
my ($collector, $prereqs) = @_;
- for my $phase ( qw/configure build test runtime develop/ ) {
- next unless exists $prereqs->{$phase};
- if ( my $req = $prereqs->{$phase}{'requires'} ) {
- my $cmr = CPAN::Meta::Requirements->from_string_hash( $req );
- $collector->add_requirements( $cmr );
+
+ # CPAN::Meta::Prereqs object
+ if (blessed $collector eq $cpan_meta_pre) {
+ return $collector->with_merged_prereqs(
+ CPAN::Meta::Prereqs->new( $prereqs )
+ );
+ }
+
+ # Raw hashrefs
+ for my $phase ( keys %$prereqs ) {
+ for my $type ( keys %{ $prereqs->{$phase} } ) {
+ for my $module ( keys %{ $prereqs->{$phase}{$type} } ) {
+ $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module};
+ }
}
}
+
+ return $collector;
}
-my %include = map {; $_ => 1 } qw(
+my @include = qw(
);
-my %exclude = map {; $_ => 1 } qw(
+my @exclude = qw(
);
# Add static prereqs to the included modules list
-my $static_prereqs = do { my $x = {
- 'configure' => {
- 'requires' => {
- 'ExtUtils::MakeMaker' => '6.17'
- }
- },
- 'develop' => {
- 'requires' => {
- 'Dist::Zilla' => '5.015',
- 'Dist::Zilla::Plugin::AutoVersion' => '0',
- 'Dist::Zilla::Plugin::MakeMaker' => '0',
- 'Dist::Zilla::Plugin::MakeMaker::Highlander' => '0.003',
- 'Dist::Zilla::Plugin::OnlyCorePrereqs' => '0.013',
- 'Dist::Zilla::Plugin::Prereqs' => '0',
- 'Dist::Zilla::PluginBundle::DAGOLDEN' => '0.053',
- 'File::Spec' => '0',
- 'File::Temp' => '0',
- 'IO::Handle' => '0',
- 'IPC::Open3' => '0',
- 'Pod::Coverage::TrustPod' => '0',
- 'Test::CPAN::Meta' => '0',
- 'Test::More' => '0',
- 'Test::Pod' => '1.41',
- 'Test::Pod::Coverage' => '1.08'
- }
- },
- 'runtime' => {
- 'requires' => {
- 'CPAN::Meta::Requirements' => '2.121',
- 'CPAN::Meta::YAML' => '0.008',
- 'Carp' => '0',
- 'JSON::PP' => '2.27200',
- 'Parse::CPAN::Meta' => '1.4414',
- 'Scalar::Util' => '0',
- 'perl' => '5.008',
- 'strict' => '0',
- 'version' => '0.88',
- 'warnings' => '0'
- }
- },
- 'test' => {
- 'recommends' => {
- 'CPAN::Meta' => '0',
- 'CPAN::Meta::Requirements' => '2.120900'
- },
- 'requires' => {
- 'Data::Dumper' => '0',
- 'ExtUtils::MakeMaker' => '0',
- 'File::Basename' => '0',
- 'File::Spec' => '0',
- 'File::Spec::Functions' => '0',
- 'File::Temp' => '0.20',
- 'IO::Dir' => '0',
- 'List::Util' => '0',
- 'Test::More' => '0.88',
- 'overload' => '0',
- 'utf8' => '0'
- }
- }
- };
- $x;
- };
-
-delete $static_prereqs->{develop} if not $ENV{AUTHOR_TESTING};
-$include{$_} = 1 for map { keys %$_ } map { values %$_ } values %$static_prereqs;
-
-# Merge requirements for major phases (if we can)
-my $all_requires;
-if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META_REQ ) {
- $all_requires = $cpan_meta_req->new;
- _merge_requires($all_requires, $static_prereqs);
+my $static_prereqs = do 't/00-report-prereqs.dd';
+
+### XXX: Assume these are Runtime Requires
+my $static_prereqs_requires = $static_prereqs->{runtime}{requires};
+for my $mod (@include) {
+ $static_prereqs_requires->{$mod} = 0 unless exists $static_prereqs_requires->{$mod};
}
+# Merge all prereqs (either with ::Prereqs or a hashref)
+my $full_prereqs = _merge_prereqs(
+ ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ),
+ $static_prereqs
+);
# Add dynamic prereqs to the included modules list (if we can)
-my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
+my $source = first { -f } 'MYMETA.json', 'MYMETA.yml';
if ( $source && $HAS_CPAN_META ) {
- if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
- my $dynamic_prereqs = $meta->prereqs;
- delete $dynamic_prereqs->{develop} if not $ENV{AUTHOR_TESTING};
- $include{$_} = 1 for map { keys %$_ } map { values %$_ } values %$dynamic_prereqs;
-
- if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META_REQ ) {
- _merge_requires($all_requires, $dynamic_prereqs);
+ if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
+ $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
}
- }
}
else {
- $source = 'static metadata';
+ $source = 'static metadata';
}
-my @modules = sort grep { ! $exclude{$_} } keys %include;
-my @reports = [qw/Version Module/];
+my @full_reports;
my @dep_errors;
-my $req_hash = defined($all_requires) ? $all_requires->as_string_hash : {};
+my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
-for my $mod ( @modules ) {
- next if $mod eq 'perl';
- my $file = $mod;
- $file =~ s{::}{/}g;
- $file .= ".pm";
- my ($prefix) = grep { -e catfile($_, $file) } @INC;
- if ( $prefix ) {
- my $ver = MM->parse_version( catfile($prefix, $file) );
- $ver = "undef" unless defined $ver; # Newer MM should do this anyway
- push @reports, [$ver, $mod];
-
- if ( $DO_VERIFY_PREREQS && $all_requires ) {
- my $req = $req_hash->{$mod};
- if ( defined $req && length $req ) {
- if ( ! defined eval { version->parse($ver) } ) {
- push @dep_errors, "$mod version '$ver' cannot be parsed (version '$req' required)";
- }
- elsif ( ! $all_requires->accepts_module( $mod => $ver ) ) {
- push @dep_errors, "$mod version '$ver' is not in required range '$req'";
+for my $phase ( qw(configure build test runtime develop) ) {
+ next unless $req_hash->{$phase};
+ next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING});
+
+ for my $type ( qw(requires recommends suggests conflicts) ) {
+ next unless $req_hash->{$phase}{$type};
+
+ my $title = ucfirst($phase).' '.ucfirst($type);
+ my @reports = [qw/Module Want Have/];
+
+ for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) {
+ next if $mod eq 'perl';
+ next if first { $_ eq $mod } @exclude;
+
+ my $file = $mod;
+ $file =~ s{::}{/}g;
+ $file .= ".pm";
+ my $prefix = first { -e catfile($_, $file) } @INC;
+
+ my $want = $req_hash->{$phase}{$type}{$mod};
+ $want = "undef" unless defined $want;
+ $want = "any" if !$want && $want == 0;
+
+ my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required";
+
+ if ($prefix) {
+ my $have = MM->parse_version( catfile($prefix, $file) );
+ $have = "undef" unless defined $have;
+ push @reports, [$mod, $want, $have];
+
+ if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) {
+ if ( ! defined eval { version->parse($have) } ) {
+ push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)";
+ }
+ elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) {
+ push @dep_errors, "$mod version '$have' is not in required range '$want'";
+ }
+ }
+ }
+ else {
+ push @reports, [$mod, $want, "missing"];
+
+ if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) {
+ push @dep_errors, "$mod is not installed ($req_string)";
+ }
+ }
}
- }
- }
- }
- else {
- push @reports, ["missing", $mod];
-
- if ( $DO_VERIFY_PREREQS && $all_requires ) {
- my $req = $req_hash->{$mod};
- if ( defined $req && length $req ) {
- push @dep_errors, "$mod is not installed (version '$req' required)";
- }
+ if ( @reports ) {
+ push @full_reports, "=== $title ===\n\n";
+
+ my $ml = max map { length $_->[0] } @reports;
+ my $wl = max map { length $_->[1] } @reports;
+ my $hl = max map { length $_->[2] } @reports;
+ splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl];
+
+ push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports;
+ push @full_reports, "\n";
+ }
}
- }
}
-if ( @reports ) {
- my $vl = max map { length $_->[0] } @reports;
- my $ml = max map { length $_->[1] } @reports;
- splice @reports, 1, 0, ["-" x $vl, "-" x $ml];
- diag "\nVersions for all modules listed in $source (including optional ones):\n",
- map {sprintf(" %*s %*s\n",$vl,$_->[0],-$ml,$_->[1])} @reports;
+if ( @full_reports ) {
+ diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports;
}
if ( @dep_errors ) {
- diag join("\n",
- "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n",
- "The following REQUIRED prerequisites were not satisfied:\n",
- @dep_errors,
- "\n"
- );
+ diag join("\n",
+ "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n",
+ "The following REQUIRED prerequisites were not satisfied:\n",
+ @dep_errors,
+ "\n"
+ );
}
pass;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/t/merge.t new/CPAN-Meta-2.142060/t/merge.t
--- old/CPAN-Meta-2.141170/t/merge.t 1970-01-01 01:00:00.000000000 +0100
+++ new/CPAN-Meta-2.142060/t/merge.t 2014-07-25 19:30:29.000000000 +0200
@@ -0,0 +1,118 @@
+#! perl
+
+use strict;
+use warnings;
+
+use Test::More;
+use CPAN::Meta::Merge;
+
+my %base = (
+ abstract => 'This is a test',
+ author => ['A.U. Thor'],
+ generated_by => 'Myself',
+ license => [ 'perl_5' ],
+ resources => {
+ license => [ 'http://dev.perl.org/licenses/' ],
+ },
+ prereqs => {
+ runtime => {
+ requires => {
+ Foo => '0',
+ },
+ },
+ },
+ dynamic_config => 0,
+ provides => {
+ Baz => {
+ file => 'lib/Baz.pm',
+ },
+ },
+ 'meta-spec' => {
+ url => "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ version => 2,
+ },
+);
+
+my %first = (
+ author => [ 'I.M. Poster' ],
+ generated_by => 'Some other guy',
+ license => [ 'bsd' ],
+ resources => {
+ license => [ 'http://opensource.org/licenses/bsd-license.php' ],
+ },
+ prereqs => {
+ runtime => {
+ requires => {
+ Foo => '< 1',
+ },
+ recommends => {
+ Bar => '3.14',
+ },
+ },
+ test => {
+ requires => {
+ 'Test::Bar' => 0,
+ },
+ },
+ },
+ dynamic_config => 1,
+ provides => {
+ Quz => {
+ file => 'lib/Quz.pm',
+ },
+ },
+);
+my %first_expected = (
+ abstract => 'This is a test',
+ author => [ 'A.U. Thor', 'I.M. Poster' ],
+ generated_by => 'Myself, Some other guy',
+ license => [ 'perl_5', 'bsd' ],
+ resources => {
+ license => [ 'http://dev.perl.org/licenses/', 'http://opensource.org/licenses/bsd-license.php' ],
+ },
+ prereqs => {
+ runtime => {
+ requires => {
+ Foo => '>= 0, < 1',
+ },
+ recommends => {
+ Bar => '3.14',
+ },
+ },
+ test => {
+ requires => {
+ 'Test::Bar' => 0,
+ },
+ },
+ },
+ provides => {
+ Baz => {
+ file => 'lib/Baz.pm',
+ },
+ Quz => {
+ file => 'lib/Quz.pm',
+ },
+ },
+ dynamic_config => 1,
+ 'meta-spec' => {
+ url => "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ version => 2,
+ },
+);
+
+my $merger = CPAN::Meta::Merge->new(default_version => '2');
+
+my $first_result = $merger->merge(\%base, \%first);
+
+is_deeply($first_result, \%first_expected, 'First result is as expected');
+
+is_deeply($merger->merge(\%base, { abstract => 'This is a test' }), \%base, 'Can merge in identical abstract');
+my $failure = eval { $merger->merge(\%base, { abstract => 'And now for something else' }) };
+is($failure, undef, 'Trying to merge different author gives an exception');
+like $@, qr/^Can't merge attribute abstract /, 'Exception looks right';
+
+my $failure2 = eval { $merger->merge(\%base, { provides => { Baz => { file => 'Baz.pm' } } }) };
+is($failure2, undef, 'Trying to merge different author gives an exception');
+like $@, qr/^Duplication of element provides\.Baz /, 'Exception looks right';
+
+done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/xt/author/00-compile.t new/CPAN-Meta-2.142060/xt/author/00-compile.t
--- old/CPAN-Meta-2.141170/xt/author/00-compile.t 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/xt/author/00-compile.t 2014-07-25 19:30:29.000000000 +0200
@@ -2,9 +2,9 @@
use strict;
use warnings;
-# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.040
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.043
-use Test::More tests => 7 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
+use Test::More tests => 8 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
@@ -13,6 +13,7 @@
'CPAN/Meta/Converter.pm',
'CPAN/Meta/Feature.pm',
'CPAN/Meta/History.pm',
+ 'CPAN/Meta/Merge.pm',
'CPAN/Meta/Prereqs.pm',
'CPAN/Meta/Spec.pm',
'CPAN/Meta/Validator.pm'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Meta-2.141170/xt/author/pod-spell.t new/CPAN-Meta-2.142060/xt/author/pod-spell.t
--- old/CPAN-Meta-2.141170/xt/author/pod-spell.t 2014-04-27 19:03:49.000000000 +0200
+++ new/CPAN-Meta-2.142060/xt/author/pod-spell.t 2014-07-25 19:30:29.000000000 +0200
@@ -2,7 +2,7 @@
use warnings;
use Test::More;
-# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006007
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006008
use Test::Spelling 0.12;
use Pod::Wordlist;
@@ -86,9 +86,10 @@
lib
CPAN
Meta
-History
-Prereqs
Spec
+History
Validator
Converter
Feature
+Merge
+Prereqs
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Config-MVP for openSUSE:Factory checked in at 2014-09-17 17:25:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Config-MVP (Old)
and /work/SRC/openSUSE:Factory/.perl-Config-MVP.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Config-MVP"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Config-MVP/perl-Config-MVP.changes 2014-02-28 19:00:24.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Config-MVP.new/perl-Config-MVP.changes 2014-09-17 17:26:12.000000000 +0200
@@ -1,0 +2,8 @@
+Mon Sep 15 15:44:37 UTC 2014 - coolo(a)suse.com
+
+- updated to 2.200008
+ - fix a busted link
+ - be more consistent in exception-throwing on missing packages
+ - fix a dumb test that failed in a git checkout
+
+-------------------------------------------------------------------
Old:
----
Config-MVP-2.200007.tar.gz
New:
----
Config-MVP-2.200008.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Config-MVP.spec ++++++
--- /var/tmp/diff_new_pack.gVMiA9/_old 2014-09-17 17:26:13.000000000 +0200
+++ /var/tmp/diff_new_pack.gVMiA9/_new 2014-09-17 17:26:13.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-Config-MVP
-Version: 2.200007
+Version: 2.200008
Release: 0
%define cpan_name Config-MVP
Summary: multivalue-property package-oriented configuration
@@ -31,7 +31,6 @@
BuildRequires: perl-macros
BuildRequires: perl(Class::Load) >= 0.17
BuildRequires: perl(Module::Pluggable::Object)
-BuildRequires: perl(Module::Runtime)
BuildRequires: perl(Moose) >= 0.91
BuildRequires: perl(Moose::Role)
BuildRequires: perl(Moose::Util::TypeConstraints)
@@ -47,7 +46,6 @@
BuildRequires: perl(Try::Tiny)
Requires: perl(Class::Load) >= 0.17
Requires: perl(Module::Pluggable::Object)
-Requires: perl(Module::Runtime)
Requires: perl(Moose) >= 0.91
Requires: perl(Moose::Role)
Requires: perl(Moose::Util::TypeConstraints)
++++++ Config-MVP-2.200007.tar.gz -> Config-MVP-2.200008.tar.gz ++++++
++++ 2819 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Perl-Tidy for openSUSE:Factory checked in at 2014-09-17 17:25:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Perl-Tidy (Old)
and /work/SRC/openSUSE:Factory/.perl-Perl-Tidy.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Perl-Tidy"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Perl-Tidy/perl-Perl-Tidy.changes 2013-10-06 14:55:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Perl-Tidy.new/perl-Perl-Tidy.changes 2014-09-17 17:26:09.000000000 +0200
@@ -1,0 +2,39 @@
+Mon Sep 15 15:44:35 UTC 2014 - coolo(a)suse.com
+
+- updated to 20140711
+ - Fixed RT #94902: abbreviation parsing in .perltidyrc files was not
+ working for multi-line abbreviations. Thanks to Eric Fung for
+ supplying a patch.
+
+ - Fixed RT #95708, misparsing of a hash when the first key was a perl
+ keyword, causing a semicolon to be incorrectly added.
+
+ - Fixed RT #94338 for-loop in a parenthesized block-map. A code block within
+ parentheses of a map, sort, or grep function was being mistokenized. In
+ rare cases this could produce in an incorrect error message. The fix will
+ produce some minor formatting changes. Thanks to Daniel Trizen
+ discovering and documenting this.
+
+ - Fixed RT #94354, excess indentation for stacked tokens. Thanks to
+ Colin Williams for supplying a patch.
+
+ - Added support for experimental postfix dereferencing notation introduced in
+ perl 5.20. RT #96021.
+
+ - Updated documentation to clarify the behavior of the -io flag
+ in response to RT #95709. You can add -noll or -l=0 to prevent
+ long comments from being outdented when -io is used.
+
+ - Added a check to prevent a problem reported in RT #81866, where large
+ scripts which had been compressed to a single line could not be formatted
+ because of a check for VERSION for MakeMaker. The workaround was to
+ use -nvpl, but this shouldn't be necessary now.
+
+ - Fixed RT #96101; Closing brace of anonymous sub in a list was being
+ indented. For example, the closing brace of the anonymous sub below
+ will now be lined up with the word 'callback'. This problem
+ occured if there was no comma after the closing brace of the anonymous sub.
+ This update may cause minor changes to formatting of code with lists
+ of anonymous subs, especially TK code.
+
+-------------------------------------------------------------------
Old:
----
Perl-Tidy-20130922.tar.gz
New:
----
Perl-Tidy-20140711.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Perl-Tidy.spec ++++++
--- /var/tmp/diff_new_pack.UYH3wu/_old 2014-09-17 17:26:11.000000000 +0200
+++ /var/tmp/diff_new_pack.UYH3wu/_new 2014-09-17 17:26:11.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Perl-Tidy
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: perl-Perl-Tidy
-Version: 20130922
+Version: 20140711
Release: 0
%define cpan_name Perl-Tidy
Summary: Parses and beautifies perl source
@@ -29,8 +29,6 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
-#BuildRequires: perl(Perl::Tidy)
-#BuildRequires: perl(Text::Autoformat)
%{perl_requires}
%description
@@ -51,7 +49,6 @@
%prep
%setup -q -n %{cpan_name}-%{version}
-find . -type f -print0 | xargs -0 chmod 644
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor
++++++ Perl-Tidy-20130922.tar.gz -> Perl-Tidy-20140711.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/BUGS new/Perl-Tidy-20140711/BUGS
--- old/Perl-Tidy-20130922/BUGS 2012-07-01 17:58:18.000000000 +0200
+++ new/Perl-Tidy-20140711/BUGS 2014-03-28 02:03:28.000000000 +0100
@@ -30,6 +30,9 @@
correctly.
Perltidy does not handle UTF-8 encoded files
+ This has long been requested but unfortunately I don't have time, so
+ it won't happen unless someone wants to work on it.
+
Two iterations are sometimes needed
Usually the code produced by perltidy on the first pass does not change
if it is run again, but sometimes a second pass will produce some small
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/CHANGES new/Perl-Tidy-20140711/CHANGES
--- old/Perl-Tidy-20130922/CHANGES 2013-09-22 16:40:31.000000000 +0200
+++ new/Perl-Tidy-20140711/CHANGES 2014-07-11 13:16:51.000000000 +0200
@@ -1,4 +1,86 @@
Perltidy Change Log
+ 2014 07 11
+ - Fixed RT #94902: abbreviation parsing in .perltidyrc files was not
+ working for multi-line abbreviations. Thanks to Eric Fung for
+ supplying a patch.
+
+ - Fixed RT #95708, misparsing of a hash when the first key was a perl
+ keyword, causing a semicolon to be incorrectly added.
+
+ - Fixed RT #94338 for-loop in a parenthesized block-map. A code block within
+ parentheses of a map, sort, or grep function was being mistokenized. In
+ rare cases this could produce in an incorrect error message. The fix will
+ produce some minor formatting changes. Thanks to Daniel Trizen
+ discovering and documenting this.
+
+ - Fixed RT #94354, excess indentation for stacked tokens. Thanks to
+ Colin Williams for supplying a patch.
+
+ - Added support for experimental postfix dereferencing notation introduced in
+ perl 5.20. RT #96021.
+
+ - Updated documentation to clarify the behavior of the -io flag
+ in response to RT #95709. You can add -noll or -l=0 to prevent
+ long comments from being outdented when -io is used.
+
+ - Added a check to prevent a problem reported in RT #81866, where large
+ scripts which had been compressed to a single line could not be formatted
+ because of a check for VERSION for MakeMaker. The workaround was to
+ use -nvpl, but this shouldn't be necessary now.
+
+ - Fixed RT #96101; Closing brace of anonymous sub in a list was being
+ indented. For example, the closing brace of the anonymous sub below
+ will now be lined up with the word 'callback'. This problem
+ occured if there was no comma after the closing brace of the anonymous sub.
+ This update may cause minor changes to formatting of code with lists
+ of anonymous subs, especially TK code.
+
+ # OLD
+ my @menu_items = (
+
+ #...
+ {
+ path => '/_Operate/Transcode and split',
+ callback => sub {
+ return 1 if not $self->project_opened;
+ $self->comp('project')->transcode( split => 1 );
+ }
+ }
+ );
+
+ # NEW
+ my @menu_items = (
+
+ #...
+ {
+ path => '/_Operate/Transcode and split',
+ callback => sub {
+ return 1 if not $self->project_opened;
+ $self->comp('project')->transcode( split => 1 );
+ }
+ }
+ );
+
+ 2014 03 28
+ - Fixed RT #94190 and debian Bug #742004: perltidy.LOG file left behind.
+ Thanks to George Hartzell for debugging this. The problem was
+ caused by the memoization speedup patch in version 20121207. An
+ unwanted flag was being set which caused a LOG to be written if
+ perltidy was called multiple times.
+
+ - New default behavior for LOG files: If the source is from an array or
+ string (through a call to the perltidy module) then a LOG output is only
+ possible if a logfile stream is specified. This is to prevent
+ unexpected perltidy.LOG files.
+
+ - Fixed debian Bug #740670, insecure temporary file usage. File::Temp is now
+ used to get a temporary file. Thanks to Don Anderson for a patch.
+
+ - Any -b (--backup-and-modify-in-place) flag is silently ignored when a
+ source stream, destination stream, or standard output is used.
+ This is because the -b flag may have been in a .perltidyrc file and
+ warnings break Test::NoWarnings. Thanks to Marijn Brand.
+
2013 09 22
- Fixed RT #88020. --converge was not working with wide characters.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/MANIFEST new/Perl-Tidy-20140711/MANIFEST
--- old/Perl-Tidy-20130922/MANIFEST 2013-07-17 00:34:49.000000000 +0200
+++ new/Perl-Tidy-20140711/MANIFEST 2014-03-28 01:54:27.000000000 +0100
@@ -8,10 +8,6 @@
README
TODO
bin/perltidy
-debian/changelog
-debian/control
-debian/copyright
-debian/rules
docs/README
docs/perltidy.1
docs/stylekey.pod
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/META.yml new/Perl-Tidy-20140711/META.yml
--- old/Perl-Tidy-20130922/META.yml 2013-09-22 16:43:36.000000000 +0200
+++ new/Perl-Tidy-20140711/META.yml 2014-07-11 13:21:00.000000000 +0200
@@ -1,10 +1,10 @@
--- #YAML:1.0
name: Perl-Tidy
-version: 20130922
+version: 20140711
abstract: indent and reformat perl scripts
author:
- Steve Hancock <perltidy(a)perltidy.sourceforge.net>
-license: unknown
+license: GPL-2.0+
distribution_type: module
configure_requires:
ExtUtils::MakeMaker: 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/Makefile.PL new/Perl-Tidy-20140711/Makefile.PL
--- old/Perl-Tidy-20130922/Makefile.PL 2002-04-08 21:51:52.000000000 +0200
+++ new/Perl-Tidy-20140711/Makefile.PL 2014-03-27 22:31:00.000000000 +0100
@@ -14,6 +14,7 @@
$] >= 5.005
? (
ABSTRACT => 'indent and reformat perl scripts',
+ LICENSE => 'GPL-2.0+',
AUTHOR => 'Steve Hancock <perltidy(a)perltidy.sourceforge.net>'
)
: ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/TODO new/Perl-Tidy-20140711/TODO
--- old/Perl-Tidy-20130922/TODO 2012-07-01 18:10:14.000000000 +0200
+++ new/Perl-Tidy-20140711/TODO 2014-03-28 01:59:50.000000000 +0100
@@ -1,17 +1,9 @@
Perltidy TODO List
This is a partial "wish-list" of features to add and things to do.
- Provide an option to ignore side comments when checking line length.
- That is, side comments would be allowed to be arbitrarily long without
- influencing line breaks.
-
Improved Vertical Alignment
There are still many opportunities for improving vertical alignment.
- Minimize the instances in which formatting changes on a second iteration.
-
- Add a convergence test when -it=n is used
-
Documentation
A FAQ is needed to explain some of the more subtle formatting issues,
and to give examples of different styles.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/bin/perltidy new/Perl-Tidy-20140711/bin/perltidy
--- old/Perl-Tidy-20130922/bin/perltidy 2013-09-22 16:43:35.000000000 +0200
+++ new/Perl-Tidy-20140711/bin/perltidy 2014-07-11 13:20:58.000000000 +0200
@@ -503,10 +503,10 @@
=item B<-io>, B<--indent-only>
-This flag is used to deactivate all formatting and line break changes
+This flag is used to deactivate all whitespace and line break changes
within non-blank lines of code.
When it is in effect, the only change to the script will be
-to the indentation and blank lines.
+to the indentation and to the number of blank lines.
And any flags controlling whitespace and newlines will be ignored. You
might want to use this if you are perfectly happy with your whitespace
and line breaks, and merely want perltidy to handle the indentation.
@@ -520,6 +520,11 @@
If you also want to keep your existing blank lines exactly
as they are, you can add B<--freeze-blank-lines>.
+With this option perltidy is still free to modify the indenting (and
+outdenting) of code and comments as it normally would. If you also want to
+prevent long comment lines from being outdented, you can add either B<-noll> or
+B<-l=0>.
+
=item B<-ole=s>, B<--output-line-ending=s>
where s=C<win>, C<dos>, C<unix>, or C<mac>. This flag tells perltidy
@@ -2577,8 +2582,8 @@
}
where B<newword> is the abbreviation, and B<opt1>, etc, are existing parameters
-I<or other abbreviations>. The main syntax requirement is that
-the new abbreviation must begin on a new line.
+I<or other abbreviations>. The main syntax requirement is that the new
+abbreviation along with its opening curly brace must begin on a new line.
Space before and after the curly braces is optional.
For a
specific example, the following line
@@ -3093,7 +3098,7 @@
=head1 VERSION
-This man page documents perltidy version 20130922.
+This man page documents perltidy version 20140711.
=head1 CREDITS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/debian/changelog new/Perl-Tidy-20140711/debian/changelog
--- old/Perl-Tidy-20130922/debian/changelog 2013-08-06 01:33:28.000000000 +0200
+++ new/Perl-Tidy-20140711/debian/changelog 1970-01-01 01:00:00.000000000 +0100
@@ -1,151 +0,0 @@
-perltidy (20130805-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Mon, 05 Aug 2013 06:59:59 -0700
-
-perltidy (20121207-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Wed, 17 Jul 2013 06:59:59 -0700
-
-perltidy (20121207-1) unstable; urgency=low
-
- * new upstream release
-
- -- steve hancock <perltidy(a)users.sourceforge.net> fri, 07 dec 2012 06:59:59 -0700
-
-perltidy (20120717-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Tue, 17 Jul 2012 06:59:59 -0700
-
-perltidy (20120714-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Sat, 14 Jul 2012 06:59:59 -0700
-
-perltidy (20120701-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Sun, 01 Jul 2012 06:59:59 -0700
-
-perltidy (20120619-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Tue, 19 Jun 2012 06:59:59 -0700
-
-perltidy (20101217-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Fri, 17 Dec 2010 06:59:59 -0700
-
-perltidy (20090616-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Tue, 16 Jun 2009 06:59:59 -0700
-
-perltidy (20071205-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Wed, 05 Dec 2007 09:54:33 -0800
-
-perltidy (20070801-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Tue, 31 Jul 2007 19:12:50 -0700
-
-perltidy (20070508-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Tue, 08 May 2007 13:04:28 -0700
-
-perltidy (20070504-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Fri, 04 May 2007 07:03:29 -0700
-
-perltidy (20070424-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Tue, 24 Apr 2007 16:40:09 -0700
-
-perltidy (20060719-1) unstable; urgency=low
-
- * New upstream release
-
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Wed, 19 Jul 2006 16:16:15 -0700
-
-perltidy (20060614-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Tue, 13 Jun 2006 18:59:02 -0700
-
-
-perltidy (20031021-1) unstable; urgency=low
-
- * New upstream release
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Tue, 21 Oct 2003 20:50:49 -0700
-
-perltidy (20030726-1) unstable; urgency=low
-
- * New upstream
- * Changed Build-Depends perl (>= 5.8.0-7) to perl (>=5.6.1-7)
-
- -- Steve Hancock <perltidy(a)users.sourceforge.net> Sat, 26 Jul 2003 07:18:13 -0700
-
-perltidy (20021130-1) unstable; urgency=low
-
- * New upstream
- * Redid all debian packaging from scratch
-
- -- Aubin Paul <aubin(a)punknews.org> Sat, 30 Nov 2002 23:34:34 -0500
-
-perltidy (20011020-1) unstable; urgency=low
-
- * New upstream release.
- * Don't install perl2web in the man dir, but only in the doc dir
- (closes: bug#113911, bug#103443, bug#101100).
-
- -- Paolo Molaro <lupus(a)debian.org> Sun, 11 Nov 2001 15:38:40 +0100
-
-perltidy (20010608-1) unstable; urgency=low
-
- * New upstream release.
- * New maintainer (Closes: bug#100250).
-
- -- Paolo Molaro <lupus(a)debian.org> Mon, 11 Jun 2001 11:54:54 +0200
-
-perltidy (20010328-1) unstable; urgency=low
-
- * New upstream release.
- * Corrected upstream email address in copyright file and manpages.
- * Fixed lintian warning because of incorrect upstream changelog name.
-
- -- Dr. Guenter Bechly <gbechly(a)debian.org> Fri, 30 Mar 2001 10:57:12 +0200
-
-perltidy (20010323-1) unstable; urgency=low
-
- * Initial Release; closes: #91927
- * Adjusted paths in Makefile and fixed $DESTDIR problems.
-
- -- Dr. Guenter Bechly <gbechly(a)debian.org> Tue, 27 Mar 2001 19:39:30 +0200
-
-Local variables:
-mode: debian-changelog
-End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/debian/control new/Perl-Tidy-20140711/debian/control
--- old/Perl-Tidy-20130922/debian/control 2002-12-02 03:53:39.000000000 +0100
+++ new/Perl-Tidy-20140711/debian/control 1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
-Source: perltidy
-Section: interpreters
-Priority: optional
-Maintainer: Steve Hancock <perltidy(a)users.sourceforge.net>
-Build-Depends: debhelper (>= 3.0.5), perl (>= 5.6.1-7)
-Standards-Version: 3.5.1
-
-Package: perltidy
-Architecture: all
-Depends: ${perl:Depends}
-Description: A Perl script indenter and reformatter
- Perltidy is a Perl script which indents and reformats Perl
- scripts to make them easier to read.
- .
- The formatting can be controlled with command line parameters.
- The default parameter settings approximately follow the
- suggestions in the Perl Style Guide.
- .
- If you write Perl scripts, or spend much time reading them,
- you will probably find it useful.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/debian/copyright new/Perl-Tidy-20140711/debian/copyright
--- old/Perl-Tidy-20130922/debian/copyright 2002-12-02 03:53:39.000000000 +0100
+++ new/Perl-Tidy-20140711/debian/copyright 1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-This is the debian package for the Perl::Tidy module.
-It was created by Aubin Paul <aubin(a)punknews.org> using dh-make-perl.
-
-This copyright info was automatically extracted from the perl module.
-It may not be accurate, so you better check the module sources
-if don't want to get into legal troubles.
-
-The upstream author is: Steve Hancock <perltidy(a)users.sourceforge.net>
-
-This program is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License Version 2, found on Debian systems
-in the file /usr/share/common-licenses/GPL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/debian/rules new/Perl-Tidy-20140711/debian/rules
--- old/Perl-Tidy-20130922/debian/rules 2002-12-02 03:53:39.000000000 +0100
+++ new/Perl-Tidy-20140711/debian/rules 1970-01-01 01:00:00.000000000 +0100
@@ -1,88 +0,0 @@
-#!/usr/bin/make -f
-#-*- makefile -*-
-# Made with the aid of dh_make, by Craig Small
-# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
-# Some lines taken from debmake, by Christoph Lameter.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-export DH_COMPAT=3
-
-PACKAGE=$(shell dh_listpackages)
-
-ifndef PERL
-PERL = /usr/bin/perl
-endif
-
-ifndef DESTDIR
-DESTDIR=..
-endif
-TMP =`pwd`/debian/$(PACKAGE)
-
-build: build-stamp
-build-stamp:
- dh_testdir
-
-
- # Add here commands to compile the package.
- $(PERL) Makefile.PL INSTALLDIRS=vendor
- $(MAKE) OPTIMIZE="-O2 -g -Wall"
-
- touch build-stamp
-
-clean:
- dh_testdir
- dh_testroot
- rm -f build-stamp
-
- # Add here commands to clean up after the build process.
- -$(MAKE) realclean
-
- dh_clean
-
-install:
- dh_testdir
- dh_testroot
- dh_clean -k
- dh_installdirs
-
- # Add here commands to install the package into debian/tmp.
- #$(MAKE) install DESTDIR=`pwd`/debian/tmp
- $(MAKE) install PREFIX=$(TMP)/usr
-
-
-# Build architecture-dependent files here.
-binary-arch: build install
-# We have nothing to do by default.
-
-# Build architecture-independent files here.
-binary-indep: build install
-# dh_testversion
- dh_testdir
- dh_testroot
- dh_installdocs BUGS TODO README examples/README docs/README
- dh_installexamples
- dh_installmenu
-# dh_installemacsen
-# dh_installinit
- dh_installcron
- dh_installman
-# dh_undocumented
- dh_installchangelogs CHANGES
- dh_link
- dh_strip
- dh_compress
- dh_fixperms
-# dh_makeshlibs
- dh_installdeb
- dh_perl
- dh_shlibdeps
- dh_gencontrol
- dh_md5sums
- dh_builddeb --destdir=$(DESTDIR)
-
-source diff:
- @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/docs/perltidy.1 new/Perl-Tidy-20140711/docs/perltidy.1
--- old/Perl-Tidy-20130922/docs/perltidy.1 2013-09-22 16:40:31.000000000 +0200
+++ new/Perl-Tidy-20140711/docs/perltidy.1 2014-07-11 13:16:50.000000000 +0200
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "PERLTIDY 1"
-.TH PERLTIDY 1 "2013-09-22" "perl v5.14.2" "User Contributed Perl Documentation"
+.TH PERLTIDY 1 "2014-07-11" "perl v5.14.2" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -617,10 +617,10 @@
exactly what flags were passed to perl.
.IP "\fB\-io\fR, \fB\-\-indent\-only\fR" 4
.IX Item "-io, --indent-only"
-This flag is used to deactivate all formatting and line break changes
+This flag is used to deactivate all whitespace and line break changes
within non-blank lines of code.
When it is in effect, the only change to the script will be
-to the indentation and blank lines.
+to the indentation and to the number of blank lines.
And any flags controlling whitespace and newlines will be ignored. You
might want to use this if you are perfectly happy with your whitespace
and line breaks, and merely want perltidy to handle the indentation.
@@ -633,6 +633,11 @@
.Sp
If you also want to keep your existing blank lines exactly
as they are, you can add \fB\-\-freeze\-blank\-lines\fR.
+.Sp
+With this option perltidy is still free to modify the indenting (and
+outdenting) of code and comments as it normally would. If you also want to
+prevent long comment lines from being outdented, you can add either \fB\-noll\fR or
+\&\fB\-l=0\fR.
.IP "\fB\-ole=s\fR, \fB\-\-output\-line\-ending=s\fR" 4
.IX Item "-ole=s, --output-line-ending=s"
where s=\f(CW\*(C`win\*(C'\fR, \f(CW\*(C`dos\*(C'\fR, \f(CW\*(C`unix\*(C'\fR, or \f(CW\*(C`mac\*(C'\fR. This flag tells perltidy
@@ -2675,8 +2680,8 @@
.Ve
.Sp
where \fBnewword\fR is the abbreviation, and \fBopt1\fR, etc, are existing parameters
-\&\fIor other abbreviations\fR. The main syntax requirement is that
-the new abbreviation must begin on a new line.
+\&\fIor other abbreviations\fR. The main syntax requirement is that the new
+abbreviation along with its opening curly brace must begin on a new line.
Space before and after the curly braces is optional.
For a
specific example, the following line
@@ -3183,7 +3188,7 @@
\&\fIperlstyle\fR\|(1), \fIPerl::Tidy\fR\|(3)
.SH "VERSION"
.IX Header "VERSION"
-This man page documents perltidy version 20130922.
+This man page documents perltidy version 20140711.
.SH "CREDITS"
.IX Header "CREDITS"
Michael Cartmell supplied code for adaptation to \s-1VMS\s0 and helped with
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/lib/Perl/Tidy.pm new/Perl-Tidy-20140711/lib/Perl/Tidy.pm
--- old/Perl-Tidy-20130922/lib/Perl/Tidy.pm 2013-09-22 16:42:59.000000000 +0200
+++ new/Perl-Tidy-20140711/lib/Perl/Tidy.pm 2014-07-11 13:15:31.000000000 +0200
@@ -3,7 +3,7 @@
#
# perltidy - a perl script indenter and formatter
#
-# Copyright (c) 2000-2013 by Steve Hancock
+# Copyright (c) 2000-2014 by Steve Hancock
# Distributed under the GPL license agreement; see file COPYING
#
# This program is free software; you can redistribute it and/or modify
@@ -76,9 +76,10 @@
use IO::File;
use File::Basename;
use File::Copy;
+use File::Temp qw(tempfile);
BEGIN {
- ( $VERSION = q($Id: Tidy.pm,v 1.74 2013/09/22 13:56:49 perltidy Exp $) ) =~ s/^.*\s+(\d+)\/(\d+)\/(\d+).*$/$1$2$3/; # all one line for MakeMaker
+ ( $VERSION = q($Id: Tidy.pm,v 1.74 2014/07/11 13:56:49 perltidy Exp $) ) =~ s/^.*\s+(\d+)\/(\d+)\/(\d+).*$/$1$2$3/; # all one line for MakeMaker
}
sub streamhandle {
@@ -235,36 +236,6 @@
return undef;
}
-sub make_temporary_filename {
-
- # Make a temporary filename.
- # The POSIX tmpnam() function has been unreliable for non-unix systems
- # (at least for the win32 systems that I've tested), so use a pre-defined
- # name for them. A disadvantage of this is that two perltidy
- # runs in the same working directory may conflict. However, the chance of
- # that is small and manageable by the user, especially on systems for which
- # the POSIX tmpnam function doesn't work.
- my $name = "perltidy.TMP";
- if ( $^O =~ /win32|dos/i || $^O eq 'VMS' || $^O eq 'MacOs' ) {
- return $name;
- }
- eval "use POSIX qw(tmpnam)";
- if ($@) { return $name }
- use IO::File;
-
- # just make a couple of tries before giving up and using the default
- for ( 0 .. 3 ) {
- my $tmpname = tmpnam();
- my $fh = IO::File->new( $tmpname, O_RDWR | O_CREAT | O_EXCL );
- if ($fh) {
- $fh->close();
- return ($tmpname);
- last;
- }
- }
- return ($name);
-}
-
# Here is a map of the flow of data from the input source to the output
# line sink:
#
@@ -488,16 +459,17 @@
#---------------------------------------------------------------
# get command line options
#---------------------------------------------------------------
- my (
- $rOpts, $config_file, $rraw_options,
- $saw_extrude, $saw_pbp, $roption_string,
- $rexpansion, $roption_category, $roption_range
- )
+ my ( $rOpts, $config_file, $rraw_options, $roption_string,
+ $rexpansion, $roption_category, $roption_range )
= process_command_line(
$perltidyrc_stream, $is_Windows, $Windows_type,
$rpending_complaint, $dump_options_type,
);
+ my $saw_extrude = ( grep m/^-extrude$/, @$rraw_options ) ? 1 : 0;
+ my $saw_pbp =
+ ( grep m/^-(pbp|perl-best-practices)$/, @$rraw_options ) ? 1 : 0;
+
#---------------------------------------------------------------
# Handle requests to dump information
#---------------------------------------------------------------
@@ -621,30 +593,32 @@
my $in_place_modify = $rOpts->{'backup-and-modify-in-place'}
&& $rOpts->{'format'} eq 'tidy';
- # turn off -b with warnings in case of conflicts with other options
+ # Turn off -b with warnings in case of conflicts with other options.
+ # NOTE: Do this silently, without warnings, if there is a source or
+ # destination stream, or standard output is used. This is because the -b
+ # flag may have been in a .perltidyrc file and warnings break
+ # Test::NoWarnings. See email discussion with Merijn Brand 26 Feb 2014.
if ($in_place_modify) {
if ( $rOpts->{'standard-output'} ) {
- my $msg = "Ignoring -b; you may not use -b and -st together";
- $msg .= " (-pbp contains -st; see manual)" if ($saw_pbp);
- Warn "$msg\n";
+## my $msg = "Ignoring -b; you may not use -b and -st together";
+## $msg .= " (-pbp contains -st; see manual)" if ($saw_pbp);
+## Warn "$msg\n";
$in_place_modify = 0;
}
if ($destination_stream) {
- Warn
-"Ignoring -b; you may not specify a destination stream and -b together\n";
+ ##Warn "Ignoring -b; you may not specify a destination stream and -b together\n";
$in_place_modify = 0;
}
if ( ref($source_stream) ) {
- Warn
-"Ignoring -b; you may not specify a source array and -b together\n";
+ ##Warn "Ignoring -b; you may not specify a source array and -b together\n";
$in_place_modify = 0;
}
if ( $rOpts->{'outfile'} ) {
- Warn "Ignoring -b; you may not use -b and -o together\n";
+ ##Warn "Ignoring -b; you may not use -b and -o together\n";
$in_place_modify = 0;
}
if ( defined( $rOpts->{'output-path'} ) ) {
- Warn "Ignoring -b; you may not use -b and -opath together\n";
+ ##Warn "Ignoring -b; you may not use -b and -opath together\n";
$in_place_modify = 0;
}
}
@@ -709,6 +683,13 @@
#---------------------------------------------------------------
if ($source_stream) {
$fileroot = "perltidy";
+
+ # If the source is from an array or string, then .LOG output
+ # is only possible if a logfile stream is specified. This prevents
+ # unexpected perltidy.LOG files.
+ if ( !defined($logfile_stream) ) {
+ $logfile_stream = Perl::Tidy::DevNull->new();
+ }
}
elsif ( $input_file eq '-' ) { # '-' indicates input from STDIN
$fileroot = "perltidy"; # root name to use for .ERR, .LOG, etc
@@ -1324,12 +1305,7 @@
my ( $fh_stream, $fh_name ) =
Perl::Tidy::streamhandle( $stream, 'r' );
if ($fh_stream) {
- my ( $fout, $tmpnam );
-
- # TODO: fix the tmpnam routine to return an open filehandle
- $tmpnam = Perl::Tidy::make_temporary_filename();
- $fout = IO::File->new( $tmpnam, 'w' );
-
+ my ( $fout, $tmpnam ) = tempfile();
if ($fout) {
$fname = $tmpnam;
$is_tmpfile = 1;
@@ -2189,8 +2165,6 @@
my @raw_options = ();
my $config_file = "";
my $saw_ignore_profile = 0;
- my $saw_extrude = 0;
- my $saw_pbp = 0;
my $saw_dump_profile = 0;
my $i;
@@ -2239,12 +2213,6 @@
elsif ( $i =~ /^-(pro|profile)=?$/ ) {
Die "usage: -pro=filename or --profile=filename, no spaces\n";
}
- elsif ( $i =~ /^-extrude$/ ) {
- $saw_extrude = 1;
- }
- elsif ( $i =~ /^-(pbp|perl-best-practices)$/ ) {
- $saw_pbp = 1;
- }
elsif ( $i =~ /^-(help|h|HELP|H|\?)$/ ) {
usage();
Exit 0;
@@ -2324,10 +2292,9 @@
if ($fh_config) {
- my ( $rconfig_list, $death_message, $_saw_pbp ) =
+ my ( $rconfig_list, $death_message ) =
read_config_file( $fh_config, $config_file, $rexpansion );
Die $death_message if ($death_message);
- $saw_pbp ||= $_saw_pbp;
# process any .perltidyrc parameters right now so we can
# localize errors
@@ -2405,12 +2372,9 @@
Die "Error on command line; for help try 'perltidy -h'\n";
}
- return (
- \%Opts, $config_file, \@raw_options,
- $saw_extrude, $saw_pbp, $roption_string,
- $rexpansion, $roption_category, $roption_range
- );
-} # end of process_command_line
+ return ( \%Opts, $config_file, \@raw_options, $roption_string,
+ $rexpansion, $roption_category, $roption_range );
+} # end of _process_command_line
sub check_options {
@@ -2516,23 +2480,11 @@
}
}
- # see if user set a non-negative logfile-gap
+ # setting a non-negative logfile gap causes logfile to be saved
if ( defined( $rOpts->{'logfile-gap'} ) && $rOpts->{'logfile-gap'} >= 0 ) {
-
- # a zero gap will be taken as a 1
- if ( $rOpts->{'logfile-gap'} == 0 ) {
- $rOpts->{'logfile-gap'} = 1;
- }
-
- # setting a non-negative logfile gap causes logfile to be saved
$rOpts->{'logfile'} = 1;
}
- # not setting logfile gap, or setting it negative, causes default of 50
- else {
- $rOpts->{'logfile-gap'} = 50;
- }
-
# set short-cut flag when only indentation is to be done.
# Note that the user may or may not have already set the
# indent-only flag.
@@ -3042,13 +2994,13 @@
my ( $fh, $config_file, $rexpansion ) = @_;
my @config_list = ();
- my $saw_pbp;
# file is bad if non-empty $death_message is returned
my $death_message = "";
my $name = undef;
my $line_no;
+ my $opening_brace_line;
while ( my $line = $fh->getline() ) {
$line_no++;
chomp $line;
@@ -3059,69 +3011,86 @@
$line =~ s/^\s*(.*?)\s*$/$1/; # trim both ends
next unless $line;
- # look for something of the general form
- # newname { body }
- # or just
- # body
-
my $body = $line;
- my ($newname);
- if ( $line =~ /^((\w+)\s*\{)(.*)\}$/ ) {
- ( $newname, $body ) = ( $2, $3, );
- }
- if ($body) {
+ my $newname;
- if ( !$saw_pbp && $body =~ /-(pbp|perl-best-practices)/ ) {
- $saw_pbp = 1;
- }
+ # Look for complete or partial abbreviation definition of the form
+ # name { body } or name { or name { body
+ # See rules in perltidy's perldoc page
+ # Section: Other Controls - Creating a new abbreviation
+ if ( $line =~ /^((\w+)\s*\{)(.*)?$/ ) {
+ my $oldname = $name;
+ ( $name, $body ) = ( $2, $3 );
+
+ # Cannot start new abbreviation unless old abbreviation is complete
+ last if ($opening_brace_line);
+
+ $opening_brace_line = $line_no unless ( $body && $body =~ s/\}$// );
# handle a new alias definition
- if ($newname) {
- if ($name) {
- $death_message =
-"No '}' seen after $name and before $newname in config file $config_file line $.\n";
- last;
- }
- $name = $newname;
+ if ( ${$rexpansion}{$name} ) {
+ local $" = ')(';
+ my @names = sort keys %$rexpansion;
+ $death_message =
+ "Here is a list of all installed aliases\n(@names)\n"
+ . "Attempting to redefine alias ($name) in config file $config_file line $.\n";
+ last;
+ }
+ ${$rexpansion}{$name} = [];
+ }
- if ( ${$rexpansion}{$name} ) {
- local $" = ')(';
- my @names = sort keys %$rexpansion;
- $death_message =
- "Here is a list of all installed aliases\n(@names)\n"
- . "Attempting to redefine alias ($name) in config file $config_file line $.\n";
- last;
- }
- ${$rexpansion}{$name} = [];
+ # leading opening braces not allowed
+ elsif ( $line =~ /^{/ ) {
+ $opening_brace_line = undef;
+ $death_message =
+ "Unexpected '{' at line $line_no in config file '$config_file'\n";
+ last;
+ }
+
+ # Look for abbreviation closing: body } or }
+ elsif ( $line =~ /^(.*)?\}$/ ) {
+ $body = $1;
+ if ($opening_brace_line) {
+ $opening_brace_line = undef;
+ }
+ else {
+ $death_message =
+"Unexpected '}' at line $line_no in config file '$config_file'\n";
+ last;
}
+ }
- # now do the body
- if ($body) {
+ # Now store any parameters
+ if ($body) {
- my ( $rbody_parts, $msg ) = parse_args($body);
- if ($msg) {
- $death_message = <<EOM;
+ my ( $rbody_parts, $msg ) = parse_args($body);
+ if ($msg) {
+ $death_message = <<EOM;
Error reading file '$config_file' at line number $line_no.
$msg
Please fix this line or use -npro to avoid reading this file
EOM
- last;
- }
+ last;
+ }
- if ($name) {
+ if ($name) {
- # remove leading dashes if this is an alias
- foreach (@$rbody_parts) { s/^\-+//; }
- push @{ ${$rexpansion}{$name} }, @$rbody_parts;
- }
- else {
- push( @config_list, @$rbody_parts );
- }
+ # remove leading dashes if this is an alias
+ foreach (@$rbody_parts) { s/^\-+//; }
+ push @{ ${$rexpansion}{$name} }, @$rbody_parts;
+ }
+ else {
+ push( @config_list, @$rbody_parts );
}
}
}
+
+ if ($opening_brace_line) {
+ $death_message =
+"Didn't see a '}' to match the '{' at line $opening_brace_line in config file '$config_file'\n";
+ }
eval { $fh->close() };
- return ( \@config_list, $death_message, $saw_pbp );
+ return ( \@config_list, $death_message );
}
sub strip_comment {
@@ -3337,7 +3306,7 @@
print STDOUT <<"EOM";
This is perltidy, v$VERSION
-Copyright 2000-2013, Steve Hancock
+Copyright 2000-2014, Steve Hancock
Perltidy is free software and may be copied under the terms of the GNU
General Public License, which is included in the distribution files.
@@ -4114,8 +4083,15 @@
if ( -e $warning_file ) { unlink($warning_file) }
}
+ my $logfile_gap =
+ defined( $rOpts->{'logfile-gap'} )
+ ? $rOpts->{'logfile-gap'}
+ : 50;
+ if ( $logfile_gap == 0 ) { $logfile_gap = 1 }
+
bless {
_log_file => $log_file,
+ _logfile_gap => $logfile_gap,
_rOpts => $rOpts,
_fh_warnings => $fh_warnings,
_last_input_line_written => 0,
@@ -4194,7 +4170,7 @@
if (
(
( $input_line_number - $last_input_line_written ) >=
- $rOpts->{'logfile-gap'}
+ $self->{_logfile_gap}
)
|| ( $input_line =~ /^\s*(sub|package)\s+(\w+)/ )
)
@@ -4387,6 +4363,7 @@
if ( $self->get_use_prefix() > 0 ) {
my $input_line_number =
Perl::Tidy::Tokenizer::get_input_line_number();
+ if ( !defined($input_line_number) ) { $input_line_number = -1 }
$fh_warnings->print("$input_line_number:\t@_");
$self->write_logfile_entry("WARNING: @_");
}
@@ -4509,7 +4486,7 @@
}
if ( $self->{_saw_brace_error}
- && ( $rOpts->{'logfile-gap'} > 1 || !$save_logfile ) )
+ && ( $self->{_logfile_gap} > 1 || !$save_logfile ) )
{
$self->warning("To save a full .LOG file rerun with -g\n");
}
@@ -5157,16 +5134,7 @@
}
# Pod::Html requires a real temporary filename
- # If we are making a frame, we have a name available
- # Otherwise, we have to fine one
- my $tmpfile;
- if ( $rOpts->{'frames'} ) {
- $tmpfile = $self->{_toc_filename};
- }
- else {
- $tmpfile = Perl::Tidy::make_temporary_filename();
- }
- my $fh_tmp = IO::File->new( $tmpfile, 'w' );
+ my ( $fh_tmp, $tmpfile ) = tempfile();
unless ($fh_tmp) {
Perl::Tidy::Warn
"unable to open temporary file $tmpfile; cannot use pod2html\n";
@@ -6146,6 +6114,7 @@
%is_assignment
%is_chain_operator
%is_if_unless_and_or_last_next_redo_return
+ %ok_to_add_semicolon_for_block_type
@has_broken_sublist
@dont_align
@@ -6301,6 +6270,20 @@
unless while until for foreach given when default);
@is_block_without_semicolon{@_} = (1) x scalar(@_);
+ # We will allow semicolons to be added within these block types
+ # as well as sub and package blocks.
+ # NOTES:
+ # 1. Note that these keywords are omitted:
+ # switch case given when default sort map grep
+ # 2. It is also ok to add for sub and package blocks and a labeled block
+ # 3. But not okay for other perltidy types including:
+ # { } ; G t
+ # 4. Test files: blktype.t, blktype1.t, semicolon.t
+ @_ =
+ qw( BEGIN END CHECK INIT AUTOLOAD DESTROY UNITCHECK continue if elsif else
+ unless do while until eval for foreach );
+ @ok_to_add_semicolon_for_block_type{@_} = (1) x scalar(@_);
+
# 'L' is token for opening { at hash key
@_ = qw" L { ( [ ";
@is_opening_type{@_} = (1) x scalar(@_);
@@ -9434,15 +9417,23 @@
# *VERSION = \'1.01';
# ( $VERSION ) = '$Revision: 1.74 $ ' =~ /\$Revision:\s+([^\s]+)/;
# We will pass such a line straight through without breaking
- # it unless -npvl is used
+ # it unless -npvl is used.
- my $is_VERSION_statement = 0;
+ # Patch for problem reported in RT #81866, where files
+ # had been flattened into a single line and couldn't be
+ # tidied without -npvl. There are two parts to this patch:
+ # First, it is not done for a really long line (80 tokens for now).
+ # Second, we will only allow up to one semicolon
+ # before the VERSION. We need to allow at least one semicolon
+ # for statements like this:
+ # require Exporter; our $VERSION = $Exporter::VERSION;
+ # where both statements must be on a single line for MakeMaker
- if (
- !$saw_VERSION_in_this_file
- && $input_line =~ /VERSION/ # quick check to reject most lines
- && $input_line =~ /([\$*])(([\w\:\']*)\bVERSION)\b.*\=/
- )
+ my $is_VERSION_statement = 0;
+ if ( !$saw_VERSION_in_this_file
+ && $jmax < 80
+ && $input_line =~
+ /^[^;]*;?[^;]*([\$*])(([\w\:\']*)\bVERSION)\b.*\=/ )
{
$saw_VERSION_in_this_file = 1;
$is_VERSION_statement = 1;
@@ -9839,24 +9830,14 @@
# and we don't have one
&& ( $last_nonblank_type ne ';' )
- # patch until some block type issues are fixed:
- # Do not add semi-colon for block types '{',
- # '}', and ';' because we cannot be sure yet
- # that this is a block and not an anonymous
- # hash (blktype.t, blktype1.t)
- && ( $block_type !~ /^[\{\};]$/ )
-
- # patch: and do not add semi-colons for recently
- # added block types (see tmp/semicolon.t)
- && ( $block_type !~
- /^(switch|case|given|when|default)$/ )
-
- # it seems best not to add semicolons in these
- # special block types: sort|map|grep
- && ( !$is_sort_map_grep{$block_type} )
-
# and we are allowed to do so.
&& $rOpts->{'add-semicolons'}
+
+ # and we are allowed to for this block type
+ && ( $ok_to_add_semicolon_for_block_type{$block_type}
+ || $block_type =~ /^(sub|package)/
+ || $block_type =~ /^\w+\:$/ )
+
)
{
@@ -12955,6 +12936,30 @@
{
$adjust_indentation = 1;
}
+
+ # Patch for RT #96101, in which closing brace of anonymous subs
+ # was not outdented. We should look ahead and see if there is
+ # a level decrease at the next token (i.e., a closing token),
+ # but right now we do not have that information. For now
+ # we see if we are in a list, and this works well.
+ # See test files 'sub*.t' for good test cases.
+ elsif ($block_type_to_go[$ibeg] eq 'sub'
+ && $container_environment_to_go[$i_terminal] eq 'LIST'
+ && !$rOpts->{'indent-closing-brace'} )
+ {
+ (
+ $opening_indentation, $opening_offset,
+ $is_leading, $opening_exists
+ )
+ = get_opening_indentation( $ibeg, $ri_first, $ri_last,
+ $rindentation_list );
+ my $indentation = $leading_spaces_to_go[$ibeg];
+ if ( defined($opening_indentation)
+ && $indentation > $opening_indentation )
+ {
+ $adjust_indentation = 1;
+ }
+ }
}
# YVES patch 1 of 2:
@@ -15402,9 +15407,7 @@
# 3 - ignore =>
# 4 - always open up if vt=0
# 5 - stable: even for one line blocks if vt=0
- if (
- !$is_long_term
- ##BUBBA: TYPO && $tokens_to_go[$i_opening] =~ /^[\(\{\]L]$/
+ if ( !$is_long_term
&& $tokens_to_go[$i_opening] =~ /^[\(\{\[]$/
&& $index_before_arrow[ $depth + 1 ] > 0
&& !$opening_vertical_tightness{ $tokens_to_go[$i_opening] }
@@ -15826,7 +15829,18 @@
# don't break pointer calls, such as the following:
# File::Spec->curdir => 1,
# (This is tokenized as adjacent 'w' tokens)
- if ( $tokens_to_go[ $ibreak + 1 ] !~ /^->/ ) {
+ ##if ( $tokens_to_go[ $ibreak + 1 ] !~ /^->/ ) {
+
+ # And don't break before a comma, as in the following:
+ # ( LONGER_THAN,=> 1,
+ # EIGHTY_CHARACTERS,=> 2,
+ # CAUSES_FORMATTING,=> 3,
+ # LIKE_THIS,=> 4,
+ # );
+ # This example is for -tso but should be general rule
+ if ( $tokens_to_go[ $ibreak + 1 ] ne '->'
+ && $tokens_to_go[ $ibreak + 1 ] ne ',' )
+ {
set_forced_breakpoint($ibreak);
}
} ## end if ( $types_to_go[$ibreak...])
@@ -17884,7 +17898,7 @@
&& ( $iend_2 - $ibeg_2 <= 7 )
)
);
-##BUBBA: RT #81854
+##X: RT #81854
$forced_breakpoint_to_go[$iend_1] = 0
unless $old_breakpoint_to_go[$iend_1];
}
@@ -22025,8 +22039,38 @@
# Start storing lines when we see a line with multiple stacked opening
# tokens.
- if ( $args[0] =~ /[\{\(\[]\s*[\{\(\[]$/ ) {
+ # patch for RT #94354, requested by Colin Williams
+ if ( $seqno_string =~ /^\d+(\:+\d+)+$/ && $args[0] !~ /^[\}\)\]\:\?]/ )
+ {
+
+ # This test is efficient but a little subtle: The first test says
+ # that we have multiple sequence numbers and hence multiple opening
+ # or closing tokens in this line. The second part of the test
+ # rejects stacked closing and ternary tokens. So if we get here
+ # then we should have stacked unbalanced opening tokens.
+
+ # Here is a complex example:
+
+ # Foo($Bar[0], { # (side comment)
+ # baz => 1,
+ # });
+
+ # The first line has sequence 6::4. It does not begin with
+ # a closing token or ternary, so it passes the test and must be
+ # stacked opening tokens.
+
+ # The last line has sequence 4:6 but is a stack of closing tokens,
+ # so it gets rejected.
+
+ # Note that the sequence number of an opening token for a qw quote
+ # is a negative number and will be rejected.
+ # For example, for the following line:
+ # skip_symbols([qw(
+ # $seqno_string='10:5:-1'. It would be okay to accept it but
+ # I decided not to do this after testing.
+
$valign_buffer_filling = $seqno_string;
+
}
}
}
@@ -24226,6 +24270,7 @@
';' => sub {
$context = UNKNOWN_CONTEXT;
$statement_type = '';
+ $want_paren = "";
# /^(for|foreach)$/
if ( $is_for_foreach{ $paren_type[$paren_depth] } )
@@ -24393,12 +24438,6 @@
$block_type = code_block_type( $i_tok, $rtokens, $rtoken_type,
$max_token_index );
- # remember a preceding smartmatch operator
- ## SMARTMATCH
- ##if ( $last_nonblank_type eq '~~' ) {
- ## $block_type = $last_nonblank_type;
- ##}
-
# patch to promote bareword type to function taking block
if ( $block_type
&& $last_nonblank_type eq 'w'
@@ -24419,6 +24458,7 @@
}
}
}
+
$brace_type[ ++$brace_depth ] = $block_type;
$brace_package[$brace_depth] = $current_package;
$brace_structural_type[$brace_depth] = $type;
@@ -24446,8 +24486,6 @@
# propagate type information for 'do' and 'eval' blocks, and also
# for smartmatch operator. This is necessary to enable us to know
# if an operator or term is expected next.
- ## SMARTMATCH
- ##if ( $is_block_operator{$block_type} || $block_type eq '~~' ) {
if ( $is_block_operator{$block_type} ) {
$tok = $block_type;
}
@@ -25554,15 +25592,32 @@
# various quote operators
elsif ( $is_q_qq_qw_qx_qr_s_y_tr_m{$tok} ) {
+##NICOL PATCH
if ( $expecting == OPERATOR ) {
- # patch for paren-less for/foreach glitch, part 1
- # perl will accept this construct as valid:
+ # Be careful not to call an error for a qw quote
+ # where a parenthesized list is allowed. For example,
+ # it could also be a for/foreach construct such as
#
# foreach my $key qw\Uno Due Tres Quadro\ {
# print "Set $key\n";
# }
- unless ( $tok eq 'qw' && $is_for_foreach{$want_paren} )
+ #
+
+ # Or it could be a function call.
+ # NOTE: Braces in something like &{ xxx } are not
+ # marked as a block, we might have a method call.
+ # &method(...), $method->(..), &{method}(...),
+ # $ref[2](list) is ok & short for $ref[2]->(list)
+ #
+ # See notes in 'sub code_block_type' and
+ # 'sub is_non_structural_brace'
+
+ unless (
+ $tok eq 'qw'
+ && ( $last_nonblank_token =~ /^([\]\}\&]|\-\>)/
+ || $is_for_foreach{$want_paren} )
+ )
{
error_if_expecting_OPERATOR();
}
@@ -26819,9 +26874,10 @@
# NOTE: braces after type characters start code blocks, but for
# simplicity these are not identified as such. See also
# sub is_non_structural_brace.
- # elsif ( $last_nonblank_type eq 't' ) {
- # return $last_nonblank_token;
- # }
+
+## elsif ( $last_nonblank_type eq 't' ) {
+## return $last_nonblank_token;
+## }
# brace after label:
elsif ( $last_nonblank_type eq 'J' ) {
@@ -26870,6 +26926,27 @@
$max_token_index );
}
+ # Patch for bug # RT #94338 reported by Daniel Trizen
+ # for-loop in a parenthesized block-map triggering an error message:
+ # map( { foreach my $item ( '0', '1' ) { print $item} } qw(a b c) );
+ # Check for a code block within a parenthesized function call
+ elsif ( $last_nonblank_token eq '(' ) {
+ my $paren_type = $paren_type[$paren_depth];
+ if ( $paren_type && $paren_type =~ /^(map|grep|sort)$/ ) {
+
+ # We will mark this as a code block but use type 't' instead
+ # of the name of the contining function. This will allow for
+ # correct parsing but will usually produce better formatting.
+ # Braces with block type 't' are not broken open automatically
+ # in the formatter as are other code block types, and this usually
+ # works best.
+ return 't'; # (Not $paren_type)
+ }
+ else {
+ return "";
+ }
+ }
+
# anything else must be anonymous hash reference
else {
return "";
@@ -26880,6 +26957,7 @@
# USES GLOBAL VARIABLES: $last_nonblank_token
my ( $i, $rtokens, $rtoken_type, $max_token_index ) = @_;
+
my ( $next_nonblank_token, $i_next ) =
find_next_nonblank_token( $i, $rtokens, $max_token_index );
@@ -26917,8 +26995,14 @@
# We are only going to look ahead one more (nonblank/comment) line.
# Strange formatting could cause a bad guess, but that's unlikely.
- my @pre_types = @$rtoken_type[ $i + 1 .. $max_token_index ];
- my @pre_tokens = @$rtokens[ $i + 1 .. $max_token_index ];
+ my @pre_types;
+ my @pre_tokens;
+
+ # Ignore the rest of this line if it is a side comment
+ if ( $next_nonblank_token ne '#' ) {
+ @pre_types = @$rtoken_type[ $i + 1 .. $max_token_index ];
+ @pre_tokens = @$rtokens[ $i + 1 .. $max_token_index ];
+ }
my ( $rpre_tokens, $rpre_types ) =
peek_ahead_for_n_nonblank_pre_tokens(20); # 20 is arbitrary but
# generous, and prevents
@@ -26931,6 +27015,7 @@
# put a sentinel token to simplify stopping the search
push @pre_types, '}';
+ push @pre_types, '}';
my $jbeg = 0;
$jbeg = 1 if $pre_types[0] eq 'b';
@@ -26957,9 +27042,7 @@
$j++;
}
elsif ( $pre_types[$j] eq 'w' ) {
- unless ( $is_keyword{ $pre_tokens[$j] } ) {
- $j++;
- }
+ $j++;
}
elsif ( $pre_types[$j] eq '-' && $pre_types[ ++$j ] eq 'w' ) {
$j++;
@@ -26968,9 +27051,18 @@
$j++ if $pre_types[$j] eq 'b';
- # it's a hash ref if a comma or => follow next
- if ( $pre_types[$j] eq ','
- || ( $pre_types[$j] eq '=' && $pre_types[ ++$j ] eq '>' ) )
+ # Patched for RT #95708
+ if (
+
+ # it is a comma which is not a pattern delimeter except for qw
+ (
+ $pre_types[$j] eq ','
+ && $pre_tokens[$jbeg] !~ /^(s|m|y|tr|qr|q|qq|qx)$/
+ )
+
+ # or a =>
+ || ( $pre_types[$j] eq '=' && $pre_types[ ++$j ] eq '>' )
+ )
{
$code_block_type = "";
}
@@ -27038,7 +27130,8 @@
# NOTE: braces after type characters start code blocks, but for
# simplicity these are not identified as such. See also
# sub code_block_type
- # if ($last_nonblank_type eq 't') {return 0}
+
+ ##if ($last_nonblank_type eq 't') {return 0}
# otherwise, it is non-structural if it is decorated
# by type information.
@@ -28058,6 +28151,11 @@
last;
}
}
+
+ # POSTDEFREF ->@ ->% ->& ->*
+ elsif ( ( $tok =~ /^[\@\%\&\*]$/ ) && $identifier =~ /\-\>$/ ) {
+ $identifier .= $tok;
+ }
elsif ( $tok =~ /^[A-Za-z_]/ ) { # alphanumeric ..
$saw_alpha = 1;
$id_scan_state = ':'; # now need ::
@@ -28085,7 +28183,9 @@
$id_scan_state = 'A';
$identifier .= $tok;
}
- elsif ( ( $tok eq '#' ) && ( $identifier eq '$' ) ) { # $#array
+
+ # $# and POSTDEFREF ->$#
+ elsif ( ( $tok eq '#' ) && ( $identifier =~ /\$$/ ) ) { # $#array
$identifier .= $tok; # keep same state, a $ could follow
}
elsif ( $tok eq '{' ) {
@@ -28180,6 +28280,11 @@
$identifier .= $tok;
}
+ # POSTDEFREF: Postfix reference ->$* ->%* ->@* ->** ->&* ->$#*
+ elsif ( $tok eq '*' && $identifier =~ /([\@\%\$\*\&]|\$\#)$/ ) {
+ $identifier .= $tok;
+ }
+
elsif ( $identifier eq '$#' ) {
if ( $tok eq '{' ) { $type = 'i'; $i = $i_save }
@@ -30096,4 +30201,3 @@
}
1;
__END__
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Perl-Tidy-20130922/lib/Perl/Tidy.pod new/Perl-Tidy-20140711/lib/Perl/Tidy.pod
--- old/Perl-Tidy-20130922/lib/Perl/Tidy.pod 2013-09-22 16:35:15.000000000 +0200
+++ new/Perl-Tidy-20140711/lib/Perl/Tidy.pod 2014-07-11 13:12:22.000000000 +0200
@@ -111,11 +111,10 @@
=item logfile
-The B<logfile> parameter allows the calling program to capture
-the stream that would otherwise go to a .LOG file. This
-stream is only created if requested with a B<-g> parameter. It
-contains detailed diagnostic information about a script
-which may be useful for debugging.
+The B<logfile> parameter allows the calling program to capture the log stream.
+This stream is only created if requested with a B<-g> parameter. It contains
+detailed diagnostic information about a script which may be useful for
+debugging.
=item argv
@@ -416,7 +415,7 @@
=head1 VERSION
-This man page documents Perl::Tidy version 20130922.
+This man page documents Perl::Tidy version 20140711.
=head1 LICENSE
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-JSON-RPC for openSUSE:Factory checked in at 2014-09-17 17:25:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-JSON-RPC (Old)
and /work/SRC/openSUSE:Factory/.perl-JSON-RPC.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-JSON-RPC"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-JSON-RPC/perl-JSON-RPC.changes 2013-06-21 13:36:55.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-JSON-RPC.new/perl-JSON-RPC.changes 2014-09-17 17:26:08.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Sep 15 15:44:36 UTC 2014 - coolo(a)suse.com
+
+- updated to 1.04
+ - Work with notifications, which are procedures without an id
+ (Kirill Bogdanov)
+
+-------------------------------------------------------------------
Old:
----
JSON-RPC-1.03.tar.gz
New:
----
JSON-RPC-1.04.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-JSON-RPC.spec ++++++
--- /var/tmp/diff_new_pack.53NBJg/_old 2014-09-17 17:26:09.000000000 +0200
+++ /var/tmp/diff_new_pack.53NBJg/_new 2014-09-17 17:26:09.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-JSON-RPC
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: perl-JSON-RPC
-Version: 1.03
+Version: 1.04
Release: 0
%define cpan_name JSON-RPC
Summary: JSON RPC 2.0 Server Implementation
@@ -29,35 +29,20 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
+BuildRequires: perl(CPAN::Meta)
+BuildRequires: perl(CPAN::Meta::Prereqs)
BuildRequires: perl(Class::Accessor::Lite)
+BuildRequires: perl(ExtUtils::MakeMaker) >= 6.36
BuildRequires: perl(HTTP::Request)
BuildRequires: perl(HTTP::Response)
BuildRequires: perl(JSON)
BuildRequires: perl(LWP::UserAgent)
+BuildRequires: perl(Module::Build) >= 0.38
BuildRequires: perl(Plack)
BuildRequires: perl(Plack::Request)
BuildRequires: perl(Plack::Test)
BuildRequires: perl(Router::Simple)
BuildRequires: perl(parent)
-#BuildRequires: perl(Apache2::Const)
-#BuildRequires: perl(Apache2::RequestIO)
-#BuildRequires: perl(Apache2::RequestRec)
-#BuildRequires: perl(Apache2::RequestUtil)
-#BuildRequires: perl(APR::Table)
-#BuildRequires: perl(JSON::RPC)
-#BuildRequires: perl(JSON::RPC::Constants)
-#BuildRequires: perl(JSON::RPC::Legacy::Client)
-#BuildRequires: perl(JSON::RPC::Legacy::Procedure)
-#BuildRequires: perl(JSON::RPC::Legacy::ReturnObject)
-#BuildRequires: perl(JSON::RPC::Legacy::Server)
-#BuildRequires: perl(JSON::RPC::Parser)
-#BuildRequires: perl(JSON::RPC::Procedure)
-#BuildRequires: perl(LWP::Simple)
-#BuildRequires: perl(Module::Build)
-#BuildRequires: perl(Module::Install::Base)
-#BuildRequires: perl(Parse::CPAN::Meta)
-#BuildRequires: perl(Try::Tiny)
-#BuildRequires: perl(YAML::Tiny)
Requires: perl(Class::Accessor::Lite)
Requires: perl(HTTP::Request)
Requires: perl(HTTP::Response)
@@ -70,7 +55,7 @@
%{perl_requires}
%description
-JSON::RPC is a set of modules that implment JSON RPC 2.0 protocol.
+JSON::RPC is a set of modules that implement JSON RPC 2.0 protocol.
If you are using old JSON::RPC code (up to 0.96), DO NOT EXPECT
YOUR CODE TO WORK WITH THIS VERSION. THIS VERSION IS
@@ -80,19 +65,18 @@
%setup -q -n %{cpan_name}-%{version}
%build
-%{__perl} Makefile.PL INSTALLDIRS=vendor
-%{__make} %{?_smp_mflags}
+%{__perl} Build.PL installdirs=vendor
+./Build build flags=%{?_smp_mflags}
%check
-%{__make} test
+./Build test
%install
-%perl_make_install
-%perl_process_packlist
+./Build install destdir=%{buildroot} create_packlist=0
%perl_gen_filelist
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes README
+%doc Changes cpanfile LICENSE Makefile README.md
%changelog
++++++ JSON-RPC-1.03.tar.gz -> JSON-RPC-1.04.tar.gz ++++++
++++ 4766 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Pod-Spell for openSUSE:Factory checked in at 2014-09-17 17:25:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Pod-Spell (Old)
and /work/SRC/openSUSE:Factory/.perl-Pod-Spell.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Pod-Spell"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Pod-Spell/perl-Pod-Spell.changes 2013-11-26 19:30:37.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Pod-Spell.new/perl-Pod-Spell.changes 2014-09-17 17:26:07.000000000 +0200
@@ -1,0 +2,9 @@
+Mon Sep 15 15:44:37 UTC 2014 - coolo(a)suse.com
+
+- updated to 1.15
+ - Convert to strict mode of File::ShareDir::ProjectDistDir (KENTNL)
+ - change to use Path::Tiny->lines_utf8
+ - Discontinue use of File::Slurp, use Path::Tiny->lines instead
+ GH #15 ( Ether )
+
+-------------------------------------------------------------------
Old:
----
Pod-Spell-1.13.tar.gz
New:
----
Pod-Spell-1.15.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Pod-Spell.spec ++++++
--- /var/tmp/diff_new_pack.f8QSLx/_old 2014-09-17 17:26:08.000000000 +0200
+++ /var/tmp/diff_new_pack.f8QSLx/_new 2014-09-17 17:26:08.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Pod-Spell
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: perl-Pod-Spell
-Version: 1.13
+Version: 1.15
Release: 0
%define cpan_name Pod-Spell
Summary: a formatter for spellchecking Pod
@@ -31,19 +31,13 @@
BuildRequires: perl-macros
BuildRequires: perl(Class::Tiny)
BuildRequires: perl(File::ShareDir::Install) >= 0.03
-BuildRequires: perl(File::ShareDir::ProjectDistDir)
-BuildRequires: perl(File::Slurp)
+BuildRequires: perl(File::ShareDir::ProjectDistDir) >= 1.000
BuildRequires: perl(Lingua::EN::Inflect)
BuildRequires: perl(Pod::Escapes)
BuildRequires: perl(Test::Deep)
-BuildRequires: perl(Test::More) >= 0.88
-#BuildRequires: perl(Pod::Spell)
-#BuildRequires: perl(Pod::Wordlist)
-#BuildRequires: perl(Test::EOL)
-#BuildRequires: perl(Test::Spelling) >= 0.12
+BuildRequires: perl(version)
Requires: perl(Class::Tiny)
-Requires: perl(File::ShareDir::ProjectDistDir)
-Requires: perl(File::Slurp)
+Requires: perl(File::ShareDir::ProjectDistDir) >= 1.000
Requires: perl(Lingua::EN::Inflect)
Requires: perl(Pod::Escapes)
%{perl_requires}
@@ -86,6 +80,6 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes CONTRIBUTING LICENSE perlcritic.rc README share
+%doc Changes CONTRIBUTING LICENSE perlcritic.rc README
%changelog
++++++ Pod-Spell-1.13.tar.gz -> Pod-Spell-1.15.tar.gz ++++++
++++ 3349 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Stream-Buffered for openSUSE:Factory checked in at 2014-09-17 17:25:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Stream-Buffered (Old)
and /work/SRC/openSUSE:Factory/.perl-Stream-Buffered.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Stream-Buffered"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Stream-Buffered/perl-Stream-Buffered.changes 2013-07-09 20:59:19.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Stream-Buffered.new/perl-Stream-Buffered.changes 2014-09-17 17:26:05.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Sep 15 15:44:34 UTC 2014 - coolo(a)suse.com
+
+- updated to 0.03
+ - bump IO::File dep, since it fails with earlier versions (plack/#460)
+
+-------------------------------------------------------------------
Old:
----
Stream-Buffered-0.02.tar.gz
New:
----
Stream-Buffered-0.03.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Stream-Buffered.spec ++++++
--- /var/tmp/diff_new_pack.N8ey3V/_old 2014-09-17 17:26:07.000000000 +0200
+++ /var/tmp/diff_new_pack.N8ey3V/_new 2014-09-17 17:26:07.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Stream-Buffered
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,10 +17,10 @@
Name: perl-Stream-Buffered
-Version: 0.02
+Version: 0.03
Release: 0
%define cpan_name Stream-Buffered
-Summary: Temporary buffer to save bytes
+Summary: temporary buffer to save bytes
License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Stream-Buffered/
@@ -29,6 +29,8 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
+BuildRequires: perl(IO::File) >= 1.14
+Requires: perl(IO::File) >= 1.14
%{perl_requires}
%description
@@ -54,6 +56,6 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes README
+%doc Changes cpanfile LICENSE README
%changelog
++++++ Stream-Buffered-0.02.tar.gz -> Stream-Buffered-0.03.tar.gz ++++++
++++ 3061 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Log-Dispatchouli for openSUSE:Factory checked in at 2014-09-17 17:25:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Log-Dispatchouli (Old)
and /work/SRC/openSUSE:Factory/.perl-Log-Dispatchouli.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Log-Dispatchouli"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Log-Dispatchouli/perl-Log-Dispatchouli.changes 2014-02-28 19:15:22.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Log-Dispatchouli.new/perl-Log-Dispatchouli.changes 2014-09-17 17:26:03.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Sep 15 15:15:10 UTC 2014 - coolo(a)suse.com
+
+- updated to 2.010
+ add the file_format option (thanks, Randy Stauner)
+
+-------------------------------------------------------------------
Old:
----
Log-Dispatchouli-2.009.tar.gz
New:
----
Log-Dispatchouli-2.010.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Log-Dispatchouli.spec ++++++
--- /var/tmp/diff_new_pack.5dFcUk/_old 2014-09-17 17:26:05.000000000 +0200
+++ /var/tmp/diff_new_pack.5dFcUk/_new 2014-09-17 17:26:05.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-Log-Dispatchouli
-Version: 2.009
+Version: 2.010
Release: 0
%define cpan_name Log-Dispatchouli
Summary: a simple wrapper around Log::Dispatch
++++++ Log-Dispatchouli-2.009.tar.gz -> Log-Dispatchouli-2.010.tar.gz ++++++
++++ 2321 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0