r1903 - in
packages/libmodule-install-perl/branches/upstream/current: .
inc/Module inc/Module/Install lib/Module lib/Module/Install
lib/Module/Install/Admin
Krzysztof Krzyzaniak
eloy at costa.debian.org
Wed Jan 11 14:23:49 UTC 2006
Author: eloy
Date: 2006-01-11 14:23:22 +0000 (Wed, 11 Jan 2006)
New Revision: 1903
Modified:
packages/libmodule-install-perl/branches/upstream/current/Changes
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/AutoInstall.pm
packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install.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/Makefile.pm
packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Metadata.pm
packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/WriteAll.pm
packages/libmodule-install-perl/branches/upstream/current/lib/Module/AutoInstall.pm
packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pm
packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pod
packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin.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/Metadata.pm
packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/WriteAll.pm
packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Base.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/Compiler.pm
packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile.pm
packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Metadata.pm
packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/WriteAll.pm
Log:
Load /tmp/tmp.dHPiHe/libmodule-install-perl-0.54 into
packages/libmodule-install-perl/branches/upstream/current.
Modified: packages/libmodule-install-perl/branches/upstream/current/Changes
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/Changes 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/Changes 2006-01-11 14:23:22 UTC (rev 1903)
@@ -1,3 +1,39 @@
+[Changes for 0.54 - 2006-01-11]
+
+* Fix can_run() on Cygwin for real.
+ Contributed by: Mark Grimes
+
+[Changes for 0.53 - 2006-01-11]
+
+* Fix can_run() on Cygwin for paths beginning with /cygdrive/.
+ Reported by: Mark Staggs
+
+* If YAML::Syck is present on the system, use it instead of YAML.pm
+ to write out META.yml.
+
+[Changes for 0.52 - 2006-01-03]
+
+* Module::AutoInstall - disable "sudo" prompting for CPANPLUS 0.050
+ and CPAN.pm 1.80+ which already has "sudo" support.
+ Reported by: Andreas Koenig
+
+[Changes for 0.51 - 2005-12-31]
+
+* An additional 100+ lines of documentations in the Module::Install POD file.
+
+* all_from() with no args now attempts to decude the "from" file
+ from the "name" property.
+
+* On Cygwin, sometimes AUTOLOAD is called with a gensym'ed package
+ that does not define _top. Try to accomodate for this.
+
+* Do not ever attempt "sudo" without interactive consent from the user;
+ make the _prompt() in Module::AutoInstall default to 'n' if we are
+ not running in an interactive terminal.
+
+* Add lib_paths and lib_links commands to Module::Install::Compiler for
+ setting LIBS flags.
+
[Changes for 0.50 - 2005-12-26]
* Fixed the bug where cpan signing was set forcibly to true instead
Modified: packages/libmodule-install-perl/branches/upstream/current/META.yml
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/META.yml 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/META.yml 2006-01-11 14:23:22 UTC (rev 1903)
@@ -1,115 +1,116 @@
-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
-no_index:
- directory:
+
+no_index:
+ directory:
- example
- inc
- 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:
+generated_by: Module::Install version 0.54
+distribution_type: module
+version: 0.54
+name: Module-Install
+author: Audrey Tang <autrijus at autrijus.org>
+license: gpl
+provides:
+ Module::Install::Fetch:
+ version: 0.01
+ file: lib/Module/Install/Fetch.pm
+ Module::Install::Admin::Metadata:
+ version: 0.03
+ file: lib/Module/Install/Admin/Metadata.pm
+ Module::Install::Bundle:
+ version: 0.04
+ file: lib/Module/Install/Bundle.pm
+ Module::Install::Admin::Bundle:
+ version: 0.04
file: lib/Module/Install/Admin/Bundle.pm
- version: 0.04
- Module::Install::Admin::Find:
- file: lib/Module/Install/Admin/Find.pm
+ Module::Install::MakeMaker:
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
+ file: lib/Module/Install/MakeMaker.pm
+ Module::Install::Makefile::Name:
version: 0.01
- Module::Install::Admin::Manifest:
- file: lib/Module/Install/Admin/Manifest.pm
+ file: lib/Module/Install/Makefile/Name.pm
+ Module::AutoInstall:
+ version: 1.01
+ file: lib/Module/AutoInstall.pm
+ Module::Install::Inline:
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/Inline.pm
+ Module::Install::PAR:
+ file: lib/Module/Install/PAR.pm
+ Module::Install::Include:
+ file: lib/Module/Install/Include.pm
+ Module::Install::Admin::ScanDeps:
file: lib/Module/Install/Admin/ScanDeps.pm
- Module::Install::Admin::WriteAll:
- file: lib/Module/Install/Admin/WriteAll.pm
+ Module::Install::Build:
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
+ Module::Install::Can:
version: 0.01
- Module::Install::Bundle:
- file: lib/Module/Install/Bundle.pm
- version: 0.04
- Module::Install::Can:
file: lib/Module/Install/Can.pm
+ Module::Install::AutoInstall:
+ file: lib/Module/Install/AutoInstall.pm
+ Module::Install::Admin::Manifest:
version: 0.01
- Module::Install::Compiler:
- file: lib/Module/Install/Compiler.pm
+ file: lib/Module/Install/Admin/Manifest.pm
+ Module::Install::Admin:
+ version: 0.54
+ file: lib/Module/Install/Admin.pm
+ Module::Install::Base::FakeAdmin:
+ file: lib/Module/Install/Base.pm
+ Module::Install::Makefile:
version: 0.01
- Module::Install::Fetch:
- file: lib/Module/Install/Fetch.pm
+ file: lib/Module/Install/Makefile.pm
+ Module::Install::Metadata:
+ version: 0.06
+ file: lib/Module/Install/Metadata.pm
+ inc::Module::Install:
+ file: lib/inc/Module/Install.pm
+ Module::Install::Admin::WriteAll:
version: 0.01
- Module::Install::Include:
- file: lib/Module/Install/Include.pm
- Module::Install::Inline:
- file: lib/Module/Install/Inline.pm
+ file: lib/Module/Install/Admin/WriteAll.pm
+ Module::Install::Run:
version: 0.01
- Module::Install::MakeMaker:
- file: lib/Module/Install/MakeMaker.pm
+ file: lib/Module/Install/Run.pm
+ Module::Install::Base:
+ file: lib/Module/Install/Base.pm
+ Module::Install::Admin::Include:
+ version: 0.02
+ file: lib/Module/Install/Admin/Include.pm
+ Module::Install::Makefile::Version:
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
+ Module::Install::Admin::Find:
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/Admin/Find.pm
+ Module::Install::Scripts:
+ version: 0.02
file: lib/Module/Install/Scripts.pm
+ Module::Install:
+ version: 0.54
+ file: lib/Module/Install.pm
+ Module::Install::Win32:
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:
+ Module::Install::WriteAll:
file: lib/Module/Install/WriteAll.pm
- inc::Module::Install:
- file: lib/inc/Module/Install.pm
-recommends:
- CPANPLUS: 0.04
+ Module::Install::Admin::Makefile:
+ version: 0.01
+ file: lib/Module/Install/Admin/Makefile.pm
+ Module::Install::Compiler:
+ version: 0.01
+ file: lib/Module/Install/Compiler.pm
+ Module::Install::Share:
+ version: 0.01
+ file: lib/Module/Install/Share.pm
+requires:
+ perl: 5.004
+ YAML: 0.35
+abstract: Standalone, extensible Perl module installer
+recommends:
+ PAR::Dist: 0.03
+ Test::More: 0
+ Test::Harness: 2.03
+ Module::ScanDeps: 0.28
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
+ CPANPLUS: 0.04
Modified: packages/libmodule-install-perl/branches/upstream/current/Makefile.PL
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/Makefile.PL 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/Makefile.PL 2006-01-11 14:23:22 UTC (rev 1903)
@@ -9,8 +9,10 @@
name 'Module-Install';
author 'Audrey Tang <autrijus at autrijus.org>';
all_from 'lib/Module/Install.pm';
-requires 'YAML' => 0.35;
+# If we have YAML::Syck here, don't bother installing YAML.
+requires 'YAML' => 0.35 unless can_use('YAML::Syck' => 0.15);
+
feature 'Include packages with full dependencies',
recommends
'Test::Harness' => 2.03, # merely a dependency of M::CoreList
@@ -41,5 +43,8 @@
auto_provides;
+# Still list it as a mandatory dependency for now
+requires 'YAML' => 0.35;
+
sign;
WriteAll;
Modified: packages/libmodule-install-perl/branches/upstream/current/README
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/README 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/README 2006-01-11 14:23:22 UTC (rev 1903)
@@ -39,7 +39,7 @@
* Copyright
-Copyright 2002, 2003, 2004, 2005 by
+Copyright 2002, 2003, 2004, 2005, 2006 by
Audrey Tang <autrijus at autrijus.org>
Brian Ingerson <ingy at cpan.org>
Adam Kennedy <cpan at ali.as>
Modified: packages/libmodule-install-perl/branches/upstream/current/SIGNATURE
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/SIGNATURE 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/SIGNATURE 2006-01-11 14:23:22 UTC (rev 1903)
@@ -1,12 +1,12 @@
This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.41.
+signed via the Module::Signature module, version 0.51.
To verify the content in this distribution, first make sure you have
Module::Signature installed, then type:
% cpansign -v
-It would check each file's integrity, as well as the signature's
+It will check each file's integrity, as well as the signature's
validity. If "==> Signature verified OK! <==" is not displayed,
the distribution may already have been compromised, and you should
not run its Makefile.PL or Build.PL.
@@ -14,56 +14,56 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-SHA1 739b871ff482c56af74a261fd5e0b6db99afb7cc Changes
+SHA1 6b9d56ef93c2445007cda1203bf2eea8865d9ed9 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 dbb2b2aeea98726403dfbcb4f7aa6a55ed85f997 META.yml
+SHA1 99073b02ba9322ebc63e7665497ff66878d2b7a2 Makefile.PL
+SHA1 d131a0c2e81eeed474b809095878a9aa819badcb README
+SHA1 b0cf6e5a18272351015e6b2bf770a4d3d7b81fe7 inc/Module/AutoInstall.pm
+SHA1 adfed789a44d66f10e610092c8a45d3a308204be 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 b9f88c65a2a1a2ff53632d2e71ac60e0d52d66f6 inc/Module/Install/Base.pm
+SHA1 f4154feb374971ecdbbc7ab44a55cc9f00057c30 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 47a67dc7ff84095409751f3bcf0b9e0ec215f4d6 inc/Module/Install/Makefile.pm
+SHA1 b65cc85073e12b75e94ca9193d454020cd727e65 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 afb581b95e7e63ce7618733c2e7284f7e5da9ee7 inc/Module/Install/WriteAll.pm
+SHA1 91f5522687fb8caa3ad2eed15f31a49a7168307b 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 b309facf7c63b68ffea4ef93096e954ebdca090e lib/Module/Install.pm
+SHA1 d5a8ce89cf2c7380cd6ab87166b0b584e92558a5 lib/Module/Install.pod
+SHA1 cc7f17ece615d8d3d199492c13723f0a8c83edb8 lib/Module/Install/Admin.pm
SHA1 57b0f1152c5490287f85b52f4f0d5d849332f960 lib/Module/Install/Admin/Bundle.pm
-SHA1 4c56a004332e0b6988c9598b80cf9a5c334da471 lib/Module/Install/Admin/Find.pm
+SHA1 67e24c386c1a964e845ee97540a5ad1f4b38c495 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 664bb55e14aa22d27f4f2c50b53d11f7e8cf83ed lib/Module/Install/Admin/Metadata.pm
SHA1 5ba95cbf306f7fb0c96e96f7b6f0f0eb4c27f77f lib/Module/Install/Admin/ScanDeps.pm
-SHA1 14246009fe66492d939604013adb732a2744732b lib/Module/Install/Admin/WriteAll.pm
+SHA1 ccec6b2cdd2a7d37e36ab167718d1142bfd05a7a lib/Module/Install/Admin/WriteAll.pm
SHA1 5c17235758de252ef7b6f6da246277d1e6321d10 lib/Module/Install/AutoInstall.pm
-SHA1 a097c0c3f23de102e98517bb0f440fac0fecedd9 lib/Module/Install/Base.pm
+SHA1 12ef08d31f6afe4acf46bd627fee0a268b98be7d 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 a2c881c0171c651f545ddfd6eb9070dfa7e92bcc lib/Module/Install/Bundle.pm
+SHA1 f7c69f70b118013635c9c2b1d3cd8020baab1703 lib/Module/Install/Can.pm
+SHA1 70e8e0ac8d288daa443eca42149ea8cb1d53f735 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 95fcdb103fae03000b6d531c4e8db0e3481296a0 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 03eb4e5c14d6c86758d38f7f236b09f88fd5194e 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 949c10fd4a37bb98be37f215b5d1eda2806dafd5 lib/Module/Install/WriteAll.pm
SHA1 1a054e15bfbd68c6ccb8f30bc4d2badcac543335 lib/inc/Module/Install.pm
SHA1 cc165528d2e584ffcfaf9bfc8cbc3a814c48d53f t/1-basic.t
SHA1 7867cff04a8429890fa473fcd8ea51a66d0f6772 t/2-pod.t
@@ -71,7 +71,7 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (FreeBSD)
-iD8DBQFDr+lutLPdNzw1AaARAn2FAJ42Uyrnn8qLhvAIexpihO8IScYEuQCguyHf
-VaFk713c/nA0nKpEFxl+F1o=
-=ijEk
+iD8DBQFDxHbotLPdNzw1AaARAh1aAJ49zzcmsNjTWNlsyCC86yzuKDRflwCbB85c
+7XilO/YrRHpQv2TeuMDBegs=
+=S+vb
-----END PGP SIGNATURE-----
Modified: packages/libmodule-install-perl/branches/upstream/current/inc/Module/AutoInstall.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/AutoInstall.pm 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/AutoInstall.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -1,12 +1,12 @@
#line 1 "inc/Module/AutoInstall.pm - lib/Module/AutoInstall.pm"
package Module::AutoInstall;
-$Module::AutoInstall::VERSION = '1.00';
+$Module::AutoInstall::VERSION = '1.01';
use strict;
use Cwd ();
use ExtUtils::MakeMaker ();
-#line 221
+#line 216
# special map on pre-defined feature sets
my %FeatureMap = (
@@ -327,12 +327,8 @@
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
- );
+ return unless $conf->can('conf') # 0.05x+ with "sudo" support
+ or _can_write($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') || '';
@@ -406,9 +402,11 @@
CPAN::Config->load;
require Config;
- return
- unless _can_write( MM->catfile( $CPAN::Config->{cpan_home}, 'sources' ) )
- and _can_write( $Config::Config{sitelib} );
+ if (CPAN->VERSION < 1.80) {
+ # no "sudo" support, probe for writableness
+ 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} || '';
@@ -553,7 +551,8 @@
if (
eval '$>' and lc(`sudo -V`) =~ /version/ and _prompt(
qq(
-==> Should we try to re-execute the autoinstall process with 'sudo'?), 'y'
+==> Should we try to re-execute the autoinstall process with 'sudo'?),
+ ((-t STDIN) ? 'y' : 'n')
) =~ /^[Yy]/
)
{
@@ -714,4 +713,4 @@
__END__
-#line 950
+#line 943
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Base.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -22,14 +22,17 @@
sub AUTOLOAD {
my $self = shift;
- goto &{$self->_top->autoload};
+
+ local $@;
+ my $autoload = eval { $self->_top->autoload } or return;
+ goto &$autoload;
}
-#line 59
+#line 62
sub _top { $_[0]->{_top} }
-#line 70
+#line 73
sub admin {
my $self = shift;
@@ -57,4 +60,4 @@
__END__
-#line 117
+#line 120
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Can.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -52,14 +52,15 @@
# Fix Cygwin bug on maybe_command();
if ($^O eq 'cygwin') {
require ExtUtils::MM_Cygwin;
+ require ExtUtils::MM_Win32;
if (!defined(&ExtUtils::MM_Cygwin::maybe_command)) {
*ExtUtils::MM_Cygwin::maybe_command = sub {
my ($self, $file) = @_;
- if ($file =~ m{^/cygdrive/}i) {
+ if ($file =~ m{^/cygdrive/}i and ExtUtils::MM_Win32->can('maybe_command')) {
ExtUtils::MM_Win32->maybe_command($file);
}
else {
- $self->SUPER::maybe_command($file);
+ ExtUtils::MM_Unix->maybe_command($file);
}
}
}
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Makefile.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -65,14 +65,14 @@
$args->{test} = {TESTS => $self->tests} if $self->tests;
if ($] >= 5.005) {
- $args->{ABSTRACT} = $self->abstract;
- $args->{AUTHOR} = $self->author;
+ $args->{ABSTRACT} = $self->abstract;
+ $args->{AUTHOR} = $self->author;
}
if ( eval($ExtUtils::MakeMaker::VERSION) >= 6.10 ) {
$args->{NO_META} = 1;
}
if ( eval($ExtUtils::MakeMaker::VERSION) > 6.17 ) {
- $args->{SIGN} = 1 if $self->sign;
+ $args->{SIGN} = 1 if $self->sign;
}
delete $args->{SIGN} unless $self->is_admin;
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/Metadata.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -1,24 +1,27 @@
#line 1 "inc/Module/Install/Metadata.pm - lib/Module/Install/Metadata.pm"
package Module::Install::Metadata;
+
+use strict 'vars';
use Module::Install::Base;
- at ISA = qw(Module::Install::Base);
-$VERSION = '0.05';
+use vars qw($VERSION @ISA);
+BEGIN {
+ $VERSION = '0.06';
+ @ISA = 'Module::Install::Base';
+}
-use strict 'vars';
-use vars qw($VERSION);
+my @scalar_keys = qw{
+ name module_name abstract author version license
+ distribution_type perl_version tests
+};
-my @scalar_keys = qw<
- name module_name version abstract author license
- distribution_type perl_version tests
->;
-my @tuple_keys = qw<
+my @tuple_keys = qw{
build_requires requires recommends bundles
->;
+};
-sub Meta { shift }
+sub Meta { shift }
sub Meta_ScalarKeys { @scalar_keys }
-sub Meta_TupleKeys { @tuple_keys }
+sub Meta_TupleKeys { @tuple_keys }
foreach my $key (@scalar_keys) {
*$key = sub {
@@ -29,13 +32,6 @@
};
}
-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;
@@ -59,9 +55,24 @@
};
}
+sub sign {
+ my $self = shift;
+ return $self->{'values'}{'sign'} if defined wantarray and !@_;
+ $self->{'values'}{'sign'} = ( @_ ? $_[0] : 1 );
+ return $self;
+}
+
sub all_from {
my ( $self, $file ) = @_;
+ unless ( defined($file) ) {
+ my $name = $self->name
+ or die "all_from called with no args without setting name() first";
+ $file = join('/', 'lib', split(/-/, $name)) . '.pm';
+ $file =~ s{.*/}{} unless -e $file;
+ die "all_from: cannot find $file from $name" unless -e $file;
+ }
+
$self->version_from($file) unless $self->version;
$self->perl_version_from($file) unless $self->perl_version;
@@ -192,8 +203,11 @@
my ( $self, $file ) = @_;
require ExtUtils::MM_Unix;
$self->abstract(
- bless( { DISTNAME => $self->name }, 'ExtUtils::MM_Unix' )
- ->parse_abstract($file) );
+ bless(
+ { DISTNAME => $self->name },
+ 'ExtUtils::MM_Unix'
+ )->parse_abstract($file)
+ );
}
sub _slurp {
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install/WriteAll.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -5,9 +5,9 @@
sub WriteAll {
my $self = shift;
my %args = (
- meta => 1,
- sign => 0,
- inline => 0,
+ meta => 1,
+ sign => 0,
+ inline => 0,
check_nmake => 1,
@_
);
@@ -17,10 +17,10 @@
$self->admin->WriteAll(%args) if $self->is_admin;
if ($0 =~ /Build.PL$/i) {
- $self->Build->write;
+ $self->Build->write;
}
else {
- $self->check_nmake if $args{check_nmake};
+ $self->check_nmake if $args{check_nmake};
$self->makemaker_args( PL_FILES => {} )
unless $self->makemaker_args->{'PL_FILES'};
Modified: packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install.pm 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/inc/Module/Install.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -1,10 +1,17 @@
#line 1 "/home/autrijus/work/modinstall/trunk/inc/Module/Install.pm - lib/Module/Install.pm"
package Module::Install;
+
use 5.004;
+use strict 'vars';
+use vars qw{$VERSION};
+BEGIN {
+ # Don't forget to update Module::Install::Admin too!
+ $VERSION = '0.54';
+}
-$VERSION = '0.50'; # Don't forget to update Module::Install::Admin too!
-
-die << "." unless $INC{join('/', inc => split(/::/, __PACKAGE__)).'.pm'};
+# inc::Module::Install must be loaded first
+unless ( $INC{join('/', inc => split(/::/, __PACKAGE__)).'.pm'} ) {
+ die <<"END_DIE";
Please invoke ${\__PACKAGE__} with:
use inc::${\__PACKAGE__};
@@ -13,28 +20,28 @@
use ${\__PACKAGE__};
-.
+END_DIE
+}
-use strict 'vars';
-use Cwd qw(cwd abs_path);
+use Cwd ();
use FindBin;
use File::Find ();
use File::Path ();
- at inc::Module::Install::ISA = 'Module::Install';
*inc::Module::Install::VERSION = *VERSION;
+ at inc::Module::Install::ISA = 'Module::Install';
sub autoload {
my $self = shift;
my $caller = $self->_caller;
+ my $cwd = Cwd::cwd();
+ my $sym = "$caller\::AUTOLOAD";
- 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
+ my $pwd = Cwd::cwd();
+ if ( my $code = $sym->{$pwd} ) {
+ # delegate back to parent dirs
+ goto &$code unless $cwd eq $pwd;
}
$$sym =~ /([^:]+)$/ or die "Cannot autoload $caller - $sym";
unshift @_, ($self, $1);
@@ -44,9 +51,9 @@
sub import {
my $class = shift;
- my $self = $class->new(@_);
+ my $self = $class->new(@_);
- if (not -f $self->{file}) {
+ unless ( -f $self->{file} ) {
require "$self->{path}/$self->{dispatch}.pm";
File::Path::mkpath("$self->{prefix}/$self->{author}");
$self->{admin} =
@@ -67,19 +74,20 @@
sub preload {
my ($self) = @_;
- $self->load_extensions(
- "$self->{prefix}/$self->{path}", $self
- ) unless $self->{extensions};
+ unless ( $self->{extentions} ) {
+ $self->load_extensions(
+ "$self->{prefix}/$self->{path}", $self
+ );
+ }
my @exts = @{$self->{extensions}};
-
- unless (@exts) {
+ unless ( @exts ) {
my $admin = $self->{admin};
@exts = $admin->load_all_extensions;
}
my %seen_method;
- foreach my $obj (@exts) {
+ foreach my $obj ( @exts ) {
while (my ($method, $glob) = each %{ref($obj) . '::'}) {
next unless defined *{$glob}{CODE};
next if $method =~ /^_/;
@@ -101,8 +109,10 @@
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;
+ my $base_path = Cwd::abs_path($FindBin::Bin);
+ unless ( Cwd::abs_path(Cwd::cwd()) eq $base_path ) {
+ delete $args{prefix};
+ }
return $args{_self} if $args{_self};
@@ -145,10 +155,10 @@
return $obj if $obj->can($method);
}
- my $admin = $self->{admin} or die << "END";
+ my $admin = $self->{admin} or die <<"END_DIE";
The '$method' method does not exist in the '$self->{prefix}' path!
Please remove the '$self->{prefix}' directory and run $0 again to load it.
-END
+END_DIE
my $obj = $admin->load($method, 1);
push @{$self->{extensions}}, $obj;
@@ -169,7 +179,10 @@
local $@;
my $new = eval { require $file; $pkg->can('new') };
- if (!$new) { warn $@ if $@; next; }
+ unless ( $new ) {
+ warn $@ if $@;
+ next;
+ }
$self->{pathnames}{$pkg} = delete $INC{$file};
push @{$self->{extensions}}, &{$new}($pkg, _top => $top_obj );
}
@@ -179,23 +192,23 @@
sub find_extensions {
my ($self, $path) = @_;
+
my @found;
-
- File::Find::find(sub {
+ File::Find::find( sub {
my $file = $File::Find::name;
return unless $file =~ m!^\Q$path\E/(.+)\.pm\Z!is;
return if $1 eq $self->{dispatch};
$file = "$self->{path}/$1.pm";
my $pkg = "$self->{name}::$1"; $pkg =~ s!/!::!g;
- push @found, [$file, $pkg];
- }, $path) if -d $path;
+ push @found, [ $file, $pkg ];
+ }, $path ) if -d $path;
@found;
}
sub _caller {
- my $depth = 0;
+ my $depth = 0;
my $caller = caller($depth);
while ($caller eq __PACKAGE__) {
Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/AutoInstall.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/AutoInstall.pm 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/AutoInstall.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -1,5 +1,5 @@
package Module::AutoInstall;
-$Module::AutoInstall::VERSION = '1.00';
+$Module::AutoInstall::VERSION = '1.01';
use strict;
use Cwd ();
@@ -9,11 +9,6 @@
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:
@@ -539,12 +534,8 @@
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
- );
+ return unless $conf->can('conf') # 0.05x+ with "sudo" support
+ or _can_write($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') || '';
@@ -618,9 +609,11 @@
CPAN::Config->load;
require Config;
- return
- unless _can_write( MM->catfile( $CPAN::Config->{cpan_home}, 'sources' ) )
- and _can_write( $Config::Config{sitelib} );
+ if (CPAN->VERSION < 1.80) {
+ # no "sudo" support, probe for writableness
+ 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} || '';
@@ -765,7 +758,8 @@
if (
eval '$>' and lc(`sudo -V`) =~ /version/ and _prompt(
qq(
-==> Should we try to re-execute the autoinstall process with 'sudo'?), 'y'
+==> Should we try to re-execute the autoinstall process with 'sudo'?),
+ ((-t STDIN) ? 'y' : 'n')
) =~ /^[Yy]/
)
{
@@ -939,8 +933,7 @@
=head1 COPYRIGHT
-Copyright 2001, 2002, 2003, 2004, 2005
-by Audrey Tang E<lt>autrijus at autrijus.orgE<gt>.
+Copyright 2001, 2002, 2003, 2004, 2005, 2006 by Audrey Tang.
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/Admin/Find.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Find.pm 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Find.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -15,14 +15,14 @@
my ($self, $pkg) = @_;
unless ($pkg =~ /\.pm$/) {
- $pkg =~ s!::!/!g;
- $pkg = "$pkg.pm";
+ $pkg =~ s!::!/!g;
+ $pkg = "$pkg.pm";
}
my @found;
foreach my $inc (@INC) {
- next if $inc eq $self->_top->{prefix} or ref($inc);
- push @found, "$inc/$pkg" if -f "$inc/$pkg";
+ next if $inc eq $self->_top->{prefix} or ref($inc);
+ push @found, "$inc/$pkg" if -f "$inc/$pkg";
}
wantarray ? @found : $found[0];
@@ -32,14 +32,14 @@
my ($self, $pkg) = @_;
unless ($pkg =~ /\.pm$/) {
- $pkg =~ s!::!/!g;
- $pkg = "$pkg.pm";
+ $pkg =~ s!::!/!g;
+ $pkg = "$pkg.pm";
}
my @found;
foreach my $inc (@INC) {
- next if $inc eq $self->_top->{prefix} or ref($inc);
- push @found, [ do {
+ next if $inc eq $self->_top->{prefix} or ref($inc);
+ push @found, [ do {
my $p = $_;
$p =~ s!^\Q$inc\E/!!;
$p =~ s!/!::!g;
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/Metadata.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -1,10 +1,14 @@
package Module::Install::Admin::Metadata;
-use Module::Install::Base; @ISA = qw(Module::Install::Base);
-$VERSION = '0.02';
-
use strict;
+use Module::Install::Base;
+use vars qw{$VERSION @ISA};
+BEGIN {
+ $VERSION = '0.03';
+ @ISA = 'Module::Install::Base';
+}
+
sub remove_meta {
my $self = shift;
my $package = ref($self->_top);
@@ -28,7 +32,7 @@
sub write_meta {
my $self = shift;
- META_NOT_OURS: {
+ META_NOT_OURS: {
local *FH;
if ( open FH, "META.yml" ) {
while (<FH>) {
@@ -55,27 +59,32 @@
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} || [] }, ];
+ 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};
+ # Set a default 'unknown' license
+ unless ( $values{license} ) {
+ warn "No license specified, setting license = 'unknown'\n";
+ $values{license} = 'unknown';
+ }
- $values{license} ||= 'unknown';
$values{distribution_type} ||= 'module';
- $values{name} ||= do {
- my $name = $values{module_name};
- $name =~ s/::/-/g;
- $name;
- } if $values{module_name};
+ # Guess a name if needed, derived from the module_name
+ if ( $values{module_name} and ! $values{name} ) {
+ $values{name} = $values{module_name};
+ $values{name} =~ s/::/-/g;
+ }
+
if ( $values{name} =~ /::/ ) {
my $name = $values{name};
$name =~ s/::/-/g;
@@ -98,11 +107,18 @@
my $no_index = $values{no_index} ||= {};
push @{ $no_index->{'directory'} ||= [] }, 'inc', 't';
$dump{no_index} = $no_index;
+ $dump{generated_by} = "$package version $version";
- require YAML;
- local $YAML::UseHeader = 0;
- $dump{generated_by} = "$package version $version";
- return YAML::Dump(\%dump);
+ local $@;
+ if (eval { require YAML::Syck }) {
+ local $YAML::Syck::Headless = 1;
+ return YAML::Syck::Dump(\%dump);
+ }
+ else {
+ require YAML;
+ local $YAML::UseHeader = 0;
+ return YAML::Dump(\%dump);
+ }
}
1;
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin/WriteAll.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -7,18 +7,18 @@
my ($self, %args) = @_;
if (-e 'Makefile.PL') {
- $self->load('Makefile');
- if ($args{check_nmake}) {
- $self->load($_) for qw(Makefile check_nmake can_run get_file);
- }
+ $self->load('Makefile');
+ if ($args{check_nmake}) {
+ $self->load($_) for qw(Makefile check_nmake can_run get_file);
+ }
}
if (-e 'Build.PL') {
- $self->load('Build');
- if ($self->sign and !-e 'MANIFEST.SKIP') {
- local *FH;
- open FH, '>MANIFEST.SKIP' or die $!;
- print FH << '.';
+ $self->load('Build');
+ if ($self->sign and !-e 'MANIFEST.SKIP') {
+ local *FH;
+ open FH, '>MANIFEST.SKIP' or die $!;
+ print FH << '.';
#defaults
^Makefile$
^blib/
@@ -27,11 +27,11 @@
^Build$
^_build/
.
- close FH;
- open FH, '>>MANIFEST' or die $!;
- print FH "MANIFEST.SKIP";
- close FH;
- }
+ close FH;
+ open FH, '>>MANIFEST' or die $!;
+ print FH "MANIFEST.SKIP";
+ close FH;
+ }
}
}
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Admin.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -1,5 +1,5 @@
package Module::Install::Admin;
-$VERSION = '0.50';
+$VERSION = '0.54';
@ISA = 'Module::Install';
use strict 'vars';
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Base.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -49,7 +49,10 @@
sub AUTOLOAD {
my $self = shift;
- goto &{$self->_top->autoload};
+
+ local $@;
+ my $autoload = eval { $self->_top->autoload } or return;
+ goto &$autoload;
}
=item _top()
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Bundle.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -76,7 +76,7 @@
while (my ($name, $version) = splice(@core, 0, 2)) {
next unless $name;
$self->bundle_deps($name, $version);
- $self->add_bundle($name, $version);
+ $self->bundle($name, $version);
}
}
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Can.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -51,14 +51,15 @@
# Fix Cygwin bug on maybe_command();
if ($^O eq 'cygwin') {
require ExtUtils::MM_Cygwin;
+ require ExtUtils::MM_Win32;
if (!defined(&ExtUtils::MM_Cygwin::maybe_command)) {
*ExtUtils::MM_Cygwin::maybe_command = sub {
my ($self, $file) = @_;
- if ($file =~ m{^/cygdrive/}i) {
+ if ($file =~ m{^/cygdrive/}i and ExtUtils::MM_Win32->can('maybe_command')) {
ExtUtils::MM_Win32->maybe_command($file);
}
else {
- $self->SUPER::maybe_command($file);
+ ExtUtils::MM_Unix->maybe_command($file);
}
}
}
Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Compiler.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Compiler.pm 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Compiler.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -17,6 +17,18 @@
$self->makemaker_args(INC => join ' ', map { "-I$_" } @_);
}
+sub lib_paths {
+ my $self = shift;
+ $self->makemaker_args(LIBS => join ' ', map { "-L$_" } @_);
+}
+
+sub lib_links {
+ my $self = shift;
+ $self->makemaker_args(
+ LIBS => join ' ', $self->makemaker_args->{LIBS}, map { "-l$_" } @_
+ );
+}
+
sub optimize_flags {
my $self = shift;
$self->makemaker_args(OPTIMIZE => join ' ', @_);
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Makefile.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -64,14 +64,14 @@
$args->{test} = {TESTS => $self->tests} if $self->tests;
if ($] >= 5.005) {
- $args->{ABSTRACT} = $self->abstract;
- $args->{AUTHOR} = $self->author;
+ $args->{ABSTRACT} = $self->abstract;
+ $args->{AUTHOR} = $self->author;
}
if ( eval($ExtUtils::MakeMaker::VERSION) >= 6.10 ) {
$args->{NO_META} = 1;
}
if ( eval($ExtUtils::MakeMaker::VERSION) > 6.17 ) {
- $args->{SIGN} = 1 if $self->sign;
+ $args->{SIGN} = 1 if $self->sign;
}
delete $args->{SIGN} unless $self->is_admin;
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Metadata.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -1,23 +1,26 @@
package Module::Install::Metadata;
+
+use strict 'vars';
use Module::Install::Base;
- at ISA = qw(Module::Install::Base);
-$VERSION = '0.05';
+use vars qw($VERSION @ISA);
+BEGIN {
+ $VERSION = '0.06';
+ @ISA = 'Module::Install::Base';
+}
-use strict 'vars';
-use vars qw($VERSION);
+my @scalar_keys = qw{
+ name module_name abstract author version license
+ distribution_type perl_version tests
+};
-my @scalar_keys = qw<
- name module_name version abstract author license
- distribution_type perl_version tests
->;
-my @tuple_keys = qw<
+my @tuple_keys = qw{
build_requires requires recommends bundles
->;
+};
-sub Meta { shift }
+sub Meta { shift }
sub Meta_ScalarKeys { @scalar_keys }
-sub Meta_TupleKeys { @tuple_keys }
+sub Meta_TupleKeys { @tuple_keys }
foreach my $key (@scalar_keys) {
*$key = sub {
@@ -28,13 +31,6 @@
};
}
-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;
@@ -58,9 +54,24 @@
};
}
+sub sign {
+ my $self = shift;
+ return $self->{'values'}{'sign'} if defined wantarray and !@_;
+ $self->{'values'}{'sign'} = ( @_ ? $_[0] : 1 );
+ return $self;
+}
+
sub all_from {
my ( $self, $file ) = @_;
+ unless ( defined($file) ) {
+ my $name = $self->name
+ or die "all_from called with no args without setting name() first";
+ $file = join('/', 'lib', split(/-/, $name)) . '.pm';
+ $file =~ s{.*/}{} unless -e $file;
+ die "all_from: cannot find $file from $name" unless -e $file;
+ }
+
$self->version_from($file) unless $self->version;
$self->perl_version_from($file) unless $self->perl_version;
@@ -191,8 +202,11 @@
my ( $self, $file ) = @_;
require ExtUtils::MM_Unix;
$self->abstract(
- bless( { DISTNAME => $self->name }, 'ExtUtils::MM_Unix' )
- ->parse_abstract($file) );
+ bless(
+ { DISTNAME => $self->name },
+ 'ExtUtils::MM_Unix'
+ )->parse_abstract($file)
+ );
}
sub _slurp {
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 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/WriteAll.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -4,9 +4,9 @@
sub WriteAll {
my $self = shift;
my %args = (
- meta => 1,
- sign => 0,
- inline => 0,
+ meta => 1,
+ sign => 0,
+ inline => 0,
check_nmake => 1,
@_
);
@@ -16,10 +16,10 @@
$self->admin->WriteAll(%args) if $self->is_admin;
if ($0 =~ /Build.PL$/i) {
- $self->Build->write;
+ $self->Build->write;
}
else {
- $self->check_nmake if $args{check_nmake};
+ $self->check_nmake if $args{check_nmake};
$self->makemaker_args( PL_FILES => {} )
unless $self->makemaker_args->{'PL_FILES'};
Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pm
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pm 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pm 2006-01-11 14:23:22 UTC (rev 1903)
@@ -1,9 +1,16 @@
package Module::Install;
+
use 5.004;
+use strict 'vars';
+use vars qw{$VERSION};
+BEGIN {
+ # Don't forget to update Module::Install::Admin too!
+ $VERSION = '0.54';
+}
-$VERSION = '0.50'; # Don't forget to update Module::Install::Admin too!
-
-die << "." unless $INC{join('/', inc => split(/::/, __PACKAGE__)).'.pm'};
+# inc::Module::Install must be loaded first
+unless ( $INC{join('/', inc => split(/::/, __PACKAGE__)).'.pm'} ) {
+ die <<"END_DIE";
Please invoke ${\__PACKAGE__} with:
use inc::${\__PACKAGE__};
@@ -12,28 +19,28 @@
use ${\__PACKAGE__};
-.
+END_DIE
+}
-use strict 'vars';
-use Cwd qw(cwd abs_path);
+use Cwd ();
use FindBin;
use File::Find ();
use File::Path ();
- at inc::Module::Install::ISA = 'Module::Install';
*inc::Module::Install::VERSION = *VERSION;
+ at inc::Module::Install::ISA = 'Module::Install';
sub autoload {
my $self = shift;
my $caller = $self->_caller;
+ my $cwd = Cwd::cwd();
+ my $sym = "$caller\::AUTOLOAD";
- 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
+ my $pwd = Cwd::cwd();
+ if ( my $code = $sym->{$pwd} ) {
+ # delegate back to parent dirs
+ goto &$code unless $cwd eq $pwd;
}
$$sym =~ /([^:]+)$/ or die "Cannot autoload $caller - $sym";
unshift @_, ($self, $1);
@@ -43,9 +50,9 @@
sub import {
my $class = shift;
- my $self = $class->new(@_);
+ my $self = $class->new(@_);
- if (not -f $self->{file}) {
+ unless ( -f $self->{file} ) {
require "$self->{path}/$self->{dispatch}.pm";
File::Path::mkpath("$self->{prefix}/$self->{author}");
$self->{admin} =
@@ -66,19 +73,20 @@
sub preload {
my ($self) = @_;
- $self->load_extensions(
- "$self->{prefix}/$self->{path}", $self
- ) unless $self->{extensions};
+ unless ( $self->{extentions} ) {
+ $self->load_extensions(
+ "$self->{prefix}/$self->{path}", $self
+ );
+ }
my @exts = @{$self->{extensions}};
-
- unless (@exts) {
+ unless ( @exts ) {
my $admin = $self->{admin};
@exts = $admin->load_all_extensions;
}
my %seen_method;
- foreach my $obj (@exts) {
+ foreach my $obj ( @exts ) {
while (my ($method, $glob) = each %{ref($obj) . '::'}) {
next unless defined *{$glob}{CODE};
next if $method =~ /^_/;
@@ -100,8 +108,10 @@
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;
+ my $base_path = Cwd::abs_path($FindBin::Bin);
+ unless ( Cwd::abs_path(Cwd::cwd()) eq $base_path ) {
+ delete $args{prefix};
+ }
return $args{_self} if $args{_self};
@@ -144,10 +154,10 @@
return $obj if $obj->can($method);
}
- my $admin = $self->{admin} or die << "END";
+ my $admin = $self->{admin} or die <<"END_DIE";
The '$method' method does not exist in the '$self->{prefix}' path!
Please remove the '$self->{prefix}' directory and run $0 again to load it.
-END
+END_DIE
my $obj = $admin->load($method, 1);
push @{$self->{extensions}}, $obj;
@@ -168,7 +178,10 @@
local $@;
my $new = eval { require $file; $pkg->can('new') };
- if (!$new) { warn $@ if $@; next; }
+ unless ( $new ) {
+ warn $@ if $@;
+ next;
+ }
$self->{pathnames}{$pkg} = delete $INC{$file};
push @{$self->{extensions}}, &{$new}($pkg, _top => $top_obj );
}
@@ -178,23 +191,23 @@
sub find_extensions {
my ($self, $path) = @_;
+
my @found;
-
- File::Find::find(sub {
+ File::Find::find( sub {
my $file = $File::Find::name;
return unless $file =~ m!^\Q$path\E/(.+)\.pm\Z!is;
return if $1 eq $self->{dispatch};
$file = "$self->{path}/$1.pm";
my $pkg = "$self->{name}::$1"; $pkg =~ s!/!::!g;
- push @found, [$file, $pkg];
- }, $path) if -d $path;
+ push @found, [ $file, $pkg ];
+ }, $path ) if -d $path;
@found;
}
sub _caller {
- my $depth = 0;
+ my $depth = 0;
my $caller = caller($depth);
while ($caller eq __PACKAGE__) {
Modified: packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pod
===================================================================
--- packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pod 2006-01-11 14:20:47 UTC (rev 1902)
+++ packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install.pod 2006-01-11 14:23:22 UTC (rev 1903)
@@ -6,8 +6,8 @@
=head1 VERSION
-This document describes version 0.50 of Module::Install, released
-December 26, 2005.
+This document describes version 0.54 of Module::Install, released
+January 11, 2006.
=head1 SYNOPSIS
@@ -15,28 +15,28 @@
# 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
+ # (The filename argument below is optional if it is placed
+ # consistently with the "name" above.)
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
+
+ requires 'Carp' => 0;
+ requires 'File::Spec' => '0.80';
+
+ build_requires 'Test::More' => '0.42';
+
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
+
+ # Do not index our example modules
+ no_index directory => 'demos';
+
+ # Auto-install all dependencies from CPAN
auto_install;
-
+
# Generate the Makefile
WriteAll;
@@ -104,14 +104,16 @@
For a B<lot> more information, and some personal opinions on the module
and its creation, see L<Module::Install-Philosophy>.
-=head1 COMMANDS
+=head1 COMMON COMMANDS
-The following are the most common commands available for use in an
-installer.
+The following are the most common commands generally used in installers.
+It is far from an exhaustive list, as many of the plugins provide commands
+to work in more details that you would normally need.
+
=head2 name
- name 'My-Module;
+ name 'My-Module';
The B<name> command is a compulsory (and generally the first) command.
@@ -120,7 +122,7 @@
=head2 all_from
- all_from 'lib/My/Module';
+ all_from 'lib/My/Module.pm';
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
@@ -128,6 +130,12 @@
extract as much metadata as possible from the Perl and POD in the
module itself.
+C<all_from> is equivalent to C<abstract_from> + C<author_from> +
+C<version_from> + C<license_from> + C<perl_version_from>.
+
+If any of these values are set already B<before> C<all_from> is used,
+they will kept and B<not> be overwritten.
+
=head2 abstract
abstract 'This distribution does something';
@@ -141,13 +149,15 @@
=head2 abstract_from
- abstract_from 'lib/My/Module';
+ abstract_from 'lib/My/Module.pm';
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)
+C<abstract_from> is set as part of C<all_from>.
+
=head2 author
author 'Adam Kennedy <cpan at ali.as>';
@@ -160,17 +170,159 @@
=head2 author_from
- author_from 'lib/My/Module';
+ author_from 'lib/My/Module.pm';
-The C<author_from> command retrievs the author from a particular
+The C<author_from> command retrieves 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 version
+
+ version '0.01';
+
+The C<version> command is used to specify the version of the
+distribution, as distinct from the version of any module within the
+distribution.
+
+Of course, in almost all cases you want it to match the version of the
+primary module within the distribution, which you can do using
+C<version_from>.
+
+=head2 version_from
+
+ version_from 'lib/My/Module.pm';
+
+The C<version_from> command retrieves the distribution version from a
+particular file contained in the distribution package. Most often this is
+done from the main module.
+
+C<version_from> will look for the first time you set C<$VERSION> and use
+the same value, using a method consistent with various other module
+version scanning tools.
+
+=head2 license
+
+ license 'perl';
+
+The C<license> command specifies the license for the distribution.
+
+Most often this value will be C<'perl'>, meaning I<"the same as for Perl
+itself">. Other allowed values include C<'gpl'>, C<'lgpl'>, C<'bsd'> and
+C<'artistic'>.
+
+This value is always considered a summary, and it is normal for authors
+to include a F<LICENSE> file in the distribution, containing the full
+license for the distribution.
+
+=head2 license_from
+
+ license_from 'lib/My/Module.pm';
+
+The C<license_from> command retrieves the distribution license from a
+particular file contained in the distribution package. Most often this is
+done from the main module.
+
+C<license_from> will look inside the POD within the file for a licensing
+or copyright-related section and scan for a variety of strings that
+identify the general class of license.
+
+At this time it supports only the 5 values mentioned above in the
+C<license> command summary.
+
+=head2 perl_version
+
+ perl_version '5.006';
+
+The C<perl_version> command is used to specify the minimum version of the
+perl interpreter your distribution requires.
+
+=head2 perl_version_from
+
+ perl_version_from 'lib/My/Module.pm'
+
+The C<perl_version_from> command retrieves the minimum F<perl> interpreter
+version from a particular file contained in the distribution package. Most
+often this is done from the main module.
+
+The minimum version is detected by scanning the file for C<use 5.xxx>
+pragma calls in the module file.
+
+=head2 requires
+
+ requires 'List::Util' => 0;
+ requires 'LWP' => '5.69';
+
+The C<requires> command indicates a normal run-time dependency of your
+distribution on another module. Most distributions will have one or
+more of these commands, indicating which CPAN (or otherwise) modules
+your distribution needs.
+
+A C<requires> dependency can be verbalised as I<"If you wish to install
+and use this distribution, you must first install these modules first">.
+
+Note that the dependency is on a B<module> and not a distribution. This
+is to ensure that you dependency stays correct, even if the module is
+moved or merged into a different distribtion, as is occasionally the
+case.
+
+A dependency on version zero indicates B<any> version of module is
+sufficient. Versions should generally be quoted for clarity.
+
+=head2 build_requires
+
+ build_requires 'Test::More' => '0.47';
+
+The C<build_requires> command indicates a build-time dependency for
+the distribution. The specification format is identical to that of
+the C<requires> command.
+
+The C<build_requires> command is distinct from the C<requires> command
+in that it indicates a module that is need B<only> during the building
+and testing of the distribution (often a period of only a few seconds)
+but will B<not> be needed after the distribution is installed.
+
+The most common case by far is for testing modules to be specified
+this way.
+
+The C<build_requires> command is used to allow the installer some
+flexibility in how it provides the module.
+
+For example, the C<include> command is sometimes used to bundle a
+small testing module into the distribution package itself rather than
+inflict another module installation on the user.
+
+In addition, when building a binary operating system packages (such as
+Debian .deb packages) from a CPAN distribution, the testing is done once
+by the packager, and so the C<build_requires> dependency can be safely
+ignored by the binary package.
+
+=head2 no_index
+
+ no_index directory => 'examples';
+
+Quite often a distrubition will provide example or testing modules
+(.pm files) as well as the actual library modules.
+
+In almost all situations, you do B<not> want these indexed in the master
+Perl packages list, you just want them along for the ride.
+
+The C<no_index> command is used to indicate locations where there might
+be non-library .pm files that the CPAN indexer and websites such as
+L<http://search.cpan.org/> should explicitly ignore.
+
+The most common situation is to ignore example or demo directories,
+but a variety of different situations may require a C<no_index> entry.
+
+The F<inc> and F<t> directories are automatically C<no_index>'ed for
+you and do not require a command.
+
=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>.
+F<META.yml> and F<Makefile> (or F<Build>) so the user can run the
+C<make>, C<make test>, C<make install> process. (or the F<Build.PL>
+equivalents).
=head1 EXTENSIONS
@@ -178,10 +330,8 @@
inherit from B<Module::Install::Base>. There are three categories
of extensions:
-=over 4
+=head2 Standard Extensions
-=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
@@ -202,7 +352,7 @@
directory. End-users can reinitialize everything and become the author
by typing C<make realclean> and C<perl Makefile.PL>.
-=item Private Extensions
+=head2 Private Extensions
Those extensions take the form of B<Module::Install::PRIVATE> and
B<Module::Install::PRIVATE::*>.
@@ -218,7 +368,7 @@
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
+=head2 Administrative Extensions
Extensions under the B<Module::Install::Admin::*> namespace are never
included with the distribution. Their methods are not directly
@@ -237,108 +387,87 @@
standard extensions) should use the B<Module::Install::Admin> module
directly. See L<Module::Install::Admin> for details.
-=back
+=head2 Extention List
-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.
+prerequisites.
=item Module::Install::Base
-The base class of all extensions, providing C<new>, C<initialized>,
-C<admin>, C<load> and the C<AUTOLOAD> dispatcher.
+The base class for all extensions
=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.
+Provides integration with L<Module::Build> via C<&Build-E<gt>write>.
=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.
+Provides the C<bundle> family of commands, allowing you to bundle
+another CPAN distribution within your distribution.
=item Module::Install::Fetch
-Handles fetching files from remote servers via FTP and HTTP.
+Handles install-time fetching of 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>,
+Provides the C<include> family of commands for embedding modules
+that are only need at build-time in your distribution and won't
+be installed.
-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.
+functionality for making B<Inline>-based modules (and cleaning up).
-However, you should invoke this with C<WriteAll( inline => 1 )> instead.
+However, you should invoke this with C<WriteAll( inline => 1 )>.
-=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.
+Provides C<&Makefile-E<gt>write> to generate a F<Makefile> for you
+distribution.
=item Module::Install::Makefile::Name
-Guess the distribution name.
+Guessing the distribution name.
=item Module::Install::Makefile::Version
-Guess the distribution version.
+Guessing 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.
+Provides C<&Meta-E<gt>write> to generate a F<META.yml> file for your
+distribution.
=item Module::Install::PAR
-Makes pre-compiled module binary packages from F<blib>, and download
-existing ones to save the user from recompiling.
+Makes pre-compiled module binary packages from the built F<blib>
+directory, and download existing ones to save recompiling.
=item Module::Install::Run
-Determines if a command is available on the user's machine, and run
-external commands via B<IPC::Run3>.
+Determines if commands are available on the user's machine, and runs
+them via B<IPC::Run3>.
=item Module::Install::Scripts
-Handles packaging and installation of scripts, instead of modules.
+Handles packaging and installation of scripts to various bin dirs.
=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.
+Functions for installing modules on Win32 and finding/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.
+Provides the C<WriteAll>, which writes all the requires files,
+such as F<META.yml> and either F<Makefile> or F<Build>.
C<WriteAll> takes four optional named parameters:
@@ -350,7 +479,7 @@
=item C<inline> (defaults to false)
-If true, invokes C<&Inline-E<gt>write> instead of C<&Makefile-E<gt>write>.
+If true, invokes C<&Inline-E<gt>write> L<Inline> modules.
=item C<meta> (defaults to true)
@@ -358,83 +487,35 @@
=item C<sign> (defaults to false)
-If true, invokes functions with the same name.
+If true, invokes C<sign> command to digitally sign erm... something.
=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.
+Package-time functions for finding extensions, installed packages
+and files in subdirectories.
=item Module::Install::Admin::Manifest
-Functions for manipulating and updating the F<MANIFEST> file.
+Package-time functions for manipulating and updating the
+F<MANIFEST> file.
=item Module::Install::Admin::Metadata
-Functions for manipulating and updating the F<META.yml> file.
+Package-time 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>.
+Package-time scanning for non-core dependencies via B<Module::ScanDeps>
+and B<Module::CoreList>.
=back
-Please consult their own POD documentations for detailed information.
+Detailed information is provided for all (some) of the relevant
+modules via their own POD documentation.
-=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>?
@@ -443,8 +524,14 @@
=over 4
+=item * Extremely easy to beginners to learn
+
=item * Does everything ExtUtils::MakeMaker does.
+=item * Does it with a dramatically simpler syntax.
+
+=item * Automatically scans for metadata for you.
+
=item * Requires no installation for end-users.
=item * Generate stock Makefile.PL for Module::Build users.
@@ -455,72 +542,131 @@
=item * Distributing scripts is easy.
-=item * Include prerequisite modules (even the entire dependency tree).
+=item * Include prerequisite modules (less dependencies to install)
=item * Auto-installation of prerequisites.
=item * Support for Inline-based modules.
+=item * Support for File::ShareDir shared data files
+
=item * Support for precompiled PAR binaries.
+=item * Deals with Win32 install issues for you.
+
=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.
+By greatly shrinking and simplifying the syntax B<Module::Install>
+keeps the amount of work required to maintain your F<Makefile.PL>
+files to an absolute minimum.
-=head2 How is this different from its predecessor, B<CPAN::MakeMaker>?
+And if you maintain more than one module than needs to do unusual
+installation tricks, you can create a specific module to abstract
+away this complexity.
-According to Brian Ingerson, the author of B<CPAN::MakeMaker>,
-their difference is that I<Module::Install is sane>.
+=head1 COOKBOOK / EXAMPLES
-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.
+The following are some real-life examples of F<Makefile.PL> files
+using B<Module::Install>.
+=head2 Method::Alias
+
+L<Method::Alias> is a trivially-small utility module, with almost the
+smallest possible F<Makefile.PL>.
+
+ use inc::Module::Install;
+ name 'Method-Alias';
+ all_from 'lib/Method/Alias.pm';
+ build_requires 'Test::More' => '0.42';
+
+=head2 File::HomeDir
+
+L<File::HomeDir> locates your home directorie on any platform. It needs
+an installed that can handle different dependencies on different platforms.
+
+ use inc::Module::Install;
+
+ name 'File-HomeDir';
+ all_from 'lib/File/HomeDir.pm';
+ requires 'File::Spec' => '0.80';
+ build_requires 'Test::More' => '0.47';
+
+ if ( $MacPerl::Version ) {
+ # Needed on legacy Mac OS 9
+ requires 'Mac::Files' => 0;
+ }
+ if ( $^O eq 'MXWin32' ) {
+ # Needed on Windows platforms
+ requires 'Win32::TieRegistry' => 0;
+ }
+
+ auto_install;
+ WriteAll;
+
=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>
+L<CPAN::MakeMaker>, L<Inline::MakeMaker>
+L<ExtUtils::MakeMaker>, L<Module::Build>
+
=head1 AUTHORS
Brian Ingerson E<lt>INGY at cpan.orgE<gt>
@@ -531,10 +677,8 @@
=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>.
+Copyright 2002, 2003, 2004, 2005, 2006 by
+Brian Ingerson, Audrey Tang, Adam Kennedy.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
More information about the Pkg-perl-cvs-commits
mailing list