The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Changes 015
LICENSE 44
MANIFEST 13
META.json 50113
META.yml 5297
Makefile.PL 1615
README 24
dist.ini 420
lib/ExtUtils/MANIFEST.SKIP 15
lib/ExtUtils/Manifest.pm 3945
t/Manifest.t 1423
t/release-pod-syntax.t 150
xt/release/minimum-version.t 08
xt/release/pod-syntax.t 06
14 files changed (This is a version diff) 198358
@@ -1,3 +1,18 @@
+1.65  Fri, Aug  8, 2014
+  - Support perls < v5.8.3 once again
+  - Don't generate MANIFESTs with CRLFs on Windows
+
+1.64  Thu, Jul 17, 2014
+  - Ignore vim swap files and prove generated files
+  - use Exporter import
+  - use 'our' instead of use vars
+
+1.63  Sun, Sep 8, 2013
+  - Deal with VMS extended filespecs
+
+1.62  Sun, Sep 8, 2013
+  - Normalize VMS case handling in ExtUtils::Manifest.
+
 1.61  Tue, Sep 11, 2012
   - Avoid some test-time warnings.
   - Current VMS can handle filenames with spaces.
@@ -1,4 +1,4 @@
-This software is copyright (c) 2012 by Andreas Koenig.
+This software is copyright (c) 2014 by Andreas Koenig.
 
 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 @@ b) the "Artistic License"
 
 --- The GNU General Public License, Version 1, February 1989 ---
 
-This software is Copyright (c) 2012 by Andreas Koenig.
+This software is Copyright (c) 2014 by Andreas Koenig.
 
 This is free software, licensed under:
 
@@ -22,7 +22,7 @@ This is free software, licensed under:
                      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.
@@ -272,7 +272,7 @@ That's all there is to it!
 
 --- The Artistic License 1.0 ---
 
-This software is Copyright (c) 2012 by Andreas Koenig.
+This software is Copyright (c) 2014 by Andreas Koenig.
 
 This is free software, licensed under:
 
@@ -1,3 +1,4 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.020.
 Changes
 LICENSE
 MANIFEST
@@ -9,4 +10,5 @@ dist.ini
 lib/ExtUtils/MANIFEST.SKIP
 lib/ExtUtils/Manifest.pm
 t/Manifest.t
-t/release-pod-syntax.t
+xt/release/minimum-version.t
+xt/release/pod-syntax.t
@@ -7,7 +7,7 @@
       "The Perl 5 Porters"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "Dist::Zilla version 4.300021, CPAN::Meta::Converter version 2.120921",
+   "generated_by" : "Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060",
    "license" : [
       "perl_5"
    ],
@@ -19,13 +19,19 @@
    "prereqs" : {
       "configure" : {
          "requires" : {
-            "ExtUtils::MakeMaker" : "6.30"
+            "ExtUtils::MakeMaker" : "0"
+         }
+      },
+      "develop" : {
+         "requires" : {
+            "Test::Pod" : "1.41"
          }
       },
       "runtime" : {
          "requires" : {
             "File::Basename" : "0",
-            "File::Spec" : "0.8"
+            "File::Spec" : "0.8",
+            "perl" : "5.006"
          }
       }
    },
@@ -38,107 +44,154 @@
       "homepage" : "https://metacpan.org/release/ExtUtils-Manifest",
       "repository" : {
          "type" : "git",
-         "url" : "git://github.com/rafl/extutils-manifest.git",
-         "web" : "http://github.com/rafl/extutils-manifest"
+         "url" : "git://github.com/Perl-Toolchain-Gang/extutils-manifest.git",
+         "web" : "http://github.com/Perl-Toolchain-Gang/extutils-manifest"
       }
    },
