CPAN

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN


2024-10-03  k  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 2.38-TRIAL

	* add documentation how to load your own CPAN/MyConfig.pm from you
	own path (thanks to Merijn Brand for asking the question)

	* try to fix tests that were failing on cpantesters

	* minor distroprefs maintenance

2024-08-30  Andreas Koenig  <andk@cpan.org>

	* release 2.37

	* unchanged from 2.37-TRIAL

2024-08-18  Andreas Koenig  <andk@cpan.org>

	* release 2.37-TRIAL

Changes  view on Meta::CPAN

	* don't use an apostrophe in names (Tony Cook)

	* docs: new FAQ about recommends and suggests

	* docs: improve the answer to FAQ "when an install fails..."

	* docs: document ftpstats_size <=0 in context of the hosts command

	* fix: ensure the config is loaded when we reach edit(); bug reported by Abe Timmerman++

	* various maintenance works on the distroprefs collection

2023-05-14  k  <andk@cpan.org>

	* release 2.36

	* unchanged from 2.36-TRIAL

2023-05-10  k  <andk@cpan.org>

	* release 2.36-TRIAL

Changes  view on Meta::CPAN

2023-04-15  k  <andk@cpan.org>

	* release 2.35-TRIAL

	* Add verify_SSL=>1 to HTTP::Tiny to verify https server identity (Stig Palmquist)

	* perl 5.37.1 had broken JSON::XS and then JSON::MaybeXS filled
	the gap, leaving this change in eventhough bleadperl and JSON::XS
	work together nicely again

	* various distroprefs maintenance

2022-04-17  k  <andk@cpan.org>

	* release 2.34

	* unchanged from 2.34-TRIAL

2022-04-03  k  <andk@cpan.org>

	* release 2.34-TRIAL

	* Consider Module::Build as undeclared prerequisite only if there
	are no configure phase prereqs declared (Dan Book)

	* tiny distroprefs maintenance

2022-03-27  k  <andk@cpan.org>

	* release 2.33

	* code is unchanged from 2.33-TRIAL

	* tiny distroprefs maintenance

2022-01-21  k  <andk@cpan.org>

	* release 2.33-TRIAL

	* in CHECKSUM_check_file run configured gpg instead of hard-coded
	"gpg" (Thanks to Tomas Hoger)

	* tiny distroprefs maintenance

2021-12-26  k  <andk@cpan.org>

	* release 2.32-TRIAL

	* Respect arguments to run() by localizing @ARGV (brian d foy)

	* improve separation of test runs from each other

	* remove dated distroprefs file

2021-12-14  k  <andk@cpan.org>

	* release 2.31-TRIAL

	* replace short id with fingerprint (thanks to Stig Palmquist for
	the suggestion)

	* new test scripe t/32pushyhttps.t

Changes  view on Meta::CPAN


	* typo fixes: "Consensus" not "Concensus" (Ricardo Signes)

	* bundled MIRRORED.BY updated with latest copy at https://www.cpan.org/MIRRORED.BY,
	to reflect the sunset of the cpan mirror network (Karen Etheridge)

	* Typo fix: s/SQLLite/SQLite (Samanta Navarro)

	* testfix: replace sks-keyserver with pgpkeys.eu

	* tiny distroprefs update

2021-11-23  k  <andk@cpan.org>

	* release 2.29

	* disambiguate the call to gpg --output by adding --verify; thanks
	to Stig Palmquist for the suggestion

	* replace die() with mydie() in three spots

Changes  view on Meta::CPAN


	* release 2.28-TRIAL

	* applied pull request "YAML modules default for $LoadBlessed
	was changed to false" by Tina Müller

	* tiny fix on top of that fix: avoid early return by Andreas König

	* tiny typo fixes in FTP.pm and FirstTime.pm

	* a bunch of distroprefs maintenance activities

	* address #129979: s/Devel::DistnameInfo/CPAN::DistnameInfo/;
	thanks to Petr Pisar for reporting

2019-07-03  k  <andk@cpan.org>

	* release 2.27

	* stable release, no functional change compared to 2.27-TRIAL2

	* updated public key for PAUSE in the file PAUSE2021.pub

	* small additions to distroprefs, to the Makefile.PL, and to the
	MANIFEST

2019-06-09  k  <andk@cpan.org>

	* release 2.27-TRIAL2

	* bugfix: omit the new POSIX::setsid call and the waitpid with
	WNOHANG on Windows

	* bugfix: the signalhandler has to kill the new process group

Changes  view on Meta::CPAN

	a test can kill the process group that CPAN.pm is running in.
	Learned from experience with testing VIZDOM/DBD-JDBC-0.71.tar.gz

	* fix plugins: all early returns from all methods, that are
	accessible for plugins, now call the post* plugins

	* new question answered in the FAQ: "How can I switch to sudo
	instead of local::lib" (thanks to Amos Bird for asking the
	question on irc)

	* plenty of new and updated distroprefs documents, among which are
	some important ones to prevent Module::AutoInstall from switching
	to CPANPLUS and taking over (and harming) the build

2019-03-19  k  <andk@cpan.org>

	* release 2.26

	* testfix release, no functional change

	* 97-run.t is now skipped when test is run by root user because
	perldoc often fails for root user (thanks to Binarus for
	reporting)

	* small additions to distroprefs and to the Makefile.PL

2019-03-03  k  <andk@cpan.org>

	* release 2.25

	* two weeks after the TRIAL release cpantesters have produced 298
	pass and 2 fail reports on 108 different configurations; the two
	fails are outliers I don't understand

	* no functional change over 2.25-TRIAL; only a couple in the
	distroprefs directory which is not used per default

2019-02-16  k  <andk@cpan.org>

	* release 2.25-TRIAL

	* fix: Avoid a warning when prompting install_help intro (Nicolas
	R/atoomic)

	* testfix: load the tested module early, before juggling with @INC

	* testfix: replace an exec with system and exit (greetings to Windows)

	* two more distroprefs lines

2019-02-14  k  <andk@cpan.org>

	* release 2.24-TRIAL

	* fix: set internal error state on writemakefile=NO in a rare case
	without any output

	* test fix: avoid a so far unreflected dependency on perldoc

	* a few more distroprefs

2019-02-10  k  <andk@cpan.org>

	* release 2.23-TRIAL

	* fix: when option cleanup_after_install is active, prevent
	rerunning make install after a cleanup; allow it only with the
	help of force; also prevent that it is triggered too early

	* fix: address #121162: support distroprefs for install.env

	* fix: the option h on cpan script now really ignores all other
	options and arguments

	* fix: Local::Null::Logger on cpan script did not honour
	CPANSCRIPT_LOGLEVEL

	* address #122520: exit 1 on unknown options on cpan script

	* address #94941: refuse to generate reports with CPAN::Reporter

Changes  view on Meta::CPAN

	Net::Ping

	* portability fix: ensure that Compress::Zlib supports gzopen()

	* internal fix: never overwrite internal attribute CALLED_FOR (no
	known user-relevant implications)

	* tiny test fixed uncovered by cpantesters, various tiny typo
	corrections

	* a couple of new and updated distroprefs files

2018-12-23  k  <andk@cpan.org>

	* release 2.22

	* one week after the TRIAL release cpantesters have produced 306
	pass and 0 fail reports on 157 different configurations

	* no functional change over 2.22-TRIAL; only one change in the
	distroprefs directory which is not used per default and a minor
	change in the Makefile.PL to ensure that the signature for the
	tarball is produced with the current version of Module::Signature.

2018-12-16  k  <andk@cpan.org>

	* release 2.22-TRIAL

	* fix: erroneous propagation from build_requires to requires
	(Andreas Koenig)

Changes  view on Meta::CPAN


	* fix: the single blank line output that initializing CPAN does
	when it's not having to report anything (Achim Gratz)

	* doc fix: Correct spelling of Perl 5 command-line switch (James E
	Keenan)

	* doc fix: clarify use of pop/splice in the manpage of the
	Specfile plugin (Andreas Koenig)

	* a tiny amount of new and updated distroprefs files

2018-09-22  k  <andk@cpan.org>

	* release 2.21-TRIAL

	* Avoid hash slice autovivification (Reini Urban)

	* make chdir argument always stringified (Reini Urban)

	* support JSON::PP as fallback for `reports` command when no YAML

Changes  view on Meta::CPAN

	* address #124726: check for having EEXIST before using it (thanks
	to Sergey Aleynikov for debugging)

	* fix an unini warning from recompile() (thanks to frederick for
	reporting)

	* fix recently introduced bug: isa_perl() returns perl version
	again and a test is added to ensure that (thanks to frederick for
	reporting)

	* a modest amount of new, imported and updated distroprefs files

2017-11-26  k  <andk@cpan.org>

	* release 2.20-TRIAL

	* bugfix #123691: fix wrong wording of result message when r
	command hits an empty set (Thank to lorenzo taviani for reporting)

	* bugfix: remove spurious .= operator where an ordinary assignment
	was intended (Andreas Koenig)

Changes  view on Meta::CPAN

	* improve robustness when yaml files cannot be loaded

	* bugfix #121914: cpan client may fail when something is
	both recommended AND required (Thanks to Sergey Aleynikov for the
	report)

	* package the PAUSE2019.pub public key for signatures

	* bugfix on cpan script regarding -x option (H.Merijn Brand)

	* couple of updates on distroprefs and minor fixes

2017-03-30  k  <andk@cpan.org>

	* release 2.18-TRIAL

	* inject PERL_USE_UNSAFE_INC=1 also in "install" (Graham Knop,
	Leon Timmermans, Andreas Koenig)

	* bugfix: address #120781; protect circular Bundle definitions
	from deep recursion (Andreas Koenig)

	* various distroprefs files updated

2017-02-16  k  <andk@cpan.org>

	* release 2.17-TRIAL2

	* bump version number for CPAN/Distribution.pm

2017-02-15  k  <andk@cpan.org>

	* release 2.17-TRIAL

Changes  view on Meta::CPAN

2017-02-14  k  <andk@cpan.org>

	* release 2.16

	* four weeks after the TRIAL2 release cpantesters have produced
	392 pass and 5 fail; by my estimation the fails are two bugs in
	the test suite: (1) insufficient rubustness against make -j and
	(2) insufficient robustness against missing unzip program; both
	will be targeted at a later date

	* otherwise no functional change; only changes in the distroprefs/
	directory (which is not used per default) and minor changes to
	Makefile.PL and t/97*.t

2017-01-16  k  <andk@cpan.org>

	* release 2.16-TRIAL2

	* release 2.16-TRIAL (had a broken manifest/signature file)

	* Adjust test 97-return_values.t to survive the removal of "."

Changes  view on Meta::CPAN

	Koenig)

	* partially address #82295: improve diagnostics (Andreas Koenig)

	* introduce new config variable cleanup_after_install: helps
	keeping build directory small (Andreas Koenig)

	* adopting changes from bleadperl related to removal of "." from
	@INC (Tony Cook)

	* distroprefs minor updates

2016-07-17  k  <andk@cpan.org>

	* release 2.15-TRIAL

	* bugfix #115734 App::Cpan Installing from cwd broken (Boutros Lab
	  Software, Andreas Koenig)

	* bugfix #115786 App::Cpan Can't locate object method "inst_file" via
	  package "AAA::Demo" (dmitryb, Andreas Koenig)

	* bugfix #115340 recursive dependencies (Father Chrysostomos, Andreas Koenig)

	* bugfix #110833 ftp proxy (Father Chrysostomos, Andreas Koenig)

	* distroprefs a handful of updates

2016-06-25  k  <andk@cpan.org>

	* release 2.14

	* three weeks after the trial release; cpantesters have generated 383
	passes, no fail

	* no changes except for a few in the distroprefs/ directory which do not
	count because it is not used per default

2016-06-04  k  <andk@cpan.org>

	* release 2.14-TRIAL

	* Fix failing tests on Windows (hopefully); tested on my i5-3317U
	notebook with Strawberry 5.24 and HARNESS_OPTIONS=j3: 104 wallclock secs

	* set SIGWINCH to IGNORE only when the key WINCH exists in %ENV (avert

Changes  view on Meta::CPAN

	* release 2.06-TRIAL

	* lazy load CPAN::Meta::Requirements (David Golden)

	* fix $rtt handling in App::Cpan (Peter Martini)

	* bump CPAN::Meta::Requirements requirement (Karen Etheridge)

	* fix unini warning in App::Cpan (mudler)

	* tiny distroprefs fixes (Andreas Koenig)

	* remove beta warning from distroprefs documentation (Andreas Koenig)

	* do not check recursion on optional dependencies (Andreas Koenig)

	* address rt.cpan.org #95271: sanity check META.yml to contain a hash
	(Alexandr Ciornii, Andreas Koenig)

2014-04-18  k  <andk@cpan.org>

	* release 2.05

Changes  view on Meta::CPAN

	* address #91706 and #86915: the 'force install' bug and the endless
	loop bugs reported in the two tickets are fixed (joined forces)

	* new configure option 'use_prompt_default' (David Golden)

	* add new dummy distros OptionalPrereq and CircularPrereq for testing
	recommends/suggests support

	* experimental recommends/suggests support (David Golden, Andreas Koenig)

	* enable hiding of directories in the distroprefs tree (suggested by
	Slaven Rezić)

2013-09-15  k  <andk@cpan.org>

	* release 2.03-TRIAL

	* load META.yml not META.json (Tatsuhiko Miyagawa)

	* support numerics in cpan IDs (Tatsuhiko Miyagawa)

Changes  view on Meta::CPAN

	* release 2.02-TRIAL

	* the production of META.json was missing in 2.01

2013-06-22  Andreas Koenig  <k@UX31A>

	* release 2.01-TRIAL

	* add binmode in two places in CPAN::Tarzip (Dave Saville via RT #86328)

	* make distroprefs tolerant against missing prefs dir (akoenig)

	* regain 5.6.2 compatibility (akoenig)

	* add PAUSE key up to 2015 (akoenig)

2013-06-18  Andreas Koenig  <k@UX31A>

	* Use CPAN::Mirrors correctly (brian d foy)

	* Add default_mirror(), clean up docs a bit (brian d foy)

	* allow subdirectories in distroprefs (Alexandr Ciornii)

	* www.cpan.org is now the default CPAN mirror (David Golden)

	* Adds recommends_policy and suggests_policy to support recommended and
	suggested prerequisites (David Golden; incomplete because partially
	reverted)

	* Adds recommends_policy and suggests_policy to support (David Golden;
	incomplete because partially reverted)

Changes  view on Meta::CPAN


	* RT#83042 workaround for current circular dependency in CPANPLUS and
	CPANPLUS::Dist::Build

2012-10-16  Andreas Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.99_51

	* RT #79969: fix incompatibilities with VMS (Craig Berry)

	* bugfix: distroprefs of type pl/args were dropped for 'perl Build.PL'

	* RT #73742: watch build_dirs and react calmly when one has gone lost

2011-08-07  Andreas J. Koenig  <andk@cpan.org>

	* release 1.9800

	* RT #69463: fix memory leak in CacheMgr (Serguei Trouchelle)

2011-06-27  Andreas J. Koenig  <andk@cpan.org>

Changes  view on Meta::CPAN


	* add support for (and prerequisite on) HTTP::Tiny; also adds
	prerequisites for MIME::Base64 and Digest::MD5 to support proxy
	authentication (David Golden)

	* automatic mirror selection now returns only http mirrors (David
	Golden)

	* add 'atexit' option for cache scanning and cleanup (David Golden)

	* now with 421 distroprefs files (but a good portion of them seems
	outdated)

2010-10-26  Andreas J. Koenig  <andk@cpan.org>

	* release 1.94_62

	* address RT #62064: build_requires_install_policy set to "no" did not
	work correctly (reported by Xavier Bergade)

	* address RT ##55091: don't ask the proxy credentials if proxy_user

Changes  view on Meta::CPAN

	* Fixed rt.perl.org#72362 (CPAN ignoring configure_requires).
	  Also fixed (MY)META.yml processing to always prefer
	  Parse::CPAN::Meta, if available.  Reported by Joshua B Jore
	  and patched by David Golden

	* Fixed rt.perl.org#72348 (missing CPAN::HandleConfig::output);
	  Reported by Joshua B Jore and patched by David Golden

	* Quieter user interface: made lots of '$module missing' type
	  warnings only warn once; eliminated 'no YAML' warnings for
	  distroprefs if there are no distroprefs.

	* now with 359 distroprefs files

2010-01-14  Andreas J. Koenig  <andk@cpan.org>

	* release 1.94_54

	* David Golden fixes several recent regressions related to external
	transport tools (ncftp, lynx, curl, etc)

	* fixed quoting for downloading into directories containing
	whitespace (reported by Jarkko Hietaniemi)

Changes  view on Meta::CPAN


	* new config variable version_timeout used in
	CPAN::Module::parse_version() (Jerry D. Hedden)

	* streamline first time configuration to be more intuitive and less
	noisy (David Golden)

	* bugfix: eexpect in mode=anyorder with reuse=1 did not consume the
	output (Andreas Koenig)

	* now with 355 distroprefs files

2009-09-14  Andreas J. Koenig  <andk@cpan.org>

	* release 1.94_51

	* bugfix: wrong diagnostic message on old Archive::Tar

	* test fix: additional quoting in test t/31sessions.t for systems where
	cwd contains whitespace (bug reported by Curtis Jewell)

Changes  view on Meta::CPAN

	* this is release 1.94

	* since 1.93_54 one test was changed that had been failing when
	Text::Glob was not installed.

	* since 1.93 (which was released 2008-10-12) changes are documented in
	the release notes for 1.93_5[1234] below. Here is a quick summary:
	SQLite dependency tracking fixed; packaging works around bugs in Solaris
	tar; fixed ls on subdirectories; tested with YAML::XS; support for
	MYMETA.yml; CPAN.pm file split into separate files; mega doc/English
	corrections; negated match variables in distroprefs

	* thanks to Gisle Aas, Tom Christiansen, Alexandr Ciornii, Nicholas
	Clark, Jan Dubois, David Golden, Randy Kobes, Olivier 'dolmen' Mengué,
	Steffen Müller, Slaven Rezić, Michael Schwern, Gábor Szabó, Frank
	Wiegand and many others for providing patches, bugreports and valuable
	feedback.

2009-05-07  Andreas J. Koenig  <andk@cpan.org>

	* this is release 1.93_54 (another release candidate for 1.94, I had

Changes  view on Meta::CPAN

	pretty id ( eg. USERID/Foo-<TAB> )

	* experimental support for deprecated.pm only enabled on perl 5.11

	* address #37531: ls on subdirectories did not work as one would
	expect (reported by Slaven Rezic)

	* address #28438: do not create the author directory if we have a file
	URL (reported by Schwern)

	* all distroprefs now more YAML compliant

	* tested with YAML::XS and documented as such

	* patch by Gisle Aas to catch not compiling regexps in distroprefs

	* patch by David Golden to support MYMETA.yml

	* address #44549: support users who do not want to connect to the
	internet but still configure us to run in an intranet or with a minicpan
	on the local disk (reported by Nicholas Clark)

2009-02-28  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* this is release 1.9304 (same as 1.93_03, just version changed to mark

Changes  view on Meta::CPAN

	not directly relevant to CPAN.pm. (David Golden and Andreas Koenig)

	* mega doc and English patch by Tom Christiansen and David Golden

	* chmod the build directories to be world readable (suggested by Slaven Rezic)

	* fix broken perldoc command (Randy Kobes)

	* Use Parse::CPAN::Meta not Parse::Metayaml (Steffen Mueller)

	* Negated match variables in distroprefs (Gisle Aas)

	* new batch signing key PAUSE2009.pub included

  * this is release 1.93_03

2009-02-01  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* this is release 1.93_03 (preparation of stable 1.9304)

	* more backporting from trunk

Changes  view on Meta::CPAN

2008-10-13  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* this is release 1.9301

	* tests, as always, badly written tests! (RT #39994, #40001)

2008-10-12  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* this is release 1.93

	* no changes against 1.92_66 except in the distroprefs directory (which
	is not used by default)

	* highlights include:

	* selection of displayed modules during the 'r' command more intuitive
	(at the same time order of modules changed because we run two passes)

	* several relevant bugfixes, including one related to security
	(setting $Archive::Tar::CHMOD=0 to prevent undesired world writable
	directories and files)

Changes  view on Meta::CPAN


2008-09-14  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_65 (aiming at 1.93 once again)

	* address #39243: signature test now skips when no SHA module available
	(requested by M Schwern)

	* adjust skip message formatting to Test::Harness 3.13 strictness

	* now with 344 distroprefs files

2008-09-03  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_64

	* workaround for tarballs containing a pax_global_header comment
	(reported by David Cantrell and Jan Dubois)

	* set the PERL5LIB also on the look command (suggested by Slaven Rezic)

Changes  view on Meta::CPAN


	* allow more than 100 commands in history (Rodrigo Marchant)

	* preserve modification and owner bits when overwriting FTPstats.yml
	(Slaven Rezic)

	* address #32841: Location of .cpan Inconsistent on Mac OS X (David Wheeler)

	* updated the FAQ about choosing mirror sites

	* now with 343 distroprefs files (the curve is flattening)

2008-06-19  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_63

	* The CPAN::PERL5INC experiment didn't work and all related code was
	removed. Because PERL5OPT "-M" switches are resolved after command line
	"-M" switches, CPAN::PERL5INC sets @INC too late for any PL code or
	tests that load prerequisite modules with "-M" on a command line.

	* fixed some localization bugs seen on 5.6.2 (David Golden)

	* added 'perl5lib_verbosity' config option to silence 'added to
	PERL5LIB' messages (David Golden)

	* now with 340 distroprefs files

2008-05-23  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_62

	* fixed PERL5INC tempfile leak when running without lock file
	(David Golden)

	* better prereq and distropref disabled support under build_dir_reuse
	(David Golden)

	* distropref cache won't persist across sessions with build_dir_reuse
	(David Golden)

	* patch from chocelateboy: found a FileHandle->new with an argument

	* fix "exiting subroutine via last" bug (patch from Gisle Aas)

	* finishing the CPAN::Distroprefs refactoring (Hans Dieter Pearcey)

	* silence noisy tests

	* now with 320 distroprefs files

2008-04-25  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_61

	* regain 5.005 compat (Slaven Rezic)

	* fixed PERL5INC/YAML::Syck tainting @INC issue (David Golden)

	* major distroprefs code refactoring into new module CPAN::Distroprefs,
	adding tests (Hans Dieter Pearcey)

	* cpan script upgraded to 1.53 (brian d foy)

	* rework the whole experimental "feature" thingie since the META.yml
	spec was fixed

	* address #30464 (imacat): small refactoring and extend the loop
	protection from install only on make_test

	* repair broken smoke command

	* now with 309 distroprefs files

2008-03-26  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_60: gearing towards a new stable release

	* minor bugfixing

	* documented that the support for optional_features is not yet ready for
	prime time.

	* now with 297 distroprefs files

2008-03-16  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_59: new distroprefs parameter match/env; bugfixing

	* address #34104: add match/env into the distroprefs mix (suggested by
	Slaven Rezic)

	* add reset_tested() function to forget distributions previously tested
	in a session, which resets the list of directories added to PERL5LIB
	(David Golden)

	* address #34062: regain lost 'cpan .' command (reporter Slaven Rezic)

	* shut up "exited subroutine via last" warning in an expect loop

Changes  view on Meta::CPAN

	do not install can continue to work as before this module was introduced

	* new protection against subtly broken META.yml files (testcase provided
	by Form-Processor-Model-DBIC-0.01)

	* cleanup some files on whitespace, notably CRLF files that could
	confuse some svn clients

	* experimental support for optional_features in META.yml (pre-alpha)

	* now with 287 distroprefs files

2008-03-12  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_58: bugfix

	* new module CPAN::PERL5INC repleaces the current PERL5INC stuff for
	larger numers of directories involved

	* force pragma can now override the effect of 'disabled' in distroprefs
	(David Golden)

	* speed up find_perl by caching absolute path in $^X (discovered by
	Slaven Rezic)

	* new FAQ entries about the build directory

	* now with 284 distroprefs files

2008-02-27  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_57: getting closer to 1.93

	* address #32823: fix a (rare) case where the make_args were appended to
	the commandline on the call to ./Build (reported by David Golden and
	Michael Schwern)

	* applied a patch from Randy Kobes to update index before a query when

Changes  view on Meta::CPAN

	data through to curl (suggestions by kevinarpe)

	* new diagnostics when CPAN.pm is required a second time. Introduce a
	sleep period when it is required several times because then a loop might
	be the cause and this might provide a clue to the user.

	* address #32525: when running the 'r' command, try to display the
	module name that is best suited for the distribution name (suggestion
	and prove of concept implementation by imacat)

	* speed up distroprefs on eexpect/anyorder by reducing timeout to 1
	second and retrying until full timeout reached

	* address 32923: allow =head1 CONTENT without regard to case (David
	Wheeler)

	* Now with 277 distroprefs files

2008-02-04  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_56: unstable release both bugfixes and new features

	* addressing #32841: fixing wrong usage of HOME vs File::HomeDir spotted
	by Randy Kobes based on a bugreport by David Wheeler; with help from
	Schwern and Adam Kennedy and I'm sure this will need more iterations.

	* added 'trust_test_report_history' config option; when set, CPAN will

Changes  view on Meta::CPAN


	* protect against the infamous bug in Safe 2.13 that causes data
	corruption and ugly error messages like unknown method version::("")) or
	some such

	* let people disable the direct usage of gzip and tar by supplying a
	whitespace config variable

	* improvements to PPM support by Randy Kobes

	* now with 274 distroprefs files

2007-12-30  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_55: unstable release bugfix

	* address #32003: if untar breaks we broke too much of the session

	* regain 5.6.1 compatibility in the testsuite

	* improve diagnostics in t/31sessions.t to understand better what's up
	in #31750

	* fail gracefully on distroprefs parse error

	* now with 267 distroprefs files

2007-12-27  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_54: unstable release bugfix

	* document how redirection in the shell works

	* skip distros in the smoke command when they match m|/Bundle-| (quick
	hack suggested by David Golden)

	* address #31825: wrong location of MyConfig.pm in Config.pm on OS X
	(patch by Michael Stillwell)

	* address #31750: fix the logic when Compress::Zlib is not installed,
	add a test to verify it

2007-12-10  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_53: unstable release low priority

	* now with 262 distroprefs files

	* fix the bug where CPAN.pm refused to upgrade to Test::Harness 3
	because Test::Harness was too old (Eric Wilhelm)

	* skip tests when YAML too old

	* default changed in Firsttime: prefer the conservative choice to NOT
	use build_dir_reuse

	* improve diagnostics when Tarzip believes that it must give up

Changes  view on Meta::CPAN

	* replaced all occurrences of $^X with findperl (bug reported by Slaven Rezic)

	* several of many suggestsions by Mark Overmeer to improve the style of
	the dialoges. There's more stuff left in several tickets...

	* address #29754: Lockfile problem with perl 5.005_05 (Slaven Rezic)

	* let containsmods cache negative results: Slaven Rezic found out that
	distros without modules can be a performance killer without this measure

	* no changes in the distroprefs directory

2007-11-04  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92_51: unstable release (I'll make a 1.9204 soonish)

	* bugfix addressing #30464 endless loop with prereq resolution (Slaven
	Rezic) [untested!]

	* applied a patch by Rich Paul to support redirection and pipes on shell
	commands [undocumented!]

Changes  view on Meta::CPAN

	* replaced all occurrences of $^X with findperl (bug reported by Slaven Rezic)

	* several of many suggestsions by Mark Overmeer to improve the style of
	the dialoges. There's more stuff left in several tickets...

	* address #29754: Lockfile problem with perl 5.005_05 (Slaven Rezic)

	* let containsmods cache negative results: Slaven Rezic found out that
	distros without modules can be a performance killer without this measure

	* now with 242 distroprefs files

2007-09-28  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.9203: stable release with one distroprefs file fixed

	* release 1.9202: stable release

	* bugfix: don't try to make/Build when Makefile/Build.PL fails to
	generate a Makefile/Build (David Golden)

	* now with 217 distroprefs files

2007-09-27  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.9201: stable release

	* bugfix: remove a compile time has_inst call from CPAN::Admin which
	could cause a hang (Mike Brudenell, Slaven Rezic)

	* address #29606: only warn once when we ignore locking issues (Steve Cooper)

	* add CPAN::Reporter::* to the packages needed for "reload cpan" (David
	Golden)

	* now with 214 distroprefs files

2007-09-15  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.92: stable release

	* fixed bug that kept "?" from being interpreted as "help" command
	(David Golden)

2007-09-15  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.91_55: stable release candidate II

	* Update one test to match the output of Test::Harness 2.99_02

2007-09-14  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.91_54: stable release candidate

	* highlights of 51-54: CPAN::Reporter support for reports on separate
	phases; support for configure_requires in META.yml; now with 207
	distroprefs files; see below for details.

	* firsttime dialog now defaults prefer_installer to "MB" and offers a
	third option (RAND) for a random choice.

	* code beautification complete overhaul, whitespace only (Florian
	Ragwitz)

	* after a fail introduce a hint for using the reports command (suggested
	by Gabor Szabo)

Changes  view on Meta::CPAN

	broke on some older bleadperls between 23000 and 25000

	* applied a patch by Jim Cromie to explicitly spit out the unparseable
	and zero version numbers

	* changed CPAN::Version to treat sequences of more than on trailing ".0"
	in version strings as insignificant. This was relevant for
	ANDYA/Set-IntSpan-Fast-v1.0.tar.gz. Bugreport about version.pm is
	https://rt.cpan.org/Ticket/Display.html?id=28206

	* now with 175 distroprefs files covering over 200 distributions

2007-07-07  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.91_51:

	* support configure_requires according to the META.yml spec

	* support distroprefs for all three types of dependencies:
	configure_requires, build_requires, requires

	* new experimental commands C<recent> and C<smoke>

	* increase the timeouts for the tests for really slow machines

	* lots of new, updated, and consolidated distroprefs files

	* tiny fix for very rare cases of wrong parsing of degenerate version
	numbers in CPAN::Version (thanks to Julian Mehnle for the report)

	* support for artistic license "2" (Allison Randal)

	* fix color ornamenting to always end before a newline not after it to
	prevent spurious reset escape sequences at the beginning of the next
	line (discovered by Gregor Goldbach and Slaven Rezic)

Changes  view on Meta::CPAN

	* test fix: on failure use diag(STDERR) instead of mydiag (STDOUT)

2007-04-19  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.91

	* new command C<reports> shows the reports sent to cpantesters

	* bugfix: dot distros did not work with Module::Build

	* several new and updated distroprefs

	* bugfixes in testscripts (spotted by Slaven Rezic, Nigel Horne, David Cantrell)

	* bugfix: Time::HiRes not a prereq anymore (Joshua ben Jore)

	* speedup of the cleanup process in the build directory: do not compute
	the size of directories to be deleted

	* bugfix: scripts installation was broken

Changes  view on Meta::CPAN

	compatibility

2007-04-07  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.90

	* Changes against 1.88:

	* enhanced integration of CPAN::Reporter

	* distroprefs subsystem to store preferences on a per-distro basis
	independently of the support provided by the individual distributions

	* Support for CPAN::SQLite to gain significant memory savings and speedup

	* new commands upgrade, is_tested, install_tested

	* improved visual navigation by colorized output and improved diagnostic
	messages

	* improved installation support for scripts without tarball

Changes  view on Meta::CPAN

	* release 1.88_78: stable release candidate VI

	* set PERL5_CPANPLUS_IS_RUNNING (desparately; see RT#23735)

	* prevent installation attempts for files named *.patch (inspired by
	David Cantrell)

	* allow refs in @INC by Nicholas Clark

	* applied a patch by Slaven Rezic to support match/perlconfig in
	distroprefs covering %Config::Config

	* hint the Win32 users how to install nmake with YVES' download script

	* catch typos in distroprefs that are not yet caught by kwalify

	* several new and updated distroprefs files

	* integrate brian d foy's cpan script from his 1.53 release

	* address RT#25223 (JDHEDDEN) small fix to the cpan script

	* fix installation of scripts which was broken

2007-02-19  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.88_77: stable release candidate V

Changes  view on Meta::CPAN


	* make t/31sessions.t more verbose in order to determine the problem it
	has on testers machines

2007-02-15  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.88_74: stable release candidate II

	* fix t/31sessions.t to run without Archive::Tar installed

	* updated and new prefs files

2007-02-13  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.88_73: quick small fixes, stable release candidate I

	* Win32 fix for 31sessions.t by Randy Kobes

	* flush non-archival files when the mirror changes (thanks for the
	suggestion to Adam Kennedy)

	* fix recursion detection logic: when we have the module and it
	satisfies the minimum required, do not take its recursive dependencies
	into account.

	* fix bug in getting PREREQ_PM out of Makefile when a value in PREREQ_PM
	is undef (uncovered by Template::Plugin::Format::Number)

	* couple of distroprefs files

	* in the tests, when using POSIX::_exit make sure the 1..0 is flushed out

2007-01-31  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.88_72: quick small fixes

	* fix completion for the two commands "failed" and "fforce"

	* fix support for test/args in distroprefs

	* stop scanning build_dir for sizes without lock because we are not
	cleaning up anyway

	* disable broken Archive::Tar 0.23

	* mitigate a too sharp test in 31sessions.t

2007-01-27  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* release 1.88_71: this does not yet qualify as a release candidate for
	1.89 because it incorporates a major bugfix; but otherwise I think this
	is feature complete for a release

	* document treatment of requires and build_requires declarations

	* integrate the distroprefs README into the manpage

	* introduce negative distroprefs caching for the current command

	* new commands C<is_tested> and C<install_tested> (inspired by Ilya
	Zakharevich)

	* fix completion bug with notest and fforce pragma

	* delete distro objects in memory that are cleaned up by the CacheMgr

	* fix a bug that only fired when prefer_installer was set to MB but
	Module::Build was not yet installed

Changes  view on Meta::CPAN


	* new fforce pragma ("fortissimo") that forces at 'get' level and then
	continues to the given command

	* persistence via 'build_dir_reuse' improved: also maintain the
	is_tested record between sessions

	* documentation and tests for the new force pragmas and for session
	persistence

	* support for 'applypatch' via distroprefs

	* improved SQLite support for TAB completion courtesy Randy Kobes

	* lots of new and updated distroprefs files

	* Devel::Cover working again

	* address #24114 (Steve Peters): do not fail due to missing YAML

	* bugfix: handle gracefully when a build dir disappears

	* bugfix: improve dependency checking if a module has no version at all

	* bugfix: when a "goto" object is installed remove it from the queue

Changes  view on Meta::CPAN

	* bugfix: test suite runnable again without Expect

2006-12-18  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* release 1.88_66

	* bugfix: protect FTPstats.yml from being truncated

	* bugfix: now really remove the dependency on YAML::Syck in the Makefile

	* distroprefs: deprecate expect-in-any-order and replace with eexpect

	* distroprefs: attach a Distrostatus object to disabled distros in
	$self->{unwrapped}

	* distroprefs: new keyword 'commandline'

	* sqlite: deprecate config variable sqlite_dbname

	* sqlite: make Bundle::Localbundle work

2006-12-09  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* release 1.88_65

	* make CPAN::SQLite configurable and tweak a few places to help SQLite

Changes  view on Meta::CPAN

	* fix dependency checking after make test: it did not work well together
	with a distropref-goto

2006-12-04  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* release 1.88_64

	* more of Randy Kobes' patches for CPAN::SQLite applied. Things start
	working.

	* CPAN::Kwalify as a bridge to Kwalify.pm verifies all distroprefs to be
	syntactically correct

	* address #23742: fix unini warning

	* another patch from Randy Kobes to canonize directory names

	* bugfix: force install of a local dot distro was doing weird things

	* bugfix: goto did not normalize the distro name

Changes  view on Meta::CPAN

	* the prereq check under the Module::Build installer is now performed by
	reading the _build/prereqs file instead of calling Module::Build
	directly. (Suggested by Ken Williams)

	* cleanup of the cache directory is now disabled for batch jobs;
	documentation is updated about the lock file the shell is holding

	* now setting the environment variable PERL5_CPAN_IS_RUNNING; tentative
	patch for Module::Install in my CPAN homedirectory

	* support for fallback Data::Dumper and Storable files in the prefs_dir
	directory when YAML is not available (alpha)

	* new support for cpanconfig/check_sigs in distroprefs to temporarily
	switch signature checking on or off. See distroprefs/00.README for
	details and distroprefs/JESSE.HTTP-Server-Simple.yml for an example (alpha)

	* new keyword "goto" in distroprefs to nominate a delegate distro. See
	distroprefs/00.README for details and distroprefs/ABH.XML-RSS.yml for an
	example (alpha)

	* small portions of patches from Randy Kobes applied to support
	CPAN::SQLite (pre-alpha; see Makefile.PL how to invoke)

2006-11-13  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* release 1.88_62

	* bugfix in randomize_urllist introduced in 1.88_61: setting the value
	with C<o conf randomize_urllist> was broken

	* disallow C<o conf {commit,defaults}> in degraded mode

	* more programming tips in the manpage from Ilya Zakharevich

	* sanity check on path names with tilde suggested by Adam Kennedy

	* change the prettyprint of arrays to accommodate the user of splice

	* introduce C<expect-in-any-order> to distroprefs

	* add a new testdistro CPAN-Test-Dummy-Perl5-Make-Expect

	* make the 00.README in the distroprefs directory more like a manpage
	for later inclusion into the CPAN.pm manpage

	* determine if a patch needs -p0 or -p1

	* fix downloads with lynx when the other end sends an unusual error page

2006-11-10  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* release 1.88_61

Changes  view on Meta::CPAN


	* Large chunk of documentation added about the many 'o conf' variants
	(after a smart kick From Marc Lehmann)

	* fix a bug reported by Sujith Emmanuel to survive when urllist contains
	illegal URLs

	* new bundle Bundle::CPANxxl with CPAN::Reporter, Module::Signature,
	Expect, etc.

	* many new sample distroprefs files (alpha)

	* new keyword "disabled" in distroprefs (alpha)

	* sanitize the behaviour after an Expect.pm timeout (alpha)

	* make running concurrent batch jobs safe (alpha)

	* lock the shell more granular to let many CPAN shells coexist (alpha)

	* several small bugfixes to the persistent distro state feature
	introduced in 1.88_58 (alpha)

Changes  view on Meta::CPAN


	* release 1.88_57

	* address #22396: add a diagnostic warning at cleanup time when people
	have changed their config but forgot to safe it (Tina Mueller, Alberto
	Manuel Brandao Simoes).

	* workaround for a weird interaction with a dated version.pm in
	a probably dated Module::Build and UNIVERSAL::VERSION.

	* document the config variables that are overridable via distroprefs.

	* add prefer_installer to the list of overridable config variables.

	* new and updated prefs files for DBI, Coro, etc.

2006-10-22  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* release 1.88_56

	* add the ability to patch random distros both with local patches and
	with patches from CPAN. Demo patches to UNIVERSAL::require, Expect,
	Math::Pari, etc. are uploaded to my CPAN directory, corresponding YAML
	files are in the distroprefs directory. Heavily inspired by an old patch
	from Ilya Zakharevich.

	* fixes from Ilya Zakharevich to the PERL5LIB environment handling for
	not yet installed modules from a 3 year old patch.

	* work around a Module::Build issue with Build.PL files that are
	subclassing Module::Build like Error.pm and HTML::Mason. For now we fall
	back to the META.yml file. Needs further discussion with Module::Build
	people.

	* in the distroprefs system allow for YAML files with an arbitrary
	number of sections.

	* document how to integrate local distribution directories into the CPAN
	shell. See section 'Integrating local directories' in the manpage.

	* reporting of errors during unpacking is now integrated into the
	report section at the end of each command and the 'failed' command.

	* applied a patch by smpeters to silence an unini warning (RT #22277).

Changes  view on Meta::CPAN

	* do not complain THAT often about uninstalled YAML or YAML::Syck; once
	is per distro enough.

2006-10-13  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* release 1.88_54

	* New option 'yaml_module' to switch between YAML.pm and YAML::Syck
	Try 'o conf init /yaml/' to use it.

	* New distroprefs system that lets the user store arguments, environment
	variables, individual answers to questions asked by Distributions when
	being built, and config overrides. Try 'o conf init /prefs/' for more
	information.

	* address #21144 major documentation bug: $obj->install is NOT the same
	as CPAN::Shell->install($obj) as soon as a queue of dependencies comes
	into play.

	* fix "o conf defaults" which was broken in 1.88_53.

	* protect us against Module::Build errors with an eval around the
	requires() and build_requires() calls.

MANIFEST  view on Meta::CPAN

Changes
distroprefs/00.README
distroprefs/01.DISABLED.yml
distroprefs/02.NOREPORT.yml
distroprefs/ABELTJE.Test-Smoke.yml
distroprefs/ABH.Mojolicious-Plugin-TtRenderer.yml
distroprefs/ABW.Template-Toolkit.yml
distroprefs/ACG.Scrabble-Dict.yml
distroprefs/ACH.Tk-Contrib.yml
distroprefs/ACHIMRU.Lingua-Sentence.yml
distroprefs/ADAMK.Chart-Math-Axis.yml
distroprefs/ADAMK.Image-Delivery.yml
distroprefs/ADAMK.List-MoreUtils.yml
distroprefs/ADAMK.PPI.yml
distroprefs/ADAMK.Test-ClassAPI.yml
distroprefs/ADAMK.Test-Inline.yml
distroprefs/ADIE.Test-Class.yml
distroprefs/ADIE.Test-Exception.yml
distroprefs/ADUITSIS.IPC-Mmap.yml
distroprefs/AGENT.OpenResty.yml
distroprefs/AGRUNDMA.HTTP-Body.yml
distroprefs/AGRUNDMA.POE-Loop-EV.yml
distroprefs/AMBRUS-Object-Import.yml
distroprefs/AMICHAUER.Unicode-Lite.yml
distroprefs/ANDK.CPAN-Test-Dummy-Perl5-Build-Fails.yml
distroprefs/ANDK.CPAN-Test-Dummy-Perl5-Make-Expect.yml
distroprefs/ANDK.CPAN.yml
distroprefs/ANDREWF.LaTeX-Driver.yml
distroprefs/ANDYA.CPAN-Mini-Inject.yml
distroprefs/ANDYA.File-Find-Parallel.yml
distroprefs/ANDYA.Perl-Version.yml
distroprefs/ANDYA.TAP-Parser.yml
distroprefs/ANDYA.Test-Harness.yml
distroprefs/ARJAY.Compress-Bzip2.yml
distroprefs/ASCOPE.Net-Google.yml
distroprefs/ASG.List-Gen.yml
distroprefs/ATOURBIN.rpm-build-perl.yml
distroprefs/AUDREYT.Module-Signature.yml
distroprefs/AUDREYT.PDF-FromHTML.yml
distroprefs/AUDREYT.YAML-Syck.yml
distroprefs/AVIF.Time-Duration.yml
distroprefs/AWNCORP.ORMesque.yml
distroprefs/BANG.Unzip-Passwd.yml
distroprefs/BDFOY.Business-ISBN.yml
distroprefs/BDFOY.Module-Release.yml
distroprefs/BDFOY.Test-HTTPStatus.yml
distroprefs/BDFOY.Test-Output.yml
distroprefs/BIGPRESH.Dancer.yml
distroprefs/BINGOS.metabase-relayd.yml
distroprefs/BINGOS.POE-Component-Client-FTP.yml
distroprefs/BINGOS.POE-Component-Client-NSCA.yml
distroprefs/BINGOS.POE-Component-CPAN-YACSmoke.yml
distroprefs/BINGOS.POE-Component-CPANIDX.yml
distroprefs/BINGOS.POE-Component-Server-NSCA.yml
distroprefs/BINGOS.POE-Component-Server-SimpleContent.yml
distroprefs/BINGOS.POE-Component-Server-SimpleHTTP.yml
distroprefs/BINGOS.POE-Component-SmokeBox-Recent.yml
distroprefs/BIRNEY.bioperl.yml
distroprefs/BJOERN.Graph-Feather.yml
distroprefs/BLUEFEET.GIS-Distance.yml
distroprefs/BOBTFISH.Text-Markdown.yml
distroprefs/BOGDRO.Asm-X86.yml
distroprefs/BOOK.Acme-MetaSyntactic.yml
distroprefs/BOOK.Regexp-Log.yml
distroprefs/BRADFITZ.Perlbal.yml
distroprefs/BRIANSKI.XML-Comma.yml
distroprefs/BRYCE.SVG-Metadata.yml
distroprefs/BSMITH.Devel-EvalContext.yml
distroprefs/BTROTT.Class-ErrorHandler.yml
distroprefs/BTROTT.Convert-PEM.yml
distroprefs/BTROTT.Crypt-DH.yml
distroprefs/BTROTT.Crypt-DSA.yml
distroprefs/BTROTT.Crypt-OpenPGP.yml
distroprefs/BTROTT.XML-FOAF.yml
distroprefs/BWARFIELD.GDGraph.yml
distroprefs/BYRNE.SOAP-Lite.yml
distroprefs/CANID.Data-RecordStore.yml
distroprefs/CAPTTOFU.DBD-mysql.yml
distroprefs/CDENT.Kwiki-Test.yml
distroprefs/CERNEY.Tk-IDElayout.yml
distroprefs/CHANG-LIU.XML-Node.yml
distroprefs/CHARTGRP.Chart.yml
distroprefs/CHGEUER.Crypt-RIPEMD160.yml
distroprefs/CHISEL.Zucchini.yml
distroprefs/CHLIGE.Net-Bonjour.yml
distroprefs/CHOCOLATE.autobox.yml
distroprefs/CHOCOLATE.Scalar-Util-Clone.yml
distroprefs/CHORNY.Test-Warn.yml
distroprefs/CHROMATIC.Class-Roles.yml
distroprefs/CJM.Pod-Weaver-Section-Template.yml
distroprefs/CLACO.Class-Accessor-Grouped.yml
distroprefs/CLAESJAC.JavaScript.yml
distroprefs/CLKAO.App-CLI.yml
distroprefs/CLKAO.IO-Digest.yml
distroprefs/CLKAO.PerlIO-via-dynamic.yml
distroprefs/CLKAO.SVN-Mirror.yml
distroprefs/CMOORE.Archive-Any.yml
distroprefs/CORDATA.Kwiki-Formatter-Emphasis.yml
distroprefs/CORION.List-Sliding-Changes.yml
distroprefs/CORION.WWW-Mechanize-Chrome.yml
distroprefs/CORNELIUS.App-CLI.yml
distroprefs/CRISB.WWW-Curl.yml
distroprefs/CSOE.PDL.yml
distroprefs/DAGOLDEN.CPAN-Reporter.yml
distroprefs/DAGOLDEN.Sub-Uplevel.yml
distroprefs/DAGOLDEN.Term-Title.yml
distroprefs/DAMS.RT-Client-REST.yml
distroprefs/DANJOU.Net-Google-DocumentsList.yml
distroprefs/DANKOGAI.Regexp-Optimizer.yml
distroprefs/DAVECROSS.XML-Feed.yml
distroprefs/DAXIM.Yahoo-Photos.yml
distroprefs/DBRIAN.XML-SimpleObject.yml
distroprefs/DBROBINS.Net-SSH-Perl.yml
distroprefs/DCANTRELL.Devel-CheckOS.yml
distroprefs/DCLEE.OpenOffice-Parse-SXC.yml
distroprefs/DCONWAY.Class-Std.yml
distroprefs/DCOPPIT.Mail-Mbox-MessageParser.yml
distroprefs/DDUMONT.Tk-ObjScanner.yml
distroprefs/DGL.JavaScript-V8.yml
distroprefs/DHAGEMAN.TEI-Lite.yml
distroprefs/DHARRIS.DB_File-Lock.yml
distroprefs/DJBERG.Tk-JListbox.yml
distroprefs/DJKERNEN.Mail-IMAPClient.yml
distroprefs/DKWILSON.Tk-DKW.yml
distroprefs/DLAND.Crypt-SSLeay.yml
distroprefs/DLAND.Regexp-Assemble.yml
distroprefs/DMAKI.Class-DBI-Plugin-DateTime.yml
distroprefs/DMAKI.Data-Localize.yml
distroprefs/DMAKI.DateTime-X.yml
distroprefs/DMAKI.File-Extract.yml
distroprefs/DMAKI.JSON-RPC.yml
distroprefs/DMAKI.Xango.yml
distroprefs/DMARTIN.Unix-SavedIDs.yml
distroprefs/DMUEY.Authen-Libwrap.yml
distroprefs/DMUEY.File-Copy-Recursive.yml
distroprefs/DOM.OpenGuides.yml
distroprefs/DOM.Wiki-Toolkit.yml
distroprefs/DOMM.Module-CPANTS-ProcessCPAN.yml
distroprefs/DONEILL.MIME-tools.yml
distroprefs/DOOM.Text-Capitalize.yml
distroprefs/DOWENS.JSON-DWIW.yml
distroprefs/DOY.Package-Stash.yml
distroprefs/DPARIS.Crypt-Blowfish.yml
distroprefs/DPARIS.Crypt-DES.yml
distroprefs/DROLSKY.Alzabo.yml
distroprefs/DROLSKY.DateTime-Locale.yml
distroprefs/DROLSKY.Devel-StackTrace.yml
distroprefs/DROLSKY.Moose.yml
distroprefs/DROLSKY.Params-Validate.yml
distroprefs/DRTECH.Config-Loader.yml
distroprefs/DSKOLL.MIME-tools.yml
distroprefs/DSUGAL.Devel-Size.yml
distroprefs/DUNNIGANJ.Tk-CursorControl.yml
distroprefs/DURIST.Proc-ProcessTable.yml
distroprefs/DURIST.WWW-Babelfish.yml
distroprefs/DWHEELER.Params-CallbackRequest.yml
distroprefs/EBOHLMAN.Text-Query.yml
distroprefs/EESTABROO.IMAP-Admin.yml
distroprefs/EIJABB.MARC-Errorchecks.yml
distroprefs/ERIC.OpenThought.yml
distroprefs/ERYQ.Convert-BinHex.yml
distroprefs/ESUMMERS.MARC-Charset.yml
distroprefs/ETHER.MooseX-Getopt.yml
distroprefs/ETHER.Try-Tiny.yml
distroprefs/EVO.DBIx-SQLEngine.yml
distroprefs/EWILHELM.Math-Vec.yml
distroprefs/EXODIST.Test-Exception-LessClever.yml
distroprefs/FABPOT.Plucene-Plugin-Analyzer-SnowballAnalyzer.yml
distroprefs/FDALY.Test-Deep.yml
distroprefs/FHOXH.Test-Reporter.yml
distroprefs/FLORA.File-Extractor.yml
distroprefs/FLORA.MooseX-MultiMethods.yml
distroprefs/FLORA.Net_SSLeay.yml
distroprefs/FLUFFY.Class-MethodMaker.yml
distroprefs/FOTANGO.Data-Structure-Util.yml
distroprefs/FREW.DBIx-Class.yml
distroprefs/FROGGS.Alien-SDL.yml
distroprefs/GAAS.Data-Dump.yml
distroprefs/GAAS.Font-AFM.yml
distroprefs/GAAS.HTML-Parser.yml
distroprefs/GAAS.HTTP-Message.yaml
distroprefs/GAAS.libwww.yml
distroprefs/GBARR.libnet.yml
distroprefs/GBARR.perl-ldap.yml
distroprefs/GBARR.Scalar-Util.yml
distroprefs/GBROCK.Tk-StayOnTop.yml
distroprefs/GEOFF.Apache-Test.yml
distroprefs/GIRAFFED.Curses.yml
distroprefs/GIULIENK.Audio-Beep.yml
distroprefs/GMPASSOS.XML-Smart.yml
distroprefs/GOMOR.Net-Write.yml
distroprefs/GOZER.mod_perl.yml
distroprefs/GRANTM.XML-SAX.yml
distroprefs/GRAY.IO-AIO-Util.yml
distroprefs/GRICHTER.Embperl.yml
distroprefs/GRM.App-CamelPKI.yml
distroprefs/GTERMARS.Apache2-Filter-Minifier-JavaScript.yml
distroprefs/GWADEJ.Device-USB.yml
distroprefs/GWYN.Data-Tabular-Dumper.yml
distroprefs/GWYN.POE-Component-Daemon.yml
distroprefs/HANJE.Syntax-Highlight-Engine-Kate.yml
distroprefs/HAYASHI.Term-ReadLine-Gnu.yml
distroprefs/HDP.Perl-Version.yml
distroprefs/HERMES.Hash-Merge.yml
distroprefs/HMBRAND.Data-Peek.yml
distroprefs/HMBRAND.DBD-CSV.yml
distroprefs/HMBRAND.Spreadsheet-Read.yml
distroprefs/HMBRAND.Tk-Clock.yml
distroprefs/HORROCKS.PersistentPerl.yml
distroprefs/IDOPEREL.Markup-Unified.yml
distroprefs/ILMARI.DBIx-Class-Schema-Loader.yml
distroprefs/ILYAZ.FreezeThaw.yml
distroprefs/ILYAZ.Math-Pari.yml
distroprefs/ILYAZ.Term-ReadLine-Perl.yml
distroprefs/INGY.Inline.yml
distroprefs/INGY.Test-Base.yml
distroprefs/INGY.YAML-LibYAML.yml
distroprefs/INGY.YAML.yml
distroprefs/ITYNDALL.Net-Amazon-Thumbnail.yml
distroprefs/JAYK.Catalyst-Authen-S-D-C.yml
distroprefs/JCRISTY.PerlMagick.yml
distroprefs/JDIEPEN.Audio-LADSPA.yml
distroprefs/JENDA.Mail-Sender.yml
distroprefs/JESSE.HTTP-Server-Simple.yml
distroprefs/JESSE.Jifty-DBI.yml
distroprefs/JETTERO.Term-ANSIColorx.yml
distroprefs/JGMYERS.Encode-Detect.yml
distroprefs/JHOBLITT.DateTime-Format-DateParse.yml
distroprefs/JHOBLITT.DateTime-Format-ISO8601.yml
distroprefs/JJORE.AI-Prolog.yml
distroprefs/JJORE.Alien-Judy.yml
distroprefs/JJORE.Carp-Clan.yml
distroprefs/JJORE.Data-Dump-Streamer.yml
distroprefs/JKEGL.Test-Weaken.yml
distroprefs/JKUTEJ.IO-Any.yml
distroprefs/JMASON.Mail-SpamAssassin.yml
distroprefs/JMGDOC.OpenOffice-OODoc.yml
distroprefs/JOHNL.DBD-Informix.yml
distroprefs/JOHNSCA.TkCarp.yml
distroprefs/JOSEPHW.XML-Writer.yml
distroprefs/JPEACOCK.SVN-Notify-Mirror.yml
distroprefs/JPIERCE.IO-Pager.yml
distroprefs/JPRIT.Event.yml
distroprefs/JRENNIE.WordNet-QueryData.yml
distroprefs/JROBINSON.SQL-Translator.yml
distroprefs/JROCKWAY.Chroniton.yml
distroprefs/JSHIRLEY.Catalyst-Action-REST.yml
distroprefs/JSON-XS.yml
distroprefs/JSON.yml
distroprefs/JSTENZEL.Getopt-ArgvFile.yml
distroprefs/JV.Getopt-Long.yml
distroprefs/JZOBEL.Cindy.yml
distroprefs/KANE.CPANPLUS.yml
distroprefs/KAORU.Geo-Coder-Many.yml
distroprefs/KARASIK.IO-Lambda.yml
distroprefs/KARMAN.SWISH-Prog.yml
distroprefs/KASEI.Class-Accessor.yml
distroprefs/KAWASAKI.Lingua-JA-Romanize-Japanese.yml
distroprefs/KBROWN.SOAP.yml
distroprefs/KCLARK.SQL-Translator.yml
distroprefs/KNORR.Net-MirrorDir.yml
distroprefs/KRAIH.Mojolicious.yml
distroprefs/KROW.DBIx-Password.yml
distroprefs/KRUSCOE.Tie-DxHash.yml
distroprefs/KTHAKORE.Alien-SDL.yml
distroprefs/KVAIL.Tk-Stderr.yml
distroprefs/KWILLIAMS.AI-Categorizer.yml
distroprefs/KWILLIAMS.Crypt-SKey.yml
distroprefs/KWILLIAMS.Module-Build.yml
distroprefs/LAMPRECHT.Tk-GraphItems.yml
distroprefs/LDS.Crypt-CBC.yml
distroprefs/LDS.GBrowse.yml
distroprefs/LEAKIN.File-Rsync.yml
distroprefs/LETO.Math-GSL.yml
distroprefs/LICHTKIND.Kephra.yml
distroprefs/LOCAL.trailing_dot_distros.yml
distroprefs/LUKEC.Socialtext-Resting.yml
distroprefs/LUKEC.Test-HTTP.yml
distroprefs/LUSOL.Tk-Gauge.yml
distroprefs/LZE.HTML-Menu-TreeView.yml
distroprefs/MACKENNA.IP-World.yml
distroprefs/MADZ.KiokuDB-Backend-CouchDB.yml
distroprefs/MAHEX.Image-Grab.yml
distroprefs/MAKAMAKA.JSON.yml
distroprefs/MARKOV.CPAN-Site.yml
distroprefs/MARKOV.Mail-Box.yml
distroprefs/MARKOV.Mail-IMAPClient.yml
distroprefs/MARKOV.MailTools.yml
distroprefs/MARKSTOS.CGI-Application-Dispatch.yml
distroprefs/MARKSTOS.CGI-Session.yml
distroprefs/MARNANEL.Locale-PO-Callback.yml
distroprefs/MART.DJabberd.yml
distroprefs/MAUKE.Keyword-Simple.yml
distroprefs/MAURICE.IPC-ShareLite.yml
distroprefs/MBARBON.Alien-wxWidgets.yml
distroprefs/MCEGLOWS.Bloom-Filter.yml
distroprefs/MCRAWFOR.REST-Client.yml
distroprefs/METZZO.Java.yml
distroprefs/MFX.Compress-LZO.yml
distroprefs/MI.yml
distroprefs/MIKER.IPtables-IPv4-DBTarpit.yml
distroprefs/MInoinc.yml
distroprefs/MIROD.XML-Twig.yml
distroprefs/MIYAGAWA.Catalyst-View-JSON.yml
distroprefs/MIYAGAWA.Net-IDN-Nameprep.yml
distroprefs/MIYAGAWA.Plack-Middleware-Debug.yml
distroprefs/MIYAGAWA.Plagger.yml
distroprefs/MIYAGAWA.XML-Atom.yml
distroprefs/MJCARMAN.Tie-Tk-Text.yml
distroprefs/MJD.Devel-Trace.yml
distroprefs/MJD.Text-Template.yml
distroprefs/MJEVANS.DBD-ODBC.yml
distroprefs/MLEHMANN.AnyEvent.yml
distroprefs/MLEHMANN.Coro.yml
distroprefs/MLEHMANN.EV.yml
distroprefs/MLEHMANN.Gtk-Perl.yml
distroprefs/MLEHMANN.Guard.yml
distroprefs/MLEHMANN.IO-AIO.yml
distroprefs/MLEHMANN.PApp.yml
distroprefs/MLEHMANN.RCU.yml
distroprefs/MLFISHER.Test-MockDBI.yml
distroprefs/MOB.Forks-Super.yml
distroprefs/MRAMBERG.Catalyst-View-TT.yml
distroprefs/MRAMBERG.MojoMojo.yml
distroprefs/MRAMBERG.Text-SimpleTable.yml
distroprefs/MSCHILLI.RRDTool-OO.yml
distroprefs/MSCHWERN.Test-Simple.yml
distroprefs/MSERGEANT.AxKit.yml
distroprefs/MSERGEANT.CDB_File.yml
distroprefs/MSERGEANT.DBD-SQLite.yml
distroprefs/MSERGEANT.DBIx-AnyDBD.yml
distroprefs/MSERGEANT.XML-Filter-XInclude.yml
distroprefs/MSERGEANT.XML-Parser.yml
distroprefs/MSISK.HTML-TableExtract.yml
distroprefs/MTHURN.I18N-Charset.yml
distroprefs/MTHURN.Tk-Wizard.yml
distroprefs/NANARDON.X11-Xlib.yml
distroprefs/NEELY.Data-Serializer.yml
distroprefs/NEILW.Inline-CPP.yml
distroprefs/NESTING.Unicode-Wrap.yml
distroprefs/NEVESENIN.Regexp-RegGrp.yml
distroprefs/NI-S.Tk-HTML.yml
distroprefs/NI-S.Tk.yml
distroprefs/NICOLAW.WWW-Comic.yml
distroprefs/NIKIP.Authen-PAM.yml
distroprefs/NINE.Inline-Python.yml
distroprefs/NKH.PerlBuildSystem.yml
distroprefs/NODINE.Slay-Makefile.yml
distroprefs/NODINE.Text-Restructured.yml
distroprefs/NUFFIN.Catalyst-Plugin-Session.yml
distroprefs/NUFFIN.Devel-Events.yml
distroprefs/NUFFIN.YAML-LibYAML.yml
distroprefs/OFFERK.MooseX-App-Cmd.yml
distroprefs/OLAF.Net-DNS.yml
distroprefs/OVID.Class-Sniff.yml
distroprefs/OVID.Class-Trait.yml
distroprefs/OVID.HOP-Parser.yml
distroprefs/OVID.Perl6-Caller.yml
distroprefs/OVID.TAPx-Parser.yml
distroprefs/OVID.Test-JSON.yml
distroprefs/OWEN.PDF-Labels.yml
distroprefs/PAJAS.XML-LibXML.yml
distroprefs/PCIMPRICH.XML-SAX-ExpatXS.yml
distroprefs/PDCAWLEY.Class-Inner.yml
distroprefs/PETDANCE.HTML-Tidy.yml
distroprefs/PETDANCE.Test-Memory-Cycle.yml
distroprefs/PETDANCE.WWW-Mechanize.yml
distroprefs/PETERW.SVG-Parser.yml
distroprefs/PEVANS.IPC-PerlSSH.yml
distroprefs/PEVANS.Net-Async-HTTP.yml
distroprefs/PHOENIX.Term-ReadPassword.yml
distroprefs/PHRED.Apache-Reload.yml
distroprefs/PIERS.sapnwrfc.yml
distroprefs/PLOBBES.Mail-IMAPClient.yml
distroprefs/PODMASTER.HTML-Scrubber.yml
distroprefs/POWERMAN.IO-Stream.yml
distroprefs/POWERMAN.MojoX-JSONRPC2-HTTP.yml
distroprefs/QANTINS.BitTorrent.yml
distroprefs/RBERJON.JSON-Any.yml
distroprefs/RBS.XML-AutoWriter.yml
distroprefs/RCAPUTO.POE.yml
distroprefs/RCLAMP.Devel-Caller.yml
distroprefs/RCLAMP.POE-Component-Server-HTTP.yml
distroprefs/RCSEEGE.Tk-JComboBox.yml
distroprefs/RDF.Clone.yml
distroprefs/REDTREE.PDF-API2-Simple.yml
distroprefs/REEDFISH.Net-FullAuto.yml
distroprefs/REHSACK.File-HomeDir.yml
distroprefs/RGARCIA.Switch.yml
distroprefs/RHOOPER.HTTP-Lite.yml
distroprefs/RIBASUSHI.namespace-clean.yml
distroprefs/RICKM.DateTime-Format-Strptime.yml
distroprefs/RIZEN.Config-JSON.yml
distroprefs/RJBS.Data-UUID.yml
distroprefs/RJBS.Dist-Zilla.yml
distroprefs/RJBS.Email-Send.yml
distroprefs/RJBS.MIME-Light.yml
distroprefs/RJRAY.RPC-XML.yml
distroprefs/RKINYON.DBM-Deep.yml
distroprefs/RKOBES.PPM-Make.yml
distroprefs/RMUHLE.classes.yml
distroprefs/ROBIN.PadWalker.yml
distroprefs/ROBIN.Want.yml
distroprefs/ROCKY.Array-Columnize.yml
distroprefs/ROKR.Config-Identity.yml
distroprefs/RONAN.Transform-Canvas.yml
distroprefs/ROODE.Readonly-XS.yml
distroprefs/ROODE.Time-Format.yml
distroprefs/RRA.PGP-Sign.yml
distroprefs/RRWO.Graphics-ColorNames.yml
distroprefs/RSOD.IPC-Run.yml
distroprefs/RURBAN.Filter.yml
distroprefs/RUZ.DBIx-SearchBuilder.yml
distroprefs/RYBSKEJ.forks.yml
distroprefs/SAMTREGAR.DBIx-Timeout.yml
distroprefs/SAMTREGAR.Devel-Profiler.yml
distroprefs/SAMV.Date-Holidays-NZ.yml
distroprefs/SAMV.Set-Object.yml
distroprefs/SAMV.Tangram.yml
distroprefs/SANKO.Net-BitTorrent.yml
distroprefs/SARTAK.Class-Method-Modifiers.yml
distroprefs/SCHUBIGER.DateTime-Format.yml
distroprefs/SCHWERN.Class-Fields.yml
distroprefs/SCHWERN.Exporter-Lite.yml
distroprefs/SCHWIGON.Class-MethodMaker.yml
distroprefs/SEANO.Sepia.yml
distroprefs/SEKIA.Algorithm-KernelKMeans.yml
distroprefs/SHAY.Filter-Crypto.yml
distroprefs/SHERZODR.Class-PObject.yml
distroprefs/SHEVEK.Mail-Karmasphere-Client.yml
distroprefs/SHLOMIF.Graph-Easy.yml
distroprefs/SIMONFLK.Test-MockModule.yml
distroprefs/SLANNING.Ogre.yml
distroprefs/SPROUT.DBM-Deep.yml
distroprefs/SREZIC.Tk-Autoscroll.yml
distroprefs/SREZIC.Tk-HistEntry.yml
distroprefs/SREZIC.Tk-Pod.yml
distroprefs/STAS.libapreq.yml
distroprefs/STBEY.Bit-Vector.yml
distroprefs/STBEY.Date-Pcalc.yml
distroprefs/STEPANOV.IMDB-Film.yml
distroprefs/STEVAN.Class-MOP.yml
distroprefs/SULLR.IO-Socket-SSL.yml
distroprefs/SWALTERS.typesafety.yml
distroprefs/SYOHEX.List-UtilsBy-XS.yml
distroprefs/SZABGAB.Spreadsheet-ParseExcel.yml
distroprefs/SZABGAB.Term-ProgressBar.yml
distroprefs/TBONE.HTTP-File.yml
distroprefs/TEEJAY.Test-HTTP-Response.yml
distroprefs/TELS.Devel-Size.yml
distroprefs/TELS.Math-BigInt-GMP.yml
distroprefs/THOSPEL.Graph-Layout-Aesthetic.yml
distroprefs/THOSPEL.Heap-Simple-Perl.yml
distroprefs/TIMB.Apache-Status-DBI.yml
distroprefs/TIMB.DBI.yml
distroprefs/TIMB.GoferTransport-http.yml
distroprefs/TINITA.HTML-Template-Compiled.yml
distroprefs/TJENNESS.Tk-TextANSIColor.yml
distroprefs/TKEEFER.Gantry.yml
distroprefs/TLOWERY.DBI-Shell.yml
distroprefs/TODDR.Net-Jabber-Bot.yml
distroprefs/TOMFAHLE.LBMA-Statistics.yml
distroprefs/TSCH.Cairo.yml
distroprefs/TSCH.Gtk2.yml
distroprefs/TTG.Google-GeoCoder-Smart.yml
distroprefs/Type-Tiny.yml
distroprefs/TYPESTER.AnyEvent-Gearman.yml
distroprefs/URI.File-Slurp.yml
distroprefs/VKON.Tcl-Tk.yml
distroprefs/VKON.Tcl.yml
distroprefs/VMAN.Net-Libdnet.yml
distroprefs/VPIT.autovivification.yml
distroprefs/VPIT.Variable-Magic.yml
distroprefs/WITTROCK.Tk-PathEntry.yml
distroprefs/WRW.Barcode-Code128.yml
distroprefs/WYANT.Astro-satpass.yml
distroprefs/WYANT.Astro-SpaceTrack.yml
distroprefs/X11-Protocol.yml
distroprefs/XEONTIME.Apache-Sling.yml
distroprefs/XMATH.Sub-Name.yml
distroprefs/XML-Rules.yml
distroprefs/YAMATO.QDBM_File.yml
distroprefs/YANICK.XML-XPathScript.yml
distroprefs/YAPPO.Data-Model.yml
distroprefs/YAPPO.Geo-Coordinates-Converter.yml
distroprefs/YAPPO.String-Diff.yml
distroprefs/YEWENBIN.Calendar.yml
distroprefs/YOSHIDA.WebService-YouTube.yml
distroprefs/YSAS.SWF-Builder.yml
distroprefs/YVES.Data-Dump-Streamer.yml
distroprefs/YVES.Date-Simple.yml
distroprefs/ZEFRAM.Data-Alias.yml
distroprefs/ZEFRAM.Module-Runtime.yml
distroprefs/ZEV.Test-Dependencies.yml
distroprefs/ZINCDEV.tk-zinc.yml
distroprefs/ZOFFIX.LWP-UserAgent-ProxyHopper.yml
distroprefs/ZOOLEIKA.RDF-Simple.yml
distroprefs/ZOOLEIKA.SVG-Plot.yml
inc/Test/Builder.pm
inc/Test/More.pm
lib/App/Cpan.pm
lib/CPAN.pm
lib/CPAN/Admin.pm
lib/CPAN/API/HOWTO.pod
lib/CPAN/Author.pm
lib/CPAN/Bundle.pm
lib/CPAN/CacheMgr.pm
lib/CPAN/Complete.pm
lib/CPAN/Debug.pm
lib/CPAN/DeferredCode.pm
lib/CPAN/Distribution.pm
lib/CPAN/Distroprefs.pm
lib/CPAN/Distrostatus.pm
lib/CPAN/Exception/blocked_urllist.pm
lib/CPAN/Exception/RecursiveDependency.pm
lib/CPAN/Exception/yaml_not_installed.pm
lib/CPAN/Exception/yaml_process_error.pm
lib/CPAN/FirstTime.pm
lib/CPAN/FTP.pm
lib/CPAN/FTP/netrc.pm
lib/CPAN/HandleConfig.pm
lib/CPAN/HTTP/Client.pm
lib/CPAN/HTTP/Credentials.pm
lib/CPAN/Index.pm
lib/CPAN/InfoObj.pm
lib/CPAN/Kwalify.pm
lib/CPAN/Kwalify/distroprefs.dd
lib/CPAN/Kwalify/distroprefs.yml
lib/CPAN/LWP/UserAgent.pm
lib/CPAN/Mirrors.pm
lib/CPAN/Module.pm
lib/CPAN/Nox.pm
lib/CPAN/Plugin.pm
lib/CPAN/Plugin/Specfile.pm
lib/CPAN/Prompt.pm
lib/CPAN/Queue.pm
lib/CPAN/Shell.pm
lib/CPAN/Tarzip.pm

MANIFEST  view on Meta::CPAN

t/10version.t
t/11mirroredby.t
t/12cpan.t
t/13tarzip.t
t/14forkbomb.t
t/30shell.coverage
t/30shell.t
t/31sessions.t
t/32pushyhttps.t
t/41distribution.t
t/42distroprefs.t
t/43distroprefspref.t
t/44cpanmeta.t
t/50pod.t
t/51pod.t
t/52podcover.t
t/60credentials.t
t/70_critic.t
t/71_minimumversion.t
t/97-compile.t
t/97-cpan1-test-mirror/authors/01mailrc.txt.gz
t/97-cpan1-test-mirror/authors/id/B/BU/BUSTER/CHECKSUMS

MANIFEST.SKIP  view on Meta::CPAN

^blibdirs
^cover_db/
^cp-to-perl.pl

# used by scripts/cpan to test installations
^cpan-home

^cpan_reports_
^cpantesters-show/
^dagolden-reversion-gist.pl
^distroprefs/.*\.dd
^distroprefs/ttt.nodbi.yml
^distroprefs/ttt.nodbi.yml.bak
^distroprefs/ttt.nomailsend.yml
^eg/
^err$
^git-pm-version-delta\.pl$
^gpw9-cpan-talk\.
^lib/CPAN/Config\.pm
^lib/CPAN\.pm@
^lib/CPAN\.pm\.wrong_idea_for_cleanup
^logs/
^mail
^make-test-

MANIFEST.SKIP  view on Meta::CPAN

^t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-UnsatPrereq/
^t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-Zip/
^t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make/
^t/dot-cpan/.lock
^t/dot-cpan/Bundle/CpanTestDummies.pm
^t/dot-cpan/Bundle/Snap
^t/dot-cpan/FTPstats.yml
^t/dot-cpan/Metadata
^t/dot-cpan/build
^t/dot-cpan/histfile
^t/dot-cpan/prefs/TestDistroPrefsFile.yml
^t/dot-cpan/sources/MIRRORED.BY
^t/dot-cpan/sources/authors/id/A/AN/ANDK/CHECKSUMS
^t/dot-cpan/sources/authors/id/A/AN/ANDK/CHECKSUMS.bak
^t/dot-cpan-[0-9]
^talks/
^test.out
~$
cpanstats.db
^distroprefs/[A-FHJ-Z]*\.dd$
^distroprefs/G[AC-Z]*\.dd$
^distroprefs/I[A-KMO-Z]*\.dd$
^ttt
.DS_Store
^cpandb
^_eumm
^revert-planning.txt
^typescript
[0-9]+.*\.patch

# a test that helped me diagnose HARNESS_OPTIONS stuff during development:
t/05env.t

Makefile.PL  view on Meta::CPAN

      print "Importing PAUSE public key into your GnuPG keychain... ";
      system($cmd, '--quiet', '--import', <PAUSE*.pub>);
      print "done!\n";
      print "(You may wish to trust it locally with 'gpg --lsign-key $FINGERPRINT')\n";
      last;
    }
  }
}

if ($HAVE_FILE_SPEC) {
    my $have_distroprefs = -d "distroprefs";
    my $have_notinchecksums = -f File::Spec->catdir("t","CPAN","authors","id","A","AN","ANDK","NotInChecksums-0.000.tar.gz");
    if ($HAVE_MAKE && $have_distroprefs && !$have_notinchecksums) {
        warn <<EOW;

####-Note-for-repository-users-####
Please try
  make touchtestdistros
before running 'make test'
It should build NotInChecksums-0.000.tar.gz
  and correct timestamps for tarballs from the repository
  and thus enable a smooth 'make test' experience
####-Note-for-repository-users-####

Makefile.PL  view on Meta::CPAN

              ($] >= 5.005 ?
               (
                ABSTRACT_FROM  => 'lib/CPAN.pm', # retrieve abstract from module
                AUTHOR         => 'Andreas Koenig <andreas.koenig.gmwojprw@franz.ak.mind.de>') : (),
              ),
              dist => {
                       DIST_DEFAULT => join(" ", # note: order matters!
                                            "verify-no-subdir",
                                            "verify-changes-date",
                                            "verify-changes-version",
                                            "kwalify-distroprefs-straight",
                                            "Makefile",
                                            "no_CR",
                                            "META.yml",
                                            "setversion",
                                            "README",
                                            "testdistros",
                                            "all",
                                            "tardist",
                                           ),
                       COMPRESS => 'gzip -9',

Makefile.PL  view on Meta::CPAN


sub postamble {
  return "" unless $HAVE_MAKE; # dmake has unknown issues with my Makefile
  my @m;
  push @m, q{
.SUFFIXES: .rnc .rng

.rnc.rng:
	trang -I rnc -O rng $*.rnc $*.rng

update: dd-prefs

# the subdirs on MY OWN BOX are allowed here (only used for make dist!)
OKDIRS=CPAN|DIST|bin|blib|cover_db|\
       distroprefs|eg|inc|lib|logs|patches|perlbug|\
       protocols|related|release-lib|scripts|t|talks|_eumm

FINGERPRINT=}.$FINGERPRINT.q{

verify-no-subdir:
	@$(PERL) -e 'my$$s=join",",grep{!/^($(OKDIRS))\z/x&&-d($$_)}glob"*";' \
		-e 'die"unexpected dir:$$s"if$$s'

verify-changes-date:
	@$(PERL) -ne 'BEGIN{my@t=(localtime)[5,4,3];$$t[0]+=1900;$$t[1]++;$$t=sprintf"%04d-%02d-%02d",@t}' \
		-e '$$ok++,exit if /^$$t\s/; END{die "Alert: did not find <$$t> in Changes file" unless $$ok}' Changes

verify-changes-version:
	@$(PERL) -ne '$$ok++,exit if /\b$(VERSION)\b/; END{die "Alert: did not find <$(VERSION)> in Changes file" unless $$ok}' Changes

# requires Slay::Makefile
kwalify-distroprefs-slaymake:
	$(PERL) `dirname $(PERL)`/slaymake validate

ddify-distroprefs:
	-$(PERL) -Ilib -e 'use YAML::Syck;use CPAN::Kwalify;use Kwalify qw(validate);use Data::Dumper;{my $$errors = 0; my $$files = 0; my $$perrors = 0;my $$distroprefs_path = $$INC{"CPAN/Kwalify.pm"};$$distroprefs_path =~ s{\.pm$$}{/distroprefs.yml};my $$...

kwalify-distroprefs-straight:
	-$(PERL) -Ilib -le 'use YAML::Syck;use CPAN::Kwalify;use Kwalify qw(validate);use Data::Dumper;{my $$errors = 0; my $$files = 0; my $$perrors = 0;my $$distroprefs_path = $$INC{"CPAN/Kwalify.pm"};$$distroprefs_path =~ s{\.pm$$}{/distroprefs.yml};my $...

setversion:
	$(PERL) Makefile.PL --setversion

README: lib/CPAN.pm Makefile
	-[ -r $@ ] && chmod +w $@
	-$(PERL) -MPod::Text -e 'Pod::Text->new->parse_from_file(\*ARGV)' lib/CPAN.pm > $@

the-release-name :
	$(NOECHO) $(ECHO) 'version ' $(VERSION)

Makefile.PL  view on Meta::CPAN

#

clean ::
	$(RM) t/CPAN/authors/id/A/AN/ANDK/*/Build \
		t/CPAN/authors/id/A/AN/ANDK/*/Makefile.old
	$(RM_RF) t/CPAN/authors/id/A/AN/ANDK/*/_build

no_CR : META.yml
	$(PERL) bin/no_CR.pl MANIFEST

foreign-prefs : dd-prefs st-prefs

dd-prefs ::
	`echo $(PERL) | sed -e 's/perl$$/slaymake/'` dd-prefs

st-prefs ::

chlog ::

};

  for my $base (@main::ST_PREFS) {
    push @m, qq{
st-prefs :: $base.st

};
    if ($HAVE_YAML_SYCK) {
      push @m, qq{$base.st : Makefile
	\$(PERL) -MYAML::Syck=LoadFile -MStorable=nstore -e '\$\$x=shift; \@y=LoadFile("\$\$x.yml"); nstore(\\\@y, "\$\$x.st")' $base

};
    }
  }

README  view on Meta::CPAN

                         with both a Makefile.PL and a Build.PL, use the
                         former (EUMM) or the latter (MB); if the module
                         comes with only one of the two, that one will be
                         used no matter the setting
      prerequisites_policy
                         what to do if you are missing module prerequisites
                         ('follow' automatically, 'ask' me, or 'ignore')
                         For 'follow', also sets PERL_AUTOINSTALL and
                         PERL_EXTUTILS_AUTOINSTALL for "--defaultdeps" if
                         not already set
      prefs_dir          local directory to store per-distro build options
      proxy_user         username for accessing an authenticating proxy
      proxy_pass         password for accessing an authenticating proxy
      pushy_https        use https to cpan.org when possible, otherwise use http
                         to cpan.org and issue a warning
      randomize_urllist  add some randomness to the sequence of the urllist
      recommends_policy  whether recommended prerequisites should be included
      scan_cache         controls scanning of cache ('atstart', 'atexit' or 'never')
      shell              your favorite shell
      show_unparsable_versions
                         boolean if r command tells which modules are versionless

README  view on Meta::CPAN


    "allow_installing_outdated_dists" compares the "blib/" directory with
    the CPAN index. If it finds something there that belongs, according to
    the index, to a different dist, it aborts the current build.

    "allow_installing_module_downgrades" compares the "blib/" directory with
    already installed modules, actually their version numbers, as determined
    by ExtUtils::MakeMaker or equivalent. If a to-be-installed module would
    downgrade an already installed module, the current build is aborted.

    An interesting twist occurs when a distroprefs document demands the
    installation of an outdated dist via goto while
    "allow_installing_outdated_dists" forbids it. Without additional
    provisions, this would let the "allow_installing_outdated_dists" win and
    the distroprefs lose. So the proper arrangement in such a case is to
    write a second distroprefs document for the distro that "goto" points to
    and overrule the "cpanconfig" there. E.g.:

      ---
      match:
        distribution: "^MAUKE/Keyword-Simple-0.04.tar.gz"
      goto: "MAUKE/Keyword-Simple-0.03.tar.gz"
      ---
      match:
        distribution: "^MAUKE/Keyword-Simple-0.03.tar.gz"
      cpanconfig:
        allow_installing_outdated_dists: yes

  Configuration for individual distributions (*Distroprefs*)
    (Note: This feature has been introduced in CPAN.pm 1.8854)

    Distributions on CPAN usually behave according to what we call the CPAN
    mantra. Or since the advent of Module::Build we should talk about two
    mantras:

        perl Makefile.PL     perl Build.PL
        make                 ./Build
        make test            ./Build test
        make install         ./Build install

    But some modules cannot be built with this mantra. They try to get some
    extra data from the user via the environment, extra arguments, or
    interactively--thus disturbing the installation of large bundles like
    Phalanx100 or modules with many dependencies like Plagger.

    The distroprefs system of "CPAN.pm" addresses this problem by allowing
    the user to specify extra informations and recipes in YAML files to
    either

    *   pass additional arguments to one of the four commands,

    *   set environment variables

    *   instantiate an Expect object that reads from the console, waits for
        some regular expressions and enters some answers

    *   temporarily override assorted "CPAN.pm" configuration variables

    *   specify dependencies the original maintainer forgot

    *   disable the installation of an object altogether

    See the YAML and Data::Dumper files that come with the "CPAN.pm"
    distribution in the "distroprefs/" directory for examples.

  Filenames
    The YAML files themselves must have the ".yml" extension; all other
    files are ignored (for two exceptions see *Fallback Data::Dumper and
    Storable* below). The containing directory can be specified in "CPAN.pm"
    in the "prefs_dir" config variable. Try "o conf init prefs_dir" in the
    CPAN shell to set and activate the distroprefs system.

    Every YAML file may contain arbitrary documents according to the YAML
    specification, and every document is treated as an entity that can
    specify the treatment of a single distribution.

    Filenames can be picked arbitrarily; "CPAN.pm" always reads all files
    (in alphabetical order) and takes the key "match" (see below in
    *Language Specs*) as a hashref containing match criteria that determine
    if the current distribution matches the YAML document or not.

  Fallback Data::Dumper and Storable
    If neither your configured "yaml_module" nor YAML.pm is installed,
    CPAN.pm falls back to using Data::Dumper and Storable and looks for
    files with the extensions ".dd" or ".st" in the "prefs_dir" directory.
    These files are expected to contain one or more hashrefs. For
    Data::Dumper generated files, this is expected to be done with by
    defining $VAR1, $VAR2, etc. The YAML shell would produce these with the
    command

        ysh < somefile.yml > somefile.dd

    For Storable files the rule is that they must be constructed such that
    "Storable::retrieve(file)" returns an array reference and the array
    elements represent one distropref object each. The conversion from YAML

README  view on Meta::CPAN

        all match. If so, the hashref represented by the YAML document is
        returned as the preference structure for the current distribution.

    patches [array]
        An array of patches on CPAN or on the local disk to be applied in
        order via an external patch program. If the value for the "-p"
        parameter is 0 or 1 is determined by reading the patch beforehand.
        The path to each patch is either an absolute path on the local
        filesystem or relative to a patch directory specified in the
        "patches_dir" configuration variable or in the format of a canonical
        distro name. For examples please consult the distroprefs/ directory
        in the CPAN.pm distribution (these examples are not installed by
        default).

        Note: if the "applypatch" program is installed and "CPAN::Config"
        knows about it and a patch is written by the "makepatch" program,
        then "CPAN.pm" lets "applypatch" apply the patch. Both "makepatch"
        and "applypatch" are available from CPAN in the "JV/makepatch-*"
        distribution.

    pl [hash]

README  view on Meta::CPAN


        "expect: <array>" is a short notation for this "eexpect":

                eexpect:
                        mode: deterministic
                        timeout: 15
                        talk: <array>

  Schema verification with "Kwalify"
    If you have the "Kwalify" module installed (which is part of the
    Bundle::CPANxxl), then all your distroprefs files are checked for
    syntactic correctness.

  Example Distroprefs Files
    "CPAN.pm" comes with a collection of example YAML files. Note that these
    are really just examples and should not be used without care because
    they cannot fit everybody's purpose. After all, the authors of the
    packages that ask questions had a need to ask, so you should watch their
    questions and adjust the examples to your environment and your needs.
    You have been warned:-)

PROGRAMMER'S INTERFACE
    If you do not enter the shell, shell commands are available both as
    methods ("CPAN::Shell->install(...)") and as functions in the calling

README  view on Meta::CPAN

        Makefile.PL" or "perl Build.PL" and "make" there.

    CPAN::Distribution::perldoc()
        Downloads the pod documentation of the file associated with a
        distribution (in HTML format) and runs it through the external
        command *lynx* specified in "$CPAN::Config->{lynx}". If *lynx* isn't
        available, it converts it to plain text with the external command
        *html2text* and runs it through the pager specified in
        "$CPAN::Config->{pager}".

    CPAN::Distribution::prefs()
        Returns the hash reference from the first matching YAML file that
        the user has deposited in the "prefs_dir/" directory. The first
        succeeding match wins. The files in the "prefs_dir/" are processed
        alphabetically, and the canonical distro name (e.g.
        AUTHOR/Foo-Bar-3.14.tar.gz) is matched against the regular
        expressions stored in the $root->{match}{distribution} attribute
        value. Additionally all module names contained in a distribution are
        matched against the regular expressions in the
        $root->{match}{module} attribute value. The two match values are
        ANDed together. Each of the two attributes are optional.

    CPAN::Distribution::prereq_pm()
        Returns the hash reference that has been announced by a distribution

SIGNATURE  view on Meta::CPAN

SHA256 71403dba61c99d9ec5d1fa778ee121972f51bee0adcf926bc612a2688dda1768 PAUSE2007.pub
SHA256 59b4e29859e2f658a99cc994e8d7ae271c2c5e04554cc59a32b3145abb0a7a1c PAUSE2009.pub
SHA256 98c6ec5f93820498d69cd6cfa97762cd3837b31a664518f932f4127df9355cfa PAUSE2011.pub
SHA256 7c1c434b4ba0bc50088d6a3c6f2a884379d5f560b921da18f3ccd0f2e8d2a3ee PAUSE2015.pub
SHA256 7877904acc9d304b315edac8035a5cc51c3a36fdea143ed6b47217ec558b27d2 PAUSE2019.pub
SHA256 2dd04a6d3bbb55f23c85ad7fc1a70789c6afd1ecfa775e95ed6a8eda932e1669 PAUSE2021.pub
SHA256 57fe88a2c9a3498776dc12a9ae6bc4151028c84d3a48de6b0addf6c32e9dbb90 PAUSE2022.pub
SHA256 7e31f96d4205aba512f20bc1df032306a54b79d545d574aaec4238c485d3431d README
SHA256 adc5b62c1d037c0f579e41d783b3f49b6cc0ffbae18b2c1ae6c948c07c36516d SlayMakefile
SHA256 b72b408ba23c21723de10ec8765c1807edef6c330e764e5bed952a81fa0f4560 Todo
SHA256 c08e72a1119933038c7a6ce1eb9b92698937b4d14f8686137ec827a4485c36f4 distroprefs/00.README
SHA256 4b3da6c06423d33c58251b4cb5e0426773d37bd35407e67b118d30b80bf94265 distroprefs/01.DISABLED.yml
SHA256 e2da3a56ca21d065011cc94d3a77233888227231c8e1a1547b002fa1e80750b2 distroprefs/02.NOREPORT.yml
SHA256 21b08984c35da2fbd86cf31dfe00b4dca022e6fe5a5b64d8b55a2daae820f8bf distroprefs/ABELTJE.Test-Smoke.yml
SHA256 3946ac7b949c394a8a350543da0669ec92d990e5e4e027c5a58918106d1a332c distroprefs/ABH.Mojolicious-Plugin-TtRenderer.yml
SHA256 40f8d6adc9cc33fc970238619ffcb39a5c4328b92b5df6686fb2f1f58e25d7d8 distroprefs/ABW.Template-Toolkit.yml
SHA256 8d227739a099561f05b55a3e895929b8666bb66f07683eae87c03965bdc5fc0c distroprefs/ACG.Scrabble-Dict.yml
SHA256 f773486300563bfe593cfc57f3858b5d2b792b3c399209a1904c74a792995c24 distroprefs/ACH.Tk-Contrib.yml
SHA256 9872b8ec09132c2f6df322696fc9a81d0287e44d23c8617a5794ca95d67c12b7 distroprefs/ACHIMRU.Lingua-Sentence.yml
SHA256 d7f2697546a337816df37270d47556924d584e926779a5d909f846d1dba34a30 distroprefs/ADAMK.Chart-Math-Axis.yml
SHA256 c98224d3be324f4c77f59676b1665b9bbe55b0230af69cf3843c0ec098aaa6dc distroprefs/ADAMK.Image-Delivery.yml
SHA256 a3498f94098fb3fcb58aaae32ba4593fc9bf9485349b1edd3ee5e6c2e5e67d7d distroprefs/ADAMK.List-MoreUtils.yml
SHA256 251aeba2c03b42d8633b41cdef45e3785ec783f684c979a0af6390160d614c00 distroprefs/ADAMK.PPI.yml
SHA256 7ae4fbd3e1913d0df9263de11866a9054d831f3982579fd62f46b574309406dc distroprefs/ADAMK.Test-ClassAPI.yml
SHA256 9baab9f347860ad94f921dd3f3761889454513ebe50912ff4f537485271a2679 distroprefs/ADAMK.Test-Inline.yml
SHA256 3e94d8e9a493fc0dcff2ee3ccd640908536b3fc3d319f2fb2193590ff53a35d8 distroprefs/ADIE.Test-Class.yml
SHA256 3ddc089ee31acaa5d30036cc28347f00e877d5920bcd993a7ed07a195c953189 distroprefs/ADIE.Test-Exception.yml
SHA256 ac67b8abe8a5a6c7280e11dbd04c8e147a59e632a42ed506fdd6c1b13ab54dbc distroprefs/ADUITSIS.IPC-Mmap.yml
SHA256 43bac42ded8249a6044203dd50ac46063968505bf30a6bb002e0bd854eb1428c distroprefs/AGENT.OpenResty.yml
SHA256 036f65ae57ace9947eed04f392e84c82e3af9886b3afaa21b4dd1c97d5c3558b distroprefs/AGRUNDMA.HTTP-Body.yml
SHA256 73f68653da66adcccd0fd2de765b9544bc05a746b1fd76dc78a648d445c4338e distroprefs/AGRUNDMA.POE-Loop-EV.yml
SHA256 ec0325a5385263aa804051aef3b7fd169afe861adc9e82bcb5cf6f7bcb849f44 distroprefs/AMBRUS-Object-Import.yml
SHA256 0b0463bfbc58286ef8df2c67a38b1c1826661ff06daf72b14375e7bcf9a52733 distroprefs/AMICHAUER.Unicode-Lite.yml
SHA256 7f224c8df106a2edb02eddd7839318e4dcb6ac4318dbf1a946b7344dcb644673 distroprefs/ANDK.CPAN-Test-Dummy-Perl5-Build-Fails.yml
SHA256 37e64567a83c99a8515d7737662e399c0cf9239b20785faa1ceb8b9f9931ffa4 distroprefs/ANDK.CPAN-Test-Dummy-Perl5-Make-Expect.yml
SHA256 628d6725a747321ba1686c5b7c6207184caded9e9a030cacc8a807be3636909b distroprefs/ANDK.CPAN.yml
SHA256 b7549da6a6f941c579079c49114acf3672d60e8b86890ebd82bc03300a0aafed distroprefs/ANDREWF.LaTeX-Driver.yml
SHA256 42d9c4dcca9453a550581c9eee74be2423ac028f40c821ab206c7a11505fe4ae distroprefs/ANDYA.CPAN-Mini-Inject.yml
SHA256 1ec52cd8a4980c16c436a31d897d47092596b78d8aa6dfe9b745d987faa51816 distroprefs/ANDYA.File-Find-Parallel.yml
SHA256 86954a2c6b79f96d207ed93fc6f21bda4b19528cb1b5941474bb7c73c442cac2 distroprefs/ANDYA.Perl-Version.yml
SHA256 adf2d140d82fd0b539c35939fc85d7e5df39d393a1b062eba0cc39f5acd39b07 distroprefs/ANDYA.TAP-Parser.yml
SHA256 a1fd4b8b65823532bcbd7de70bfd90ff4b3931ece3b0ecc2d397928d23b047f0 distroprefs/ANDYA.Test-Harness.yml
SHA256 01d78d1fabdf6c659a1f4ce673c156b95e6928561aebcab9d8415c3804529228 distroprefs/ARJAY.Compress-Bzip2.yml
SHA256 38a860650d07518da9de16bbb99d573628457287c101e190a15f8d1053b12378 distroprefs/ASCOPE.Net-Google.yml
SHA256 a6491954cf85318f4122882814c2bde516ba819b7b1f6fb994804ead5025a17d distroprefs/ASG.List-Gen.yml
SHA256 3891b450102380fb91b21cf5cd26c2fc52ed918cc14721dde4c8ddf743b7d230 distroprefs/ATOURBIN.rpm-build-perl.yml
SHA256 ae1eb2d0836fea362880d2de93604bdd1597b93194f3e773dd6f79ad87e742c2 distroprefs/AUDREYT.Module-Signature.yml
SHA256 5e612bd2f318cdc351055b10e97565c72faf5c09f43fef80ad1df51910d465f4 distroprefs/AUDREYT.PDF-FromHTML.yml
SHA256 ccafa2ee2da790a22b711b01aafdc0a610d2ea7915c7c3c6c7bd617176374617 distroprefs/AUDREYT.YAML-Syck.yml
SHA256 527ddfd94ed5231ff8fe2dece3c34d535462e1722719df40382e5196da2f1272 distroprefs/AVIF.Time-Duration.yml
SHA256 225ebbff78925afb254b31688bd0e27eac72bbdbf8548c0d137d6001f419d29c distroprefs/AWNCORP.ORMesque.yml
SHA256 4d61af10ed8ed633c318bad467c9919fd23e3c3b620172d4d087a4c6a611c8ee distroprefs/BANG.Unzip-Passwd.yml
SHA256 cec58fd3370297297130d12a28861ed84bd2507ef62ed7bdee1e3dc326fc3ef8 distroprefs/BDFOY.Business-ISBN.yml
SHA256 ba8d5070d0988bfb747262b0141ade08e6d8079fd9970030c92073d9c31c112d distroprefs/BDFOY.Module-Release.yml
SHA256 339ce15997b5f2e495511a11ff356d4a6639e76c59c1515ea2e35445d5ed68d4 distroprefs/BDFOY.Test-HTTPStatus.yml
SHA256 af43946d36d50d5ee054c14d48348831cc9b797d1e34ef3871ba2a44cd082635 distroprefs/BDFOY.Test-Output.yml
SHA256 9e656f5b8216d961360a99231040024f38255f21608617f987b8081f7c9f53fd distroprefs/BIGPRESH.Dancer.yml
SHA256 a065b75ebdfd9ac21a8fc9b395387a28f776b17ec19be58af6fe6dff76fd91a3 distroprefs/BINGOS.POE-Component-CPAN-YACSmoke.yml
SHA256 ec29a7db2910b08028507498c65e68b2d33a8109234b8a65f590550611f919d5 distroprefs/BINGOS.POE-Component-CPANIDX.yml
SHA256 b80c1066da767efb412da8f7feb135905f57eaf178f170c676942766292f955e distroprefs/BINGOS.POE-Component-Client-FTP.yml
SHA256 9384e08678b94d5b8aa48935ae8911de9001d553c8a2893d314e96d52620879e distroprefs/BINGOS.POE-Component-Client-NSCA.yml
SHA256 3fb99960a0d38812efce215a6cc234a5a6223a5c7ebe6c67f15e55accc2a0cff distroprefs/BINGOS.POE-Component-Server-NSCA.yml
SHA256 da90f65c7d66831ce197a37a77a895958ec38c231a44f1e246878bb0870d6ba0 distroprefs/BINGOS.POE-Component-Server-SimpleContent.yml
SHA256 447a61b4911dc9d21c9407fab779258ce45d68e10efe5e6fb1bcd0c6ec75232b distroprefs/BINGOS.POE-Component-Server-SimpleHTTP.yml
SHA256 731dd35feaa1f2a1ecbcfa4b39e40a575374f4be123305dae600de7f3c86a095 distroprefs/BINGOS.POE-Component-SmokeBox-Recent.yml
SHA256 8f229e5f8c6e6869ad3a9fe5157f877d7fcb51143cb4aee7205c2d59501a9e7a distroprefs/BINGOS.metabase-relayd.yml
SHA256 885411ba8336cb04ed4c26c0ff9a33e3e31ef1cd406bf1a3266c41d76d1f4f92 distroprefs/BIRNEY.bioperl.yml
SHA256 6b713cb18f3d00434dc259ea4673376b48b9303babcbc80c8903e7266f4bea55 distroprefs/BJOERN.Graph-Feather.yml
SHA256 0f36a1f34b3dc10772860f17a23e3d49debf07d4b349fc9945c6749dfeb2d6e8 distroprefs/BLUEFEET.GIS-Distance.yml
SHA256 55de165246f7233e125bd8eb8ecc4eb6a0f58eadfafb61b36c322c8711307175 distroprefs/BOBTFISH.Text-Markdown.yml
SHA256 c2ba7862bca2b9228de26d8d8a4620c021718915b803bdc9562bd6d03a97a8e2 distroprefs/BOGDRO.Asm-X86.yml
SHA256 9918a98551da3de8f313492ac26770df576dd70dada02960974add9a732373b0 distroprefs/BOOK.Acme-MetaSyntactic.yml
SHA256 c73b5f224b418c0cfb242718f139159f0e7901f51abc4bd5d2413b5f12a63dd2 distroprefs/BOOK.Regexp-Log.yml
SHA256 66aca6582885c58f15df7079be7e2f02840316e751ba513b8d911b7a1801b17d distroprefs/BRADFITZ.Perlbal.yml
SHA256 7c209c4e7164f0c14ca28d17e6b463fa3ed8f617c0ae48f8173f01e3489b3dd6 distroprefs/BRIANSKI.XML-Comma.yml
SHA256 ada600a093ecaea1fb8a9573820865c154fd4178c217c6b36032e21d0e1c23b5 distroprefs/BRYCE.SVG-Metadata.yml
SHA256 98b2edcdd03d536266a9174b7ad062cc1590ff11e970732e8a7b161705c80ff8 distroprefs/BSMITH.Devel-EvalContext.yml
SHA256 fa7ed113e9d188d8a0eeb0297b12b99069f52d5a0faabca24fef480c2a013b4a distroprefs/BTROTT.Class-ErrorHandler.yml
SHA256 da31fd37a23bd839f06f037dae8c4a267e99c2102ffe549ee4561eaa7f33f755 distroprefs/BTROTT.Convert-PEM.yml
SHA256 6b68b7e50b6fd8485f689cda87c07406ded685a1f4320e6566e712d2d31add93 distroprefs/BTROTT.Crypt-DH.yml
SHA256 aabcc4b8f5a06f68f13ff0e0046b6d2adcd2d723101eddecbb3294dc0342d054 distroprefs/BTROTT.Crypt-DSA.yml
SHA256 19531bed7536213362e290bd55649e2c0a36527327640a0e1ed9364bd5e4ea50 distroprefs/BTROTT.Crypt-OpenPGP.yml
SHA256 053c2891c3d6a474c9d16045e9b21466ecf84191aaeb8b3ef9292bc048ecd06d distroprefs/BTROTT.XML-FOAF.yml
SHA256 318fb1740eac6a5d4f374515d91a7b1477f88c24c44de7fca2203e2d9f667374 distroprefs/BWARFIELD.GDGraph.yml
SHA256 b534135ae93c5cb4f60e5f6744585a992952c5e85b7d2c7c599370f9c701786a distroprefs/BYRNE.SOAP-Lite.yml
SHA256 2a7b78d50393f08ebc15ae46836d965a2589c0cbc3fc33f965bef3add2cf323e distroprefs/CANID.Data-RecordStore.yml
SHA256 f4790311c7f61a16489ee60dccf8f325cc4cf49d84fd5190bc8477ed1051d592 distroprefs/CAPTTOFU.DBD-mysql.yml
SHA256 aa4c72d91eebe744c70ac6eca1fc05fd59fc461aae36cdeccf50e00d7c0b3c08 distroprefs/CDENT.Kwiki-Test.yml
SHA256 be1521c7b7ed710cab0c16b12ac8f1b783cf240b2cc2c344614569bfe2413bd3 distroprefs/CERNEY.Tk-IDElayout.yml
SHA256 ad9e253bfe8dc05743cb5da0f4bd530ac3f2b34f0b1429604ad5673fa6d6aea7 distroprefs/CHANG-LIU.XML-Node.yml
SHA256 f7fa418d226d5cb12542f2bfe162aa968c9939952f31651cdfbb87f4b6fd5047 distroprefs/CHARTGRP.Chart.yml
SHA256 600968340a2ace694dd28590b99131f063e28b48acfcaf20a00fac222077c1e1 distroprefs/CHGEUER.Crypt-RIPEMD160.yml
SHA256 044b521d9cf7af8613bdbee60c32ff657272fd65ab5afb55e15ae3aefbbe233b distroprefs/CHISEL.Zucchini.yml
SHA256 1bf28a4777ba85819d7f830189991f9372cea5c03e0e08cf994dc99c4db90cd2 distroprefs/CHLIGE.Net-Bonjour.yml
SHA256 f9a44a085cc23630c7460b053f5f653d35c7f536d84101af9d2adb04581ee18a distroprefs/CHOCOLATE.Scalar-Util-Clone.yml
SHA256 d4189870dabeab29a90358a9423b64461dde0be2917f889e1f5d20cb5e168411 distroprefs/CHOCOLATE.autobox.yml
SHA256 b975cee0136f061eec8b255c1dd70acec5163c3d7024a4ed85624f3acaa25ae3 distroprefs/CHORNY.Test-Warn.yml
SHA256 5d7905e71608c0f57eff755b28b2b65cdc54607da99be677e257b28d119cd55a distroprefs/CHROMATIC.Class-Roles.yml
SHA256 ae1ee6ef3da37b7dde3c278a25395b5a401042c52463cad21f2f614c0375928c distroprefs/CJM.Pod-Weaver-Section-Template.yml
SHA256 f1ef33d958b23554e2a27777914196aa17b8ae66ed9a99d758a9b047d10b02bb distroprefs/CLACO.Class-Accessor-Grouped.yml
SHA256 ae7a7ecd62f5bb6824cb9bee1d619e7d2ea049be831d826d40b53cb2e53f941c distroprefs/CLAESJAC.JavaScript.yml
SHA256 b6ad13628924767026ec916b737b10ac287cc42e3422ff42dbe2f54378b3f8de distroprefs/CLKAO.App-CLI.yml
SHA256 700270bb3ad2f8e6571d60c1634c85eeb2a90ae2d61d0637b2ede38c926b1f8b distroprefs/CLKAO.IO-Digest.yml
SHA256 32f93961b64fcc19f67dd1b5727d59d74e3c5beb0fad34093c35d361616204dc distroprefs/CLKAO.PerlIO-via-dynamic.yml
SHA256 a710b63914a2e034e0fa757cf47a06b39bca5b306b0136989e623c4a74944947 distroprefs/CLKAO.SVN-Mirror.yml
SHA256 c60242404d7247724acdc6bb1e44bbab38a2fe6d66ef90fe2846413d6078d767 distroprefs/CMOORE.Archive-Any.yml
SHA256 e8067f5602f0e6aac758e66b54d8ce86c8d15d1c120b49286a31c18fc7b3f039 distroprefs/CORDATA.Kwiki-Formatter-Emphasis.yml
SHA256 3aaf04b791fdfa6255ad39840e260c76102e801d277f6e5d81f435e79e9f963d distroprefs/CORION.List-Sliding-Changes.yml
SHA256 1ab1fc7c14c853ae100a286684a1d54d562b83aa149dd46bc669bf1ec3a0142f distroprefs/CORION.WWW-Mechanize-Chrome.yml
SHA256 c4c9747357e7966f9e7ff0ba4416b1ac94e58fa7c637d9f32acca7a6c4d127a5 distroprefs/CORNELIUS.App-CLI.yml
SHA256 a34aceb7d17e7d1615dbfdabfa82270e95f6aa4845585edbf82ef93d459db292 distroprefs/CRISB.WWW-Curl.yml
SHA256 2dd8d16bb49a8815a901658c9b83cc605b54398f9f164712298107eaae8c95b8 distroprefs/CSOE.PDL.yml
SHA256 896185c2d83018c0da8d6e7133628ab91e65f10f81859325c5fd7ccb3d130f2f distroprefs/DAGOLDEN.CPAN-Reporter.yml
SHA256 408b63b2e68ca175db945d9abe67b99c46c3ef6b1f95f2eb363919e826f6712e distroprefs/DAGOLDEN.Sub-Uplevel.yml
SHA256 c3361696635fd2f4ebae7749b3d648de7f60301076654cec82b2a53f21794cd0 distroprefs/DAGOLDEN.Term-Title.yml
SHA256 3495c4cc9ebd1f6ff57e715f5aebbcf0697058f67b9e4f0ec58c64559f31e4bd distroprefs/DAMS.RT-Client-REST.yml
SHA256 9d98c648fa0bb9f4a5d3f27934ceafd4146883701965816e6a6cb89f17ef59a5 distroprefs/DANJOU.Net-Google-DocumentsList.yml
SHA256 818681a21105d73946c4e67aab62621d16c0b29d88ef05824363a951adbd9e08 distroprefs/DANKOGAI.Regexp-Optimizer.yml
SHA256 1151263b1dd8fc3e55488b9a44d20ecc41480ae9ae7d7d383b91c50be6ae9566 distroprefs/DAVECROSS.XML-Feed.yml
SHA256 c30da7abb7dfc9eac21244db1dfc5664417618bbdf45ca4ede20b3a2585f8b26 distroprefs/DAXIM.Yahoo-Photos.yml
SHA256 eb14582f0500d8b6267aeb3c5f94a56bb2e56bb25a957fd990182d55a90865a0 distroprefs/DBRIAN.XML-SimpleObject.yml
SHA256 5b27cdcdad1a0275f49078e72091ef0623cf4c3c513d39fcf89bf7bfa7b497d9 distroprefs/DBROBINS.Net-SSH-Perl.yml
SHA256 29b4f0c3e5570e8934477b545ec03b4c1dc111bb1f486b7d6371355100dd7655 distroprefs/DCANTRELL.Devel-CheckOS.yml
SHA256 2dcaad1ed3a5a0f59f4c01b26a2bedfa08af87888a7206120420df65412041c2 distroprefs/DCLEE.OpenOffice-Parse-SXC.yml
SHA256 00c215600afeab56ae67b3e4d41c26d7143857ca4a2cfbae602381b6addc58b9 distroprefs/DCONWAY.Class-Std.yml
SHA256 24b379da511aadeb33c0b44127310303e508b04b05698597b4811414d44eec2c distroprefs/DCOPPIT.Mail-Mbox-MessageParser.yml
SHA256 d749b63cac75d746f40a04651944bedc649b335b0239d9ab8fb77d5f00859db4 distroprefs/DDUMONT.Tk-ObjScanner.yml
SHA256 751a14791276dc2d3209ab2f8a782d5f2a651117d0109a728c2c53dafdd02bf6 distroprefs/DGL.JavaScript-V8.yml
SHA256 189472fc6e393cc9a100a8e88dd589da882799d615286a5bc0d09282400d2a10 distroprefs/DHAGEMAN.TEI-Lite.yml
SHA256 9734f39714c672c45c0d5b9265b22cb42dcb9e86f650c68978172ca74cf652ba distroprefs/DHARRIS.DB_File-Lock.yml
SHA256 c654dd030cc4ef318bc5d6afc3cb7bc0d42bc6cda475bd06859f4cfd58bf2717 distroprefs/DJBERG.Tk-JListbox.yml
SHA256 7b83ad6cc49352af868aefca3403cdf2aa464bc4f6740ee10e09a2791ca5145c distroprefs/DJKERNEN.Mail-IMAPClient.yml
SHA256 25aefd48e843b4b00485707d46b1acab878afc73e26b359ecb30e2b895ce3381 distroprefs/DKWILSON.Tk-DKW.yml
SHA256 ccb0d8788e70b5944ec940dac0545248d69d0f5c817008bed85110d8cf1902e7 distroprefs/DLAND.Crypt-SSLeay.yml
SHA256 f74270e11be98742c27f87aac356cf4fb81559c744f483ee34fc2cf8b5416c86 distroprefs/DLAND.Regexp-Assemble.yml
SHA256 47ab7985ad9b2e09791ecacf803ffc880ddfda25a04b89ba5c369fe15c38c2c4 distroprefs/DMAKI.Class-DBI-Plugin-DateTime.yml
SHA256 c2cf6c89d8e89d7630f8b7bb91b323bc52c54d00f3e7314d6531ed0c00923cc0 distroprefs/DMAKI.Data-Localize.yml
SHA256 c479428cea3d379dbde749f7d8356fa95ef767b7eaa389281a7c79fd433b0356 distroprefs/DMAKI.DateTime-X.yml
SHA256 89f6c69d9ca4064b962b12349a2fd0eadb8bcec43a3bb4c9e9e1991517c5b460 distroprefs/DMAKI.File-Extract.yml
SHA256 093bf8a08fd1efbfdaf43620946fc2f7435c0a53d32ff2fa41811db6155ef8a8 distroprefs/DMAKI.JSON-RPC.yml
SHA256 764ff7eb3547809960318fdb1f5189a2e33150cf1e5dca5828452f6440c4fa8b distroprefs/DMAKI.Xango.yml
SHA256 ab77b0100ec32bc3d865a3c1f43061e093e224b9ad845545b117af121f307871 distroprefs/DMARTIN.Unix-SavedIDs.yml
SHA256 9a89538dd0a39773367ce896ef87a64f127b5dafbcfba0c2f94f9df970dcd270 distroprefs/DMUEY.Authen-Libwrap.yml
SHA256 ed2fd55e9ed10251578afcbed63b4fc3564ec356b877ca8166a805106f78f258 distroprefs/DMUEY.File-Copy-Recursive.yml
SHA256 ab3d977ada7cbe49f647cfe954f69ae61c096147690e586b6b6826fd6916aaa4 distroprefs/DOM.OpenGuides.yml
SHA256 74372afab4600d290da6eaa70abcb0e9f3155109ab19536b831d2eba51cf8cb0 distroprefs/DOM.Wiki-Toolkit.yml
SHA256 a551af23a6e5bd993bae25738307012b5067d92c4b1581bac5baeb13ad04f29c distroprefs/DOMM.Module-CPANTS-ProcessCPAN.yml
SHA256 fadb9f960afbdc4e4859b1a5055af2632b7d2e2a800dc86eab69a14e867d4376 distroprefs/DONEILL.MIME-tools.yml
SHA256 58482a22b1159188eab03287f61a546734ea766b88becf0d59032c5e41837a6f distroprefs/DOOM.Text-Capitalize.yml
SHA256 784c08f674dc5ea38031a159b1ef9caf24ab29b62481b3328a22c0cf3c474d53 distroprefs/DOWENS.JSON-DWIW.yml
SHA256 d6d98ef696ccec892c80f303158cc68f616f102243c2013454ba74d86a24e851 distroprefs/DOY.Package-Stash.yml
SHA256 e4065152f43267a326c769c70a1735347121f5c24ff4ad1ba774b27752301f84 distroprefs/DPARIS.Crypt-Blowfish.yml
SHA256 1fbbc2b24bb69472bcca3fe1ac8c27aa62bb9b38aee40d9b97cb0f150b4b992f distroprefs/DPARIS.Crypt-DES.yml
SHA256 10a13965986d5ee3661f766e4ba8a01cbfe72286174152eafec19cb7cbc99007 distroprefs/DROLSKY.Alzabo.yml
SHA256 0a22e2611c4514623ba6ae7eb4e0596f6cf749dc48814982cb0de96be238be3b distroprefs/DROLSKY.DateTime-Locale.yml
SHA256 1f00dd7798ffade4773839df073d397ace92824cca9fde046e7d70011da5f61c distroprefs/DROLSKY.Devel-StackTrace.yml
SHA256 cc98c24cdcf450045d08fc3a19e4768aec2992c3bb314a049b28112d5978b06c distroprefs/DROLSKY.Moose.yml
SHA256 6fd8eba6471357b2e42205b3f0e42c3196a423bdd634f626c225d4b00761bd5a distroprefs/DROLSKY.Params-Validate.yml
SHA256 c9fc98e67d394e3bd052788be027e8423fe863bcf7b9bb9086cbea012ef25424 distroprefs/DRTECH.Config-Loader.yml
SHA256 27fe7a89622959ab136f3bf9bf8f8d30aa5ca4b5eda9286001e67d418b8cdbf0 distroprefs/DSKOLL.MIME-tools.yml
SHA256 658f7a7806dd09fd5afda6b8087bb0174090b8914ece1d83e69ef68ea44f0fb3 distroprefs/DSUGAL.Devel-Size.yml
SHA256 27cd0ba511fea3ec985f0ab6455a468880e936fe9054524c01a2a9b7a5dbf77f distroprefs/DUNNIGANJ.Tk-CursorControl.yml
SHA256 05086ccff232bcbd9eda63c578d58332689d20dd8461d23680b244931f0844cf distroprefs/DURIST.Proc-ProcessTable.yml
SHA256 c925dd0fea4103c7856bc33ada03b8452a595965adafa93a54c169e6dae2dfb4 distroprefs/DURIST.WWW-Babelfish.yml
SHA256 ed6beb84a7131a43990530d2aa8bbf6205bd5cee4b32c00fba1108d82f539c5e distroprefs/DWHEELER.Params-CallbackRequest.yml
SHA256 e2a6c98de5adc0d72bf66a29a38c85fb0164a08f2352351f06763b36ddc8a048 distroprefs/EBOHLMAN.Text-Query.yml
SHA256 c0597a1cc2caa76ad5d27ccbd009fd9f0d334c5c0884d0af1f40f353d6a3af3e distroprefs/EESTABROO.IMAP-Admin.yml
SHA256 be70f05359c2dd6501412c346e0249ff6654d28c1e7a937a9265dbc688ea30d5 distroprefs/EIJABB.MARC-Errorchecks.yml
SHA256 6fc095030a5808e37a8bdaad4f7d1f322586ff41c8dd13c80e5f8b004b15ceff distroprefs/ERIC.OpenThought.yml
SHA256 c7e80559e21c4de82f9c81f3b7ec6f960c5098ea9959d200d5d70a285b8ce7d2 distroprefs/ERYQ.Convert-BinHex.yml
SHA256 b1676495bc2231a07220d5c87c71338479d24e673047503139d667081cae0c59 distroprefs/ESUMMERS.MARC-Charset.yml
SHA256 bbdd7096f2296ff42b61861deb1e0218f30a038ef98ed1220bc584990c6a75c4 distroprefs/ETHER.MooseX-Getopt.yml
SHA256 7108da49b6b45a381ceb104974cef5b63845f4c6dcfee3eea4b747403b7bf48b distroprefs/ETHER.Try-Tiny.yml
SHA256 861626bd21abe1eb177c9128fa6225015bc56b2ac6a97fb40abdf7de9c32aee9 distroprefs/EVO.DBIx-SQLEngine.yml
SHA256 b9e1ed4377de3fbe3205fdd9140249458509a2886e7deeaf7e8e9683891d0ce3 distroprefs/EWILHELM.Math-Vec.yml
SHA256 c86483e65961dc5a5435e9840ed0d7e4cb91903f6281ffc146a758efc911df4e distroprefs/EXODIST.Test-Exception-LessClever.yml
SHA256 08a37f9bd9a38739e3fb66577f88a81c6ae8cffd3fe89540e6a53843ef2d96dc distroprefs/FABPOT.Plucene-Plugin-Analyzer-SnowballAnalyzer.yml
SHA256 d9ba123a9bf9259fd24be5afd294479027be5e9a372cf7c9d4166e8eed5e0a9e distroprefs/FDALY.Test-Deep.yml
SHA256 ffa2b7b3d036eb453d357f789ec5f8d42aa62475e3e92e743eecac2a3c968033 distroprefs/FHOXH.Test-Reporter.yml
SHA256 663a27f879306d15b7a357dff7607799600d7de763b2c9f089151dffa33db616 distroprefs/FLORA.File-Extractor.yml
SHA256 29ad885407fb32d865a727bbac6b1716f4510879408bd6a98e693969ec16e92e distroprefs/FLORA.MooseX-MultiMethods.yml
SHA256 d16b307222c53a59386936a5c781e8dd725bcaca061387a2f2cb8fd0f68454d6 distroprefs/FLORA.Net_SSLeay.yml
SHA256 52c463267b92c3fd7dd0f741cd9023af4091bb87a5e13110ab5ee214acce4a57 distroprefs/FLUFFY.Class-MethodMaker.yml
SHA256 407101a378c835832b87fb3493dd85b3af0c7616cc6ca51203fa5fd5f1bdab10 distroprefs/FOTANGO.Data-Structure-Util.yml
SHA256 aa56ab1b8755a182ef66a7d2b02bab26a71031f45cf5a75420ddaf3c3b3ff2d7 distroprefs/FREW.DBIx-Class.yml
SHA256 fa0e7526ea3d34be7367fa2b443e49c8b17b307aabbaa1e9be8d6f00d513783a distroprefs/FROGGS.Alien-SDL.yml
SHA256 ddbe15322981336dbfba2ab7a4361b85a326b3228153fe7917fc7088cb6b8e4e distroprefs/GAAS.Data-Dump.yml
SHA256 ddf3d1879c4d8b817a287d26565be29383a14ead58582fe2a88e44f9fd591598 distroprefs/GAAS.Font-AFM.yml
SHA256 99eee187135555e8850606eee70e54836a46c2c00cf0134d347562c973b270e0 distroprefs/GAAS.HTML-Parser.yml
SHA256 6d2403a357d36b41c8cffed8487d004cf3511140cc454ad7b060c8bc50ce2b98 distroprefs/GAAS.HTTP-Message.yaml
SHA256 028aad182a402bec72fc9b889e6c57f5c472f726d9faea8faae9d5e0ff7a9d73 distroprefs/GAAS.libwww.yml
SHA256 3903a9ab18157a52cf48f92b611c9f12c14e88efbf43b08b3e54ffec7d80e3df distroprefs/GBARR.Scalar-Util.yml
SHA256 9270ca7d0fab1be9a1f8be06f2684bc6a611921a3d7b2bd087d9481028ace8ae distroprefs/GBARR.libnet.yml
SHA256 fec0eba309bd7a044ae79307f402f5bd762c7c76780d5159522359526e1d02d8 distroprefs/GBARR.perl-ldap.yml
SHA256 66e1d5f182414e449cb51f8d7f6d113d759b370d30a744db2d19e8941c9fce5d distroprefs/GBROCK.Tk-StayOnTop.yml
SHA256 4d0eee27fe9006ba629ae048ce1e700199caf51ac8444342a2cd4f802e4fada9 distroprefs/GEOFF.Apache-Test.yml
SHA256 09bc9abde29bb5bac079e2caef1f6a02ef4be78a2c38b4664033db1263944bee distroprefs/GIRAFFED.Curses.yml
SHA256 7f8578423fc9a6f17e5aefdef2489e86634158bf0b856dce1dfced39740e9bd6 distroprefs/GIULIENK.Audio-Beep.yml
SHA256 ee3bebc56112cac13112166c0e50b83501fcf7236cae144a4379b04b73d5f8e0 distroprefs/GMPASSOS.XML-Smart.yml
SHA256 d31c99c755185dc49f9a78d045a3efb1bb8bb02dfe34f72a3d5d430f90947ff6 distroprefs/GOMOR.Net-Write.yml
SHA256 4fe7bbbe651343c0d505dd10c4c8da9988a0bf938b5c45b8d26cb9bbb20f412b distroprefs/GOZER.mod_perl.yml
SHA256 8422daf8b764912b5479a8d4e0c5dd0148d144d4281d77fb55085b452e743eb1 distroprefs/GRANTM.XML-SAX.yml
SHA256 973735affb24dbb8aac6dd744eb7c10c4f7c17520d8142f23781654c1359f205 distroprefs/GRAY.IO-AIO-Util.yml
SHA256 9e507855ccf2be1ccf51febd87c8a8adfa4ef395da78f840473e327a17c7670e distroprefs/GRICHTER.Embperl.yml
SHA256 b9443b9874c2f55ad4637b92034f29290bf106eae1226ff222d9cd070eaaaa3c distroprefs/GRM.App-CamelPKI.yml
SHA256 7d0e99daa19a39b22bb53bb5f2110e6362420138b131028756228fd04bd248d3 distroprefs/GTERMARS.Apache2-Filter-Minifier-JavaScript.yml
SHA256 115b03cbc93e4c2f0f5a545850f4b65f348ed2a0c9d5e681e7095b1a66d8b7e7 distroprefs/GWADEJ.Device-USB.yml
SHA256 f65576deafc1f235418dbe7592f19f2b8e177494a3c24383bd688c9b1483e746 distroprefs/GWYN.Data-Tabular-Dumper.yml
SHA256 88ae35b02bf80df1b523ca2445e8987910711008f7b32979b7e1d0d54fcc6dd6 distroprefs/GWYN.POE-Component-Daemon.yml
SHA256 a542504b82120a17722a536ca47946734dd879a0dbfd0732cf2d023939b5530e distroprefs/HANJE.Syntax-Highlight-Engine-Kate.yml
SHA256 3d9fa231c974ec68a3b4d050695ec761b3f57632302b778fcdb719c573510be7 distroprefs/HAYASHI.Term-ReadLine-Gnu.yml
SHA256 3e16d8cd76431a77fcdeec7d36a7229afb1bcd8c55d3a0d26ad203c83864a0cf distroprefs/HDP.Perl-Version.yml
SHA256 61968f7dc8061f9ee8b3cd3a8f309b5201c2dc1376302cf38b3618e9c44e536d distroprefs/HERMES.Hash-Merge.yml
SHA256 b73746bd25cead305c37cdff279d1774dc4dbd150d54cda9282e07233aff1b39 distroprefs/HMBRAND.DBD-CSV.yml
SHA256 b57e8e60f3e6182c7d274d57f66ffdc4b9b7902ed2e97a4d04ae5acec939993f distroprefs/HMBRAND.Data-Peek.yml
SHA256 683be03615322d45eb3364a78b8fce6cc66650974a1f66196514009954f7e15c distroprefs/HMBRAND.Spreadsheet-Read.yml
SHA256 98d1b8f9c235257a27aeba995d864fbdb75b628d3b64ae6d98aa5ce4c0487c03 distroprefs/HMBRAND.Tk-Clock.yml
SHA256 ae4f7e5d5e91d9fd35d6cc1a76da5f1ef526d436b152011e90c9c80cb1087cbf distroprefs/HORROCKS.PersistentPerl.yml
SHA256 5621a5d83a8a3fb142678bba7ca7b20438f905344e192b13bbfa88b6f8242244 distroprefs/IDOPEREL.Markup-Unified.yml
SHA256 07a7175cf5ba40320caa2fe5c0158e6abd5307cc784fe2cb24347fdbf7a491ef distroprefs/ILMARI.DBIx-Class-Schema-Loader.yml
SHA256 96f25153122d121331e0288cdef6d1ceb99d96b37e38bc915f18c6aadf896d49 distroprefs/ILYAZ.FreezeThaw.yml
SHA256 52492852484eb0ac281eaeb1e9fb0acc782a5601bcf3c00fb5b9c49cdd986fef distroprefs/ILYAZ.Math-Pari.yml
SHA256 dabcd004b4416e8526db2a263e7d5f1101c1e1dc11b517d6d9bac4ca986cf220 distroprefs/ILYAZ.Term-ReadLine-Perl.yml
SHA256 d7d5578022812b38fa2168ca03fb6b1221183b0998080c497e979ccb03c0d9b8 distroprefs/INGY.Inline.yml
SHA256 392aebbff00229c5af58ff8f8876b636e1dfdab86121f54310165cab6f4663a3 distroprefs/INGY.Test-Base.yml
SHA256 7e3ff3901ad59f16bece81c2d8d43f346cda17cee4dc7742ee2e56121c15e38b distroprefs/INGY.YAML-LibYAML.yml
SHA256 6a84f36c5ac5ab33add2e4217fe9eca80ea1abbbb8e02ebae61d7c8fffe0f737 distroprefs/INGY.YAML.yml
SHA256 2244029634e8a2214446dad090c572709d8d7c43a7b9783c4634ccb41d11dc23 distroprefs/ITYNDALL.Net-Amazon-Thumbnail.yml
SHA256 63195fe06dbd5b83ba948427988c3a6f3f1228b26f7af11403cc275a8f2cd31b distroprefs/JAYK.Catalyst-Authen-S-D-C.yml
SHA256 08f52866425ce849a4318e144a2e9517083c4d1b5e5f00809e19c43fdc89dcf2 distroprefs/JCRISTY.PerlMagick.yml
SHA256 ad06c2308383f7f6fab4e7ca5e399459beaac91999ccc87e7e9112e758723c29 distroprefs/JDIEPEN.Audio-LADSPA.yml
SHA256 e321cb16df65b55adf024c1ceff49c23ca19d8838d7866394b8b231dd5f9c0a9 distroprefs/JENDA.Mail-Sender.yml
SHA256 e139381c51ca115c84f421777e6e6009dec7b4032395b1f9394de088bbad7ce5 distroprefs/JESSE.HTTP-Server-Simple.yml
SHA256 d27dc09b9223222e803f4ffce629da357b7513f308d80a650f5b4b1c5b864b69 distroprefs/JESSE.Jifty-DBI.yml
SHA256 ed22eeec365fdaf77f295cc8c9143248ff6dab52d2e7705bd6f08e514c94ae6f distroprefs/JETTERO.Term-ANSIColorx.yml
SHA256 92f40552e7f6deb7c41a3c91fbbe3173ffda75abfcd7dd0039443f21fbb9b718 distroprefs/JGMYERS.Encode-Detect.yml
SHA256 825c068325a57e6a78ad77dac47d7b3e21b3a4c89215b7fab47680a5f9f4c587 distroprefs/JHOBLITT.DateTime-Format-DateParse.yml
SHA256 676b8810d8589639cf11703f05f86d4c6536dc9869cbc738d760bdb566094fe6 distroprefs/JHOBLITT.DateTime-Format-ISO8601.yml
SHA256 8d89e3365b98314aa250dba0f633d8f502fa0a49790420a858efecdb964a0565 distroprefs/JJORE.AI-Prolog.yml
SHA256 eff63e07b77ddf676479500ab10184fce79341b78e718ba07764ca466d831b45 distroprefs/JJORE.Alien-Judy.yml
SHA256 8ccb0da8b1671f9c36e16ce7c34de37faf3b8a2203ffeef2be56624de8dff550 distroprefs/JJORE.Carp-Clan.yml
SHA256 f74175db5559a2997244741832e8e519e80c8663c45958b11554fffc18a63aa2 distroprefs/JJORE.Data-Dump-Streamer.yml
SHA256 9fac41e6e7d215b39ffb64b1aedbd9ce2228f7368edc0084ed6e9e3a6fea5f9d distroprefs/JKEGL.Test-Weaken.yml
SHA256 478974696f40fae919def531e36c65a57db6b8cfa654d819636ef673c8794a29 distroprefs/JKUTEJ.IO-Any.yml
SHA256 76b4200683564791f6df1a52a7a2e184df7f8e3ef4022758c51ef54c981f1a48 distroprefs/JMASON.Mail-SpamAssassin.yml
SHA256 44083f7e2a30aca10710a730c207a2486f5158355da1d20444f86e0aaabbe72b distroprefs/JMGDOC.OpenOffice-OODoc.yml
SHA256 a43b77b3bc7c6ec577514a2869fc02e6c28a3e937dbcad9181a9487c3095d9d2 distroprefs/JOHNL.DBD-Informix.yml
SHA256 fcc93b992ec709224ce5a5687adf54da2b2b4dfce76cc06efba77f891338d997 distroprefs/JOHNSCA.TkCarp.yml
SHA256 c58c0d7db09b2e6f6d48da10964f09f6b3cf2e9f69a34f796ebf50e76fc471d6 distroprefs/JOSEPHW.XML-Writer.yml
SHA256 3d8c763cc3d637ed59f93f9f4fdc3057ea58a92d976eaed2c8df44a245fdffa3 distroprefs/JPEACOCK.SVN-Notify-Mirror.yml
SHA256 a45d2a13f4ebb1aeed424c4886e82c08b09af83d1930bcad391e0208fc7f3e51 distroprefs/JPIERCE.IO-Pager.yml
SHA256 77a483fede457f192fef2767c39246a2ce9382991cdc00fe346b327b47a0e138 distroprefs/JPRIT.Event.yml
SHA256 3d9a260e16aad0af0db11c83ba919b0a4d068b38f1863a97613ecb4670f9cd0c distroprefs/JRENNIE.WordNet-QueryData.yml
SHA256 da70559730ef77b445811529820f9d626728b074767dee0cc1a0a5bbfd8c0592 distroprefs/JROBINSON.SQL-Translator.yml
SHA256 494d56d60b961a456e5eca0305085c9f78b87cc6cb6ace434ba7c30bc0bf6d96 distroprefs/JROCKWAY.Chroniton.yml
SHA256 fd6bbc88703c92c4cf95134e82e05c30d5a95bbfc7e273e7096664ae1062b425 distroprefs/JSHIRLEY.Catalyst-Action-REST.yml
SHA256 708d2006278b84be590cd7eef8a4a34ea12f6861993ef17e36ec67bd948a9690 distroprefs/JSON-XS.yml
SHA256 1b0da53e400905f1830344eaa92edb1e4c38cf0142d580fd30a049af00be2d0f distroprefs/JSON.yml
SHA256 c003480eb28686a188b00d0442241f7c4508c53a240d052310259a1a364fbf9e distroprefs/JSTENZEL.Getopt-ArgvFile.yml
SHA256 584dd66ddcf93262d1be24b9251eca8f8c8579f9acf029dea10f53f3a8b8588c distroprefs/JV.Getopt-Long.yml
SHA256 8dbbeaeec17422f3e42dfd026ab6cf881b2edd7484a5358419c471ba7382618a distroprefs/JZOBEL.Cindy.yml
SHA256 6886b402c5333faddcfdf31a551db594630244e7917d00515820bd0611035f37 distroprefs/KANE.CPANPLUS.yml
SHA256 33350aba5cc62ebcf36fa39d0732bcc1914da0350f0215f6a5d2b367c5d8d88c distroprefs/KAORU.Geo-Coder-Many.yml
SHA256 0a3ee463143648d6eb0e8972d31ff60df3b3eca3ac210da7af3b72186cf371e6 distroprefs/KARASIK.IO-Lambda.yml
SHA256 1d0cb55ecad91dd0ae515ce3fcc5c01ddacda3dc7eaf7e688cdda7e21af917c4 distroprefs/KARMAN.SWISH-Prog.yml
SHA256 a6735d17d1d9e9137af332268c755868f28a142408e700693da10ff52e2e43c1 distroprefs/KASEI.Class-Accessor.yml
SHA256 27727bf84d2ec851c77b0f7fe039bc8d580e8059bcfdce386fff7ee9b14f7c76 distroprefs/KAWASAKI.Lingua-JA-Romanize-Japanese.yml
SHA256 82530e30bf5d20e958bffdbe098754aed058e04b5d50793c47af584498aba0cb distroprefs/KBROWN.SOAP.yml
SHA256 fde4654499a21309b6e4be36c244c70c58f514cee4d89d54998b584d8411f349 distroprefs/KCLARK.SQL-Translator.yml
SHA256 69f1354cb425db042bb71ca47a1cabc0234d4c053d53ed0d44ec8ccd522b7bb5 distroprefs/KNORR.Net-MirrorDir.yml
SHA256 f0a8ca1ae144cb165232b5fa564d7213701bbdb1af9016202b4e0de0b189bb11 distroprefs/KRAIH.Mojolicious.yml
SHA256 e932fa7c86458e3ed5112518dbf0b734eb5cdffc231be02846dbfab8ccaee1d8 distroprefs/KROW.DBIx-Password.yml
SHA256 55dbe7635f5c0df0c95140e03933e3ab4265b71b6609cc1fc2014227e8a48a6a distroprefs/KRUSCOE.Tie-DxHash.yml
SHA256 f0e1313732558db29f28286c69f028d4210fa0c80cfb713ad931b1549015e9ed distroprefs/KTHAKORE.Alien-SDL.yml
SHA256 517a8ff03ceea555128b147c073afedab17d19582f2c975b60bca060c9419ecf distroprefs/KVAIL.Tk-Stderr.yml
SHA256 86b9724e5c47e70d342b8565f3bece146365199c01b3fc1831f02c26e064c41f distroprefs/KWILLIAMS.AI-Categorizer.yml
SHA256 6ed45adf9b5027cbe5b1795ed6b8804e6cb18bd305ee4e395a7ed7bef22b75de distroprefs/KWILLIAMS.Crypt-SKey.yml
SHA256 63a54388d489e690e64ad206a8cfeaad67621fe3c29595e8e9aab42e6877551c distroprefs/KWILLIAMS.Module-Build.yml
SHA256 34d53f4e9ba1fed031d98d03ca6969080e8331b56e9824956430fddc51b9ac91 distroprefs/LAMPRECHT.Tk-GraphItems.yml
SHA256 94626006d1b57eff07fd273dbbc5531a2efdd28492dfdcc050517f484f39dd8d distroprefs/LDS.Crypt-CBC.yml
SHA256 09957ebd8464f161f2dc588f0f2478a5ec54b2263810a4699634ce34e37d0967 distroprefs/LDS.GBrowse.yml
SHA256 118ae2332e48b1da8236237a01ae304a80a257794ada79802aaeb24eb9854f84 distroprefs/LEAKIN.File-Rsync.yml
SHA256 56d21cf99823b65af814ef9154782362d6fe744385539a9c9bf8452c1d60113d distroprefs/LETO.Math-GSL.yml
SHA256 7e3571264dd1df7d90b3e940f25d10d650a50aa254c78c2a92475a78c940ce9b distroprefs/LICHTKIND.Kephra.yml
SHA256 18d88c40ce465683c16c51a0de6a94d2caf73fceef0d8459d078b026490a9343 distroprefs/LOCAL.trailing_dot_distros.yml
SHA256 3379c948156ffac45dc19daba79a7e32dbf3fcc9bffe82beb479feb7d543aebb distroprefs/LUKEC.Socialtext-Resting.yml
SHA256 98412f931ba1098400002ff70f2231e1803596b8c4b81b50b56b3c8b46aee459 distroprefs/LUKEC.Test-HTTP.yml
SHA256 c3cb4f508b5b112a3e0e18bbc62a152e89656260bb4b046e4eeb815b3f01a4b7 distroprefs/LUSOL.Tk-Gauge.yml
SHA256 13117aaa594c7579ef2c13f960b75f4df31f4a8e4fa20c62df8a003b939f4d07 distroprefs/LZE.HTML-Menu-TreeView.yml
SHA256 28286a447312a49d9925c50a3be8e6e280c15f4d06054616e090b2a61e0e1b8f distroprefs/MACKENNA.IP-World.yml
SHA256 d984182a4a5a249583b98ea583fbcd7e798e7dd80871d30972add5b3cc051f9b distroprefs/MADZ.KiokuDB-Backend-CouchDB.yml
SHA256 6e95bd589abfe236cdb750700a4e0580f8846497f4b424962fa62d2dd51ea99a distroprefs/MAHEX.Image-Grab.yml
SHA256 4237ae7a42a6a78087faaac3511fb1eea845c4a37015611d025d9a60ccdc1540 distroprefs/MAKAMAKA.JSON.yml
SHA256 eca40f9fb9a7342f88dbbe6dc5e6b1e8110ff0375606b26314e31eb491794f95 distroprefs/MARKOV.CPAN-Site.yml
SHA256 17326b3a28bcd49774eaeee0a78dcdbd3dcdd305455f8880611b3201896e5caa distroprefs/MARKOV.Mail-Box.yml
SHA256 3a5c6d2295654028d9af6aea475f41e22a3f0fc01494e050a0820b4e726c2cad distroprefs/MARKOV.Mail-IMAPClient.yml
SHA256 bc0f179f11b023f7df81a763473d0d8baafbe8c418bca193a58f1d290570d804 distroprefs/MARKOV.MailTools.yml
SHA256 a788764735de425169ca1b328ebac1b45e88b4f14517dbcdd3d8c55b4ca04837 distroprefs/MARKSTOS.CGI-Application-Dispatch.yml
SHA256 a97215688ad169ae29dab976656c3582084877a29eb265efd79027b68791d86f distroprefs/MARKSTOS.CGI-Session.yml
SHA256 66ddea1bfcd738f5e32deefe670e131cb7920754238894ee22677d2ecda5643a distroprefs/MARNANEL.Locale-PO-Callback.yml
SHA256 7636778b941dc8b3f70a3b35b34fd3bae2281de49839d1a7f0e9795e88c60b71 distroprefs/MART.DJabberd.yml
SHA256 ced956a39df4db6077dbace453a615737fe01f3b99198b566b2a8729308c6d24 distroprefs/MAUKE.Keyword-Simple.yml
SHA256 cc425b91b3057a630dc4db637676f0d3ca154f273700c4ea921adcdfc95f64d0 distroprefs/MAURICE.IPC-ShareLite.yml
SHA256 9c02e0b01931dedfa02951d43411adc305219fff27203e4464db745684e0cd1f distroprefs/MBARBON.Alien-wxWidgets.yml
SHA256 664a830c45f1e2ef3541b0656f416470c5a5e1d533142539e7d6e4696a1658ea distroprefs/MCEGLOWS.Bloom-Filter.yml
SHA256 5c36a44a5171980ca10d79424e4099aad9f8b82541014e6cec52349bf798e4d3 distroprefs/MCRAWFOR.REST-Client.yml
SHA256 aea7fb689e55d645b729bd9fbc88fdbb1ee3e19f10fddaaf853094a5b6e4f7bd distroprefs/METZZO.Java.yml
SHA256 b77241893e34cb4698a4f1bfeb4949e69b7664c6e54ef3ec1bdc239907dd8672 distroprefs/MFX.Compress-LZO.yml
SHA256 2f1aa4ccf4dd03f5e0903cb17f8234d78606eb2d659799ae3437b663e5908714 distroprefs/MI.yml
SHA256 7089e41a229bef0d85b08ee7a81d3f15b5faf37768786cdaae6eac28ad61b059 distroprefs/MIKER.IPtables-IPv4-DBTarpit.yml
SHA256 7f1911b0b308d8ad1085a0abfc8d43934f30f44719a74c5299ad2900af2abe06 distroprefs/MIROD.XML-Twig.yml
SHA256 3a15f0364b7e7f8e0965ec878683dc893460dfab21df76157efc7737f2f91b73 distroprefs/MIYAGAWA.Catalyst-View-JSON.yml
SHA256 53c7ed899ea99b66813ceeb01d766fa5e5827ad91f85a883ff3770b144fac49d distroprefs/MIYAGAWA.Net-IDN-Nameprep.yml
SHA256 c3a6a9c1cbf50a793597257b1126454d51f81118c2d91ad7832874d889d2ad78 distroprefs/MIYAGAWA.Plack-Middleware-Debug.yml
SHA256 4662756433e019af2a881bbd603060e31c2bd7b6bda593c8b9497466ffd7f9ce distroprefs/MIYAGAWA.Plagger.yml
SHA256 0202563f3a88524f6ce3d5dffd0b535091f49bbec6e1aa06c843a7f416cee617 distroprefs/MIYAGAWA.XML-Atom.yml
SHA256 eea93b19b68f7dcc814b31daacf00610c44841d619f084ebe691d7b5f6900fc7 distroprefs/MInoinc.yml
SHA256 95459938b1e915023f48b36c02a20a744ade0ea23f044e7c32b776844e26a8e3 distroprefs/MJCARMAN.Tie-Tk-Text.yml
SHA256 98ae7000eff1e0511fbc21f96a1991eba0721dd8804216a695d172a1f836f7bb distroprefs/MJD.Devel-Trace.yml
SHA256 855497bef7cb2347e1b55129bb7b7e7a6f41758fb53f860e332736c39593ba67 distroprefs/MJD.Text-Template.yml
SHA256 e5d013778c2c36eb5a4b952be682ece6cf88b7d5e19a7ff475f8bc9671e77fb0 distroprefs/MJEVANS.DBD-ODBC.yml
SHA256 e6875d483520094416d78dfd16bef63b714d4d5acc01e9c5be0b3040993efbd2 distroprefs/MLEHMANN.AnyEvent.yml
SHA256 f9618ea75c9958579c79e31d4cd0e6a9f1017ea4afa9378ac2c81ca6663cf43b distroprefs/MLEHMANN.Coro.yml
SHA256 fcbe3d18e6a87e2f3dd3144f1651c38686bd1cd17e520e61e43c18351043e6a1 distroprefs/MLEHMANN.EV.yml
SHA256 2a6f5e64956bf15f596fcc4362febd5a7138f5576cd4859993904177275ef98f distroprefs/MLEHMANN.Gtk-Perl.yml
SHA256 b61f0c76a0afea28eb3c057c58ac1f871a203e575f787dd73d44766afe438296 distroprefs/MLEHMANN.Guard.yml
SHA256 e0d35ca1768511c89e3b999fc10aa6dc379496b72f3af0f0c5aa42c468e859d6 distroprefs/MLEHMANN.IO-AIO.yml
SHA256 52b7fe913e4b8b2c0ff071d9be2d1e9023b660cc8712f32310359d7ad7cfc84d distroprefs/MLEHMANN.PApp.yml
SHA256 34ba7e8f39261ec29a4bd1fcddad922eec4454f233a19516c3f1f0af3272573c distroprefs/MLEHMANN.RCU.yml
SHA256 1d4a5e7726cd918e55f6564edd1fe999209597a371f41d80a2c48df07c71a49c distroprefs/MLFISHER.Test-MockDBI.yml
SHA256 c5aed2c4cb7308f5ddada57deba3c3283d0774222cead09469a4f1ed62acb41a distroprefs/MOB.Forks-Super.yml
SHA256 022df0e81cf4bf05c0133796e2b28e9b60912f36ebaa5fd0f667f3a0164e580c distroprefs/MRAMBERG.Catalyst-View-TT.yml
SHA256 ff5915baa90ab59a1d7a9058d0c0f9b8f5904088d8e2d0354507e13f47a3b5dc distroprefs/MRAMBERG.MojoMojo.yml
SHA256 e231aae493f01e3e91a01b2834c749799c0f318a851cfb59c3bd0a6a8d8e5987 distroprefs/MRAMBERG.Text-SimpleTable.yml
SHA256 dd3e711a4264749d0924ca25348a25b87a43baa7a40b085e531176fc1825bbd2 distroprefs/MSCHILLI.RRDTool-OO.yml
SHA256 652a6267add6ffe698231285d23759f46732eefff6ce9dd3ea97a31bc4b91915 distroprefs/MSCHWERN.Test-Simple.yml
SHA256 79b9ea690d27424e6b98ac86cd040cb2009978fadfb6f1d1c46d36de4ffc2718 distroprefs/MSERGEANT.AxKit.yml
SHA256 7c3fa9ae249a3d2b794e154c88b17d5f56f07e16e5cbb69bbdfb353daaa92473 distroprefs/MSERGEANT.CDB_File.yml
SHA256 91846c700fe121db3907d15853e2200eaa370c136f3e3d35221a5ba7e6e8d403 distroprefs/MSERGEANT.DBD-SQLite.yml
SHA256 78344346aaeae920fcafc5c33345b1c9e0d7c7d8803cc2498e065d2e5c7a7425 distroprefs/MSERGEANT.DBIx-AnyDBD.yml
SHA256 9acc95eedd6b25f56c466e1ff293931c77a8aa042a1296a1707fc5b512c405c6 distroprefs/MSERGEANT.XML-Filter-XInclude.yml
SHA256 6707921d3be358dd873a98d118c6bb3094c85af62e1ac6e17451699f761dbc95 distroprefs/MSERGEANT.XML-Parser.yml
SHA256 d21a01068140540b7481cfa8c6b0111619495d9c825ee4b12afcea5656f7e961 distroprefs/MSISK.HTML-TableExtract.yml
SHA256 9bdd36d3752a118b6282b8561620a5f5913fd4719e5662be49a8ab70ca4c61b8 distroprefs/MTHURN.I18N-Charset.yml
SHA256 78c08e4b6f442ef0a2a02ac2fa651941dfc3551338860a2828931d5207a1be63 distroprefs/MTHURN.Tk-Wizard.yml
SHA256 68d70226ea9db6cef7c67a159a3f1d625fcecb60593606eafec88c056800a68f distroprefs/NANARDON.X11-Xlib.yml
SHA256 1b4365041aeea769fb5332c6c56d9556197c93ca6ce337b759bcd7630e2fcd93 distroprefs/NEELY.Data-Serializer.yml
SHA256 ca7e6c02dbda907671761b2d987bbee161f485b914386fa09416f0cb3bb34986 distroprefs/NEILW.Inline-CPP.yml
SHA256 b01c0de0437cce8e462c737e0c67d121305b50d8c105b4af819f18fd0a496900 distroprefs/NESTING.Unicode-Wrap.yml
SHA256 d758541a71d017a67a25b58b949fb980c5002d8c87becc5d6c5d055ca5b75c78 distroprefs/NEVESENIN.Regexp-RegGrp.yml
SHA256 e756f11e21966ddb9482f220c970f8c0031bab7dd25aa43a831e75bff95f2319 distroprefs/NI-S.Tk-HTML.yml
SHA256 7418e714744b842745e48a5c2b33a0997b4852ab73605d580713dfbcf676a304 distroprefs/NI-S.Tk.yml
SHA256 401a0f9ff3ca8e96e73512c37fc8f181116fe5f37cb6a21728936b70b1c66120 distroprefs/NICOLAW.WWW-Comic.yml
SHA256 6808a27bdaed3a56eaf5d1bdbb85ecd6bb7116b68022d84e007b7f10a885865d distroprefs/NIKIP.Authen-PAM.yml
SHA256 e8d0453999fe4e42acdbbf16e94ba38affdab3f90641866846096e671759ac89 distroprefs/NINE.Inline-Python.yml
SHA256 3f9cefac90fee021889f4657c4c6eefb8537af22e26e5bbb993955e1aa936302 distroprefs/NKH.PerlBuildSystem.yml
SHA256 010802517bd15117d2060c0f05e401a5a20b5b60c33fefcf5d6266342278310f distroprefs/NODINE.Slay-Makefile.yml
SHA256 8eb8c17db2cd648a41afaf9a86bf64122131aaba2be09aaf18267095fdabacbf distroprefs/NODINE.Text-Restructured.yml
SHA256 928eaba7d2637ae58b0556e1560fd3855ce81bd49fb6bd54f70254b75caaa767 distroprefs/NUFFIN.Catalyst-Plugin-Session.yml
SHA256 7cfbad999499df79dafc4868d2fbd6f33f8361fde9dd00659e6a412cf6c00f4d distroprefs/NUFFIN.Devel-Events.yml
SHA256 3eee78c5bd72fb10a0cf9eaac5412c00b44486cccafbf5f657b0263545dacecc distroprefs/NUFFIN.YAML-LibYAML.yml
SHA256 b9e45b9a2c39a572f5c23a7376146f46619d2d581f53f240d976e24a170fb1c2 distroprefs/OFFERK.MooseX-App-Cmd.yml
SHA256 2cf4bd316df9c62615fadb65fc68495d059f732cb687053239e76cc5d53b1c08 distroprefs/OLAF.Net-DNS.yml
SHA256 57a4e5168d6ea6b0cfbcd7f8548c7eb60dd10c10448b1422c6a926feabf98f62 distroprefs/OVID.Class-Sniff.yml
SHA256 a2d1fce06647cb807dbb25e14d83cdcce2aa76de81491dfd3529e9acb272288b distroprefs/OVID.Class-Trait.yml
SHA256 3a443c5ebd358f0e269a1a0645574a027caabc3f0b16ae550e5417d3165af63a distroprefs/OVID.HOP-Parser.yml
SHA256 971bccb2c77f62ca1d89ef7fd13242f10a47281bc69bbb81429ae6a883359181 distroprefs/OVID.Perl6-Caller.yml
SHA256 cf30c109a14754116cacf46059d00ba455c7652a2862b325937c8b1ced2c3bdd distroprefs/OVID.TAPx-Parser.yml
SHA256 bfa57aaa90a5231c8080a49a5a5aba4103879ead0e7a383cb8289b4c592b5787 distroprefs/OVID.Test-JSON.yml
SHA256 fb1c06b5350699a3840cce0a07a1816a3d6ebbc2ac5ea61393a542949a6b76fb distroprefs/OWEN.PDF-Labels.yml
SHA256 ede36e9a812457ed3ba90d0c1031592c0e4bc29c6901249205b94a56be42cae5 distroprefs/PAJAS.XML-LibXML.yml
SHA256 532578d022fbed59db5ab19550fd492af647b2249873fb99dd4d6689e5559b40 distroprefs/PCIMPRICH.XML-SAX-ExpatXS.yml
SHA256 ad6836f4c54359778c0bb561d7f260f754b4c920013b923d0f046fdfb625c848 distroprefs/PDCAWLEY.Class-Inner.yml
SHA256 bb6ea1d7420feb72333b2cc0509eecf069a0edae97f7018338d5cfc03e90fa3a distroprefs/PETDANCE.HTML-Tidy.yml
SHA256 7c8f60e4539942cc399ef570f15ec9a279c1042c4e896f142ac580fa8c665213 distroprefs/PETDANCE.Test-Memory-Cycle.yml
SHA256 3d456ffdc230c5733b9b33c51446e2d5a75a95fc7f5702200adab889c5ce4ab3 distroprefs/PETDANCE.WWW-Mechanize.yml
SHA256 e1e3d79f713692be70738edf12e064d120739f684957d75d7e0d5fc1076d0d9e distroprefs/PETERW.SVG-Parser.yml
SHA256 947d2bdac630189f3cebb55ab3d7c2d76c11563c7dee7bfa1a54c9295f971b11 distroprefs/PEVANS.IPC-PerlSSH.yml
SHA256 7f7519e929b1e5c1d4babd8637922dc810d5dae6f6b79f8a52e90b17af8c2ea8 distroprefs/PEVANS.Net-Async-HTTP.yml
SHA256 1e5ffef24bb23d35a0b0213a915d54cf50484a5fc156928d5da751a266560bcf distroprefs/PHOENIX.Term-ReadPassword.yml
SHA256 9c7dcea7b950c916cd833f49abd5c47e398ec86dd27d26b839ae19709c34dfd8 distroprefs/PHRED.Apache-Reload.yml
SHA256 4be1c25d370cd29685f0383f4428fff73ce06cbb8ef1a1c8ccdea34cebdfb0cd distroprefs/PIERS.sapnwrfc.yml
SHA256 d2ae144becf0f822d551285fb42cef8729a1f93732c4efddf69b338219c22aa8 distroprefs/PLOBBES.Mail-IMAPClient.yml
SHA256 d8f195ff4d15b0a77f8ad04b49eafaf5b4d35ca7af3e95759c17e6e4d9014d1f distroprefs/PODMASTER.HTML-Scrubber.yml
SHA256 ca0ed292a0cb3d2b6e4cc45be02c68072bc9c15c6573a92a20f4fbd813c6407d distroprefs/POWERMAN.IO-Stream.yml
SHA256 8ccf983593f20d59cced126815ed0ec66e8278f7adbd129ef9b439cee6aa58c7 distroprefs/POWERMAN.MojoX-JSONRPC2-HTTP.yml
SHA256 f4d615f60bf0ef2ea21606cd3200c472e02d04644b61f7d5a34b2e8e85328a40 distroprefs/QANTINS.BitTorrent.yml
SHA256 1d3cf198ff9ef5aa418dc096c3dadcb681372ada5c0489ad167a78db2cd35a4c distroprefs/RBERJON.JSON-Any.yml
SHA256 40409774e7dc9dc692f7ac665950202fa473c63b2d38f642868845ca636c9ba9 distroprefs/RBS.XML-AutoWriter.yml
SHA256 1a95b55d0ede21a4312dbda3ab4dee9bed6c0c1be04cf02fee592e06100bc845 distroprefs/RCAPUTO.POE.yml
SHA256 bdd3097e9ac28fd01461180a1fadea06962c4bbe9b0a7d354a9846c50746c18e distroprefs/RCLAMP.Devel-Caller.yml
SHA256 d2ba38e21027552b5c3662527570c5c07beedafacccb1cfc5078b0d8ee92b4ca distroprefs/RCLAMP.POE-Component-Server-HTTP.yml
SHA256 c89b80a84a8e42c4442bcb407bffa87f7592680c2b174e8795a037e6452cbaa1 distroprefs/RCSEEGE.Tk-JComboBox.yml
SHA256 0be28bbea9519f8b174c27c272842df1c4229a62cd8e35be5da238082ec3e921 distroprefs/RDF.Clone.yml
SHA256 466dcc4af61d88298855ddf9a7f9769549c952780fa7902f4e20a132b5b25e99 distroprefs/REDTREE.PDF-API2-Simple.yml
SHA256 b222a4a43639b53374d96ece2dfa321c0d5349b0026122bf809e702a7a4ee26b distroprefs/REEDFISH.Net-FullAuto.yml
SHA256 4e55c47290c2c726c75407c85904e6ac8744a409b747a69c9de45d5675c4ec3c distroprefs/REHSACK.File-HomeDir.yml
SHA256 0b945855521bdcc91031d91f301890c49b615d3cacfb8c32502831c10bd17278 distroprefs/RGARCIA.Switch.yml
SHA256 3de062815a9880aedd8c3608d1657fdd13afe43aa8f4db52f238fa8c2999b070 distroprefs/RHOOPER.HTTP-Lite.yml
SHA256 84d40c6e2209e278926e82f56871d14e84bd0a37631af758c778270cb5724bc4 distroprefs/RIBASUSHI.namespace-clean.yml
SHA256 05847daeab7451a24ecd420ce37e7d7efd2d9195e758d5651422b90f32ebc95c distroprefs/RICKM.DateTime-Format-Strptime.yml
SHA256 e977d800806889dcb92b97e435be46db410fb80a5afafb9990ddddbdaf76233a distroprefs/RIZEN.Config-JSON.yml
SHA256 473c5d4e145d49aeffc129e328735dd0df0df87e6c5b3c3668c9b3c321545dbd distroprefs/RJBS.Data-UUID.yml
SHA256 ec476e832f353f178e4dec2202c125c41afbcb9a781f7297e5133b91912b0f58 distroprefs/RJBS.Dist-Zilla.yml
SHA256 947fc4efc26f548be01982c970822df096548fbdcb6c3327e770ff7027e5cadb distroprefs/RJBS.Email-Send.yml
SHA256 85146fc1abd2bb4a2c7f9841b60017577920e8ac4dee8c28f8ae55b7a724da1d distroprefs/RJBS.MIME-Light.yml
SHA256 fe558a52b9e54298474df2611f73d947547334003a62c34832bb1a1c951b7b5f distroprefs/RJRAY.RPC-XML.yml
SHA256 5e1f07032ed888d57b6567ff3cdf4c4dd6028ebf706751b3e90cec4863f92829 distroprefs/RKINYON.DBM-Deep.yml
SHA256 48b868c7e50ae162c10a96b7a9ac0e43f63130d211f08dac80b8084c574433b1 distroprefs/RKOBES.PPM-Make.yml
SHA256 019fdb977f4ebf3a407771cb5069a10c115becf239bbe1fc262d434ea9f3d66b distroprefs/RMUHLE.classes.yml
SHA256 db49d82d1ccfa0d99106c720034d6349702683f3113cae1881c310621f261687 distroprefs/ROBIN.PadWalker.yml
SHA256 b1efc07ae9e686b090d19ed964525f34d06c9cd7bc69be09fb7bce6009e1669e distroprefs/ROBIN.Want.yml
SHA256 173f51a7041ee832eb61225eeeb24c2272554192630dba85c06f4e3c30a59eb8 distroprefs/ROCKY.Array-Columnize.yml
SHA256 0288d0e9f909ea3ccc86fa4652e7df13023203fac40ac8d82eed33d98e201781 distroprefs/ROKR.Config-Identity.yml
SHA256 328df9f7b4faa885615d3ed17cdf941b496d0b0d5c773841dae37f4e7e1e3247 distroprefs/RONAN.Transform-Canvas.yml
SHA256 3c9f6f4617b77174af50f4974bfbac3a53cb31472128ac319e0af90b2eef243b distroprefs/ROODE.Readonly-XS.yml
SHA256 f2b8bea45decbdb0643a10a0b67d24a788ec39d6a9ef1409fe202ced7c9cb475 distroprefs/ROODE.Time-Format.yml
SHA256 93fbf5e33e4bc83de4e30b11f3a95300dd6b7601a397af694e1b375c007aeeef distroprefs/RRA.PGP-Sign.yml
SHA256 e8585624c0089aa6bcbc43f3c467887c1a16b83ef8f49711f990666231fdfb12 distroprefs/RRWO.Graphics-ColorNames.yml
SHA256 4e8274942a091c21387f8e38da84c459c6023fc54738e21c1c5db0728b3f5ff6 distroprefs/RSOD.IPC-Run.yml
SHA256 55efe61fbf7ac25b8bc328fd3c0cdaea5be058884bb51c415d19b018d65413ff distroprefs/RURBAN.Filter.yml
SHA256 74d1c146124840cf0674bb9645c47bd9b7116e71dc2d14ed737e2794f2674835 distroprefs/RUZ.DBIx-SearchBuilder.yml
SHA256 b909227fa7e9daf7a6f9c9e5aee7e1de3335064283a140312329f643504b08db distroprefs/RYBSKEJ.forks.yml
SHA256 64a8fa2bc74b05d7d6871e6ee76c0ecb26d945d75bc67701714ebe17c861318e distroprefs/SAMTREGAR.DBIx-Timeout.yml
SHA256 4ae16b03c5255b2b51b922aeb1f06d3376e49d4077483e8926ce43df4ef52eab distroprefs/SAMTREGAR.Devel-Profiler.yml
SHA256 74c73ce6cf89e0f7db9eb17aa58a32762049d8e66b0ec5c8982c381aeefccb98 distroprefs/SAMV.Date-Holidays-NZ.yml
SHA256 78aab9d457208e93fea9d1659fc389aad164c994617f10dbe151ea08b85f5d6a distroprefs/SAMV.Set-Object.yml
SHA256 517845f9ebc777945b40077bce010e5783ecadf09612be4063be68ce663ee1d1 distroprefs/SAMV.Tangram.yml
SHA256 1a4dd3d9567ae7ebb08f283eb3f35a9482d20c047b271b5ecf1778a61476812b distroprefs/SANKO.Net-BitTorrent.yml
SHA256 7b2c656fe4638c960711ea5a9c688320766518117d601bbaf4e74888a7d4d9f2 distroprefs/SARTAK.Class-Method-Modifiers.yml
SHA256 f4c6b97ae12ed83cf441213247ef02be2f7dfbdf36e30c75bee71af1e2fd1695 distroprefs/SCHUBIGER.DateTime-Format.yml
SHA256 0799bc50b11af5bfc918a4d1d31efd301d8e61602ae6e1ca1b6186f7cbd10a47 distroprefs/SCHWERN.Class-Fields.yml
SHA256 9f421a61425eebb5445638b2d0edf9518e9d99c836c5753fcd4d25b3d8923b95 distroprefs/SCHWERN.Exporter-Lite.yml
SHA256 69cead4c11bfd3fce53ac948694a969681c1a16194e923121bbfbbdc77c31b68 distroprefs/SCHWIGON.Class-MethodMaker.yml
SHA256 a8c3f909d4736ee948983e684434ab42ec9fc2479cb7f9c3ee28adc7ba19d8be distroprefs/SEANO.Sepia.yml
SHA256 70a0dba3ae2c7b2d8b757b77371d5b64cf74df0d1d874c3338e38f960c330ea2 distroprefs/SEKIA.Algorithm-KernelKMeans.yml
SHA256 2dac02edd6370f019bbd8243b477c55b7f275918415e69569ab323a71e0e0bc8 distroprefs/SHAY.Filter-Crypto.yml
SHA256 1a2fa308acc47d6d47ca33cef62d491c1c4e51858f1c52ff50abff3fe26ad408 distroprefs/SHERZODR.Class-PObject.yml
SHA256 ce1442a353dc9d07ba3ecb81974624504f29f248de1c71c2f0f6a094a5d11542 distroprefs/SHEVEK.Mail-Karmasphere-Client.yml
SHA256 458b77bd0d46e6cc65ed03867af2d5a8db58128393646d934dceb6f66a9c75e6 distroprefs/SHLOMIF.Graph-Easy.yml
SHA256 597d45528d700f084d32bbeee3307a492caa7bd3faa3a395a54afc5392c102ae distroprefs/SIMONFLK.Test-MockModule.yml
SHA256 ca14513448b383615db222206a628a48b43d77cd2b72529094a4a8f328d0b4bf distroprefs/SLANNING.Ogre.yml
SHA256 7a6225bf61b8a0bda1bd43df6ca52d1bd68d4e23f81ecae7679818b6466ccc32 distroprefs/SPROUT.DBM-Deep.yml
SHA256 0ea319fdb5b5f95da3c4c3404d9d97e98dde34127937f6ce461035ee3f6ceb9d distroprefs/SREZIC.Tk-Autoscroll.yml
SHA256 4cbd4d8c882c64e9fe4513d1594e5a656da8f0ddecbedf303b4e36f0a3c4d6fe distroprefs/SREZIC.Tk-HistEntry.yml
SHA256 0800a514fdfe87d022e5d56cb2b214e31a7cf61ea464a39014af6846a6723924 distroprefs/SREZIC.Tk-Pod.yml
SHA256 209a97ef159ef33f4c57c89926283f690bcff7df9c1f5a838c62d86045011b0c distroprefs/STAS.libapreq.yml
SHA256 a1120973c6bf109d09954a27b43449045a961e5d7569b3bf8b4a6dd0f06729ee distroprefs/STBEY.Bit-Vector.yml
SHA256 7577345297cc902a2c74c405d8c1c89d85b8f7f033f8ff388f14bcda25cd61a5 distroprefs/STBEY.Date-Pcalc.yml
SHA256 d19a53d4c5489828ee89355ef4b441753a012192bed27709bfce2734c577df00 distroprefs/STEPANOV.IMDB-Film.yml
SHA256 a69a24fa037439df18ce9f7132acfda689c6b99e4f5cb613ed46cbd1dc51bfd1 distroprefs/STEVAN.Class-MOP.yml
SHA256 7a20e416e324676d2751a244695261b8671a1d4e53dad3454db277a5261cde9a distroprefs/SULLR.IO-Socket-SSL.yml
SHA256 e168df0197895ffd90467e660893e98cc5939e7608597077797faba7e3a90890 distroprefs/SWALTERS.typesafety.yml
SHA256 5a659c68a908585f368ae72f7f7a89d4e56eef52d047dc81b22478d5bdd388f9 distroprefs/SYOHEX.List-UtilsBy-XS.yml
SHA256 c198ad4311bfde4359ad0f9e1dc3ca8a6c1a96204eae1949306e65ba7fb45b63 distroprefs/SZABGAB.Spreadsheet-ParseExcel.yml
SHA256 fe45069f95557cfdb8d6965439d42c4f854d78718dedfcf6647b5acf8b086c38 distroprefs/SZABGAB.Term-ProgressBar.yml
SHA256 014d5b736331fd89f9cf05c44ba1aa62653238ce6970302ebcc6e16762eaad12 distroprefs/TBONE.HTTP-File.yml
SHA256 9f02c7a5d07a026bbcb208d92a9d16505102d6903be19235d994341bd4902880 distroprefs/TEEJAY.Test-HTTP-Response.yml
SHA256 ff6b5111cd5f7a8d37dec7b806f481db587e9676198d1288e29ab1504f2feaec distroprefs/TELS.Devel-Size.yml
SHA256 af230dbc92f329e60b429a12e3e65540215e047b8765abf5140a708997a7f6fa distroprefs/TELS.Math-BigInt-GMP.yml
SHA256 15d973e9430085aaf94e9a4d39f9888e17a1e2aa9c3c22c95f920632b77a220c distroprefs/THOSPEL.Graph-Layout-Aesthetic.yml
SHA256 dac98cc4dc3cdbae54018f0d808da3720da9d63cc788a558cc7a8d6ee11c4732 distroprefs/THOSPEL.Heap-Simple-Perl.yml
SHA256 b99dd6d15e87b2b96dca1867f5237ae6c5ba8adbe8630e99db2f4cb44f6a2086 distroprefs/TIMB.Apache-Status-DBI.yml
SHA256 2c03d51edf36010c0e45e891057d447a222e470c0081b9176be70fc78ff0c4b2 distroprefs/TIMB.DBI.yml
SHA256 96c145c7b52d5bf81033b8e51650d01fc9ca484d6bff255c5a85fb2761aee218 distroprefs/TIMB.GoferTransport-http.yml
SHA256 b84093aa3e9a4eb66c804d3a9898292d12f7962abe9dea80460a2efa8d260b35 distroprefs/TINITA.HTML-Template-Compiled.yml
SHA256 72a94bad0462e1c207710062779613f55afc6976ede74617793cdc5e28497b23 distroprefs/TJENNESS.Tk-TextANSIColor.yml
SHA256 4b90118e93ffad8668ec96ba2fdf8c3c1bea40521dc61ea8daf67e6a8af50827 distroprefs/TKEEFER.Gantry.yml
SHA256 f78902275b8e1b59fba0db6fc743065cd61f4695d8b544aa2c3db764b068dc31 distroprefs/TLOWERY.DBI-Shell.yml
SHA256 673e0649e86280ad30e7c30dc917c69bdeca6bf9f19fd33682f3ff5dc1db09a5 distroprefs/TODDR.Net-Jabber-Bot.yml
SHA256 442b154063ba52ce2e23568739375b93003411c7c2e954537b8ec00872176f6e distroprefs/TOMFAHLE.LBMA-Statistics.yml
SHA256 e0360057989e0cd6615add4f9eaf1bb522264623bf9f676c82a50154df07e10c distroprefs/TSCH.Cairo.yml
SHA256 5748489860cbe4395e2185d2c5e0795295e1d12526680fcb44f7e1005d38b2bd distroprefs/TSCH.Gtk2.yml
SHA256 f9a84d69678454ea87103f1b2e33477dbbc6ba5f982b7a752a386e7fc7c4738c distroprefs/TTG.Google-GeoCoder-Smart.yml
SHA256 3076e976b09991d77dae316c31dce6e186dd2953700b99ff739e91a0eacbddab distroprefs/TYPESTER.AnyEvent-Gearman.yml
SHA256 77f125f7180fb05649b04ee964a5a9aec0af0fb6ca8be626c13abc86a9995a7f distroprefs/Type-Tiny.yml
SHA256 e2c19187906fb2028f8ef175ef18fb2e5e28ed5d5ca1e405ef9f9af0190e1661 distroprefs/URI.File-Slurp.yml
SHA256 500f46254ebd52b0c8cfc94bcf39da8e5c05f8248608454873d82c436cd83547 distroprefs/VKON.Tcl-Tk.yml
SHA256 f1127bf1990457a5b21ac8201e0c8b26697740122df1bbeb0c87478ad9d3d839 distroprefs/VKON.Tcl.yml
SHA256 d20903ad92b4691aa5276b08b393370dbd6459a1b7c6abd629a15d4f3adb7e45 distroprefs/VMAN.Net-Libdnet.yml
SHA256 96bac120d9516433f40c6bdd32b1c34dd24875e52514ea9d6ab91ada18febe13 distroprefs/VPIT.Variable-Magic.yml
SHA256 2c6c5fad61c747da809e2dc643a9ca8f5f470e73f98b2f9b669bf2fcbcc7d501 distroprefs/VPIT.autovivification.yml
SHA256 a4f03d8fdfd10664e190ab25f68bd65e0fee427cdd27446fb363824375527a60 distroprefs/WITTROCK.Tk-PathEntry.yml
SHA256 b523ab07fd6d2e75b34de6b35de07aa250d1ed12c3766c43e54113f0c82c338a distroprefs/WRW.Barcode-Code128.yml
SHA256 7da4cfa663b3c282eae76c1ae41078b8e37fa5d01412bdd797c461f2bb7bd6d9 distroprefs/WYANT.Astro-SpaceTrack.yml
SHA256 41737ad4ab63aa74edab919e540ff8da5c5af98b92383cf805d2ccb2dbaf60b0 distroprefs/WYANT.Astro-satpass.yml
SHA256 1b7a096e36911178a3d8f1c2df6a1e03e4b832b214b580653191739bb5b19bee distroprefs/X11-Protocol.yml
SHA256 350bb053d27a56f5725a2830f7e2d86aa886af43173a879bdd4bdbb3257ed8fa distroprefs/XEONTIME.Apache-Sling.yml
SHA256 d3af5d59c3f0a02a9aa48baacb843a4df7b15dc14d0fd65103eda89132b43b9a distroprefs/XMATH.Sub-Name.yml
SHA256 7c35a4dd58ddccc50e1d7b6a37c1285fdc4e8d146d747082cd621befe91f6c24 distroprefs/XML-Rules.yml
SHA256 6a9df0b8aab9cd42237134112be26b16b9f726e6af5b3d06112d0d3ce662007f distroprefs/YAMATO.QDBM_File.yml
SHA256 e477cf157bd9034639aab91ffbe02f8b6bbebf204ec9a3ed9fc0c52788891591 distroprefs/YANICK.XML-XPathScript.yml
SHA256 f92c0160c29ee3763c13961316ed0f13c196d75980c5208854e0c77bf88fbecb distroprefs/YAPPO.Data-Model.yml
SHA256 36787454cc5001e57e9c4fb9438bd386cfe2233ffc75e50a215427ec4dca0d95 distroprefs/YAPPO.Geo-Coordinates-Converter.yml
SHA256 5000d80b9a9dea2171939734aa2f80ded862f36d3f18e9f8dc2ab883135d1279 distroprefs/YAPPO.String-Diff.yml
SHA256 2b1ec47c990a590056951172e72bba591ad23c58d55437a75addd628649ad7aa distroprefs/YEWENBIN.Calendar.yml
SHA256 ecb3fbe572be4e7e768b7b93cb48ba80c439b0fe4d35cd1155cd1f9243ee2fe2 distroprefs/YOSHIDA.WebService-YouTube.yml
SHA256 fd6676eba5427c787593706e2a6a691add8644b26974987321b2df71631eb8c2 distroprefs/YSAS.SWF-Builder.yml
SHA256 b704797fa3a03adcb2ed5bfb0bbdaec14e53554328c6dc071304922e6559a3bf distroprefs/YVES.Data-Dump-Streamer.yml
SHA256 188a42ef2b4b4e68dfc2a503db4558274cfeab6e9eed072ce25a023d8f5c64be distroprefs/YVES.Date-Simple.yml
SHA256 ae7f1c7b9ef737543b58102363ae0edc4c9e19eb5c5dd2c83aaec31f22427b58 distroprefs/ZEFRAM.Data-Alias.yml
SHA256 6cebcd6208092b9274a45267aeadbfb233f1e5c954bfef712897b31cd3ef4111 distroprefs/ZEFRAM.Module-Runtime.yml
SHA256 610a736c15f787da0d990655cf3a10d5190885d3e8f65ef617830cccae9c3840 distroprefs/ZEV.Test-Dependencies.yml
SHA256 f12cd86b3816b0e92d0e82fed88da7872ae59b4a842d13f20dfca9b7ce62496d distroprefs/ZINCDEV.tk-zinc.yml
SHA256 5d885b03f98575c1d0ead4641381e0874ecaae07df608ec4df8d014e39458863 distroprefs/ZOFFIX.LWP-UserAgent-ProxyHopper.yml
SHA256 dbe75907248eaff0fd8a182316aa9cfd86e6984f0a8c5a8c4231e141ce6359d6 distroprefs/ZOOLEIKA.RDF-Simple.yml
SHA256 f7d9f39f275f0c20da6990a1592fdfd87a5c9f87f8a783cd5878f63d5de8bee2 distroprefs/ZOOLEIKA.SVG-Plot.yml
SHA256 3b5b88e4e783161196da62ca7c7edabc049e0f1cd4292f41d1f7f099e0d4fc08 inc/Test/Builder.pm
SHA256 64dff61264f44046193029d9bfd8c50d62f64ded229f39cca6ad8deeb02f234e inc/Test/More.pm
SHA256 038168784c1de53432195b90b6ccc7e1140ef751b226285eb5217ac78d63455c lib/App/Cpan.pm
SHA256 fc9ea8ea85a4a0409e70cf6e712adffe58411bd5f000b7dfa8924184c5e96ef4 lib/CPAN.pm
SHA256 29e0ec1a25ea5a54cd19a67188467212512e8f4148013730e61a2ebda763789a lib/CPAN/API/HOWTO.pod
SHA256 7eff0a2e31e8be98a6d9ba2ffb1d9b2a7035c011111ce853ad857c559728a3b1 lib/CPAN/Admin.pm
SHA256 1f6fd480e7f77d86f44b291309998c8496edc86280be55e2c7069891acfbbc54 lib/CPAN/Author.pm
SHA256 47ab7088f37fdeb167c49dfd818794d945848a8282981746cfb2bd8922b8341c lib/CPAN/Bundle.pm
SHA256 ad42d5bf390265b596d521bc99eb96f3fd7e8ea01161d0e29ee3a9fe5a3a5f74 lib/CPAN/CacheMgr.pm
SHA256 ab8091fdb2d81f5f1a522282eed8d83477cae8ed11640404f788036104052c66 lib/CPAN/Complete.pm
SHA256 f5f0bcfa2b6b35276a5db8605def82775be8957f43a7a997b32b873ea5281875 lib/CPAN/Debug.pm
SHA256 543ea23c897acb50709feb425135fc294a93dff277b3b4939b7cd6e717b62ac3 lib/CPAN/DeferredCode.pm
SHA256 4ecb5ffeaae51cbf53d5f3db353fbb0f5dcc0f8fc190cca4a0f5d711b3711d9f lib/CPAN/Distribution.pm
SHA256 3943b549eee64fdcee6de7e58d253d4a0234cadc94e2f2c6f7e240e509744030 lib/CPAN/Distroprefs.pm
SHA256 ed9eaceebf8def9baefbbeb6d4f165a64693815d0b723b38bb59ccd5905829a5 lib/CPAN/Distrostatus.pm
SHA256 8dc6b62ea58f6868fcf8541bb42dfeb9f11b25ddd6397d4ba4cd2cacb5ba8ae7 lib/CPAN/Exception/RecursiveDependency.pm
SHA256 276eef2b0bf9d5c996e60d476c4616aca7004470342da23f75e807b3e12fb15c lib/CPAN/Exception/blocked_urllist.pm
SHA256 73199e060d130a0d9a006ae3ac9545e2c51b2f8f21382453cd151fc5fb6786fe lib/CPAN/Exception/yaml_not_installed.pm
SHA256 11003c540e557f9234e6ee32a886ca764cd0e5d39cbb4efa487cfce3bce1b3a9 lib/CPAN/Exception/yaml_process_error.pm
SHA256 d1dfaa4943befc8ddaa33b25f6a014f560eef78eaf159eb3fb047b341d844804 lib/CPAN/FTP.pm
SHA256 b7b5cc35edc3666a5dbdb80d14aa7be5531e6f59378e318a8c11e91187259ad8 lib/CPAN/FTP/netrc.pm
SHA256 384fe55890118cceb68163061c0f3b80d63e46b466e8ebe21c5165accaa9c5d0 lib/CPAN/FirstTime.pm
SHA256 e1186ddaad16cc0d6535948dfda723a4399ad6f0069b826ae4f30ebb8f44eaf4 lib/CPAN/HTTP/Client.pm
SHA256 e45a6b41d7caebdb5f23d3b4f219adf64a214e946b082304b845d7b449a8aba5 lib/CPAN/HTTP/Credentials.pm
SHA256 5b50ed785bf1f5b5abd7620f8fb7e901c2833a37b1f061b00d74d8b8c751ee1b lib/CPAN/HandleConfig.pm
SHA256 ab149d97db14542e8b83732bd91cd423427f6c2e6e1a2968eed2cff50afd2ee8 lib/CPAN/Index.pm
SHA256 3a594f1609132723f9374dcd394961748894aa3758ebef1287de175153550564 lib/CPAN/InfoObj.pm
SHA256 cc37d66d60723538ca4d934c338bbc9abfcfeb8e34c17474b818f1a04053e7c6 lib/CPAN/Kwalify.pm
SHA256 b88184fdeb35c62b2fc0eed18684e5333a21244423b124fdb0024d0abe44c7b9 lib/CPAN/Kwalify/distroprefs.dd
SHA256 27c4c4cd45a58dd925fe3900eb20169503eafb458d83f0a891c7110e2fb210fa lib/CPAN/Kwalify/distroprefs.yml
SHA256 5ed00333dc6f9c7fb1f2ad7bff30c1eb98936a5952061322c630cb7b08d4d6b3 lib/CPAN/LWP/UserAgent.pm
SHA256 d72a2bc99c875b4f093ab65fdf89d5fb8b99d58004bd9c75bfec40e1bc922e55 lib/CPAN/Mirrors.pm
SHA256 47a2265a46aeb5eab4f579bfaf23643a2aef17558dbe1fca8acb6d979bf3faf2 lib/CPAN/Module.pm
SHA256 173e64f700ca0ab5af5e4447cb0d4b1d649d477434a5b8920754046e78a68de7 lib/CPAN/Nox.pm
SHA256 bd198128b4011e8b6c4720eb9db5e694132211b8913eb7f1264e380f4a2b71c5 lib/CPAN/Plugin.pm
SHA256 c4e668b7a1e99e136df109b1245e5dae2d67cce1b023deda04c097b0ab551b74 lib/CPAN/Plugin/Specfile.pm
SHA256 bf959b215b569d64db3b1d30da2961f1af8fa13b7401bd6ad1a259b7a3598f93 lib/CPAN/Prompt.pm
SHA256 dcde44c6542d27dd2e4bb217a7bec911048da27083337cf331f773e508d6bf2f lib/CPAN/Queue.pm
SHA256 a3293de51876d0df59f9b5000bdcc008fcdaa879dd11bc21ce25137b5dd5e392 lib/CPAN/Shell.pm
SHA256 fe7a523f58b79e3c2d6db01de51a73e0ad4a666fa53a95a7d48c1d37cbe3f8e6 lib/CPAN/Tarzip.pm

SIGNATURE  view on Meta::CPAN

SHA256 d46f31a8fe41b5c2c86d1dcf11f3820cca6ad3f08966b1f354890f4324028747 t/10version.t
SHA256 0c0e079caacbcee2cc8109dda8f444774131afefbd8bf91cc53b29f297639645 t/11mirroredby.t
SHA256 98b92e2a29923d1ad8e5357577b3dd4fab7316d3ec413c742f8f20226306e71a t/12cpan.t
SHA256 09820cb4fa467438e334ca2050dee877a1005bb5afb7cc550a0418e4806730a9 t/13tarzip.t
SHA256 6cfa87c5cea43695f314469ff0c0eca1ff5b83c2dd834909fe1238784a6498d9 t/14forkbomb.t
SHA256 a29557c20e16bae2d2eb3ff38177e5be8dc8718dc451157d3da9fc13a0bd5b7b t/30shell.coverage
SHA256 c679062d80e47ead37833b376a39b59a15a9802377af9da7f5490b1ffda87573 t/30shell.t
SHA256 588b69440bf64e455d0df4ae0eb69a277c3b1b2fae3dcfc8d1a826208f5c2ec2 t/31sessions.t
SHA256 5efd3fa9c952b475944b1b8842ad1201f4b3f76a81ae7e7e84dd8a7f09dc01d4 t/32pushyhttps.t
SHA256 c847ec5a936b94f487cfbf3004f74d67865e76e0f6882327b3674b6a14963ba9 t/41distribution.t
SHA256 2fd819be405ba20f826762dc1016915d3161366ff9e376bc164ae0462d7fa36f t/42distroprefs.t
SHA256 8a4a56cc37db20fb5ad4609de2c52204d7a691f53ac9163199fd94de845d72b9 t/43distroprefspref.t
SHA256 5c50557110b48f014e75ffef607daeecfff3069da15b36129bcee9d72d23f5cf t/44cpanmeta.t
SHA256 6109dadab614d170fc3db10b00a4c41c221860b1b1085a54af9a5f9f52480494 t/50pod.t
SHA256 0657e7155d910b080f43102b2e6a39aedda9edd194eaff68d2b83a61fdecd31e t/51pod.t
SHA256 9aaf0c99fae8190f0ec95e00e0c82fdcf2ad7301068c11dc0f74b94c4d79f3c9 t/52podcover.t
SHA256 6946b931083b7695a9db936b92a6ff2b41e4da7481c97a64d76cd30b588676e8 t/60credentials.t
SHA256 944d150594e43c6c637775c06f6f194a4cdbf6608a6372b945592352db6d62e2 t/70_critic.t
SHA256 490c093022f61eb1e4c0e9bf608aac98db0ae686486c43151ab2867d6d5c7ec4 t/71_minimumversion.t
SHA256 f9b47cf6624e12b110bf4c6e6d0e5acfc547c4fdd16e618c814d43b5eb9edba8 t/97-compile.t
SHA256 ae49798b4d3ff3fe9d3f7e0bedf10ef7d8872ff38a833fd851fa044f076f432e t/97-cpan1-test-mirror/authors/01mailrc.txt.gz
SHA256 b7b62c864c2a69c98189d0cfbcae2dc967f82464aa0732c0a15af56ba1c6a418 t/97-cpan1-test-mirror/authors/id/B/BU/BUSTER/CHECKSUMS

SlayMakefile  view on Meta::CPAN

		YAML::XS->import('LoadFile');
	} elsif (eval { require YAML::Syck; 1 }) {
		YAML::Syck->import('LoadFile');
	} else {
		die "Could not find a YAML::xxxx::LoadFile to import";
	}
}

all:

dd-prefs: { map { s{\.yml$}{.dd}; $_ } glob("distroprefs/*.yml lib/CPAN/Kwalify/distroprefs.yml") }

%.dd: %.yml
	{
		my($self, $target) = @_;
		(my $base = $target) =~ s{\.dd$}{};
		my $file = $base . ".yml";
	       	print STDERR "$base...\n";
		my @y = LoadFile($file);
		open my $ofh, ">", "$target~" or die $!;
		print $ofh Data::Dumper->new(\@y)->Indent(1)->Useqq(1)->Purity(1)->Sortkeys(1)->Dump or die $!;
		close $ofh or die $!;
		rename "$target~", $target or die $!;
		return; # note: return value gets printed!
	}

validate:
	{
		my $errors = 0; my $files = 0; my $perrors = 0;
		my $distroprefs_path = $INC{"CPAN/Kwalify.pm"};
		$distroprefs_path =~ s{\.pm$}{/distroprefs.yml};
		my $schema = LoadFile($distroprefs_path);
		for my $yml (glob("distroprefs/*.yml")) {
			$files++;
			my $data = eval { LoadFile($yml) };
			if (!$data or $@) {
				$perrors++;
				warn "Parse error in $yml: '$@'\n";
				next;
			}
			$errors++ if (!validate($schema, $data));
		}
		if ($perrors||$errors) { die "Found $perrors parse errors and $errors validate errors in $files files" }

Todo  view on Meta::CPAN

      1 #   Failed test 'decodeURI(&quot;%uD869&quot;)'
      9 #   Failed test 'decodeURI(&quot;%uD869%uDEB2%u5F3E%u0064&quot;)'

	The shorter one is /home/k/var/cpantesters/nntp-testers/1595927 from chris.

	No clue.

2008-05-31  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* There seems to be a bug when the user has makepl_args and the
	distroprefs file has other pl/args.

2008-05-29  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* flock on windows is mandatory -- mail from Jan Dubois

2008-05-28  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* what's the matter with maint-5.10? need a perl between 33823 and 33921
	and because 33921 does not build I must read the available perls in the
	APC directory:

Todo  view on Meta::CPAN


	* SHA256-0.01b has some 64bit issue. All FAILs are systems that have
	use64bitint set.

	http://rt.cpan.org/Ticket/Display.html?id=33944

2008-04-29  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* XML::SAX::RTF needs an emergency release

	* Bug in new distroprefs: sorting has been lost

2008-04-26  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* get-reports: when we get no clue from whatever we try we would like to
	have an automaton that tests for every possible dependency, calculates a
	regression and lists them. POE::API::Peek is such a case but also
	List-Sliding-Changes might be analyzable that way.

	L:S:C is fixed and get-reports did not help. Would have needed more
	insights into tests but most reports do not provide that especially not

Todo  view on Meta::CPAN


	The difference comes after 

	my @blocks = unpack("a$bs "x(int(length($self->{'buffer'})/$bs)) . "a*", $self->{'buffer'});

	These blocks are UTF8 since 23966 and were not so in 23965. Even with
	identical 7bit content this makes a difference later.

2008-04-11  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* may be a bug in Distroprefs.pm the $abs in line 122. Seen with some DD
	only perl.

	* OOTools:

----Program----
eval q{use Class::Error 2.21};
print $@ ? "N/A" : "OK";
print "\n";

----Output of .../pBnR154/perl-5.9.2@24659/bin/perl----

Todo  view on Meta::CPAN

	
2008-03-10  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Some day Ken Williams made a few statements about what CPAN.pm is
	considered to do in the face of a recommends or an optional_features.
	Where is it? Can't find it.

	So recap what Slaven hashed out today:

	If the user says dynamic_config=0 and specifies optional_features and
	the distroprefs give me want_optional_features, then I can merge these
	requires and build_requires and configure_requires into the main stuff
	and proceed without asking questions. Really cool.

	* VPIT/IPC-MorseSignals-0.13 hangs during t/62-fork-storable.t under
	maint-5.10@33443.

	And it hangs on t/61-fork-utf8 under maint-5.10.0@33412

	* AI::Prolog jumped into my eye:

Todo  view on Meta::CPAN

N/A

----EOF ($?='0')----

	There is a regex written with qr/.../ which is later used within a
	pattern. The -m of the inner pattern was overruled by the outer /m until
	23470 and not overruled in 23471. It's the pattern 'from_pattern' from
	the Config.pm. Fixing this fixes one test, not all. Two more spots to
	patch.

	distroprefs/DCOPPIT.Mail-Mbox-MessageParser.yml

	http://rt.cpan.org/Ticket/Display.html?id=33004

2008-02-05  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* need to re-visit OLAF/Net-DNS-0.62.tar.gz, not in RT and not inspected
	closely enough.

	http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-01/msg01365.html

Todo  view on Meta::CPAN


	http://rt.cpan.org/Ticket/Display.html?id=31275 where Alias say "A challenge"

	* off topic: http://use.perl.org/~pmichaud/journal/35049

	patrick on state of perl6/parrot

2007-12-04  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Feature request to David Golden: turn on/off cc_author via
	distroprefs. How?

2007-12-02  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Gtk2 has one single PASS. It fails on 27002 more or less the same way
	as with current 5.10. It fails on 23023 because Glib fails there. Maybe
	it would be interesting to find the place in history when Glib started
	working and then to run Gtk2 through that version. Just a binarysearch
	without --build should do.

----Output of .../p4eJlzo/perl-5.8.0@25733/bin/perl----

Todo  view on Meta::CPAN

	And the tempfile is gone. Starting to cleanup my /tmp directory and
	rerunning the A:A test again and again. AA itself leaves a testfile in
	/tmp. Not every time?

	Found something, not related to the tmp directory. I have

test:
  args:
    - "TEST_FILES=t/00compile.t t/Any.t t/fail.t t/perl-critic.t t/pod.t t/type.t"

	in the distroprefs file. If I remove it we succeed. Finding a new bug by
	working around another. Who broke the distroprefs file? It is not
	MakeMaker or Harness. If I issue 'make test TEST_F...' manually it is
	fine. It's something coming earlier.

	It's in CPAN::Reporter. If I turn reporting off it goes away.
	Downgrading to 0.99_1[540] same problem. Downgrading to 99_05 nope,
	99_01 nope. To 0.4801 good.

	Ticks in a command. Patch sent to David.

2007-10-12  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

Todo  view on Meta::CPAN


	http://rt.cpan.org/Ticket/Display.html?id=29940


	* RCLAMP/POE-Component-Server-HTTP-0.09.tar.gz looks like a BBC
	candidate 22245 OK. But it's shadowed by the depends on POE-API-Peek
	which was broken by blead for a while around 27514.

	I have the impression that POE::API::Peek started to work on 31051 and
	that POE::Component::Server::HTTP now works too since I have added a
	dependency on POE::API::Peek in my distroprefs file. Nope, the
	dependency on POE::API::Peek is in the Makefile.PL of P:C:S:HTTP.

	Apparently all's well. *Maybe* there's also a configure_requires on POE
	needed somewhere, dunno.

	* IFF Compress::Zlib 2.X does not work we can take
	PMQS/Compress-Zlib-1.42.tar.gz as a replacement!

	Would be nice to find a replacement for Scalar-List-Utils too. 1.19 does
	not work with blead@23023, but 1.17 does.

Todo  view on Meta::CPAN

	Repeat with maint@31223, same result, this time without sent report
	because it was not running from the CPAN shell. Same failure on danga
	for 5.8.8 but 5.8.8 doesn't have the 02_config failure.

	http://rt.cpan.org/Ticket/Display.html?id=29660

2007-09-28  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* MSISK/HTML-TableExtract-2.10.tar.gz: I had already RTed months ago
	that it is due to the HTML::TreeBuilder but did I write it into a
	distroprefs file? Yes, Sir, I have:
	distroprefs/MSISK.HTML-TableExtract.yml and that is why since then I
	have ONLY fails.

	Would be cool to offer a fix though.

	But in the interest of sanity it would be better to write a distroprefs
	file automatically that's based on some criterium like, say, no release
	for over N months although since that many months nothing but fail
	reports. This would also be interesting for CPANTS.

	* Todo: write a history of used distroprefs docs so we can identify
	which ones are never used and can be purged.

2007-09-25  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* MIME-tools-5.421 give me a major headache the testsuite (sometimes?)
	runs into a tight loop of 'Warning: Use of "require" without parentheses
	is ambiguous at (eval 5493800) line 1.' At least now twice for 31952 and
	31955.

	I have to kill this one:

Todo  view on Meta::CPAN

      test:
	      ./Build test
	    install
	      ./Build install
	    [...etc...]

	Has this been tried? Does it have pitfalls? It seems so easy and
	natural. Isn't anybody keen implementing it?

	* switching back to EUMM for one smoke and then back to MB with the
	distroprefs for MethodMaker which needs EUMM.

2007-09-10  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* trying to summarize where Build.PL is inferior to Makefile.PL:

	SCHWIGON/class-methodmaker/Class-MethodMaker-2.10.tar.gz
	   (FLUFFY/Term-ProgressBar-2.09.tar.gz dependent)

	Steffen seems to be the only one.

Todo  view on Meta::CPAN


	* discussion list/bofs/david golden, foxson, barbie

	* email headers/subject line ==> http upload ==> subscribe/unsubscribe
	==> fail-safeness of email cannot be topped

	* pita...

	* BOF: Offline testing: Smoke needs a way to store the produced emails

	* David Cantrell Feature request: every time I have no distroprefs and
	have to answer some question, CPAN.pm should look over my sholder, record
	the answers and write the according distroprefs file for me. Or
	something.

	* why did the tests not fail when windows 98 had no flock? Because
	Expect was not installed, I think.

	* off topic: get cable back from Ovid

	* Todo: add FUSE stuff to megainstall.txt DONE

2007-08-27  Andreas Koenig  <k@andreas-koenigs-computer.local>

Todo  view on Meta::CPAN

C:/perl/lib/File/Spec/Win32.pm line 143.
  LWP not available
Fetching with Net::FTP:
  ftp://cpan.etla.org/pub/CPAN/modules/03modlist.data.gz
Going to read C:\perl\.cpan\sources\modules\03modlist.data.gz
............................................................................DONE
Going to write C:\perl\.cpan\Metadata
Running install for module 'B::Utils'
CPAN: Data::Dumper loaded ok (v2.121_14)
'YAML' not installed, falling back to Data::Dumper and Storable to
read prefs 'C:\perl\.cpan\prefs'
Running make for J/JJ/JJORE/B-Utils-0.05.tar.gz
  LWP not available
Fetching with Net::FTP:
  ftp://cpan.etla.org/pub/CPAN/authors/id/J/JJ/JJORE/B-Utils-0.05.tar.gz
CPAN: Digest::SHA loaded ok (v5.45)
  LWP not available
Fetching with Net::FTP:
  ftp://cpan.etla.org/pub/CPAN/authors/id/J/JJ/JJORE/CHECKSUMS
Checksum for C:\perl\.cpan\sources\authors\id\J\JJ\JJORE\B-Utils-0.05.tar.gz ok
Scanning cache C:\perl\.cpan\build for sizes

Todo  view on Meta::CPAN


	iow: is set_perl5lib called from within get or its deputies? Yes, in
	line 7193 within make

	* Idea: new option to cleanup the build_dir not by size but by age.

	* Todo: with the new sendmail configuration I should retry if mailtools
	work now. Which perl is good for that? Stock 5.8.8 should do and note
	there is a 2.00_xx! For install I can configure back to using sudo. But
	all testing should be done by sand because there is the reporter DB. So
	this time I want to disable prefs? No, k installs, sand tests.

	Yes, even with Test::Reporter 1.27 the mail from Mail::Send seems to
	have been accepted for delivery (RJBS/Test-BinaryData-0.003.tar.gz). Now
	with Test::Reporter 1.30 I tried KWILLIAMS/Path-Class-0.16.tar.gz. And
	finally with MARKOV/MailTools-2.00_01.tar.gz I try
	JROCKWAY/Directory-Scratch-0.12.tar.gz

	Mails went out through sendmail.

	Mailq is empty. But the mails did not come back to me on the

Todo  view on Meta::CPAN


	
	30019 YAML::Syck


	* UNIVERSAL::require and Jifty have some broken relationship. Maybe we
	could run a binary search with a very limited test? The testsuite of
	UNIVERSAL-require-0.11 has no issues with bleadperl but Jifty uses U:r
	it in a way that fails since day X. t/00-load.t would do for the binary
	search. Let's disable CPAN::Reporter and add the test/args:
	TEST_FILES=t/00-load.t to the distroprefs file. And
	cpanconfig/test_report: 0.

	Not possible because Jifty-DBI-0.41 fails with 23023. And PASS 94 : FAIL
	68 is not encouraging to continue with this test. Since 2007-06-29T20:11
	I haven't seen a PASS for Jifty::DBI.

	t/10schema.t    7  1792   147    7  16 20 27 33 39 45 51

	But Jifty::DBI from SVN works, so we can adjust everything to 

Todo  view on Meta::CPAN


	http://rt.cpan.org/Ticket/Display.html?id=28122

2007-07-11  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Exporter::Simple now has its test scripts but the binary search points at

	Change 29023 by stevep@stevep-kirk on 2006/10/15 17:17:32
	    Upgrade to Time-HiRes-1.93.

	What a crap! The reason turns out to be that I have distroprefs files
	that 1.8855 could not grok and 1.8855 was not forward compatible and
	very misbehaving visavis unknown parameters. FINISHED after some days

	* Encode::IBM fails at 'make install' after successful make test

	http://rt.cpan.org/Ticket/Display.html?id=28090

	* Brandon Black suggests that ftp: URLs shall not be tried before all
	http URLs have been tried with all external programs we could find.

Todo  view on Meta::CPAN

Can't use string ("0.25") as a HASH ref while "strict refs" in use at lib/CPAN.pm line 7868.

	FIXED

	* Bug: untar happens twice FIXED

	* To be tested: is the behaviour sane when they say configure_requires:perl:15?

	* Use it for DBI/DBD::SQLite! DONE

	* Revisit all depends/* distroprefs if they were written with the correct
	flavor of *requires. E.g. X500::DN/Parse::RecDescent certainly is a
	"requires" not a "build_requires" but nobody would notice because we
	install P:R later anyway. DONE

	* JROBINSON/SQL-Translator-0.08 has a configure_requires on
	Module::Build::Compat. I saw this today with blead@23190:

	Can't locate Module/Build/Compat.pm in @INC (@INC contains: /home/src/perl/repoperls/installed-perls/perl/pvvpo99/perl-5.8.0@23190/lib/5.9.2/i686-linux-64int /home/src/perl/repoperls/installed-perls/perl/pvvpo99/perl-5.8.0@23190/lib/5.9.2 /home/src/...

	But I don't understand it because my script must have tried to install

Todo  view on Meta::CPAN

platforms.  LWP is a solution, but unlikely to make it into core
anytime soon.  Perhaps if it would at least test for http support (via
LWP or external stuff like wget/curl) and default to using any
available http transport instead of ftp if possible for bootstrapping
mirror lists and module lists, that would improve the situation for
some.

-- Brandon


	* configure_requires needs to be rounded off with distroprefs
	depends/configure_requires most prominently because we can test it
	better if we write some distroprefs that use it.

	* SQL::Translator has an error message that seems to resemble MRO error
	messages. Binary search?

	* Handle N/A because

  ! DBIx::Class::Validation                 0.02000 n/a    
  ! FormValidator::Simple                   0.17    n/a    
  ! SQL::Translator                         0.08    n/a    

Todo  view on Meta::CPAN

	* CHROMATIC/Crypt-CipherSaber-1.00.tar.gz had a dropout at 31444 need to
	look closer

	* Off topic Todo: Devel::Symdump fails recur test with 5.00504.

	But succeeds in the debugger.

	* DMAKI/File-Extract-0.06.tar.gz is dependent on Spreadsheet::Read and
	therefore has mixed results.

	* Refactor the distroprefs with one file for all the "standard" MI
	distros. DONE but as of 31446 not yet tested.

2007-06-22  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Glib: I once put a patch for Glib into /tmp/ and then forgot and then
	lost the patch. Today I reconstructed what might have been in there so
	that the distroprefs get useable again. Similarly I had to put the Gtk2
	patch from patches/ to /tmp/.

2007-06-20  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* ZOOLEIKA/SVG-Plot-0.06.tar.gz

	http://rt.cpan.org/Ticket/Display.html?id=27652

	* MRAMBERG/Catalyst-Plugin-Unicode-0.3.tar.gz is among the new fails but
	I don't see a fail report on cpantesters. Ah, he did not include the

Todo  view on Meta::CPAN

	* http://rt.cpan.org/Ticket/Display.html?id=27491 Log-Report-0.05
	because it hangs during the test I cannot put it into megainstall

2007-06-07  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* SWF::Builder flaky test. Seemingly random results. This RT ticket is
	now 4 weeks old. Need to patch the distro.

	http://rt.cpan.org/Ticket/Display.html?id=26971

	distroprefs/YSAS.SWF-Builder.yml DONE

	* POE 0.9989 fails a tk test under very rare unknown circumstances.

	Only three time (2007-06-06T19:55 (31344), 2007-05-29T05:48 (31296),
	2007-05-26T14:17 (31281)) in 26*6+1 times. The failure is not
	reproducable. The logfiles show all three times exactly the same:

t/30_loops/50_tk/wheel_run...................
#   Failed test 'coderef/shutdown close'
#   at t/30_loops/00_base/wheel_run.pm line 332.

Todo  view on Meta::CPAN

	* why does an upgrade install Chart 2.4.1? Because 2.4.1 < 2.3? How does
	this happen?

	Chart::Mountain               undef  2.004001  CHARTGRP/Chart-2.4.1.tar.gz

2007-06-05  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Todo: Test if we can work with YAML::Tiny.
	http://svn.ali.as/cpan/concept/cpan-yaml-tiny/

	No, it fails on many distroprefs files and on FTPstats.yml. This was
	with 0.12.

	* WWW::Live365 has very mixed/random test results. Most recent breakage
	was WWW::Mechanize but this seems to be fixed now, so probably
	everything OK.

2007-06-04  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Watch HTML-TreeBuilder-XPath-0.08

	It failed suddenly in current build and has quite a good history of
	green builds, although not perfect.

	* Binary searches in some regions below 23023 are getting uglier and
	uglier. I now see test failures in CPAN.pm's 10version.t (Out of
	memory!) so CPAN.pm does not get installed, we have to use a very old
	CPAN.pm which cannot install current CPAN::Reporter and cannot run
	distroprefs. So it asks all the questions that we had so happily
	eliminated.

	Some time ago I had always used the very current CPAN.pm from the repo
	for running the binary searches. Maybe I should switch back to that?

	Notest is your friend! First we check if we are below patchlevel 23023.
	Then we check if we are below 1.8802. If so, we install 1.8802 so that
	we get at "notest". Then we install current version with the help of
	notest. Fini. Now it flies again.

Todo  view on Meta::CPAN

	* Test::WWW::Mechanize has many PASSes _and_ FAILs.

	* I have removed from megainstall: PGP::Sign because it does not set $|;
	and Djabberd because it seemed to hang in the test even when it could
	write to /tmp/djabberd/

	* 5.6.2 fails one kwalify test in 12cpan.t for non obvious reason.

2007-04-19  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Crypt::OpenPGP needs a fix in the distroprefs file. What was the
	problem? During XML-FOAF the usual recursion into installing OpenPGP
	seemed to happen. Yes, I had PERL_AUTOINSTALL set, now added
	PERL_EXTUTILS_AUTOINSTALL.

	As long as this was missing, we had to kill the recursively acting
	installer three times: during make, make test, and make install.

	DONE.

	* 1.91 is out.

Todo  view on Meta::CPAN


2007-04-16  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Most urgent tasks?

	Report Text::Hatena (JKONDO/Text-Hatena-0.20.tar.gz)

	Report Locale::TextDomain (GUIDO/libintl-perl-1.16.tar.gz)

	Write a bug report about Coro::Event and its interaction with CPAN.pm or
	find out how to fix it and write a patch. Turn off distroprefs or work
	without CPAN.pm to make things more obvious. Look:

	cpan[2]> m Coro::Event      
Module id = Coro::Event
    CPAN_USERID  MLEHMANN (Marc Lehmann <pcg@goof.com>)
    CPAN_VERSION 2.1
    CPAN_FILE    M/ML/MLEHMANN/Coro-3.6.tar.gz
    UPLOAD_DATE  2007-04-14
    MANPAGE      Coro::Event - do events the coro-way
    INST_FILE    (not installed)¯


	Analyse the endless loop in "fforce test Task::Smoke". Maybe the fforce
	is to blame?

	FirstTime manpage?

	Implement configure_requires? (testcase RPC::XML)

	Implement a depends/requires keyword for distroprefs? (Testcase
	Spreadsheet-ParseExcel (http://rt.cpan.org/Ticket/Display.html?id=24693)
	or XML-Filter-XInclude
	(http://rt.cpan.org/Ticket/Display.html?id=27401))

	Speedup the cleanup? DONE [...time passes...] But I do not like the new
	version. I want to see how long it takes/will take. svk rev. 2216 seems
	to provide that.

	Implement 30shell.t in a way that always emits useful output after a
	failure? DONE in SVK rev. 2255

Todo  view on Meta::CPAN


	* Nice to have: an overview over the neuralgic patches up to 5.10 that
	broke XS modules with both links to patches, versions of the modules
	before and after the fix, error messages, etc. This would help people
	who have a broken XS module to find the quickest fix.

	* Bug: we scan the cache for sizes, then sort by date, then delete. We
	should first sort by date, then scan for sizes, then start to remove
	without scanning as soon as we know we are above the limit.

	* Maybe add a depends keyword to distroprefs because the number of
	missing dependency declarations in modules does not decrease despite all
	the bug reports we have sent out.

	* As soon as we support bz2 we must have an implicit dependency on
	packages Compress::Bzip2 whenever we want to untar such a thing.

	* For the Todo from David Golden: On installation of a distribution,
	check %INC for modules in that distribution. If found, warn the user and
	suggest that they call "reload cpan" at the prompt.

Todo  view on Meta::CPAN

	have to pass on this one. Pity.

	And we have a similar issue with Flickr::API which also depends on
	XML::Parser::Lite::Tree (but which still fails tests, even if we resolve
	the X:P:L dependency).

	I think it's best described as a pseudo dependency. It depends on a
	thing that is contained in another but this other thing hides this (with
	the underscore in the version number).

	As was the case before we had distroprefs, externally known dependencies
	are best handled by bundle files. My "bundle file" here is the
	MEGA_INSTALL macro in my Makefile.PL. I simply add SOAP::Lite _before_
	Plagger.

	* Feature request by self: "o conf init ~"

	Should only try to talk about uninitialized or undefined config
	variables. (?)

	Tried it and it was much more work than expected, giving up. For a

Todo  view on Meta::CPAN

' at lib/CPAN.pm line 274
        CPAN::shell() called at -e line 1

	Same for 30824. But when I repeat the 'm' command after that, it works.

	There must be a yaml file that breaks something. Needs further investigation.

	The broken YAML file is ~/.cpan/build/DBD-SQLite-1.13-Hqur1h.yml which
	fails at line 30/31:

 29   prefs:
 30     comment: '\nBecause the Makefile.PL depends on having DBI installed we w    ant to\nlet them build DBI and then rerun perl Makefile.PL and then make"\n\    nIt\'s a crazy example that I do not really like. I prefer resolving\nsuch a     thing...
 31     install: {}
 32 

	YAML::LoadFile isn't accepting this as valid YAML either. So who wrote
	it? It was written by YAML::Syck 0.84.

	https://rt.cpan.org/Ticket/Display.html?id=26057

2007-04-01  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

Todo  view on Meta::CPAN

	20070327T0954 perl        30771 B
	20070327T1451 perl        30773 B
	20070327T2003 perl        30774 B
	20070328T1247 perl        30775 B
	20070329T0833 maint-5.8   30765
	20070329T1122 perl        30776 B
	20070330T0409 perl        30777 B
	20070330T2244 perl        30777 B
	20070330T2346 perl        30791 B

	A single 'make clean' helped and is now in the LOCAL distroprefs file.

	* Why is this in last night's megainstall (megainstall.20070330T2346.out):

  CPAN.pm: Going to build P/PE/PEVANS/Time-HiRes-Value-0.03.tar.gz

Checking whether your kit is complete...
Looks good

Checking prerequisites...
Looks good

Todo  view on Meta::CPAN

	all tests before that were OK, all tests after failed.

logs/megainstall.20070127T2309.out:ESC[1;44m  WSNYDER/Verilog-Perl-2.371.tar.gz
logs/megainstall.20070127T2309.out-ESC[0mESC[1;44m  /usr/bin/make test -- OK
--
logs/megainstall.20070128T0351.out:ESC[1;44m  WSNYDER/Verilog-Perl-2.371.tar.gz
logs/megainstall.20070128T0351.out-ESC[0mESC[1;31m  /usr/bin/make test -- NOT OK

	Now this: back in February I proved it is not perl. Now I proved, it is
	something based on date, not perl version. So something else was updated
	that evening, either a distro or a distroprefs file.

% diff -u =(grep 'CPAN.pm: Going to' logs/megainstall.20070127T2309.out | sort) =(grep 'CPAN.pm: Going to' logs/megainstall.20070128T0351.out | sort)
--- /tmp/zshkEon7w      2007-03-28 08:09:44.000000000 +0200
+++ /tmp/zsheCNzmI      2007-03-28 08:09:44.000000000 +0200
@@ -321,6 +321,7 @@
   CPAN.pm: Going to build J/JR/JROBINSON/DBIx-Class-0.07005.tar.gz
   CPAN.pm: Going to build J/JR/JROGERS/Net-Telnet-3.03.tar.gz
   CPAN.pm: Going to build J/JU/JURL/DBD-ODBC-1.13.tar.gz
+  CPAN.pm: Going to build J/JV/JV/Getopt-Long-2.36.tar.gz
   CPAN.pm: Going to build J/JW/JWIED/Net-Daemon-0.39.tar.gz

Todo  view on Meta::CPAN

Skipping /etc/zoidrc (unchanged)

	Apparently I have this zoidrc since Feb 12 or somebody set the timestamp
	to that. The file belongs to me, so I would be able to overwrite it. The
	failure to install it is a bug in ExtUtils::Install since 1.39_01.

	http://rt.cpan.org/Ticket/Display.html?id=25627

	What's noteworthy is that there seems to be no viable workaround short
	of patching Zoidberg. I cannot find a way to skip the installation step
	of etc/zoidrc. Not with "appdir", not with "distroprefs/*/commandline"
	where I tried to remove some files in the right moment, not with
	"||true" on the commandline because etc/zoidrc comes before the modules.
	Only thing is to disable all ExtUtils::Install after 1.39 and allow 1.39
	and downgrade everywhere. But here my love to Zoidberg is not strong
	enough and I decide to wait for a new release of ExtUtils::Install.

2007-03-20  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Bug in perldoc when rendering S< > which is being used in
	Tk/pod/mega.pod. It seems the rest of the line is being lost or so.

Todo  view on Meta::CPAN

	http://rt.cpan.org/Ticket/Display.html?id=25009

	* 29026 broke Text::Template

t/09-error.........Illegal value `WLUNCH' for TYPE parameter at t/09-error.t line 41
t/09-error.........FAILED test 3
        Failed 1/5 tests, 80.00% okay

	It's a \Q\` matter and shall be treated as a bug in user code, I suppose.

	https://rt.cpan.org/Ticket/Display.html?id=23620 and a new distroprefs
	file. I only looked into RT too late:(

2007-03-03  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* just sent a report about Exporter::Simple. Debugging shows that it was
	sent with Net::SMTP. Same for XML::Compile. Neither arrived at testers.
	Maybe I had a different smtp host then? I do not remember to ever have
	changed it.

	smtp_server=localhost

Todo  view on Meta::CPAN


	Jost's sun-solaris test # no idea what to do

	can we have RT          # Bundle::RT is in

	and Tcl in megainstall  # DONE

	* my internet access is broken at the moment. When it is back I need to
	answer two posts by Eric Wilhelm.

	* possible bug: when a distroprefs file has "match" but no valid keyword
	under match/, then it seems that it matches always instead of being
	rejected as invalid. We must make the one of the match subthingies
	mandatory. Need to study
	http://www.kuwata-lab.com/kwalify/users-guide.01.html for that when my
	internet is back.

	FIXED in svk rev. 2002 or so.

2007-03-02  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

Todo  view on Meta::CPAN

	would be between 3007[26]. It's very clear now that it is not bleadperl
	but some other module that is used by vppp.

	LATER. I must delay further analysis because this can take a long time.


2007-02-16  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Talk: convert a megainstall file to HTML with <pre> and <span
	class="XXX"> and many anchors so that we can jump directly into it. Then
	make HTML slides that jump into that file and into the distroprefs files
	which may need converting too for best lettersize.

	Interestingly, when I do this, rendering of the resulting HTML file is
	too much work for my firefox on linux/Dell/500 MHz. The MacBook is
	several orders of magnitude faster but still a bit painful.

	* in the talk, compare dot distros with pip and Inject.

	* read CPAN::Inject and CPAN::Mini::Inject manpages

Todo  view on Meta::CPAN

	* I'm guilty to not have mentioned Devel::Size when we were talking
	about releasing 5.10. It's gone broke when? 29544: Eliminate PVBM

	We need something like this which is from a patch by Nicholas for
	Clone.xs:

+#if PERL_VERSION <= 8
       case SVt_PVBM:   /* 8 */
+#endif

	FIXED in http://rt.cpan.org/Ticket/Display.html?id=24982 and distroprefs.

	* I just discovered that CPAN::Reporter does not work with 5.8.0 because
	IO::CaptureOutput does not either.

2007-02-13  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* My tests usually are run with perls that are pretty well equipped with
	modules. I should always test with a minimum perl installation. We need
	to provide one. Let's nominate a funny number. 30123.

Todo  view on Meta::CPAN

	-degraded mode
	-add distribution name to every OK/NOT OK; also inspired by Ilya.
	-mention 'cpan .', compare with pip and Inject stuff
	-mention yaml_module and YAML::Syck earlier
	-build_requires_install_policy
	-scripts installation
	Devel::Cover statistics??? -- not really interesting
	eexpect example -- no, no good example found
	- force/fforce
	- auto_commit
	-	maybe mention Kwalify in the distroprefs section
	- Randy status report
	- patch/applypatch support with example
	- goto example
	- commandline example -- no, too intimidating

	Screenshot of the hosts command

cpan[1]> hosts
CPAN: YAML loaded ok (v0.62)
Log starts: Thu Jan  4 16:26:35 2007

Todo  view on Meta::CPAN

+  To install Pari, you will be required to have installed Pari from
+  http://www.parigp-home.de/ prior to installing the Perl module.
+
+  Proceed with installation without Math::BigInt::GMP or Math::BigInt::Pari? [n] 

	Why did I never before see this?

	Because Math::BigInt::GMP fails! See
	http://rt.cpan.org/Ticket/Display.html?id=24672

	Whatever the answer, this must go into distroprefs. DONE for both TELS
	and DMAKI.

	In the Build.PL I see:

	    my $proceed = Module::Build->y_n($message, "n");

	Looks to me that Module::Build should set $| within y_n? Yes? No?

	Missing $| reported to module build mailing list just now.

2007-01-28  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* My talk proposal http://www.perl-workshop.de/auth/my/edittalk?id=46

-Distroprefs: Module morphing, taming, killing, obedience, etc.
-CPAN::Reporter: Talkback.
-CPAN::SQLite: use less memory.
-dot distros: cpan DOT (bring your own)
-Persistent Shell. build_dir_reuse
-Permanent Shell. reload seems reliable now
-Upgrade.
-Test Now, Install Later. Is_tested, install_tested
-Interactive Configuration of single items.
-Color.
Bundle::CPANxxl - what is in there? sequence matters.

Todo  view on Meta::CPAN

DIED. FAILED test 1
	Failed 1/2 tests, 50.00% okay

	https://rt.cpan.org/Ticket/Display.html?id=7376 has something about it.

	* hunting XML::Twig/bleadperl test failures again. I started this once
	on 2007-01-06 and yesterday I let a binary search run against 3.29.
	28202 broke 3.29 but only with a test failure that later disappeared
	again, so this result is not interesting. I need a temporary patch that
	disables the testfile t/test_xml_split.t completely. Ah, this is quite
	easy with test/args distroprefs.

	Testing a temporary MIROD.XML-Twig.yml file that lists all test scripts
	individually (except the offending one). And it turns out that this
	functionality was missing in CPAN.pm. FIXED in SVK rev. 1807

	With              28202           the test test_xml_split  started failing
	Somewhere before  28319                    test_xml_split  stopped failing
	With              28319           the test test_errors     started failing
	Somewhere before  28785                    test_errors     stopped failing
  With              28785           the test test_3_27	     started failing

Todo  view on Meta::CPAN

	/home/src/perl/repoperls/installed-perls/perl/poKEUxZ/perl-5.8.0@29275/lib/5.9.5/utf8_heavy.pl.
	Yes, it is very annoying, the syntax error is there and cannot be
	explained by anything but a disk drive error (and I had RAID break three
	times these days). It is a rotten build and must be removed.

	278 cannot be built due to two failing tests. We will ignore the failing
	tests ../ext/Time/HiRes/t/HiRes.t ../lib/perl5db.t for now. OK, it does
	not fail the mark test, just the 3_27.

	279 fails the mark test. Ready to write to P5P. And I must correct the
	temporarily manipulated test/args distroprefs file.
	
	285 failed the mark test

	29010 and 29220 have at least test_3_27.t and test_additional.t failing

	29411 and 29705 have at least test_mark failing

	30044 fails only test_3_27	and test_mark
	
	* Slaven tells me that he can confirm the Term::ReadLine::Gnu behaviour

Todo  view on Meta::CPAN

BEGIN failed--compilation aborted at /home/src/perl/tk/SVN/blib/lib/Tk.pm line 13.
Compilation failed in require at (eval 3) line 3.

	and 29411 similarly with

	Strange: could not load Tk library: Assertion (svtype)((_svi)->sv_flags & 0xff) >= SVt_PV failed: file "Event.xs", line 33 at /home/src/perl/repoperls/installed-perls/perl/pXADjKY/perl-5.8.0@29411/lib/5.9.5/i686-linux-64int/DynaLoader.pm line 226.
Compilation failed in require at /home/src/perl/tk/SVN/blib/lib/Tk.pm line 13.
BEGIN failed--compilation aborted at /home/src/perl/tk/SVN/blib/lib/Tk.pm line 13.


	* Speed things up by reading distroprefs less often or otherwise find
	out who is so slow here. What happens between 'Running make for
	<distro>' and 'Checksum for <distro> ok'? Time is spent in get(). Even
	though we now do negative caching of distroprefs for the time of one
	command, the get() is still slower for some reason. SEEMS AMENDED

	* if somebody else deletes a build_dir, we must offer a better solution
	than breakage 'can't chdir...'

	Suggest "maybe try 'force get $ID' to clean up the object in memory" or
	something like that. Or "to reset everything" or "to start with a fresh
	distro"... Nothing seems really good and correct. DONE

	* Catalyst would be another candidate for a large dependency list. INC'ED

Todo  view on Meta::CPAN

	My procedure when I encounter a broken package:

    look DISTRO
    cd ..
    rsync -va DISTRODIR/ DISTRODIR.orig/
    # fix the distro in DISTRODIR
    diff -urp DISTRODIR.orig DISTRODIR > DISTRODIR-ANDK-01.patch
    gzip DISTRODIR-ANDK-01.patch

	I then upload the resulting patch to my CPAN patches/ directory and
	write a YAML file into my prefs_dir/ directory that contains roughly

    ---
    comment: "This patch fixes ..."
    match:
      distribution: "^DISTRO$"

    patches:
      - ANDK/patches/DISTRODIR-ANDK-01.patch

	That's all. From then I can install that distro for any perl version on

Todo  view on Meta::CPAN

	No. Still hanging. No signs of being the wrong perl. Trying with 'make run'.

______________________ D i s t r o P r e f s ______________________
                      AUDREYT.Jifty-DBI.yml[0]                      
Running make for A/AU/AUDREYT/Jifty-DBI-0.32.tar.gz
  Has already been unwrapped into directory /home/k/.cpan/build/Jifty-DBI-0.32-LUlvH7
  '/home/src/perl/repoperls/installed-perls/maint-5.8/pLUMXwK/perl-5.8.0@29988/bin/perl Makefile.PL' returned status 2, won't make

	'fforce make ...' first scans the build_dir for sizes which takes a
	while, maybe the resync of the RAID is slowing it down. After that the
	distroprefs mechanics answer the auto-install question(s).

	But 'test Jifty::DBI' fails some tests. It tests many dependencies, so
	let's look at the summary:

  AUDREYT/Jifty-DBI-0.32.tar.gz
  /usr/bin/make test -- NOT OK
Failed during this command:
 JHOBLITT/DateTime-Format-ISO8601-0.0403.tar.gz: make_test NO
 AUDREYT/Jifty-DBI-0.32.tar.gz                : make_test NO

Todo  view on Meta::CPAN


	Suggest "maybe try 'force get $ID' to clean up the object in memory" or
	something like that. Or "to reset everything" or "to start with a fresh
	distro"... Nothing seems really good and correct. LATER
	
	* Today Ken confirmed that _build/prereqs is safe to rely on. Good news,
	Thanks Ken!

	* Todo before 71: write a Changes file. Declare YAML::Tiny not supported
	DONE; support is_tested and install_tested and document them (DONE SVK
	rev 1763); integrate the distroprefs README into the manpage (DONE SVK
	rev. 1766); speed up distroprefs parsing with a cache DONE in SVK rev.
	1764;

	It would be nice to understand the failures that were reported through
	testers and the one I saw on my dev05 box and the ones I saw on OSX but
	it will again be a developer release after all, so maybe these will have
	to wait.

	The test failure on dev05 is not reproducable. OSX?

	OSX passes all tests with my first _71 test build.

Todo  view on Meta::CPAN

	File::HomeDir has issues and I could not use CPAN::Reporter to write a
	report because it said there was no config file. Will have to revisit
	this.

	* For several days I have kept Kwalify out with dontload_list. Today I
	opened the door again and let 29923 work through megainstall. All's
	well.

2007-01-21  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* We need a speedup of the distroprefs stuff. Currently we're going
	through readdir and YAML::Load thousand times per module. We should
	probably cache the whole directory structure once per command and delete
	it from re-used build_dirs. DONE with negative per-command distroprefs
	cache.

2007-01-20  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Today I have a segv with 29895 when running CPAN.pm. It may be
	relevant that I erroneously left YAML::Tiny configured? I reconfigured
	to prefer YAML::Syck and ... the SEGV remains. Configuring limit
	coredumpsize 100m now. The SEGV seems to bring the box to its knees and
	the logfile of the first run of 29895 says 'Out of memory'. And the core
	file is indeed 100m and has no stack. Setting coredumpsize to 1000m now.

Todo  view on Meta::CPAN

	SEGV. So something between 29887 and 29895 is evil. How ironic that most
	of these patches are related to CPAN.pm!

	The newest core file is 1000M large, gdb needs a long time to load it
	and again says "No stack" when I say 'bt'.

	Next idea is to 'o conf dontload_list push Kwalify'. Now we get a step
	further. CPAN tries to install Archive::Zip, then becomes very slow,
	grows to 55M and then starts scanning build_dir for sizes. From that
	point it succeeds in building and installing, just a bit slow it seems,
	but this may be just the normal distroprefs slowness. Bundle::CPANxxl is
	installed now and megainstall is running. After a while I discover that
	I made a typo for yaml_module and said YAML::Sync. Of course this leads
	to slowness. Interesting mistake though, we might want to guard against
	it. 'make megainstall' finishes just as we're used to.

	FirstTime warns on misspelled module names since SVK rev. 1761.

2007-01-15  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* DBIx::Class has DBD::SQLite as build_requires. Thus it is being built,

Todo  view on Meta::CPAN


2007-01-09  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Watch the Module::Build space for updates to the question of calling
	M:B methods or parsing _build/*. Ken seemed to argue for the file (?)

	FINI

2007-01-08  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

	* Todo: distroprefs mechanism is still inefficient in that it scans too
	often the whole distro_dir. (But it's super to have that while
	developing new rules). And it's a drag especially when people have only
	YAML and no YAML::Syck because they were not told or have no compiler or
	whatsoever. Or revisit the caching mechanism for the YAMLs and count the
	actual YAML activities.

	Also, reduce the default max counter for FTPstats to 1000 or 14 days or
	so and make it settable.

	* The speed factor that I wrote about a few times recently is due to the

Todo  view on Meta::CPAN

	* Hackaton in Munich? Slides for Munich!

	* Watch hosts statistics.

	* Todo: enable batch jobs to trigger cleanup of the build directory.
	Methods: scan_cache, tidyup, Variable: scan_cache. LOCK.

	No, only checklock needs to be made something official. Maybe rename to
	get_lock then.

	* Despite all the care that goes into the distroprefs directory, we
	always will fail on some distros that ask questions and hang forever.
	It's time to rethink a global way out of modules that hang in an IO
	operation.

	* 11-17 lists a few things for documentation.

	* make up your mind about install_tested.

2007-01-02  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>

Todo  view on Meta::CPAN

	commandline: "$PERL Makefile.PL; make"

	Or something like that. Will test as soon as we have 'commandline'.

	DONE

	* priorities: bugfixing; SQLite; Kwalify;

	redesigning the force pragma: biggie; see showstopper alert

	distroprefs left over: single ersatzcommand for the test mantras: we
	currently can change the make command and the arguments at the end but
	the word test is always on the command line and this looks silly. But
	maybe not worth a new keyword. But I've also proposed ->{test}{skip}, so
	the two can be folded perhaps? ---- On the bycicle it occurred to me: we
	add "commandline" to each of get/make/test/install and then the user can
	even say "cvs up" or "perl -e 1". I like it.

	* I'm convinced now that we need more force flavors and that force shall
	be limited in scope

Todo  view on Meta::CPAN

	* Study "pip" by Adam K (in Module-Plan-Base) and CPAN::Mini::Tested and
	CPAN::Mini::Phalanx100 and also see what we can do for
	Module::ThirdParty

	* Provide an API or documentation how to find out the CPAN::Config
	variables.

	* Now I know the first bug in install_tested: it re-tests already
	installed modules.

	* One thing we do not support yet in distroprefs is adding dependencies
	without patching. Shall we?

	* Bug in T:B:

	Text::Balanced            v1.99.1_1      1.98  DCONWAY/Text-Balanced-1.98.tar.gz

	Bug reported as http://rt.cpan.org/Ticket/Display.html?id=23968

2006-12-16  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

Todo  view on Meta::CPAN

2006-12-06  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* http://rt.cpan.org/Ticket/Display.html?id=23588

	Not fixed with XML::RSS 1.21! Now re-reported as

	http://rt.cpan.org/Ticket/Display.html?id=23822

2006-12-05  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* With all the care that goes into the distroprefs directory, we always
	will fail on some distros that ask questions and hang forever. It's time
	to rethink a global way out of modules that hang in an IO operation.

	* Todo: make the distropref schema even easier accessible like with a
	manpage.

2006-12-04  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* Bug reported by Sendu Bala: it can really happen that CPAN.pm deletes
	a build_dir while the owner is still in the queue.

Todo  view on Meta::CPAN

	queue somehow.

	And undelay and goto do not know each other. Because goto does not jump
	on the queue, I suppose.

	FIXED in SVK rev. 1508

	* Bug: The current Makefile has an implicit dependency on YAML::Syck

	This was a bug in MANIFEST.SKIP which excluded the .dd files in
	distroprefs/

	FIXED in SVK rev. 1506

2006-12-03  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* Maybe I should undo the too far going changes I did in the preparation
	for a better force implementation and make a _64? Force could delay the
	next release considerably.

	OK, the three occurrences of fforce are gone. What else?

Todo  view on Meta::CPAN

	* find a way to treat kwalify such that the schema is documented and can
	be accessed directly. And such that not only YAML::Syck can read it.
	Current solution confuses YAML.

	After some rewriting of CPAN::Kwalify I'm stuck with this:

% /home/src/perl/repoperls/installed-perls/*/*/perl-*@29438/bin/perl -e '
use Kwalify; use File::Slurp qw(slurp);
my($schema,$data) = map { eval slurp $_ } @ARGV;    
Kwalify::validate( $schema, $data );
' ./lib/CPAN/Kwalify/distroprefs.dd ./distroprefs/RGIERSIG.Expect.dd  
[/make] Expected subschema (a hash)

	While this succeeds:

% /home/src/perl/repoperls/installed-perls/*/*/perl-*@29438/bin/perl -e '
use Kwalify; use YAML::Syck;
my($schema,$data) = map { YAML::Syck::LoadFile($_) } @ARGV;
Kwalify::validate( $schema, $data );
' ./lib/CPAN/Kwalify/distroprefs.yml ./distroprefs/RGIERSIG.Expect.yml

	The solution is to use $Purity=1 for Data::Dumper transformations as
	described in the Data::Dumper manpage. Thanks to Slaven for digging it
	out for me.
	
	* priorities today: force, expect, commandline

	backtrack: kwalify in separate package

	* My talk proposal http://www.perl-workshop.de/auth/my/edittalk?id=46

Todo  view on Meta::CPAN

	Is already unwrapped into directory /home/src/perl/cpan-sql-stuff/CPAN-SQLite/.
	
	FIXED in SVK rev. 1487

2006-11-25  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* priorities: bugfixing; SQLite; Kwalify;

	redesigning the force pragma: biggie; see showstopper alert

	distroprefs left over: single ersatzcommand for the test mantras: we
	currently can change the make command and the arguments at the end but
	the word test is always on the command line and this looks silly. But
	maybe not worth a new keyword. But I've also proposed ->{test}{skip}, so
	the two can be folded perhaps? ---- On the bycicle it occurred to me: we
	add "commandline" to each of get/make/test/install and then the user can
	even say "cd .... && cvs up" or "perl -e 1". I like it.

	11-17 lists a few things for documentation.

	restructure the expect keyword family DONE

	TTL stuff

	make up your mind about install_tested.

2006-11-24  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* But when we have four different force flavors, we will demand a
	superforce that works like the force now does and sets all "lower" ones?

	* Todo: distroprefs mechanism is still inefficient in that it scans too
	often the whole distro_dir. (But it's super to have that while
	developing new rules)

2006-11-23  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* I'm convinced now that we need more force flavors and that force shall
	be limited in scope

	force get     shall re-fetch
	force make    shall not re-fetch   but run make again

Todo  view on Meta::CPAN

	Docs: http://www.kuwata-lab.com/kwalify/users-guide.01.html

	Yaml mode: http://svn.clouder.jp/repos/public/yaml-mode/trunk

	cvs -d :pserver:anonymous@srezic.cvs.sourceforge.net:/cvsroot/srezic co Kwalify

	/home/src/perl/srezic/Kwalify/.

	Todo: integrate schemacheck into a test and put Kwalify into the Bundle

	for f in distroprefs/*.yml; do
	  /home/src/perl/repoperls/installed-perls/perl/pSI5eZY/perl-5.8.0@29319/bin/pkwalify -f cpan_distroprefs_schema.yml $f 
	done

2006-11-17  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* make _get_urllist a public method for Randy.

	* Write manpage for CPAN::HandleConfig, esp load().

	* I realize that CPAN::FTP::localize is undocumented and is what Randy
	wants.

Todo  view on Meta::CPAN


	* Provide an API or documentation how to find out the CPAN::Config
	variables.

	* Looks like a bug to me what I find in Bundle-SZABGAB-0.01.yml:
	CONTAINSMODS is empty because Gabor has a distro in the bundle.

	* Now I know the first bug in install_tested: it re-tests already
	installed modules.

	* One thing we do not support yet in distroprefs is adding dependencies
	without patching. Shall we?

	* Todo: clean up "XXX" in the code

	* M2 (Wishlist) separate the TTLs for 01,02,03. If somebody asks 'a
	FOO', we should only check for the authors database, etc.

	* E1 Todo: use 00whois.xml instead of mailrc, and follow the UTF-8 HOWTO to
	get rid of the term_is_latin variable. Test output with locales.

Todo  view on Meta::CPAN

  CLACO/DBIx-Class-Validation-0.01001.tar.gz   : make_test NO
  DROLSKY/DateTime-Format-MySQL-0.04.tar.gz    : make_test NO
  RICKM/DateTime-Format-Strptime-1.0700.tar.gz : make_test NO
  CLACO/DBIx-Class-UUIDColumns-0.01000.tar.gz  : make_test NO one dependency not OK (SQL::Translator)
  RJBS/Email-Valid-0.176.tar.gz                : make_test NO
  DROLSKY/DateTime-Format-Builder-0.7807.tar.gz: make_test NO
  KCLARK/SQL-Translator-0.07.tar.gz            : signature_verify NO
  CLACO/Handel-0.99_15.tar.gz                  : make_test NO

	Besides the need to find out why the tests are repeated so often, it may
	be a good idea to support check_sigs via distroprefs.

	DONE

	* receiving file list ...
14484 files to consider
./
5.9.0/diffs/
5.9.0/diffs/29196.gz
        1184 100%    1.13MB/s    0:00:00 (xfer#1, to-check=219/14484)
5.9.0/diffs/29413.gz

Todo  view on Meta::CPAN

  > in a META.yml file?

No. I never considered this a job for CPAN.pm. If I had the time,
inclination and fu to write talk-me-through-optional-features
software, I'd write it independently from CPAN.pm.

I think of CPAN.pm as the glue between the user and the CPAN mantras.
CPAN.pm 1.89 will allow the users to store their preferences about
optional things in any CPAN package, no matter how the packages
themselves manage them. If you play with 1.88_62 see the 00.README in
the distroprefs directory. But it's no
talk-me-through-optional-features software.

Or if you prefer a drawing:

     +----------+       +----------------+       +----------+
     |          |       |    mantras     |       |          |
     |          |       |perl Makefile.PL|       |          |
     |   user   |       |make            |       |  module  |
     |          |       |make test       |       |          |
     |          |       |make install    |       |          |

Todo  view on Meta::CPAN

	Done and it worked with 28618.

	* Need a way to specify a different distribution for a module. Say, we
	realize that the officially current XML::LibXML 1.62 is broken but some
	PAJAS/XML-LibXML-1.61003.tar.gz still works. I think, I'd like

	  ->{goto} = "PAJAS/XML-LibXML-1.61003.tar.gz"

	DONE

	* Need a way to specify notest from distroprefs. When we know Strptime
	doesn't pass a test but we know that the problem is harmless or can be
	ignored for some reason. I think, I'd like ->{test}{skip} = 1

	* Todo: LWP::Authen::Wsse is an optional prereq of XML::Atom but did not
	get installed. Need to find out how to signal to AutoInstall that I want
	all recommendations installed. Ahh, I find that XML::Atom not only uses
	AutoInstall but also Module::Build and that writes a _build/prereq file
	and I could read that. I would then find that 'recommends' hashref and I
	could then start installing what I find there.

Todo  view on Meta::CPAN

	But nobody builds or installs them. I find them nowhere in the build
	directory stored away. And yet, when I test XML::Atom, it requires it
	magically and I have to install them manually.

	* Todo: the order of lines in the "failed" command or "failed" report
	section is, given identical command ID, I believe, random. Need a
	timestamp for finer granular sorting. That would make the listing much
	more useful because the first is the most important, all others may be
	followup errors.

	* Todo: write a Makefile target for the 3 *.dd files in distroprefs DONE

	* Todo: Storable support for distroprefs DONE

	* Since I fixed the bootstrapping problem of YAML/Expect/ReadLine by
	allowing fallback dd files, I thought that now I would be able to run
	binary searches more often for broken (or unexpectedly fixed) modules.
	My first victim should be DateTime::Format::Strptime. But binary search
	converged towards 2794[123] and it was so obvious from mere watching
	that this turning point was not the Strptime problem but some other
	Params::Validate related problem. P:V 0.86 broke at 27942 and so
	DateTime could not be built and Date::Time::Locale could not be built
	and Strptime could also not pass its tests.

Todo  view on Meta::CPAN

Can't exec "cpandb": No such file or directory at /home/src/perl/repoperls/installed-perls/perl/pDtzfB5/perl-5.8.0@29285/lib/site_perl/5.9.5/CPAN/SQLite/META.pm line 179.
system cpandb --update failed: -1 at /home/src/perl/repoperls/installed-perls/perl/pDtzfB5/perl-5.8.0@29285/lib/site_perl/5.9.5/CPAN/SQLite/META.pm line 179.
 at lib/CPAN.pm line 276
        CPAN::shell() called at -e line 1


	Uh. Patch rkobes-cpan3.diff backed out. Now I probably know where to start.

	* Integrate freshness into hosts stats. (#17353)

	* Allow dd or st files instead of yml in distroprefs for bootstrapping
	purpose. DONE

	* Todo: avoid ->can everywhere and replace with UNIVERSAL::can. See
	Adriano Rodrigues' bugreport. DONE

	* This looks silly:

	cpan[15]> o conf commit
commit: wrote '/home/k/.cpan/CPAN/MyConfig.pm'
Please use 'o conf commit' to make the config permanent!

	FIXED

	* write a dummy distro that reads arguments to Makefile.PL and another
	one that reads something from STDIN (or maybe both in one) DELAYED until
	the distroprefs stuff leaves the alpha stage.

	* The bug in Strptime is in the "ga" locale. Installing the ga locale on
	my box doesn't solve it. Manana.

	* "I hate Module::AutoInstall". See down under the hr when you ever have
	time.

2006-11-12  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* BUG: randomize_urllist cannot be set on the shell commandline: because
	it ends in "list", it becomes always an array:))

	FIXED

	* Todo: guess the patch option -p0 or -p1

	DONE

	* distroprefs with artificial intelligence: find out how to write a
	distropref with so much AI that it handles several different dialogues.
	I just realized that YAML::Syck talked me into a different dialogue on
	some older bleadperl that had YAML 0.60 installed:

*** WARNING ***

This release breaks compatibility with versions earlier than version 0.60 of
YAML::Syck and YAML.pm when serializing blessed references.

See the COMPATIBILITY file for more information.

Todo  view on Meta::CPAN

2006-10-30  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* File::Slurp vs Pod::Coverage. Ticket opened:
	http://rt.cpan.org/Ticket/Display.html?id=22693
	
2006-10-29  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* Need to write build_dir/*.yml files also if reuse is turned off. And
	also when we fail.

	* Need a 'disabled' keyword on distroprefs. The hack to use
	cpanconfig/make=false is both Unix centric and not obvious. ADDED in
	rev. 1159

	* distroprefs is harder to use with build_dir_reuse than before. We now
	need "force get" more often because the old prefs value is in the distro
	object. Force get can mean a network connection, so there's a need to
	decide how we want to deal with that.

	First idea is to remove the prefs from the serialized object but this is
	much worse in case a patch has been applied.

	* new method perl_fingerprint and _is_deeply or so to compare previous
	and current fingerprint. DONE in rev. 1158

	* Math::Pari was definitely broken by blead. Make it a bug report(?)
----Program----
eval {require Math::Pari};
print $@ ? "N/A" : Math::Pari->VERSION;
print "\n";

Todo  view on Meta::CPAN


	* go after the Module::Build errors in Error.pm and Mason: I suspect
	that's the set_perl5lib bug mentioned by Ilya. NO, it was not the
	set_perl5lib bug. The bug is that the two distros use subclassing in
	their Build.PL and so Module::Build's own methods are unable to provide
	the prerequisites. My workaround for now is to fall back to the content
	of META.yml, the bug persists and needs to be discussed with M:B people.

	* write a dummy distro that reads arguments to Makefile.PL and another
	one that reads something from STDIN (or maybe both in one) DELAYED until
	the distroprefs stuff leaves the alpha stage.

	* replace 03 index file with YAML.

	* Todo/buglet: turn on debug "CPAN" and find the reason why
	incommandcolor is quite often not reset. We had that further down but I
	fear it is not yet fixed.

	* H3 Locking: Linda W writes

	>I'm not sure I understand the reason for the lock file

Todo  view on Meta::CPAN

	So recall: one can turn off sig_check, then install version, then leave
	and enter CPAN.pm and the bug should disappear. Or we release 1.88_57
	now. Update: I released 1.88_57 immediately after that.

	* SMPETERS fixed DBI-1.52. Thank you! YAML for DBI with patch address
	written

2006-10-23  Andreas J Koenig  <akoenig@iconmobile.com>

	* make a list of cpanconfig variables that can be changed via
	distroprefs. Extend the list and document it, so that people can look it
	up and do not have to read the source and can file bug reports against
	it.

	I fear for example that the preferred builder is not configurable(?)
	latter half FIXED in rev. 1124

	First half done with rev. 1125

	* Write an executive summary of the state of affairs wrt. distroprefs so
	we can decide about future directions. Update the README file to better
	outline the executive summary. Update the examples to better reflect our
	powers and weaknesses.

	What we have:

	- Give the user a simple system to store per-distro preferences related
	to environment variables, commandline args and stdin for the four
	commands of our traditional mantra: perl Makefile.PL, make, make test,
	make install (and symmetrically for M:B modules)

Todo  view on Meta::CPAN

	YAML::Syck before Bundle::CPAN worked well.

	CPAN::Reporter before YAML worked well but we want to catch the early
	YAML interactivity (which in turn can be avoided with YAML::Syck).

	* as long as HTML::Mason/Module::Build are broken, we should use
	Bundle::HTML::Mason? Alas, it doesn't list HTML::Entities. And after
	that it still fails on 07-interp.t. Ah, ok. Report sent. But can we
	patch it? DONE

	* Maybe add support for more CPAN::Config variables in distroprefs

	* Todo: document the trailing dot and that it is useful in a Bundle file
	and that there is a LOCAL.trailing_dot_distros.yml in the distroprefs
	directory. DONE in rev. 1093

	* Todo: extend patch ability to files from CPAN to be downloaded on the
	fly DONE in rev. 1089

2006-10-20  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* highest prio: patches. Easy to test with an example against one of my
	failing dummy distros. DONE in rev. 1086

	* add 'perl' to the matches stuff of distroprefs DONE in rev. 1087

	* When we have support for patches and apply patches, we should also
	disable reporting through CPAN::Reporter. DONE in rev. 1088

2006-10-19  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* Ilya's patch

	svn cp -r 131 https://pause.perl.org:5460/svn/cpanpm/trunk https://pause.perl.org:5460/svn/cpanpm/branches/1.76-ilya200610

	https://pause.perl.org:5460/svn/cpanpm/branches/1.76-ilya200610 now lives in

	/home/k/sources/CPAN/SVN-branches/1.76-ilya200610/

	and the patch is applied and checked in. Ready for studying.

	Original discussion: google groups for prerequisites_policy expire_old_builds.

	Today I would suggest

	(1) prio 1!: organize patching into distroprefs, full path within the
	YAML file seems acceptable (DONE)

	(2) organize logging into distroprefs via redirection (might be easy but
	prio low because we have colors now)

	(3) keep the new meaning of the trailing dot, it does not interfere with
	patching as it is for *personal* distrodirectories (make sure it works
	with local bundles! (DONE[it did already])). For local distros one does
	not need patching (and if you do, you know what you're doing).

	(4) mark_tested_ok is similar to distcc/ccache and could probably be
	implemented as such. The time consuming step on perl distros is 'make
	test' and that makes it very complicated. One would need a checksum of
	perl AND all used modules during the test. Like for example File::Slurp
	failing with current combination of perl and Test::Pod::Coverage but
	succeeding without T:P:C

	Poor man's variant of it may be one that works only with a perl checksum
	or mtime as Ilya did. Still seems outside the scope of CPAN.pm but
	should be supported once it works outside with simple mantra.

	For now, distroprefs give you a different 'make' command for a
	permanently-known-to-be-tested module, that might be just 'true' on UNIX
	or something to do with distcc/ccache-like solution.

	That might be annoying if one works with different perls and want to
	have different modules marked as tested_ok. Maybe we need to add "perl"
	into the "match" structure? (Yes!) (DONE)

	(5) Faszinating is the idea to leave the shell and come back into the
	same state of already tested but uninstalled modules. But why are they
	not installed? Hrm, maybe because once installed, nobody will re-test

Todo  view on Meta::CPAN

  > Expect scripts)

	Good. I'll make that then.

	DONE in rev. 1061

	* More files to be marked with svn:ignore. DONE in rev. 1063

2006-10-16  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* two distroprefs files were in 1.88_55 but not in SVN:-( must write
	some code that prevents this bug from happening again.

	Snag is that ChangeLog, META.yml, SIGNATURE, and
	t/CPAN/authors/id/A/AN/ANDK/NotInChecksums-0.000.tar.gz are not intended
	to be checked in. --> svn:ignore DONE

	* new maint-5.8:
drwxr-xr-x  34 k k     8192 Oct 15 21:38 perl-m-5.8.0@29022/
drwxr-xr-x  35 k k     8192 Oct 15 21:19 perl-p-5.8.0@29023/

Todo  view on Meta::CPAN


	* Investigate what's going on with Crypt::DH and Net::SSH::Perl. Both
	seem to hang during the tests. Might be a GMP issue. We must pull GMP to
	the front, otherwise Math::Bigint takes all the time (I suppose). Hrm,
	the DH test ran over hours even with GMP (but I'm not sure yet, need to
	make the observation control tighter).

	* Feature request by Slaven: build a patched thing. Reminds me of Ilyas
	words about something involving patches. Maybe (1) if the argument ends
	with a dot, it is a local directory: go there and build. (DONE in rev.
	1056) Maybe (2) keyword patch in distroprefs. (DELAYED indefinitely)

	* new maint-5.8:
	drwxr-xr-x  34 k k     8192 Oct 14 23:48 perl-m-5.8.0@29014/
	drwxr-xr-x  35 k k     8192 Oct 14 23:30 perl-p-5.8.0@29015/

2006-10-14  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* Test installing Plagger with saying yes to all dependency questions.
	Needs 63 times "Y\n" :-) => say --defaultdeps instead of --installdeps=y
	DONE in rev. 1038

Todo  view on Meta::CPAN

	% /home/src/perl/repoperls/installed-perls/maint-5.8/pjTSIuN/perl-5.8.0@28854/bin/csl_index --config /home/src/perl/cpan-search-lite/cpan.conf --setup
Using config file "/home/src/perl/cpan-search-lite/cpan.conf"
Argument "0.20a" isn't numeric in numeric comparison (<=>) at /home/src/perl/repoperls/installed-perls/maint-5.8/pjTSIuN/perl-5.8.0@28854/lib/site_perl/5.8.8/CPAN/Search/Lite/Util.pm line 274.
	[...]

	Ah, it's quite fast.
	

	* write a dummy distro that reads arguments to Makefile.PL and another
	one that reads something from STDIN (or maybe both in one) DELAYED until
	the distroprefs stuff leaves the alpha stage.

	* Measure kwalitee with Module::CPANTS::Analyse before uploading. That
	way we can catch bugs in M:C:A itself or in its dependencies. DELAYED
	because currently M:C:A doesn't pass its own tests.

	* write a test with new dummy modules PrerecqurseI and II (or CircDep?)
	Take t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make as the
	source and
	t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-CircDepeOne as
	target. DONE in rev. 1031

Todo  view on Meta::CPAN

	* Schwern reopened 21144. Go resolve, I have promised before the next
	release. FIXED in rev. 1016 and 1018

2006-10-13  Andreas J Koenig  <akoenig@*c*nm*b*l*.com>

	* Slaven want direct support for $Config->{make} and
	make_install_make_command so that it can be set to gnumake for PDL on
	freebsd. DONE in rev 1015

	* Slaven says that no user knows the distroname as well as the module
	name. ==> Change the prefs hash structure. "qr" shall be replaced by
	"match" and contain "module" and/or "distro" which are ANDed conditions
	and each may contain a regex. We probably will rename all distroprefs
	files too. DONE in rev. 1013/14

2006-10-13  Andreas J Koenig  <akoenig@*c*nm*b*l*.com>

	* always check if *c*nm*b*l* has crept into the Todo file!

2006-10-13  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* check the version numbers since we rolled over rev. 1000. DONE, is OK

	* Fix what podcover found: prefs and yaml_loadfile DONE.

	* See if YAML::Tiny works and if so, mention it in FirstTime and maybe
	make it the default?? Doesn't seem to work out of the box. DONE and
	documented in FirstTime.

	* I hate Module::AutoInstall. Watching installation of Plagger:

  CPAN.pm: Going to build M/MI/MIYAGAWA/Plagger-0.7.13.tar.gz

make[1]: Entering directory `/home/k/.cpan/build/Plagger-0.7.13'

Todo  view on Meta::CPAN

	Not only does it cost memory, this child is also uninformed about failed
	installations!

	This needs to be fixed.

	The manpage of M:AI says it checks if it is running under CPAN.pm. Maybe
	this check is wrong? Apparently yes.

2006-10-12  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* restructure the prefs YAML files to have cpanconfig as key and all
	CPAN.pm configs inside that. That gives room to cpanplus. DONE

	* why did MIYAGAWA/XML-Atom not work? -- Because it asked us twice but
	our yaml file only answered once FIXED.

	* improve feedback when you pick a file for prefs settings, maybe store
	the picked yaml file in the distro object. DONE.

	* test if you can get around single modules by specifying
	prefs->{make}{nosuchtarget}. Interesting for MailTools or DBI in current
	bleadperl. EXACTLY! (and tested)

	* test if the Test-Deep setting of brip works. DONE

2006-10-11  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* F/FD/FDALY/Test-Deep-0.096.tar.gz is just needed temporarily during building or testing. Do you want to install it permanently? (Y/n) [no] 

	* BTROTT/Crypt-DSA-0.14.tar.gz

Todo  view on Meta::CPAN

    yaml_content 

	But I cannot reproduce it. So I must have upgraded something that caused
	the bug. REVISITED after 1.88_54 and FIXED in 1043.

	* Since when fails a YAML test? 0.62 with blead @28990 fails today on
	rt-bugs.t or so. Reported to P5P. RESOLVED in blead @28997.

2006-10-10  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>

	* put the distroprefs directory into MANIFEST. DONE in rev. 993

	* DistroPrefs:

	Variable           Comment                      Done in file

  pl env                                          DBROBINS.Net-SSH-Perl.01.yml
     args                                         GAAS.libwww.01.yml
     expect                                       JJORE.Carp-Clan.01.yml
  make env
       args

Todo  view on Meta::CPAN

	a prereq for testing from Makefile.PL, Net::DNS ask if I want to run
	tests over the internet, mod_perl or Apache::Test asks me for the apache
	executable, Authen-PAM asks me for a password, Module::Signature asks
	for importing the key)

	Name? DistroPrefs is good. Customize is not so good because one would
	expect that it is related to 'o conf'. Distro must be in the name.
	DistroCustomize is too long so DistroBuildEnv seems completely out of
	band. Only Prefs is tempting but again too easily confusable with 'o
	conf' stuff. Something completely different? Its about Env, Args, Stdin.
	BuildInput? Distrinput? Distrin? No. DistroPrefs the long word, prefs
	the short one. 'reload prefs' might be a command if we need it at all.

	ALL DONE in rev. 1015; well, left in alpha state

	* Todo/buglet: turn on debug "CPAN" and find the reason why
	incommandcolor is quite often not reset.

	First example is "Net::Stomp" with a prereq of Class::Accessor::Fast.
	After it and its prereq are installed, the module Class::Accessor::Fast
	and the distro K/KA/KASEI/Class-Accessor-0.25.tar.gz are both still in
	command state.

distroprefs/02.NOREPORT.yml  view on Meta::CPAN

---
comment: |

  In general nobody wants to see reports about old developer releases
  of perl anymore. The disadvantage of this distroprefs file is that it
  prevents all the others from matching since only the first match
  wins.

  But then on 2009-01-14 my smoker sent this:
  http://www.nntp.perl.org/group/perl.cpan.testers/2009/01/msg3068489.html
  which I cannot explain why. CPAN.pm was 1.9205, did it not implement
  the construct? CPAN::Reporter was 1.13. Cannot reproduce (but did
  not try very hard)

match:

distroprefs/MARKSTOS.CGI-Application-Dispatch.yml  view on Meta::CPAN

disabled: 1
# pl:
#   eexpect:
#     mode: anyorder
#     timeout: 15
#     reuse: 1
#     talk:
#       - "."
#       - "skip\n\n\n\n\n"

#  can't figure out why this distroprefs file never works

# https://cpan.metacpan.org/authors/id/M/MA/MARKSTOS/CGI-Application-Dispatch-3.12.tar.gz
# looks like abandoned since 2012 anyway

# See also https://rt.cpan.org/Ticket/Display.html?id=130785

distroprefs/MAUKE.Keyword-Simple.yml  view on Meta::CPAN

---
comment: |

  https://rt.cpan.org/Ticket/Display.html?id=123955
  https://rt.cpan.org/Ticket/Display.html?id=125540

  Additionally, this distroprefs file is an illustration how to deal
  with allow_installing_outdated_dists when the goal of the goto is
  to install an outdated dist.

#match:
#  distribution: "^MAUKE/Keyword-Simple-0.04.tar.gz"
#goto: "MAUKE/Keyword-Simple-0.03.tar.gz"
---
match:
  distribution: "^MAUKE/Keyword-Simple-0.03.tar.gz"
cpanconfig:

distroprefs/MLEHMANN.Guard.yml  view on Meta::CPAN

---
comment: |

  Copied from https://github.com/eserte/srezic-cpan-distroprefs

match:
  distribution: '/Guard-1\.022\.'
  perlconfig:
    version: '^5\.21\.[12345]$'
patches:
  - SREZIC/patches/Guard-1.022-RT96919.patch

distroprefs/VMAN.Net-Libdnet.yml  view on Meta::CPAN

comment: |

  A comment to remind myself that libdnet is a sourceforge project not
  supported by Debian and libdnet is a debian package that has nothing
  to do with the other libdnet:-(((

  I've downloaded http://prdownloads.sourceforge.net/libdnet/libdnet-1.11.tar.gz?download

  And this blog helped me on track: http://www.inliniac.net/blog/category/debian

  Remind me that I want to have a reminder keyword in distroprefs.

match:
  distribution: "VMAN/Net-Libdnet-0.01.tar.gz"

lib/CPAN.pm  view on Meta::CPAN

                                     qq{because Digest::SHA not installed.\n});
        } else {
            $CPAN::Frontend->mywarn(qq{
  CPAN: checksum security checks disabled because Digest::SHA not installed.
  Please consider installing the Digest::SHA module.

});
            $CPAN::Frontend->mysleep(2);
        }
    } elsif ($mod eq "Module::Signature") {
        # NOT prefs_lookup, we are not a distro
        my $check_sigs = $CPAN::Config->{check_sigs};
        if (not $check_sigs) {
            # they do not want us:-(
        } elsif (not $Have_warned->{"Module::Signature"}++) {
            # No point in complaining unless the user can
            # reasonably install and use it.
            if (eval { require Crypt::OpenPGP; 1 } ||
                (
                 defined $CPAN::Config->{'gpg'}
                 &&

lib/CPAN.pm  view on Meta::CPAN

                     with both a Makefile.PL and a Build.PL, use the
                     former (EUMM) or the latter (MB); if the module
                     comes with only one of the two, that one will be
                     used no matter the setting
  prerequisites_policy
                     what to do if you are missing module prerequisites
                     ('follow' automatically, 'ask' me, or 'ignore')
                     For 'follow', also sets PERL_AUTOINSTALL and
                     PERL_EXTUTILS_AUTOINSTALL for "--defaultdeps" if
                     not already set
  prefs_dir          local directory to store per-distro build options
  proxy_user         username for accessing an authenticating proxy
  proxy_pass         password for accessing an authenticating proxy
  pushy_https        use https to cpan.org when possible, otherwise use http
                     to cpan.org and issue a warning
  randomize_urllist  add some randomness to the sequence of the urllist
  recommends_policy  whether recommended prerequisites should be included
  scan_cache         controls scanning of cache ('atstart', 'atexit' or 'never')
  shell              your favorite shell
  show_unparsable_versions
                     boolean if r command tells which modules are versionless

lib/CPAN.pm  view on Meta::CPAN

C<allow_installing_outdated_dists> compares the C<blib/> directory with the CPAN index.
If it finds something there that belongs, according to the index, to a different
dist, it aborts the current build.

C<allow_installing_module_downgrades> compares the C<blib/> directory
with already installed modules, actually their version numbers, as
determined by ExtUtils::MakeMaker or equivalent. If a to-be-installed
module would downgrade an already installed module, the current build
is aborted.

An interesting twist occurs when a distroprefs document demands the
installation of an outdated dist via goto while
C<allow_installing_outdated_dists> forbids it. Without additional
provisions, this would let the C<allow_installing_outdated_dists>
win and the distroprefs lose. So the proper arrangement in such a case
is to write a second distroprefs document for the distro that C<goto>
points to and overrule the C<cpanconfig> there. E.g.:

  ---
  match:
    distribution: "^MAUKE/Keyword-Simple-0.04.tar.gz"
  goto: "MAUKE/Keyword-Simple-0.03.tar.gz"
  ---
  match:
    distribution: "^MAUKE/Keyword-Simple-0.03.tar.gz"
  cpanconfig:
    allow_installing_outdated_dists: yes

=head2 Configuration for individual distributions (I<Distroprefs>)

(B<Note:> This feature has been introduced in CPAN.pm 1.8854)

Distributions on CPAN usually behave according to what we call the
CPAN mantra. Or since the advent of Module::Build we should talk about
two mantras:

    perl Makefile.PL     perl Build.PL
    make                 ./Build
    make test            ./Build test
    make install         ./Build install

But some modules cannot be built with this mantra. They try to get
some extra data from the user via the environment, extra arguments, or
interactively--thus disturbing the installation of large bundles like
Phalanx100 or modules with many dependencies like Plagger.

The distroprefs system of C<CPAN.pm> addresses this problem by
allowing the user to specify extra informations and recipes in YAML
files to either

=over

=item

pass additional arguments to one of the four commands,

=item

lib/CPAN.pm  view on Meta::CPAN


specify dependencies the original maintainer forgot

=item

disable the installation of an object altogether

=back

See the YAML and Data::Dumper files that come with the C<CPAN.pm>
distribution in the C<distroprefs/> directory for examples.

=head2 Filenames

The YAML files themselves must have the C<.yml> extension; all other
files are ignored (for two exceptions see I<Fallback Data::Dumper and
Storable> below). The containing directory can be specified in
C<CPAN.pm> in the C<prefs_dir> config variable. Try C<o conf init
prefs_dir> in the CPAN shell to set and activate the distroprefs
system.

Every YAML file may contain arbitrary documents according to the YAML
specification, and every document is treated as an entity that
can specify the treatment of a single distribution.

Filenames can be picked arbitrarily; C<CPAN.pm> always reads
all files (in alphabetical order) and takes the key C<match> (see
below in I<Language Specs>) as a hashref containing match criteria
that determine if the current distribution matches the YAML document
or not.

=head2 Fallback Data::Dumper and Storable

If neither your configured C<yaml_module> nor YAML.pm is installed,
CPAN.pm falls back to using Data::Dumper and Storable and looks for
files with the extensions C<.dd> or C<.st> in the C<prefs_dir>
directory. These files are expected to contain one or more hashrefs.
For Data::Dumper generated files, this is expected to be done with by
defining C<$VAR1>, C<$VAR2>, etc. The YAML shell would produce these
with the command

    ysh < somefile.yml > somefile.dd

For Storable files the rule is that they must be constructed such that
C<Storable::retrieve(file)> returns an array reference and the array
elements represent one distropref object each. The conversion from

lib/CPAN.pm  view on Meta::CPAN

distribution.

=item patches [array]

An array of patches on CPAN or on the local disk to be applied in
order via an external patch program. If the value for the C<-p>
parameter is C<0> or C<1> is determined by reading the patch
beforehand. The path to each patch is either an absolute path on the
local filesystem or relative to a patch directory specified in the
C<patches_dir> configuration variable or in the format of a canonical
distro name. For examples please consult the distroprefs/ directory in
the CPAN.pm distribution (these examples are not installed by
default).

Note: if the C<applypatch> program is installed and C<CPAN::Config>
knows about it B<and> a patch is written by the C<makepatch> program,
then C<CPAN.pm> lets C<applypatch> apply the patch. Both C<makepatch>
and C<applypatch> are available from CPAN in the C<JV/makepatch-*>
distribution.

=item pl [hash]

lib/CPAN.pm  view on Meta::CPAN

	eexpect:
		mode: deterministic
		timeout: 15
		talk: <array>

=back

=head2 Schema verification with C<Kwalify>

If you have the C<Kwalify> module installed (which is part of the
Bundle::CPANxxl), then all your distroprefs files are checked for
syntactic correctness.

=head2 Example Distroprefs Files

C<CPAN.pm> comes with a collection of example YAML files. Note that these
are really just examples and should not be used without care because
they cannot fit everybody's purpose. After all, the authors of the
packages that ask questions had a need to ask, so you should watch
their questions and adjust the examples to your environment and your
needs. You have been warned:-)

=head1 PROGRAMMER'S INTERFACE

lib/CPAN.pm  view on Meta::CPAN


=item CPAN::Distribution::perldoc()

Downloads the pod documentation of the file associated with a
distribution (in HTML format) and runs it through the external
command I<lynx> specified in C<< $CPAN::Config->{lynx} >>. If I<lynx>
isn't available, it converts it to plain text with the external
command I<html2text> and runs it through the pager specified
in C<< $CPAN::Config->{pager} >>.

=item CPAN::Distribution::prefs()

Returns the hash reference from the first matching YAML file that the
user has deposited in the C<prefs_dir/> directory. The first
succeeding match wins. The files in the C<prefs_dir/> are processed
alphabetically, and the canonical distro name (e.g.
AUTHOR/Foo-Bar-3.14.tar.gz) is matched against the regular expressions
stored in the $root->{match}{distribution} attribute value.
Additionally all module names contained in a distribution are matched
against the regular expressions in the $root->{match}{module} attribute
value. The two match values are ANDed together. Each of the two
attributes are optional.

=item CPAN::Distribution::prereq_pm()

lib/CPAN/Distribution.pm  view on Meta::CPAN

# -*- Mode: cperl; coding: utf-8; cperl-indent-level: 4 -*-
# vim: ts=4 sts=4 sw=4:
package CPAN::Distribution;
use strict;
use Cwd qw(chdir);
use CPAN::Distroprefs;
use CPAN::InfoObj;
use File::Path ();
use POSIX ":sys_wait_h"; 
@CPAN::Distribution::ISA = qw(CPAN::InfoObj);
use vars qw($VERSION);
$VERSION = "2.34";

my $run_allow_installing_within_test = 1; # boolean; either in test or in install, there is no third option

# no prepare, because prepare is not a command on the shell command line

lib/CPAN/Distribution.pm  view on Meta::CPAN

    return undef; # no shortcut
}

#-> sub CPAN::Distribution::get ;
sub get {
    my($self) = @_;

    $self->pre_get();

    $self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG;
    if (my $goto = $self->prefs->{goto}) {
        $self->post_get();
        return $self->goto($goto);
    }

    if ( defined( my $sc = $self->shortcut_get) ) {
        $self->post_get();
        return $sc;
    }

    local $ENV{PERL5LIB} = defined($ENV{PERL5LIB})

lib/CPAN/Distribution.pm  view on Meta::CPAN

        $CPAN::Frontend->mysleep(1);
        my $mpldh = DirHandle->new($self->{build_dir})
            or Carp::croak("Couldn't opendir $self->{build_dir}: $!");
        $mpl_exists = grep /^Makefile\.PL$/, $mpldh->read;
        $mpldh->close;
    }
    my $prefer_installer = "eumm"; # eumm|mb
    if (-f File::Spec->catfile($self->{build_dir},"Build.PL")) {
        if ($mpl_exists) { # they *can* choose
            if ($CPAN::META->has_inst("Module::Build")) {
                $prefer_installer = CPAN::HandleConfig->prefs_lookup(
                  $self, q{prefer_installer}
                );
                # M::B <= 0.35 left a DATA handle open that
                # causes problems upgrading M::B on Windows
                close *Module::Build::Version::DATA
                  if fileno *Module::Build::Version::DATA;
            }
        } else {
            $prefer_installer = "mb";
        }

lib/CPAN/Distribution.pm  view on Meta::CPAN

    return CPAN::FTP->localize("authors/id/$norm",
                               $local_wanted);
}

{
    my $stdpatchargs = "";
    #-> CPAN::Distribution::patch
    sub patch {
        my($self) = @_;
        $self->debug("checking patches id[$self->{ID}]") if $CPAN::DEBUG;
        my $patches = $self->prefs->{patches};
        $patches ||= "";
        $self->debug("patches[$patches]") if $CPAN::DEBUG;
        if ($patches) {
            return unless @$patches;
            $self->safe_chdir($self->{build_dir});
            CPAN->debug("patches[$patches]") if $CPAN::DEBUG;
            my $patchbin = $CPAN::Config->{patch};
            unless ($patchbin && length $patchbin) {
                $CPAN::Frontend->mydie("No external patch command configured\n\n".
                                       "Please run 'o conf init /patch/'\n\n");

lib/CPAN/Distribution.pm  view on Meta::CPAN

              EXE_FILES => ['$name'],
              PREREQ_PM => {
$PREREQ_PM
                           },
";
}

#-> CPAN::Distribution::_signature_business
sub _signature_business {
    my($self) = @_;
    my $check_sigs = CPAN::HandleConfig->prefs_lookup($self,
                                                      q{check_sigs});
    if ($check_sigs) {
        if ($CPAN::META->has_inst("Module::Signature")) {
            if (-f "SIGNATURE") {
                $self->debug("Module::Signature is installed, verifying") if $CPAN::DEBUG;
                my $rv = Module::Signature::verify();
                if ($rv != Module::Signature::SIGNATURE_OK() and
                    $rv != Module::Signature::SIGNATURE_MISSING()) {
                    $CPAN::Frontend->mywarn(
                                            qq{\nSignature invalid for }.

lib/CPAN/Distribution.pm  view on Meta::CPAN


# sloppy is 1 when we have an old checksums file that maybe is good
# enough

sub CHECKSUM_check_file {
    my($self,$chk_file,$sloppy) = @_;
    my($cksum,$file,$basename);

    $sloppy ||= 0;
    $self->debug("chk_file[$chk_file]sloppy[$sloppy]") if $CPAN::DEBUG;
    my $check_sigs = CPAN::HandleConfig->prefs_lookup($self,
                                                      q{check_sigs});
    if ($check_sigs) {
        if ($CPAN::META->has_inst("Module::Signature")) {
            $self->debug("Module::Signature is installed, verifying") if $CPAN::DEBUG;
            $self->SIG_check_file($chk_file);
        } else {
            $self->debug("Module::Signature is NOT installed") if $CPAN::DEBUG;
        }
    }

lib/CPAN/Distribution.pm  view on Meta::CPAN

sub force {
  my($self, $method,$fforce) = @_;
  my %phase_map = (
                   get => [
                           "unwrapped",
                           "build_dir",
                           "archived",
                           "localfile",
                           "CHECKSUM_STATUS",
                           "signature_verify",
                           "prefs",
                           "prefs_file",
                           "prefs_file_doc",
                           "cleanup_after_install_done",
                          ],
                   make => [
                            "writemakefile",
                            "make",
                            "modulebuild",
                            "prereq_pm",
                            "cleanup_after_install_done",
                           ],
                   test => [

lib/CPAN/Distribution.pm  view on Meta::CPAN


    $CPAN::Frontend->myprint("Configuring ".$self->id." with $configurator\n");

    if ($CPAN::Config->{prerequisites_policy} eq "follow") {
        $ENV{PERL_AUTOINSTALL}          ||= "--defaultdeps";
        $ENV{PERL_EXTUTILS_AUTOINSTALL} ||= "--defaultdeps";
    }

    my $system;
    my $pl_commandline;
    if ($self->prefs->{pl}) {
        $pl_commandline = $self->prefs->{pl}{commandline};
    }
    local $ENV{PERL} = defined $ENV{PERL}? $ENV{PERL} : $^X;
    local $ENV{PERL5_CPAN_IS_EXECUTING} = $ENV{PERL5_CPAN_IS_EXECUTING} || '';
    local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
    local $ENV{NONINTERACTIVE_TESTING} = 1 if $CPAN::Config->{use_prompt_default};
    if ($pl_commandline) {
        $system = $pl_commandline;
        $ENV{PERL} = $^X;
    } elsif ($self->{'configure'}) {
        $system = $self->{'configure'};

lib/CPAN/Distribution.pm  view on Meta::CPAN

        my $makepl_arg = $self->_make_phase_arg("pl");
        $ENV{PERL5_CPAN_IS_EXECUTING} = File::Spec->catfile($self->{build_dir},
                                                            "Makefile.PL");
        $system = sprintf("%s%s Makefile.PL%s",
                          $perl,
                          $switch ? " $switch" : "",
                          $makepl_arg ? " $makepl_arg" : "",
                         );
    }
    my $pl_env;
    if ($self->prefs->{pl}) {
        $pl_env = $self->prefs->{pl}{env};
    }
    local @ENV{keys %$pl_env} = values %$pl_env if $pl_env;
    if (exists $self->{writemakefile}) {
    } else {
        local($SIG{ALRM}) = sub { die "inactivity_timeout reached\n" };
        my($ret,$pid,$output);
        $@ = "";
        my $go_via_alarm;
        if ($CPAN::Config->{inactivity_timeout}) {
            require Config;

lib/CPAN/Distribution.pm  view on Meta::CPAN

                    waitpid $pid, 0;
                    my $err = "$@";
                    $CPAN::Frontend->myprint($err);
                    $self->{writemakefile} = CPAN::Distrostatus->new("NO $err");
                    $@ = "";
                    $self->store_persistent_state;
                    return $self->goodbye("$system -- TIMED OUT");
                }
            }
        } else {
            if (my $expect_model = $self->_prefs_with_expect("pl")) {
                # XXX probably want to check _should_report here and warn
                # about not being able to use CPAN::Reporter with expect
                $ret = $self->_run_via_expect($system,'writemakefile',$expect_model);
                if (! defined $ret
                    && $self->{writemakefile}
                    && $self->{writemakefile}->failed) {
                    # timeout
                    return;
                }
            }

lib/CPAN/Distribution.pm  view on Meta::CPAN

    my($self) = @_;

    $self->pre_make();

    if (exists $self->{cleanup_after_install_done}) {
        $self->post_make();
        return $self->get;
    }

    $self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG;
    if (my $goto = $self->prefs->{goto}) {
        $self->post_make();
        return $self->goto($goto);
    }
    # Emergency brake if they said install Pippi and get newest perl

    # XXX Would this make more sense in shortcut_prepare, since
    # that doesn't make sense on a perl dist either?  Broader
    # question: what is the purpose of suggesting force install
    # on a perl distribution?  That seems unlikely to result in
    # such a dependency being satisfied, even if the perl is

lib/CPAN/Distribution.pm  view on Meta::CPAN


    # need to chdir again, because $self->satisfy_requires might change the directory
    unless (chdir $builddir) {
        $CPAN::Frontend->mywarn("Couldn't chdir to '$builddir': $!");
        $self->post_make();
        return;
    }

    my $system;
    my $make_commandline;
    if ($self->prefs->{make}) {
        $make_commandline = $self->prefs->{make}{commandline};
    }
    local $ENV{PERL} = defined $ENV{PERL}? $ENV{PERL} : $^X;
    local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
    local $ENV{NONINTERACTIVE_TESTING} = 1 if $CPAN::Config->{use_prompt_default};
    if ($make_commandline) {
        $system = $make_commandline;
        $ENV{PERL} = CPAN::find_perl();
    } else {
        if ($self->{modulebuild}) {
            unless (-f "Build" || ($^O eq 'VMS' && -f 'Build.com')) {

lib/CPAN/Distribution.pm  view on Meta::CPAN

            $system = join " ", $self->_make_command(),  $CPAN::Config->{make_arg};
        }
        $system =~ s/\s+$//;
        my $make_arg = $self->_make_phase_arg("make");
        $system = sprintf("%s%s",
                          $system,
                          $make_arg ? " $make_arg" : "",
                         );
    }
    my $make_env;
    if ($self->prefs->{make}) {
        $make_env = $self->prefs->{make}{env};
    }
    local @ENV{keys %$make_env} = values %$make_env if $make_env;
    my $expect_model = $self->_prefs_with_expect("make");
    my $want_expect = 0;
    if ( $expect_model && @{$expect_model->{talk}} ) {
        my $can_expect = $CPAN::META->has_inst("Expect");
        if ($can_expect) {
            $want_expect = 1;
        } else {
            $CPAN::Frontend->mywarn("Expect not installed, falling back to ".
                                    "system()\n");
        }
    }

lib/CPAN/Distribution.pm  view on Meta::CPAN

}

#-> CPAN::Distribution::_validate_distropref
sub _validate_distropref {
    my($self,@args) = @_;
    if (
        $CPAN::META->has_inst("CPAN::Kwalify")
        &&
        $CPAN::META->has_inst("Kwalify")
       ) {
        eval {CPAN::Kwalify::_validate("distroprefs",@args);};
        if ($@) {
            $CPAN::Frontend->mywarn($@);
        }
    } else {
        CPAN->debug("not validating '@args'") if $CPAN::DEBUG;
    }
}

#-> CPAN::Distribution::_find_prefs
sub _find_prefs {
    my($self) = @_;
    my $distroid = $self->pretty_id;
    #CPAN->debug("distroid[$distroid]") if $CPAN::DEBUG;
    my $prefs_dir = $CPAN::Config->{prefs_dir};
    return if $prefs_dir =~ /^\s*$/;
    eval { File::Path::mkpath($prefs_dir); };
    if ($@) {
        $CPAN::Frontend->mydie("Cannot create directory $prefs_dir");
    }
    # shortcut if there are no distroprefs files
    {
      my $dh = DirHandle->new($prefs_dir) or $CPAN::Frontend->mydie("Couldn't open '$prefs_dir': $!");
      my @files = map { /\.(yml|dd|st)\z/i } $dh->read;
      return unless @files;
    }
    my $yaml_module = CPAN::_yaml_module();
    my $ext_map = {};
    my @extensions;
    if ($CPAN::META->has_inst($yaml_module)) {
        $ext_map->{yml} = 'CPAN';
    } else {
        my @fallbacks;
        if ($CPAN::META->has_inst("Data::Dumper")) {
            push @fallbacks, $ext_map->{dd} = 'Data::Dumper';
        }
        if ($CPAN::META->has_inst("Storable")) {
            push @fallbacks, $ext_map->{st} = 'Storable';
        }
        if (@fallbacks) {
            local $" = " and ";
            unless ($self->{have_complained_about_missing_yaml}++) {
                $CPAN::Frontend->mywarnonce("'$yaml_module' not installed, falling back ".
                                            "to @fallbacks to read prefs '$prefs_dir'\n");
            }
        } else {
            unless ($self->{have_complained_about_missing_yaml}++) {
                $CPAN::Frontend->mywarnonce("'$yaml_module' not installed, cannot ".
                                            "read prefs '$prefs_dir'\n");
            }
        }
    }
    my $finder = CPAN::Distroprefs->find($prefs_dir, $ext_map);
    DIRENT: while (my $result = $finder->next) {
        if ($result->is_warning) {
            $CPAN::Frontend->mywarn($result->as_string);
            $CPAN::Frontend->mysleep(1);
            next DIRENT;
        } elsif ($result->is_fatal) {
            $CPAN::Frontend->mydie($result->as_string);
        }

        my @prefs = @{ $result->prefs };

      ELEMENT: for my $y (0..$#prefs) {
            my $pref = $prefs[$y];
            $self->_validate_distropref($pref->data, $result->abs, $y);

            # I don't know why we silently skip when there's no match, but
            # complain if there's an empty match hashref, and there's no
            # comment explaining why -- hdp, 2008-03-18
            unless ($pref->has_any_match) {
                next ELEMENT;
            }

            unless ($pref->has_valid_subkeys) {

lib/CPAN/Distribution.pm  view on Meta::CPAN

            my $arg = {
                env          => \%ENV,
                distribution => $distroid,
                perl         => \&CPAN::find_perl,
                perlconfig   => \%Config::Config,
                module       => sub { [ $self->containsmods ] },
            };

            if ($pref->matches($arg)) {
                return {
                    prefs => $pref->data,
                    prefs_file => $result->abs,
                    prefs_file_doc => $y,
                };
            }

        }
    }
    return;
}

# CPAN::Distribution::prefs
sub prefs {
    my($self) = @_;
    if (exists $self->{negative_prefs_cache}
        &&
        $self->{negative_prefs_cache} != $CPAN::CurrentCommandId
       ) {
        delete $self->{negative_prefs_cache};
        delete $self->{prefs};
    }
    if (exists $self->{prefs}) {
        return $self->{prefs}; # XXX comment out during debugging
    }
    if ($CPAN::Config->{prefs_dir}) {
        CPAN->debug("prefs_dir[$CPAN::Config->{prefs_dir}]") if $CPAN::DEBUG;
        my $prefs = $self->_find_prefs();
        $prefs ||= ""; # avoid warning next line
        CPAN->debug("prefs[$prefs]") if $CPAN::DEBUG;
        if ($prefs) {
            for my $x (qw(prefs prefs_file prefs_file_doc)) {
                $self->{$x} = $prefs->{$x};
            }
            my $bs = sprintf(
                             "%s[%s]",
                             File::Basename::basename($self->{prefs_file}),
                             $self->{prefs_file_doc},
                            );
            my $filler1 = "_" x 22;
            my $filler2 = int(66 - length($bs))/2;
            $filler2 = 0 if $filler2 < 0;
            $filler2 = " " x $filler2;
            $CPAN::Frontend->myprint("
$filler1 D i s t r o P r e f s $filler1
$filler2 $bs $filler2
");
            $CPAN::Frontend->mysleep(1);
            return $self->{prefs};
        }
    }
    $self->{negative_prefs_cache} = $CPAN::CurrentCommandId;
    return $self->{prefs} = +{};
}

# CPAN::Distribution::_make_phase_arg
sub _make_phase_arg {
    my($self, $phase) = @_;
    my $_make_phase_arg;
    my $prefs = $self->prefs;
    if (
        $prefs
        && exists $prefs->{$phase}
        && exists $prefs->{$phase}{args}
        && $prefs->{$phase}{args}
       ) {
        $_make_phase_arg = join(" ",
                           map {CPAN::HandleConfig
                                 ->safe_quote($_)} @{$prefs->{$phase}{args}},
                          );
    }

# cpan[2]> o conf make[TAB]
# make                       make_install_make_command
# make_arg                   makepl_arg
# make_install_arg
# cpan[2]> o conf mbuild[TAB]
# mbuild_arg                    mbuild_install_build_command
# mbuild_install_arg            mbuildpl_arg

lib/CPAN/Distribution.pm  view on Meta::CPAN

    return $_make_phase_arg;
}

# CPAN::Distribution::_make_command
sub _make_command {
    my ($self) = @_;
    if ($self) {
        return
            CPAN::HandleConfig
                ->safe_quote(
                             CPAN::HandleConfig->prefs_lookup($self,
                                                              q{make})
                             || $Config::Config{make}
                             || 'make'
                            );
    } else {
        # Old style call, without object. Deprecated
        Carp::confess("CPAN::_make_command() used as function. Don't Do That.");
        return
          safe_quote(undef,
                     CPAN::HandleConfig->prefs_lookup($self,q{make})
                     || $CPAN::Config->{make}
                     || $Config::Config{make}
                     || 'make');
    }
}

sub _make_install_make_command {
    my ($self) = @_;
    my $mimc =
        CPAN::HandleConfig->prefs_lookup($self, q{make_install_make_command});
    return $self->_make_command() unless $mimc;

    # Quote the "make install" make command on Windows, where it is commonly
    # found in, e.g., C:\Program Files\... and therefore needs quoting. We can't
    # do this in general because the command maybe "sudo make..." (i.e. a
    # program with arguments), but that is unlikely to be the case on Windows.
    $mimc = CPAN::HandleConfig->safe_quote($mimc) if $^O eq 'MSWin32';

    return $mimc;
}

lib/CPAN/Distribution.pm  view on Meta::CPAN

}

sub _feature_depends {
    my($self) = @_;
    my $meta_yml = $self->parse_meta_yml();
    my $optf = $meta_yml->{optional_features} or return;
    if (!ref $optf or ref $optf ne "HASH"){
        $CPAN::Frontend->mywarn("The content of optional_features is not a HASH reference. Cannot use it.\n");
        $optf = {};
    }
    my $wantf = $self->prefs->{features} or return;
    if (!ref $wantf or ref $wantf ne "ARRAY"){
        $CPAN::Frontend->mywarn("The content of 'features' is not an ARRAY reference. Cannot use it.\n");
        $wantf = [];
    }
    my $dep = +{};
    for my $wf (@$wantf) {
        if (my $f = $optf->{$wf}) {
            $CPAN::Frontend->myprint("Found the demanded feature '$wf' that ".
                                     "is accompanied by this description:\n".
                                     $f->{description}.

lib/CPAN/Distribution.pm  view on Meta::CPAN

                    "as soon as possible; it is needed for a reliable operation of ".
                    "the cpan shell; setting requirements to nil for '$1' for now ".
                    "to prevent deadlock during bootstrapping\n");
                return;
            }
            $before = " before $self->{CALLED_FOR}";
        }
        $CPAN::Frontend->mydie("Please install CPAN::Meta::Requirements manually$before");
    }
    my $merged = CPAN::Meta::Requirements->new;
    my $prefs_depends = $self->prefs->{depends}||{};
    my $feature_depends = $self->_feature_depends();
    if ($slot eq "configure_requires_later") {
        for my $hash (  $self->configure_requires,
                        $prefs_depends->{configure_requires},
                        $feature_depends->{configure_requires},
        ) {
            $merged->add_requirements(
                CPAN::Meta::Requirements->from_string_hash($hash)
            );
        }
        if (-f "Build.PL"
            && ! -f File::Spec->catfile($self->{build_dir},"Makefile.PL")
            && ! @{[ $merged->required_modules ]}
            && ! $CPAN::META->has_inst("Module::Build")

lib/CPAN/Distribution.pm  view on Meta::CPAN

            );
            $CPAN::Frontend->mysleep(5);
            $merged->add_minimum( "Module::Build" => 0 );
            delete $self->{writemakefile};
        }
        $prereq_pm = {}; # configure_requires defined as "b"
    } elsif ($slot eq "later") {
        my $prereq_pm_0 = $self->prereq_pm || {};
        for my $reqtype (qw(requires build_requires opt_requires opt_build_requires)) {
            $prereq_pm->{$reqtype} = {%{$prereq_pm_0->{$reqtype}||{}}}; # copy to not pollute it
            for my $dep ($prefs_depends,$feature_depends) {
                for my $k (keys %{$dep->{$reqtype}||{}}) {
                    $prereq_pm->{$reqtype}{$k} = $dep->{$reqtype}{$k};
                }
            }
        }
        # XXX what about optional_req|breq? -- xdg, 2012-04-01
        for my $hash (
            $prereq_pm->{requires},
            $prereq_pm->{build_requires},
            $prereq_pm->{opt_requires},

lib/CPAN/Distribution.pm  view on Meta::CPAN

    my($self) = @_;

    $self->pre_test();

    if (exists $self->{cleanup_after_install_done}) {
        $self->post_test();
        return $self->make;
    }

    $self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG;
    if (my $goto = $self->prefs->{goto}) {
        $self->post_test();
        return $self->goto($goto);
    }

    unless ($self->make){
        $self->post_test();
        return;
    }

    if ( defined( my $sc = $self->shortcut_test ) ) {

lib/CPAN/Distribution.pm  view on Meta::CPAN

                    $self->{badtestcnt}++;
                    $CPAN::Frontend->mywarn("Found prior test report -- NOT OK\n");
                    $self->post_test();
                    return;
                }
            }
        }
    }

    my $system;
    my $prefs_test = $self->prefs->{test};
    if (my $commandline
        = exists $prefs_test->{commandline} ? $prefs_test->{commandline} : "") {
        $system = $commandline;
        $ENV{PERL} = CPAN::find_perl();
    } elsif ($self->{modulebuild}) {
        $system = sprintf "%s test", $self->_build_command();
        unless (-e "Build" || ($^O eq 'VMS' && -e "Build.com")) {
            my $id = $self->pretty_id;
            $CPAN::Frontend->mywarn("Alert: no 'Build' file found while trying to test '$id'");
        }
    } else {
        $system = join " ", $self->_make_command(), "test";
    }
    my $make_test_arg = $self->_make_phase_arg("test");
    $system = sprintf("%s%s",
                      $system,
                      $make_test_arg ? " $make_test_arg" : "",
                     );
    my($tests_ok);
    my $test_env;
    if ($self->prefs->{test}) {
        $test_env = $self->prefs->{test}{env};
    }
    local @ENV{keys %$test_env} = values %$test_env if $test_env;
    my $expect_model = $self->_prefs_with_expect("test");
    my $want_expect = 0;
    if ( $expect_model && @{$expect_model->{talk}} ) {
        my $can_expect = $CPAN::META->has_inst("Expect");
        if ($can_expect) {
            $want_expect = 1;
        } else {
            $CPAN::Frontend->mywarn("Expect not installed, falling back to ".
                                    "testing without\n");
        }
    }

lib/CPAN/Distribution.pm  view on Meta::CPAN

                }
            }
            $tests_ok = !$?;
        } else { # child
            POSIX::setsid() unless $^O eq "MSWin32";
            my $c_ok;
            $|=1;
            if ($want_expect) {
                if ($self->_should_report('test')) {
                    $CPAN::Frontend->mywarn("Reporting via CPAN::Reporter is currently ".
                        "not supported when distroprefs specify ".
                        "an interactive test\n");
                }
                $c_ok = $self->_run_via_expect($system,'test',$expect_model) == 0;
            } elsif ( $self->_should_report('test') ) {
                $c_ok = CPAN::Reporter::test($self, $system);
            } else {
                $c_ok = system($system) == 0;
            }
            exit !$c_ok;
        }

lib/CPAN/Distribution.pm  view on Meta::CPAN

    my $but;
    if (@prereq) {
        my $cnt = @prereq;
        my $which = join ",", @prereq;
        $but = $cnt == 1 ? "one dependency not OK ($which)" :
            "$cnt dependencies missing ($which)";
    }
    $but;
}

sub _prefs_with_expect {
    my($self,$where) = @_;
    return unless my $prefs = $self->prefs;
    return unless my $where_prefs = $prefs->{$where};
    if ($where_prefs->{expect}) {
        return {
                mode => "deterministic",
                timeout => 15,
                talk => $where_prefs->{expect},
               };
    } elsif ($where_prefs->{"eexpect"}) {
        return $where_prefs->{"eexpect"};
    }
    return;
}

#-> sub CPAN::Distribution::clean ;
sub clean {
    my($self) = @_;
    my $make = $self->{modulebuild} ? "Build" : "make";
    $CPAN::Frontend->myprint(sprintf "Running %s clean for %s\n", $make, $self->pretty_id);
    unless (exists $self->{archived}) {

lib/CPAN/Distribution.pm  view on Meta::CPAN

      # $self->force("make"); # so that this directory won't be used again

    }
    $self->store_persistent_state;
}

#-> sub CPAN::Distribution::check_disabled ;
sub check_disabled {
    my ($self) = @_;
    $self->debug("checking disabled id[$self->{ID}]") if $CPAN::DEBUG;
    if ($self->prefs->{disabled} && ! $self->{force_update}) {
        return sprintf(
                            "Disabled via prefs file '%s' doc %d",
                            $self->{prefs_file},
                            $self->{prefs_file_doc},
                            );
    }
    return;
}

#-> sub CPAN::Distribution::goto ;
sub goto {
    my($self,$goto) = @_;
    $goto = $self->normalize($goto);
    my $why = sprintf(
                      "Goto '$goto' via prefs file '%s' doc %d",
                      $self->{prefs_file},
                      $self->{prefs_file_doc},
                     );
    $self->{unwrapped} = CPAN::Distrostatus->new("NO $why");
    # 2007-07-16 akoenig : Better than NA would be if we could inherit
    # the status of the $goto distro but given the exceptional nature
    # of 'goto' I feel reluctant to implement it
    my $goodbye_message = "[goto] -- NA $why";
    $self->goodbye($goodbye_message);

    # inject into the queue

lib/CPAN/Distribution.pm  view on Meta::CPAN

sub install {
    my($self) = @_;

    $self->pre_install();

    if (exists $self->{cleanup_after_install_done}) {
        return $self->test;
    }

    $self->debug("checking goto id[$self->{ID}]") if $CPAN::DEBUG;
    if (my $goto = $self->prefs->{goto}) {
        $self->goto($goto);
        $self->post_install();
        return;
    }

    unless ($self->test) {
        $self->post_install();
        return;
    }

lib/CPAN/Distribution.pm  view on Meta::CPAN

    my $make = $self->{modulebuild} ? "Build" : "make";
    $CPAN::Frontend->myprint(sprintf "Running %s install for %s\n", $make, $self->pretty_id);

    if ($^O eq 'MacOS') {
        Mac::BuildTools::make_install($self);
        $self->post_install();
        return;
    }

    my $system;
    if (my $commandline = $self->prefs->{install}{commandline}) {
        $system = $commandline;
        $ENV{PERL} = CPAN::find_perl();
    } elsif ($self->{modulebuild}) {
        my($mbuild_install_build_command) =
            exists $CPAN::HandleConfig::keys{mbuild_install_build_command} &&
                $CPAN::Config->{mbuild_install_build_command} ?
                    $CPAN::Config->{mbuild_install_build_command} :
                        $self->_build_command();
        my $install_directive = $^O eq 'VMS' ? '"install"' : 'install';
        $system = sprintf("%s %s %s",

lib/CPAN/Distribution.pm  view on Meta::CPAN

                         );
    } else {
        my($make_install_make_command) = $self->_make_install_make_command();
        $system = sprintf("%s install %s",
                          $make_install_make_command,
                          $CPAN::Config->{make_install_arg},
                         );
    }

    my($stderr) = $^O eq "MSWin32" || $^O eq 'VMS' ? "" : " 2>&1 ";
    my $brip = CPAN::HandleConfig->prefs_lookup($self,
                                                q{build_requires_install_policy});
    $brip ||="ask/yes";
    my $id = $self->id;
    my $reqtype = $self->{reqtype} ||= "c"; # in doubt it was a command
    my $want_install = "yes";
    if ($reqtype eq "b") {
        if ($brip eq "no") {
            $want_install = "no";
        } elsif ($brip =~ m|^ask/(.+)|) {
            my $default = $1;

lib/CPAN/Distribution.pm  view on Meta::CPAN


    local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
    local $ENV{PERL_USE_UNSAFE_INC} =
        exists $ENV{PERL_USE_UNSAFE_INC} && defined $ENV{PERL_USE_UNSAFE_INC}
        ? $ENV{PERL_USE_UNSAFE_INC} : 1; # install
    $CPAN::META->set_perl5lib;
    local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
    local $ENV{NONINTERACTIVE_TESTING} = 1 if $CPAN::Config->{use_prompt_default};

    my $install_env;
    if ($self->prefs->{install}) {
        $install_env = $self->prefs->{install}{env};
    }
    local @ENV{keys %$install_env} = values %$install_env if $install_env;

    if (! $run_allow_installing_within_test) {
        my($allow_installing, $why) = $self->_allow_installing;
        if (! $allow_installing) {
            $CPAN::Frontend->mywarn("Installation stopped: $why\n");
            $self->introduce_myself;
            $self->{install} = CPAN::Distrostatus->new("NO -- installation stopped due $why");
            $CPAN::Frontend->mywarn("  $system -- NOT OK\n");

lib/CPAN/Distribution.pm  view on Meta::CPAN

            my $yml = "$self->{build_dir}.yml";
            if (-e $yml) {
                unlink $yml or $CPAN::Frontend->mydie("Couldn't unlink $yml: $!\n");
            }
            $self->{cleanup_after_install_done}=1;
        }
    } else {
        $self->{install} = CPAN::Distrostatus->new("NO");
        $CPAN::Frontend->mywarn("  $system -- NOT OK\n");
        my $mimc =
            CPAN::HandleConfig->prefs_lookup($self,
                                             q{make_install_make_command});
        if (
            $makeout =~ /permission/s
            && $> > 0
            && (
                ! $mimc
                || $mimc eq (CPAN::HandleConfig->prefs_lookup($self,
                                                              q{make}))
               )
           ) {
            $CPAN::Frontend->myprint(
                                     qq{----\n}.
                                     qq{  You may have to su }.
                                     qq{to root to install the package\n}.
                                     qq{  (Or you may want to run something like\n}.
                                     qq{    o conf make_install_make_command 'sudo make'\n}.
                                     qq{  to raise your permissions.}

lib/CPAN/Distribution.pm  view on Meta::CPAN

        }
    };
}

sub _allow_installing {
    my($self) = @_;
    my $id = my $pretty_id = $self->pretty_id;
    if ($self->{CALLED_FOR}) {
        $id .= " (called for $self->{CALLED_FOR})";
    }
    my $allow_down   = CPAN::HandleConfig->prefs_lookup($self,q{allow_installing_module_downgrades});
    $allow_down      ||= "ask/yes";
    my $allow_outdd  = CPAN::HandleConfig->prefs_lookup($self,q{allow_installing_outdated_dists});
    $allow_outdd     ||= "ask/yes";
    return 1 if
           $allow_down  eq "yes"
        && $allow_outdd eq "yes";
    if (($allow_outdd ne "yes") && ! $CPAN::META->has_inst('CPAN::DistnameInfo')) {
        return 1 if grep { $_ eq 'CPAN::DistnameInfo'} $self->containsmods;
        if ($allow_outdd ne "yes") {
            $CPAN::Frontend->mywarn("The current configuration of allow_installing_outdated_dists is '$allow_outdd', but for this option we would need 'CPAN::DistnameInfo' installed. Please install 'CPAN::DistnameInfo' as soon as possible. As long as...
            $allow_outdd = "yes";
        }

lib/CPAN/Distribution.pm  view on Meta::CPAN


#-> sub CPAN::Distribution::_should_report
sub _should_report {
    my($self, $phase) = @_;
    die "_should_report() requires a 'phase' argument"
        if ! defined $phase;

    return unless $CPAN::META->has_usable("CPAN::Reporter");

    # configured
    my $test_report = CPAN::HandleConfig->prefs_lookup($self,
                                                       q{test_report});
    return unless $test_report;

    # don't repeat if we cached a result
    return $self->{should_report}
        if exists $self->{should_report};

    # don't report if we generated a Makefile.PL
    if ( $self->{had_no_makefile_pl} ) {
        $CPAN::Frontend->mywarn(

lib/CPAN/Distribution.pm  view on Meta::CPAN

            return;
        }
    }

    # appropriate
    if ($self->is_dot_dist) {
        $CPAN::Frontend->mywarn("Reporting via CPAN::Reporter is disabled ".
                                "for local directories\n");
        return $self->{should_report} = 0;
    }
    if ($self->prefs->{patches}
        &&
        @{$self->prefs->{patches}}
        &&
        $self->{patched}
       ) {
        $CPAN::Frontend->mywarn("Reporting via CPAN::Reporter is disabled ".
                                "when the source has been patched\n");
        return $self->{should_report} = 0;
    }

    # proceed and cache success
    return $self->{should_report} = 1;

lib/CPAN/Distroprefs.pm  view on Meta::CPAN

# -*- Mode: cperl; coding: utf-8; cperl-indent-level: 4 -*-
# vim: ts=4 sts=4 sw=4:

use 5.006;
use strict;
package CPAN::Distroprefs;

use vars qw($VERSION);
$VERSION = '6.0001';

package CPAN::Distroprefs::Result;

use File::Spec;

sub new { bless $_[1] || {} => $_[0] }

sub abs { File::Spec->catfile($_[0]->dir, $_[0]->file) }

sub __cloner {
    my ($class, $name, $newclass) = @_;
    $newclass = 'CPAN::Distroprefs::Result::' . $newclass;
    no strict 'refs';
    *{$class . '::' . $name} = sub {
        $newclass->new({
            %{ $_[0] },
            %{ $_[1] },
        });
    };
}
BEGIN { __PACKAGE__->__cloner(as_warning => 'Warning') }
BEGIN { __PACKAGE__->__cloner(as_fatal   => 'Fatal') }

lib/CPAN/Distroprefs.pm  view on Meta::CPAN

    my ($class, $key) = @_;
    no strict 'refs';
    *{$class . '::' . $key} = sub { $_[0]->{$key} };
}
BEGIN { __PACKAGE__->__accessor($_) for qw(type file ext dir) }

sub is_warning { 0 }
sub is_fatal   { 0 }
sub is_success { 0 }

package CPAN::Distroprefs::Result::Error;
use vars qw(@ISA);
BEGIN { @ISA = 'CPAN::Distroprefs::Result' } ## no critic
BEGIN { __PACKAGE__->__accessor($_) for qw(msg) }

sub as_string {
    my ($self) = @_;
    if ($self->msg) {
        return sprintf $self->fmt_reason, $self->file, $self->msg;
    } else {
        return sprintf $self->fmt_unknown, $self->file;
    }
}

package CPAN::Distroprefs::Result::Warning;
use vars qw(@ISA);
BEGIN { @ISA = 'CPAN::Distroprefs::Result::Error' } ## no critic
sub is_warning { 1 }
sub fmt_reason  { "Error reading distroprefs file %s, skipping: %s" }
sub fmt_unknown { "Unknown error reading distroprefs file %s, skipping." }

package CPAN::Distroprefs::Result::Fatal;
use vars qw(@ISA);
BEGIN { @ISA = 'CPAN::Distroprefs::Result::Error' } ## no critic
sub is_fatal { 1 }
sub fmt_reason  { "Error reading distroprefs file %s: %s" }
sub fmt_unknown { "Unknown error reading distroprefs file %s." }

package CPAN::Distroprefs::Result::Success;
use vars qw(@ISA);
BEGIN { @ISA = 'CPAN::Distroprefs::Result' } ## no critic
BEGIN { __PACKAGE__->__accessor($_) for qw(prefs extension) }
sub is_success { 1 }

package CPAN::Distroprefs::Iterator;

sub new { bless $_[1] => $_[0] }

sub next { $_[0]->() }

package CPAN::Distroprefs;

use Carp ();
use DirHandle;

sub _load_method {
    my ($self, $loader, $result) = @_;
    return '_load_yaml' if $loader eq 'CPAN' or $loader =~ /^YAML(::|$)/;
    return '_load_' . $result->ext;
}

lib/CPAN/Distroprefs.pm  view on Meta::CPAN

}

sub _build_file_list {
    if (@_ > 3) {
        die "_build_file_list should be called with 3 arguments, was called with more. First argument is '$_[0]'.";
    }
    my ($dir, $dir1, $ext_re) = @_;
    my @list;
    my $dh;
    unless (opendir($dh, $dir)) {
        $CPAN::Frontend->mywarn("ignoring prefs directory '$dir': $!");
        return @list;
    }
    while (my $fn = readdir $dh) {
        next if $fn eq '.' || $fn eq '..';
        if (-d "$dir/$fn") {
            next if $fn =~ /^[._]/; # prune .svn, .git, .hg, _darcs and what the user wants to hide
            push @list, _build_file_list("$dir/$fn", "$dir1$fn/", $ext_re);
        } else {
            if ($fn =~ $ext_re) {
                push @list, "$dir1$fn";
            }
        }
    }
    return @list;
}

sub find {
    my ($self, $dir, $ext_map) = @_;

    return CPAN::Distroprefs::Iterator->new(sub { return }) unless %$ext_map;

    my $possible_ext = join "|", map { quotemeta } keys %$ext_map;
    my $ext_re = qr/\.($possible_ext)$/;

    my @files = _build_file_list($dir, '', $ext_re);
    @files = sort @files if @files;

    # label the block so that we can use redo in the middle
    return CPAN::Distroprefs::Iterator->new(sub { LOOP: {

        my $fn = shift @files;
        return unless defined $fn;
        my ($ext) = $fn =~ $ext_re;

        my $loader = $ext_map->{$ext};

        my $result = CPAN::Distroprefs::Result->new({
            file => $fn, ext => $ext, dir => $dir
        });
        # copied from CPAN.pm; is this ever actually possible?
        redo unless -f $result->abs;

        my $load_method = $self->_load_method($loader, $result);
        my @prefs = eval { $self->$load_method($loader, $result) };
        if (my $err = $@) {
            if (ref($err) && eval { $err->isa('CPAN::Distroprefs::Result') }) {
                return $err;
            }
            # rethrow any exceptions that we did not generate
            die $err;
        } elsif (!@prefs) {
            # the loader should have handled this, but just in case:
            return $result->as_warning;
        }
        return $result->as_success({
            prefs => [
                map { CPAN::Distroprefs::Pref->new({ data => $_ }) } @prefs
            ],
        });
    } });
}

package CPAN::Distroprefs::Pref;

use Carp ();

sub new { bless $_[1] => $_[0] }

sub data { shift->{data} }

sub has_any_match { $_[0]->data->{match} ? 1 : 0 }

sub has_match {

lib/CPAN/Distroprefs.pm  view on Meta::CPAN

    grep { exists $_[0]->data->{match}{$_} }
        map { $_, "not_$_" }
        $_[0]->match_attributes
}

sub _pattern {
    my $re = shift;
    my $p = eval sprintf 'qr{%s}', $re;
    if ($@) {
        $@ =~ s/\n$//;
        die "Error in Distroprefs pattern qr{$re}\n$@";
    }
    return $p;
}

sub _match_scalar {
    my ($match, $data) = @_;
    my $qr = _pattern($match);
    return $data =~ /$qr/;
}

lib/CPAN/Distroprefs.pm  view on Meta::CPAN


    return $default_match;
}

1;

__END__

=head1 NAME

CPAN::Distroprefs -- read and match distroprefs

=head1 SYNOPSIS

    use CPAN::Distroprefs;

    my %info = (... distribution/environment info ...);

    my $finder = CPAN::Distroprefs->find($prefs_dir, \%ext_map);

    while (my $result = $finder->next) {

        die $result->as_string if $result->is_fatal;

        warn($result->as_string), next if $result->is_warning;

        for my $pref (@{ $result->prefs }) {
            if ($pref->matches(\%info)) {
                return $pref;
            }
        }
    }


=head1 DESCRIPTION

This module encapsulates reading L<Distroprefs|CPAN> and matching them against CPAN distributions.

=head1 INTERFACE

    my $finder = CPAN::Distroprefs->find($dir, \%ext_map);

    while (my $result = $finder->next) { ... }

Build an iterator which finds distroprefs files in the tree below the
given directory. Within the tree directories matching C<m/^[._]/> are
pruned.

C<%ext_map> is a hashref whose keys are file extensions and whose values are
modules used to load matching files:

    {
        'yml' => 'YAML::Syck',
        'dd'  => 'Data::Dumper',
        ...
    }

Each time C<< $finder->next >> is called, the iterator returns one of two
possible values:

=over

=item * a CPAN::Distroprefs::Result object

=item * C<undef>, indicating that no prefs files remain to be found

=back

=head1 RESULTS

L<C<find()>|/INTERFACE> returns CPAN::Distroprefs::Result objects to
indicate success or failure when reading a prefs file.

=head2 Common

All results share some common attributes:

=head3 type

C<success>, C<warning>, or C<fatal>

=head3 file

the file from which these prefs were read, or to which this error refers (relative filename)

=head3 ext

the file's extension, which determines how to load it

=head3 dir

the directory the file was read from

=head3 abs

lib/CPAN/Distroprefs.pm  view on Meta::CPAN

Error results (warning and fatal) contain:

=head3 msg

the error message (usually either C<$!> or a YAML error)

=head2 Successes

Success results contain:

=head3 prefs

an arrayref of CPAN::Distroprefs::Pref objects

=head1 PREFS

CPAN::Distroprefs::Pref objects represent individual distroprefs documents.
They are constructed automatically as part of C<success> results from C<find()>.

=head3 data

the pref information as a hashref, suitable for e.g. passing to Kwalify

=head3 match_attributes

returns a list of the valid match attributes (see the Distroprefs section in L<CPAN>)

currently: C<env perl perlconfig distribution module>

=head3 has_any_match

true if this pref has a 'match' attribute at all

=head3 has_valid_subkeys

true if this pref has a 'match' attribute and at least one valid match attribute

lib/CPAN/FirstTime.pm  view on Meta::CPAN

but if both are supplied then a decision must be made between EUMM and
MB. See also http://rt.cpan.org/Ticket/Display.html?id=29235 for a
discussion about the right default.

Or, as a third option you can choose RAND which will make a random
decision (something regular CPAN testers will enjoy).

In case you can choose between running a Makefile.PL or a Build.PL,
which installer would you prefer (EUMM or MB or RAND)?

=item prefs_dir

CPAN.pm can store customized build environments based on regular
expressions for distribution names. These are YAML files where the
default options for CPAN.pm and the environment can be overridden and
dialog sequences can be stored that can later be executed by an
Expect.pm object. The CPAN.pm distribution comes with some prefab YAML
files that cover sample distributions that can be used as blueprints
to store your own prefs. Please check out the distroprefs/ directory of
the CPAN.pm distribution to get a quick start into the prefs system.

Directory where to store default options/environment/dialogs for
building modules that need some customization?

=item prerequisites_policy

The CPAN module can detect when a module which you are trying to build
depends on prerequisites. If this happens, it can build the
prerequisites for you automatically ('follow'), ask you for
confirmation ('ask'), or just ignore them ('ignore').  Choosing

lib/CPAN/FirstTime.pm  view on Meta::CPAN

        my_prompt_loop(install_help => 'local::lib', $matcher,
                   'local::lib|sudo|manual');
    }
    $CPAN::Config->{install_help} ||= ''; # Temporary to suppress warnings

    if (!$matcher or q{
                       build_dir
                       build_dir_reuse
                       cpan_home
                       keep_source_where
                       prefs_dir
                      } =~ /$matcher/) {
        $CPAN::Frontend->myprint($prompts{config_intro}) unless $auto_config;

        init_cpan_home($matcher);

        my_dflt_prompt("keep_source_where",
                       File::Spec->catdir($CPAN::Config->{cpan_home},"sources"),
                       $matcher,
                      );
        my_dflt_prompt("build_dir",
                       File::Spec->catdir($CPAN::Config->{cpan_home},"build"),
                       $matcher
                      );
        my_yn_prompt(build_dir_reuse => 0, $matcher);
        my_dflt_prompt("prefs_dir",
                       File::Spec->catdir($CPAN::Config->{cpan_home},"prefs"),
                       $matcher
                      );
    }

    #
    #= Config: auto_commit
    #

    my_yn_prompt(auto_commit => 0, $matcher);

lib/CPAN/FirstTime.pm  view on Meta::CPAN

        }
        else {
            $CPAN::Frontend->myprint("\nAttempting to bootstrap local::lib...\n");
            $CPAN::Frontend->myprint("\nWriting $configpm for bootstrap...\n");
            delete $CPAN::Config->{install_help}; # temporary only
            CPAN::HandleConfig->commit;
            my($dist, $locallib);
            $locallib = CPAN::Shell->expand('Module', 'local::lib');
            if ( $locallib and $dist = $locallib->distribution ) {
                # this is a hack to force bootstrapping
                $dist->{prefs}{pl}{commandline} = "$^X Makefile.PL --bootstrap";
                # Set @INC for this process so we find things as they bootstrap
                require lib;
                lib->import(_local_lib_inc_path());
                eval { $dist->install };
            }
            if ( ! $dist || (my $err = $@) ) {
                $err ||= 'Could not locate local::lib in the CPAN index';
                $CPAN::Frontend->mywarn("Error bootstrapping local::lib: $@\n");
                $CPAN::Frontend->myprint("From the CPAN Shell, you might try 'look local::lib' and \n"
                    . "run 'perl Makefile --bootstrap' and see if that is successful.  Then\n"

lib/CPAN/HandleConfig.pm  view on Meta::CPAN

     "ncftpget",
     "no_proxy",
     "pager",
     "password",
     "patch",
     "patches_dir",
     "perl5lib_verbosity",
     "plugin_list",
     "prefer_external_tar",
     "prefer_installer",
     "prefs_dir",
     "prerequisites_policy",
     "proxy_pass",
     "proxy_user",
     "pushy_https",
     "randomize_urllist",
     "recommends_policy",
     "scan_cache",
     "shell",
     "show_unparsable_versions",
     "show_upload_date",

lib/CPAN/HandleConfig.pm  view on Meta::CPAN

     "use_prompt_default",
     "use_sqlite",
     "username",
     "version_timeout",
     "wait_list",
     "wget",
     "yaml_load_code",
     "yaml_module",
    );

my %prefssupport = map { $_ => 1 }
    (
     "allow_installing_module_downgrades",
     "allow_installing_outdated_dists",
     "build_requires_install_policy",
     "check_sigs",
     "make",
     "make_install_make_command",
     "prefer_installer",
     "test_report",
    );

lib/CPAN/HandleConfig.pm  view on Meta::CPAN

        return ();
    }
    my %seen;
    my(@o_conf) =  sort grep { !$seen{$_}++ }
        keys %can,
            keys %$CPAN::Config,
                keys %keys;
    return grep /^\Q$word\E/, @o_conf;
}

sub prefs_lookup {
    my($self,$distro,$what) = @_;

    if ($prefssupport{$what}) {
        return $CPAN::Config->{$what} unless
            $distro
                and $distro->prefs
                    and $distro->prefs->{cpanconfig}
                        and defined $distro->prefs->{cpanconfig}{$what};
        return $distro->prefs->{cpanconfig}{$what};
    } else {
        $CPAN::Frontend->mywarn("Warning: $what not yet officially ".
                                "supported for distroprefs, doing a normal lookup\n");
        return $CPAN::Config->{$what};
    }
}


{
    package
        CPAN::Config; ####::###### #hide from indexer
    # note: J. Nick Koston wrote me that they are using
    # CPAN::Config->commit although undocumented. I suggested

lib/CPAN/Index.pm  view on Meta::CPAN

                for my $skipper (qw(
                                    badtestcnt
                                    configure_requires_later
                                    configure_requires_later_for
                                    force_update
                                    later
                                    later_for
                                    notest
                                    should_report
                                    sponsored_mods
                                    prefs
                                    negative_prefs_cache
                                  )) {
                    delete $do->{$skipper};
                }
                if ($do->can("tested_ok_but_not_installed")) {
                    if ($do->tested_ok_but_not_installed) {
                        $CPAN::META->is_tested($do->{build_dir},$do->{make_test}{TIME});
                    } else {
                        next DISTRO;
                    }
                }

lib/CPAN/Kwalify.pm  view on Meta::CPAN

  use CPAN::Kwalify;
  validate($schema_name, $data, $file, $doc);

=head1 DESCRIPTION

=over

=item _validate($schema_name, $data, $file, $doc)

$schema_name is the name of a supported schema. Currently only
C<distroprefs> is supported. $data is the data to be validated. $file
is the absolute path to the file the data are coming from. $doc is the
index of the document within $doc that is to be validated. The last
two arguments are only there for better error reporting.

Relies on being called from within CPAN.pm.

Dies if something fails. Does not return anything useful.

=item yaml($schema_name)

lib/CPAN/Shell.pm  view on Meta::CPAN

            $VERSION
           );
@relo =     (
             "CPAN.pm",
             "CPAN/Author.pm",
             "CPAN/CacheMgr.pm",
             "CPAN/Complete.pm",
             "CPAN/Debug.pm",
             "CPAN/DeferredCode.pm",
             "CPAN/Distribution.pm",
             "CPAN/Distroprefs.pm",
             "CPAN/Distrostatus.pm",
             "CPAN/Exception/RecursiveDependency.pm",
             "CPAN/Exception/yaml_not_installed.pm",
             "CPAN/FirstTime.pm",
             "CPAN/FTP.pm",
             "CPAN/FTP/netrc.pm",
             "CPAN/HandleConfig.pm",
             "CPAN/Index.pm",
             "CPAN/InfoObj.pm",
             "CPAN/Kwalify.pm",

t/03pkgs.t  view on Meta::CPAN

# test if our own version numbers meet expectations

use strict;
eval 'use warnings';
use lib "lib";

my @m;
if ($ENV{PERL_CORE}){
  @m = ("CPAN", map { "CPAN::$_" } qw(Debug
                                      DeferredCode
                                      Distroprefs
                                      FirstTime
                                      Kwalify
                                      Nox
                                      Plugin
                                      Queue
                                      Tarzip
                                      Version
                                     ));
} else {
  opendir DH, "lib/CPAN" or die;

t/12cpan.t  view on Meta::CPAN

                                          "Do you want to install these components",
                                          "n\n",
                                          "Installation directory",
                                          "\n",
                                          "URL base for TT2 images",
                                          "\n",
                                         ],
                             barth => '1984',
                            },
                   };
        eval {CPAN::Kwalify::_validate("distroprefs",
                                       $data,
                                       _f("t/12cpan.t"),
                                       0)};
        ok($@,"no kwalify [$@]");
        delete $data->{pl}{barth};
        CPAN::Kwalify::_clear_cache();
        eval {CPAN::Kwalify::_validate("distroprefs",
                                       $data,
                                       _f("t/12cpan.t"),
                                       0)};
        ok(!$@,"kwalify ok");
    }
}

{
    my $this_block_count;
    BEGIN { $count += $this_block_count = 8; }

t/30shell.t  view on Meta::CPAN

}
    close FH; #attempt to fix RT#43779
cp _f"t/CPAN/authors/id/A/AN/ANDK/CHECKSUMS.2nd",
    _f"t/dot-cpan-$$/sources/authors/id/A/AN/ANDK/CHECKSUMS"
    or die "Could not cp t/CPAN/authors/id/A/AN/ANDK/CHECKSUMS.2nd ".
    "over t/dot-cpan-$$/sources/authors/id/A/AN/ANDK/CHECKSUMS: $!";
cp _f"t/CPAN/CpanTestDummies-1.55.pm",
    _f"t/dot-cpan-$$/Bundle/CpanTestDummies.pm" or die
    "Could not cp t/CPAN/CpanTestDummies-1.55.pm over ".
    "t/dot-cpan-$$/Bundle/CpanTestDummies.pm: $!";
cp _f"distroprefs/ANDK.CPAN-Test-Dummy-Perl5-Make-Expect.yml",
    _f"t/dot-cpan-$$/prefs/ANDK.CPAN-Test-Dummy-Perl5-Make-Expect.yml" or die
    "Could not cp distroprefs/ANDK.CPAN-Test-Dummy-Perl5-Make-Expect.yml to ".
    "t/dot-cpan-$$/prefs/ANDK.CPAN-Test-Dummy-Perl5-Make-Expect.yml: $!";

my $cwd = Cwd::cwd;

open FH, (">" . _f"t/dot-cpan-$$/prefs/TestDistroPrefsFile.yml") or die "Could not open: $!";
print FH <<EOF;
---
comment: "Having more than one yaml variable per file is OK?"
match:
  distribution: "matches never^"
---
match:
  module: "CPAN::Test::Dummy::Perl5::Build::Fails"
patches:
  - "$cwd/t/CPAN/TestPatch.txt"

t/30shell.t  view on Meta::CPAN

                   |applypatch
                   |build_dir_reuse
                   |build_requires_install_policy
                   |colorize_output
                   |colorize_print
                   |colorize_warn
                   |commands_quote
                   |inhibit_startup_message
                   |password
                   |patch
                   |prefs_dir
                   |proxy_(?:user|pass)
                   |randomize_urllist
                   |use_sqlite
                   |username
                   |yaml_module
                  )$/x }
            keys %CPAN::HandleConfig::keys;
    my $test_tuning = 0; # from time to time we set it to 1 to find
                         # untested config variables
    if ($test_tuning) {

t/30shell.t  view on Meta::CPAN

#P:o debug 0
#E:turned off
########
#P:test CPAN::Test::Dummy::Perl5::Make::Zip
#E:Has already been tested successfully
#R:Archive::Zip Module::Build
########
#P:failed
#E:Nothing
########
#P:o conf prefs_dir ""
#N:to hide the YAML file
########
#P:o conf prefs_dir
#E:prefs_dir
########
#P:test CPAN::Test::Dummy::Perl5::Build::Fails
#E:test\s+--\s+NOT OK
#R:Module::Build
#C:If this test fails, it's probably due to Test::Harness being < 2.62
########
#P:dump CPAN::Test::Dummy::Perl5::Make
#E:\}.+?CPAN::Module.+?;
#R:Data::Dumper
########

t/31sessions.t  view on Meta::CPAN

    unlink "test-$$.out";
    local_utils::cleanup_dot_cpan();
}
our(@SESSIONS, $default_system, $prompt_re);
BEGIN {
    my $cwd = CPAN::anycwd();

    #  2>&1 is no solution. I intertwingled them, I missed a few "ok"
    $default_system = join(" ", map { "\"$_\"" } run_shell_cmd_lit($cwd,$$))." > test-$$.out";

    open FH, (">" . _f"t/dot-cpan-$$/prefs/TestDistroPrefsFile.yml") or die "Could not open: $!";
    print FH <<EOF;
---
match:
  distribution: "ANDK/CPAN-Test-Dummy-Perl5-Make-Features-"
features:
  - "rice"
EOF
    close FH or die "Could not close 't/dot-cpan-$$/prefs/TestDistroPrefsFile.yml': $!";

    @SESSIONS =
        (
         {
          name => "illegal-regexp",
          perl_mm_use_default => 0,
          pairs =>
          [
           "o conf /*list/" => "Cannot parse",
          ]

t/31sessions.t  view on Meta::CPAN

           "failed" => q{(?x:Failed \s during \s this \s session: \s+
                               \S+ Build-Fails \S+: \s+ make_test \s+ NO \s*\z)},
           "o conf dontload_list pop" => ".",
           "o conf dontload_list pop" => ".",
           "o conf dontload_list pop" => ".",
           "o conf dontload_list pop" => ".",
           "o conf commit" => "commit: wrote",
          ],
         },
         {
          # loads distroprefs for the C:T:D:P:M:Features module where
          # we demand the feature "rice". this feature then requires
          # CPAN::Test::Dummy::Perl5::Build which we do not have so we
          # build it first and then C:T:D:P:M:Features can also be
          # built
          name => "optional_features",
          perl_mm_use_default => 1,
          pairs =>
          [
           "dump \$::x=6*6+9" => "= 45;",
           "o conf build_dir" => "build_dir",
           "o conf prefs_dir '$cwd/t/dot-cpan-$$/prefs'" => "(?m:prefs_dir.+prefs)",
           "test CPAN::Test::Dummy::Perl5::Make::Features" =>
           "(?sx:Builds.rice.+
          ANDK/CPAN-Test-Dummy-Perl5-Build-\\d.+
          \\./Build[ ]test[ ]--[ ]OK.+
          ANDK/CPAN-Test-Dummy-Perl5-Make-Features-\\d.+
          make\\S*[ ]test[ ]--[ ]OK)",
          ]
         },
         {
          name => "configure_requires",

t/42distroprefs.t  view on Meta::CPAN

use strict;

use Test::More;
use Config;
use CPAN::Distroprefs;
use File::Spec;

eval "require YAML; 1" or plan skip_all => "YAML required";
plan tests => 3;

my %ext = (
  yml => 'YAML',
);

my $finder = CPAN::Distroprefs->find(
  './distroprefs', \%ext,
);

my $last = '0';
my @errors;
while (my $next = $finder->next) {
  if ( $next->file lt $last ) {
      push @errors, $next->file . " lt $last\n";
  }
  $last = $next->file;
}
is(scalar @errors, 0, "finder traversed alphabetically") or diag @errors;

sub find_ok {
  my ($arg, $expect, $label) = @_;
  my $finder = CPAN::Distroprefs->find(
    './distroprefs', \%ext,
  );

  isa_ok($finder, 'CPAN::Distroprefs::Iterator');

  my %arg = (
    env => \%ENV,
    perl => $^X,
    perlconfig => \%Config::Config,
    module => [],
    %$arg,
  );

  my $found;
  while (my $result = $finder->next) {
    next unless $result->is_success;
    for my $pref (@{ $result->prefs }) {
      if ($pref->matches(\%arg)) {
        $found = {
          prefs => $pref->data,
          prefs_file => $result->abs,
        };
      }
    }
  }
  is_deeply(
    $found,
    $expect,
    $label,
  );
}

find_ok(
  {
    distribution => 'HDP/Perl-Version-1',
  },
  {
    prefs => YAML::LoadFile('distroprefs/HDP.Perl-Version.yml'),
    prefs_file => File::Spec->catfile(qw/distroprefs HDP.Perl-Version.yml/),
  },
  'match .yml',
);

%ext = (
  dd  => 'Data::Dumper',
);
find_ok(
  {
    distribution => 'INGY/YAML-0.66',
  },
  {
    prefs => do 'distroprefs/INGY.YAML.dd',
    prefs_file => File::Spec->catfile(qw/distroprefs INGY.YAML.dd/),
  },
  'match .dd',
) if 0;

# Local Variables:
# mode: cperl
# cperl-indent-level: 2
# End:

t/43distroprefspref.t  view on Meta::CPAN

use strict;

use Test::More;
use CPAN::Distroprefs;

plan tests => 21;

my $p;

# start with something simple
$p = CPAN::Distroprefs::Pref->new({
  data => {
    match => {
      distribution => "^XML",
    },
  },
});

ok($p->data);
ok($p->has_match("distribution"));
ok(!$p->has_match("perl"));

t/43distroprefspref.t  view on Meta::CPAN


ok($p->matches({
   distribution => "XML::Parser",
}));

ok(!$p->matches({
   distribution => "Foo::XML",
}));

# still simple, but now a negated match
$p = CPAN::Distroprefs::Pref->new({
  data => {
    match => {
      not_distribution => "^XML",
    },
  },
});

ok($p->data);
ok($p->has_match("distribution"));
ok(!$p->has_match("perl"));

t/43distroprefspref.t  view on Meta::CPAN


ok(!$p->matches({
   distribution => "XML::Parser",
}));

ok($p->matches({
   distribution => "Foo::XML",
}));

# try some complicated matches
$p = CPAN::Distroprefs::Pref->new({
  data => {
    match => {
      distribution => "^XML",
      not_distribution => "Parser",
      perlconfig => {
	osname => "linux",
        not_cc => "^gcc\$",
      },
    },
  },

t/43distroprefspref.t  view on Meta::CPAN


ok(!$p->matches({
  distribution => "XML::Foo",
  perlconfig => {
    osname => "darwin",
    cc => "cc",
  },
}));

# try match on module
$p = CPAN::Distroprefs::Pref->new({
  data => {
    match => {
      module => "^LWP",
      not_module => "Foo",
    },
  },
});

ok($p->matches({
   module => ["LWP::UserAgent"],

t/local_utils.pm  view on Meta::CPAN

use File::Path qw(rmtree mkpath);
use File::Spec ();

sub _f ($) {File::Spec->catfile(split /\//, shift);}
sub _d ($) {File::Spec->catdir(split /\//, shift);}

sub prepare_dot_cpan {
    rmtree _d"t/dot-cpan-$$/sources";
    rmtree _d"t/dot-cpan-$$/build";
    mkpath _d"t/dot-cpan-$$/build";
    rmtree _d"t/dot-cpan-$$/prefs";
    mkpath _d"t/dot-cpan-$$/prefs";
    unlink _f"t/dot-cpan-$$/Metadata";
    unlink _f"t/dot-cpan-$$/.lock";
    mkpath _d"t/dot-cpan-$$/sources/authors/id/A/AN/ANDK";
    mkpath _d"t/dot-cpan-$$/Bundle";
    # cp is not-overwriting on OS/2
    unlink _f"t/CPAN/MyConfig_$$.pm", _f"t/dot-cpan-$$/sources/MIRRORED.BY";
    write_myconfig();
    cp _f"t/CPAN/TestMirroredBy", _f"t/dot-cpan-$$/sources/MIRRORED.BY"
        or die "Could not cp t/CPAN/TestMirroredBy over t/dot-cpan-$$/sources/MIRRORED.BY: $!";
}

t/local_utils.pm  view on Meta::CPAN

        print $fh2 $_;
    }
    close $fh2 or die "Could not close t/CPAN/MyConfig_$$.pm: $!";
}

sub cleanup_dot_cpan {
    unlink _f"t/CPAN/MyConfig_$$.pm";
    unlink _f"t/CPAN/MyConfig_$$.pm~";
    unlink _f"t/dot-cpan-$$/sources/authors/id/A/AN/ANDK/CHECKSUMS";
    unlink _f"t/dot-cpan-$$/sources/MIRRORED.BY";
    unlink _f"t/dot-cpan-$$/prefs/FTPstats.yml";
    unlink _f"t/dot-cpan-$$/prefs/TestDistroPrefsFile.yml";
    unlink _f"t/dot-cpan-$$/prefs/ANDK.CPAN-Test-Dummy-Perl5-Make-Expect.yml";
    rmtree _d"t/dot-cpan-$$";
}

sub read_myconfig () {
    local *FH;
    open *FH, _f"t/CPAN/MyConfig_$$.pm" or die "Could not read t/CPAN/MyConfig_$$.pm: $!";
    my $eval = do { local($/); <FH>; };
    eval $eval;
    die $@ if $@;
}



( run in 1.506 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )