The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for ExtUtils-Install


- Explicitly use File::Compare in Installapi2.t
- Use a private directory for tests


- Exercise _is_prefix() method more in tests
- Optimisations for file comparisons
- Optimisations for directory creation
- Typo fix in POD
- Optimisations for tree traversal


- Add descriptions for 3 tests lacking them
- Removed bundled Test::More from t/lib
- 'use strict' added to all files where missing
- 'use vars' replaced with 'our'
- Properly scope all variables
- Minimal supported perl version is now v5.6.0


- Use File::Spec->catfile to compose filenames
- Use self-cleaning tempdir to conduct tests
- only run POD test under AUTHOR_TESTING
- marked some internals as private


- Fix tests for when perl path contains a space


- Fix win32 check


- 'make -s' support: set $INSTALL_QUIET automatically


- Optimisations:

  * use our instead of vars
  * lazy load modules
  * make OS variables into constants
  * move some calculations out of a loop


- Removed instructions using Build.PL from README

- Load Win32API::File for _move_file_at_boot only when needed

- Allow disabling autosplit by omitting autosplit dir


- Cosmetic change as forgot to update version information in POD on last two


- Reverted change to pm_to_blib that causes write-only directory paths to
  be created


- Formal release to change META information and synchronise versioning

- Introduce env var PERL_INSTALL_QUIET to silence pm_to_blib() output


- better -w tests


- Fix writable tests when running as root


- ExtUtils::Install handle symbolic and hard links


- Remove MM_TEST_ROOT feature from ExtUtils::Install tests


- Enable tests to run in parallel


- Various POD fixes and typos
- Cross-compilation fixes
- VMS fixes


Adds 'skip_cwd' parameter to ExtUtils::Installed.  With this new parameter,
the current directory is not included in the installed module search.  This
avoids finding modules from other perls which happen to be below the
current directory.


Pod fixes.


Pod fixes.


This is a "no-change" version bump because I pushed the v1.53 change
and then realized that MakeMaker.t was a bad name for a file that would
end up in core where the EUMM tests and the EUI tests are in the same
directory. This renames it to InstallWithMM.t.


Final stage of the divorce from EUMM. Now the EUMM related tests are no
longer shared. and Build.t go, and there shall be peace on earth.
At least until somebody patches EUMM/t/basic.t for something EUI related...

Thanks to M. Schwern for helping me work this one out. Cheers man.


Missed the t/Installed.t test from core. Bumped version number to allow
a new distro to be released.


Make _chmod verbose message use octal modes, thanks to BDFOY

Further changes from core, including lastest test file infrastructure
from EUMM.

Fixed a number of problems in ExtUtils::Installed, for various reasons
this includes a version bump to 1.999_001, which will eventually become
version 2.0. These problems related to finding modules that were installed
with either INSTALL_BASE or PREFIX. Hopefully this resolves these issues.

1.52_01 (core only release)

Changes from Core:

commit 3d55b451d9544fbd4c27c33287b76bee30328830
Author: John Malmberg
Date:   Sun Feb 15 09:25:10 2009 -0600

    ExtUtils::Install VMS extended character set support

    Preview from


Production rerelease of 1.51 to make the CPAN indexer happy about permissions

SVN Revision 44.


Production release of 1.50_05. No other changes.

SVN revision 43.


SVN revision 42.

Fix broken test as reported by Craig Berry.


SVN revision 41.

Restructure tests to make it easier to maintain given it is distributed in various
ways in three different packages.


SVN revision 40.

Sigh, just after i released 1.50_02 I noticed that a test modified in it will fail
under VMS. So this is a fixup release for that alone.


SVN revision 39.

Synchronize with the changes that were made in blead perl
patch #33567. VMS changes by Craig Berry. See

This was marked in the pod as 1.51 but not actually version bumped.

So I've marked it as 1.50_02 as a test release prior to putting it out
as the real 1.51

This release also restores the missing installed.t which was accidentally
missed by the MANIFEST having a duplicate entry for install.t instead.
Probably something should have warned about this, but I haven't worked out

Includes changes from Activestate/ActivePerl:

- To make installation less chatty when not under verbose mode. See

- To install HTML documentation files under builds that set $Config{installhtmldir}
(and presumably also create HTML versions of the pod -- which is quite nice actually :-)


Version only released as part of bleadperl added in revision #33566.
Cygwin related changes by Steve Hay, and others, see

and discussion at


Previous patches to _have_write_access() were causing problems
on Cygwin. So now we skip using POSIX::access under cygwin.
Also added some =pod directives to make my favorite editor
highlight the pod properly.


Turns out that the new can_write_dir.t doesn't work properly under root
as root can read the files regardless as to their mode. So we skip those
tests when the effective UID is 0 indicating root.


We were getting N/A test results from CPAN testers due to the
presence of Config in the prequisities list. This has been corrected.

Also it was pointed out that EU_ALWAYS_COPY did not follow the naming
convention of other ExtUtils::Install environment variables. It has
been renamed EU_INSTALL_ALWAYS_COPY. Support remains for the original
deprecated environment variable but it will be removed in 1.50.


Fix build process so a new META.YML is produced each time. Also
add support for a new argument syntax to install() as well as
support for always copying installed files even when the old
file was identical. This is needed for some bundling mechanisms
and can be activated by setting the environment variable EU_ALWAYS_COPY
before the install process starts.

Add a newer cleaner interface to install() to allow named parameters
and easier external monitoring of what transpired.

1.46 2008-03-01 12:42:35