-   "version" : "1.61",
+   "version" : "1.65",
    "x_Dist_Zilla" : {
+      "perl" : {
+         "version" : "5.020000"
+      },
       "plugins" : [
          {
             "class" : "Dist::Zilla::Plugin::GatherDir",
-            "name" : "@Basic/GatherDir",
-            "version" : "4.300021"
+            "name" : "@Filter/GatherDir",
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::PruneCruft",
-            "name" : "@Basic/PruneCruft",
-            "version" : "4.300021"
+            "name" : "@Filter/PruneCruft",
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::ManifestSkip",
-            "name" : "@Basic/ManifestSkip",
-            "version" : "4.300021"
+            "name" : "@Filter/ManifestSkip",
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaYAML",
-            "name" : "@Basic/MetaYAML",
-            "version" : "4.300021"
+            "name" : "@Filter/MetaYAML",
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::License",
-            "name" : "@Basic/License",
-            "version" : "4.300021"
+            "name" : "@Filter/License",
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::Readme",
-            "name" : "@Basic/Readme",
-            "version" : "4.300021"
-         },
-         {
-            "class" : "Dist::Zilla::Plugin::ExtraTests",
-            "name" : "@Basic/ExtraTests",
-            "version" : "4.300021"
+            "name" : "@Filter/Readme",
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::ExecDir",
-            "name" : "@Basic/ExecDir",
-            "version" : "4.300021"
+            "name" : "@Filter/ExecDir",
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::ShareDir",
-            "name" : "@Basic/ShareDir",
-            "version" : "4.300021"
+            "name" : "@Filter/ShareDir",
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::MakeMaker",
-            "name" : "@Basic/MakeMaker",
-            "version" : "4.300021"
+            "config" : {
+               "Dist::Zilla::Role::TestRunner" : {
+                  "default_jobs" : 1
+               }
+            },
+            "name" : "@Filter/MakeMaker",
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::Manifest",
-            "name" : "@Basic/Manifest",
-            "version" : "4.300021"
+            "name" : "@Filter/Manifest",
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::TestRelease",
-            "name" : "@Basic/TestRelease",
-            "version" : "4.300021"
+            "name" : "@Filter/TestRelease",
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::ConfirmRelease",
-            "name" : "@Basic/ConfirmRelease",
-            "version" : "4.300021"
+            "name" : "@Filter/ConfirmRelease",
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::UploadToCPAN",
-            "name" : "@Basic/UploadToCPAN",
-            "version" : "4.300021"
+            "name" : "@Filter/UploadToCPAN",
+            "version" : "5.020"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::VersionFromModule",
+            "name" : "VersionFromModule",
+            "version" : "0.08"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::CheckExtraTests",
+            "name" : "CheckExtraTests",
+            "version" : "0.022"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::CheckChangesHasContent",
+            "name" : "CheckChangesHasContent",
+            "version" : "0.006"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::MinimumPerl",
+            "name" : "MinimumPerl",
+            "version" : "1.003"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::OnlyCorePrereqs",
+            "config" : {
+               "Dist::Zilla::Plugin::OnlyCorePrereqs" : {
+                  "check_dual_life_versions" : "1",
+                  "deprecated_ok" : "0",
+                  "phases" : [
+                     "configure",
+                     "build",
+                     "runtime",
+                     "test"
+                  ],
+                  "skips" : [],
+                  "starting_version" : "to be determined from perl prereq"
+               }
+            },
+            "name" : "OnlyCorePrereqs",
+            "version" : "0.017"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::Test::MinimumVersion",
+            "name" : "Test::MinimumVersion",
+            "version" : "2.000005"
          },
          {
             "class" : "Dist::Zilla::Plugin::DualLife",
             "name" : "DualLife",
-            "version" : "0.01"
+            "version" : "0.03"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaConfig",
             "name" : "MetaConfig",
-            "version" : "4.300021"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaJSON",
             "name" : "MetaJSON",
-            "version" : "4.300021"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::PodSyntaxTests",
             "name" : "PodSyntaxTests",
-            "version" : "4.300021"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaResources",
             "name" : "MetaResources",
-            "version" : "4.300021"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::Authority",
@@ -154,37 +207,47 @@
                }
             },
             "name" : "Prereqs",
-            "version" : "4.300021"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":InstallModules",
-            "version" : "4.300021"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":IncModules",
-            "version" : "4.300021"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":TestFiles",
-            "version" : "4.300021"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ExecFiles",
-            "version" : "4.300021"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ShareFiles",
-            "version" : "4.300021"
+            "version" : "5.020"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":MainModule",
-            "version" : "4.300021"
+            "version" : "5.020"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::FinderCode",
+            "name" : ":AllFiles",
+            "version" : "5.020"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::FinderCode",
+            "name" : ":NoFiles",
+            "version" : "5.020"
          }
       ],
       "zilla" : {
@@ -192,7 +255,7 @@
          "config" : {
             "is_trial" : "0"
          },
-         "version" : "4.300021"
+         "version" : "5.020"
       }
    },
    "x_authority" : "cpan:P5P"
