r1803 - in packages/libmodule-install-perl/branches/upstream/current: . inc inc/Module inc/Module/Install lib/Module lib/Module/Install lib/Module/Install/Admin lib/Module/Install/Makefile lib/inc/Module t

Krzysztof Krzyzaniak eloy at costa.debian.org
Fri Dec 30 11:12:56 UTC 2005


Author: eloy
Date: 2005-12-30 11:12:30 +0000 (Fri, 30 Dec 2005)
New Revision: 1803

Added:
   packages/libmodule-install-perl/branches/upstream/current/inc/Module/AutoInstall.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/AutoInstall.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pod
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Compiler.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Share.pm
   packages/libmodule-install-perl/branches/upstream/current/t/2-pod.t
   packages/libmodule-install-perl/branches/upstream/current/t/3-autoinstall.t
Removed:
   packages/libmodule-install-perl/branches/upstream/current/Build.PL
   packages/libmodule-install-perl/branches/upstream/current/ToDo
   packages/libmodule-install-perl/branches/upstream/current/inc/ExtUtils/
   packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Build.pm
   packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/PAR.pm
   packages/libmodule-install-perl/branches/upstream/current/inc/Test/
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install-Cookbook.pod
   packages/libmodule-install-perl/branches/upstream/current/t/0-signature.t
Modified:
   packages/libmodule-install-perl/branches/upstream/current/Changes
   packages/libmodule-install-perl/branches/upstream/current/MANIFEST
   packages/libmodule-install-perl/branches/upstream/current/MANIFEST.SKIP
   packages/libmodule-install-perl/branches/upstream/current/META.yml
   packages/libmodule-install-perl/branches/upstream/current/Makefile.PL
   packages/libmodule-install-perl/branches/upstream/current/README
   packages/libmodule-install-perl/branches/upstream/current/SIGNATURE
   packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install.pm
   packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/AutoInstall.pm
   packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Base.pm
   packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Can.pm
   packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Fetch.pm
   packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Include.pm
   packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Makefile.pm
   packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Metadata.pm
   packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Win32.pm
   packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/WriteAll.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install-Philosophy.pod
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Bundle.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Find.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Include.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Makefile.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Manifest.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Metadata.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/ScanDeps.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/WriteAll.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/AutoInstall.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Base.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Build.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Bundle.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Can.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Fetch.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Include.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Inline.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/MakeMaker.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile/Name.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile/Version.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Metadata.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/PAR.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Run.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Scripts.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Win32.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/WriteAll.pm
   packages/libmodule-install-perl/branches/upstream/current/lib/inc/Module/Install.pm
   packages/libmodule-install-perl/branches/upstream/current/t/1-basic.t
Log:
Load /tmp/tmp.UCsA3H/libmodule-install-perl-0.50 into
packages/libmodule-install-perl/branches/upstream/current.


Deleted: packages/libmodule-install-perl/branches/upstream/current/Build.PL
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/Build.PL	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/Build.PL	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,4 +0,0 @@
-# $File: //depot/cpan/Module-Install/Build.PL $ $Author: autrijus $
-# $Revision: #5 $ $Change: 1820 $ $DateTime: 2003/12/14 21:01:57 $
-
-require 'Makefile.PL';