Apply patches from Michael G. Schwern (rt #33688, rt #31429, rt #31248)
and from Slaven Rezic (rt #33290).  Also implemented the suggestion from
Schwern about not dieing when failing to remove a shadow file that is
later on in INC than the installed version. (rt #2928)

1.45 2008-02-27 13:55:27

Fix #32813, use catpath() to attach volume name
to dirs in _can_write_dir() when necessary to avoid cygwin
builds doing a hostname lookup.

1.44 2007-09-09 23:12:25

by Schwern


install() would always try to uninstall different versions of the
installed files when $uninstall_shadows was given whether it was true or false.
This meant "make install" and "Build install" would both always try to uninstall
differing versions of the modules.  [ 28672]

1.43 2007-07-21 00:09:24

Turns out some recent version, I haven't figured out which, causes
ExtUtils::MakeMaker to fail test. The failure is actually bogus, EUMM
is testing for output that we stopped producing except under verbose,
however it is a pain, so this release fixes the problem. It also adds
a new test file, a stripped down version of ExtUtils::MakeMakers

1.42 2007-07-20 22:43:04

This is just 1.41_04 as a production release.

1.41_04 2007-07-07 16:52:40

Reorganize how things work in Install so that we don't try to create
directories which exist but are not writable to us when they contain
files which we want to install which are writable by us.

Also fix a VMS issue as recommended by Craig Berry.

1.41_03 2007-02-11 15:13

Add an extra_libs parameter to ExtUtils::Installed->new() which allows
one to specify additional libs to search for installed modules.

Additional code cleanup and tweaks.

1.41_02 2007-02-03 21:10

Fix bug in _can_write_file().

1.41_01 2007-02-02 21:03

Integrated changes from

1. Steffen Mueller: make ExtUtils::Installed respect PERL5LIB and allow
overriding the current config and inc with something else.

2. Michael Schwern (RT#21949, RT#21948): Fix use lib and installdirs
and other EU::MakeMaker related changes.

3. ActiveState (RT#5903): Reduce install verbosity.

4. Craig Berry (RT#22157): Fix VMS related install failure.

5. Ken Williams (RT#16225): Make fake uninstall actually fake.

1.41 2006-07-02 16:09

Integrated ExtUtils::Packlist changes from Nicholas Clark to allow for
relocatable perls. Bumped version numbers on all files.

1.40 2006-04-30 15:04

Enhanced errorcatching and reporting. Fixed a problem with the INSTALL.SKIP
file. Changed the Makefile.PL so that when installing it would not use the same
stuff it was replacing. This doesn't affect building with Module::Build

Removed META.yml from distribution.

1.39 2006-04-14 18:53

- Fixed problem with the META.yml file being produced from a Win32 point of view.
IMO this is an error/failing in the design of the META.yml process. META.yml should
be created on the client side not on the distributor side. Now produces a
platform agnostic (ie UNIXy) META.yml.

- Reversed order of change file so newest entries go on top.

1.38 2006-04-02 17:31

- Removed MANIFEST.SKIP support (INSTALL.SKIP still supported), and
added support for providing a fallback skip file by using
ENV{EU_INSTALL_SITE_SKIP} as a fallback if there is not a distribution
specific skip file.

- Released under the ExtUtils-Install-1.38 Name

1.3702 2006-03-19 16:54

- Added support for skipping files during install based on a set of filter
rules. If there is an INSTALL.SKIP in the current directory when doing an
install then it is loaded, otherwise if there is a MANIFEST.SKIP then it is
loaded. If neither exists then no filtration occurs.  The env variable
EU_INSTALL_IGNORE_SKIP may be set to a true value to override this behaviour.
This means that you can make .svn directories be ignored on install.

1.3701 2006-03-13 20:00

- Integrated patch from Randy Sims.

    1. Fixes error during 'perl Makefile.PL' because it MakeMaker can't
    find the NAME section describing DISTNAME (which has the 'ex-'

    2. Win32API::File is recommended on MSWin32 && cygwin.

    3. Under Perl5.005, ExtUtils::MM is not present in the version of
    MakeMaker included. I don't know what version first includes it.
    Needs research or better: eliminate need for it.

    4. Test::More is bundled with the distro for its test suite. This
    would be needed on Perl5.005, for example. It was listed as a
    requirement, but the directory it's bundled in is not in @INC when
    prereqs are checked. I removed the prereq from Build.PL &
    Makefile.PL. Other options: 1) fixup @INC to include t/lib; or 2)
    unbundle and add back to prereqs.

    4. Update t/pod.t t/pod-coverage fixup of @INC so it can find
    bundled Test::More.

- Fixed pod/coverage related issues.

- When trying to schedule a delete at reboot after renaming a dll out of
the way no error occurs if Win32API::File isn't available. Instead it
merely warns that the file should be hand deleted.

- Fixed install at reboot behaviour by making sure the temporar file is
writable after install (normally files installed are readonly)

1.37 2006-03-12 23:20

- Refactored reboot support. Integrated changes from Randy Sims
in p5p message

1.36 2006-03-11 12:42

- Extended Win32 support. Added ExtUtils::Install::MUST_REBOOT to
handle such scenario when rebooting.

- Released as ex-ExtUtils-Install by demerphq

1.35  Wed Feb  1 23:00:00 CST 2006

 - First independent release; Extracted ExtUtils::Install,
   ExtUtils::Installed, & ExtUtils::Packlist from MakeMaker.

 - Changed the $VERSION of all modules to the same version number, a
   number higher than all $VERSIONs.