@@ -7,104 +7,141 @@ author:
   - 'The Perl 5 Porters'
 build_requires: {}
 configure_requires:
-  ExtUtils::MakeMaker: 6.30
+  ExtUtils::MakeMaker: '0'
 dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.300021, CPAN::Meta::Converter version 2.120921'
+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
-  version: 1.4
+  version: '1.4'
 name: ExtUtils-Manifest
 requires:
-  File::Basename: 0
-  File::Spec: 0.8
+  File::Basename: '0'
+  File::Spec: '0.8'
+  perl: '5.006'
 resources:
   bugtracker: http://rt.perl.org/rt3/
   homepage: https://metacpan.org/release/ExtUtils-Manifest
-  repository: git://github.com/rafl/extutils-manifest.git
-version: 1.61
+  repository: git://github.com/Perl-Toolchain-Gang/extutils-manifest.git
+version: '1.65'
 x_Dist_Zilla:
+  perl:
+    version: '5.020000'
   plugins:
     -
       class: Dist::Zilla::Plugin::GatherDir
-      name: '@Basic/GatherDir'
-      version: 4.300021
+      name: '@Filter/GatherDir'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::PruneCruft
-      name: '@Basic/PruneCruft'
-      version: 4.300021
+      name: '@Filter/PruneCruft'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::ManifestSkip
-      name: '@Basic/ManifestSkip'
-      version: 4.300021
+      name: '@Filter/ManifestSkip'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::MetaYAML
-      name: '@Basic/MetaYAML'
-      version: 4.300021
+      name: '@Filter/MetaYAML'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::License
-      name: '@Basic/License'
-      version: 4.300021
+      name: '@Filter/License'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::Readme
-      name: '@Basic/Readme'
-      version: 4.300021
-    -
-      class: Dist::Zilla::Plugin::ExtraTests
-      name: '@Basic/ExtraTests'
-      version: 4.300021
+      name: '@Filter/Readme'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::ExecDir
-      name: '@Basic/ExecDir'
-      version: 4.300021
+      name: '@Filter/ExecDir'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::ShareDir
-      name: '@Basic/ShareDir'
-      version: 4.300021
+      name: '@Filter/ShareDir'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::MakeMaker
-      name: '@Basic/MakeMaker'
-      version: 4.300021
+      config:
+        Dist::Zilla::Role::TestRunner:
+          default_jobs: 1
+      name: '@Filter/MakeMaker'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::Manifest
-      name: '@Basic/Manifest'
-      version: 4.300021
+      name: '@Filter/Manifest'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::TestRelease
-      name: '@Basic/TestRelease'
-      version: 4.300021
+      name: '@Filter/TestRelease'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::ConfirmRelease
-      name: '@Basic/ConfirmRelease'
-      version: 4.300021
+      name: '@Filter/ConfirmRelease'
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::UploadToCPAN
-      name: '@Basic/UploadToCPAN'
-      version: 4.300021
+      name: '@Filter/UploadToCPAN'
+      version: '5.020'
+    -
+      class: Dist::Zilla::Plugin::VersionFromModule
+      name: VersionFromModule
+      version: '0.08'
+    -
+      class: Dist::Zilla::Plugin::CheckExtraTests
+      name: CheckExtraTests
+      version: '0.022'
+    -
+      class: Dist::Zilla::Plugin::CheckChangesHasContent
+      name: CheckChangesHasContent
+      version: '0.006'
+    -
+      class: Dist::Zilla::Plugin::MinimumPerl
+      name: MinimumPerl
+      version: '1.003'
+    -
+      class: Dist::Zilla::Plugin::OnlyCorePrereqs
+      config:
+        Dist::Zilla::Plugin::OnlyCorePrereqs:
+          check_dual_life_versions: '1'
+          deprecated_ok: '0'
+          phases:
+            - configure
+            - build
+            - runtime
+            - test
+          skips: []
+          starting_version: 'to be determined from perl prereq'
+      name: OnlyCorePrereqs
+      version: '0.017'
+    -
+      class: Dist::Zilla::Plugin::Test::MinimumVersion
+      name: Test::MinimumVersion
+      version: '2.000005'
     -
       class: Dist::Zilla::Plugin::DualLife
       name: DualLife