Modified: packages/libmodule-install-perl/branches/upstream/current/Changes
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/Changes	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/Changes	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,1561 +1,287 @@
-____________________________________________________________________________
-[  2286] By: autrijus                              on 2004/07/01  04:47:26
-        Log: * This be 0.34.
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  2285] By: autrijus                              on 2004/07/01  03:16:20
-        Log: * auto_include() will not include recursive dependencies
-	       now;
-             that functionality is refactored into auto_include_deps().
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Admin/Include.pm
-____________________________________________________________________________
-[  1885] By: autrijus                              on 2004/03/11  05:55:27
-        Log: * This be 0.33.
-             * abstract_from() was broken; it works now thanks to SHAY.
-             * WriteAll() now takes (inline => 1) to support
-	       Inline-based
-             modules.
-	   ! Makefile.PL lib/Module/Install.pm
-	   ! lib/Module/Install/Inline.pm
-	   ! lib/Module/Install/Metadata.pm
-	   ! lib/Module/Install/WriteAll.pm
-____________________________________________________________________________
-[  1847] By: autrijus                              on 2003/12/31  23:14:54
-        Log: * This be 0.31.
-	   ! README lib/Module/Install-Cookbook.pod
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Admin/Manifest.pm
-	   ! lib/Module/Install/Base.pm
-	   ! lib/Module/Install/Build.pm
-	   ! lib/Module/Install/Bundle.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1846] By: autrijus                              on 2003/12/31  22:57:12
-        Log: * allow auto_install() to take -core-specific options like
-             (-default => 0).
-	   ! lib/Module/Install/AutoInstall.pm
-____________________________________________________________________________
-[  1841] By: autrijus                              on 2003/12/28  19:43:56
-        Log: * no longer use inc/SCRIPT but simply modify the
-             scripts to install.
-	   ! lib/Module/Install/Scripts.pm
-____________________________________________________________________________
-[  1840] By: autrijus                              on 2003/12/28  19:42:02
-        Log: * make can_cc to probe the program part of $Config{cc}
-	   ! lib/Module/Install/Can.pm
-____________________________________________________________________________
-[  1837] By: autrijus                              on 2003/12/20  16:20:59
-        Log: * Bundled M::I-using modules (or subdirs) used to break up
-             spectacularly by overriding ::AUTOLOAD and reusing their
-             parents' inc/*.  Now the namespaces are keyed by cwd and
-             more readily unregistered.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1830] By: autrijus                              on 2003/12/17  16:20:13
-        Log: * oops. forgot to check in two files. ingy++
-	   + lib/Module/Install/Admin/Bundle.pm
-	   + lib/Module/Install/Admin/Include.pm
-____________________________________________________________________________
-[  1822] By: autrijus                              on 2003/12/14  21:10:21
-        Log: * This be 0.29, for real!
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1821] By: autrijus                              on 2003/12/14  21:07:46
-        Log: * real Module::Build support in WriteAll and in this
-	       module.
-	   ! MANIFEST lib/Module/Install/Admin/WriteAll.pm
-____________________________________________________________________________
-[  1820] By: autrijus                              on 2003/12/14  21:01:57
-        Log: * transparent Build.PL, as promised in README, is back.
-	   + Build.PL
-____________________________________________________________________________
-[  1819] By: autrijus                              on 2003/12/14  20:58:51
-        Log: * ditto.
-	   ! lib/Module/Install/Admin/WriteAll.pm
-____________________________________________________________________________
-[  1818] By: autrijus                              on 2003/12/14  20:58:38
-        Log: * WriteAll now takes three non-metadata flags:
-             check_nmake (default 1), meta (default 1) and
-             sign (default 0).
-	   ! lib/Module/Install/WriteAll.pm
-____________________________________________________________________________
-[  1817] By: autrijus                              on 2003/12/14  20:57:39
-        Log: * "private" is officially obsoleted by "no_index".
-             * now warns if the user did not specify a license.
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1816] By: autrijus                              on 2003/12/14  20:55:49
-        Log: * changes and manifest.
-	   ! Changes MANIFEST
-____________________________________________________________________________
-[  1815] By: autrijus                              on 2003/12/14  20:41:23
-        Log: * cosmetic fixes.
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-	   ! t/1-basic.t
-____________________________________________________________________________
-[  1812] By: autrijus                              on 2003/12/14  20:24:49
-        Log: * This be 0.29.
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1811] By: autrijus                              on 2003/12/14  18:52:33
-        Log: * "requires( perl => $version )" is now supported.
-             * include_deps() now no longer takes its second argument;
-             it must be separately supplied with the syntax above.
-             * "&WriteAll" now officially replaces "&Build->write",
-             "&Makefile->write", "&Meta->write" and "check_nmake()".
-             * auto_include() is implemented.
-             * bundle_deps() is implemented.
-	   ! Makefile.PL lib/Module/Install.pm
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-	   ! lib/Module/Install/Admin/WriteAll.pm
-	   ! lib/Module/Install/Bundle.pm
-	   ! lib/Module/Install/Include.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1810] By: autrijus                              on 2003/12/14  10:42:42
-        Log: * add WriteAll to manifest.
-             * add #defaults to skip.
-	   ! MANIFEST MANIFEST.SKIP
-____________________________________________________________________________
-[  1808] By: autrijus                              on 2003/12/13  20:14:27
-        Log: * Introducing &WriteAll, a combination of &Meta->write,
-             &check_nmake, &Makefile->write, and if a Build.PL is
-             present (which should read "require 'Makefile.PL'"),
-             also supports transparent &Build->write.
-	   + lib/Module/Install/Admin/WriteAll.pm
-	   + lib/Module/Install/WriteAll.pm
-____________________________________________________________________________
-[  1806] By: autrijus                              on 2003/12/11  18:44:37
-        Log: * changes.
-	   ! Changes
-____________________________________________________________________________
-[  1805] By: autrijus                              on 2003/12/11  18:43:02
-        Log: * Module::Install::Bundle now works, thanks to Adam Foxson!
-	   ! Makefile.PL lib/Module/Install.pm
-	   ! lib/Module/Install/Bundle.pm
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1804] By: autrijus                              on 2003/12/11  16:42:29
-        Log: * unbreak against newer EU::MM.
-	   ! MANIFEST.SKIP
-____________________________________________________________________________
-[  1790] By: autrijus                              on 2003/11/11  01:23:39
-        Log: * let "inc" work with "make test" on 5.6.x too.
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1789] By: autrijus                              on 2003/11/11  01:22:54
-        Log: * mcdavis pointed out that Microsoft now wants
-	       "Nmake15.exe",
-             not "nmake15.exe".
-	   ! lib/Module/Install/Win32.pm
-____________________________________________________________________________
-[  1782] By: autrijus                              on 2003/10/27  19:48:59
-        Log: * This be 0.27.
-             * make the include'd modules actually work during
-             "make" and "make test", by adding "inc" to the
-             Makefile targets.
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1781] By: autrijus                              on 2003/10/22  17:14:03
-        Log: * Graham's patch for 5.004 backcompat.
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-	   ! lib/Module/Install/Inline.pm
-	   ! lib/Module/Install/MakeMaker.pm
-	   ! lib/Module/Install/Metadata.pm
-	   ! lib/Module/Install/Scripts.pm
-____________________________________________________________________________
-[  1780] By: autrijus                              on 2003/10/22  17:13:48
-        Log: * Graham Barr points out that readdir() can return 0.
-	   ! lib/Module/Install/Admin/Manifest.pm
-____________________________________________________________________________
-[  1779] By: autrijus                              on 2003/10/21  15:54:39
-        Log: * do not sign the distribution if we are not the admin.
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1778] By: autrijus                              on 2003/10/17  17:37:55
-        Log: * This be 0.26.
-             * sign(1) support for automatic digital signing
-             * no_index(directory => 'example') support, for telling
-             PAUSE and search to skip indexing modules
-	   ! Makefile.PL lib/Module/Install.pm
-	   ! lib/Module/Install/Build.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1777] By: autrijus                              on 2003/10/13  02:25:45
-        Log: * This be 0.25.
-             * add no_index as an alias to private in META.yml.
-             * minor code cleanup.
-	   ! Makefile.PL lib/Module/Install.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1765] By: ingy                                  on 2003/10/04  15:42:05
-        Log: Support for YAML::Parser::Syck
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1726] By: autrijus                              on 2003/09/06  10:21:54
-        Log: * no point in supporting Build.PL now.
-	   - Build.PL
-	   ! MANIFEST Makefile.PL
-____________________________________________________________________________
-[  1709] By: autrijus                              on 2003/09/01  03:13:10
-        Log: * This be 0.24.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1692] By: autrijus                              on 2003/08/28  10:24:51
-        Log: * 0.17 is simply too old as it scans in POD sections.
-	   ! Makefile.PL
-____________________________________________________________________________
-[  1669] By: autrijus                              on 2003/08/19  20:17:39
-        Log: * Kingpin <mthurn at carbon> notes that we are using "next"
-             outside a loop block in ScanDeps.
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-____________________________________________________________________________
-[  1667] By: autrijus                              on 2003/08/18  08:18:40
-        Log: * threads.pm and warnings.pm should be exempted too.
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-____________________________________________________________________________
-[  1666] By: autrijus                              on 2003/08/18  08:00:18
-        Log: * This be 0.23.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1665] By: autrijus                              on 2003/08/18  07:52:47
-        Log: * implement $self->is_admin to properly test if it's
-	       running
-             on the admin side.
-             * Andreas Koenig reports that we are writing META.yml
-             even on the user side, because of this bug.
-	   ! lib/Module/Install/Base.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1650] By: autrijus                              on 2003/07/29  06:03:27
-        Log: * switch to PAR::Dist to do make_par.
-	   ! Makefile.PL lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1648] By: autrijus                              on 2003/07/16  01:09:42
-        Log: * oops. bad RCS expansion.
-	   ! lib/Module/Install/Makefile/Version.pm
-____________________________________________________________________________
-[  1647] By: autrijus                              on 2003/07/16  01:07:55
-        Log: * This be 0.22.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1646] By: autrijus                              on 2003/07/16  01:05:17
-        Log: * extra space.
-	   ! lib/Module/Install/Admin/Makefile.pm
-____________________________________________________________________________
-[  1645] By: autrijus                              on 2003/07/16  01:05:06
-        Log: * Turns out that MakeMaker's NAME corresponds to
-             META.yml's module_name, and DISTNAME corresponds
-             to name.  Reflect this in the relevant files.
-             * Introduce a new module_name metadata key that may
-             be automatically generated from name.
-	   ! lib/Module/Install/MakeMaker.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Makefile/Name.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1644] By: autrijus                              on 2003/07/16  01:03:35
-        Log: * /\.pm/i should be /\.pm$/i.
-	   ! lib/Module/Install/Makefile/Version.pm
-____________________________________________________________________________
-[  1643] By: autrijus                              on 2003/07/16  01:02:58
-        Log: * AZ_OK was never exported.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1642] By: autrijus                              on 2003/07/10  18:53:37
-        Log: * Iain Truskett wants us to not overwrite alien META.yml
-	       files.
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1640] By: autrijus                              on 2003/07/08  17:05:46
-        Log: * always write META.yml.  No reason not to.
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1618] By: iain                                  on 2003/06/22  17:27:18
-        Log: - PREREQ_PM wasn't being filled out.
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1617] By: iain                                  on 2003/06/22  17:26:18
-        Log: - Should be including YAML dependencies too.
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1611] By: autrijus                              on 2003/06/15  21:25:43
-        Log: * POD cleanups.
-             * This be 0.21.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1610] By: autrijus                              on 2003/06/15  21:25:29
-        Log: * Lindsay Morris pointed out that include_deps()
-             does not work with non-core modules; fixed.
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-____________________________________________________________________________
-[  1589] By: autrijus                              on 2003/06/05  06:37:13
-        Log: * changes.
-	   ! Changes
-____________________________________________________________________________
-[  1588] By: autrijus                              on 2003/06/05  06:34:26
-        Log: * This be Module::Install 0.20.
-             * add pointer to ingy's TPJ article.
-	   ! README lib/Module/Install-Cookbook.pod
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1561] By: ingy                                  on 2003/05/28  00:33:11
-        Log: Caused warning on 5.005
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1558] By: autrijus                              on 2003/05/26  22:01:20
-        Log: * oops. back out the article until copyright cleared with
-	       tpj.
-	   - lib/Module/Install-Intro.pod
-____________________________________________________________________________
-[  1557] By: autrijus                              on 2003/05/26  02:19:12
-        Log: * add Ingy's TPJ article as Module::Install-Intro.
-             * ramping up to the 0.20 release.
-	   + lib/Module/Install-Intro.pod
-	   ! Makefile.PL lib/Module/Install.pm
-____________________________________________________________________________
-[  1556] By: autrijus                              on 2003/05/26  01:55:20
-        Log: * added the "package inc::Module::Install;" line at
-             request by Graham Barr, for search.cpan.org.
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1555] By: autrijus                              on 2003/05/25  11:48:33
-        Log: * close META before zipping; otherwise trips on win32.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1554] By: autrijus                              on 2003/05/25  05:28:16
-        Log: * oops.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1553] By: autrijus                              on 2003/05/25  05:23:26
-        Log: * change magic for modern geckos
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1552] By: autrijus                              on 2003/05/25  01:11:03
-        Log: * only expands arrayrefs that occurs as the key, not value,
-	       block.
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1551] By: autrijus                              on 2003/05/25  00:01:02
-        Log: * requires(), build_requires(), recommends() etc can now
-	       take
-             multiple pairs in addition to a single pair.
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1550] By: autrijus                              on 2003/05/24  12:43:10
-        Log: * add standard MANIFEST and META.yml to generated PAR file.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1537] By: iain                                  on 2003/05/20  22:50:53
-        Log: Implemented the &Meta->read mentioned in the main docs.
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1533] By: autrijus                              on 2003/05/20  01:46:16
-        Log: * changes.
-	   ! Changes
-____________________________________________________________________________
-[  1532] By: autrijus                              on 2003/05/20  01:27:31
-        Log: * This be 0.19_99.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1531] By: autrijus                              on 2003/05/20  01:25:43
-        Log: * our version of WriteMakefile was failing to fine Meta
-	       object.	fixed.
-	   ! lib/Module/Install/MakeMaker.pm
-____________________________________________________________________________
-[  1529] By: ingy                                  on 2003/05/19  21:06:26
-        Log: 'make reset' now just an author side alias for 'make
-	     purge'.
-             Perhaps I should remove altogether.
-	   ! lib/Module/Install/Admin/Makefile.pm
-____________________________________________________________________________
-[  1520] By: ingy                                  on 2003/05/16  14:31:01
-        Log: make reset is really just make realclean. no need to be
-	     different.
-	   ! lib/Module/Install/Admin/Makefile.pm
-____________________________________________________________________________
-[  1517] By: autrijus                              on 2003/05/15  11:41:01
-        Log: * the whole #! business is unneeded since MakeMaker does
-	       that.
-	   ! lib/Module/Install/Scripts.pm
-____________________________________________________________________________
-[  1516] By: autrijus                              on 2003/05/15  11:14:59
-        Log: * avoid warnings.
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1515] By: autrijus                              on 2003/05/15  11:09:47
-        Log: * don't skip other non-pm inc/ stuff when checking
-	       manifest!
-	   ! lib/Module/Install/Admin/Manifest.pm
-____________________________________________________________________________
-[  1514] By: autrijus                              on 2003/05/15  10:02:29
-        Log: * more ->prompt consistency police actions
-             * the hashbang line should be the first not last in
-	       scripts.
-             * also people may not always like -w.
-	   ! lib/Module/Install/Scripts.pm
-____________________________________________________________________________
-[  1513] By: autrijus                              on 2003/05/15  09:51:28
-        Log: * we reall want to rmtree the distdir so that 'make
-	       manifest'
-             won't include clobbered files after an aborted 'make dist'.
-             * fix consistency: ->prompt() should only take one line of
-	       prompt
-             and excepts y/n.
-	   ! lib/Module/Install/Admin/Makefile.pm
-	   ! lib/Module/Install/Admin/Manifest.pm
-____________________________________________________________________________
-[  1511] By: autrijus                              on 2003/05/14  14:21:46
-        Log: * changes.
-	   ! Changes
-____________________________________________________________________________
-[  1510] By: autrijus                              on 2003/05/14  14:19:04
-        Log: * 0.19_98.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1509] By: autrijus                              on 2003/05/14  13:54:36
-        Log: * adds #line directive to inc/ files and note their
-             origins -- this helps to debug stuff from original files.
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1508] By: autrijus                              on 2003/05/14  13:21:23
-        Log: * the M::I::private is now encouraged to switch to
-             M::I::PRIVATE -- it's non-mandatory, but makes it stand
-	     out.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1502] By: iain                                  on 2003/05/13  01:28:08
-        Log: Latest EU::MM writes a META.yml file. So do we, so we stop
-	     EU::MM.
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1486] By: ingy                                  on 2003/05/08  11:33:37
-        Log: 5.005 bug
-	   ! lib/Module/Install/Scripts.pm
-____________________________________________________________________________
-[  1483] By: autrijus                              on 2003/05/08  01:26:46
-        Log: * This be 0.19_97.
-             * explains the new "nuke-inc/-for-authors" mechanics.
-	   ! lib/Module/Install.pm
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1481] By: autrijus                              on 2003/05/07  10:41:22
-        Log: * fix for 5.005 build.
-	   ! lib/Module/Install/AutoInstall.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1480] By: ingy                                  on 2003/05/07  10:39:42
-        Log: Since I nuke the inc/ in inc::Module::Include, this code
-	     was
-             unnecessary.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1479] By: autrijus                              on 2003/05/06  20:00:48
-        Log: * add scripts.pm to manifest.
-	   ! MANIFEST
-____________________________________________________________________________
-[  1478] By: autrijus                              on 2003/05/06  19:58:25
-        Log: * changes.
-	   ! Changes
-____________________________________________________________________________
-[  1477] By: autrijus                              on 2003/05/06  19:58:01
-        Log: * changes.
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1476] By: autrijus                              on 2003/05/06  19:50:52
-        Log: * 19_96 snapshot.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1475] By: autrijus                              on 2003/05/06  19:50:44
-        Log: * WriteMakefile() now also calls &Meta->write since that's 
-             the direction schwern's going, too.
-	   ! lib/Module/Install/MakeMaker.pm
-____________________________________________________________________________
-[  1474] By: ingy                                  on 2003/05/05  15:25:47
-        Log: Module::Install keys off inc/.author/ directory now.
-             Autrijus, Please look this over carefully. Seems to work
-	     ok.
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Admin/Makefile.pm
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1418] By: autrijus                              on 2003/04/07  08:40:18
-        Log: * fix cases where Win32 has space in $^X.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1405] By: autrijus                              on 2003/03/30  14:11:40
-        Log: * add a mental hint from schwern.
-	   ! ToDo
-____________________________________________________________________________
-[  1402] By: autrijus                              on 2003/03/27  08:15:08
-        Log: * changes.
-	   ! Changes
-____________________________________________________________________________
-[  1401] By: autrijus                              on 2003/03/27  08:11:53
-        Log: * the 19_95 development snapshot.
-	   ! Makefile.PL README lib/Module/Install.pm
-____________________________________________________________________________
-[  1398] By: autrijus                              on 2003/03/26  08:45:50
-        Log: * Peter Sergeant reported a possible 5.005 glitch.
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1397] By: autrijus                              on 2003/03/23  21:44:22
-        Log: * rcs header.
-	   ! lib/Module/Install/Admin/Makefile.pm
-	   ! lib/Module/Install/Scripts.pm
-____________________________________________________________________________
-[  1396] By: autrijus                              on 2003/03/23  21:44:16
-        Log: * backing out dysfunctional magic.
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1395] By: ingy                                  on 2003/03/23  15:09:08
-        Log: This module makes it easy to install scripts in
-	     distributions.
-	   + lib/Module/Install/Scripts.pm
-____________________________________________________________________________
-[  1394] By: ingy                                  on 2003/03/23  09:19:43
-        Log: extra cleaning
-	   ! lib/Module/Install/Admin/Makefile.pm
-____________________________________________________________________________
-[  1393] By: ingy                                  on 2003/03/23  09:19:28
-        Log: Backing out until Autrijus fixes Admin-to-Admin calling
-	   ! lib/Module/Install/Admin/Manifest.pm
-____________________________________________________________________________
-[  1392] By: ingy                                  on 2003/03/23  09:12:23
-        Log: .
-	   ! MANIFEST.SKIP
-____________________________________________________________________________
-[  1391] By: autrijus                              on 2003/03/22  23:25:16
-        Log: * some preliminary fix.
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Admin/Manifest.pm
-____________________________________________________________________________
-[  1390] By: ingy                                  on 2003/03/22  22:04:23
-        Log: This patch works, but needs refactoring. 
-             I had to duplicate code because I could not figure out how
-	     to call
-             methods across Admin modules. HELP!
-	   ! MANIFEST lib/Module/Install/Admin/Makefile.pm
-	   ! lib/Module/Install/Admin/Manifest.pm
-	   ! lib/Module/Install/Build.pm
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1389] By: ingy                                  on 2003/03/22  18:20:49
-        Log: adding admin module
-	   + lib/Module/Install/Admin/Makefile.pm
-____________________________________________________________________________
-[  1388] By: ingy                                  on 2003/03/22  17:54:28
-        Log: Added support for checking the MANIFEST on 'make dist'.
-             Refactored the fix_up_makefile()
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1387] By: autrijus                              on 2003/03/22  15:50:18
-        Log: * sudo installation support.
-	   ! lib/Module/Install/AutoInstall.pm
-____________________________________________________________________________
-[  1386] By: autrijus                              on 2003/03/22  15:09:03
-        Log: * fix cleaninstall.
-	   ! MANIFEST Makefile.PL
-____________________________________________________________________________
-[  1384] By: ingy                                  on 2003/03/22  14:03:27
-        Log: Setting +w
-	   ! MANIFEST
-____________________________________________________________________________
-[  1383] By: ingy                                  on 2003/03/22  14:00:19
-        Log: Oops. I busted 'make reset' on last fix. Fixed.
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1382] By: ingy                                  on 2003/03/22  13:55:14
-        Log: A fix for the segfaults I was getting. This fix demands:
-             
-             use inc::Module::Install;
-             
-             over:
-             
-             use lib 'inc';
-             use Module::Install;
-             
-             But the latter was busted on first run anyway (segfault).
-	   ! MANIFEST lib/Module/Install.pm
-____________________________________________________________________________
-[  1381] By: autrijus                              on 2003/03/22  10:51:21
-        Log: * adding manifest back in.
-	   + MANIFEST
-____________________________________________________________________________
-[  1380] By: autrijus                              on 2003/03/22  07:16:08
-        Log: * beginning of a cookbook
-	   ! lib/Module/Install-Cookbook.pod
-____________________________________________________________________________
-[  1379] By: autrijus                              on 2003/03/22  07:15:33
-        Log: * better stripping to be more perl-like but less
-	       podspec-like
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1376] By: autrijus                              on 2003/03/19  04:49:04
-        Log: * attach / for ftp urls, too.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1375] By: autrijus                              on 2003/03/18  12:29:32
-        Log: * switching to @INC instead of use base because it's broken
-	       on 5.6.0.
-             * sad but true.
-	   ! lib/Module/Install/Admin/Find.pm
-	   ! lib/Module/Install/Admin/Manifest.pm
-	   ! lib/Module/Install/Admin/Metadata.pm
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-	   ! lib/Module/Install/AutoInstall.pm
-	   ! lib/Module/Install/Base.pm
-	   ! lib/Module/Install/Build.pm
-	   ! lib/Module/Install/Bundle.pm
-	   ! lib/Module/Install/Include.pm
-	   ! lib/Module/Install/Inline.pm
-	   ! lib/Module/Install/MakeMaker.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Makefile/Name.pm
-	   ! lib/Module/Install/Makefile/Version.pm
-	   ! lib/Module/Install/Metadata.pm
-	   ! lib/Module/Install/Run.pm
-____________________________________________________________________________
-[  1374] By: autrijus                              on 2003/03/18  11:50:15
-        Log: * new ftp_url args to specify non-http alternatives.
-             * find out the http location to nmake15.exe.
-	   ! lib/Module/Install/Fetch.pm
-	   ! lib/Module/Install/PAR.pm
-	   ! lib/Module/Install/Win32.pm
-____________________________________________________________________________
-[  1373] By: autrijus                              on 2003/03/18  11:33:41
-        Log: * preliminary http support in Fetch.
-             * use that for CPAN.
-	   ! lib/Module/Install/Fetch.pm
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1372] By: autrijus                              on 2003/03/18  11:18:27
-        Log: * fix incorrect $cmd overwriting
-	   ! lib/Module/Install/Can.pm
-____________________________________________________________________________
-[  1371] By: autrijus                              on 2003/03/18  04:22:04
-        Log: * they are private extensions, therefore private >
-	       PERSONAL.
-             (it's not an acronym, it's a local config, like
-	     only::config,
-             hence the lowercase).
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1364] By: ingy                                  on 2003/03/11  22:44:50
-        Log: I assume this is a bug...
-	   ! lib/Module/Install/Can.pm
-____________________________________________________________________________
-[  1363] By: autrijus                              on 2003/03/11  22:38:28
-        Log: * don't delete just overlay, so we don't' trigger 5.8 bugs.
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1362] By: autrijus                              on 2003/03/11  06:39:24
-        Log: * make fetch non-fatal, thanks to Markus.
-	   ! lib/Module/Install/Can.pm
-	   ! lib/Module/Install/Fetch.pm
-____________________________________________________________________________
-[  1361] By: autrijus                              on 2003/03/11  02:13:18
-        Log: * docs adjustment.
-	   ! lib/Module/Install/Base.pm
-____________________________________________________________________________
-[  1360] By: autrijus                              on 2003/03/11  01:53:52
-        Log: * empty run.pm.
-	   ! lib/Module/Install/Run.pm
-____________________________________________________________________________
-[  1359] By: autrijus                              on 2003/03/11  01:49:03
-        Log: * docs.
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1358] By: autrijus                              on 2003/03/11  01:35:15
-        Log: * move capacities into Can.
-	  +> lib/Module/Install/Can.pm
-____________________________________________________________________________
-[  1347] By: autrijus                              on 2003/03/10  00:25:34
-        Log: * make fetch_par use the correct name.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1345] By: autrijus                              on 2003/03/10  00:10:13
-        Log: * we don't _really_ want to bundle M::B.
-	   ! Makefile.PL
-____________________________________________________________________________
-[  1344] By: autrijus                              on 2003/03/10  00:10:02
-        Log: * beginning of bundle support.
-	   + lib/Module/Install/Bundle.pm
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1343] By: autrijus                              on 2003/03/09  23:46:12
-        Log: * according to ingy, Inline is required, not
-	       build_required.
-	   ! lib/Module/Install/Inline.pm
-____________________________________________________________________________
-[  1342] By: autrijus                              on 2003/03/09  23:41:34
-        Log: * make include_dep('Inline') work.
-	   ! lib/Module/Install/Inline.pm
-____________________________________________________________________________
-[  1341] By: autrijus                              on 2003/03/09  23:28:03
-        Log: * add section markers to makefiles.
-             * beginning of Inline support.
-             * mention Inline and PAR in M::I manpage.
-             * WriteMakefile() now does argument translation so it
-             can work with other ::Metadata-related mechanisms.
-	   + lib/Module/Install/Inline.pm
-	   ! ToDo lib/Module/Install.pm
-	   ! lib/Module/Install/AutoInstall.pm
-	   ! lib/Module/Install/MakeMaker.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1340] By: autrijus                              on 2003/03/09  23:26:56
-        Log: * redid find_in_inc as glob_in_inc.
-	   ! Makefile.PL lib/Module/Install/Admin/Find.pm
-	   ! lib/Module/Install/Admin/Manifest.pm
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-	   ! lib/Module/Install/Include.pm
-____________________________________________________________________________
-[  1337] By: autrijus                              on 2003/03/09  06:07:19
-        Log: * oops, no need for $suffix anymore.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1336] By: autrijus                              on 2003/03/09  06:00:16
-        Log: * ditch DISTVNAME for the more consistent $file.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1335] By: autrijus                              on 2003/03/09  04:36:05
-        Log: * don't feature anything by default.
-	   ! Makefile.PL
-____________________________________________________________________________
-[  1334] By: autrijus                              on 2003/03/09  04:34:44
-        Log: * adds PAR and Build prereqs.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1333] By: autrijus                              on 2003/03/09  04:34:29
-        Log: * 5.6.1 doesn't have PERLRUN ;)
-	   ! Makefile.PL lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1332] By: autrijus                              on 2003/03/09  04:18:29
-        Log: * various 5.6.1-building tweaks
-	   ! Makefile.PL
-	   ! lib/Module/Install/Admin/Manifest.pm
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-____________________________________________________________________________
-[  1331] By: autrijus                              on 2003/03/09  03:25:51
-        Log: * nmake doesn't do PERLRUN lookahead. bummer.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1330] By: autrijus                              on 2003/03/09  03:20:48
-        Log: * turns out $0 doesn't guarantee casing.
-	   ! Makefile.PL
-____________________________________________________________________________
-[  1329] By: autrijus                              on 2003/03/09  03:19:04
-        Log: * prefer more orthodox quoting for nmake.
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1328] By: autrijus                              on 2003/03/08  13:42:14
-        Log: * implments auto_install_now() to solve bootstrap issues.
-             * M::I::B now delays requiring Module::Build till it's
-	       actual needed.
-	   ! Makefile.PL lib/Module/Install/AutoInstall.pm
-	   ! lib/Module/Install/Build.pm
-____________________________________________________________________________
-[  1326] By: autrijus                              on 2003/03/08  09:16:07
-        Log: * spelling corrections.
-	   ! lib/Module/Install/AutoInstall.pm
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1325] By: autrijus                              on 2003/03/08  08:56:10
-        Log: * i don't like correcting myself.
-	   ! lib/Module/Install/Admin/Manifest.pm
-____________________________________________________________________________
-[  1324] By: autrijus                              on 2003/03/08  08:53:29
-        Log: * this too.
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1323] By: autrijus                              on 2003/03/08  08:52:50
-        Log: * correct perlrun line.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1322] By: autrijus                              on 2003/03/08  08:11:40
-        Log: * returns the fetched file.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1321] By: autrijus                              on 2003/03/08  07:33:19
-        Log: * failed reference lesson 101.
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1320] By: autrijus                              on 2003/03/08  07:27:42
-        Log: * ok, i lied.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1319] By: autrijus                              on 2003/03/08  07:25:14
-        Log: * final tweak.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1318] By: autrijus                              on 2003/03/08  07:20:24
-        Log: * fix messages for compactness.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1317] By: autrijus                              on 2003/03/08  06:25:04
-        Log: * shorter can_run().
-	   ! lib/Module/Install/Run.pm
-____________________________________________________________________________
-[  1316] By: autrijus                              on 2003/03/08  06:09:48
-        Log: * refactor out par_fetch.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1315] By: autrijus                              on 2003/03/08  02:43:21
-        Log: * oops.
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1314] By: autrijus                              on 2003/03/08  02:41:17
-        Log: * $@ warning is now restored.
-             * cleaners Metadata dump.
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1313] By: autrijus                              on 2003/03/08  02:30:22
-        Log: * don't test for signature if we don't have it yet.
-	   ! t/0-signature.t
-____________________________________________________________________________
-[  1312] By: autrijus                              on 2003/03/08  02:29:26
-        Log: * oops, PAR files starts at lib/, arch/ not blib/.
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1311] By: autrijus                              on 2003/03/08  01:32:42
-        Log: * -w runs clean now.
-             * fix Manifest.pm to look all of inc/. it was always the
-             case but only because a bug ($DIR was always undef).
-             * more robust detection for ScanDeps.
-             * AutoInstall is also -w clean now.
-	   ! lib/Module/Install/Admin/Manifest.pm
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-	   ! lib/Module/Install/AutoInstall.pm
-____________________________________________________________________________
-[  1310] By: autrijus                              on 2003/03/08  01:29:15
-        Log: * continue razoring. $extension->initialized is gone.
-	       yagni.
-             (->initialized is always false iff ->admin is true.)
-             * nix the only place we use initialized().
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Base.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1309] By: autrijus                              on 2003/03/08  01:27:31
-        Log: * beginning of -w saftety patches.
-             * M::I->admin is gone. yagni at all.
-             * simplify load_extensions so we do not load a file twice.
-             * don't attempt finding in paths that does not exist.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1308] By: autrijus                              on 2003/03/07  22:46:17
-        Log: * massive documentation rework, phase #1.
-	   ! ToDo lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Base.pm
-____________________________________________________________________________
-[  1299] By: autrijus                              on 2003/03/07  18:04:41
-        Log: * local @INC *not* needed if inc/ is the first @INC
-	       element.
-             * also check for duplicate @INC insertion in admin.
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1298] By: autrijus                              on 2003/03/07  17:58:06
-        Log: * look in all @INC not just the first.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1297] By: autrijus                              on 2003/03/07  17:55:15
-        Log: * still need to tweak @INC before loading extensions,
-             otherwise inc/ExtUtils/AutoInstall etc won't be loaded.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1296] By: autrijus                              on 2003/03/07  17:51:50
-        Log: * nomenclature fix. remove unneccessary unshift.
-             * readability fix from #perl.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1295] By: autrijus                              on 2003/03/07  09:51:59
-        Log: * better messages.
-             * 01:48 <kaneX> you just made napc using par?
-             * 01:48 <autrijus> an important piece of napc, yes.
-             * 01:49 <autrijus> will be a full napc with some kind of
-	       discovery network.
-             * 01:49 <autrijus> but the hardest bit is done!
-	   ! lib/Module/Install/PAR.pm
-____________________________________________________________________________
-[  1294] By: autrijus                              on 2003/03/07  09:20:43
-        Log: * all magics are broken with the new oo model till this
-	       fix.
-	   ! lib/Module/Install.pm
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1293] By: autrijus                              on 2003/03/07  09:11:39
-        Log: * up the stake to 0.45.
-	   ! lib/Module/Install/AutoInstall.pm
-____________________________________________________________________________
-[  1292] By: autrijus                              on 2003/03/07  08:56:21
-        Log: * don't download PAR distributions since we are, uhm, not
-	       binary.
-	   ! Makefile.PL
-____________________________________________________________________________
-[  1291] By: autrijus                              on 2003/03/07  08:56:07
-        Log: * generic support for EU::AI without recommends().
-	   ! lib/Module/Install/AutoInstall.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1290] By: autrijus                              on 2003/03/07  08:55:15
-        Log: * lazybones documentation 101: delete all modules you
-	       didn't get to write docs for ;)
-             * seriously, clean_files is definitely Makefile domain, not
-	       'Directives'.
-	   - lib/Module/Install/Directives.pm
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1288] By: autrijus                              on 2003/03/06  21:32:32
-        Log: * doco and typo
-	   + lib/Module/Install-Cookbook.pod
-	   ! Makefile.PL lib/Module/Install-Philosophy.pod
-____________________________________________________________________________
-[  1287] By: autrijus                              on 2003/03/06  19:55:47
-        Log: * add build-friendly manifest.skip
-	   ! MANIFEST.SKIP
-____________________________________________________________________________
-[  1286] By: autrijus                              on 2003/03/06  19:54:38
-        Log: * kill todo so poor case-insensitive sods won't be
-	       confused.
-	   - TODO
-____________________________________________________________________________
-[  1285] By: autrijus                              on 2003/03/06  19:53:42
-        Log: * Build.PL is now merely an alias for Makefile.PL
-             * doc tweaks
-	   ! Build.PL Makefile.PL
-	   ! lib/Module/Install/Build.pm
-____________________________________________________________________________
-[  1284] By: autrijus                              on 2003/03/06  19:51:49
-        Log: * autoinstall lands!
-	   ! lib/Module/Install/AutoInstall.pm
-	   ! lib/Module/Install/Include.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1282] By: ingy                                  on 2003/03/06  11:34:16
-        Log: *
-	   ! ToDo lib/Module/Install/Admin/Manifest.pm
-____________________________________________________________________________
-[  1281] By: autrijus                              on 2003/03/06  09:01:45
-        Log: * correct invocation.
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1280] By: autrijus                              on 2003/03/06  09:01:31
-        Log: * pick() now prefers more recently modified extensions.
-             * it can also take a default of first by pressing 'enter'.
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1279] By: autrijus                              on 2003/03/06  09:00:51
-        Log: * add M::I::A::Metadata to docs.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1278] By: autrijus                              on 2003/03/06  08:50:03
-        Log: * nomenclature.
-	   ! lib/Module/Install/Admin/Metadata.pm
-____________________________________________________________________________
-[  1277] By: autrijus                              on 2003/03/06  08:49:40
-        Log: * Util is now gone. Metadata.pm now in.
-	  +> lib/Module/Install/Admin/Metadata.pm
-	   - lib/Module/Install/Admin/Util.pm
-____________________________________________________________________________
-[  1276] By: autrijus                              on 2003/03/06  08:48:13
-        Log: * introduces M::I::A::Find to contain all find-related
-	       stuff.
-	   + lib/Module/Install/Admin/Find.pm
-	   ! lib/Module/Install/Admin/Manifest.pm
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-____________________________________________________________________________
-[  1275] By: autrijus                              on 2003/03/06  08:47:53
-        Log: * continue moving out Util.
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1274] By: autrijus                              on 2003/03/06  08:47:14
-        Log: * File::Find is shorter, why not?
-	   ! lib/Module/Install/Makefile/Name.pm
-	   ! lib/Module/Install/Makefile/Version.pm
-____________________________________________________________________________
-[  1273] By: autrijus                              on 2003/03/06  08:46:30
-        Log: * use M::I version instead of hard-coding Metadata.
-	   ! lib/Module/Install/Admin/Util.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1272] By: autrijus                              on 2003/03/06  08:45:46
-        Log: * M::I::A can now export its own variant of AUTOLOAD into
-             the calling package when directly used, like from command
-	     line.
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1271] By: autrijus                              on 2003/03/06  08:44:59
-        Log: * $main::VARNAME considered broken.  remove it completely.
-	   - lib/Module/Install/Makefile/CleanFiles.pm
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1270] By: autrijus                              on 2003/03/06  08:02:36
-        Log: * i'm growing uneasy about the kitchen-sink name 'Util'.
-	   ! lib/Module/Install/Admin/Util.pm
-____________________________________________________________________________
-[  1269] By: autrijus                              on 2003/03/06  07:55:53
-        Log: * modernized Util.
-             * constant refactoring continues.
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-	   ! lib/Module/Install/Admin/Util.pm
-	   ! lib/Module/Install/Include.pm
-____________________________________________________________________________
-[  1268] By: autrijus                              on 2003/03/06  07:35:09
-        Log: * cutesy style indenting. ;)
-	   ! Makefile.PL
-____________________________________________________________________________
-[  1267] By: autrijus                              on 2003/03/06  07:34:59
-        Log: * fixed admin dispatching.
-             * adds build_requires.
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1266] By: autrijus                              on 2003/03/06  02:45:58
-        Log: * pod-checked the manual.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1265] By: autrijus                              on 2003/03/06  02:44:27
-        Log: * spell-checked the docs.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1264] By: autrijus                              on 2003/03/06  02:43:23
-        Log: * split the Build.PL and Makefile.PL install path.
-	   + Build.PL
-	   ! Makefile.PL README
-____________________________________________________________________________
-[  1263] By: autrijus                              on 2003/03/06  02:37:29
-        Log: * vastly improved documentation.
-             * continue refactoring to must _find_files inside Admin/.
-             * we eventually wants to switch to Find::Files.
-	   ! README lib/Module/Install.pm
-	   ! lib/Module/Install/Admin/Manifest.pm
-	   ! lib/Module/Install/Base.pm
-	   ! lib/Module/Install/Include.pm
-	   ! lib/Module/Install/MakeMaker.pm
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1262] By: autrijus                              on 2003/03/05  21:43:15
-        Log: * amazing refactoring of M::I::A classes and class model.
-	   ! MANIFEST.SKIP lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Base.pm
-	   ! lib/Module/Install/Build.pm
-	   ! lib/Module/Install/Include.pm
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1261] By: ingy                                  on 2003/03/05  20:17:46
-        Log: .
-	   ! ToDo
-____________________________________________________________________________
-[  1260] By: ingy                                  on 2003/03/05  18:55:52
-        Log: To Do list
-	   + ToDo
-____________________________________________________________________________
-[  1258] By: ingy                                  on 2003/03/05  16:24:33
-        Log: You can do BOTH!!!
-	   ! Makefile.PL
-____________________________________________________________________________
-[  1257] By: ingy                                  on 2003/03/05  16:11:32
-        Log: Works with Module::Build!!
-             
-             Need to ensure it uses included copy if Module::Build is
-	     included.
-             
-             Need to specify extra ACTIONs
-             
-             Probably lots of other stuff.
-	   + lib/Module/Install/Build.pm
-	   ! Makefile.PL
-____________________________________________________________________________
-[  1256] By: ingy                                  on 2003/03/05  14:08:36
-        Log: Refactor bundle->include
-             
-             I think that 'include' is the term we should be used for
-             non-installable files that go in the *inc* directory.
-             
-             Bundles will be complete distributions that will either go
-	     under
-             BUNDLE/ or inc/BUNDLE or something.
-	   + lib/Module/Install/Include.pm
-	   - lib/Module/Install/Bundle.pm
-	   ! Changes Makefile.PL lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-____________________________________________________________________________
-[  1255] By: ingy                                  on 2003/03/05  13:23:32
-        Log: 'make reset' now gets rid of auto-generated META.yml and
-	     cleans out
-             the MANIFEST of inc/ files.
-	   + lib/Module/Install/Admin/Util.pm
-	   - MANIFEST
-	   ! lib/Module/Install/Admin/Manifest.pm
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1254] By: ingy                                  on 2003/03/05  12:30:51
-        Log: Honor the MANIFEST.SKIP
-             I don't think we want to ship ./inc/Module/Install files,
-	     but we do
-             want to ship ./inc/Test files etc.
-	   - Idea
-	   ! MANIFEST MANIFEST.SKIP
-	   ! lib/Module/Install/Admin/Manifest.pm
-____________________________________________________________________________
-[  1253] By: ingy                                  on 2003/03/05  11:38:56
-        Log: Temporary fix to bootstrapping issue with Module::ScanDeps
-	   ! Makefile.PL
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-____________________________________________________________________________
-[  1252] By: autrijus                              on 2003/03/05  09:23:09
-        Log: * change package name.
-	   ! lib/Module/Install/Admin/Manifest.pm
-	   ! lib/Module/Install/Admin/ScanDeps.pm
-____________________________________________________________________________
-[  1251] By: autrijus                              on 2003/03/05  09:21:56
-        Log: * move administrative-only extensions to M::I::A.
-	  +> lib/Module/Install/Admin/Manifest.pm
-	  +> lib/Module/Install/Admin/ScanDeps.pm
-	   - lib/Module/Install/Manifest.pm
-	   - lib/Module/Install/ScanDeps.pm
-____________________________________________________________________________
-[  1250] By: autrijus                              on 2003/03/05  09:06:24
-        Log: * first cut at bundle() and bundle_deps().
-             * take the M::I::AI namespace.
-	   + lib/Module/Install/AutoInstall.pm
-	   + lib/Module/Install/Bundle.pm
-	   + lib/Module/Install/ScanDeps.pm
-	   ! Makefile.PL lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Base.pm
-____________________________________________________________________________
-[  1249] By: autrijus                              on 2003/03/05  05:16:25
-        Log: * please, please abide by the spec.
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1246] By: ingy                                  on 2003/03/05  00:07:36
-        Log: Made pod strip a bit more vigilant
-	   ! MANIFEST lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1245] By: ingy                                  on 2003/03/04  23:57:46
-        Log: I don't think 'mkdir' messages are that useful.
-	   ! MANIFEST lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1244] By: ingy                                  on 2003/03/04  23:48:11
-        Log: Giving up on having 'make reset' clean the MANIFEST. Maybe
-	     I try again
-             later.
-	   ! MANIFEST lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Manifest.pm
-____________________________________________________________________________
-[  1243] By: autrijus                              on 2003/03/04  23:16:31
-        Log: * correct invocation.
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Manifest.pm
-____________________________________________________________________________
-[  1242] By: autrijus                              on 2003/03/04  23:11:57
-        Log: * fix ingy's thinko.
-	   ! lib/Module/Install/Manifest.pm
-____________________________________________________________________________
-[  1241] By: ingy                                  on 2003/03/04  23:09:11
-        Log: checkin
-	   ! MANIFEST lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Manifest.pm
-____________________________________________________________________________
-[  1239] By: autrijus                              on 2003/03/04  22:56:00
-        Log: * oops.
-	   ! MANIFEST
-____________________________________________________________________________
-[  1238] By: autrijus                              on 2003/03/04  22:50:35
-        Log: * cosmetic styles.
-	   ! Makefile.PL README lib/Module/Install/Fetch.pm
-	   ! t/0-signature.t
-____________________________________________________________________________
-[  1237] By: autrijus                              on 2003/03/04  22:44:36
-        Log: * now that we have MIB, move everything to subclass it.
-             * also moves the vim hint line to top.
-	   + lib/Module/Install/MakeMaker.pm
-	   ! lib/Module/Install/Directives.pm
-	   ! lib/Module/Install/Fetch.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Makefile/CleanFiles.pm
-	   ! lib/Module/Install/Makefile/Name.pm
-	   ! lib/Module/Install/Makefile/Version.pm
-	   ! lib/Module/Install/Manifest.pm
-	   ! lib/Module/Install/Metadata.pm
-	   ! lib/Module/Install/Run.pm
-	   ! lib/Module/Install/Win32.pm
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1236] By: autrijus                              on 2003/03/04  22:43:47
-        Log: * use canonical POD stripping according to perlpodspec.
-             * copy_package is now used to copy the @ISA tree too.
-             * tweaked prompts in pick().
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1235] By: autrijus                              on 2003/03/04  22:36:08
-        Log: * put documents into PODs to take advantage of stripping.
-             * rewrote find_extensions to use File::Find.
-             * M::I no longer sports an AUTOLOAD -- it's M::I::B's job
-	       now.
-             * load_extensions now take another $top arg instead of
-	       guessing.
-             * stop blind exporting into extension space.
-             * introduces MIB.
-	   + lib/Module/Install/Base.pm
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1234] By: autrijus                              on 2003/03/04  22:33:36
-        Log: * bring our manifest uptodate.
-	   ! MANIFEST
-____________________________________________________________________________
-[  1233] By: ingy                                  on 2003/03/04  20:39:00
-        Log: Strip out POD when copying extensions.
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1232] By: ingy                                  on 2003/03/04  19:36:13
-        Log: Moved rest of POD into modules.
-	   - lib/Module/Install.pod
-	   - lib/Module/Install/Admin.pod
-	   - lib/Module/Install/Win32.pod
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Win32.pm
-____________________________________________________________________________
-[  1231] By: ingy                                  on 2003/03/04  19:25:42
-        Log: Refactored Manifest.pm
-             Now removes entries appropriately
-             Started inlining pod
-	   - lib/Module/Install/Makefile.pod
-	   - lib/Module/Install/Manifest.pod
-	   ! MANIFEST Makefile.PL
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Manifest.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1229] By: autrijus                              on 2003/03/04  04:07:59
-        Log: * first cut at a workinc pick().
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1228] By: autrijus                              on 2003/03/04  04:01:24
-        Log: * style changes, tabs, rcs.
-	   ! lib/Module/Install/Directives.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1223] By: autrijus                              on 2003/03/04  01:22:48
-        Log: * use closures instead of the costly (and
-	       syntax-hilightning-nonfriendly) eval.
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1222] By: ingy                                  on 2003/03/04  00:54:06
-        Log: Needed to require MM_Unix
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1221] By: autrijus                              on 2003/03/04  00:50:51
-        Log: * oops, left debug code in.
-	   ! lib/Module/Install/Win32.pm
-____________________________________________________________________________
-[  1220] By: ingy                                  on 2003/03/04  00:49:28
-        Log: Tweks
-	   ! lib/Module/Install/Directives.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Manifest.pm
-____________________________________________________________________________
-[  1217] By: ingy                                  on 2003/03/04  00:12:24
-        Log: Got basics of metadata working.
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Metadata.pm
-____________________________________________________________________________
-[  1216] By: autrijus                              on 2003/03/03  23:58:30
-        Log: * oops. now display failures.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1215] By: autrijus                              on 2003/03/03  23:56:31
-        Log: * correct typo.
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1214] By: ingy                                  on 2003/03/03  23:52:56
-        Log: Adding Metadata.pm extension - (in progress)
-	   + lib/Module/Install/Directives.pm
-	   + lib/Module/Install/Metadata.pm
-	   ! Makefile.PL lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Makefile/Name.pm
-	   ! lib/Module/Install/Makefile/Version.pm
-____________________________________________________________________________
-[  1213] By: autrijus                              on 2003/03/03  23:07:45
-        Log: * retab.
-	   ! Changes Makefile.PL README
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Fetch.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Makefile/Name.pm
-	   ! lib/Module/Install/Makefile/Version.pm
-	   ! lib/Module/Install/Manifest.pm
-	   ! lib/Module/Install/Win32.pm t/0-signature.t
-____________________________________________________________________________
-[  1212] By: autrijus                              on 2003/03/03  21:52:58
-        Log: * oops, ->initialized is evaluating the incorrect object.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1211] By: autrijus                              on 2003/03/03  21:37:50
-        Log: * export initialized.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1210] By: autrijus                              on 2003/03/03  21:36:49
-        Log: * fix makefile arg() so that undef means read.
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Makefile/Version.pm
-____________________________________________________________________________
-[  1209] By: autrijus                              on 2003/03/03  21:35:42
-        Log: * remove debug info.
-             * inheritance now really works.
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1208] By: autrijus                              on 2003/03/03  21:34:39
-        Log: * implement (import => [...]) that can override autoload.
-             * provide ->initialized.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1207] By: autrijus                              on 2003/03/03  20:20:22
-        Log: * use stringified, not numeric, version.
-             * s/require/do/; to prevent @INC abuse.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1206] By: autrijus                              on 2003/03/03  20:19:42
-        Log: * do not load Admin twice.
-             * add new method, initialized, that returns false only
-	       during first run
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1205] By: ingy                                  on 2003/03/03  13:36:30
-        Log: Added version_from support
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Makefile/Version.pm
-____________________________________________________________________________
-[  1204] By: autrijus                              on 2003/03/02  21:32:55
-        Log: * refactored the object model to be fully subclassable.
-             * also ensures forward-compatibility by avoiding
-	       __PACKAGE__
-             * the use of global variables and _copy flags are
-	       eliminated.
-             * bootstrapping moved to ::Admin because never needed on
-	       user-side.
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1203] By: autrijus                              on 2003/03/01  21:36:25
-        Log: * remove possible '//' on weird search paths.
-	   ! lib/Module/Install/Manifest.pm
-____________________________________________________________________________
-[  1202] By: autrijus                              on 2003/03/01  21:35:53
-        Log: * clean up the Makefile OO model; ->makefile is now
-	       identity
-             function returning the makefile object; ->arg is now the
-             universal accessor to that object.
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Makefile/CleanFiles.pm
-	   ! lib/Module/Install/Makefile/Name.pm
-	   ! lib/Module/Install/Makefile/Version.pm
-____________________________________________________________________________
-[  1201] By: autrijus                              on 2003/03/01  21:35:11
-        Log: * reintroduce copy() to tell user what we're doing.
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1200] By: autrijus                              on 2003/03/01  21:34:21
-        Log: * do not fail silently on failed extensions.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1199] By: autrijus                              on 2003/03/01  21:33:33
-        Log: * spell checking + cleaning up
-	   ! TODO lib/Module/Install-Philosophy.pod
-____________________________________________________________________________
-[  1198] By: autrijus                              on 2003/03/01  18:55:39
-        Log: * move name() and version() to become accessor functions of
-	       Makefile object.
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Makefile/Name.pm
-	   ! lib/Module/Install/Makefile/Version.pm
-____________________________________________________________________________
-[  1197] By: autrijus                              on 2003/03/01  18:49:43
-        Log: * unify varname 'object' to 'obj'.
-             * remove a debug line.
-             * decline from delegating all-uppercase like UNTIE, not
-	       only DESTROY
-             * now $default_obj is only instantialized once.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1196] By: autrijus                              on 2003/03/01  18:34:40
-        Log: * minimizing i::M::I to avoid screwing up pause.
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1195] By: autrijus                              on 2003/03/01  18:17:29
-        Log: * oops, was copying inc::M::I instead of M::I.
-             * use i::M::I ourselves for dogfooding.
-	   ! Makefile.PL lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1194] By: autrijus                              on 2003/03/01  18:09:17
-        Log: * s/require/use/.
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1193] By: ingy                                  on 2003/03/01  17:44:27
-        Log: Added name and version functions to user API
-             Let's get this to the point where we don't accept any
-	     parameters
-             passed into WriteMakefile.
-             
-             Which should be:
-             
-             makefile()->write; 
-             
-             anyway :)
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Makefile/Name.pm
-	   ! lib/Module/Install/Makefile/Version.pm
-____________________________________________________________________________
-[  1192] By: ingy                                  on 2003/03/01  16:47:50
-        Log: Turning the prompt() function into a method call needed to
-	     be
-             adjusted.
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1191] By: ingy                                  on 2003/03/01  16:34:47
-        Log: Rearranged i::M::I to be a bit more straightforward.
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1190] By: ingy                                  on 2003/03/01  16:07:42
-        Log: Did a little name-change refactoring whilst trying to
-	     figure out
-             autrijus code. We need more tests to make sure things
-	     aren't breaking.
-             I'm gonna start working on some tests soon.
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1189] By: ingy                                  on 2003/03/01  13:16:46
-        Log: Make reset needs to blow away ./inc
-             A purge routine seems yagni
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1188] By: autrijus                              on 2003/03/01  08:01:16
-        Log: * change semantic: ->call now marks author-side calls;
-             it will silently fail if no ::Admin is found.
-             * ->load now marks client-side inclusion; it will guarantee
-             that the provider is copied to inc/.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1187] By: autrijus                              on 2003/03/01  04:31:52
-        Log: * remove MakeMaker from MANIFEST.
-             * it's now purge_extensions, not purge_self.
-	   ! MANIFEST lib/Module/Install/Makefile.pm
-____________________________________________________________________________
-[  1186] By: autrijus                              on 2003/03/01  04:29:41
-        Log: * it compiles. ship it!
-	   ! MANIFEST lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Makefile/CleanFiles.pm
-	   ! lib/Module/Install/Makefile/Name.pm
-	   ! lib/Module/Install/Makefile/Version.pm
-	   ! lib/Module/Install/Manifest.pm
-____________________________________________________________________________
-[  1185] By: autrijus                              on 2003/03/01  03:47:14
-        Log: * The great OO refactoring, try #1.
-	   + lib/Module/Install/Fetch.pm
-	   + lib/Module/Install/Makefile/CleanFiles.pm
-	   + lib/Module/Install/Makefile/Name.pm
-	   + lib/Module/Install/Makefile/Version.pm
-	   + lib/Module/Install/Run.pm
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/Makefile.pm
-	   ! lib/Module/Install/Manifest.pm
-	   ! lib/Module/Install/Win32.pm
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1184] By: autrijus                              on 2003/03/01  03:06:52
-        Log: * s/MakeMaker/Makefile/ per ingy's ideas.
-	  +> lib/Module/Install/Makefile.pm
-	  +> lib/Module/Install/Makefile.pod
-	   - lib/Module/Install/MakeMaker.pm
-	   - lib/Module/Install/MakeMaker.pod
-____________________________________________________________________________
-[  1182] By: autrijus                              on 2003/02/28  22:45:34
-        Log: * oops, ingy pointed out that import wasn't working.
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1181] By: autrijus                              on 2003/02/28  22:43:07
-        Log: * strict 'refs' is not our concern.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1180] By: autrijus                              on 2003/02/28  22:23:28
-        Log: * wording fix.
-             * add Ideas to manifest.
-	   ! MANIFEST Makefile.PL
-____________________________________________________________________________
-[  1179] By: autrijus                              on 2003/02/28  22:23:07
-        Log: * use strict-clean.
-	   ! lib/Module/Install.pm
-____________________________________________________________________________
-[  1178] By: autrijus                              on 2003/02/28  19:12:54
-        Log: * nis any mention of 'Beer'.
-             * $DIR, $FILE, $PREFIX, $PACKAGE and &find_files are now
-	       always
-             exported to extensions.  This is subject to further
-	     OOization.
-	   ! TODO lib/Module/Install.pm
-	   ! lib/Module/Install/Manifest.pm
-	   ! lib/Module/Install/Win32.pod
-____________________________________________________________________________
-[  1177] By: autrijus                              on 2003/02/28  19:01:12
-        Log: * now search for extensions recursively.
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-____________________________________________________________________________
-[  1176] By: autrijus                              on 2003/02/28  18:31:57
-        Log: * add Try(...) for an extension to call functions in
-             another extension _without_ copying it in inc/.
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/Module/Install/MakeMaker.pm
-	   ! lib/Module/Install/Manifest.pm
-	   ! lib/Module/Install/Win32.pm
-____________________________________________________________________________
-[  1174] By: autrijus                              on 2003/02/28  18:00:10
-        Log: * the AUTOLOAD handler is now exported to all extensions.
-             * everything now happens at import() time.
-	   ! lib/Module/Install.pm
-	   ! lib/Module/Install/Admin.pm
-	   ! lib/inc/Module/Install.pm
-____________________________________________________________________________
-[  1171] By: autrijus                              on 2003/02/28  12:20:30
-        Log: * slightly fixed, podchecked philosophy.pod
-	   + lib/Module/Install-Philosophy.pod
-	   ! MANIFEST
-____________________________________________________________________________
-[  1170] By: autrijus                              on 2003/02/28  11:52:01
-        Log: * swap docs between M::I and M::I::A. 
-	   ! lib/Module/Install.pod
-	   ! lib/Module/Install/Admin.pod
+[Changes for 0.50 - 2005-12-26]
+
+* Fixed the bug where cpan signing was set forcibly to true instead
+  of defaulting to false.
+  Reported by: Martin Thurn and Randal Schwartz
+
+* Module::Install::Admin's copy() subroutine was using a lot of CPU
+  on inefficient regex matches, where a simple passthrough while()
+  line-processing loop would do.
+
+* The t/ directory is now listed in META.yml's no_index entries by
+  default, along with inc/.
+
+* YAML.pm is now listed as an explicit dependency.
+
+[Changes for 0.48 - 2005-12-26]
+
+* New Module::Install::Compiler extension with commands:
+  c_files(), inc_paths(), optimize_flags().
+
+[Changes for 0.47 - 2005-12-25]
+
+* Slight documentation cleanup and update Module::Install::Admin
+  version to 0.47; no functional changes.
+
+[Changes for 0.46 - 2005-12-22]
+
+* tests() should always take effect even if auto_install() or
+  makemaker_args() had set it before.
+  Reported by: Jesse Vincent.
+
+[Changes for 0.45 - 2005-12-16]
+
+* Improved detection for author_from() based on the copyright line
+  in addition to =head1 AUTHORS.
+
+* Bump version of Module::Install::Admin to match Module::Install.
+  Reported by: Sebastian Riedel
+
+[Changes for 0.44 - 2005-12-13]
+
+* Module::Install::Bundle now extract files correctly again;
+  this was a regression since 0.40.
+  Reported by: Randal Schwartz
+
+* Add support to Module::Includes::Bundle so each subdirectory
+  can use Module::Install for bundling. 
+
+* The "bundles:" key in META.yml is now populated even if the
+  bundled modules already exist on the system.
+
+[Changes for 0.43 - 2005-12-12]
+
+* Better documentation to install_share().
+
+* New author_from() command to guess the author name from POD.
+
+* all_from() no longer probes for metadata that has been set before.
+
+[Changes for 0.42 - 2005-12-11]
+
+* auto_provides() was broken due to a typo.
+
+* New command install_share() to put a directory's content into the
+  per-distribution auto/ directory.
+
+[Changes for 0.41 - 2005-12-11]
+
+* Only query '$self->tests' if we haven't been given an explicit list
+  (From Paul Fenwick)
+
+* New command auto_provides() to calculate "provides:" information using
+  Module::Build.  Requested by Chia-Liang Kao.
+
+[Changes for 0.40 - 2005-12-07]
+
+* Massively updated documentation (more to come later).
+
+* Parentheses are now optional in Makefile.PL.
+
+* Includes Module::AutoInstall, a cleaned-up version of ExtUtils::AutoInstall.
+
+* New command all_from() to combine all *_from() tests into one.
+
+* New command test() to Support specifying test files.
+
+* New command feature() to list individual features easily.
+
+[Changes for 0.37 - 2005-08-04]
+
+* Always include ExtUtils::AutoInstall in inc/ if auto_install() is called.
+
+* Fixed a bug where modules having shared libraries would sometimes
+  be included in inc/.
+
+* The needs shared library message will now only be printed if the module
+  version indicates that it would otherwise be included. The module name has
+  also been corrected so that "::" is used everywhere instead of "/".
+
+[Changes for 0.36 - 2004-09-09]
+
+* First version under SVK management.
+
+* install_scripts() now takes multiple scripts to install.
+
+[Changes for 0.35 - 2004-07-13]
+
+* Jos Boumans reported that "use inc::Module::Install 0.34"
+  was failing because Module::Install does not assign VERSION
+  to inc::Module::Install.
+
+* Implemented auto_include_deps() for real.
+
+[Changes for 0.34 - 2004-07-01]
+
+* auto_include() will not include recursive dependencies now;
+  that functionality is refactored into auto_include_deps().
+
+[Changes for 0.33 - 2004-03-11]
+
+* abstract_from() was broken; it works now thanks to SHAY.
+
+* WriteAll() now takes (inline => 1) to support
+  Inline-based modules.
+
+[Changes for 0.31 - 2003-12-31]
+
+* Allow auto_install() to take -core-specific options like
+  (-default => 0).
+
+* No longer use inc/SCRIPT but simply modify the scripts to install.
+
+* Make can_cc() to probe the program part of $Config{cc}
+
+* Bundled M::I-using modules (or subdirs) used to break up
+  spectacularly by overriding ::AUTOLOAD and reusing their
+  parents' inc/*.  Now the namespaces are keyed by cwd and
+  more readily unregistered.
+
+[Changes for 0.29 - 2003-12-14]
+
+* Introducing &WriteAll, a combination of &Meta->write,
+  &check_nmake, &Makefile->write, and if a Build.PL is
+  present (which should read "require 'Makefile.PL'"),
+  also supports transparent &Build->write.
+
+* Real Module::Build support in WriteAll and in this module.
+
+* Transparent Build.PL, as promised in README, is back.
+
+* WriteAll now takes three non-metadata flags:
+  check_nmake (default 1), meta (default 1) and
+  sign (default 0).
+
+* The "private" key in META.yml is officially obsoleted by "no_index".
+
+* Now warns if the user did not specify a license.
+
+* "requires( perl => $version )" is now supported.
+
+* include_deps() now no longer takes its second argument;
+  it must be separately supplied with the syntax above.
+
+* "&WriteAll" now officially replaces "&Build->write",
+  "&Makefile->write", "&Meta->write" and "check_nmake()".
+
+* Implemented auto_include() and bundle_deps().
+
+* Add "#defaults" to MANIFEST.SKIP.
+
+[Changes for 0.28 - 2003-12-11]
+
+* Module::Install::Bundle now works, thanks to Adam Foxson!
+
+* Unbreak against newer EU::MM.
+
+* Let "inc" work with "make test" on 5.6.x too.
+
+* mcdavis pointed out that Microsoft now wants
+  "Nmake15.exe", not "nmake15.exe".
+
+[Changes for 0.27 - 2003-10-27]
+
+* Make the include'd modules actually work during
+  "make" and "make test", by adding "inc" to the
+  Makefile targets.
+
+* Graham's patch for 5.004 backcompat.
+
+* Graham Barr points out that readdir() can return 0.
+
+* Do not sign the distribution if we are not the admin.
+
+[Changes for 0.26 - 2003-10-17]
+
+* sign(1) support for automatic digital signing.
+
+* no_index(directory => 'example') support, for telling
+  PAUSE and search to skip indexing modules.
+
+[Changes for 0.25 - 2003-10-13]
+
+* Add no_index as an alias to private in META.yml.
+
+* Support for YAML::Parser::Syck.
+
+* No point in supporting Build.PL now.
+
+[Changes for 0.24 - 2003-09-01]
+
+* 0.17 is simply too old as it scans in POD sections.
+
+* Kingpin <mthurn at carbon> notes that we are using "next"
+outside a loop block in ScanDeps.
+
+* threads.pm and warnings.pm should be exempted too.
+
+[Changes for 0.23 - 2003-08-18]
+
+* Implemented $self->is_admin to properly test if it's running
+  on the admin side.
+
+* Andreas Koenig reports that we are writing META.yml
+  even on the user side, because of this bug.
+
+* sWitch to PAR::Dist to do make_par().
+
+[Changes for 0.22 - 2003-07-16]
+
+* Turns out that MakeMaker's NAME corresponds to
+  META.yml's module_name, and DISTNAME corresponds
+  to name.  Reflect this in the relevant files.
+
+* Introduce a new module_name metadata key that may
+  be automatically generated from name.
+
+* /\.pm/i should be /\.pm$/i.
+
+* Iain Truskett wants us to not overwrite alien META.yml files.
+
+- PREREQ_PM wasn't being filled out.
+
+- Should be including YAML dependencies too.
+
+* POD cleanups.
+
+[Changes for 0.21 - 2003-06-15]
+
+* Lindsay Morris pointed out that include_deps()
+  does not work with non-core modules; fixed.
+
+[Changes for 0.20 - 2003-06-05]
+
+* Add pointer to ingy's TPJ article.
+
+* Eliminated warnings on 5.005.
+
+* Added the "package inc::Module::Install;" line at
+  request by Graham Barr, for search.cpan.org.
+
+* Close META.yml before zipping; otherwise trips on win32.
+
+* requires(), build_requires(), recommends() etc can now take
+  multiple pairs in addition to a single pair.
+
+* Add standard MANIFEST and META.yml to generated PAR file.
+
+* Implemented the &Meta->read mentioned in the main docs.
+
+* Our version of WriteMakefile was failing to fine Meta
+  object; fixed.
+
+* 'make reset' now just an author side alias for 'make purge'.
+
+* The whole #! business is unneeded since MakeMaker does that.
+
+* Don't skip other non-pm inc/ stuff when checking MANIFEST.
+
+* The hashbang line should be the first, not last, in scripts.
+
+* Also people may not always like -w.
+
+* We reall want to rmtree() the distdir so that 'make manifest'
+  won't include clobbered files after an aborted 'make dist'.
+
+* Fix consistency: ->prompt() should only take one line of
+  prompt and expects y/n.

Modified: packages/libmodule-install-perl/branches/upstream/current/MANIFEST
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/MANIFEST	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/MANIFEST	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,24 +1,20 @@
-Build.PL
 Changes
-inc/ExtUtils/AutoInstall.pm
+inc/Module/AutoInstall.pm
 inc/Module/Install.pm
 inc/Module/Install/AutoInstall.pm
 inc/Module/Install/Base.pm
-inc/Module/Install/Build.pm
 inc/Module/Install/Can.pm
 inc/Module/Install/Fetch.pm
 inc/Module/Install/Include.pm
 inc/Module/Install/Makefile.pm
 inc/Module/Install/Metadata.pm
-inc/Module/Install/PAR.pm
 inc/Module/Install/Win32.pm
 inc/Module/Install/WriteAll.pm
-inc/Test/Builder.pm
-inc/Test/More.pm
 lib/inc/Module/Install.pm
-lib/Module/Install-Cookbook.pod
+lib/Module/AutoInstall.pm
 lib/Module/Install-Philosophy.pod
 lib/Module/Install.pm
+lib/Module/Install.pod
 lib/Module/Install/Admin.pm
 lib/Module/Install/Admin/Bundle.pm
 lib/Module/Install/Admin/Find.pm
@@ -33,6 +29,7 @@
 lib/Module/Install/Build.pm
 lib/Module/Install/Bundle.pm
 lib/Module/Install/Can.pm
+lib/Module/Install/Compiler.pm
 lib/Module/Install/Fetch.pm
 lib/Module/Install/Include.pm
 lib/Module/Install/Inline.pm
@@ -44,6 +41,7 @@
 lib/Module/Install/PAR.pm
 lib/Module/Install/Run.pm
 lib/Module/Install/Scripts.pm
+lib/Module/Install/Share.pm
 lib/Module/Install/Win32.pm
 lib/Module/Install/WriteAll.pm
 Makefile.PL
@@ -52,6 +50,6 @@
 META.yml
 README
 SIGNATURE
-t/0-signature.t
 t/1-basic.t
-ToDo
+t/2-pod.t
+t/3-autoinstall.t

Modified: packages/libmodule-install-perl/branches/upstream/current/MANIFEST.SKIP
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/MANIFEST.SKIP	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/MANIFEST.SKIP	2005-12-30 11:12:30 UTC (rev 1803)
@@ -10,4 +10,7 @@
 ^blib/
 ^pm_to_blib$
 ^blibdirs$
+^ToDo$
 ^t/Foo
+^.*\.tmp$
+\.svn/

Modified: packages/libmodule-install-perl/branches/upstream/current/META.yml
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/META.yml	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/META.yml	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,21 +1,115 @@
+abstract: 'Standalone, extensible Perl module installer'
+author: Audrey Tang <autrijus at autrijus.org>
+distribution_type: module
+generated_by: Module::Install version 0.50
+license: perl
 name: Module-Install
-version: 0.34
-abstract: Standalone, extensible Perl module installer
-author: Autrijus Tang (autrijus at autrijus.org)
-license: perl
-distribution_type: module
-build_requires:
-  Test::More: 0
-requires:
-  perl: 5.004
-recommends:
-  Module::ScanDeps: 0.28
-  Module::CoreList: 0
-  CPANPLUS: 0.04
-  PAR::Dist: 0.03
-  Module::Build: 0
 no_index:
   directory:
     - example
     - inc
-generated_by: Module::Install version 0.34
+    - t
+provides:
+  Module::AutoInstall:
+    file: lib/Module/AutoInstall.pm
+    version: 1.00
+  Module::Install:
+    file: lib/Module/Install.pm
+    version: 0.50
+  Module::Install::Admin:
+    file: lib/Module/Install/Admin.pm
+    version: 0.50
+  Module::Install::Admin::Bundle:
+    file: lib/Module/Install/Admin/Bundle.pm
+    version: 0.04
+  Module::Install::Admin::Find:
+    file: lib/Module/Install/Admin/Find.pm
+    version: 0.01
+  Module::Install::Admin::Include:
+    file: lib/Module/Install/Admin/Include.pm
+    version: 0.02
+  Module::Install::Admin::Makefile:
+    file: lib/Module/Install/Admin/Makefile.pm
+    version: 0.01
+  Module::Install::Admin::Manifest:
+    file: lib/Module/Install/Admin/Manifest.pm
+    version: 0.01
+  Module::Install::Admin::Metadata:
+    file: lib/Module/Install/Admin/Metadata.pm
+    version: 0.02
+  Module::Install::Admin::ScanDeps:
+    file: lib/Module/Install/Admin/ScanDeps.pm
+  Module::Install::Admin::WriteAll:
+    file: lib/Module/Install/Admin/WriteAll.pm
+    version: 0.01
+  Module::Install::AutoInstall:
+    file: lib/Module/Install/AutoInstall.pm
+  Module::Install::Base:
+    file: lib/Module/Install/Base.pm
+  Module::Install::Base::FakeAdmin:
+    file: lib/Module/Install/Base.pm
+  Module::Install::Build:
+    file: lib/Module/Install/Build.pm
+    version: 0.01
+  Module::Install::Bundle:
+    file: lib/Module/Install/Bundle.pm
+    version: 0.04
+  Module::Install::Can:
+    file: lib/Module/Install/Can.pm
+    version: 0.01
+  Module::Install::Compiler:
+    file: lib/Module/Install/Compiler.pm
+    version: 0.01
+  Module::Install::Fetch:
+    file: lib/Module/Install/Fetch.pm
+    version: 0.01
+  Module::Install::Include:
+    file: lib/Module/Install/Include.pm
+  Module::Install::Inline:
+    file: lib/Module/Install/Inline.pm
+    version: 0.01
+  Module::Install::MakeMaker:
+    file: lib/Module/Install/MakeMaker.pm
+    version: 0.01
+  Module::Install::Makefile:
+    file: lib/Module/Install/Makefile.pm
+    version: 0.01
+  Module::Install::Makefile::Name:
+    file: lib/Module/Install/Makefile/Name.pm
+    version: 0.01
+  Module::Install::Makefile::Version:
+    file: lib/Module/Install/Makefile/Version.pm
+    version: 0.01
+  Module::Install::Metadata:
+    file: lib/Module/Install/Metadata.pm
+    version: 0.05
+  Module::Install::PAR:
+    file: lib/Module/Install/PAR.pm
+  Module::Install::Run:
+    file: lib/Module/Install/Run.pm
+    version: 0.01
+  Module::Install::Scripts:
+    file: lib/Module/Install/Scripts.pm
+    version: 0.02
+  Module::Install::Share:
+    file: lib/Module/Install/Share.pm
+    version: 0.01
+  Module::Install::Win32:
+    file: lib/Module/Install/Win32.pm
+    version: 0.02
+  Module::Install::WriteAll:
+    file: lib/Module/Install/WriteAll.pm
+  inc::Module::Install:
+    file: lib/inc/Module/Install.pm
+recommends:
+  CPANPLUS: 0.04
+  Module::Build: 0
+  Module::CoreList: 0
+  Module::ScanDeps: 0.28
+  PAR::Dist: 0.03
+  Test::Harness: 2.03
+  Test::More: 0
+requires:
+  YAML: 0.35
+  perl: 5.004
+version: 0.50

Modified: packages/libmodule-install-perl/branches/upstream/current/Makefile.PL
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/Makefile.PL	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/Makefile.PL	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,53 +1,45 @@
-# $File: //depot/cpan/Module-Install/Makefile.PL $ $Author: autrijus $
-# $Revision: #37 $ $Change: 2287 $ $DateTime: 2004/07/01 04:48:23 $ vim: expandtab shiftwidth=4
+#!perl -w
 
+use strict;
 use lib 'lib'; # NOTE: Module::Install's Makefile.PL needs this statement
                # to bootstrap itself.  Other module distributions using
                # Module::Install do not need it.
-
 use inc::Module::Install;
 
-name            ('Module-Install');
-author          ('Autrijus Tang (autrijus at autrijus.org)');
-abstract_from   ('lib/Module/Install.pm');
-version_from    ('lib/Module/Install.pm');
-license         ('perl');
-requires        ('perl' => 5.004);
-no_index        (directory => 'example');
-sign            (1);
+name        'Module-Install';
+author      'Audrey Tang <autrijus at autrijus.org>';
+all_from    'lib/Module/Install.pm';
+requires     'YAML' => 0.35;
 
-build_requires  ('Test::More');
-include         ('ExtUtils::AutoInstall');
+feature 'Include packages with full dependencies',
+    recommends
+    'Test::Harness'     => 2.03,    # merely a dependency of M::CoreList
+    'Test::More'        => 0,       # ditto
+    'Module::ScanDeps'  => 0.28,
+    'Module::CoreList';
 
-features(
-    'Include packages with full dependencies' => [
-        -default            => 0,
-        'Test::Harness'     => 2.03,    # merely a dependency of M::CoreList
-        'Test::More'        => 0,       # ditto
-        recommends  ('Module::ScanDeps' => 0.28),
-        recommends  ('Module::CoreList'),
-    ],
-    'Bundle other CPAN packages' => [
-        -default            => 0,
-        recommends  ('CPANPLUS' => 0.040),
-    ],
-    'PAR-based binary distributions' => [
-        -default            => 0,
-        recommends  ('PAR::Dist' => 0.03),
-    ],
-    'Module::Build support' => [
-        -default            => 0,
-        'Archive::Tar'      => 0.23,
-        'ExtUtils::Install' => 0.3,
-        'ExtUtils::ParseXS' => 0,
-        'YAML'              => 0.35,
-        recommends  ('Module::Build'),
-    ],
-);
+feature 'Bundle other CPAN packages',
+    recommends
+    'CPANPLUS'          => 0.040;
 
-auto_include_deps();
-auto_install_now( -config => { prerequisites_policy => 'follow' } );
+feature 'PAR-based binary distributions',
+    recommends
+    'PAR::Dist'         => 0.03;
 
-par_base();     # par_base('AUTRIJUS') to enable downloading
+feature 'Module::Build support',
+    'Archive::Tar'      => 0.23,
+    'ExtUtils::Install' => 0.3,
+    'ExtUtils::ParseXS',
+    recommends
+    'Module::Build';
 
-&WriteAll;
+no_index
+    directory => 'example';
+
+auto_install_now
+    prerequisites_policy => 'follow';
+
+auto_provides;
+
+sign;
+WriteAll;

Modified: packages/libmodule-install-perl/branches/upstream/current/README
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/README	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/README	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/README $ $Author: autrijus $
-# $Revision: #8 $ $Change: 1847 $ $DateTime: 2003/12/31 23:14:54 $ vim: expandtab shiftwidth=4
-
 This is the README file for Module::Install, a standalone, extensible
 installer for Perl modules.  It is designed to be a drop-in replacement
 for ExtUtils::MakeMaker, and is a descendent of CPAN::MakeMaker.
@@ -12,20 +9,12 @@
 
 Module::Install uses the standard perl module install process:
 
-cpansign -v             # see SIGNATURE for details
-perl Makefile.PL
-make
-make test
-make install
+    cpansign -v         # optional; see SIGNATURE for details
+    perl Makefile.PL
+    make                # or 'nmake' on Win32
+    make test
+    make install
 
-If you have Module::Build installed, a Build.PL is also available:
-
-cpansign -v             # see SIGNATURE for details
-perl Build.PL
-perl Build
-perl Build test
-perl Build install
-
 * Notes for Windows users
 
 If you are using Microsoft Windows, you will probably need the 'nmake'
@@ -50,8 +39,10 @@
 
 * Copyright
 
-Copyright 2002, 2003, 2004 by Autrijus Tang <autrijus at autrijus.org>,
-                              Brian Ingerson <ingy at cpan.org>.
+Copyright 2002, 2003, 2004, 2005 by
+    Audrey Tang <autrijus at autrijus.org>
+    Brian Ingerson <ingy at cpan.org>
+    Adam Kennedy <cpan at ali.as>
 
 All rights reserved.  You can redistribute and/or modify
 this bundle under the same terms as Perl itself.

Modified: packages/libmodule-install-perl/branches/upstream/current/SIGNATURE
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/SIGNATURE	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/SIGNATURE	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,5 +1,5 @@
 This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.39.
+signed via the Module::Signature module, version 0.41.
 
 To verify the content in this distribution, first make sure you have
 Module::Signature installed, then type:
@@ -14,66 +14,64 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-SHA1 dbd58f850606f5446018b6034a831b2b135f3a88 Build.PL
-SHA1 d1c503f69d1a0079ad303a4f1b36d5f455d138d1 Changes
-SHA1 19e1ba910828e3ad315b1edb6dc361a6305938d1 MANIFEST
-SHA1 d301f97ed05a88a0dde1d90ec091edd39cd6cbde MANIFEST.SKIP
-SHA1 c4a0b8a265dd4c21a933bda021cf902658860533 META.yml
-SHA1 3cc2a794d123cd0e83245f5d8ab60e941c7d97b8 Makefile.PL
-SHA1 2a90897611004f2f49a40798b2274af1d989e0f4 README
-SHA1 e9cabad66944b665d36e0a7cda0dd7bf1f75cfd9 ToDo
-SHA1 46ff42e7e02b856e15106163cd77b1a55fc08fb9 inc/ExtUtils/AutoInstall.pm
-SHA1 6ae8524a1be447e37544ee4d24b3719b0ff89153 inc/Module/Install.pm
-SHA1 288ad5d1124f02a64583d54e2e287532b81907b9 inc/Module/Install/AutoInstall.pm
-SHA1 ed9d9f60d2c925a7c715e5261cd80a5978c9fc9c inc/Module/Install/Base.pm
-SHA1 239178223883059ec355bec886115848ab699332 inc/Module/Install/Build.pm
-SHA1 5619adb5368242214045d40784fcbee5d9dba267 inc/Module/Install/Can.pm
-SHA1 565339bcb9f2751938372aa684a20e4bb7ec9b3f inc/Module/Install/Fetch.pm
-SHA1 95763053e3e59748f087d1f4c0cb7e7ae2950e3f inc/Module/Install/Include.pm
-SHA1 458d2c6c96e071bf66713e8ceecd68c9aa75c386 inc/Module/Install/Makefile.pm
-SHA1 096c46b226b1f188f4bafcfd8e0f6f3ac5f43e47 inc/Module/Install/Metadata.pm
-SHA1 c6db9fca2a341ac1e1e749bc76e68a6c064797a1 inc/Module/Install/PAR.pm
-SHA1 8b8577400e396db6714b85e11ce9a5939671c826 inc/Module/Install/Win32.pm
-SHA1 dcdadae7414315536ad3bdbe67d4a2f3ae93d284 inc/Module/Install/WriteAll.pm
-SHA1 6458cec3e5ecc7a7ab12d138e63aea05486c48ad inc/Test/Builder.pm
-SHA1 d609df5fa76b959d08e5d9d0a15fe59c5c2f95e0 inc/Test/More.pm
-SHA1 61ae9682447a3300bf61e36f80df0011f53e1f5a lib/Module/Install-Cookbook.pod
-SHA1 559a427e006e8b62c9627b8c8e39669066fb9b41 lib/Module/Install-Philosophy.pod
-SHA1 68e465225a12956aa4a8e68ffa71fcbf17809404 lib/Module/Install.pm
-SHA1 88cbe64d234b7c43b578b11bc4ce39e9228f576a lib/Module/Install/Admin.pm
-SHA1 bd41fae896f850b667abc6243091241d9bb323b8 lib/Module/Install/Admin/Bundle.pm
-SHA1 8307db51af9ab267acca6f7c15d21a15133b2fc6 lib/Module/Install/Admin/Find.pm
-SHA1 85a11536669a36a90e204a3a1d3ef5830b9f9e74 lib/Module/Install/Admin/Include.pm
-SHA1 c46efc91a83d9f290bbfd063847408c86448ee92 lib/Module/Install/Admin/Makefile.pm
-SHA1 4390ae9438a5fc3c97456c12cd4d33c16ee11688 lib/Module/Install/Admin/Manifest.pm
-SHA1 5f01b59fc61a289daeaf68c0aa4a54ff995d045c lib/Module/Install/Admin/Metadata.pm
-SHA1 72e1d579516eff39a89994be03fc26f426accab4 lib/Module/Install/Admin/ScanDeps.pm
-SHA1 01209778dfcddd2ca1f7f6cd6459a22c87e2cc66 lib/Module/Install/Admin/WriteAll.pm
-SHA1 7402b8f2d06fc726390e55a6980f0f909d42e875 lib/Module/Install/AutoInstall.pm
-SHA1 1538dfba8d0574064f7bf10454ff802c89fe7640 lib/Module/Install/Base.pm
-SHA1 02f93fce60022eff2b5d0777989176f908e92e6d lib/Module/Install/Build.pm
-SHA1 6ba868634dae254f29ae8328e86d7d73a9e7fb1f lib/Module/Install/Bundle.pm
-SHA1 de73c9d8ad8ffab9eedb04a01262192a6a51d42a lib/Module/Install/Can.pm
-SHA1 0c216d70f5d38994402574868b26225b7d19e12d lib/Module/Install/Fetch.pm
-SHA1 08c5eeb29a23dc06f186f07ce2c7ac2ae0c80f74 lib/Module/Install/Include.pm
-SHA1 d8cef4684f57293de33952fd59e5e5ed666d9070 lib/Module/Install/Inline.pm
-SHA1 b6520780aeef6e1860f83bc9ae481f68e1cbc73c lib/Module/Install/MakeMaker.pm
-SHA1 d7db219717b6653a922bd8f76cb3e2503ecd77e7 lib/Module/Install/Makefile.pm
-SHA1 44b91a5379ada5e6d6164838e313e9e60c73b244 lib/Module/Install/Makefile/Name.pm
-SHA1 6f263c3e18198d147a16e3ca3758a97231b4076e lib/Module/Install/Makefile/Version.pm
-SHA1 090faf7f611f4a0d5eac2a9c7cfc1926968d297e lib/Module/Install/Metadata.pm
-SHA1 0c4f33cc5e6988937a35a9a5dcc69d4bf329b7de lib/Module/Install/PAR.pm
-SHA1 d5e2af08f6967716d71971126becb10acb17ee4e lib/Module/Install/Run.pm
-SHA1 0082a8daf9dc2a31a1c1f8a719f7fef29df8c939 lib/Module/Install/Scripts.pm
-SHA1 ba8ebea0ff21f47090a9c46946089ea9647c05a9 lib/Module/Install/Win32.pm
-SHA1 87e1d4fa50f1f1ccab659e67a9fdc58173cd6c9c lib/Module/Install/WriteAll.pm
-SHA1 af70ee67dce5a1c6e576b43339c8a07cf17cf212 lib/inc/Module/Install.pm
-SHA1 284ca43fce9b1643af73a1460aecb4f98639c507 t/0-signature.t
-SHA1 70f5ec238e815a5044c74b7357d411c71b9c8939 t/1-basic.t
+SHA1 739b871ff482c56af74a261fd5e0b6db99afb7cc Changes
+SHA1 5a719bc1917e640ab583da941586e210da83a18f MANIFEST
+SHA1 d8504618f3e772137facea61a59906d77fffc412 MANIFEST.SKIP
+SHA1 9deb8214cd681e2fcbf75c4232eec316acbad376 META.yml
+SHA1 146b6205f9f6e80928c6363c3d99edfa7aaf778d Makefile.PL
+SHA1 fdbef62afa79c657e86178a9dac5b8c1b5223fc4 README
+SHA1 7ce8ff26d5421842cc0c205ca9be1bf48056223d inc/Module/AutoInstall.pm
+SHA1 8635ef6993523dc91e858650be45ec8b8e2247f6 inc/Module/Install.pm
+SHA1 efb445738be8e47593d412d57de91bc6a5a87474 inc/Module/Install/AutoInstall.pm
+SHA1 fc87ce8f843e80f84df2b7b2fe254002353816e3 inc/Module/Install/Base.pm
+SHA1 2dba703acae347917bd7fea7ac10487fbda467d8 inc/Module/Install/Can.pm
+SHA1 a5389bc01a2c81898654796e0206588229f74b16 inc/Module/Install/Fetch.pm
+SHA1 5f9007e74cb6df03acd616cc2dd350966257162c inc/Module/Install/Include.pm
+SHA1 5d88fa771b77486b13d28661080fbefab81e1768 inc/Module/Install/Makefile.pm
+SHA1 ad8741f364b7c724498ac7870816a138d7b70637 inc/Module/Install/Metadata.pm
+SHA1 6dea053579084d1a638ddb3c22e86146d1588b28 inc/Module/Install/Win32.pm
+SHA1 5fa5a44d068cc7f7f4e2f4186192f6aef21735c1 inc/Module/Install/WriteAll.pm
+SHA1 5b7e69ece28acd582c4429e57a6c00ae9cc1bea0 lib/Module/AutoInstall.pm
+SHA1 a5cf37c2cc23f233b1be225e7a54160f01c2e339 lib/Module/Install-Philosophy.pod
+SHA1 15463a08c2fdf48557b7b3940c9634c9f78b121c lib/Module/Install.pm
+SHA1 788df3fa37af58bdd0e73dd3ca67d2744401c8e8 lib/Module/Install.pod
+SHA1 8b4193e96f5cf41e41c85e98408758300dc6fcc5 lib/Module/Install/Admin.pm
+SHA1 57b0f1152c5490287f85b52f4f0d5d849332f960 lib/Module/Install/Admin/Bundle.pm
+SHA1 4c56a004332e0b6988c9598b80cf9a5c334da471 lib/Module/Install/Admin/Find.pm
+SHA1 6ee0a0a2d969287219b69eeb20a8b314b90839cb lib/Module/Install/Admin/Include.pm
+SHA1 99f1a2f84648a827a8a75204ceda00371a72987b lib/Module/Install/Admin/Makefile.pm
+SHA1 dd389fb52d2dedab2a96cc0b9f9e3185080a2b47 lib/Module/Install/Admin/Manifest.pm
+SHA1 f3564bf33f23810ec357a5e13e6d9fe261538587 lib/Module/Install/Admin/Metadata.pm
+SHA1 5ba95cbf306f7fb0c96e96f7b6f0f0eb4c27f77f lib/Module/Install/Admin/ScanDeps.pm
+SHA1 14246009fe66492d939604013adb732a2744732b lib/Module/Install/Admin/WriteAll.pm
+SHA1 5c17235758de252ef7b6f6da246277d1e6321d10 lib/Module/Install/AutoInstall.pm
+SHA1 a097c0c3f23de102e98517bb0f440fac0fecedd9 lib/Module/Install/Base.pm
+SHA1 02c15969f75db48679d55dfd651946164bbcaca6 lib/Module/Install/Build.pm
+SHA1 78c07394ca84ce3563091da33bbe4057d133bcb9 lib/Module/Install/Bundle.pm
+SHA1 06fb8fe19ebbbc06d3a30f9c21d3ac1710f0897b lib/Module/Install/Can.pm
+SHA1 b59ba3eec58d09457268199ee5dc6ed8b8fb4b7d lib/Module/Install/Compiler.pm
+SHA1 20ec4c053545daa827987ea0d0153f991e55dbaf lib/Module/Install/Fetch.pm
+SHA1 d51f1c421c7c31098272eaff796ac297ac584cbb lib/Module/Install/Include.pm
+SHA1 d15dab5a96deeb578458e7231eaadb5440b895e0 lib/Module/Install/Inline.pm
+SHA1 324da41791c871b41892422104c77c19506a158d lib/Module/Install/MakeMaker.pm
+SHA1 3c422dfc3f8c563506b35edc36dfb923ee5bc849 lib/Module/Install/Makefile.pm
+SHA1 a572b91b863aa6b2e087d0deb9234ce4f21224d0 lib/Module/Install/Makefile/Name.pm
+SHA1 f2f05144695375d8ef4e96109284428a08a49127 lib/Module/Install/Makefile/Version.pm
+SHA1 e4de0f14535d0ce823e7042874de6f46ba3edddf lib/Module/Install/Metadata.pm
+SHA1 256a646db9716ea7f15c474116dfabf10a3fbea7 lib/Module/Install/PAR.pm
+SHA1 581dab4432dbbe4296062fcda79f7a54907804ab lib/Module/Install/Run.pm
+SHA1 18a6d6ce26048d32fccef1e2ffbe67d485c12c29 lib/Module/Install/Scripts.pm
+SHA1 cbdf015561c516db721d996dc722c82db44ed1db lib/Module/Install/Share.pm
+SHA1 2f2c6535776715797270e8d318a766d472ed410f lib/Module/Install/Win32.pm
+SHA1 a381986c71098f7e07980b47d3bef1cd2e515c67 lib/Module/Install/WriteAll.pm
+SHA1 1a054e15bfbd68c6ccb8f30bc4d2badcac543335 lib/inc/Module/Install.pm
+SHA1 cc165528d2e584ffcfaf9bfc8cbc3a814c48d53f t/1-basic.t
+SHA1 7867cff04a8429890fa473fcd8ea51a66d0f6772 t/2-pod.t
+SHA1 34873535b662d7b6833adda1e2aea8630b7d3969 t/3-autoinstall.t
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.2.3 (FreeBSD)
+Version: GnuPG v1.4.2 (FreeBSD)
 
-iD8DBQFA4/pStLPdNzw1AaARAi73AJ94RW/otD3h2Al5XE3+vFJd4j5fLwCeMq+i
-nVpUj59l274ijrKOea3hCS4=
-=CtY+
+iD8DBQFDr+lutLPdNzw1AaARAn2FAJ42Uyrnn8qLhvAIexpihO8IScYEuQCguyHf
+VaFk713c/nA0nKpEFxl+F1o=
+=ijEk
 -----END PGP SIGNATURE-----