-      version: 0.01
+      version: '0.03'
     -
       class: Dist::Zilla::Plugin::MetaConfig
       name: MetaConfig
-      version: 4.300021
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::MetaJSON
       name: MetaJSON
-      version: 4.300021
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::PodSyntaxTests
       name: PodSyntaxTests
-      version: 4.300021
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::MetaResources
       name: MetaResources
-      version: 4.300021
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::Authority
       name: Authority
-      version: 1.006
+      version: '1.006'
     -
       class: Dist::Zilla::Plugin::Prereqs
       config:
@@ -112,34 +149,42 @@ x_Dist_Zilla:
           phase: runtime
           type: requires
       name: Prereqs
-      version: 4.300021
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':InstallModules'
-      version: 4.300021
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':IncModules'
-      version: 4.300021
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':TestFiles'
-      version: 4.300021
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ExecFiles'
-      version: 4.300021
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ShareFiles'
-      version: 4.300021
+      version: '5.020'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':MainModule'
-      version: 4.300021
+      version: '5.020'
+    -
+      class: Dist::Zilla::Plugin::FinderCode
+      name: ':AllFiles'
+      version: '5.020'
+    -
+      class: Dist::Zilla::Plugin::FinderCode
+      name: ':NoFiles'
+      version: '5.020'
   zilla:
     class: Dist::Zilla::Dist::Builder
     config:
-      is_trial: 0
-    version: 4.300021
+      is_trial: '0'
+    version: '5.020'
 x_authority: cpan:P5P
@@ -1,19 +1,19 @@
 
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.020.
 use strict;
 use warnings;
 
+use 5.006;
 
-
-use ExtUtils::MakeMaker 6.30;
+use ExtUtils::MakeMaker ;
 
 
 
 my %WriteMakefileArgs = (
   "ABSTRACT" => "utilities to write and check a MANIFEST file",
   "AUTHOR" => "Andreas Koenig <andreas.koenig\@anima.de>, Michael G Schwern <schwern\@pobox.com>, Randy Kobes <r.kobes\@uwinnipeg.ca>, The Perl 5 Porters",
-  "BUILD_REQUIRES" => {},
   "CONFIGURE_REQUIRES" => {
-    "ExtUtils::MakeMaker" => "6.30"
+    "ExtUtils::MakeMaker" => 0
   },
   "DISTNAME" => "ExtUtils-Manifest",
   "EXE_FILES" => [],
@@ -23,24 +23,23 @@ my %WriteMakefileArgs = (
     "File::Basename" => 0,
     "File::Spec" => "0.8"
   },
-  "VERSION" => "1.61",
+  "VERSION" => "1.65",
   "test" => {
     "TESTS" => "t/*.t"
   }
 );
 
 
-unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) {
-  my $br = delete $WriteMakefileArgs{BUILD_REQUIRES};
-  my $pp = $WriteMakefileArgs{PREREQ_PM};
-  for my $mod ( keys %$br ) {
-    if ( exists $pp->{$mod} ) {
-      $pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod};
-    }
-    else {
-      $pp->{$mod} = $br->{$mod};
-    }
-  }
+my %FallbackPrereqs = (
+  "File::Basename" => 0,
+  "File::Spec" => "0.8"
+);
+
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+  delete $WriteMakefileArgs{TEST_REQUIRES};
+  delete $WriteMakefileArgs{BUILD_REQUIRES};
+  $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
 }
 
 delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
@@ -1,13 +1,15 @@
 
 
 This archive contains the distribution ExtUtils-Manifest,
-version 1.61:
+version 1.65:
 
   utilities to write and check a MANIFEST file
 
-This software is copyright (c) 2012 by Andreas Koenig.
+This software is copyright (c) 2014 by Andreas Koenig.
 
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
 
 
+This README file was generated by Dist::Zilla::Plugin::Readme v5.020.
+
@@ -1,5 +1,4 @@
 name    = ExtUtils-Manifest
-version = 1.61
 author  = Andreas Koenig <andreas.koenig@anima.de>
 author  = Michael G Schwern <schwern@pobox.com>
 author  = Randy Kobes <r.kobes@uwinnipeg.ca>