Deleted: packages/libmodule-install-perl/branches/upstream/current/ToDo
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/ToDo	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/ToDo	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,31 +0,0 @@
-- Go over POD docs in detail.
-- Test recursive Makefile directories
-
-- Module::Build Support:
-    - Add actions for:
-        - reset
-    - Make sure include-ing of Module::Build works. # done
-
-- Test Suite:
-    - We need tests for everything
-    - Optimally I'd like these to use Module::Test
-      (But That doesn't exist yet. :)
-    
-- Include:
-    - Add support for include('Foo::Bar::*')	    # done
-    - Make sure it works for Test::More		    # done
-
-- Bundling:
-    - Load distributions into inc/BUNDLE	    # not for 0.20
-    - provide support to install/upgrade them on user machine
-
-- Inline::C Support				    # done
-    - Do we need to package build support?
-
-- Distribution support
-    - make upload (add cpan-upload to our recommends()?)
-    - make distcheck:
-        - verify metadata is current
-
-
-Note: EU::MM 6.06_03+ supports META.yml natively.  Maybe probe for that?

Added: packages/libmodule-install-perl/branches/upstream/current/inc/Module/AutoInstall.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/AutoInstall.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/AutoInstall.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -0,0 +1,717 @@
+#line 1 "inc/Module/AutoInstall.pm - lib/Module/AutoInstall.pm"
+package Module::AutoInstall;
+$Module::AutoInstall::VERSION = '1.00';
+
+use strict;
+use Cwd                 ();
+use ExtUtils::MakeMaker ();
+
+#line 221
+
+# special map on pre-defined feature sets
+my %FeatureMap = (
+    ''      => 'Core Features',    # XXX: deprecated
+    '-core' => 'Core Features',
+);
+
+# various lexical flags
+my ( @Missing, @Existing,  %DisabledTests, $UnderCPAN,     $HasCPANPLUS );
+my ( $Config,  $CheckOnly, $SkipInstall,   $AcceptDefault, $TestOnly );
+my ( $PostambleActions, $PostambleUsed );
+
+_accept_default( !-t STDIN );      # see if it's a non-interactive session
+_init();
+
+sub _accept_default {
+    $AcceptDefault = shift;
+}
+
+sub missing_modules {
+    return @Missing;
+}
+
+sub do_install {
+    __PACKAGE__->install(
+        [
+            $Config
+            ? ( UNIVERSAL::isa( $Config, 'HASH' ) ? %{$Config} : @{$Config} )
+            : ()
+        ],
+        @Missing,
+    );
+}
+
+# initialize various flags, and/or perform install
+sub _init {
+    foreach my $arg (
+        @ARGV,
+        split(
+            /[\s\t]+/,
+            $ENV{PERL_AUTOINSTALL} || $ENV{PERL_EXTUTILS_AUTOINSTALL} || ''
+        )
+      )
+    {
+        if ( $arg =~ /^--config=(.*)$/ ) {
+            $Config = [ split( ',', $1 ) ];
+        }
+        elsif ( $arg =~ /^--installdeps=(.*)$/ ) {
+            __PACKAGE__->install( $Config, @Missing = split( /,/, $1 ) );
+            exit 0;
+        }
+        elsif ( $arg =~ /^--default(?:deps)?$/ ) {
+            $AcceptDefault = 1;
+        }
+        elsif ( $arg =~ /^--check(?:deps)?$/ ) {
+            $CheckOnly = 1;
+        }
+        elsif ( $arg =~ /^--skip(?:deps)?$/ ) {
+            $SkipInstall = 1;
+        }
+        elsif ( $arg =~ /^--test(?:only)?$/ ) {
+            $TestOnly = 1;
+        }
+    }
+}
+
+# overrides MakeMaker's prompt() to automatically accept the default choice
+sub _prompt {
+    goto &ExtUtils::MakeMaker::prompt unless $AcceptDefault;
+
+    my ( $prompt, $default ) = @_;
+    my $y = ( $default =~ /^[Yy]/ );
+
+    print $prompt, ' [', ( $y ? 'Y' : 'y' ), '/', ( $y ? 'n' : 'N' ), '] ';
+    print "$default\n";
+    return $default;
+}
+
+# the workhorse
+sub import {
+    my $class = shift;
+    my @args = @_ or return;
+    my $core_all;
+
+    print "*** $class version " . $class->VERSION . "\n";
+    print "*** Checking for dependencies...\n";
+
+    my $cwd = Cwd::cwd();
+
+    $Config = [];
+
+    my $maxlen = length(
+        (
+            sort   { length($b) <=> length($a) }
+              grep { /^[^\-]/ }
+              map  {
+                ref($_)
+                  ? ( ( ref($_) eq 'HASH' ) ? keys(%$_) : @{$_} )
+                  : ''
+              }
+              map { +{@args}->{$_} }
+              grep { /^[^\-]/ or /^-core$/i } keys %{ +{@args} }
+        )[0]
+    );
+
+    while ( my ( $feature, $modules ) = splice( @args, 0, 2 ) ) {
+        my ( @required, @tests, @skiptests );
+        my $default  = 1;
+        my $conflict = 0;
+
+        if ( $feature =~ m/^-(\w+)$/ ) {
+            my $option = lc($1);
+
+            # check for a newer version of myself
+            _update_to( $modules, @_ ) and return if $option eq 'version';
+
+            # sets CPAN configuration options
+            $Config = $modules if $option eq 'config';
+
+            # promote every features to core status
+            $core_all = ( $modules =~ /^all$/i ) and next
+              if $option eq 'core';
+
+            next unless $option eq 'core';
+        }
+
+        print "[" . ( $FeatureMap{ lc($feature) } || $feature ) . "]\n";
+
+        $modules = [ %{$modules} ] if UNIVERSAL::isa( $modules, 'HASH' );
+
+        unshift @$modules, -default => &{ shift(@$modules) }
+          if ( ref( $modules->[0] ) eq 'CODE' );    # XXX: bugward combatability
+
+        while ( my ( $mod, $arg ) = splice( @$modules, 0, 2 ) ) {
+            if ( $mod =~ m/^-(\w+)$/ ) {
+                my $option = lc($1);
+
+                $default   = $arg    if ( $option eq 'default' );
+                $conflict  = $arg    if ( $option eq 'conflict' );
+                @tests     = @{$arg} if ( $option eq 'tests' );
+                @skiptests = @{$arg} if ( $option eq 'skiptests' );
+
+                next;
+            }
+
+            printf( "- %-${maxlen}s ...", $mod );
+
+            if ( $arg and $arg =~ /^\D/ ) {
+                unshift @$modules, $arg;
+                $arg = 0;
+            }
+
+            # XXX: check for conflicts and uninstalls(!) them.
+            if (
+                defined( my $cur = _version_check( _load($mod), $arg ||= 0 ) ) )
+            {
+                print "loaded. ($cur" . ( $arg ? " >= $arg" : '' ) . ")\n";
+                push @Existing, $mod => $arg;
+                $DisabledTests{$_} = 1 for map { glob($_) } @skiptests;
+            }
+            else {
+                print "missing." . ( $arg ? " (would need $arg)" : '' ) . "\n";
+                push @required, $mod => $arg;
+            }
+        }
+
+        next unless @required;
+
+        my $mandatory = ( $feature eq '-core' or $core_all );
+
+        if (
+            !$SkipInstall
+            and (
+                $CheckOnly
+                or _prompt(
+                    qq{==> Auto-install the }
+                      . ( @required / 2 )
+                      . ( $mandatory ? ' mandatory' : ' optional' )
+                      . qq{ module(s) from CPAN?},
+                    $default ? 'y' : 'n',
+                ) =~ /^[Yy]/
+            )
+          )
+        {
+            push( @Missing, @required );
+            $DisabledTests{$_} = 1 for map { glob($_) } @skiptests;
+        }
+
+        elsif ( !$SkipInstall
+            and $default
+            and $mandatory
+            and
+            _prompt( qq{==> The module(s) are mandatory! Really skip?}, 'n', )
+            =~ /^[Nn]/ )
+        {
+            push( @Missing, @required );
+            $DisabledTests{$_} = 1 for map { glob($_) } @skiptests;
+        }
+
+        else {
+            $DisabledTests{$_} = 1 for map { glob($_) } @tests;
+        }
+    }
+
+    _check_lock();    # check for $UnderCPAN
+
+    if ( @Missing and not( $CheckOnly or $UnderCPAN ) ) {
+        require Config;
+        print
+"*** Dependencies will be installed the next time you type '$Config::Config{make}'.\n";
+
+        # make an educated guess of whether we'll need root permission.
+        print "    (You may need to do that as the 'root' user.)\n"
+          if eval '$>';
+    }
+    print "*** $class configuration finished.\n";
+
+    chdir $cwd;
+
+    # import to main::
+    no strict 'refs';
+    *{'main::WriteMakefile'} = \&Write if caller(0) eq 'main';
+}
+
+# CPAN.pm is non-reentrant, so check if we're under it and have no CPANPLUS
+sub _check_lock {
+    return unless @Missing;
+    return if _has_cpanplus();
+
+    require CPAN;
+    CPAN::Config->load;
+    my $lock = MM->catfile( $CPAN::Config->{cpan_home}, ".lock" );
+
+    if (    -f $lock
+        and open( LOCK, $lock )
+        and ( $^O eq 'MSWin32' ? _under_cpan() : <LOCK> == getppid() )
+        and ( $CPAN::Config->{prerequisites_policy} || '' ) ne 'ignore' )
+    {
+        print << '.';
+
+*** Since we're running under CPAN, I'll just let it take care
+    of the dependency's installation later.
+.
+        $UnderCPAN = 1;
+    }
+
+    close LOCK;
+}
+
+sub install {
+    my $class = shift;
+
+    my $i;    # used below to strip leading '-' from config keys
+    my @config = ( map { s/^-// if ++$i; $_ } @{ +shift } );
+
+    my ( @modules, @installed );
+    while ( my ( $pkg, $ver ) = splice( @_, 0, 2 ) ) {
+
+        # grep out those already installed
+        if ( defined( _version_check( _load($pkg), $ver ) ) ) {
+            push @installed, $pkg;
+        }
+        else {
+            push @modules, $pkg, $ver;
+        }
+    }
+
+    return @installed unless @modules;    # nothing to do
+
+    print "*** Installing dependencies...\n";
+
+    return unless _connected_to('cpan.org');
+
+    my %args = @config;
+    my %failed;
+    local *FAILED;
+    if ( $args{do_once} and open( FAILED, '.#autoinstall.failed' ) ) {
+        while (<FAILED>) { chomp; $failed{$_}++ }
+        close FAILED;
+
+        my @newmod;
+        while ( my ( $k, $v ) = splice( @modules, 0, 2 ) ) {
+            push @newmod, ( $k => $v ) unless $failed{$k};
+        }
+        @modules = @newmod;
+    }
+
+    if ( _has_cpanplus() ) {
+        _install_cpanplus( \@modules, \@config );
+    }
+    else {
+        _install_cpan( \@modules, \@config );
+    }
+
+    print "*** $class installation finished.\n";
+
+    # see if we have successfully installed them
+    while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) {
+        if ( defined( _version_check( _load($pkg), $ver ) ) ) {
+            push @installed, $pkg;
+        }
+        elsif ( $args{do_once} and open( FAILED, '>> .#autoinstall.failed' ) ) {
+            print FAILED "$pkg\n";
+        }
+    }
+
+    close FAILED if $args{do_once};
+
+    return @installed;
+}
+
+sub _install_cpanplus {
+    my @modules   = @{ +shift };
+    my @config    = @{ +shift };
+    my $installed = 0;
+
+    require CPANPLUS::Backend;
+    my $cp   = CPANPLUS::Backend->new;
+    my $conf = $cp->configure_object;
+
+    return
+      unless _can_write(
+          $conf->can('conf')
+        ? $conf->get_conf('base')      # 0.05x+
+        : $conf->_get_build('base')    # 0.04x
+      );
+
+    # if we're root, set UNINST=1 to avoid trouble unless user asked for it.
+    my $makeflags = $conf->get_conf('makeflags') || '';
+    if ( UNIVERSAL::isa( $makeflags, 'HASH' ) ) {
+
+        # 0.03+ uses a hashref here
+        $makeflags->{UNINST} = 1 unless exists $makeflags->{UNINST};
+    }
+    else {
+
+        # 0.02 and below uses a scalar
+        $makeflags = join( ' ', split( ' ', $makeflags ), 'UNINST=1' )
+          if ( $makeflags !~ /\bUNINST\b/ and eval qq{ $> eq '0' } );
+    }
+    $conf->set_conf( makeflags => $makeflags );
+    $conf->set_conf( prereqs   => 1 );
+
+    while ( my ( $key, $val ) = splice( @config, 0, 2 ) ) {
+        eval { $conf->set_conf( $key, $val ) };
+    }
+
+    my $modtree = $cp->module_tree;
+    while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) {
+        print "*** Installing $pkg...\n";
+
+        MY::preinstall( $pkg, $ver ) or next if defined &MY::preinstall;
+
+        my $success;
+        my $obj = $modtree->{$pkg};
+
+        if ( $obj and defined( _version_check( $obj->{version}, $ver ) ) ) {
+            my $pathname = $pkg;
+            $pathname =~ s/::/\\W/;
+
+            foreach my $inc ( grep { m/$pathname.pm/i } keys(%INC) ) {
+                delete $INC{$inc};
+            }
+
+            my $rv = $cp->install( modules => [ $obj->{module} ] );
+
+            if ( $rv and ( $rv->{ $obj->{module} } or $rv->{ok} ) ) {
+                print "*** $pkg successfully installed.\n";
+                $success = 1;
+            }
+            else {
+                print "*** $pkg installation cancelled.\n";
+                $success = 0;
+            }
+
+            $installed += $success;
+        }
+        else {
+            print << ".";
+*** Could not find a version $ver or above for $pkg; skipping.
+.
+        }
+
+        MY::postinstall( $pkg, $ver, $success ) if defined &MY::postinstall;
+    }
+
+    return $installed;
+}
+
+sub _install_cpan {
+    my @modules   = @{ +shift };
+    my @config    = @{ +shift };
+    my $installed = 0;
+    my %args;
+
+    require CPAN;
+    CPAN::Config->load;
+    require Config;
+
+    return
+      unless _can_write( MM->catfile( $CPAN::Config->{cpan_home}, 'sources' ) )
+      and _can_write( $Config::Config{sitelib} );
+
+    # if we're root, set UNINST=1 to avoid trouble unless user asked for it.
+    my $makeflags = $CPAN::Config->{make_install_arg} || '';
+    $CPAN::Config->{make_install_arg} =
+      join( ' ', split( ' ', $makeflags ), 'UNINST=1' )
+      if ( $makeflags !~ /\bUNINST\b/ and eval qq{ $> eq '0' } );
+
+    # don't show start-up info
+    $CPAN::Config->{inhibit_startup_message} = 1;
+
+    # set additional options
+    while ( my ( $opt, $arg ) = splice( @config, 0, 2 ) ) {
+        ( $args{$opt} = $arg, next )
+          if $opt =~ /^force$/;    # pseudo-option
+        $CPAN::Config->{$opt} = $arg;
+    }
+
+    local $CPAN::Config->{prerequisites_policy} = 'follow';
+
+    while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) {
+        MY::preinstall( $pkg, $ver ) or next if defined &MY::preinstall;
+
+        print "*** Installing $pkg...\n";
+
+        my $obj     = CPAN::Shell->expand( Module => $pkg );
+        my $success = 0;
+
+        if ( $obj and defined( _version_check( $obj->cpan_version, $ver ) ) ) {
+            my $pathname = $pkg;
+            $pathname =~ s/::/\\W/;
+
+            foreach my $inc ( grep { m/$pathname.pm/i } keys(%INC) ) {
+                delete $INC{$inc};
+            }
+
+            $obj->force('install') if $args{force};
+
+            my $rv = $obj->install || eval {
+                $CPAN::META->instance( 'CPAN::Distribution', $obj->cpan_file, )
+                  ->{install}
+                  if $CPAN::META;
+            };
+
+            if ( $rv eq 'YES' ) {
+                print "*** $pkg successfully installed.\n";
+                $success = 1;
+            }
+            else {
+                print "*** $pkg installation failed.\n";
+                $success = 0;
+            }
+
+            $installed += $success;
+        }
+        else {
+            print << ".";
+*** Could not find a version $ver or above for $pkg; skipping.
+.
+        }
+
+        MY::postinstall( $pkg, $ver, $success ) if defined &MY::postinstall;
+    }
+
+    return $installed;
+}
+
+sub _has_cpanplus {
+    return (
+        $HasCPANPLUS = (
+            $INC{'CPANPLUS/Config.pm'}
+              or _load('CPANPLUS::Shell::Default')
+        )
+    );
+}
+
+# make guesses on whether we're under the CPAN installation directory
+sub _under_cpan {
+    require Cwd;
+    require File::Spec;
+
+    my $cwd  = File::Spec->canonpath( Cwd::cwd() );
+    my $cpan = File::Spec->canonpath( $CPAN::Config->{cpan_home} );
+
+    return ( index( $cwd, $cpan ) > -1 );
+}
+
+sub _update_to {
+    my $class = __PACKAGE__;
+    my $ver   = shift;
+
+    return
+      if defined( _version_check( _load($class), $ver ) );  # no need to upgrade
+
+    if (
+        _prompt( "==> A newer version of $class ($ver) is required. Install?",
+            'y' ) =~ /^[Nn]/
+      )
+    {
+        die "*** Please install $class $ver manually.\n";
+    }
+
+    print << ".";
+*** Trying to fetch it from CPAN...
+.
+
+    # install ourselves
+    _load($class) and return $class->import(@_)
+      if $class->install( [], $class, $ver );
+
+    print << '.'; exit 1;
+
+*** Cannot bootstrap myself. :-( Installation terminated.
+.
+}
+
+# check if we're connected to some host, using inet_aton
+sub _connected_to {
+    my $site = shift;
+
+    return (
+        ( _load('Socket') and Socket::inet_aton($site) ) or _prompt(
+            qq(
+*** Your host cannot resolve the domain name '$site', which
+    probably means the Internet connections are unavailable.
+==> Should we try to install the required module(s) anyway?), 'n'
+          ) =~ /^[Yy]/
+    );
+}
+
+# check if a directory is writable; may create it on demand
+sub _can_write {
+    my $path = shift;
+    mkdir( $path, 0755 ) unless -e $path;
+
+    return 1 if -w $path;
+
+    print << ".";
+*** You are not allowed to write to the directory '$path';
+    the installation may fail due to insufficient permissions.
+.
+
+    if (
+        eval '$>' and lc(`sudo -V`) =~ /version/ and _prompt(
+            qq(
+==> Should we try to re-execute the autoinstall process with 'sudo'?), 'y'
+        ) =~ /^[Yy]/
+      )
+    {
+
+        # try to bootstrap ourselves from sudo
+        print << ".";
+*** Trying to re-execute the autoinstall process with 'sudo'...
+.
+        my $missing = join( ',', @Missing );
+        my $config = join( ',',
+            UNIVERSAL::isa( $Config, 'HASH' ) ? %{$Config} : @{$Config} )
+          if $Config;
+
+        return
+          unless system( 'sudo', $^X, $0, "--config=$config",
+            "--installdeps=$missing" );
+
+        print << ".";
+*** The 'sudo' command exited with error!  Resuming...
+.
+    }
+
+    return _prompt(
+        qq(
+==> Should we try to install the required module(s) anyway?), 'n'
+    ) =~ /^[Yy]/;
+}
+
+# load a module and return the version it reports
+sub _load {
+    my $mod  = pop;    # class/instance doesn't matter
+    my $file = $mod;
+
+    $file =~ s|::|/|g;
+    $file .= '.pm';
+
+    local $@;
+    return eval { require $file; $mod->VERSION } || ( $@ ? undef: 0 );
+}
+
+# compare two versions, either use Sort::Versions or plain comparison
+sub _version_check {
+    my ( $cur, $min ) = @_;
+    return unless defined $cur;
+
+    $cur =~ s/\s+$//;
+
+    # check for version numbers that are not in decimal format
+    if ( ref($cur) or ref($min) or $cur =~ /v|\..*\./ or $min =~ /v|\..*\./ ) {
+        if ( $version::VERSION or defined( _load('version') ) ) {
+
+            # use version.pm if it is installed.
+            return (
+                ( version->new($cur) >= version->new($min) ) ? $cur : undef );
+        }
+        elsif ( $Sort::Versions::VERSION or defined( _load('Sort::Versions') ) )
+        {
+
+            # use Sort::Versions as the sorting algorithm for a.b.c versions
+            return ( ( Sort::Versions::versioncmp( $cur, $min ) != -1 )
+                ? $cur
+                : undef );
+        }
+
+        warn "Cannot reliably compare non-decimal formatted versions.\n"
+          . "Please install version.pm or Sort::Versions.\n";
+    }
+
+    # plain comparison
+    local $^W = 0;    # shuts off 'not numeric' bugs
+    return ( $cur >= $min ? $cur : undef );
+}
+
+# nothing; this usage is deprecated.
+sub main::PREREQ_PM { return {}; }
+
+sub _make_args {
+    my %args = @_;
+
+    $args{PREREQ_PM} = { %{ $args{PREREQ_PM} || {} }, @Existing, @Missing }
+      if $UnderCPAN or $TestOnly;
+
+    if ( $args{EXE_FILES} and -e 'MANIFEST' ) {
+        require ExtUtils::Manifest;
+        my $manifest = ExtUtils::Manifest::maniread('MANIFEST');
+
+        $args{EXE_FILES} =
+          [ grep { exists $manifest->{$_} } @{ $args{EXE_FILES} } ];
+    }
+
+    $args{test}{TESTS} ||= 't/*.t';
+    $args{test}{TESTS} = join( ' ',
+        grep { !exists( $DisabledTests{$_} ) }
+          map { glob($_) } split( /\s+/, $args{test}{TESTS} ) );
+
+    my $missing = join( ',', @Missing );
+    my $config =
+      join( ',', UNIVERSAL::isa( $Config, 'HASH' ) ? %{$Config} : @{$Config} )
+      if $Config;
+
+    $PostambleActions = (
+        $missing
+        ? "\$(PERL) $0 --config=$config --installdeps=$missing"
+        : "\@\$(NOOP)"
+    );
+
+    return %args;
+}
+
+# a wrapper to ExtUtils::MakeMaker::WriteMakefile
+sub Write {
+    require Carp;
+    Carp::croak "WriteMakefile: Need even number of args" if @_ % 2;
+
+    if ($CheckOnly) {
+        print << ".";
+*** Makefile not written in check-only mode.
+.
+        return;
+    }
+
+    my %args = _make_args(@_);
+
+    no strict 'refs';
+
+    $PostambleUsed = 0;
+    local *MY::postamble = \&postamble unless defined &MY::postamble;
+    ExtUtils::MakeMaker::WriteMakefile(%args);
+
+    print << "." unless $PostambleUsed;
+*** WARNING: Makefile written with customized MY::postamble() without
+    including contents from Module::AutoInstall::postamble() --
+    auto installation features disabled.  Please contact the author.
+.
+
+    return 1;
+}
+
+sub postamble {
+    $PostambleUsed = 1;
+
+    return << ".";
+
+config :: installdeps
+\t\@\$(NOOP)
+
+checkdeps ::
+\t\$(PERL) $0 --checkdeps
+
+installdeps ::
+\t$PostambleActions
+
+.
+
+}
+
+1;
+
+__END__
+
+#line 950

Modified: packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/AutoInstall.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/AutoInstall.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/AutoInstall.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,7 +1,4 @@
 #line 1 "inc/Module/Install/AutoInstall.pm - lib/Module/Install/AutoInstall.pm"
-# $File: //depot/cpan/Module-Install/lib/Module/Install/AutoInstall.pm $ $Author: autrijus $
-# $Revision: #13 $ $Change: 1846 $ $DateTime: 2003/12/31 22:57:12 $ vim: expandtab shiftwidth=4
-
 package Module::Install::AutoInstall;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 
@@ -21,45 +18,35 @@
     my $self = shift;
     return if $self->{done}++;
 
-# ExtUtils::AutoInstall Bootstrap Code, version 7.
-AUTO:{my$p='ExtUtils::AutoInstall';my$v=0.49;$p->VERSION||0>=$v
-or+eval"use $p $v;1"or+do{my$e=$ENV{PERL_EXTUTILS_AUTOINSTALL};
-(!defined($e)||$e!~m/--(?:default|skip|testonly)/and-t STDIN or
-eval"use ExtUtils::MakeMaker;WriteMakefile(PREREQ_PM=>{'$p',$v}
-);1"and exit)and print"==> $p $v required. Install it from CP".
-"AN? [Y/n] "and<STDIN>!~/^n/i and print"*** Installing $p\n"and
-do{if (eval '$>' and lc(`sudo -V`) =~ /version/){system('sudo',
-$^X,"-MCPANPLUS","-e","CPANPLUS::install $p");eval"use $p $v;1"
-||system('sudo', $^X, "-MCPAN", "-e", "CPAN::install $p")}eval{
-require CPANPLUS;CPANPLUS::install$p};eval"use $p $v;1"or eval{
-require CPAN;CPAN::install$p};eval"use $p $v;1"||die"*** Please
-manually install $p $v from cpan.org first...\n"}}}
-
     # Flatten array of arrays into a single array
     my @core = map @$_, map @$_, grep ref,
                $self->build_requires, $self->requires;
 
-    while ( @core and @_ > 1 and $_[0] =~ /^-\w+$/ ) {
-        push @core, splice(@_, 0, 2);
-    }
+    my @config = @_;
 
-    ExtUtils::AutoInstall->import(
-        (@core ? (-core => \@core) : ()), @_, $self->features
+    # We'll need Module::AutoInstall
+    $self->include('Module::AutoInstall');
+    require Module::AutoInstall;
+
+    Module::AutoInstall->import(
+        (@config ? (-config => \@config) : ()),
+        (@core   ? (-core   => \@core)   : ()),
+        $self->features,
     );
 
-    $self->makemaker_args( ExtUtils::AutoInstall::_make_args() );
+    $self->makemaker_args( Module::AutoInstall::_make_args() );
 
     my $class = ref($self);
     $self->postamble(
         "# --- $class section:\n" .
-        ExtUtils::AutoInstall::postamble()
+        Module::AutoInstall::postamble()
     );
 }
 
 sub auto_install_now {
     my $self = shift;
-    $self->auto_install;
-    ExtUtils::AutoInstall::do_install();
+    $self->auto_install(@_);
+    Module::AutoInstall::do_install();
 }
 
 1;

Modified: packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Base.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Base.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Base.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,11 +1,11 @@
 #line 1 "inc/Module/Install/Base.pm - lib/Module/Install/Base.pm"
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Base.pm $ $Author: autrijus $
-# $Revision: #10 $ $Change: 1847 $ $DateTime: 2003/12/31 23:14:54 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Base;
 
-#line 31
+# Suspend handler for "redefined" warnings
+BEGIN { my $w = $SIG{__WARN__}; $SIG{__WARN__} = sub { $w } };
 
+#line 30
+
 sub new {
     my ($class, %args) = @_;
 
@@ -18,18 +18,18 @@
     bless(\%args, $class);
 }
 
-#line 49
+#line 48
 
 sub AUTOLOAD {
     my $self = shift;
     goto &{$self->_top->autoload};
 }
 
-#line 60
+#line 59
 
 sub _top { $_[0]->{_top} }
 
-#line 71
+#line 70
 
 sub admin {
     my $self = shift;
@@ -52,6 +52,9 @@
 
 1;
 
+# Restore warning handler
+BEGIN { $SIG{__WARN__} = $SIG{__WARN__}->() };
+
 __END__
 
-#line 115
+#line 117

Deleted: packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Build.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Build.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Build.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,66 +0,0 @@
-#line 1 "inc/Module/Install/Build.pm - lib/Module/Install/Build.pm"
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Build.pm $ $Author: ingy $
-# $Revision: #23 $ $Change: 1255 $ $DateTime: 2003/03/05 13:23:32 $ vim: expandtab shiftwidth=4
-
-package Module::Install::Build;
-$VERSION = '0.01';
-use strict;
-use vars qw(@ISA);
-use Module::Install::Base; @ISA = qw(Module::Install::Base);
-
-sub Build { $_[0] }
-
-sub write {
-    my $self = shift;
-    die "Build->write() takes no arguments\n" if @_;
-
-    my %args;
-    my $build;
-
-    $args{dist_name} = $self->name || $self->determine_NAME($self->{args});
-    $args{license} = $self->license;
-    $args{dist_version} = $self->version || $self->determine_VERSION($self->{args});
-    $args{dist_abstract} = $self->abstract;
-    $args{dist_author} = $self->author;
-    $args{sign} = $self->sign;
-    $args{no_index} = $self->no_index;
-
-    foreach my $key (qw(build_requires requires recommends conflicts)) {
-        my $val = eval "\$self->$key" or next;
-        $args{$key} = { map @$_, @$val };
-    }
-
-    %args = map {($_, $args{$_})} grep {defined($args{$_})} keys %args;
-
-    require Module::Build;
-    $build = Module::Build->new(%args);
-    $build->add_to_cleanup(split /\s+/, $self->clean_files);
-    $build->create_build_script;
-}
-
-sub ACTION_reset {
-    my ($self) = @_;
-    die "XXX - Can't get this working yet";
-    require File::Path;
-    warn "Removing inc\n";
-    rmpath('inc');
-}
-
-sub ACTION_dist {
-    my ($self) = @_;
-    die "XXX - Can't get this working yet";
-}
-
-# <ingy> DrMath: is there an OO way to add actions to Module::Build??
-# <DrMath> ingy: yeah
-# <DrMath> ingy: package MyBuilder; use w(Module::Build; @ISA = qw(w(Module::Build); sub ACTION_ingy
-#           {...}
-# <DrMath> ingy: then my $build = new MyBuilder( ...parameters... );
-#           $build->write_build_script;
-
-
-1;
-
-__END__
-
-#line 178

Modified: packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Can.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Can.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Can.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,7 +1,4 @@
 #line 1 "inc/Module/Install/Can.pm - lib/Module/Install/Can.pm"
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Can.pm $ $Author: autrijus $
-# $Revision: #6 $ $Change: 1840 $ $DateTime: 2003/12/28 19:42:02 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Can;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 $VERSION = '0.01';
@@ -11,6 +8,20 @@
 use File::Spec ();
 use ExtUtils::MakeMaker ();
 
+# check if we can load some module
+sub can_use {
+    my ($self, $mod, $ver) = @_;
+    $mod =~ s{::|\\}{/}g;
+    $mod .= ".pm" unless $mod =~ /\.pm$/i;
+
+    my $pkg = $mod;
+    $pkg =~ s{/}{::}g;
+    $pkg =~ s{\.pm$}{}i;
+
+    local $@;
+    eval { require $mod; $pkg->VERSION($ver || 0); 1 };
+}
+
 # check if we can run some command
 sub can_run {
     my ($self, $cmd) = @_;
@@ -38,4 +49,20 @@
     return;
 }
 
+# Fix Cygwin bug on maybe_command();
+if ($^O eq 'cygwin') {
+    require ExtUtils::MM_Cygwin;
+    if (!defined(&ExtUtils::MM_Cygwin::maybe_command)) {
+        *ExtUtils::MM_Cygwin::maybe_command = sub {
+            my ($self, $file) = @_;
+            if ($file =~ m{^/cygdrive/}i) {
+                ExtUtils::MM_Win32->maybe_command($file);
+            }
+            else {
+                $self->SUPER::maybe_command($file);
+            }
+        }
+    }
+}
+
 1;

Modified: packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Fetch.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Fetch.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Fetch.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,7 +1,4 @@
 #line 1 "inc/Module/Install/Fetch.pm - lib/Module/Install/Fetch.pm"
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Fetch.pm $ $Author: autrijus $
-# $Revision: #8 $ $Change: 1374 $ $DateTime: 2003/03/18 11:50:15 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Fetch;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Include.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Include.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Include.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,7 +1,4 @@
 #line 1 "inc/Module/Install/Include.pm - lib/Module/Install/Include.pm"
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Include.pm $ $Author: autrijus $
-# $Revision: #9 $ $Change: 2288 $ $DateTime: 2004/07/01 04:49:12 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Include;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Makefile.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Makefile.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Makefile.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,7 +1,4 @@
 #line 1 "inc/Module/Install/Makefile.pm - lib/Module/Install/Makefile.pm"
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Makefile.pm $ $Author: autrijus $
-# $Revision: #53 $ $Change: 1847 $ $DateTime: 2003/12/31 23:14:54 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Makefile;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 
@@ -26,6 +23,14 @@
     $args;
 }
 
+sub build_subdirs {
+    my $self = shift;
+    my $subdirs = $self->makemaker_args->{DIR} ||= [];
+    for my $subdir (@_) {
+        push @$subdirs, $subdir;
+    }
+}
+
 sub clean_files {
     my $self = shift;
     my $clean = $self->makemaker_args->{clean} ||= {};
@@ -57,6 +62,8 @@
     $args->{VERSION} = $self->version || $self->determine_VERSION($args);
     $args->{NAME} =~ s/-/::/g;
 
+    $args->{test} = {TESTS => $self->tests} if $self->tests;
+
     if ($] >= 5.005) {
 	$args->{ABSTRACT} = $self->abstract;
 	$args->{AUTHOR} = $self->author;
@@ -75,10 +82,13 @@
                  ($self->build_requires, $self->requires) );
 
     # merge both kinds of requires into prereq_pm
-    my $dir = ($args->{DIR} ||= []);
+    my $subdirs = ($args->{DIR} ||= []);
     if ($self->bundles) {
-        push @$dir, map "$_->[1]", @{$self->bundles};
-        delete $prereq->{$_->[0]} for @{$self->bundles};
+        foreach my $bundle (@{ $self->bundles }) {
+            my ($file, $dir) = @$bundle;
+            push @$subdirs, $dir if -d $dir;
+            delete $prereq->{$file};
+        }
     }
 
     if (my $perl_version = $self->perl_version) {
@@ -109,6 +119,7 @@
     my $postamble = "# Postamble by $top_class $top_version\n" . 
                     ($self->postamble || '');
 
+    local *MAKEFILE;
     open MAKEFILE, '< Makefile' or die $!;
     my $makefile = do { local $/; <MAKEFILE> };
     close MAKEFILE;
@@ -143,4 +154,4 @@
 
 __END__
 
-#line 276
+#line 286

Modified: packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Metadata.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Metadata.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Metadata.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,151 +1,175 @@
 #line 1 "inc/Module/Install/Metadata.pm - lib/Module/Install/Metadata.pm"
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Metadata.pm $ $Author: autrijus $
-# $Revision: #32 $ $Change: 1885 $ $DateTime: 2004/03/11 05:55:27 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Metadata;
-use Module::Install::Base; @ISA = qw(Module::Install::Base);
+use Module::Install::Base;
+ at ISA = qw(Module::Install::Base);
 
-$VERSION = '0.04';
+$VERSION = '0.05';
 
 use strict 'vars';
 use vars qw($VERSION);
 
+my @scalar_keys = qw<
+    name module_name version abstract author license
+    distribution_type perl_version tests
+>;
+my @tuple_keys = qw<
+    build_requires requires recommends bundles
+>;
+
 sub Meta { shift }
+sub Meta_ScalarKeys { @scalar_keys }
+sub Meta_TupleKeys { @tuple_keys }
 
-my @scalar_keys = qw(
-    name module_name version abstract author license
-    distribution_type sign perl_version
-);
-my @tuple_keys  = qw(build_requires requires recommends bundles);
-
 foreach my $key (@scalar_keys) {
     *$key = sub {
         my $self = shift;
-        return $self->{'values'}{$key} unless @_;
-        $self->{'values'}{$key} = shift;
+        return $self->{values}{$key} if defined wantarray and !@_;
+        $self->{values}{$key} = shift;
         return $self;
     };
 }
 
+sub sign {
+    my $self = shift;
+    return $self->{values}{sign} if defined wantarray and !@_;
+    $self->{values}{sign} = ( @_ ? $_[0] : 1 );
+    return $self;
+}
+
 foreach my $key (@tuple_keys) {
     *$key = sub {
         my $self = shift;
-        return $self->{'values'}{$key} unless @_;
+        return $self->{values}{$key} unless @_;
+
         my @rv;
         while (@_) {
-            my $module  = shift or last;
+            my $module = shift or last;
             my $version = shift || 0;
-            if ($module eq 'perl') {
+            if ( $module eq 'perl' ) {
                 $version =~ s{^(\d+)\.(\d+)\.(\d+)}
                              {$1 + $2/1_000 + $3/1_000_000}e;
                 $self->perl_version($version);
                 next;
             }
-            my $rv = [$module, $version];
-            push @{$self->{'values'}{$key}}, $rv;
+            my $rv = [ $module, $version ];
             push @rv, $rv;
         }
-        return @rv;
+        push @{ $self->{values}{$key} }, @rv;
+        @rv;
     };
 }
 
-sub features {
-    my $self = shift;
-    while (my ($name, $mods) = splice(@_, 0, 2)) {
-        my $count = 0;
-        push @{$self->{'values'}{'features'}}, ($name => [
-            map { (++$count % 2 and ref($_) and ($count += $#$_)) ? @$_ : $_ } @$mods
-        ] );
+sub all_from {
+    my ( $self, $file ) = @_;
+
+    $self->version_from($file)      unless $self->version;
+    $self->perl_version_from($file) unless $self->perl_version;
+
+    # The remaining probes read from POD sections; if the file
+    # has an accompanying .pod, use that instead
+    my $pod = $file;
+    if ( $pod =~ s/\.pm$/.pod/i and -e $pod ) {
+        $file = $pod;
     }
-    return @{$self->{'values'}{'features'}};
+
+    $self->author_from($file)   unless $self->author;
+    $self->license_from($file)  unless $self->license;
+    $self->abstract_from($file) unless $self->abstract;
 }
 
-sub no_index {
-    my $self = shift;
-    my $type = shift;
-    push @{$self->{'values'}{'no_index'}{$type}}, @_ if $type;
-    return $self->{'values'}{'no_index'};
+sub provides {
+    my $self     = shift;
+    my $provides = ( $self->{values}{provides} ||= {} );
+    %$provides = (%$provides, @_) if @_;
+    return $provides;
 }
 
-sub _dump {
+sub auto_provides {
     my $self = shift;
-    my $package = ref($self->_top);
-    my $version = $self->_top->VERSION;
-    my %values = %{$self->{'values'}};
+    return $self unless $self->is_admin;
 
-    delete $values{sign};
-    if (my $perl_version = delete $values{perl_version}) {
-        # Always canonical to three-dot version 
-        $perl_version =~ s{^(\d+)\.(\d\d\d)(\d*)}{join('.', $1, int($2), int($3))}e
-            if $perl_version >= 5.006;
-        $values{requires} = [
-            [perl => $perl_version],
-            @{$values{requires}||[]},
-        ];
+    unless (-e 'MANIFEST') {
+        warn "Cannot deduce auto_provides without a MANIFEST, skipping\n";
+        return $self;
     }
 
-    warn "No license specified, setting license = 'unknown'\n"
-        unless $values{license};
+    # Avoid spurious warnings as we are not checking manifest here.
 
-    $values{license} ||= 'unknown';
-    $values{distribution_type} ||= 'module';
-    $values{name} ||= do {
-        my $name = $values{module_name};
-        $name =~ s/::/-/g;
-        $name;
-    } if $values{module_name};
+    local $SIG{__WARN__} = sub {1};
+    require ExtUtils::Manifest;
+    local *ExtUtils::Manifest::manicheck = sub { return };
 
-    if ($values{name} =~ /::/) {
-        my $name = $values{name};
-        $name =~ s/::/-/g;
-        die "Error in name(): '$values{name}' should be '$name'!\n";
-    }
+    require Module::Build;
+    my $build = Module::Build->new(
+        dist_name    => $self->{name},
+        dist_version => $self->{version},
+        license      => $self->{license},
+    );
+    $self->provides(%{ $build->find_dist_packages || {} });
+}
 
-    my $dump = '';
-    foreach my $key (@scalar_keys) {
-        $dump .= "$key: $values{$key}\n" if exists $values{$key};
-    }
-    foreach my $key (@tuple_keys) {
-        next unless exists $values{$key};
-        $dump .= "$key:\n";
-        foreach (@{$values{$key}}) {
-            $dump .= "  $_->[0]: $_->[1]\n";
-        }
-    }
+sub feature {
+    my $self     = shift;
+    my $name     = shift;
+    my $features = ( $self->{values}{features} ||= [] );
 
-    if (my $no_index = $values{no_index}) {
-        push @{$no_index->{'directory'}}, 'inc';
-        require YAML;
-        local $YAML::UseHeader = 0;
-        $dump .= YAML::Dump({ no_index => $no_index});
+    my $mods;
+
+    if ( @_ == 1 and ref( $_[0] ) ) {
+        # The user used ->feature like ->features by passing in the second
+        # argument as a reference.  Accomodate for that.
+        $mods = $_[0];
     }
     else {
-        $dump .= << "META";
-no_index:
-  directory:
-    - inc
-META
+        $mods = \@_;
     }
-    
-    $dump .= "generated_by: $package version $version\n";
-    return $dump;
+
+    my $count = 0;
+    push @$features, (
+        $name => [
+            map {
+                ref($_) ? ( ref($_) eq 'HASH' ) ? %$_
+                                                : @$_
+                        : $_
+            } @$mods
+        ]
+    );
+
+    return @$features;
 }
 
+sub features {
+    my $self = shift;
+    while ( my ( $name, $mods ) = splice( @_, 0, 2 ) ) {
+        $self->feature( $name, @$mods );
+    }
+    return @{ $self->{values}{features} };
+}
+
+sub no_index {
+    my $self = shift;
+    my $type = shift;
+    push @{ $self->{values}{no_index}{$type} }, @_ if $type;
+    return $self->{values}{no_index};
+}
+
 sub read {
     my $self = shift;
     $self->include_deps( 'YAML', 0 );
+
     require YAML;
-    my $data = YAML::LoadFile( 'META.yml' );
+    my $data = YAML::LoadFile('META.yml');
+
     # Call methods explicitly in case user has already set some values.
-    while ( my ($key, $value) = each %$data ) {
-        next unless $self->can( $key );
-        if (ref $value eq 'HASH') {
-            while (my ($module, $version) = each %$value) {
-                $self->$key( $module => $version );
+    while ( my ( $key, $value ) = each %$data ) {
+        next unless $self->can($key);
+        if ( ref $value eq 'HASH' ) {
+            while ( my ( $module, $version ) = each %$value ) {
+                $self->can($key)->($self, $module => $version );
             }
         }
         else {
-            $self->$key( $value );
+            $self->can($key)->($self, $value);
         }
     }
     return $self;
@@ -154,37 +178,110 @@
 sub write {
     my $self = shift;
     return $self unless $self->is_admin;
-
-    META_NOT_OURS: {
-        local *FH;
-        if (open FH, "META.yml") {
-            while (<FH>) {
-                last META_NOT_OURS if /^generated_by: Module::Install\b/;
-            }
-            return $self if -s FH;
-        }
-    }
-
-    warn "Writing META.yml\n";
-    open META, "> META.yml" or warn "Cannot write to META.yml: $!";
-    print META $self->_dump;
-    close META;
+    $self->admin->write_meta;
     return $self;
 }
 
 sub version_from {
-    my ($self, $version_from) = @_;
+    my ( $self, $file ) = @_;
     require ExtUtils::MM_Unix;
-    $self->version(ExtUtils::MM_Unix->parse_version($version_from));
+    $self->version( ExtUtils::MM_Unix->parse_version($file) );
 }
 
 sub abstract_from {
-    my ($self, $abstract_from) = @_;
+    my ( $self, $file ) = @_;
     require ExtUtils::MM_Unix;
     $self->abstract(
-        bless( { DISTNAME => $self->name }, 'ExtUtils::MM_Unix')
-            ->parse_abstract($abstract_from)
-    );
+        bless( { DISTNAME => $self->name }, 'ExtUtils::MM_Unix' )
+          ->parse_abstract($file) );
 }
 
+sub _slurp {
+    my ( $self, $file ) = @_;
+
+    local *FH;
+    open FH, "< $file" or die "Cannot open $file.pod: $!";
+    do { local $/; <FH> };
+}
+
+sub perl_version_from {
+    my ( $self, $file ) = @_;
+
+    if (
+        $self->_slurp($file) =~ m/
+        ^
+        use \s*
+        v?
+        ([\d\.]+)
+        \s* ;
+    /ixms
+      )
+    {
+        $self->perl_version($1);
+    }
+    else {
+        warn "Cannot determine perl version info from $file\n";
+        return;
+    }
+}
+
+sub author_from {
+    my ( $self, $file ) = @_;
+    my $content = $self->_slurp($file);
+    if ($content =~ m/
+        =head \d \s+ (?:authors?)\b \s*
+        ([^\n]*)
+        |
+        =head \d \s+ (?:licen[cs]e|licensing|copyright|legal)\b \s*
+        .*? copyright .*? \d\d\d[\d.]+ \s* (?:\bby\b)? \s*
+        ([^\n]*)
+    /ixms) {
+        my $author = $1 || $2;
+        $author =~ s{E<lt>}{<}g;
+        $author =~ s{E<gt>}{>}g;
+        $self->author($author); 
+    }
+    else {
+        warn "Cannot determine author info from $file\n";
+    }
+}
+
+sub license_from {
+    my ( $self, $file ) = @_;
+
+    if (
+        $self->_slurp($file) =~ m/
+        =head \d \s+
+        (?:licen[cs]e|licensing|copyright|legal)\b
+        (.*?)
+        (=head\\d.*|=cut.*|)
+        \z
+    /ixms
+      )
+    {
+        my $license_text = $1;
+        my @phrases      = (
+            'under the same (?:terms|license) as perl itself' => 'perl',
+            'GNU public license'                              => 'gpl',
+            'GNU lesser public license'                       => 'gpl',
+            'BSD license'                                     => 'bsd',
+            'Artistic license'                                => 'artistic',
+            'GPL'                                             => 'gpl',
+            'LGPL'                                            => 'lgpl',
+            'BSD'                                             => 'bsd',
+            'Artistic'                                        => 'artistic',
+        );
+        while ( my ( $pattern, $license ) = splice( @phrases, 0, 2 ) ) {
+            $pattern =~ s{\s+}{\\s+}g;
+            if ( $license_text =~ /\b$pattern\b/i ) {
+                $self->license($license);
+                return 1;
+            }
+        }
+    }
+
+    warn "Cannot determine license info from $file\n";
+    return 'unknown';
+}
+
 1;

Deleted: packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/PAR.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/PAR.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/PAR.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,122 +0,0 @@
-#line 1 "inc/Module/Install/PAR.pm - lib/Module/Install/PAR.pm"
-# $File: //depot/cpan/Module-Install/lib/Module/Install/PAR.pm $ $Author: autrijus $
-# $Revision: #28 $ $Change: 1650 $ $DateTime: 2003/07/29 06:03:27 $ vim: expandtab shiftwidth=4
-
-package Module::Install::PAR;
-use Module::Install::Base; @ISA = qw(Module::Install::Base);
-
-sub par_base {
-    my ($self, $base, $file) = @_;
-    my $class = ref($self);
-    my $inc_class = join('::', @{$self->_top}{qw(prefix name)});
-    my $ftp_base;
-
-    if (defined $base and length $base) {
-        if ($base =~ m!^(([A-Z])[A-Z])[-_A-Z]+\Z!) {
-            $self->{mailto} = "$base\@cpan.org";
-            $ftp_base = "ftp://ftp.cpan.org/pub/CPAN/authors/id/$2/$1/$base";
-            $base = "http://www.cpan.org/authors/id/$2/$1/$base";
-        }
-        elsif ($base !~ m!^(\w+)://!) {
-            die "Cannot recognize path '$base'; please specify an URL or CPAN ID";
-        }
-        $base .= '/' unless $base =~ m!/\Z!;
-        $ftp_base .= '/' unless $ftp_base =~ m!/\Z!;
-    }
-
-    require Config;
-    my $suffix = "$Config::Config{archname}-$Config::Config{version}.par";
-
-    unless ($file ||= $self->{file}) {
-        my $name    = $self->name or return;
-        my $version = $self->version or return;
-        $name =~ s!::!-!g;
-        $self->{file} = $file = "$name-$version-$suffix";
-    }
-
-    my $perl = $^X;
-    $perl = Win32::GetShortPathName($perl)
-        if $perl =~ / / and defined &Win32::GetShortPathName;
-
-    $self->preamble(<<"END") if $base;
-# --- $class section:
-
-all ::
-\t\@$perl -M$inc_class -e \"extract_par(q($file))\"
-
-END
-
-    $self->postamble(<<"END");
-# --- $class section:
-
-$file: all test
-\t\@\$(PERL) -M$inc_class -e \"make_par(q($file))\"
-
-par :: $file
-\t\@\$(NOOP)
-
-par-upload :: $file
-\tcpan-upload -verbose $file
-
-END
-
-    $self->{url} = $base;
-    $self->{ftp_url} = $ftp_base;
-    $self->{suffix} = $suffix;
-
-    return $self;
-}
-
-sub fetch_par {
-    my ($self, $url, $file, $quiet) = @_;
-    $url = $self->{url} || $self->par_base($url)->{url};
-    $ftp_url = $self->{ftp_url};
-    $file ||= $self->{file};
-
-    return $file if -f $file or $self->get_file(
-        url     => "$url$file",
-        ftp_url => "$ftp_url$file"
-    );
-
-    require Config;
-    print << "END" if $self->{mailto} and !$quiet;
-*** No installation package available for your architecture.
-However, you may wish to generate one with '$Config::Config{make} par' and send
-it to <$self->{mailto}>, so other people on the same platform
-can benefit from it.
-*** Proceeding with normal installation...
-END
-    return;
-}
-
-sub extract_par {
-    my ($self, $file) = @_;
-    return unless -f $file;
-
-    if (eval { require Archive::Zip; 1 }) {
-        my $zip = Archive::Zip->new;
-        return unless $zip->read($file) == Archive::Zip::AZ_OK()
-                  and $zip->extractTree('', 'blib/') == Archive::Zip::AZ_OK();
-    }
-    elsif ($self->can_run('unzip')) {
-        return if system(unzip => $file, qw(-d blib));
-    }
-
-    local *PM_TO_BLIB;
-    open PM_TO_BLIB, '> pm_to_blib' or die $!;
-    close PM_TO_BLIB;
-}
-
-sub make_par {
-    my ($self, $file) = @_;
-    unlink $file if -f $file;
-
-    unless ( eval { require PAR::Dist; PAR::Dist->VERSION >= 0.03 } ) {
-        warn "Please install PAR::Dist 0.03 or above first.";
-        return;
-    }
-
-    return PAR::Dist::blib_to_par(dist => $file);
-}
-
-1;

Modified: packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Win32.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Win32.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Win32.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,7 +1,4 @@
 #line 1 "inc/Module/Install/Win32.pm - lib/Module/Install/Win32.pm"
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Win32.pm $ $Author: autrijus $
-# $Revision: #9 $ $Change: 1789 $ $DateTime: 2003/11/11 01:22:54 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Win32;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/WriteAll.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/WriteAll.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/WriteAll.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,7 +1,4 @@
 #line 1 "inc/Module/Install/WriteAll.pm - lib/Module/Install/WriteAll.pm"
-# $File: //depot/cpan/Module-Install/lib/Module/Install/WriteAll.pm $ $Author: autrijus $
-# $Revision: #3 $ $Change: 1885 $ $DateTime: 2004/03/11 05:55:27 $ vim: expandtab shiftwidth=4
-
 package Module::Install::WriteAll;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,10 +1,9 @@
-#line 1 "inc/Module/Install.pm - lib/Module/Install.pm"
-# $File: //depot/cpan/Module-Install/lib/Module/Install.pm $ $Author: autrijus $
-# $Revision: #68 $ $Change: 2285 $ $DateTime: 2004/07/01 03:16:20 $ vim: expandtab shiftwidth=4
-
+#line 1 "/home/autrijus/work/modinstall/trunk/inc/Module/Install.pm - lib/Module/Install.pm"
 package Module::Install;
-$VERSION = '0.34';
+use 5.004;
 
+$VERSION = '0.50'; # Don't forget to update Module::Install::Admin too!
+
 die << "." unless $INC{join('/', inc => split(/::/, __PACKAGE__)).'.pm'};
 Please invoke ${\__PACKAGE__} with:
 
@@ -17,14 +16,32 @@
 .
 
 use strict 'vars';
-use Cwd ();
+use Cwd qw(cwd abs_path);
+use FindBin;
 use File::Find ();
 use File::Path ();
 
 @inc::Module::Install::ISA = 'Module::Install';
+*inc::Module::Install::VERSION = *VERSION;
 
-#line 131
+sub autoload {
+    my $self   = shift;
+    my $caller = $self->_caller;
 
+    my $cwd = cwd();
+    my $sym = "$caller\::AUTOLOAD";
+
+    $sym->{$cwd} = sub {
+        my $pwd = cwd();
+        if (my $code = $sym->{$pwd}) {
+            goto &$code unless $cwd eq $pwd; # delegate back to parent dirs
+        }
+        $$sym =~ /([^:]+)$/ or die "Cannot autoload $caller - $sym";
+        unshift @_, ($self, $1);
+        goto &{$self->can('call')} unless uc($1) eq $1;
+    };
+}
+
 sub import {
     my $class = shift;
     my $self = $class->new(@_);
@@ -39,44 +56,61 @@
         goto &{"$self->{name}::import"};
     }
 
-    *{caller(0) . "::AUTOLOAD"} = $self->autoload;
+    *{$self->_caller . "::AUTOLOAD"} = $self->autoload;
+    $self->preload;
 
     # Unregister loader and worker packages so subdirs can use them again
     delete $INC{"$self->{file}"};
     delete $INC{"$self->{path}.pm"};
 }
 
-#line 158
+sub preload {
+    my ($self) = @_;
 
-sub autoload {
-    my $self = shift;
-    my $caller = caller;
+    $self->load_extensions(
+        "$self->{prefix}/$self->{path}", $self
+    ) unless $self->{extensions};
 
-    my $cwd = Cwd::cwd();
-    my $sym = "$caller\::AUTOLOAD";
+    my @exts = @{$self->{extensions}};
 
-    $sym->{$cwd} = sub {
-        my $pwd = Cwd::cwd();
-        if (my $code = $sym->{$pwd}) {
-            goto &$code unless $cwd eq $pwd; # delegate back to parent dirs
+    unless (@exts) {
+        my $admin = $self->{admin};
+        @exts = $admin->load_all_extensions;
+    }
+
+    my %seen_method;
+    foreach my $obj (@exts) {
+        while (my ($method, $glob) = each %{ref($obj) . '::'}) {
+            next unless defined *{$glob}{CODE};
+            next if $method =~ /^_/;
+            next if $method eq uc($method);
+            $seen_method{$method}++;
         }
-        $$sym =~ /([^:]+)$/ or die "Cannot autoload $caller";
-        unshift @_, ($self, $1);
-        goto &{$self->can('call')} unless uc($1) eq $1;
-    };
+    }
+
+    my $caller = $self->_caller;
+    foreach my $name (sort keys %seen_method) {
+        *{"${caller}::$name"} = sub {
+            ${"${caller}::AUTOLOAD"} = "${caller}::$name";
+            goto &{"${caller}::AUTOLOAD"};
+        };
+    }
 }
 
-#line 183
-
 sub new {
     my ($class, %args) = @_;
 
+    # ignore the prefix on extension modules built from top level.
+    my $base_path = abs_path($FindBin::Bin);
+    delete $args{prefix} unless abs_path(cwd()) eq $base_path;
+
     return $args{_self} if $args{_self};
 
     $args{dispatch} ||= 'Admin';
     $args{prefix}   ||= 'inc';
     $args{author}   ||= '.author';
     $args{bundle}   ||= 'inc/BUNDLES';
+    $args{base}     ||= $base_path;
 
     $class =~ s/^\Q$args{prefix}\E:://;
     $args{name}     ||= $class;
@@ -86,24 +120,20 @@
         $args{path}  = $args{name};
         $args{path}  =~ s!::!/!g;
     }
-    $args{file}     ||= "$args{prefix}/$args{path}.pm";
+    $args{file}     ||= "$args{base}/$args{prefix}/$args{path}.pm";
 
     bless(\%args, $class);
 }
 
-#line 212
-
 sub call {
     my $self   = shift;
     my $method = shift;
-    my $obj = $self->load($method) or return;
+    my $obj    = $self->load($method) or return;
 
     unshift @_, $obj;
     goto &{$obj->can($method)};
 }
 
-#line 227
-
 sub load {
     my ($self, $method) = @_;
 
@@ -126,8 +156,6 @@
     $obj;
 }
 
-#line 257
-
 sub load_extensions {
     my ($self, $path, $top_obj) = @_;
 
@@ -139,14 +167,16 @@
         my ($file, $pkg) = @{$rv};
         next if $self->{pathnames}{$pkg};
 
-        eval { require $file; 1 } or (warn($@), next);
+        local $@;
+        my $new = eval { require $file; $pkg->can('new') };
+        if (!$new) { warn $@ if $@; next; }
         $self->{pathnames}{$pkg} = delete $INC{$file};
-        push @{$self->{extensions}}, $pkg->new( _top => $top_obj );
+        push @{$self->{extensions}}, &{$new}($pkg, _top => $top_obj );
     }
+
+    $self->{extensions} ||= [];
 }
 
-#line 281
-
 sub find_extensions {
     my ($self, $path) = @_;
     my @found;
@@ -164,8 +194,16 @@
     @found;
 }
 
-1;
+sub _caller {
+    my $depth = 0;
+    my $caller = caller($depth);
 
-__END__
+    while ($caller eq __PACKAGE__) {
+        $depth++;
+        $caller = caller($depth);
+    }
 
-#line 619
+    $caller;
+}
+
+1;

Added: packages/libmodule-install-perl/branches/upstream/current/lib/Module/AutoInstall.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/AutoInstall.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/AutoInstall.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -0,0 +1,950 @@
+package Module::AutoInstall;
+$Module::AutoInstall::VERSION = '1.00';
+
+use strict;
+use Cwd                 ();
+use ExtUtils::MakeMaker ();
+
+=head1 NAME
+
+Module::AutoInstall - Automatic install of dependencies via CPAN
+
+=head1 VERSION
+
+This document describes version 0.01 of B<Module::AutoInstall>,
+released September 12, 2005.
+
+=head1 SYNOPSIS
+
+In F<Makefile.PL>, with L<Module::Install> available on the author's system:
+
+    use inc::Module::Install;
+
+    name        ('Joe-Hacker');
+    abstract    ('Perl Interface to Joe Hacker');
+    author      ('Joe Hacker <joe at hacker.org>');
+    include     ('Module::AutoInstall');
+
+    requires    ('Module0');        # mandatory modules
+    feature     ('Feature1',
+        -default    => 0,
+        'Module2'   => '0.1',
+    );
+    feature     ('Feature2',
+        -default    => 0,
+        'Module3'   => '1.0',
+    );
+    auto_install(
+        make_args   => '--hello',   # option(s) for CPAN::Config
+        force       => 1,           # pseudo-option to force install
+        do_once     => 1,           # skip previously failed modules
+    );
+    &WriteAll;
+
+Invoking the resulting F<Makefile.PL>:
+
+    % perl Makefile.PL                  # interactive behaviour
+    % perl Makefile.PL --defaultdeps    # accept default value on prompts
+    % perl Makefile.PL --checkdeps      # check only, no Makefile produced
+    % perl Makefile.PL --skipdeps       # ignores all dependencies
+    % perl Makefile.PL --testonly       # don't write installation targets
+
+Note that the trailing 'deps' of arguments may be omitted, too.
+
+Using C<--defaultdeps> will make F<Makefile.PL> behave similarly to a regular
+Makefile.PL file with C<PREREQ_PM> dependencies.
+
+One can use environment variables (see "ENVIRONMENT") below to set a default
+behavior instead of specifying it in the command line for every invocation
+of F<Makefile.PL>.
+
+Using F<make> (or F<nmake>):
+
+    % make [all|test|install]           # install dependencies first
+    % make checkdeps                    # same as the --checkdeps above
+    % make installdeps                  # install dependencies only
+
+=head1 DESCRIPTION
+
+B<Module::AutoInstall> lets module writers to specify a more
+sophisticated form of dependency information than the C<PREREQ_PM>
+option offered by B<ExtUtils::MakeMaker>.
+
+This module works best with the B<Module::Install> framework,
+a drop-in replacement for MakeMaker.  However, this module also
+supports F<Makefile.PL> files based on MakeMaker; see L</EXAMPLES>
+for instructions.
+
+=head2 Prerequisites and Features
+
+Prerequisites are grouped into B<features>, and the user could choose
+yes/no on each one's dependencies; the module writer may also supply a
+boolean value via C<-default> to specify the default choice.
+
+The B<Core Features> marked by the name C<-core> will double-check with
+the user, if the user chooses not to install the mandatory modules.
+This differs from the pre-0.26 'silent install' behaviour.
+
+Starting from version 0.27, if C<-core> is set to the string C<all>
+(case-insensitive), every feature will be considered mandatory.
+
+The dependencies are expressed as pairs of C<Module> => C<version>
+inside an array reference.  If the order does not matter, and there
+are no C<-default>, C<-tests> or C<-skiptests> directives for that
+feature, you may also use a hash reference.
+
+=head2 The Installation Process
+
+Once B<Module::AutoInstall> has determined which module(s) are needed,
+it checks whether it's running under the B<CPAN> shell and should
+therefore let B<CPAN> handle the dependency.
+
+Finally, the C<WriteMakefile()> is overridden to perform some additional
+checks, as well as skips tests associated with disabled features by the
+C<-tests> option.
+
+The actual installation happens at the end of the C<make config> target;
+both C<make test> and C<make install> will trigger the installation of
+required modules.
+
+If it's not running under B<CPAN>, the installer will probe for an
+active connection by trying to resolve the domain C<cpan.org>, and check
+for the user's permission to use B<CPAN>.  If all went well, a separate
+    B<CPAN> instance is created to install the required modules.
+
+If you have the B<CPANPLUS> package installed in your system, it is
+preferred by default over B<CPAN>; it also accepts some extra options
+(e.g. C<-target =E<gt> 'skiptest', -skiptest =E<gt> 1> to skip testing).
+
+All modules scheduled to be installed will be deleted from C<%INC>
+first, so B<ExtUtils::MakeMaker> will check the newly installed modules.
+
+Additionally, you could use the C<make installdeps> target to install
+the modules, and the C<make checkdeps> target to check dependencies
+without actually installing them; the C<perl Makefile.PL --checkdeps>
+command has an equivalent effect.
+
+If the F<Makefile.PL> itself needs to use an independent module (e.g.
+B<Acme::KillarApp>, v1.21 or greater), then use something like below:
+
+    BEGIN {
+        require Module::AutoInstall;
+        # the first argument is an arrayref of the -config flags
+        Module::AutoInstall->install([], 'Acme::KillerApp' => 1.21);
+    }
+    use Acme::KillerApp 1.21;
+
+    Module::AutoInstall->import(
+        # ... arguments as usual ...
+    );
+
+Note the version test in the use clause; if you are so close to the
+cutting edge that B<Acme::KillerApp> 1.20 is the latest version on CPAN,
+this will prevent your module from going awry.
+
+=head2 User-Defined Hooks
+
+User-defined I<pre-installation> and I<post-installation> hooks are
+available via C<MY::preinstall> and C<MY::postinstall> subroutines,
+as shown below:
+
+    # pre-install handler; takes $module_name and $version
+    sub MY::preinstall  { return 1; } # return false to skip install
+
+    # post-install handler; takes $module_name, $version, $success
+    sub MY::postinstall { return; }   # the return value doesn't matter
+
+Note that since B<Module::AutoInstall> performs installation at the
+time of C<use> (i.e. before perl parses the remainder of
+F<Makefile.PL>), you have to declare those two handlers I<before> the
+C<use> statement for them to take effect.
+
+If the user did not choose to install a module or it already exists on
+the system, neither of the handlers is invoked.  Both handlers are invoked
+exactly once for each module when installation is attempted.
+
+C<MY::preinstall> takes two arguments, C<$module_name> and C<$version>;
+if it returns a false value, installation for that module will be
+skipped, and C<MY::postinstall> won't be called at all.
+
+C<MY::postinstall> takes three arguments, C<$module_name>, C<$version>
+and C<$success>.  The last one denotes whether the installation
+succeeded or not: C<1> means installation completed successfully, C<0>
+means failure during install, and C<undef> means that the installation
+was not attempted at all, possibly due to connection problems, or that
+module does not exist on CPAN at all.
+
+=head2 Customized C<MY::postamble>
+
+Starting from version 0.43, B<Module::AutoInstall> supports modules
+that require a C<MY::postamble> subroutine in their F<Makefile.PL>.
+The user-defined C<MY::postamble>, if present, is responsible for
+calling C<Module::AutoInstall::postamble> and include the output in
+its return value.
+
+For example, the B<DBD::*> (database driver) modules for the Perl DBI
+are required to include the postamble generated by the function
+C<dbd_postamble>, so their F<Makefile.PL> may contain lines like this:
+
+    sub MY::postamble {
+        return &Module::AutoInstall::postamble . &dbd_postamble;
+    }
+
+Note that the B<Module::AutoInstall> module does not export the
+C<postamble> function, so the name should always be fully qualified.
+
+=head1 CAVEATS
+
+B<Module::AutoInstall> will add C<UNINST=1> to your B<make install>
+flags if your effective uid is 0 (root), unless you explicitly disable
+it by setting B<CPAN>'s C<make_install_arg> configuration option (or the
+C<makeflags> option of B<CPANPLUS>) to include C<UNINST=0>.  This I<may>
+cause dependency problems if you are using a fine-tuned directory
+structure for your site.  Please consult L<CPAN/FAQ> for an explanation
+in detail.
+
+If either B<version> or B<Sort::Versions> is available, they will be
+used to compare the required version with the existing module's version
+and the CPAN module's.  Otherwise it silently falls back to use I<cmp>.
+This may cause inconsistent behaviours in pathetic situations.
+
+=head1 ENVIRONMENT
+
+B<Module::AutoInstall> uses a single environment variable,
+C<PERL_AUTOINSTALL>.  It is taken as the command line argument
+passed to F<Makefile.PL>; you could set it to either C<--defaultdeps> or
+C<--skipdeps> to avoid interactive behaviour.
+
+It also read from the C<PERL_EXTUTILS_AUTOINSTALL> environment variable if
+C<PERL_AUTOINSTALL> is not defined.
+
+=cut
+
+# special map on pre-defined feature sets
+my %FeatureMap = (
+    ''      => 'Core Features',    # XXX: deprecated
+    '-core' => 'Core Features',
+);
+
+# various lexical flags
+my ( @Missing, @Existing,  %DisabledTests, $UnderCPAN,     $HasCPANPLUS );
+my ( $Config,  $CheckOnly, $SkipInstall,   $AcceptDefault, $TestOnly );
+my ( $PostambleActions, $PostambleUsed );
+
+_accept_default( !-t STDIN );      # see if it's a non-interactive session
+_init();
+
+sub _accept_default {
+    $AcceptDefault = shift;
+}
+
+sub missing_modules {
+    return @Missing;
+}
+
+sub do_install {
+    __PACKAGE__->install(
+        [
+            $Config
+            ? ( UNIVERSAL::isa( $Config, 'HASH' ) ? %{$Config} : @{$Config} )
+            : ()
+        ],
+        @Missing,
+    );
+}
+
+# initialize various flags, and/or perform install
+sub _init {
+    foreach my $arg (
+        @ARGV,
+        split(
+            /[\s\t]+/,
+            $ENV{PERL_AUTOINSTALL} || $ENV{PERL_EXTUTILS_AUTOINSTALL} || ''
+        )
+      )
+    {
+        if ( $arg =~ /^--config=(.*)$/ ) {
+            $Config = [ split( ',', $1 ) ];
+        }
+        elsif ( $arg =~ /^--installdeps=(.*)$/ ) {
+            __PACKAGE__->install( $Config, @Missing = split( /,/, $1 ) );
+            exit 0;
+        }
+        elsif ( $arg =~ /^--default(?:deps)?$/ ) {
+            $AcceptDefault = 1;
+        }
+        elsif ( $arg =~ /^--check(?:deps)?$/ ) {
+            $CheckOnly = 1;
+        }
+        elsif ( $arg =~ /^--skip(?:deps)?$/ ) {
+            $SkipInstall = 1;
+        }
+        elsif ( $arg =~ /^--test(?:only)?$/ ) {
+            $TestOnly = 1;
+        }
+    }
+}
+
+# overrides MakeMaker's prompt() to automatically accept the default choice
+sub _prompt {
+    goto &ExtUtils::MakeMaker::prompt unless $AcceptDefault;
+
+    my ( $prompt, $default ) = @_;
+    my $y = ( $default =~ /^[Yy]/ );
+
+    print $prompt, ' [', ( $y ? 'Y' : 'y' ), '/', ( $y ? 'n' : 'N' ), '] ';
+    print "$default\n";
+    return $default;
+}
+
+# the workhorse
+sub import {
+    my $class = shift;
+    my @args = @_ or return;
+    my $core_all;
+
+    print "*** $class version " . $class->VERSION . "\n";
+    print "*** Checking for dependencies...\n";
+
+    my $cwd = Cwd::cwd();
+
+    $Config = [];
+
+    my $maxlen = length(
+        (
+            sort   { length($b) <=> length($a) }
+              grep { /^[^\-]/ }
+              map  {
+                ref($_)
+                  ? ( ( ref($_) eq 'HASH' ) ? keys(%$_) : @{$_} )
+                  : ''
+              }
+              map { +{@args}->{$_} }
+              grep { /^[^\-]/ or /^-core$/i } keys %{ +{@args} }
+        )[0]
+    );
+
+    while ( my ( $feature, $modules ) = splice( @args, 0, 2 ) ) {
+        my ( @required, @tests, @skiptests );
+        my $default  = 1;
+        my $conflict = 0;
+
+        if ( $feature =~ m/^-(\w+)$/ ) {
+            my $option = lc($1);
+
+            # check for a newer version of myself
+            _update_to( $modules, @_ ) and return if $option eq 'version';
+
+            # sets CPAN configuration options
+            $Config = $modules if $option eq 'config';
+
+            # promote every features to core status
+            $core_all = ( $modules =~ /^all$/i ) and next
+              if $option eq 'core';
+
+            next unless $option eq 'core';
+        }
+
+        print "[" . ( $FeatureMap{ lc($feature) } || $feature ) . "]\n";
+
+        $modules = [ %{$modules} ] if UNIVERSAL::isa( $modules, 'HASH' );
+
+        unshift @$modules, -default => &{ shift(@$modules) }
+          if ( ref( $modules->[0] ) eq 'CODE' );    # XXX: bugward combatability
+
+        while ( my ( $mod, $arg ) = splice( @$modules, 0, 2 ) ) {
+            if ( $mod =~ m/^-(\w+)$/ ) {
+                my $option = lc($1);
+
+                $default   = $arg    if ( $option eq 'default' );
+                $conflict  = $arg    if ( $option eq 'conflict' );
+                @tests     = @{$arg} if ( $option eq 'tests' );
+                @skiptests = @{$arg} if ( $option eq 'skiptests' );
+
+                next;
+            }
+
+            printf( "- %-${maxlen}s ...", $mod );
+
+            if ( $arg and $arg =~ /^\D/ ) {
+                unshift @$modules, $arg;
+                $arg = 0;
+            }
+
+            # XXX: check for conflicts and uninstalls(!) them.
+            if (
+                defined( my $cur = _version_check( _load($mod), $arg ||= 0 ) ) )
+            {
+                print "loaded. ($cur" . ( $arg ? " >= $arg" : '' ) . ")\n";
+                push @Existing, $mod => $arg;
+                $DisabledTests{$_} = 1 for map { glob($_) } @skiptests;
+            }
+            else {
+                print "missing." . ( $arg ? " (would need $arg)" : '' ) . "\n";
+                push @required, $mod => $arg;
+            }
+        }
+
+        next unless @required;
+
+        my $mandatory = ( $feature eq '-core' or $core_all );
+
+        if (
+            !$SkipInstall
+            and (
+                $CheckOnly
+                or _prompt(
+                    qq{==> Auto-install the }
+                      . ( @required / 2 )
+                      . ( $mandatory ? ' mandatory' : ' optional' )
+                      . qq{ module(s) from CPAN?},
+                    $default ? 'y' : 'n',
+                ) =~ /^[Yy]/
+            )
+          )
+        {
+            push( @Missing, @required );
+            $DisabledTests{$_} = 1 for map { glob($_) } @skiptests;
+        }
+
+        elsif ( !$SkipInstall
+            and $default
+            and $mandatory
+            and
+            _prompt( qq{==> The module(s) are mandatory! Really skip?}, 'n', )
+            =~ /^[Nn]/ )
+        {
+            push( @Missing, @required );
+            $DisabledTests{$_} = 1 for map { glob($_) } @skiptests;
+        }
+
+        else {
+            $DisabledTests{$_} = 1 for map { glob($_) } @tests;
+        }
+    }
+
+    _check_lock();    # check for $UnderCPAN
+
+    if ( @Missing and not( $CheckOnly or $UnderCPAN ) ) {
+        require Config;
+        print
+"*** Dependencies will be installed the next time you type '$Config::Config{make}'.\n";
+
+        # make an educated guess of whether we'll need root permission.
+        print "    (You may need to do that as the 'root' user.)\n"
+          if eval '$>';
+    }
+    print "*** $class configuration finished.\n";
+
+    chdir $cwd;
+
+    # import to main::
+    no strict 'refs';
+    *{'main::WriteMakefile'} = \&Write if caller(0) eq 'main';
+}
+
+# CPAN.pm is non-reentrant, so check if we're under it and have no CPANPLUS
+sub _check_lock {
+    return unless @Missing;
+    return if _has_cpanplus();
+
+    require CPAN;
+    CPAN::Config->load;
+    my $lock = MM->catfile( $CPAN::Config->{cpan_home}, ".lock" );
+
+    if (    -f $lock
+        and open( LOCK, $lock )
+        and ( $^O eq 'MSWin32' ? _under_cpan() : <LOCK> == getppid() )
+        and ( $CPAN::Config->{prerequisites_policy} || '' ) ne 'ignore' )
+    {
+        print << '.';
+
+*** Since we're running under CPAN, I'll just let it take care
+    of the dependency's installation later.
+.
+        $UnderCPAN = 1;
+    }
+
+    close LOCK;
+}
+
+sub install {
+    my $class = shift;
+
+    my $i;    # used below to strip leading '-' from config keys
+    my @config = ( map { s/^-// if ++$i; $_ } @{ +shift } );
+
+    my ( @modules, @installed );
+    while ( my ( $pkg, $ver ) = splice( @_, 0, 2 ) ) {
+
+        # grep out those already installed
+        if ( defined( _version_check( _load($pkg), $ver ) ) ) {
+            push @installed, $pkg;
+        }
+        else {
+            push @modules, $pkg, $ver;
+        }
+    }
+
+    return @installed unless @modules;    # nothing to do
+
+    print "*** Installing dependencies...\n";
+
+    return unless _connected_to('cpan.org');
+
+    my %args = @config;
+    my %failed;
+    local *FAILED;
+    if ( $args{do_once} and open( FAILED, '.#autoinstall.failed' ) ) {
+        while (<FAILED>) { chomp; $failed{$_}++ }
+        close FAILED;
+
+        my @newmod;
+        while ( my ( $k, $v ) = splice( @modules, 0, 2 ) ) {
+            push @newmod, ( $k => $v ) unless $failed{$k};
+        }
+        @modules = @newmod;
+    }
+
+    if ( _has_cpanplus() ) {
+        _install_cpanplus( \@modules, \@config );
+    }
+    else {
+        _install_cpan( \@modules, \@config );
+    }
+
+    print "*** $class installation finished.\n";
+
+    # see if we have successfully installed them
+    while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) {
+        if ( defined( _version_check( _load($pkg), $ver ) ) ) {
+            push @installed, $pkg;
+        }
+        elsif ( $args{do_once} and open( FAILED, '>> .#autoinstall.failed' ) ) {
+            print FAILED "$pkg\n";
+        }
+    }
+
+    close FAILED if $args{do_once};
+
+    return @installed;
+}
+
+sub _install_cpanplus {
+    my @modules   = @{ +shift };
+    my @config    = @{ +shift };
+    my $installed = 0;
+
+    require CPANPLUS::Backend;
+    my $cp   = CPANPLUS::Backend->new;
+    my $conf = $cp->configure_object;
+
+    return
+      unless _can_write(
+          $conf->can('conf')
+        ? $conf->get_conf('base')      # 0.05x+
+        : $conf->_get_build('base')    # 0.04x
+      );
+
+    # if we're root, set UNINST=1 to avoid trouble unless user asked for it.
+    my $makeflags = $conf->get_conf('makeflags') || '';
+    if ( UNIVERSAL::isa( $makeflags, 'HASH' ) ) {
+
+        # 0.03+ uses a hashref here
+        $makeflags->{UNINST} = 1 unless exists $makeflags->{UNINST};
+    }
+    else {
+
+        # 0.02 and below uses a scalar
+        $makeflags = join( ' ', split( ' ', $makeflags ), 'UNINST=1' )
+          if ( $makeflags !~ /\bUNINST\b/ and eval qq{ $> eq '0' } );
+    }
+    $conf->set_conf( makeflags => $makeflags );
+    $conf->set_conf( prereqs   => 1 );
+
+    while ( my ( $key, $val ) = splice( @config, 0, 2 ) ) {
+        eval { $conf->set_conf( $key, $val ) };
+    }
+
+    my $modtree = $cp->module_tree;
+    while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) {
+        print "*** Installing $pkg...\n";
+
+        MY::preinstall( $pkg, $ver ) or next if defined &MY::preinstall;
+
+        my $success;
+        my $obj = $modtree->{$pkg};
+
+        if ( $obj and defined( _version_check( $obj->{version}, $ver ) ) ) {
+            my $pathname = $pkg;
+            $pathname =~ s/::/\\W/;
+
+            foreach my $inc ( grep { m/$pathname.pm/i } keys(%INC) ) {
+                delete $INC{$inc};
+            }
+
+            my $rv = $cp->install( modules => [ $obj->{module} ] );
+
+            if ( $rv and ( $rv->{ $obj->{module} } or $rv->{ok} ) ) {
+                print "*** $pkg successfully installed.\n";
+                $success = 1;
+            }
+            else {
+                print "*** $pkg installation cancelled.\n";
+                $success = 0;
+            }
+
+            $installed += $success;
+        }
+        else {
+            print << ".";
+*** Could not find a version $ver or above for $pkg; skipping.
+.
+        }
+
+        MY::postinstall( $pkg, $ver, $success ) if defined &MY::postinstall;
+    }
+
+    return $installed;
+}
+
+sub _install_cpan {
+    my @modules   = @{ +shift };
+    my @config    = @{ +shift };
+    my $installed = 0;
+    my %args;
+
+    require CPAN;
+    CPAN::Config->load;
+    require Config;
+
+    return
+      unless _can_write( MM->catfile( $CPAN::Config->{cpan_home}, 'sources' ) )
+      and _can_write( $Config::Config{sitelib} );
+
+    # if we're root, set UNINST=1 to avoid trouble unless user asked for it.
+    my $makeflags = $CPAN::Config->{make_install_arg} || '';
+    $CPAN::Config->{make_install_arg} =
+      join( ' ', split( ' ', $makeflags ), 'UNINST=1' )
+      if ( $makeflags !~ /\bUNINST\b/ and eval qq{ $> eq '0' } );
+
+    # don't show start-up info
+    $CPAN::Config->{inhibit_startup_message} = 1;
+
+    # set additional options
+    while ( my ( $opt, $arg ) = splice( @config, 0, 2 ) ) {
+        ( $args{$opt} = $arg, next )
+          if $opt =~ /^force$/;    # pseudo-option
+        $CPAN::Config->{$opt} = $arg;
+    }
+
+    local $CPAN::Config->{prerequisites_policy} = 'follow';
+
+    while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) {
+        MY::preinstall( $pkg, $ver ) or next if defined &MY::preinstall;
+
+        print "*** Installing $pkg...\n";
+
+        my $obj     = CPAN::Shell->expand( Module => $pkg );
+        my $success = 0;
+
+        if ( $obj and defined( _version_check( $obj->cpan_version, $ver ) ) ) {
+            my $pathname = $pkg;
+            $pathname =~ s/::/\\W/;
+
+            foreach my $inc ( grep { m/$pathname.pm/i } keys(%INC) ) {
+                delete $INC{$inc};
+            }
+
+            $obj->force('install') if $args{force};
+
+            my $rv = $obj->install || eval {
+                $CPAN::META->instance( 'CPAN::Distribution', $obj->cpan_file, )
+                  ->{install}
+                  if $CPAN::META;
+            };
+
+            if ( $rv eq 'YES' ) {
+                print "*** $pkg successfully installed.\n";
+                $success = 1;
+            }
+            else {
+                print "*** $pkg installation failed.\n";
+                $success = 0;
+            }
+
+            $installed += $success;
+        }
+        else {
+            print << ".";
+*** Could not find a version $ver or above for $pkg; skipping.
+.
+        }
+
+        MY::postinstall( $pkg, $ver, $success ) if defined &MY::postinstall;
+    }
+
+    return $installed;
+}
+
+sub _has_cpanplus {
+    return (
+        $HasCPANPLUS = (
+            $INC{'CPANPLUS/Config.pm'}
+              or _load('CPANPLUS::Shell::Default')
+        )
+    );
+}
+
+# make guesses on whether we're under the CPAN installation directory
+sub _under_cpan {
+    require Cwd;
+    require File::Spec;
+
+    my $cwd  = File::Spec->canonpath( Cwd::cwd() );
+    my $cpan = File::Spec->canonpath( $CPAN::Config->{cpan_home} );
+
+    return ( index( $cwd, $cpan ) > -1 );
+}
+
+sub _update_to {
+    my $class = __PACKAGE__;
+    my $ver   = shift;
+
+    return
+      if defined( _version_check( _load($class), $ver ) );  # no need to upgrade
+
+    if (
+        _prompt( "==> A newer version of $class ($ver) is required. Install?",
+            'y' ) =~ /^[Nn]/
+      )
+    {
+        die "*** Please install $class $ver manually.\n";
+    }
+
+    print << ".";
+*** Trying to fetch it from CPAN...
+.
+
+    # install ourselves
+    _load($class) and return $class->import(@_)
+      if $class->install( [], $class, $ver );
+
+    print << '.'; exit 1;
+
+*** Cannot bootstrap myself. :-( Installation terminated.
+.
+}
+
+# check if we're connected to some host, using inet_aton
+sub _connected_to {
+    my $site = shift;
+
+    return (
+        ( _load('Socket') and Socket::inet_aton($site) ) or _prompt(
+            qq(
+*** Your host cannot resolve the domain name '$site', which
+    probably means the Internet connections are unavailable.
+==> Should we try to install the required module(s) anyway?), 'n'
+          ) =~ /^[Yy]/
+    );
+}
+
+# check if a directory is writable; may create it on demand
+sub _can_write {
+    my $path = shift;
+    mkdir( $path, 0755 ) unless -e $path;
+
+    return 1 if -w $path;
+
+    print << ".";
+*** You are not allowed to write to the directory '$path';
+    the installation may fail due to insufficient permissions.
+.
+
+    if (
+        eval '$>' and lc(`sudo -V`) =~ /version/ and _prompt(
+            qq(
+==> Should we try to re-execute the autoinstall process with 'sudo'?), 'y'
+        ) =~ /^[Yy]/
+      )
+    {
+
+        # try to bootstrap ourselves from sudo
+        print << ".";
+*** Trying to re-execute the autoinstall process with 'sudo'...
+.
+        my $missing = join( ',', @Missing );
+        my $config = join( ',',
+            UNIVERSAL::isa( $Config, 'HASH' ) ? %{$Config} : @{$Config} )
+          if $Config;
+
+        return
+          unless system( 'sudo', $^X, $0, "--config=$config",
+            "--installdeps=$missing" );
+
+        print << ".";
+*** The 'sudo' command exited with error!  Resuming...
+.
+    }
+
+    return _prompt(
+        qq(
+==> Should we try to install the required module(s) anyway?), 'n'
+    ) =~ /^[Yy]/;
+}
+
+# load a module and return the version it reports
+sub _load {
+    my $mod  = pop;    # class/instance doesn't matter
+    my $file = $mod;
+
+    $file =~ s|::|/|g;
+    $file .= '.pm';
+
+    local $@;
+    return eval { require $file; $mod->VERSION } || ( $@ ? undef: 0 );
+}
+
+# compare two versions, either use Sort::Versions or plain comparison
+sub _version_check {
+    my ( $cur, $min ) = @_;
+    return unless defined $cur;
+
+    $cur =~ s/\s+$//;
+
+    # check for version numbers that are not in decimal format
+    if ( ref($cur) or ref($min) or $cur =~ /v|\..*\./ or $min =~ /v|\..*\./ ) {
+        if ( $version::VERSION or defined( _load('version') ) ) {
+
+            # use version.pm if it is installed.
+            return (
+                ( version->new($cur) >= version->new($min) ) ? $cur : undef );
+        }
+        elsif ( $Sort::Versions::VERSION or defined( _load('Sort::Versions') ) )
+        {
+
+            # use Sort::Versions as the sorting algorithm for a.b.c versions
+            return ( ( Sort::Versions::versioncmp( $cur, $min ) != -1 )
+                ? $cur
+                : undef );
+        }
+
+        warn "Cannot reliably compare non-decimal formatted versions.\n"
+          . "Please install version.pm or Sort::Versions.\n";
+    }
+
+    # plain comparison
+    local $^W = 0;    # shuts off 'not numeric' bugs
+    return ( $cur >= $min ? $cur : undef );
+}
+
+# nothing; this usage is deprecated.
+sub main::PREREQ_PM { return {}; }
+
+sub _make_args {
+    my %args = @_;
+
+    $args{PREREQ_PM} = { %{ $args{PREREQ_PM} || {} }, @Existing, @Missing }
+      if $UnderCPAN or $TestOnly;
+
+    if ( $args{EXE_FILES} and -e 'MANIFEST' ) {
+        require ExtUtils::Manifest;
+        my $manifest = ExtUtils::Manifest::maniread('MANIFEST');
+
+        $args{EXE_FILES} =
+          [ grep { exists $manifest->{$_} } @{ $args{EXE_FILES} } ];
+    }
+
+    $args{test}{TESTS} ||= 't/*.t';
+    $args{test}{TESTS} = join( ' ',
+        grep { !exists( $DisabledTests{$_} ) }
+          map { glob($_) } split( /\s+/, $args{test}{TESTS} ) );
+
+    my $missing = join( ',', @Missing );
+    my $config =
+      join( ',', UNIVERSAL::isa( $Config, 'HASH' ) ? %{$Config} : @{$Config} )
+      if $Config;
+
+    $PostambleActions = (
+        $missing
+        ? "\$(PERL) $0 --config=$config --installdeps=$missing"
+        : "\@\$(NOOP)"
+    );
+
+    return %args;
+}
+
+# a wrapper to ExtUtils::MakeMaker::WriteMakefile
+sub Write {
+    require Carp;
+    Carp::croak "WriteMakefile: Need even number of args" if @_ % 2;
+
+    if ($CheckOnly) {
+        print << ".";
+*** Makefile not written in check-only mode.
+.
+        return;
+    }
+
+    my %args = _make_args(@_);
+
+    no strict 'refs';
+
+    $PostambleUsed = 0;
+    local *MY::postamble = \&postamble unless defined &MY::postamble;
+    ExtUtils::MakeMaker::WriteMakefile(%args);
+
+    print << "." unless $PostambleUsed;
+*** WARNING: Makefile written with customized MY::postamble() without
+    including contents from Module::AutoInstall::postamble() --
+    auto installation features disabled.  Please contact the author.
+.
+
+    return 1;
+}
+
+sub postamble {
+    $PostambleUsed = 1;
+
+    return << ".";
+
+config :: installdeps
+\t\@\$(NOOP)
+
+checkdeps ::
+\t\$(PERL) $0 --checkdeps
+
+installdeps ::
+\t$PostambleActions
+
+.
+
+}
+
+1;
+
+__END__
+
+=head1 SEE ALSO
+
+L<Module::Install>
+
+L<perlmodlib>, L<ExtUtils::MakeMaker>, L<Sort::Versions>, L<CPAN>,
+L<CPANPLUS>
+
+=head1 AUTHORS
+
+Audrey Tang E<lt>autrijus at autrijus.orgE<gt>
+
+=head1 COPYRIGHT
+
+Copyright 2001, 2002, 2003, 2004, 2005
+by Audrey Tang E<lt>autrijus at autrijus.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See L<http://www.perl.com/perl/misc/Artistic.html>
+
+=cut

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Bundle.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Bundle.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Bundle.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,55 +1,70 @@
-# $File: //member/autrijus/.vimrc $ $Author: autrijus $
-# $Revision: #14 $ $Change: 4137 $ $DateTime: 2003/02/08 11:41:59 $
-
 package Module::Install::Admin::Bundle;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 
-$VERSION = '0.01';
+$VERSION = '0.04';
 
+use strict;
 sub bundle {
-    my $self = shift;
+    my $self       = shift;
     my $bundle_dir = $self->_top->{bundle};
 
     require Cwd;
     require CPANPLUS::Backend;
 
-    my $cwd  = Cwd::getcwd();
-    my $cp   = CPANPLUS::Backend->new;
-    my $conf = $cp->configure_object;
+    my $cwd = Cwd::getcwd();
+
+    # This code is what we _should_ be doing, but CPANPLUS doesn't
+    # let you have multiple Backends in one program.
+    #my $cp   = CPANPLUS::Backend->new;
+    #
+    # Jos Boumans tells us that this is the best way to do what we want
+    # It still scares me.
+    my $cp      = CPANPLUS::Internals->_retrieve_id( CPANPLUS::Internals->_last_id )
+               || CPANPLUS::Backend->new;
+    my $conf    = $cp->configure_object;
     my $modtree = $cp->module_tree;
 
+    $conf->set_conf( verbose => 1 );
+    $conf->set_conf( signature => 0 );
+    $conf->set_conf( md5 => 0 );
+
     mkdir $bundle_dir;
 
     my %bundles;
-    while (my ($name, $version) = splice(@_, 0, 2)) {
-        my $fetch_result = $cp->fetch(
-            modules     => [$name],
-            fetchdir    => $bundle_dir,
-        );
-        my $rv = $fetch_result->rv or next;
-        my $file = $rv->{$name} or next;
-	$file = Cwd::abs_path($file);
 
-        my $extract_result = $cp->extract(
-            files       => [$file],
-            extractdir  => $bundle_dir,
+    while ( my ( $name, $version ) = splice( @_, 0, 2 ) ) {
+        my $mod = $cp->module_tree($name);
+        next unless $mod;
+        next
+          if ( $mod->package_is_perl_core
+            or $self->{already_bundled}{$mod->package} );
+        my $where = $mod->fetch( fetchdir => $bundle_dir, );
+
+        next unless ($where);
+        my $file = Cwd::abs_path($where);
+
+        my $extract_result = $mod->extract(
+            files      => [$file],
+            extractdir => $bundle_dir,
         );
 
-	unlink $file;
+        unlink $file;
+        next unless ($extract_result);
+        $bundles{$name} = $extract_result;
+        $self->{already_bundled}{ $mod->package }++;
 
-        $rv = $extract_result->rv or next;
-	my $filename = $rv->{$file} or next;
-	$bundles{$name} = $filename;
     }
 
     chdir $cwd;
 
     local *FH;
-    open FH, ">>$bundle_dir.yml" or die $!;
-    foreach my $name (sort keys %bundles) {
-	print FH "$name: '$bundles{$name}'\n";
+    open FH, ">> $bundle_dir.yml" or die "Cannot write to $bundle_dir.yml: $!";
+    foreach my $name ( sort keys %bundles ) {
+        print FH "$name: '$bundles{$name}'\n";
     }
     close FH;
 }
 
 1;
+
+__END__

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Find.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Find.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Find.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Admin/Find.pm $ $Author: autrijus $
-# $Revision: #3 $ $Change: 1375 $ $DateTime: 2003/03/18 12:29:32 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Admin::Find;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Include.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Include.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Include.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //member/autrijus/.vimrc $ $Author: autrijus $
-# $Revision: #14 $ $Change: 4137 $ $DateTime: 2003/02/08 11:41:59 $
-
 package Module::Install::Admin::Include;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Makefile.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Makefile.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Makefile.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Admin/Makefile.pm $ $Author: autrijus $
-# $Revision: #9 $ $Change: 1646 $ $DateTime: 2003/07/16 01:05:17 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Admin::Makefile;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Manifest.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Manifest.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Manifest.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Admin/Manifest.pm $ $Author: autrijus $
-# $Revision: #19 $ $Change: 1847 $ $DateTime: 2003/12/31 23:14:54 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Admin::Manifest;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 
@@ -11,7 +8,7 @@
 use File::Spec;
 
 # XXX I really want this method in Module::Install::Admin::Makefile
-# But you can't call across Admin modules. Autrijus??
+# But you can't call across Admin modules. Audrey??
 sub dist_preop {
     my ($self, $distdir) = @_;
     return if $self->check_manifest;
@@ -151,7 +148,7 @@
 =head1 COPYRIGHT
 
 Copyright 2003, 2004 by
-Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>,
+Audrey Tang E<lt>autrijus at autrijus.orgE<gt>,
 Brian Ingerson E<lt>ingy at cpan.orgE<gt>
 
 This program is free software; you can redistribute it and/or modify it

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Metadata.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Metadata.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Metadata.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,10 +1,7 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Admin/Manifest.pm $ $Author: autrijus $
-# $Revision: #5 $ $Change: 1263 $ $DateTime: 2003/03/06 02:37:29 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Admin::Metadata;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 
-$VERSION = '0.01';
+$VERSION = '0.02';
 
 use strict;
 
@@ -28,4 +25,84 @@
       or die "Couldn't unlink META.yml:\n$!";
 }
 
+sub write_meta {
+    my $self = shift;
+
+  META_NOT_OURS: {
+        local *FH;
+        if ( open FH, "META.yml" ) {
+            while (<FH>) {
+                last META_NOT_OURS if /^generated_by: Module::Install\b/;
+            }
+            return if -s FH;
+        }
+    }
+
+    print "Writing META.yml\n";
+
+    local *META;
+    open META, "> META.yml" or warn "Cannot write to META.yml: $!";
+    print META $self->dump_meta;
+    close META;
+
+    return;
+}
+
+sub dump_meta {
+    my $self    = shift;
+    my $package = ref( $self->_top );
+    my $version = $self->_top->VERSION;
+    my %values  = %{ $self->Meta->{'values'} };
+
+    delete $values{sign};
+    if ( my $perl_version = delete $values{perl_version} ) {
+
+        # Always canonical to three-dot version
+        $perl_version =~
+          s{^(\d+)\.(\d\d\d)(\d*)}{join('.', $1, int($2), int($3))}e
+          if $perl_version >= 5.006;
+        $values{requires} =
+          [ [ perl => $perl_version ], @{ $values{requires} || [] }, ];
+    }
+
+    warn "No license specified, setting license = 'unknown'\n"
+      unless $values{license};
+
+    $values{license}           ||= 'unknown';
+    $values{distribution_type} ||= 'module';
+    $values{name}              ||= do {
+        my $name = $values{module_name};
+        $name =~ s/::/-/g;
+        $name;
+    } if $values{module_name};
+
+    if ( $values{name} =~ /::/ ) {
+        my $name = $values{name};
+        $name =~ s/::/-/g;
+        die "Error in name(): '$values{name}' should be '$name'!\n";
+    }
+
+    my %dump;
+    foreach my $key ($self->Meta_ScalarKeys) {
+        $dump{$key} = $values{$key} if exists $values{$key};
+    }
+    foreach my $key ($self->Meta_TupleKeys) {
+        next unless exists $values{$key};
+        $dump{$key} = { map { @$_ } @{ $values{$key} } };
+    }
+
+    if ( my $provides = $values{provides} ) {
+        $dump{provides} = $provides;
+    }
+
+    my $no_index = $values{no_index} ||= {};
+    push @{ $no_index->{'directory'} ||= [] }, 'inc', 't';
+    $dump{no_index} = $no_index;
+
+    require YAML;
+    local $YAML::UseHeader = 0;
+    $dump{generated_by} = "$package version $version";
+    return YAML::Dump(\%dump);
+}
+
 1;

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/ScanDeps.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/ScanDeps.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/ScanDeps.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Admin/ScanDeps.pm $ $Author: autrijus $
-# $Revision: #16 $ $Change: 1815 $ $DateTime: 2003/12/14 20:41:23 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Admin::ScanDeps;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 
@@ -40,16 +37,20 @@
         foreach my $key (keys %$deps) {
             if ($deps->{$key}{type} eq 'shared') {
                 foreach my $used_by (@{$deps->{$key}{used_by}}) {
-                    $used_by =~ s!/!::!;
+                    $used_by =~ s!/!::!g;
                     $used_by =~ s!\.pm\Z!!i or next;
                     next if exists $result{$used_by};
                     $result{$used_by} = undef;
-                    print "skipped $used_by (needs shared library)\n";
+                    my $min_version = Module::CoreList->first_release($used_by);
+                    print "skipped $used_by (needs shared library)\n"
+                      unless !$min_version || $min_version <= $perl_version;
                 }
             }
+        }
 
+        foreach my $key (keys %$deps) {
             my $dep_pkg = $key;
-            $dep_pkg =~ s!/!::!;
+            $dep_pkg =~ s!/!::!g;
             $dep_pkg =~ s!\.pm\Z!!i or next;
 
             if (my $min_version = Module::CoreList->first_release($dep_pkg)) {

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/WriteAll.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/WriteAll.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/WriteAll.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Admin/WriteAll.pm $ $Author: autrijus $
-# $Revision: #4 $ $Change: 1821 $ $DateTime: 2003/12/14 21:07:46 $
-
 package Module::Install::Admin::WriteAll;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,8 +1,5 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Admin.pm $ $Author: autrijus $
-# $Revision: #42 $ $Change: 1847 $ $DateTime: 2003/12/31 23:14:54 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Admin;
-$VERSION = '0.29';
+$VERSION = '0.50';
 @ISA = 'Module::Install';
 
 use strict 'vars';
@@ -131,40 +128,36 @@
 
     chomp $to;
 
-    local (*FROM, *TO, $/);
+    local (*FROM, *TO, $_);
     open FROM, "< $from" or die "Can't open $from for input:\n$!";
-    my $content = <FROM>;
-    close FROM;
+    open TO, "> $to" or die "Can't open $to for output:\n$!";
+    print TO "#line 1 \"$to - $from\"\n";
 
-    {
-        local $^W;
-        my $line = 1;
-        $content =~ s{(
-            (.*?)
-            ^=(?:head\d|pod|begin|item|over|for|back|end)\b.*?
-            ^=cut[\t ]*
-            (?:[\r\n])*?
-            (\r?\n)?
-        )}{
-            my ($pre, $post) = ($2, $3);
-            "$pre#line " . (
-                $line += ( () = ( $1 =~ /\n/g ) )
-            ) . $post;
-        }mgsex;
+    my $content;
+    my $in_pod;
+
+    while (<FROM>) {
+        if (/^=(?:b(?:egin|ack)|head\d|(?:po|en)d|item|(?:ove|fo)r)/) {
+            $in_pod = 1;
+        }
+        elsif (/^=cut\s*\z/ and $in_pod) {
+            $in_pod = 0;
+            print TO "#line $.\n";
+        }
+        elsif (!$in_pod) {
+            print TO $_;
+        }
     }
 
-    open TO, "> $to" or die "Can't open $to for output:\n$!";
-    print TO "#line 1 \"$to - $from\"\n";
-    print TO $content;
+    close FROM;
     close TO;
 
     print "include $to\n";
 }
 
-sub load {
-    my ($self, $method, $copy) = @_;
-
-    # scan through our target to find
+# scan through our target to find
+sub load_all_extensions {
+    my $self = shift;
     unless ($self->{extensions}) {
         $self->{extensions} = [];
         foreach my $inc (@INC) {
@@ -172,9 +165,14 @@
             $self->load_extensions("$inc/$self->{path}", $self->{_top});
         }
     }
+    return @{$self->{extensions}};
+}
 
+sub load {
+    my ($self, $method, $copy) = @_;
+
     my @extobj;
-    foreach my $obj (@{$self->{extensions}}) {
+    foreach my $obj ($self->load_all_extensions) {
         next unless defined &{ref($obj)."::$method"};
         my $is_admin = (ref($obj) =~ /^\Q$self->{name}::$self->{dispatch}::/);
         # Don't ever include admin modules, and vice versa.
@@ -281,11 +279,11 @@
 
 =head1 AUTHORS
 
-Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>
+Audrey Tang E<lt>autrijus at autrijus.orgE<gt>
 
 =head1 COPYRIGHT
 
-Copyright 2003, 2004 by Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>.
+Copyright 2003, 2004 by Audrey Tang E<lt>autrijus at autrijus.orgE<gt>.
 
 This program is free software; you can redistribute it and/or modify it
 under the same terms as Perl itself.

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/AutoInstall.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/AutoInstall.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/AutoInstall.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/AutoInstall.pm $ $Author: autrijus $
-# $Revision: #13 $ $Change: 1846 $ $DateTime: 2003/12/31 22:57:12 $ vim: expandtab shiftwidth=4
-
 package Module::Install::AutoInstall;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 
@@ -20,45 +17,35 @@
     my $self = shift;
     return if $self->{done}++;
 
-# ExtUtils::AutoInstall Bootstrap Code, version 7.
-AUTO:{my$p='ExtUtils::AutoInstall';my$v=0.49;$p->VERSION||0>=$v
-or+eval"use $p $v;1"or+do{my$e=$ENV{PERL_EXTUTILS_AUTOINSTALL};
-(!defined($e)||$e!~m/--(?:default|skip|testonly)/and-t STDIN or
-eval"use ExtUtils::MakeMaker;WriteMakefile(PREREQ_PM=>{'$p',$v}
-);1"and exit)and print"==> $p $v required. Install it from CP".
-"AN? [Y/n] "and<STDIN>!~/^n/i and print"*** Installing $p\n"and
-do{if (eval '$>' and lc(`sudo -V`) =~ /version/){system('sudo',
-$^X,"-MCPANPLUS","-e","CPANPLUS::install $p");eval"use $p $v;1"
-||system('sudo', $^X, "-MCPAN", "-e", "CPAN::install $p")}eval{
-require CPANPLUS;CPANPLUS::install$p};eval"use $p $v;1"or eval{
-require CPAN;CPAN::install$p};eval"use $p $v;1"||die"*** Please
-manually install $p $v from cpan.org first...\n"}}}
-
     # Flatten array of arrays into a single array
     my @core = map @$_, map @$_, grep ref,
                $self->build_requires, $self->requires;
 
-    while ( @core and @_ > 1 and $_[0] =~ /^-\w+$/ ) {
-        push @core, splice(@_, 0, 2);
-    }
+    my @config = @_;
 
-    ExtUtils::AutoInstall->import(
-        (@core ? (-core => \@core) : ()), @_, $self->features
+    # We'll need Module::AutoInstall
+    $self->include('Module::AutoInstall');
+    require Module::AutoInstall;
+
+    Module::AutoInstall->import(
+        (@config ? (-config => \@config) : ()),
+        (@core   ? (-core   => \@core)   : ()),
+        $self->features,
     );
 
-    $self->makemaker_args( ExtUtils::AutoInstall::_make_args() );
+    $self->makemaker_args( Module::AutoInstall::_make_args() );
 
     my $class = ref($self);
     $self->postamble(
         "# --- $class section:\n" .
-        ExtUtils::AutoInstall::postamble()
+        Module::AutoInstall::postamble()
     );
 }
 
 sub auto_install_now {
     my $self = shift;
-    $self->auto_install;
-    ExtUtils::AutoInstall::do_install();
+    $self->auto_install(@_);
+    Module::AutoInstall::do_install();
 }
 
 1;

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Base.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Base.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Base.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,8 +1,8 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Base.pm $ $Author: autrijus $
-# $Revision: #10 $ $Change: 1847 $ $DateTime: 2003/12/31 23:14:54 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Base;
 
+# Suspend handler for "redefined" warnings
+BEGIN { my $w = $SIG{__WARN__}; $SIG{__WARN__} = sub { $w } };
+
 =head1 NAME
 
 Module::Install::Base - Base class for Module::Install extensions
@@ -90,6 +90,9 @@
 
 1;
 
+# Restore warning handler
+BEGIN { $SIG{__WARN__} = $SIG{__WARN__}->() };
+
 __END__
 
 =back
@@ -100,11 +103,11 @@
 
 =head1 AUTHORS
 
-Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>
+Audrey Tang E<lt>autrijus at autrijus.orgE<gt>
 
 =head1 COPYRIGHT
 
-Copyright 2003, 2004 by Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>.
+Copyright 2003, 2004 by Audrey Tang E<lt>autrijus at autrijus.orgE<gt>.
 
 This program is free software; you can redistribute it and/or modify it
 under the same terms as Perl itself.

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Build.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Build.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Build.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Build.pm $ $Author: ingy $
-# $Revision: #23 $ $Change: 1255 $ $DateTime: 2003/03/05 13:23:32 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Build;
 $VERSION = '0.01';
 use strict;
@@ -18,6 +15,7 @@
 
     $args{dist_name} = $self->name || $self->determine_NAME($self->{args});
     $args{license} = $self->license;
+    $args{test_files} = $self->tests;
     $args{dist_version} = $self->version || $self->determine_VERSION($self->{args});
     $args{dist_abstract} = $self->abstract;
     $args{dist_author} = $self->author;
@@ -159,14 +157,14 @@
 
 =head1 AUTHORS
 
-Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>
+Audrey Tang E<lt>autrijus at autrijus.orgE<gt>
 
 Based on original works by Brian Ingerson E<lt>INGY at cpan.orgE<gt>
 
 =head1 COPYRIGHT
 
 Copyright 2002, 2003, 2004 by
-Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>,
+Audrey Tang E<lt>autrijus at autrijus.orgE<gt>,
 Brian Ingerson E<lt>ingy at cpan.orgE<gt>
 
 This program is free software; you can redistribute it and/or modify it

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Bundle.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Bundle.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Bundle.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,9 +1,8 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Bundle.pm $ $Author: autrijus $
-# $Revision: #7 $ $Change: 1847 $ $DateTime: 2003/12/31 23:14:54 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Bundle;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 
+$VERSION = '0.04';
+
 use strict;
 use Cwd ();
 use File::Find ();
@@ -29,9 +28,13 @@
     $bundle_dir =~ s/\W+/\\W+/g;
 
     while (my ($name, $version) = splice(@_, 0, 2)) {
+        $version ||= 0;
+
+        my $source = $bundles->{$name} or die "Cannot find bundle source for $name";
+        my $target = File::Basename::basename($source);
+        $self->bundles($name, $target);
+
         next if eval "use $name $version; 1";
-        my $source = $bundles->{$name} or next;
-        my $target = File::Basename::basename($source);
         mkdir $target or die $! unless -d $target;
 
         # XXX - clean those directories upon "make clean"?
@@ -44,8 +47,6 @@
             },
             no_chdir => 1,
         }, $source);
-
-        $self->bundles($name, $target);
     }
 
     chdir $cwd;
@@ -66,6 +67,19 @@
     return \%map;
 }
 
+
+sub auto_bundle_deps {
+    my $self = shift;
+
+    # Flatten array of arrays into a single array
+    my @core = map @$_, map @$_, grep ref, $self->requires;
+    while (my ($name, $version) = splice(@core, 0, 2)) {
+        next unless $name;
+         $self->bundle_deps($name, $version);
+         $self->add_bundle($name, $version);
+    }
+}
+
 sub bundle_deps {
     my ($self, $pkg, $version) = @_;
     my $deps = $self->admin->scan_dependencies($pkg) or return;
@@ -89,16 +103,14 @@
 
   use inc::Module::Install;
 
-  name("Foo-Bar");
-  version_from("lib/Foo/Bar.pm");
-  abstract("Description of your distribution");
-  author("Your Name <your at email.com>");
-  license("gpl"); # or "perl", etc
-  requires("Baz" => "1.60");
+  name      'Foo-Bar';
+  all_from  'lib/Foo/Bar.pm';
+  requires  'Baz' => '1.60';
 
   # one of either:
-  auto_bundle(); # OR
-  bundle("Baz" => "1.60");
+  bundle    'Baz' => '1.60';
+  # OR:
+  auto_bundle;
 
   &WriteAll;
 
@@ -147,6 +159,11 @@
 
     requires( perl => 5.005 );
 
+=item * auto_bundle_deps
+
+Same as C<auto_bundle>, except that all dependencies of the bundled
+modules are also detected and bundled. This function has the same constraints as bundle_deps.
+
 =back
 
 =head1 BUGS
@@ -157,13 +174,13 @@
 
 =head1 AUTHORS
 
-Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>
+Audrey Tang E<lt>autrijus at autrijus.orgE<gt>
 
 Documentation by Adam Foxson E<lt>afoxson at pobox.comE<gt>
 
 =head1 COPYRIGHT
 
-Copyright 2003, 2004 by Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>.
+Copyright 2003, 2004, 2005 by Audrey Tang E<lt>autrijus at autrijus.orgE<gt>.
 
 This program is free software; you can redistribute it and/or modify it under
 the same terms as Perl itself.

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Can.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Can.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Can.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Can.pm $ $Author: autrijus $
-# $Revision: #6 $ $Change: 1840 $ $DateTime: 2003/12/28 19:42:02 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Can;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 $VERSION = '0.01';
@@ -10,6 +7,20 @@
 use File::Spec ();
 use ExtUtils::MakeMaker ();
 
+# check if we can load some module
+sub can_use {
+    my ($self, $mod, $ver) = @_;
+    $mod =~ s{::|\\}{/}g;
+    $mod .= ".pm" unless $mod =~ /\.pm$/i;
+
+    my $pkg = $mod;
+    $pkg =~ s{/}{::}g;
+    $pkg =~ s{\.pm$}{}i;
+
+    local $@;
+    eval { require $mod; $pkg->VERSION($ver || 0); 1 };
+}
+
 # check if we can run some command
 sub can_run {
     my ($self, $cmd) = @_;
@@ -37,4 +48,20 @@
     return;
 }
 
+# Fix Cygwin bug on maybe_command();
+if ($^O eq 'cygwin') {
+    require ExtUtils::MM_Cygwin;
+    if (!defined(&ExtUtils::MM_Cygwin::maybe_command)) {
+        *ExtUtils::MM_Cygwin::maybe_command = sub {
+            my ($self, $file) = @_;
+            if ($file =~ m{^/cygdrive/}i) {
+                ExtUtils::MM_Win32->maybe_command($file);
+            }
+            else {
+                $self->SUPER::maybe_command($file);
+            }
+        }
+    }
+}
+
 1;

Added: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Compiler.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Compiler.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Compiler.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -0,0 +1,25 @@
+package Module::Install::Compiler;
+use Module::Install::Base; @ISA = qw(Module::Install::Base);
+$VERSION = '0.01';
+
+use strict;
+use File::Basename ();
+
+sub c_files {
+    my $self = shift;
+    require Config;
+    my $_o = $Config::Config{_o};
+    $self->makemaker_args(OBJECT => join ' ', map { substr($_, 0, -2) . $_o } @_);
+}
+
+sub inc_paths {
+    my $self = shift;
+    $self->makemaker_args(INC => join ' ', map { "-I$_" } @_);
+}
+
+sub optimize_flags {
+    my $self = shift;
+    $self->makemaker_args(OPTIMIZE => join ' ', @_);
+}
+
+1;

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Fetch.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Fetch.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Fetch.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Fetch.pm $ $Author: autrijus $
-# $Revision: #8 $ $Change: 1374 $ $DateTime: 2003/03/18 11:50:15 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Fetch;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Include.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Include.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Include.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Include.pm $ $Author: autrijus $
-# $Revision: #9 $ $Change: 2288 $ $DateTime: 2004/07/01 04:49:12 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Include;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Inline.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Inline.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Inline.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Inline.pm $ $Author: autrijus $
-# $Revision: #7 $ $Change: 1885 $ $DateTime: 2004/03/11 05:55:27 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Inline;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/MakeMaker.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/MakeMaker.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/MakeMaker.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/MakeMaker.pm $ $Author: autrijus $
-# $Revision: #11 $ $Change: 1781 $ $DateTime: 2003/10/22 17:14:03 $ vim: expandtab shiftwidth=4
-
 package Module::Install::MakeMaker;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile/Name.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile/Name.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile/Name.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Makefile/Name.pm $ $Author: autrijus $
-# $Revision: #11 $ $Change: 1645 $ $DateTime: 2003/07/16 01:05:06 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Makefile::Name;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile/Version.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile/Version.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile/Version.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Makefile/Version.pm $ $Author: autrijus $
-# $Revision: #14 $ $Change: 1648 $ $DateTime: 2003/07/16 01:09:42 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Makefile::Version;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Makefile.pm $ $Author: autrijus $
-# $Revision: #53 $ $Change: 1847 $ $DateTime: 2003/12/31 23:14:54 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Makefile;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 
@@ -25,6 +22,14 @@
     $args;
 }
 
+sub build_subdirs {
+    my $self = shift;
+    my $subdirs = $self->makemaker_args->{DIR} ||= [];
+    for my $subdir (@_) {
+        push @$subdirs, $subdir;
+    }
+}
+
 sub clean_files {
     my $self = shift;
     my $clean = $self->makemaker_args->{clean} ||= {};
@@ -56,6 +61,8 @@
     $args->{VERSION} = $self->version || $self->determine_VERSION($args);
     $args->{NAME} =~ s/-/::/g;
 
+    $args->{test} = {TESTS => $self->tests} if $self->tests;
+
     if ($] >= 5.005) {
 	$args->{ABSTRACT} = $self->abstract;
 	$args->{AUTHOR} = $self->author;
@@ -74,10 +81,13 @@
                  ($self->build_requires, $self->requires) );
 
     # merge both kinds of requires into prereq_pm
-    my $dir = ($args->{DIR} ||= []);
+    my $subdirs = ($args->{DIR} ||= []);
     if ($self->bundles) {
-        push @$dir, map "$_->[1]", @{$self->bundles};
-        delete $prereq->{$_->[0]} for @{$self->bundles};
+        foreach my $bundle (@{ $self->bundles }) {
+            my ($file, $dir) = @$bundle;
+            push @$subdirs, $dir if -d $dir;
+            delete $prereq->{$file};
+        }
     }
 
     if (my $perl_version = $self->perl_version) {
@@ -108,6 +118,7 @@
     my $postamble = "# Postamble by $top_class $top_version\n" . 
                     ($self->postamble || '');
 
+    local *MAKEFILE;
     open MAKEFILE, '< Makefile' or die $!;
     my $makefile = do { local $/; <MAKEFILE> };
     close MAKEFILE;
@@ -257,14 +268,14 @@
 
 =head1 AUTHORS
 
-Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>
+Audrey Tang E<lt>autrijus at autrijus.orgE<gt>
 
 Based on original works by Brian Ingerson E<lt>INGY at cpan.orgE<gt>
 
 =head1 COPYRIGHT
 
 Copyright 2002, 2003, 2004 by
-Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>,
+Audrey Tang E<lt>autrijus at autrijus.orgE<gt>,
 Brian Ingerson E<lt>ingy at cpan.orgE<gt>
 
 This program is free software; you can redistribute it and/or modify it

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Metadata.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Metadata.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Metadata.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,150 +1,174 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Metadata.pm $ $Author: autrijus $
-# $Revision: #32 $ $Change: 1885 $ $DateTime: 2004/03/11 05:55:27 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Metadata;
-use Module::Install::Base; @ISA = qw(Module::Install::Base);
+use Module::Install::Base;
+ at ISA = qw(Module::Install::Base);
 
-$VERSION = '0.04';
+$VERSION = '0.05';
 
 use strict 'vars';
 use vars qw($VERSION);
 
+my @scalar_keys = qw<
+    name module_name version abstract author license
+    distribution_type perl_version tests
+>;
+my @tuple_keys = qw<
+    build_requires requires recommends bundles
+>;
+
 sub Meta { shift }
+sub Meta_ScalarKeys { @scalar_keys }
+sub Meta_TupleKeys { @tuple_keys }
 
-my @scalar_keys = qw(
-    name module_name version abstract author license
-    distribution_type sign perl_version
-);
-my @tuple_keys  = qw(build_requires requires recommends bundles);
-
 foreach my $key (@scalar_keys) {
     *$key = sub {
         my $self = shift;
-        return $self->{'values'}{$key} unless @_;
-        $self->{'values'}{$key} = shift;
+        return $self->{values}{$key} if defined wantarray and !@_;
+        $self->{values}{$key} = shift;
         return $self;
     };
 }
 
+sub sign {
+    my $self = shift;
+    return $self->{values}{sign} if defined wantarray and !@_;
+    $self->{values}{sign} = ( @_ ? $_[0] : 1 );
+    return $self;
+}
+
 foreach my $key (@tuple_keys) {
     *$key = sub {
         my $self = shift;
-        return $self->{'values'}{$key} unless @_;
+        return $self->{values}{$key} unless @_;
+
         my @rv;
         while (@_) {
-            my $module  = shift or last;
+            my $module = shift or last;
             my $version = shift || 0;
-            if ($module eq 'perl') {
+            if ( $module eq 'perl' ) {
                 $version =~ s{^(\d+)\.(\d+)\.(\d+)}
                              {$1 + $2/1_000 + $3/1_000_000}e;
                 $self->perl_version($version);
                 next;
             }
-            my $rv = [$module, $version];
-            push @{$self->{'values'}{$key}}, $rv;
+            my $rv = [ $module, $version ];
             push @rv, $rv;
         }
-        return @rv;
+        push @{ $self->{values}{$key} }, @rv;
+        @rv;
     };
 }
 
-sub features {
-    my $self = shift;
-    while (my ($name, $mods) = splice(@_, 0, 2)) {
-        my $count = 0;
-        push @{$self->{'values'}{'features'}}, ($name => [
-            map { (++$count % 2 and ref($_) and ($count += $#$_)) ? @$_ : $_ } @$mods
-        ] );
+sub all_from {
+    my ( $self, $file ) = @_;
+
+    $self->version_from($file)      unless $self->version;
+    $self->perl_version_from($file) unless $self->perl_version;
+
+    # The remaining probes read from POD sections; if the file
+    # has an accompanying .pod, use that instead
+    my $pod = $file;
+    if ( $pod =~ s/\.pm$/.pod/i and -e $pod ) {
+        $file = $pod;
     }
-    return @{$self->{'values'}{'features'}};
+
+    $self->author_from($file)   unless $self->author;
+    $self->license_from($file)  unless $self->license;
+    $self->abstract_from($file) unless $self->abstract;
 }
 
-sub no_index {
-    my $self = shift;
-    my $type = shift;
-    push @{$self->{'values'}{'no_index'}{$type}}, @_ if $type;
-    return $self->{'values'}{'no_index'};
+sub provides {
+    my $self     = shift;
+    my $provides = ( $self->{values}{provides} ||= {} );
+    %$provides = (%$provides, @_) if @_;
+    return $provides;
 }
 
-sub _dump {
+sub auto_provides {
     my $self = shift;
-    my $package = ref($self->_top);
-    my $version = $self->_top->VERSION;
-    my %values = %{$self->{'values'}};
+    return $self unless $self->is_admin;
 
-    delete $values{sign};
-    if (my $perl_version = delete $values{perl_version}) {
-        # Always canonical to three-dot version 
-        $perl_version =~ s{^(\d+)\.(\d\d\d)(\d*)}{join('.', $1, int($2), int($3))}e
-            if $perl_version >= 5.006;
-        $values{requires} = [
-            [perl => $perl_version],
-            @{$values{requires}||[]},
-        ];
+    unless (-e 'MANIFEST') {
+        warn "Cannot deduce auto_provides without a MANIFEST, skipping\n";
+        return $self;
     }
 
-    warn "No license specified, setting license = 'unknown'\n"
-        unless $values{license};
+    # Avoid spurious warnings as we are not checking manifest here.
 
-    $values{license} ||= 'unknown';
-    $values{distribution_type} ||= 'module';
-    $values{name} ||= do {
-        my $name = $values{module_name};
-        $name =~ s/::/-/g;
-        $name;
-    } if $values{module_name};
+    local $SIG{__WARN__} = sub {1};
+    require ExtUtils::Manifest;
+    local *ExtUtils::Manifest::manicheck = sub { return };
 
-    if ($values{name} =~ /::/) {
-        my $name = $values{name};
-        $name =~ s/::/-/g;
-        die "Error in name(): '$values{name}' should be '$name'!\n";
-    }
+    require Module::Build;
+    my $build = Module::Build->new(
+        dist_name    => $self->{name},
+        dist_version => $self->{version},
+        license      => $self->{license},
+    );
+    $self->provides(%{ $build->find_dist_packages || {} });
+}
 
-    my $dump = '';
-    foreach my $key (@scalar_keys) {
-        $dump .= "$key: $values{$key}\n" if exists $values{$key};
-    }
-    foreach my $key (@tuple_keys) {
-        next unless exists $values{$key};
-        $dump .= "$key:\n";
-        foreach (@{$values{$key}}) {
-            $dump .= "  $_->[0]: $_->[1]\n";
-        }
-    }
+sub feature {
+    my $self     = shift;
+    my $name     = shift;
+    my $features = ( $self->{values}{features} ||= [] );
 
-    if (my $no_index = $values{no_index}) {
-        push @{$no_index->{'directory'}}, 'inc';
-        require YAML;
-        local $YAML::UseHeader = 0;
-        $dump .= YAML::Dump({ no_index => $no_index});
+    my $mods;
+
+    if ( @_ == 1 and ref( $_[0] ) ) {
+        # The user used ->feature like ->features by passing in the second
+        # argument as a reference.  Accomodate for that.
+        $mods = $_[0];
     }
     else {
-        $dump .= << "META";
-no_index:
-  directory:
-    - inc
-META
+        $mods = \@_;
     }
-    
-    $dump .= "generated_by: $package version $version\n";
-    return $dump;
+
+    my $count = 0;
+    push @$features, (
+        $name => [
+            map {
+                ref($_) ? ( ref($_) eq 'HASH' ) ? %$_
+                                                : @$_
+                        : $_
+            } @$mods
+        ]
+    );
+
+    return @$features;
 }
 
+sub features {
+    my $self = shift;
+    while ( my ( $name, $mods ) = splice( @_, 0, 2 ) ) {
+        $self->feature( $name, @$mods );
+    }
+    return @{ $self->{values}{features} };
+}
+
+sub no_index {
+    my $self = shift;
+    my $type = shift;
+    push @{ $self->{values}{no_index}{$type} }, @_ if $type;
+    return $self->{values}{no_index};
+}
+
 sub read {
     my $self = shift;
     $self->include_deps( 'YAML', 0 );
+
     require YAML;
-    my $data = YAML::LoadFile( 'META.yml' );
+    my $data = YAML::LoadFile('META.yml');
+
     # Call methods explicitly in case user has already set some values.
-    while ( my ($key, $value) = each %$data ) {
-        next unless $self->can( $key );
-        if (ref $value eq 'HASH') {
-            while (my ($module, $version) = each %$value) {
-                $self->$key( $module => $version );
+    while ( my ( $key, $value ) = each %$data ) {
+        next unless $self->can($key);
+        if ( ref $value eq 'HASH' ) {
+            while ( my ( $module, $version ) = each %$value ) {
+                $self->can($key)->($self, $module => $version );
             }
         }
         else {
-            $self->$key( $value );
+            $self->can($key)->($self, $value);
         }
     }
     return $self;
@@ -153,37 +177,110 @@
 sub write {
     my $self = shift;
     return $self unless $self->is_admin;
-
-    META_NOT_OURS: {
-        local *FH;
-        if (open FH, "META.yml") {
-            while (<FH>) {
-                last META_NOT_OURS if /^generated_by: Module::Install\b/;
-            }
-            return $self if -s FH;
-        }
-    }
-
-    warn "Writing META.yml\n";
-    open META, "> META.yml" or warn "Cannot write to META.yml: $!";
-    print META $self->_dump;
-    close META;
+    $self->admin->write_meta;
     return $self;
 }
 
 sub version_from {
-    my ($self, $version_from) = @_;
+    my ( $self, $file ) = @_;
     require ExtUtils::MM_Unix;
-    $self->version(ExtUtils::MM_Unix->parse_version($version_from));
+    $self->version( ExtUtils::MM_Unix->parse_version($file) );
 }
 
 sub abstract_from {
-    my ($self, $abstract_from) = @_;
+    my ( $self, $file ) = @_;
     require ExtUtils::MM_Unix;
     $self->abstract(
-        bless( { DISTNAME => $self->name }, 'ExtUtils::MM_Unix')
-            ->parse_abstract($abstract_from)
-    );
+        bless( { DISTNAME => $self->name }, 'ExtUtils::MM_Unix' )
+          ->parse_abstract($file) );
 }
 
+sub _slurp {
+    my ( $self, $file ) = @_;
+
+    local *FH;
+    open FH, "< $file" or die "Cannot open $file.pod: $!";
+    do { local $/; <FH> };
+}
+
+sub perl_version_from {
+    my ( $self, $file ) = @_;
+
+    if (
+        $self->_slurp($file) =~ m/
+        ^
+        use \s*
+        v?
+        ([\d\.]+)
+        \s* ;
+    /ixms
+      )
+    {
+        $self->perl_version($1);
+    }
+    else {
+        warn "Cannot determine perl version info from $file\n";
+        return;
+    }
+}
+
+sub author_from {
+    my ( $self, $file ) = @_;
+    my $content = $self->_slurp($file);
+    if ($content =~ m/
+        =head \d \s+ (?:authors?)\b \s*
+        ([^\n]*)
+        |
+        =head \d \s+ (?:licen[cs]e|licensing|copyright|legal)\b \s*
+        .*? copyright .*? \d\d\d[\d.]+ \s* (?:\bby\b)? \s*
+        ([^\n]*)
+    /ixms) {
+        my $author = $1 || $2;
+        $author =~ s{E<lt>}{<}g;
+        $author =~ s{E<gt>}{>}g;
+        $self->author($author); 
+    }
+    else {
+        warn "Cannot determine author info from $file\n";
+    }
+}
+
+sub license_from {
+    my ( $self, $file ) = @_;
+
+    if (
+        $self->_slurp($file) =~ m/
+        =head \d \s+
+        (?:licen[cs]e|licensing|copyright|legal)\b
+        (.*?)
+        (=head\\d.*|=cut.*|)
+        \z
+    /ixms
+      )
+    {
+        my $license_text = $1;
+        my @phrases      = (
+            'under the same (?:terms|license) as perl itself' => 'perl',
+            'GNU public license'                              => 'gpl',
+            'GNU lesser public license'                       => 'gpl',
+            'BSD license'                                     => 'bsd',
+            'Artistic license'                                => 'artistic',
+            'GPL'                                             => 'gpl',
+            'LGPL'                                            => 'lgpl',
+            'BSD'                                             => 'bsd',
+            'Artistic'                                        => 'artistic',
+        );
+        while ( my ( $pattern, $license ) = splice( @phrases, 0, 2 ) ) {
+            $pattern =~ s{\s+}{\\s+}g;
+            if ( $license_text =~ /\b$pattern\b/i ) {
+                $self->license($license);
+                return 1;
+            }
+        }
+    }
+
+    warn "Cannot determine license info from $file\n";
+    return 'unknown';
+}
+
 1;

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/PAR.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/PAR.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/PAR.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/PAR.pm $ $Author: autrijus $
-# $Revision: #28 $ $Change: 1650 $ $DateTime: 2003/07/29 06:03:27 $ vim: expandtab shiftwidth=4
-
 package Module::Install::PAR;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Run.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Run.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Run.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Run.pm $ $Author: autrijus $
-# $Revision: #6 $ $Change: 1375 $ $DateTime: 2003/03/18 12:29:32 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Run;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Scripts.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Scripts.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Scripts.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,9 +1,6 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Scripts.pm $ $Author: autrijus $
-# $Revision: #7 $ $Change: 1841 $ $DateTime: 2003/12/28 19:43:56 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Scripts;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.02';
 use strict;
 use File::Basename ();
 
@@ -28,10 +25,10 @@
 }
 
 sub install_script {
-    my ($self, $script_file) = @_;
+    my $self = shift;
     my $args = $self->makemaker_args;
     my $exe_files = $args->{EXE_FILES} ||= [];
-    push @$exe_files, $script_file;
+    push @$exe_files, @_;
 }
 
 sub _read_script {

Added: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Share.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Share.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Share.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -0,0 +1,62 @@
+package Module::Install::Share;
+
+use Module::Install::Base;
+ at ISA = qw(Module::Install::Base);
+
+$VERSION = '0.01';
+
+use strict;
+
+sub install_share {
+    my $self = shift;
+    my $dir  = shift;
+
+    if ( ! defined $dir ) {
+        die "Cannot find the 'share' directory" unless -d 'share';
+        $dir = 'share';
+    }
+
+    $self->postamble(<<".");
+config ::
+\t\$(NOECHO) \$(MOD_INSTALL) \\
+\t\t\"$dir\" \$(INST_ARCHAUTODIR)
+
+.
+}
+
+__END__
+
+=head1 NAME
+
+Module::Install::Share - Install non-code files for use during runtime
+
+=head1 SYNOPSIS
+
+    # Put everything inside ./share/ into the distribution 'auto' path
+    install_share 'share';
+
+    # Same thing as above using the default directory name
+    install_share;
+
+=head1 DESCRIPTION
+
+As well as Perl modules and Perl binary applications, some distributions
+need to install read-only data files to a location on the file system
+for use at run-time.
+
+XML Schemas, YAML data files, and SQLite databases are examples of the
+sort of things distributions might typically need to have available
+after installation.
+
+Module::Install::Share is a L<Module::Install> extension that provides
+commands to allow these files to be installed to the applicable location
+on disk.
+
+To locate the files after installation so they can be used inside your
+module, see this extension's companion module L<File::ShareDir>.
+
+=head1 SEE ALSO
+
+L<Module::Install>, L<File::ShareDir>
+
+=cut

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Win32.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Win32.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Win32.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/Win32.pm $ $Author: autrijus $
-# $Revision: #9 $ $Change: 1789 $ $DateTime: 2003/11/11 01:22:54 $ vim: expandtab shiftwidth=4
-
 package Module::Install::Win32;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/WriteAll.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/WriteAll.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/WriteAll.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install/WriteAll.pm $ $Author: autrijus $
-# $Revision: #3 $ $Change: 1885 $ $DateTime: 2004/03/11 05:55:27 $ vim: expandtab shiftwidth=4
-
 package Module::Install::WriteAll;
 use Module::Install::Base; @ISA = qw(Module::Install::Base);
 

Deleted: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install-Cookbook.pod
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install-Cookbook.pod	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install-Cookbook.pod	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,125 +0,0 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install-Cookbook.pod $ $Author: autrijus $
-# $Revision: #4 $ $Change: 1847 $ $DateTime: 2003/12/31 23:14:54 $ vim: expandtab shiftwidth=4
-
-=head1 NAME
-
-Module::Install-Cookbook - A CornucopiE<aelig> of Module::Install Recipes
-
-=head1 DESCRIPTION
-
-It's a lot easier for most of us to cook a meal from a recipe, rather
-than just throwing things into a pot until something edible forms.  So
-it is with programming as well.  B<Module::Install> makes writing Perl
-module installers as easy as possible.  Having a set of easy to
-understand samples, makes it simpler yet.
-
-This Cookbook is intended to be an ever-growing repository of small yet
-complete coding examples; each showing how to accomplish a particular
-task with B<Module::Install>.  Each example is followed by a short
-discussion, explaining in detail the particular features that are being
-demonstrated.
-
-Guten Appetit!
-
-=head1 Appetizers
-
-=head2 Replacing C<ExtUtils::MakeMaker>
-
-=over 4
-
-=item Problem
-
-As a CPAN author, you are likely to have some B<ExtUtils::MakeMaker>
-based F<Makefile.PL> already.  You want to take advantage of cool
-features offered by B<Module::Install> extensions, but why fix something
-that's not broken?
-
-=item Solution
-
-The I<fix> turns out to be extremely simple.  Where you had:
-
-    use ExtUtils::MakeMaker;
-    WriteMakefile( NAME => "Foo::Bar" );
-
-Now just write:
-
-    use inc::Module::Install;
-    WriteMakefile( NAME => "Foo::Bar" );
-
-Presto!  Your F<Makefile.PL> is now ready to receive all sort of magic
-extensions; see below for details.
-
-=back
-
-=over 4
-
-=item Problem
-
-XXX F<Build.PL>
-
-=item Solution
-
-=back
-
-
-=head1 Fast Food
-
-XXX: to be written
-
-=head1 The Main Course
-
-=item Problem
-
-Installing XS extensions from CPAN was difficult.  Some platforms do
-not come with a compiler (Win32, MacOSX...); some headers or libraries
-may be missing.
-
-=item Solution
-
-Just use the C<par_base> and C<fetch_par> functions:
-
-    # same old Makefile.PL, with a few changes
-    use inc::Module::Install;	        # was "use ExtUtils::MakeMaker;"
-    WriteMakefile( ... );		# same as the original
-    check_nmake();			# make sure the user have nmake
-    par_base('AUTRIJUS');		# your CPAN ID or a URL
-    fetch_par() unless can_cc();	# use precompiled PAR only if necessary
-
-Users will not notice anything, except now it works.  Of course, you
-still need to type C<make par> and upload the precompiled package.
-
-=head1 Just Desserts
-
-XXX: to be written
-
-=head1 Entertaining Guests
-
-XXX: to be written
-
-=head1 Food for Thought
-
-XXX: to be written
-
-=head1 SEE ALSO
-
-For generic information, see L<Module::Install>.
-
-=head1 AUTHOR
-
-Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>
-
-Structure based on L<Inline::C-Cookbook> by Brian Ingerson
-E<lt>INGY at cpan.orgE<gt>
-
-=head1 COPYRIGHT
-
-Copyright 2003, 2004 by Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>.
-
-Copyright 2002 by Brian Ingerson E<lt>INGY at cpan.orgE<gt>.
-
-This document is free documentation; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See L<http://www.perl.com/perl/misc/Artistic.html>
-
-=cut

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install-Philosophy.pod
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install-Philosophy.pod	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install-Philosophy.pod	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install-Philosophy.pod $ $Author: autrijus $
-# $Revision: #4 $ $Change: 1288 $ $DateTime: 2003/03/06 21:32:32 $ vim: expandtab shiftwidth=4
-
 =head1 NAME
 
 Module::Install-Philosophy - The idea behind Module::Install

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,9 +1,8 @@
-# $File: //depot/cpan/Module-Install/lib/Module/Install.pm $ $Author: autrijus $
-# $Revision: #68 $ $Change: 2285 $ $DateTime: 2004/07/01 03:16:20 $ vim: expandtab shiftwidth=4
-
 package Module::Install;
-$VERSION = '0.34';
+use 5.004;
 
+$VERSION = '0.50'; # Don't forget to update Module::Install::Admin too!
+
 die << "." unless $INC{join('/', inc => split(/::/, __PACKAGE__)).'.pm'};
 Please invoke ${\__PACKAGE__} with:
 
@@ -16,119 +15,32 @@
 .
 
 use strict 'vars';
-use Cwd ();
+use Cwd qw(cwd abs_path);
+use FindBin;
 use File::Find ();
 use File::Path ();
 
 @inc::Module::Install::ISA = 'Module::Install';
+*inc::Module::Install::VERSION = *VERSION;
 
-=head1 NAME
+sub autoload {
+    my $self   = shift;
+    my $caller = $self->_caller;
 
-Module::Install - Standalone, extensible Perl module installer
+    my $cwd = cwd();
+    my $sym = "$caller\::AUTOLOAD";
 
-=head1 VERSION
+    $sym->{$cwd} = sub {
+        my $pwd = cwd();
+        if (my $code = $sym->{$pwd}) {
+            goto &$code unless $cwd eq $pwd; # delegate back to parent dirs
+        }
+        $$sym =~ /([^:]+)$/ or die "Cannot autoload $caller - $sym";
+        unshift @_, ($self, $1);
+        goto &{$self->can('call')} unless uc($1) eq $1;
+    };
+}
 
-This document describes version 0.34 of Module::Install, released
-July 1, 2004.
-
-=head1 SYNOPSIS
-
-In your F<Makefile.PL>:
-
-    # drop-in replacement to ExtUtils::MakeMaker!
-    use inc::Module::Install;
-    WriteMakefile( ... );
-
-Standard usage:
-
-    use inc::Module::Install;
-
-    name            ('Your-Module');
-    abstract        ('Some Abstract here');
-    author          ('Your Name <email at example.com>');
-    version_from    ('lib/Your/Module.pm');
-    license         ('perl');
-
-    requires        ('perl' => 5.005);
-    requires        ('Acme::Hello');
-    build_requires  ('Test::More');
-    recommends      ('Acme::ComeFrom' => 0.01);
-
-    # -- You'll likely only want one of the below --
-    # auto_bundle();       # bundle run-time dependencies
-    # auto_include();      # include build-time dependencies
-    # auto_include_deps(); # same as above, plus recursive dependencies
-    # auto_install();      # auto-install all dependencies from CPAN
-
-    &WriteAll;
-
-If it is invoked as F<Makefile.PL>, it will write a standard F<Makefile>,
-and also download a F<nmake.exe> on Microsoft Windows if needed.  If invoked
-as F<Build.PL>, it writes a standard F<Build> script that works with the
-L<Module::Build> framework.
-
-You can even support both by having a dummy F<Build.PL> that reads:
-
-    require 'Makefile.PL';
-
-=head1 DESCRIPTION
-
-This module provides a drop-in replacement for B<ExtUtils::MakeMaker>.
-For first-time users, Brian Ingerson's I<Creating Module Distributions
-with Module::Install> in June 2003 issue of The Perl Journal
-(L<http://www.tpj.com/issues/>) provides a gentle introduction to how
-this module works.
-
-If you want to start working with real-world examples right away, check
-out L<Module::Install-Cookbook>.  For some personal opinions behind this
-module's making, see L<Module::Install-Philosophy>.
-
-This module is designed to let module authors eliminate all duplicated
-codes in F<Makefile.PL> and F<Build.PL>, by abstracting them into
-I<extensions>, and distribute them under the F<inc/> directory.
-
-To start using it, just replace the C<use ExtUtils::MakeMaker;> line
-from F<Makefile.PL> with C<use inc::Module::Install;>, then run it once:
-
-    % perl Makefile.PL
-    include inc/Module/Install.pm
-    include inc/Module/Install/MakeMaker.pm
-    include inc/Module/Install/Base.pm
-    include inc/Module/Install/Makefile.pm
-    include inc/Module/Install/Metadata.pm
-    Writing Makefile for foo
-    Creating META.yml
-
-Now your distribution will have an extra F<inc/> directory, with the
-minimal loader code F<inc/Module/Install.pm> and base extension class
-B<Module::Install::Base> copied into it.  Also, since you made use of
-the C<WriteMakefile> function, the B<Module::Install::MakeMaker>
-extension is also copied into F<inc/>, along with two other extensions
-called from B<Module::Install::MakeMaker>.
-
-End-users of your distribution do not need to install anything extra;
-the distribution already includes all necessary extensions, with their
-POD documentations removed.  Note that because it does not include
-unused extensions or B<Module::Install> itself, the impact on
-distribution size is minimized.
-
-=head1 METHODS
-
-=over 4
-
-=item import(@args)
-
-If this module was not loaded from F<inc/>, calls the C<init>
-method of B<Module::Install::Admin> to include and reload itself;
-see L<Module::Install::Admin/Bootstrapping> for details.
-
-Otherwise, export a default C<AUTOLOAD> handler to the caller's package.
-
-The C<@args> array is passed to C<new> to intialize the top-level
-B<Module::Install> object; it should usually be left empty.
-
-=cut
-
 sub import {
     my $class = shift;
     my $self = $class->new(@_);
@@ -143,53 +55,61 @@
         goto &{"$self->{name}::import"};
     }
 
-    *{caller(0) . "::AUTOLOAD"} = $self->autoload;
+    *{$self->_caller . "::AUTOLOAD"} = $self->autoload;
+    $self->preload;
 
     # Unregister loader and worker packages so subdirs can use them again
     delete $INC{"$self->{file}"};
     delete $INC{"$self->{path}.pm"};
 }
 
-=item autoload()
+sub preload {
+    my ($self) = @_;
 
-Returns an AUTOLOAD handler bound to the caller package.
+    $self->load_extensions(
+        "$self->{prefix}/$self->{path}", $self
+    ) unless $self->{extensions};
 
-=cut
+    my @exts = @{$self->{extensions}};
 
-sub autoload {
-    my $self = shift;
-    my $caller = caller;
+    unless (@exts) {
+        my $admin = $self->{admin};
+        @exts = $admin->load_all_extensions;
+    }
 
-    my $cwd = Cwd::cwd();
-    my $sym = "$caller\::AUTOLOAD";
-
-    $sym->{$cwd} = sub {
-        my $pwd = Cwd::cwd();
-        if (my $code = $sym->{$pwd}) {
-            goto &$code unless $cwd eq $pwd; # delegate back to parent dirs
+    my %seen_method;
+    foreach my $obj (@exts) {
+        while (my ($method, $glob) = each %{ref($obj) . '::'}) {
+            next unless defined *{$glob}{CODE};
+            next if $method =~ /^_/;
+            next if $method eq uc($method);
+            $seen_method{$method}++;
         }
-        $$sym =~ /([^:]+)$/ or die "Cannot autoload $caller";
-        unshift @_, ($self, $1);
-        goto &{$self->can('call')} unless uc($1) eq $1;
-    };
+    }
+
+    my $caller = $self->_caller;
+    foreach my $name (sort keys %seen_method) {
+        *{"${caller}::$name"} = sub {
+            ${"${caller}::AUTOLOAD"} = "${caller}::$name";
+            goto &{"${caller}::AUTOLOAD"};
+        };
+    }
 }
 
-=item new(%args)
-
-Constructor, taking a hash of named arguments.  Usually you do not want
-change any of them.
-
-=cut
-
 sub new {
     my ($class, %args) = @_;
 
+    # ignore the prefix on extension modules built from top level.
+    my $base_path = abs_path($FindBin::Bin);
+    delete $args{prefix} unless abs_path(cwd()) eq $base_path;
+
     return $args{_self} if $args{_self};
 
     $args{dispatch} ||= 'Admin';
     $args{prefix}   ||= 'inc';
     $args{author}   ||= '.author';
     $args{bundle}   ||= 'inc/BUNDLES';
+    $args{base}     ||= $base_path;
 
     $class =~ s/^\Q$args{prefix}\E:://;
     $args{name}     ||= $class;
@@ -199,32 +119,20 @@
         $args{path}  = $args{name};
         $args{path}  =~ s!::!/!g;
     }
-    $args{file}     ||= "$args{prefix}/$args{path}.pm";
+    $args{file}     ||= "$args{base}/$args{prefix}/$args{path}.pm";
 
     bless(\%args, $class);
 }
 
-=item call($method, @args)
-
-Call an extension method, passing C<@args> to it.
-
-=cut
-
 sub call {
     my $self   = shift;
     my $method = shift;
-    my $obj = $self->load($method) or return;
+    my $obj    = $self->load($method) or return;
 
     unshift @_, $obj;
     goto &{$obj->can($method)};
 }
 
-=item load($method)
-
-Include and load an extension object implementing C<$method>.
-
-=cut
-
 sub load {
     my ($self, $method) = @_;
 
@@ -247,14 +155,6 @@
     $obj;
 }
 
-=item load_extensions($path, $top_obj)
-
-Loads all extensions under C<$path>; for each extension, create a
-singleton object with C<_top> pointing to C<$top_obj>, and populates the
-arrayref C<$self-E<gt>{extensions}> with those objects.
-
-=cut
-
 sub load_extensions {
     my ($self, $path, $top_obj) = @_;
 
@@ -266,19 +166,16 @@
         my ($file, $pkg) = @{$rv};
         next if $self->{pathnames}{$pkg};
 
-        eval { require $file; 1 } or (warn($@), next);
+        local $@;
+        my $new = eval { require $file; $pkg->can('new') };
+        if (!$new) { warn $@ if $@; next; }
         $self->{pathnames}{$pkg} = delete $INC{$file};
-        push @{$self->{extensions}}, $pkg->new( _top => $top_obj );
+        push @{$self->{extensions}}, &{$new}($pkg, _top => $top_obj );
     }
+
+    $self->{extensions} ||= [];
 }
 
-=item load_extensions($path)
-
-Returns an array of C<[ $file_name, $package_name ]> for each extension
-module found under C<$path> and its subdirectories.
-
-=cut
-
 sub find_extensions {
     my ($self, $path) = @_;
     my @found;
@@ -296,323 +193,16 @@
     @found;
 }
 
-1;
+sub _caller {
+    my $depth = 0;
+    my $caller = caller($depth);
 
-__END__
+    while ($caller eq __PACKAGE__) {
+        $depth++;
+        $caller = caller($depth);
+    }
 
-=back
+    $caller;
+}
 
-=head1 EXTENSIONS
-
-All extensions belong to the B<Module::Install::*> namespace, and
-inherit from B<Module::Install::Base>.  There are three categories
-of extensions:
-
-=over 4
-
-=item Standard Extensions
-
-Methods defined by a standard extension may be called as plain functions
-inside F<Makefile.PL>; a corresponding singleton object will be spawned
-automatically.  Other extensions may also invoke its methods just like
-their own methods:
-
-    # delegates to $other_extension_obj->method_name(@args)
-    $self->method_name(@args);
-
-At the first time an extension's method is invoked, a POD-stripped
-version of it will be included under the F<inc/Module/Install/>
-directory, and becomes I<fixed> -- i.e. even if the user had installed a
-different version of the same extension, the included one will still be
-used instead.
-
-If the author wish to upgrade extensions in F<inc/> with installed ones,
-simply run C<perl Makefile.PL> again; B<Module::Install> determines
-whether you are an author by the existence of the F<inc/.author/>
-directory.  End-users can reinitialize everything and become the author
-by typing C<make realclean> and C<perl Makefile.PL>.
-
-=item Private Extensions
-
-Those extensions take the form of B<Module::Install::PRIVATE> and
-B<Module::Install::PRIVATE::*>.
-
-Authors are encouraged to put all existing F<Makefile.PL> magics into
-such extensions (e.g. F<Module::Install::PRIVATE> for common bits;
-F<Module::Install::PRIVATE::DISTNAME> for functions specific to a
-distribution).
-
-Private extensions should not to be released on CPAN; simply put them
-somewhere in your C<@INC>, under the C<Module/Install/> directory, and
-start using their functions in F<Makefile.PL>.  Like standard
-extensions, they will never be installed on the end-user's machine,
-and therefore never conflict with other people's private extensions.
-
-=item Administrative Extensions
-
-Extensions under the B<Module::Install::Admin::*> namespace are never
-included with the distribution.  Their methods are not directly
-accessible from F<Makefile.PL> or other extensions; they are invoked
-like this:
-
-    # delegates to $other_admin_extension_obj->method_name(@args)
-    $self->admin->method_name(@args);
-
-These methods only take effect during the I<initialization> run, when
-F<inc/> is being populated; they are ignored for end-users.  Again,
-to re-initialize everything, just run C<perl Makefile.PL> as the author.
-
-Scripts (usually one-liners in F<Makefile>) that wish to dispatch
-B<AUTOLOAD> functions into administrative extensions (instead of
-standard extensions) should use the B<Module::Install::Admin> module
-directly.  See L<Module::Install::Admin> for details.
-
-=back
-
-B<Module::Install> comes with several standard extensions:
-
-=over 4
-
-=item Module::Install::AutoInstall
-
-Provides C<auto_install()> to automatically fetch and install
-prerequisites via B<CPANPLUS> or B<CPAN>, specified either by
-the C<features> metadata or by method arguments. 
-
-You may wish to add a C<include('ExtUtils::AutoInstall');> before
-C<auto_install()> to include B<ExtUtils::AutoInstall> with your
-distribution.  Otherwise, this extension will attempt to automatically
-install it from CPAN.
-
-=item Module::Install::Base
-
-The base class of all extensions, providing C<new>, C<initialized>,
-C<admin>, C<load> and the C<AUTOLOAD> dispatcher.
-
-=item Module::Install::Build
-
-Provides C<&Build-E<gt>write> to generate a B<Module::Build> compliant
-F<Build> file, as well as other B<Module::Build> support functions.
-
-=item Module::Install::Bundle
-
-Provides C<bundle>, C<bundle_deps> and C<bundle_all>, allowing you
-to bundle a CPAN distribution within your distribution.  When your
-end-users install your distribution, the bundled distribution will be
-installed along with yours, unless a newer version of the bundled
-distribution already exists on their local filesystem.
-
-=item Module::Install::Fetch
-
-Handles fetching files from remote servers via FTP.
-
-=item Module::Install::Include
-
-Provides the C<include($pkg)> function to include pod-stripped
-package(s) from C<@INC> to F<inc/>, and the C<auto_include()>
-function to include all modules specified in C<build_requires>,
-
-Also provides the C<include_deps($pkg)> function to include every
-non-core modules needed by C<$pkg>, and the C<auto_include_deps()>
-function that does the same thing as C<auto_include()>, plus all
-recursive dependencies that are subsequently required by modules in
-C<build_requires>.
-
-=item Module::Install::Inline
-
-Provides C<&Inline-E<gt>write> to replace B<Inline::MakeMaker>'s
-functionality of making (and cleaning after) B<Inline>-based modules.
-
-However, you should invoke this with C<WriteAll( inline => 1 )> instead.
-
-=item Module::Install::MakeMaker
-
-Simple wrapper class for C<ExtUtils::MakeMaker::WriteMakefile>.
-
-=item Module::Install::Makefile
-
-Provides C<&Makefile-E<gt>write> to generate a B<ExtUtils::MakeMaker>
-compliant F<Makefile>; preferred over B<Module::Install::MakeMaker>.
-It adds several extra C<make> targets, as well as being more intelligent
-at guessing unspecified arguments.
-
-=item Module::Install::Makefile::Name
-
-Guess the distribution name.
-
-=item Module::Install::Makefile::Version
-
-Guess the distribution version.
-
-=item Module::Install::Metadata
-
-Provides C<&Meta-E<gt>write> to generate a B<YAML>-compliant F<META.yml>
-file, and C<&Meta-E<gt>read> to parse it for C<&Makefile>, C<&Build> and
-C<&AutoInstall> to use.
-
-=item Module::Install::PAR
-
-Makes pre-compiled module binary packages from F<blib>, and download
-existing ones to save the user from recompiling.
-
-=item Module::Install::Run
-
-Determines if a command is available on the user's machine, and run
-external commands via B<IPC::Run3>.
-
-=item Module::Install::Scripts
-
-Handles packaging and installation of scripts, instead of modules.
-
-=item Module::Install::Win32
-
-Functions related for installing modules on Win32, e.g. automatically
-fetching and installing F<nmake.exe> for users that need it.
-
-=item Module::Install::WriteAll
-
-This extension offers C<WriteAll>, which writes F<META.yml> and
-either F<Makefile> or F<Build> depending on how the program was
-invoked.
-
-C<WriteAll> takes four optional named parameters:
-
-=over 4
-
-=item C<check_nmake> (defaults to true)
-    
-If true, invokes functions with the same name.
-
-=item C<inline> (defaults to false)
-
-If true, invokes C<&Inline-E<gt>write> instead of C<&Makefile-E<gt>write>.
-
-=item C<meta> (defaults to true)
-
-If true, writes a C<META.yml> file.
-
-=item C<sign> (defaults to false)
-
-If true, invokes functions with the same name.
-
-=back
-
-=back
-
-B<Module::Install> also comes with several administrative extensions:
-
-=over
-
-=item Module::Install::Admin::Find
-
-Functions for finding extensions, installed packages and files in
-subdirectories.
-
-=item Module::Install::Admin::Manifest
-
-Functions for manipulating and updating the F<MANIFEST> file.
-
-=item Module::Install::Admin::Metadata
-
-Functions for manipulating and updating the F<META.yml> file.
-
-=item Module::Install::Admin::ScanDeps
-
-Handles scanning for non-core dependencies via B<Module::ScanDeps> and
-B<Module::CoreList>.
-
-=back
-
-Please consult their own POD documentations for detailed information.
-
-=head1 FAQ
-
-=head2 What are the benefits of using B<Module::Install>?
-
-Here is a brief overview of the reasons:
-
-    Does everything ExtUtils::MakeMaker does.
-    Requires no installation for end-users.
-    Generate stock Makefile.PL for Module::Build users.
-    Guaranteed forward-compatibility.
-    Automatically updates your MANIFEST.
-    Distributing scripts is easy.
-    Include prerequisite modules (even the entire dependency tree).
-    Auto-installation of prerequisites.
-    Support for Inline-based modules.
-    Support for precompiled PAR binaries.
-
-Besides, if you maintain more than one CPAN modules, chances are there
-are duplications in their F<Makefile.PL>, and also with other CPAN module
-you copied the code from.  B<Module::Install> makes it really easy for you
-to abstract away such codes; see the next question.
-
-=head2 How is this different from its predecessor, B<CPAN::MakeMaker>?
-
-According to Brian Ingerson, the author of B<CPAN::MakeMaker>,
-their difference is that I<Module::Install is sane>.
-
-Also, this module is not self-modifying, and offers a clear separation
-between standard, private and administrative extensions.  Therefore
-writing extensions for B<Module::Install> is easier -- instead of
-tweaking your local copy of C<CPAN/MakeMaker.pm>, just make your own
-B<Modula::Install::PRIVATE> module, or a new B<Module::Install::*>
-extension.
-
-=head1 SEE ALSO
-
-L<Module::Install-Cookbook>,
-L<Module::Install-Philosophy>,
-L<inc::Module::Install>
-
-L<Module::Install::AutoInstall>,
-L<Module::Install::Base>,
-L<Module::Install::Bundle>,
-L<Module::Install::Build>,
-L<Module::Install::Directives>,
-L<Module::Install::Fetch>,
-L<Module::Install::Include>,
-L<Module::Install::MakeMaker>,
-L<Module::Install::Makefile>,
-L<Module::Install::Makefile::CleanFiles>,
-L<Module::Install::Makefile::Name>,
-L<Module::Install::Makefile::Version>,
-L<Module::Install::Metadata>,
-L<Module::Install::PAR>,
-L<Module::Install::Run>,
-L<Module::Install::Scripts>,
-L<Module::Install::Win32>
-L<Module::Install::WriteAll>
-
-L<Module::Install::Admin>,
-L<Module::Install::Admin::Bundle>,
-L<Module::Install::Admin::Find>,
-L<Module::Install::Admin::Include>,
-L<Module::Install::Admin::Makefile>,
-L<Module::Install::Admin::Manifest>,
-L<Module::Install::Admin::Metadata>,
-L<Module::Install::Admin::ScanDeps>
-L<Module::Install::Admin::WriteAll>
-
-L<CPAN::MakeMaker>,
-L<Inline::MakeMaker>,
-L<ExtUtils::MakeMaker>,
-L<Module::Build>
-
-=head1 AUTHORS
-
-Brian Ingerson E<lt>INGY at cpan.orgE<gt>,
-Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>
-
-=head1 COPYRIGHT
-
-Copyright 2002, 2003, 2004 by
-Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>,
-Brian Ingerson E<lt>INGY at cpan.orgE<gt>.
-
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-See L<http://www.perl.com/perl/misc/Artistic.html>
-
-=cut
+1;

Added: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pod
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pod	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pod	2005-12-30 11:12:30 UTC (rev 1803)
@@ -0,0 +1,544 @@
+=pod
+
+=head1 NAME
+
+Module::Install - Standalone, extensible Perl module installer
+
+=head1 VERSION
+
+This document describes version 0.50 of Module::Install, released
+December 26, 2005.
+
+=head1 SYNOPSIS
+
+In your F<Makefile.PL>: (Recommended Usage)
+
+    # Load the Module::Install bundled in ./inc/
+    use inc::Module::Install;
+
+    # Name of your distribution
+    name            'Your-Module';
+
+    # Get most of the details from the primary module
+    all_from        'lib/Your/Module.pm';
+
+    # Modules that this distribution depend on
+    requires        'Carp';
+    requires        'File::Spec' => '0.80';
+
+    # Modules needed for building and testing
+    build_requires  'Test::More' => '0.42';
+
+    # Optional module dependencies
+    recommends      'Your::OtherModule' => '0.01';
+
+    # Auto-installs all dependencies from CPAN.
+    # You want to use this most of the time, especially
+    # if you use the 'recommend' or 'feature' commands
+    auto_install;
+
+    # Generate the Makefile
+    WriteAll;
+
+Quickly upgrade a legacy L<ExtUtil::MakeMaker> installer:
+
+    # Drop-in replacement to ExtUtils::MakeMaker
+    use inc::Module::Install;
+    WriteMakefile( ... );
+
+A dummy F<Build.PL> so we can work with L<Module::Build> as well:
+
+    # Dear Distribution Packager. This use of require is intentional. 
+    # Module::Install detects Build.PL usage and acts accordingly.
+    require 'Makefile.PL';
+
+=head1 DESCRIPTION
+
+B<Module::Install> is a package for writing installers for CPAN distributions
+that are clean, simple and minimalistic, act in a strictly correct manner
+with B<both> the L<ExtUtils::MakeMaker> and L<Module::Build> build systems,
+and run on any Perl installation version 5.004 or newer.
+
+The intent is to make it as easy as possible for CPAN authors (and
+especially for first-time CPAN authors) to have installers that follow
+all the best practices for distribution installation, but involve as much
+DWIM (Do What I Mean) as possible when writing them.
+
+=head2 Writing Module::Install Installers
+
+The quickest way to get started with Module::Install is simply to cut
+and paste the L</SYNOPSIS> from above and create your F<Makefile.PL>
+using it, when modify the file to suit your particular case using the
+list of commands documented in L</COMMANDS> below.
+
+If all you want to do is write an installer, go do that now. You don't
+really need the rest of this description unless you are interested.
+
+=head1 How it Works
+
+The motivation behind B<Module::Install> is that distributions need
+to interact with a large number of different versions of Perl module
+installers (primarily L<CPAN.pm>, L<CPANPLUS.pm>, L<ExtUtils::MakeMaker>
+and L<Module::Build>) which have B<greatly> varying feature and bug
+profiles.
+
+For example, the L<CPAN.pm> version shipped with Perl 5.005 is now 5+ years
+old and considered highly buggy, yet it still exists on quite a number of
+legacy machines. Rather than try to target one specific installer and/or 
+make you add twisty workaround expressions to your code, B<Module::Install>
+will copy part of itself into each module distribution it creates.
+
+This allows new improvements to be used regardless of the age of the system a
+distribution is being installed to, at the cost of a very small increase in the
+size of your module distribution.
+
+=head2 History
+
+This module was originally written as a smart drop-in replacement for
+B<ExtUtils::MakeMaker> by Brian Ingerson.
+
+For more information, see Brian's I<Creating Module Distributions with
+Module::Install> in June 2003 issue of The Perl Journal
+(L<http://www.tpj.com/issues/>).
+
+For a B<lot> more information, and some personal opinions on the module
+and its creation, see L<Module::Install-Philosophy>.
+
+=head1 COMMANDS
+
+The following are the most common commands available for use in an
+installer.
+
+=head2 name
+
+  name 'My-Module;
+
+The B<name> command is a compulsory (and generally the first) command.
+
+It provides the name of your distribution, which for a module like
+B<Your::Module> would normally be C<Your-Module>.
+
+=head2 all_from
+
+  all_from 'lib/My/Module';
+
+For most simple or standard Perl distributions that feature one
+dominant module/class as the base, you can get the most Do What I Mean
+functionality by using the B<all_from> command, which will try to
+extract as much metadata as possible from the Perl and POD in the
+module itself.
+
+=head2 abstract
+
+  abstract 'This distribution does something';
+
+All distributions have an abstract, a short description of the entires
+distribution, usually around 30-70 characters long.
+
+The C<abstract> command is used to explicitly set the abstract for the
+distribution, at least as far as the distribution metadata file is
+concerned.
+
+=head2 abstract_from
+
+  abstract_from 'lib/My/Module';
+
+The C<abstract_from> command retrieves the abstract from a particular
+file contained in the distribution package. Most often this is done
+from the main module, where it will read the POD and use whatever
+is in the C<=head1 NAME> section (with module name removed as needed)
+
+=head2 author
+
+  author 'Adam Kennedy <cpan at ali.as>';
+
+The distribution metadata contains information on the author of the
+primary author/maintainer of the distribution, in the form of an
+email address.
+
+The C<author> command is used to explicitly set this value.
+
+=head2 author_from
+
+  author_from 'lib/My/Module';
+
+The C<author_from> command retrievs the author from a particular
+file contained in the distribution package. Most often this is done
+from the main module, where it read the POD and use whatever it
+can find in the C<=head1 AUTHOR> section.
+
+=head2 WriteAll
+
+The C<WriteAll> command is generally the last command; it writes out
+F<META.yml> and F<Makefile> so the user can type C<make install>.
+
+=head1 EXTENSIONS
+
+All extensions belong to the B<Module::Install::*> namespace, and
+inherit from B<Module::Install::Base>.  There are three categories
+of extensions:
+
+=over 4
+
+=item Standard Extensions
+
+Methods defined by a standard extension may be called as plain functions
+inside F<Makefile.PL>; a corresponding singleton object will be spawned
+automatically.  Other extensions may also invoke its methods just like
+their own methods:
+
+    # delegates to $other_extension_obj->method_name(@args)
+    $self->method_name(@args);
+
+At the first time an extension's method is invoked, a POD-stripped
+version of it will be included under the F<inc/Module/Install/>
+directory, and becomes I<fixed> -- i.e., even if the user had installed a
+different version of the same extension, the included one will still be
+used instead.
+
+If the author wish to upgrade extensions in F<inc/> with installed ones,
+simply run C<perl Makefile.PL> again; B<Module::Install> determines
+whether you are an author by the existence of the F<inc/.author/>
+directory.  End-users can reinitialize everything and become the author
+by typing C<make realclean> and C<perl Makefile.PL>.
+
+=item Private Extensions
+
+Those extensions take the form of B<Module::Install::PRIVATE> and
+B<Module::Install::PRIVATE::*>.
+
+Authors are encouraged to put all existing F<Makefile.PL> magics into
+such extensions (e.g. F<Module::Install::PRIVATE> for common bits;
+F<Module::Install::PRIVATE::DISTNAME> for functions specific to a
+distribution).
+
+Private extensions should not to be released on CPAN; simply put them
+somewhere in your C<@INC>, under the C<Module/Install/> directory, and
+start using their functions in F<Makefile.PL>.  Like standard
+extensions, they will never be installed on the end-user's machine,
+and therefore never conflict with other people's private extensions.
+
+=item Administrative Extensions
+
+Extensions under the B<Module::Install::Admin::*> namespace are never
+included with the distribution.  Their methods are not directly
+accessible from F<Makefile.PL> or other extensions; they are invoked
+like this:
+
+    # delegates to $other_admin_extension_obj->method_name(@args)
+    $self->admin->method_name(@args);
+
+These methods only take effect during the I<initialization> run, when
+F<inc/> is being populated; they are ignored for end-users.  Again,
+to re-initialize everything, just run C<perl Makefile.PL> as the author.
+
+Scripts (usually one-liners in F<Makefile>) that wish to dispatch
+B<AUTOLOAD> functions into administrative extensions (instead of
+standard extensions) should use the B<Module::Install::Admin> module
+directly.  See L<Module::Install::Admin> for details.
+
+=back
+
+B<Module::Install> comes with several standard extensions:
+
+=over 4
+
+=item Module::Install::AutoInstall
+
+Provides C<auto_install()> to automatically fetch and install
+prerequisites via B<CPANPLUS.pm> or B<CPAN.pm>, specified either by
+the C<features> metadata or by method arguments. 
+
+=item Module::Install::Base
+
+The base class of all extensions, providing C<new>, C<initialized>,
+C<admin>, C<load> and the C<AUTOLOAD> dispatcher.
+
+=item Module::Install::Build
+
+Provides C<&Build-E<gt>write> to generate a B<Module::Build> compliant
+F<Build> file, as well as other B<Module::Build> support functions.
+
+=item Module::Install::Bundle
+
+Provides C<bundle>, C<bundle_deps> and C<bundle_all>, allowing you
+to bundle a CPAN distribution within your distribution.  When your
+end-users install your distribution, the bundled distribution will be
+installed along with yours, unless a newer version of the bundled
+distribution already exists on their local filesystem.
+
+=item Module::Install::Fetch
+
+Handles fetching files from remote servers via FTP and HTTP.
+
+=item Module::Install::Include
+
+Provides the C<include($pkg)> function to include pod-stripped
+package(s) from C<@INC> to F<inc/>, and the C<auto_include()>
+function to include all modules specified in C<build_requires>,
+
+Also provides the C<include_deps($pkg)> function to include every
+non-core modules needed by C<$pkg>, and the C<auto_include_deps()>
+function that does the same thing as C<auto_include()>, plus all
+recursive dependencies that are subsequently required by modules in
+C<build_requires>.
+
+=item Module::Install::Inline
+
+Provides C<&Inline-E<gt>write> to replace B<Inline::MakeMaker>'s
+functionality of making (and cleaning after) B<Inline>-based modules.
+
+However, you should invoke this with C<WriteAll( inline => 1 )> instead.
+
+=item Module::Install::MakeMaker
+
+Simple wrapper class for C<ExtUtils::MakeMaker::WriteMakefile>.
+
+=item Module::Install::Makefile
+
+Provides C<&Makefile-E<gt>write> to generate a B<ExtUtils::MakeMaker>
+compliant F<Makefile>; preferred over B<Module::Install::MakeMaker>.
+It adds several extra C<make> targets, as well as being more intelligent
+at guessing unspecified arguments.
+
+=item Module::Install::Makefile::Name
+
+Guess the distribution name.
+
+=item Module::Install::Makefile::Version
+
+Guess the distribution version.
+
+=item Module::Install::Metadata
+
+Provides C<&Meta-E<gt>write> to generate a B<YAML>-compliant F<META.yml>
+file, and C<&Meta-E<gt>read> to parse it for C<&Makefile>, C<&Build> and
+C<&AutoInstall> to use.
+
+=item Module::Install::PAR
+
+Makes pre-compiled module binary packages from F<blib>, and download
+existing ones to save the user from recompiling.
+
+=item Module::Install::Run
+
+Determines if a command is available on the user's machine, and run
+external commands via B<IPC::Run3>.
+
+=item Module::Install::Scripts
+
+Handles packaging and installation of scripts, instead of modules.
+
+=item Module::Install::Win32
+
+Functions related for installing modules on Win32, e.g. automatically
+fetching and installing F<nmake.exe> for users that need it.
+
+=item Module::Install::WriteAll
+
+This extension offers C<WriteAll>, which writes F<META.yml> and
+either F<Makefile> or F<Build> depending on the name of the invoked
+program.
+
+C<WriteAll> takes four optional named parameters:
+
+=over 4
+
+=item C<check_nmake> (defaults to true)
+
+If true, invokes functions with the same name.
+
+=item C<inline> (defaults to false)
+
+If true, invokes C<&Inline-E<gt>write> instead of C<&Makefile-E<gt>write>.
+
+=item C<meta> (defaults to true)
+
+If true, writes a C<META.yml> file.
+
+=item C<sign> (defaults to false)
+
+If true, invokes functions with the same name.
+
+=back
+
+=back
+
+B<Module::Install> also comes with several administrative extensions:
+
+=over
+
+=item Module::Install::Admin::Find
+
+Functions for finding extensions, installed packages and files in
+subdirectories.
+
+=item Module::Install::Admin::Manifest
+
+Functions for manipulating and updating the F<MANIFEST> file.
+
+=item Module::Install::Admin::Metadata
+
+Functions for manipulating and updating the F<META.yml> file.
+
+=item Module::Install::Admin::ScanDeps
+
+Handles scanning for non-core dependencies via B<Module::ScanDeps> and
+B<Module::CoreList>.
+
+=back
+
+Please consult their own POD documentations for detailed information.
+
+=head1 METHODS
+
+=over 4
+
+=item import(@args)
+
+If this module was not loaded from F<inc/>, calls the C<init>
+method of B<Module::Install::Admin> to include and reload itself;
+see L<Module::Install::Admin/Bootstrapping> for details.
+
+Otherwise, export a default C<AUTOLOAD> handler to the caller's package.
+
+The C<@args> array is passed to C<new> to intialize the top-level
+B<Module::Install> object; it should usually be left empty.
+
+=item autoload()
+
+Returns an AUTOLOAD handler bound to the caller package.
+
+=back
+
+=item new(%args)
+
+Constructor, taking a hash of named arguments.  Usually you do not want
+change any of them.
+
+=item call($method, @args)
+
+Call an extension method, passing C<@args> to it.
+
+=item load($method)
+
+Include and load an extension object implementing C<$method>.
+
+=item load_extensions($path, $top_obj)
+
+Loads all extensions under C<$path>; for each extension, create a
+singleton object with C<_top> pointing to C<$top_obj>, and populates the
+arrayref C<$self-E<gt>{extensions}> with those objects.
+
+=item load_extensions($path)
+
+Returns an array of C<[ $file_name, $package_name ]> for each extension
+module found under C<$path> and its subdirectories.
+
+=head1 FAQ
+
+=head2 What are the benefits of using B<Module::Install>?
+
+Here is a brief overview of the reasons:
+
+=over 4
+
+=item * Does everything ExtUtils::MakeMaker does.
+
+=item * Requires no installation for end-users.
+
+=item * Generate stock Makefile.PL for Module::Build users.
+
+=item * Guaranteed forward-compatibility.
+
+=item * Automatically updates your MANIFEST.
+
+=item * Distributing scripts is easy.
+
+=item * Include prerequisite modules (even the entire dependency tree).
+
+=item * Auto-installation of prerequisites.
+
+=item * Support for Inline-based modules.
+
+=item * Support for precompiled PAR binaries.
+
+=cut
+
+Besides, if you maintain more than one CPAN modules, chances are there
+are duplications in their F<Makefile.PL>, and also with other CPAN module
+you copied the code from.  B<Module::Install> makes it really easy for you
+to abstract away such codes; see the next question.
+
+=head2 How is this different from its predecessor, B<CPAN::MakeMaker>?
+
+According to Brian Ingerson, the author of B<CPAN::MakeMaker>,
+their difference is that I<Module::Install is sane>.
+
+Also, this module is not self-modifying, and offers a clear separation
+between standard, private and administrative extensions.  Therefore
+writing extensions for B<Module::Install> is easier -- instead of
+tweaking your local copy of C<CPAN/MakeMaker.pm>, just make your own
+B<Modula::Install::PRIVATE> module, or a new B<Module::Install::*>
+extension.
+
+=head1 SEE ALSO
+
+L<Module::Install-Philosophy>
+L<inc::Module::Install>
+
+L<Module::Install::AutoInstall>
+L<Module::Install::Base>
+L<Module::Install::Bundle>
+L<Module::Install::Build>
+L<Module::Install::Directives>
+L<Module::Install::Fetch>
+L<Module::Install::Include>
+L<Module::Install::MakeMaker>
+L<Module::Install::Makefile>
+L<Module::Install::Makefile::CleanFiles>
+L<Module::Install::Makefile::Name>
+L<Module::Install::Makefile::Version>
+L<Module::Install::Metadata>
+L<Module::Install::PAR>
+L<Module::Install::Run>
+L<Module::Install::Scripts>
+L<Module::Install::Win32>
+L<Module::Install::WriteAll>
+
+L<Module::Install::Admin>
+L<Module::Install::Admin::Bundle>
+L<Module::Install::Admin::Find>
+L<Module::Install::Admin::Include>
+L<Module::Install::Admin::Makefile>
+L<Module::Install::Admin::Manifest>
+L<Module::Install::Admin::Metadata>
+L<Module::Install::Admin::ScanDeps>
+L<Module::Install::Admin::WriteAll>
+
+L<CPAN::MakeMaker>
+L<Inline::MakeMaker>
+L<ExtUtils::MakeMaker>
+L<Module::Build>
+
+=head1 AUTHORS
+
+Brian Ingerson E<lt>INGY at cpan.orgE<gt>
+
+Audrey Tang E<lt>autrijus at autrijus.orgE<gt>
+
+Adam Kennedy E<lt>cpan at ali.asE<gt>
+
+=head1 COPYRIGHT
+
+Copyright 2002, 2003, 2004, 2005 by
+    Adam Kennedy E<lt>cpan at ali.asE<gt>
+    Audrey Tang E<lt>autrijus at autrijus.orgE<gt>,
+    Brian Ingerson E<lt>ingy at cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or modify it
+under the same terms as Perl itself.
+
+See L<http://www.perl.com/perl/misc/Artistic.html>
+
+=cut

Modified: packages/libmodule-install-perl/branches/upstream/current/lib/inc/Module/Install.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/inc/Module/Install.pm	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/inc/Module/Install.pm	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/lib/inc/Module/Install.pm $ $Author: autrijus $
-# $Revision: #16 $ $Change: 2286 $ $DateTime: 2004/07/01 04:47:26 $ vim: expandtab shiftwidth=4
-
 package inc::Module::Install;
 
 if (-d 'inc/.author') {
@@ -10,7 +7,6 @@
 
 unshift @INC, 'inc';
 require Module::Install;
-*VERSION = *Module::Install::VERSION;
 
 1;
 
@@ -49,11 +45,11 @@
 
 =head1 AUTHORS
 
-Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>
+Audrey Tang E<lt>autrijus at autrijus.orgE<gt>
 
 =head1 COPYRIGHT
 
-Copyright 2003, 2004 by Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>.
+Copyright 2003, 2004 by Audrey Tang E<lt>autrijus at autrijus.orgE<gt>.
 
 This program is free software; you can redistribute it and/or modify it
 under the same terms as Perl itself.

Deleted: packages/libmodule-install-perl/branches/upstream/current/t/0-signature.t
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/t/0-signature.t	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/t/0-signature.t	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,24 +0,0 @@
-#!/usr/bin/perl
-# $File: //depot/cpan/Module-Install/t/0-signature.t $ $Author: autrijus $
-# $Revision: #4 $ $Change: 1313 $ $DateTime: 2003/03/08 02:30:22 $ vim: expandtab shiftwidth=4
-
-use strict;
-print "1..1\n";
-
-if (!-s 'SIGNATURE') {
-    print "ok 1 # skip - No signature file found";
-}
-elsif (!eval { require Socket; Socket::inet_aton('pgp.mit.edu') }) {
-    print "ok 1 # skip - Cannot connect to the keyserver";
-}
-elsif (!eval { require Module::Signature; 1 }) {
-    warn "# Next time around, consider install Module::Signature,\n".
-         "# so you can verify the integrity of this distribution.\n";
-    print "ok 1 # skip - Module::Signature not installed\n";
-}
-else {
-    (Module::Signature::verify() == Module::Signature::SIGNATURE_OK())
-        or print "not ";
-    print "ok 1 # Valid signature\n";
-}
-

Modified: packages/libmodule-install-perl/branches/upstream/current/t/1-basic.t
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/t/1-basic.t	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/t/1-basic.t	2005-12-30 11:12:30 UTC (rev 1803)
@@ -1,6 +1,3 @@
-# $File: //depot/cpan/Module-Install/t/1-basic.t $ $Author: autrijus $
-# $Revision: #2 $ $Change: 1815 $ $DateTime: 2003/12/14 20:41:23 $
-
 use Test;
 use File::Spec;
 
@@ -38,6 +35,7 @@
     open MAKEFILE_PL, '> Makefile.PL' or return 0;
     print MAKEFILE_PL <<END;
 use inc::Module::Install;
+license 'perl';
 WriteMakefile;
 END
     close MAKEFILE_PL;
@@ -67,7 +65,7 @@
     return 0 unless -d $dist_path;
     my $home = cwd;
     chdir $dist_path or return 0;
-    system($^X, "-Mblib", "Makefile.PL") == 0 or return 0;
+    system($^X, "-Ilib", "-Iblib/lib", "Makefile.PL") == 0 or return 0;
     chdir $home or return 0;
     return 1;
 }

Added: packages/libmodule-install-perl/branches/upstream/current/t/2-pod.t
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/t/2-pod.t	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/t/2-pod.t	2005-12-30 11:12:30 UTC (rev 1803)
@@ -0,0 +1,16 @@
+if ( !$ENV{TEST_POD} ) {
+    print "1..0 # Skip set TEST_POD to enable this test\n";
+    exit;
+}
+
+eval "
+use Test::More;
+use Test::Pod 1.14
+";
+
+if ( $@ ) {
+    print "1..0 # Skip Test::More and Test::Pod 1.14 required - $@\n";
+    exit;
+}
+
+all_pod_files_ok();

Added: packages/libmodule-install-perl/branches/upstream/current/t/3-autoinstall.t
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/t/3-autoinstall.t	2005-12-30 11:10:26 UTC (rev 1802)
+++ packages/libmodule-install-perl/branches/upstream/current/t/3-autoinstall.t	2005-12-30 11:12:30 UTC (rev 1803)
@@ -0,0 +1,106 @@
+#!/usr/bin/perl
+
+use strict;
+use Test;
+use Data::Dumper;
+
+BEGIN { plan tests => 6; $^W = 0; };
+
+# Intercepts calls to WriteMakefile and prompt.
+my $mm_args;
+my @prompts = qw/y n n y y/;
+
+use ExtUtils::MakeMaker;
+sub ExtUtils::MakeMaker::WriteMakefile { $mm_args = {@_} }
+sub ExtUtils::MakeMaker::prompt ($;$) { return 'n' }
+
+# tiehandle trick to intercept STDOUT.
+sub PRINT  { my $self = shift; $$self .= join '', @_; }
+sub PRINTF { my $self = shift; $$self .= sprintf(shift, @_); }
+sub TIEHANDLE { my $self = ''; return bless \$self, shift; }
+sub READ {} sub READLINE {} sub GETC {} sub FILENO {}
+
+require Symbol;
+my $fh  = Symbol::gensym;
+my $out = tie *$fh, __PACKAGE__;
+select(*$fh);
+
+# test from a clean state
+$ENV{PERL_AUTOINSTALL} = '';
+require Module::AutoInstall;
+Module::AutoInstall::_accept_default(0);
+*Module::AutoInstall::_prompt  = sub {
+    ok($_[1], shift(@prompts));
+    return 'n';
+};
+
+# calls the module.
+ok(eval <<'.', $@);
+use Module::AutoInstall (
+    -version	=> '0.21',	# Module::AutoInstall version
+    -config	=> {
+	make_args	=> '--hello'	# option(s) for CPAN::Config 
+    },
+    -core	=> [		# core modules
+	Package0	=> '',		# any version would do
+    ],
+    'Feature1'	=> [
+	# do we want to install this feature by default?
+	-default	=> 0,
+	Package1	=> '0.01',
+    ],
+    'Feature2'	=> [
+	# associate tests to be disabled along with this
+	-tests		=> [ $0 ],
+	Package2	=> '0.02',
+    ],
+    'Feature3'	=> {			# hash reference works, too
+	Package3	=> '0.03',
+    },
+); '';
+.
+
+# simulates a makefile.
+WriteMakefile(
+    AUTHOR		=> 'Joe Hacker (joe at hacker.org)',
+    ABSTRACT		=> 'Perl Interface to Joe Hacker',
+    NAME		=> 'Joe::Hacker',
+    VERSION_FROM	=> 'Hacker.pm',
+    DISTNAME		=> 'Joe-Hacker',
+    EXE_FILES		=> [ qw/foo bar baz/ ],
+);
+
+# XXX - test currently disabled in anticipation of a
+#       rewrite using Test::MockObject.
+
+exit;
+
+$$out =~ s/.*\n//; # strip the version-dependent line.
+
+ok($$out, qr/\Q*** Checking for dependencies...
+[Core Features]
+- Package0 ...failed! (needed)
+[Feature1]
+- Package1 ...failed! (needs 0.01)
+[Feature2]
+- Package2 ...failed! (needs 0.02)
+[Feature3]
+- Package3 ...failed! (needs 0.03)\E
+.*\Q
+*** Module::AutoInstall configuration finished.\E/s);
+
+use vars qw/@Data_Stack $DNE/;
+$mm_args->{test}{TESTS} = ''; # XXX: workaround false-positive globbing
+
+ok(
+    Data::Dumper::Dumper($mm_args), 
+    Data::Dumper::Dumper({
+        ABSTRACT		=> 'Perl Interface to Joe Hacker',
+        test		=>  { 'TESTS' => '' },
+        NAME		=> 'Joe::Hacker',
+        DISTNAME		=> 'Joe-Hacker',
+        AUTHOR		=> 'Joe Hacker (joe at hacker.org)',
+        EXE_FILES		=> [],
+        VERSION_FROM	=> 'Hacker.pm',
+    })
+);




More information about the Pkg-perl-cvs-commits mailing list