@@ -7,7 +6,24 @@ author  = The Perl 5 Porters
 license = Perl_5
 copyright_holder = Andreas Koenig
 
-[@Basic]
+[@Filter]
+-bundle = @Basic
+-remove = ExtraTests
+
+[VersionFromModule]
+[CheckExtraTests]
+[CheckChangesHasContent]
+
+[MinimumPerl]
+
+; authordep Dist::Zilla::Plugin::MakeMaker = 5.020 ; dropped EUMM = 6.30 requirement
+
+[OnlyCorePrereqs]
+:version = 0.014
+
+[Test::MinimumVersion]
+:version = 2.000003
+max_target_perl = 5.006
 
 [DualLife]
 
@@ -17,8 +33,8 @@ copyright_holder = Andreas Koenig
 
 [MetaResources]
 repository.type   = git
-repository.url    = git://github.com/rafl/extutils-manifest.git
-repository.web    = http://github.com/rafl/extutils-manifest
+repository.url    = git://github.com/Perl-Toolchain-Gang/extutils-manifest.git
+repository.web    = http://github.com/Perl-Toolchain-Gang/extutils-manifest
 bugtracker.web    = http://rt.perl.org/rt3/
 bugtracker.mailto = perlbug@perl.org
 homepage          = https://metacpan.org/release/ExtUtils-Manifest
@@ -40,6 +40,7 @@
 \.tmp$
 \.#
 \.rej$
+\..*\.sw.?$
 
 # Avoid OS-specific files/dirs
 # Mac OSX metadata
@@ -50,6 +51,9 @@
 # Avoid Devel::Cover and Devel::CoverX::Covered files.
 \bcover_db\b
 \bcovered\b
- 
+
+# Avoid prove files
+\B\.prove$
+
 # Avoid MYMETA files
 ^MYMETA\.
@@ -8,24 +8,21 @@ use File::Find;
 use File::Spec;
 use Carp;
 use strict;
+use warnings;
 
-use vars qw($VERSION @ISA @EXPORT_OK 
-          $Is_MacOS $Is_VMS $Is_VMS_mode $Is_VMS_lc $Is_VMS_nodot
-          $Debug $Verbose $Quiet $MANIFEST $DEFAULT_MSKIP);
-
-$VERSION = '1.61';
-@ISA=('Exporter');
-@EXPORT_OK = qw(mkmanifest
+our $VERSION = '1.65';
+our @ISA = ('Exporter');
+our @EXPORT_OK = qw(mkmanifest
                 manicheck  filecheck  fullcheck  skipcheck
                 manifind   maniread   manicopy   maniadd
                 maniskip
                );
 
-$Is_MacOS = $^O eq 'MacOS';
-$Is_VMS   = $^O eq 'VMS';
-$Is_VMS_mode = 0;
-$Is_VMS_lc = 0;
-$Is_VMS_nodot = 0;  # No dots in dir names or double dots in files
+our $Is_MacOS = $^O eq 'MacOS';
+our $Is_VMS   = $^O eq 'VMS';
+our $Is_VMS_mode = 0;
+our $Is_VMS_lc = 0;
+our $Is_VMS_nodot = 0;  # No dots in dir names or double dots in files
 
 if ($Is_VMS) {
     require VMS::Filespec if $Is_VMS;
@@ -44,7 +41,7 @@ if ($Is_VMS) {
         my $unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || '';
         my $efs_charset = $ENV{'DECC$EFS_CHARSET'} || '';
         my $efs_case = $ENV{'DECC$EFS_CASE_PRESERVE'} || '';
-        $vms_unix_rpt = $unix_rpt =~ /^[ET1]/i; 
+        $vms_unix_rpt = $unix_rpt =~ /^[ET1]/i;
         $vms_efs = $efs_charset =~ /^[ET1]/i;
         $vms_case = $efs_case =~ /^[ET1]/i;
     }
@@ -53,13 +50,13 @@ if ($Is_VMS) {
     $Is_VMS_nodot = 0 if ($vms_efs);
 }
 
-$Debug   = $ENV{PERL_MM_MANIFEST_DEBUG} || 0;
-$Verbose = defined $ENV{PERL_MM_MANIFEST_VERBOSE} ?
+our $Debug   = $ENV{PERL_MM_MANIFEST_DEBUG} || 0;
+our $Verbose = defined $ENV{PERL_MM_MANIFEST_VERBOSE} ?
                    $ENV{PERL_MM_MANIFEST_VERBOSE} : 1;
-$Quiet = 0;
-$MANIFEST = 'MANIFEST';
+our $Quiet = 0;
+our $MANIFEST = 'MANIFEST';
 
-$DEFAULT_MSKIP = File::Spec->catfile( dirname(__FILE__), "$MANIFEST.SKIP" );
+our $DEFAULT_MSKIP = File::Spec->catfile( dirname(__FILE__), "$MANIFEST.SKIP" );
 
 
 =head1 NAME
@@ -124,6 +121,7 @@ sub mkmanifest {
     $bakbase =~ s/\./_/g if $Is_VMS_nodot; # avoid double dots
     rename $MANIFEST, "$bakbase.bak" unless $manimiss;
     open M, "> $MANIFEST" or die "Could not open $MANIFEST: $!";
+    binmode M, ':raw';
     my $skip = maniskip();
     my $found = manifind();
     my($key,$val,$file,%all);
@@ -155,12 +153,20 @@ sub mkmanifest {
     close M;
 }
 
-# Geez, shouldn't this use File::Spec or File::Basename or something?  
+# Geez, shouldn't this use File::Spec or File::Basename or something?
 # Why so careful about dependencies?
 sub clean_up_filename {
   my $filename = shift;
   $filename =~ s|^\./||;
   $filename =~ s/^:([^:]+)$/$1/ if $Is_MacOS;
+  if ( $Is_VMS ) {
+      $filename =~ s/\.$//;                           # trim trailing dot
+      $filename = VMS::Filespec::unixify($filename);  # unescape spaces, etc.
+      if( $Is_VMS_lc ) {
+          $filename = lc($filename);
+          $filename = uc($filename) if $filename =~ /^MANIFEST(\.SKIP)?$/i;
+      }
+  }
   return $filename;
 }
 
@@ -182,17 +188,12 @@ sub manifind {
 	my $name = clean_up_filename($File::Find::name);
 	warn "Debug: diskfile $name\n" if $Debug;
 	return if -d $_;
-
-        if( $Is_VMS_lc ) {
-            $name =~ s#(.*)\.$#\L$1#;
-            $name = uc($name) if $name =~ /^MANIFEST(\.SKIP)?$/i;
-        }
 	$found->{$name} = "";
     };
 
-    # We have to use "$File::Find::dir/$_" in preprocess, because 
+    # We have to use "$File::Find::dir/$_" in preprocess, because
     # $File::Find::name is unavailable.
-    # Also, it's okay to use / here, because MANIFEST files use Unix-style 
+    # Also, it's okay to use / here, because MANIFEST files use Unix-style
     # paths.
     find({wanted => $wanted},
 	 $Is_MacOS ? ":" : ".");
@@ -377,9 +378,11 @@ sub maniread {
                 my $okfile = "$dir$base";
                 warn "Debug: Illegal name $file changed to $okfile\n" if $Debug;
                 $file = $okfile;
-            } 
-            $file = lc($file)
-                unless $Is_VMS_lc &&($file =~ /^MANIFEST(\.SKIP)?$/);
+            }
+            if( $Is_VMS_lc ) {
+                $file = lc($file);
+                $file = uc($file) if $file =~ /^MANIFEST(\.SKIP)?$/i;
+            }
         }
 
         $read->{$file} = $comment;
@@ -414,8 +417,8 @@ sub maniskip {
       $_ =~ qr{^\s*(?:(?:'([^\\']*(?:\\.[^\\']*)*)')|([^#\s]\S*))?(?:(?:\s*)|(?:\s+(.*?)\s*))$};
       #my $comment = $3;
       my $filename = $2;
-      if ( defined($1) ) { 
-        $filename = $1; 
+      if ( defined($1) ) {
+        $filename = $1;
         $filename =~ s/\\(['\\])/$1/g;
       }
       next if (not defined($filename) or not $filename);
@@ -478,6 +481,7 @@ sub _check_mskip_directives {
         warn "Problem opening $mfile: $!";
         return;
     }
+    binmode M, ':raw';
     print M $_ for (@lines);
     close M;
     return;
@@ -514,13 +518,13 @@ typically returned by the maniread() function.
 
     manicopy( maniread(), $dest_dir );
 
-This function is useful for producing a directory tree identical to the 
-intended distribution tree. 
+This function is useful for producing a directory tree identical to the
+intended distribution tree.
 
 $how can be used to specify a different methods of "copying".  Valid
 values are C<cp>, which actually copies the files, C<ln> which creates
 hard links, and C<best> which mostly links the files but copies any
-symbolic link to make a tree without any symbolic link.  C<cp> is the 
+symbolic link to make a tree without any symbolic link.  C<cp> is the
 default.
 
 =cut
@@ -535,11 +539,11 @@ sub manicopy {
     $target = VMS::Filespec::unixify($target) if $Is_VMS_mode;
     File::Path::mkpath([ $target ],! $Quiet,$Is_VMS ? undef : 0755);
     foreach my $file (keys %$read){
-    	if ($Is_MacOS) {
-	    if ($file =~ m!:!) { 
-	   	my $dir = _maccat($target, $file);
+	if ($Is_MacOS) {
+	    if ($file =~ m!:!) {
+		my $dir = _maccat($target, $file);
 		$dir =~ s/[^:]+$//;
-	    	File::Path::mkpath($dir,1,0755);
+		File::Path::mkpath($dir,1,0755);
 	    }
 	    cp_if_diff($file, _maccat($target, $file), $how);
 	} else {
@@ -689,8 +693,9 @@ sub maniadd {
     my @needed = grep { !exists $manifest->{$_} } keys %$additions;
     return 1 unless @needed;
 
-    open(MANIFEST, ">>$MANIFEST") or 
+    open(MANIFEST, ">>$MANIFEST") or
       die "maniadd() could not open $MANIFEST: $!";
+    binmode MANIFEST, ':raw';
 
     foreach my $file (_sort @needed) {
         my $comment = $additions->{$file} || '';
@@ -732,6 +737,7 @@ sub _fix_manifest {
     if ( $must_rewrite ) {
         1 while unlink $MANIFEST; # avoid multiple versions on VMS
         open MANIFEST, ">", $MANIFEST or die "(must_rewrite=$must_rewrite) Could not open >$MANIFEST: $!";
+	binmode MANIFEST, ':raw';
         for (my $i=0; $i<=$#manifest; $i+=2) {
             print MANIFEST "$manifest[$i]\n";
         }
@@ -13,7 +13,7 @@ chdir 't';
 
 use strict;
 
-use Test::More tests => 96;
+use Test::More tests => 97;
 use Cwd;
 
 use File::Spec;
@@ -29,7 +29,7 @@ if ($Is_VMS) {
         $vms_efs = VMS::Feature::current("efs_charset");
     } else {
         my $efs_charset = $ENV{'DECC$EFS_CHARSET'} || '';
-        $vms_efs = $efs_charset =~ /^[ET1]/i; 
+        $vms_efs = $efs_charset =~ /^[ET1]/i;
     }
     $Is_VMS_noefs = 0 if $vms_efs;
 }
@@ -44,9 +44,10 @@ my %Files;
 sub add_file {
     my ($file, $data) = @_;
     $data ||= 'foo';
-    $file =~ s/ /^_/g if $Is_VMS; # escape spaces
+    $file =~ s/ /^_/g if $Is_VMS_noefs; # escape spaces
     1 while unlink $file;  # or else we'll get multiple versions on VMS
     open( T, '> '.$file) or return;
+    binmode T, ':raw'; # no CRLFs please
     print T $data;
     close T;
     return 0 unless -e $file;  # exists under the name we gave it ?
@@ -71,10 +72,10 @@ sub remove_dir {
 }
 
 # use module, import functions
-BEGIN { 
-    use_ok( 'ExtUtils::Manifest', 
-            qw( mkmanifest manicheck filecheck fullcheck 
-                maniread manicopy skipcheck maniadd maniskip) ); 
+BEGIN {
+    use_ok( 'ExtUtils::Manifest',
+            qw( mkmanifest manicheck filecheck fullcheck
+                maniread manicopy skipcheck maniadd maniskip) );
 }
 
 my $cwd = Cwd::getcwd();
@@ -95,7 +96,7 @@ chmod( 0744, 'foo') if $Config{'chmod'};
 # there shouldn't be a MANIFEST there
 my ($res, $warn) = catch_warning( \&mkmanifest );
 # Canonize the order.
-$warn = join("", map { "$_|" } 
+$warn = join("", map { "$_|" }
                  sort { lc($a) cmp lc($b) } split /\r?\n/, $warn);
 is( $warn, "Added to MANIFEST: foo|Added to MANIFEST: MANIFEST|",
     "mkmanifest() displayed its additions" );
@@ -145,14 +146,14 @@ is( join( ' ', @skipped ), 'MANIFEST.SKIP', 'listed skipped files' );
 # add a subdirectory and a file there that should be found
 ok( mkdir( 'moretest', 0777 ), 'created moretest directory' );
 add_file( File::Spec->catfile('moretest', 'quux'), 'quux' );
-ok( exists( ExtUtils::Manifest::manifind()->{'moretest/quux'} ), 
+ok( exists( ExtUtils::Manifest::manifind()->{'moretest/quux'} ),
                                         "manifind found moretest/quux" );
 
 # only MANIFEST and foo are in the manifest
 $_ = 'foo';
 my $files = maniread();
 is( keys %$files, 2, 'two files found' );
-is( join(' ', sort { lc($a) cmp lc($b) } keys %$files), 'foo MANIFEST', 
+is( join(' ', sort { lc($a) cmp lc($b) } keys %$files), 'foo MANIFEST',
                                         'both files found' );
 is( $_, 'foo', q{maniread() doesn't clobber $_} );
 
@@ -179,13 +180,13 @@ rmtree('copy');
 
 # poison the manifest, and add a comment that should be reported
 add_file( 'MANIFEST', 'none #none' );
-is( ExtUtils::Manifest::maniread()->{none}, '#none', 
+is( ExtUtils::Manifest::maniread()->{none}, '#none',
                                         'maniread found comment' );
 
 ok( mkdir( 'copy', 0777 ), 'made copy directory' );
 $files = maniread();
 eval { (undef, $warn) = catch_warning( sub {
- 		manicopy( $files, 'copy', 'cp' ) })
+		manicopy( $files, 'copy', 'cp' ) })
 };
 
 # a newline comes through, so get rid of it
@@ -197,7 +198,7 @@ like($warn, qr/^Skipping MANIFEST.SKIP/i, 'warned about MANIFEST.SKIP' );
 
 # tell ExtUtils::Manifest to use a different file
 {
-	local $ExtUtils::Manifest::MANIFEST = 'albatross'; 
+	local $ExtUtils::Manifest::MANIFEST = 'albatross';
 	($res, $warn) = catch_warning( \&mkmanifest );
 	like( $warn, qr/Added to albatross: /, 'using a new manifest file' );
 
@@ -232,6 +233,14 @@ is( $files->{wibble}, '',    'maniadd() with undef comment' );
 is( $files->{yarrow}, 'hock','          with comment' );
 is( $files->{foobar}, '',    '          preserved old entries' );
 
+my $manicontents = do {
+  local $/;
+  open my $fh, "MANIFEST" or die;
+  binmode $fh, ':raw';
+  <$fh>
+};
+is index($manicontents, "\015\012"), -1, 'MANIFEST no CRLF';
+
 {
     # EOL normalization in maniadd()
 
@@ -443,7 +452,7 @@ SKIP: {
     eval {
         maniadd({ 'grrrwoof' => 'yippie' });
     };
-    like( $@, qr/^\Qmaniadd() could not open MANIFEST:\E/,  
+    like( $@, qr/^\Qmaniadd() could not open MANIFEST:\E/,
                  "maniadd() dies if it can't open the MANIFEST" );
 
     chmod( 0600, 'MANIFEST' );
@@ -1,15 +0,0 @@
-#!perl
-
-BEGIN {
-  unless ($ENV{RELEASE_TESTING}) {
-    require Test::More;
-    Test::More::plan(skip_all => 'these tests are for release candidate testing');
-  }
-}
-
-use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
-
-all_pod_files_ok();
@@ -0,0 +1,8 @@
+#!perl
+
+use Test::More;
+
+eval "use Test::MinimumVersion";
+plan skip_all => "Test::MinimumVersion required for testing minimum versions"
+  if $@;
+all_minimum_version_ok( qq{5.006} );
@@ -0,0 +1,6 @@
+#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
+use Test::More;
+use Test::Pod 1.41;
+
+all_pod_files_ok();