Name | Last modified | Size | Description | |
---|---|---|---|---|
Parent Directory | - | |||
version.tar.gz | 2008-05-26 10:33 | 60K | ||
version.ppd | 2008-09-25 10:52 | 430 | ||
version.old | 2008-05-26 10:33 | 429 | ||
stockmonkey.tar.gz | 2008-07-22 11:25 | 27K | ||
stockmonkey.ppd | 2008-09-25 10:52 | 320 | ||
stockmonkey.old | 2008-07-22 11:25 | 377 | ||
package.xml | 2008-09-25 10:52 | 48K | ||
libwww-perl.tar.gz | 2008-05-26 09:50 | 249K | ||
libwww-perl.ppd | 2008-09-25 10:52 | 725 | ||
libwww-perl.old | 2008-05-26 09:50 | 733 | ||
libnet.tar.gz | 2008-05-26 09:49 | 78K | ||
libnet.ppd | 2008-09-25 10:52 | 378 | ||
libnet.old | 2008-05-26 09:49 | 491 | ||
html.xsl | 2008-05-24 12:23 | 1.3K | ||
fix_ppds | 2008-09-25 10:51 | 7.1K | ||
check_versions | 2008-05-29 15:41 | 3.4K | ||
bignum.tar.gz | 2008-05-26 10:03 | 19K | ||
bignum.ppd | 2008-09-25 10:52 | 628 | ||
bignum.old | 2008-05-26 10:03 | 630 | ||
YAML.tar.gz | 2008-05-26 11:22 | 45K | ||
YAML.ppd | 2008-05-26 11:22 | 364 | ||
XML-XPath.tar.gz | 2008-05-26 11:27 | 45K | ||
XML-XPath.ppd | 2008-05-26 11:27 | 461 | ||
XML-Simple.tar.gz | 2008-05-26 12:24 | 62K | ||
XML-Simple.ppd | 2008-05-26 12:24 | 582 | ||
XML-SAX.tar.gz | 2008-05-26 12:22 | 53K | ||
XML-SAX.ppd | 2008-05-26 12:22 | 435 | ||
XML-SAX-Expat.tar.gz | 2008-05-26 12:19 | 5.1K | ||
XML-SAX-Expat.ppd | 2008-05-26 12:19 | 606 | ||
XML-Parser.tar.gz | 2008-05-26 07:40 | 300K | ||
XML-Parser.ppd | 2008-09-25 10:52 | 451 | ||
XML-Parser.old | 2008-05-26 07:40 | 444 | ||
XML-NamespaceSupport.tar.gz | 2008-05-26 12:19 | 7.5K | ||
XML-NamespaceSupport.ppd | 2008-05-26 12:19 | 346 | ||
Win32API-Registry.tar.gz | 2008-05-26 10:55 | 128K | ||
Win32API-Registry.ppd | 2008-05-26 10:55 | 429 | ||
Win32-Exe.tar.gz | 2008-05-26 10:26 | 16K | ||
Win32-Exe.ppd | 2008-09-25 10:52 | 502 | ||
Win32-Exe.old | 2008-05-26 10:26 | 502 | ||
URI.tar.gz | 2008-05-24 18:53 | 56K | ||
URI.ppd | 2008-05-24 18:53 | 355 | ||
Tie-IxHash.tar.gz | 2008-05-26 11:29 | 7.0K | ||
Tie-IxHash.ppd | 2008-05-26 11:29 | 316 | ||
Text-Template.tar.gz | 2008-05-26 11:30 | 46K | ||
Text-Template.ppd | 2008-05-26 11:30 | 325 | ||
Text-Tabs+Wrap.tar.gz | 2008-05-26 10:07 | 6.1K | ||
Text-Tabs+Wrap.ppd | 2008-05-26 10:07 | 414 | ||
Text-Glob.tar.gz | 2008-05-26 11:24 | 3.5K | ||
Text-Glob.ppd | 2008-09-25 10:52 | 372 | ||
Text-Glob.old | 2008-05-26 11:24 | 371 | ||
Text-Diff.tar.gz | 2008-05-26 11:07 | 15K | ||
Text-Diff.ppd | 2008-05-26 11:07 | 376 | ||
Test.tar.gz | 2008-05-26 09:31 | 19K | ||
Test.ppd | 2008-09-25 10:52 | 470 | ||
Test.old | 2008-05-26 09:31 | 472 | ||
Test-Simple.tar.gz | 2008-05-26 12:21 | 75K | ||
Test-Simple.ppd | 2008-05-26 12:21 | 458 | ||
Test-Pod.tar.gz | 2008-05-26 10:31 | 4.6K | ||
Test-Pod.ppd | 2008-09-25 10:52 | 486 | ||
Test-Pod.old | 2008-05-26 10:31 | 556 | ||
Test-Number-Delta.tar.gz | 2008-06-13 10:07 | 7.1K | ||
Test-Number-Delta.ppd | 2008-09-25 10:52 | 397 | ||
Test-Number-Delta.old | 2008-06-13 10:07 | 527 | ||
Test-Harness.tar.gz | 2008-05-26 08:47 | 101K | ||
Test-Harness.ppd | 2008-09-25 10:52 | 379 | ||
Test-Harness.old | 2008-05-26 08:47 | 380 | ||
TermReadKey.tar.gz | 2008-05-26 11:10 | 45K | ||
TermReadKey.ppd | 2008-05-26 11:10 | 319 | ||
Term-ReadLine-Perl.tar.gz | 2008-05-26 11:19 | 41K | ||
Term-ReadLine-Perl.ppd | 2008-05-26 11:19 | 342 | ||
Term-GentooFunctions.tar.gz | 2008-05-23 14:08 | 3.2K | ||
Term-GentooFunctions.ppd | 2008-09-25 10:52 | 528 | ||
Term-GentooFunctions.old | 2008-05-24 07:23 | 536 | ||
Sub-Install.tar.gz | 2008-05-26 11:31 | 5.5K | ||
Sub-Install.ppd | 2008-09-25 10:52 | 520 | ||
Sub-Install.old | 2008-05-26 11:31 | 514 | ||
Storable.tar.gz | 2008-05-26 10:05 | 105K | ||
Storable.ppd | 2008-05-26 10:05 | 310 | ||
Software-License.tar.gz | 2008-05-26 11:34 | 68K | ||
Software-License.ppd | 2008-05-26 11:34 | 515 | ||
Scalar-List-Utils.tar.gz | 2008-05-26 10:09 | 50K | ||
Scalar-List-Utils.ppd | 2008-05-26 10:09 | 413 | ||
README.txt | 2008-05-29 15:43 | 8.1K | ||
Pod-Simple.tar.gz | 2008-05-26 10:30 | 186K | ||
Pod-Simple.ppd | 2008-09-25 10:52 | 526 | ||
Pod-Simple.old | 2008-05-26 10:30 | 1.1K | ||
Pod-Parser.tar.gz | 2008-05-26 10:06 | 102K | ||
Pod-Parser.ppd | 2008-09-25 10:52 | 469 | ||
Pod-Parser.old | 2008-05-26 10:06 | 468 | ||
Pod-Escapes.tar.gz | 2008-05-23 15:29 | 8.2K | ||
Pod-Escapes.ppd | 2008-05-24 07:23 | 319 | ||
PathTools.tar.gz | 2008-05-26 08:49 | 74K | ||
PathTools.ppd | 2008-09-25 10:52 | 489 | ||
PathTools.old | 2008-05-26 08:49 | 601 | ||
Parse-Binary.tar.gz | 2008-05-26 10:26 | 14K | ||
Parse-Binary.ppd | 2008-05-26 10:26 | 386 | ||
POE.tar.gz | 2008-05-24 20:30 | 364K | ||
POE.ppd | 2008-09-25 10:52 | 794 | ||
POE.old | 2008-05-24 20:30 | 1.0K | ||
PAR.tar.gz | 2008-07-31 13:07 | 65K | ||
PAR.ppd | 2008-07-31 13:07 | 719 | ||
PAR-Packer.tar.gz | 2008-07-31 13:21 | 1.6M | ||
PAR-Packer.ppd | 2008-07-31 13:21 | 1.0K | ||
PAR-Dist.tar.gz | 2008-05-26 10:18 | 14K | ||
PAR-Dist.ppd | 2008-09-25 10:52 | 556 | ||
PAR-Dist.old | 2008-05-26 10:18 | 617 | ||
Number-Format.tar.gz | 2008-05-24 18:14 | 14K | ||
Number-Format.ppd | 2008-05-24 18:14 | 325 | ||
Net-Server.tar.gz | 2008-05-24 19:04 | 89K | ||
Net-Server.ppd | 2008-09-25 10:52 | 415 | ||
Net-Server.old | 2008-05-24 19:04 | 581 | ||
Net-SMTP-OneLiner.tar.gz | 2008-09-25 10:50 | 3.6K | ||
Net-SMTP-OneLiner.ppd | 2008-09-25 10:50 | 428 | ||
Net-Daemon.tar.gz | 2008-05-24 19:04 | 28K | ||
Net-Daemon.ppd | 2008-05-24 19:04 | 383 | ||
Module-ScanDeps.tar.gz | 2008-05-26 10:35 | 20K | ||
Module-ScanDeps.ppd | 2008-09-25 10:52 | 765 | ||
Module-ScanDeps.old | 2008-05-26 10:35 | 780 | ||
Module-Build.tar.gz | 2008-05-26 08:49 | 255K | ||
Module-Build.ppd | 2008-09-25 10:52 | 953 | ||
Module-Build.old | 2008-05-26 08:49 | 1.4K | ||
Math-Units.tar.gz | 2008-05-26 10:04 | 9.1K | ||
Math-Units.ppd | 2008-05-26 10:04 | 315 | ||
Math-Units-PhysicalValue.tar.gz | 2008-05-24 18:25 | 7.4K | ||
Math-Units-PhysicalValue.ppd | 2008-09-25 10:52 | 604 | ||
Math-Units-PhysicalValue.old | 2008-05-24 18:25 | 610 | ||
Math-BigRat.tar.gz | 2008-05-26 10:02 | 19K | ||
Math-BigRat.ppd | 2008-09-25 10:52 | 575 | ||
Math-BigRat.old | 2008-05-26 10:02 | 576 | ||
Math-BigInt.tar.gz | 2008-05-26 10:01 | 136K | ||
Math-BigInt.ppd | 2008-09-25 10:52 | 526 | ||
Math-BigInt.old | 2008-05-26 10:01 | 526 | ||
Math-BigInt-FastCalc.tar.gz | 2008-05-26 10:01 | 37K | ||
Math-BigInt-FastCalc.ppd | 2008-09-25 10:52 | 618 | ||
Math-BigInt-FastCalc.old | 2008-05-26 10:01 | 619 | ||
Math-Algebra-Symbols.tar.gz | 2008-05-26 10:04 | 93K | ||
Math-Algebra-Symbols.ppd | 2008-09-25 10:52 | 522 | ||
Math-Algebra-Symbols.old | 2008-05-26 10:04 | 629 | ||
Makefile | 2008-05-29 15:43 | 1.8K | ||
MIME-Base64.tar.gz | 2008-05-26 09:56 | 38K | ||
MIME-Base64.ppd | 2008-05-26 09:56 | 319 | ||
IO-stringy.tar.gz | 2008-05-23 15:38 | 41K | ||
IO-stringy.ppd | 2008-05-24 07:23 | 317 | ||
IO-Zlib.tar.gz | 2008-05-26 11:04 | 8.0K | ||
IO-Zlib.ppd | 2008-05-26 11:04 | 369 | ||
IO-Compress-Zlib.tar.gz | 2008-05-26 11:00 | 119K | ||
IO-Compress-Zlib.ppd | 2008-09-25 10:52 | 525 | ||
IO-Compress-Zlib.old | 2008-05-26 11:00 | 596 | ||
IO-Compress-Base.tar.gz | 2008-05-26 10:58 | 41K | ||
IO-Compress-Base.ppd | 2008-09-25 10:52 | 471 | ||
IO-Compress-Base.old | 2008-05-26 10:58 | 466 | ||
Heap.tar.gz | 2008-05-24 18:30 | 16K | ||
Heap.ppd | 2008-05-24 18:30 | 359 | ||
HTTP-Server-Simple.tar.gz | 2008-05-24 19:03 | 12K | ||
HTTP-Server-Simple.ppd | 2008-09-25 10:52 | 504 | ||
HTTP-Server-Simple.old | 2008-05-24 19:03 | 564 | ||
HTML-Parser.tar.gz | 2008-05-24 18:54 | 113K | ||
HTML-Parser.ppd | 2008-09-25 10:52 | 437 | ||
HTML-Parser.old | 2008-05-24 18:54 | 437 | ||
Gtk2.tar.gz | 2008-06-13 10:12 | 1.7M | ||
Gtk2.ppd | 2008-06-13 10:12 | 606 | ||
Gtk2-Ex-Utils.tar.gz | 2008-05-23 15:04 | 6.3K | ||
Gtk2-Ex-Utils.ppd | 2008-05-24 07:23 | 490 | ||
Gtk2-Ex-Simple-Menu.tar.gz | 2008-05-23 15:05 | 5.4K | ||
Gtk2-Ex-Simple-Menu.ppd | 2008-05-24 07:23 | 395 | ||
Gtk2-Ex-PodViewer.tar.gz | 2008-05-24 07:36 | 23K | ||
Gtk2-Ex-PodViewer.ppd | 2008-09-25 10:52 | 563 | ||
Gtk2-Ex-PodViewer.old | 2008-05-24 07:36 | 635 | ||
Gtk2-Ex-Dialogs.tar.gz | 2008-05-23 15:04 | 13K | ||
Gtk2-Ex-Dialogs.ppd | 2008-05-24 07:23 | 605 | ||
Glib.tar.gz | 2008-06-13 09:49 | 332K | ||
Glib.ppd | 2008-06-13 09:49 | 489 | ||
Getopt-ArgvFile.tar.gz | 2008-05-26 10:37 | 19K | ||
Getopt-ArgvFile.ppd | 2008-09-25 10:52 | 452 | ||
Getopt-ArgvFile.old | 2008-05-26 10:37 | 516 | ||
Games-RolePlay-MapGen.tar.gz | 2008-05-26 11:41 | 54K | ||
Games-RolePlay-MapGen.ppd | 2008-09-25 10:52 | 817 | ||
Games-RolePlay-MapGen.old | 2008-05-26 11:41 | 834 | ||
File-Which.tar.gz | 2008-05-26 11:25 | 6.6K | ||
File-Which.ppd | 2008-09-25 10:52 | 470 | ||
File-Which.old | 2008-05-26 11:25 | 471 | ||
File-Type.tar.gz | 2008-05-23 15:03 | 10K | ||
File-Type.ppd | 2008-09-25 10:52 | 373 | ||
File-Type.old | 2008-05-24 07:23 | 431 | ||
File-Temp.tar.gz | 2008-05-26 09:45 | 34K | ||
File-Temp.ppd | 2008-09-25 10:52 | 572 | ||
File-Temp.old | 2008-05-26 09:45 | 628 | ||
File-Slurp.tar.gz | 2008-05-26 11:28 | 10K | ||
File-Slurp.ppd | 2008-05-26 11:28 | 401 | ||
File-Path.tar.gz | 2008-05-26 10:16 | 18K | ||
File-Path.ppd | 2008-09-25 10:52 | 416 | ||
File-Path.old | 2008-05-26 10:16 | 584 | ||
File-NFSLock.tar.gz | 2008-05-24 18:29 | 10K | ||
File-NFSLock.ppd | 2008-05-24 18:29 | 372 | ||
File-HomeDir.tar.gz | 2008-05-26 10:56 | 16K | ||
File-HomeDir.ppd | 2008-09-25 10:52 | 778 | ||
File-HomeDir.old | 2008-05-26 10:56 | 888 | ||
ExtUtils-PkgConfig.tar.gz | 2008-06-13 08:03 | 5.1K | ||
ExtUtils-PkgConfig.ppd | 2008-06-13 08:03 | 340 | ||
ExtUtils-MakeMaker.tar.gz | 2008-05-26 08:48 | 181K | ||
ExtUtils-MakeMaker.ppd | 2008-09-25 10:52 | 521 | ||
ExtUtils-MakeMaker.old | 2008-05-26 08:48 | 641 | ||
ExtUtils-Depends.tar.gz | 2008-06-13 08:03 | 7.7K | ||
ExtUtils-Depends.ppd | 2008-06-13 08:03 | 335 | ||
ExtUtils-CBuilder.tar.gz | 2008-05-26 08:47 | 17K | ||
ExtUtils-CBuilder.ppd | 2008-09-25 10:52 | 446 | ||
ExtUtils-CBuilder.old | 2008-05-26 08:47 | 682 | ||
Event.tar.gz | 2008-05-24 19:19 | 134K | ||
Event.ppd | 2008-05-24 19:19 | 354 | ||
Digest-SHA1.tar.gz | 2008-05-26 09:57 | 40K | ||
Digest-SHA1.ppd | 2008-09-25 10:52 | 374 | ||
Digest-SHA1.old | 2008-05-26 09:57 | 380 | ||
Digest-SHA.tar.gz | 2008-05-26 09:58 | 66K | ||
Digest-SHA.ppd | 2008-05-26 09:58 | 316 | ||
Digest-MD5.tar.gz | 2008-05-26 09:55 | 41K | ||
Digest-MD5.ppd | 2008-09-25 10:52 | 428 | ||
Digest-MD5.old | 2008-05-26 09:55 | 435 | ||
Digest-HMAC.tar.gz | 2008-05-24 19:00 | 3.1K | ||
Digest-HMAC.ppd | 2008-05-24 19:00 | 438 | ||
Devel-FindBlessedRefs.tar.gz | 2008-05-24 18:26 | 28K | ||
Devel-FindBlessedRefs.ppd | 2008-05-24 18:26 | 384 | ||
Date-Lima.tar.gz | 2008-05-24 18:12 | 3.2K | ||
Date-Lima.ppd | 2008-05-24 18:12 | 312 | ||
Data-Dumper.tar.gz | 2008-05-26 10:52 | 66K | ||
Data-Dumper.ppd | 2008-05-26 10:52 | 320 | ||
Crypt-DES.tar.gz | 2008-05-26 09:59 | 35K | ||
Crypt-DES.ppd | 2008-05-26 09:59 | 313 | ||
Crypt-CBC.tar.gz | 2008-05-26 09:59 | 19K | ||
Crypt-CBC.ppd | 2008-05-26 09:59 | 373 | ||
Crypt-Blowfish.tar.gz | 2008-05-26 09:59 | 38K | ||
Crypt-Blowfish.ppd | 2008-05-26 09:59 | 328 | ||
Compress-Zlib.tar.gz | 2008-05-26 11:03 | 22K | ||
Compress-Zlib.ppd | 2008-09-25 10:52 | 662 | ||
Compress-Zlib.old | 2008-05-26 11:03 | 951 | ||
Compress-Raw-Zlib.tar.gz | 2008-05-26 10:57 | 124K | ||
Compress-Raw-Zlib.ppd | 2008-05-26 10:57 | 420 | ||
Compress-Raw-Bzip2.tar.gz | 2008-05-26 11:01 | 83K | ||
Compress-Raw-Bzip2.ppd | 2008-05-26 11:01 | 424 | ||
Cairo.tar.gz | 2008-06-13 10:07 | 161K | ||
Cairo.ppd | 2008-06-13 10:07 | 535 | ||
Cache.tar.gz | 2008-05-24 18:34 | 35K | ||
Cache.ppd | 2008-09-25 10:52 | 916 | ||
Cache.old | 2008-05-24 18:34 | 1.2K | ||
CPAN.tar.gz | 2008-05-26 10:06 | 196K | ||
CPAN.ppd | 2008-09-25 10:52 | 716 | ||
CPAN.old | 2008-05-26 10:06 | 713 | ||
CPAN-CachingProxy.tar.gz | 2008-05-24 18:37 | 4.7K | ||
CPAN-CachingProxy.ppd | 2008-09-25 10:52 | 571 | ||
CPAN-CachingProxy.old | 2008-05-24 18:37 | 581 | ||
CGI-RSS.tar.gz | 2008-05-24 18:27 | 3.3K | ||
CGI-RSS.ppd | 2008-05-24 18:27 | 306 | ||
Archive-Zip.tar.gz | 2008-05-26 11:08 | 66K | ||
Archive-Zip.ppd | 2008-09-25 10:52 | 783 | ||
Archive-Zip.old | 2008-05-26 11:08 | 1.2K | ||
Archive-Tar.tar.gz | 2008-05-26 11:07 | 39K | ||
Archive-Tar.ppd | 2008-09-25 10:52 | 613 | ||
Archive-Tar.old | 2008-05-26 11:07 | 615 | ||
Algorithm-Diff.tar.gz | 2008-05-26 11:06 | 41K | ||
Algorithm-Diff.ppd | 2008-05-26 11:06 | 330 | ||
ANSIColor.tar.gz | 2008-05-26 09:54 | 9.4K | ||
ANSIColor.ppd | 2008-05-26 09:54 | 384 | ||
02packages.details.txt.gz | 2008-09-25 10:52 | 677K | ||
0000_instructions_at_bottom | 2008-05-29 15:43 | 8.1K | ||
This is Paul's ActiveState Repo. ppm rep add "Paul's Repo" https://voltar.org/active/5.8/ I have a Makefile that builds the packlist.xml: https://voltar.org/active/5.8/Makefile -=-------------=-----------------=-------------------------------- -= These scripts are for building your own repos: #!/bin/bash # NOTE: this is the ppdp or ppd push pgram I use to publish my active packages. set -e [ ! -f Makefile ] && perl Makefile.PL if [ -f notest ]; then nmake else nmake test fi nmake ppd perl -MActivePerl::DocTools -e 'UpdateHTML_blib(installdirs => "site")' if [ ! -f META.yml ]; then make metafile cp */META.yml . fi x=`grep ^name: META.yml | head -n 1 | sed s/name:[\ ]*//` mv $x.ppd $x.ppd_pre sed "s/CODEBASE HREF=\"\"/CODEBASE HREF=\"$x.tar.gz\"/" $x.ppd_pre > $x.ppd tar -cvvf $x.tar blib/ gzip --best $x.tar chmod 644 $x.tar.gz $x.ppd ssh webhost.tld rm -f dirname/$x.old scp -p $x.{tar.gz,ppd} webhost.tld:dirname #!/usr/bin/perl # NOTE: This fixes the brain-dead ActiveState dependency problems. # # What's brain-dead? They use the dist-name of modules instead of the module # name and they do it very poorly. Example: build a Test-Harness ppd and it # requires File::Spec. Try to install Test-Harness and PPM tries to pull in # File::Spec 0.82 (with a warning) without the ability to realize it really # wants PathTools. QED. (This program is a partial fix.) our $CPAN_MIRROR = 'http://www.perl.com/CPAN/bug'; # select a mirror please use strict; use Compress::Zlib; use WWW::Mechanize; use Term::GentooFunctions qw(:all); use Module::CoreList; use Data::Dump qw(dump); my $pauls_skiplist = {Config=>1}; # modules that aren't distributed (but come with perl, like Config.pm) my $pauls_corelist = # corelist modules that shouldn't be upgraded to separate dist versions {constant=>1, IO=>1}; my ($mod_db, $pro_db, $f_db); &fetch; &parse; &scan; &smarten; &write; # write {{{ sub write { for my $dist_name (grep {exists $f_db->{$_}{a}} keys %$f_db) { my @e = @{ $f_db->{$dist_name}{e} }; $e[1] =~ s/\.ppd$/.fix/ or die "couldn't rename output file"; $e[0] =~ s/<DEPENDENCY[^>]+>/MYDEPS/g; $e[0] =~ s/MYDEPS.*MYDEPS/MYDEPS/s; $e[0] =~ s/^\s+MYDEPS/MYDEPS/m; my $deps = ""; my %did = (); for (@{ $f_db->{$dist_name}{a}{d} }) { next if exists $did{$_->[0]}; $deps .= " <DEPENDENCY NAME=\"$_->[0]\" VERSION=\"$_->[1]\"\/>\n"; $did{$_->[0]} = undef; } chomp $deps; $e[0] =~ s/MYDEPS/$deps/; ebegin "writing $e[1]"; open my $out, ">$e[1]" or die "coudln't open output file: $!"; print $out $e[0]; close $out; eend 1; } } # }}} # smarten {{{ sub smarten { for my $dist_name (keys %$f_db) { my @deps = @{ $f_db->{$dist_name}{d} }; my @ndep = @deps; my $altered = 0; my $overall_result = 1; for my $dep (@deps) { my $mname = $dep->[0]; $mname =~ s/-/::/g; my $difn = $mod_db->{$mname}{d}; if( $pauls_skiplist->{$mname} ) { einfo "$dist_name depends on $dep->[0] ($mname), which is on Paul's special skiplist."; @ndep = grep {$_ != $dep} @ndep; $altered = 1; next; } my $adep = $dep; if( $difn ne "perl" and $difn ne $dep->[0] ) { einfo "$dist_name depends on $dep->[0], which doesn't equal $difn, renaming"; edie "difn='' on $dist_name, $dep->[0]" unless $difn; $adep = [$difn, $dep->[1]]; @ndep = map {$_ == $dep ? $adep : $_} @ndep; $altered = 1; } if( my $core = Module::CoreList->first_release($mname) ) { if( $difn eq "perl" ) { einfo "$dist_name depends on $dep->[0] ($mname), which is CORE in perl $core and is only shipped there. Removing."; @ndep = grep {$_ != $adep} @ndep; $altered = 1; } if( $pauls_corelist->{$difn} ) { einfo "$dist_name depends on $dep->[0] ($mname), which is CORE and is shipped elsewhere, but is ruled by Paul's Core List."; @ndep = grep {$_ != $adep} @ndep; $altered = 1; } } } if( $altered ) { einfo "tagging $dist_name with renamed and removed dependencies"; $f_db->{$dist_name}{a} = { d => \@ndep, }; } } } # }}} # fetch {{{ sub fetch { my $mech; if( not -f "02packages.details.txt.gz" or (stat _)[9]<(time-86400) ) { ebegin "fetching 02packages.details.txt.gz"; $mech ||= new WWW::Mechanize; $mech->get($CPAN_MIRROR . "modules/02packages.details.txt.gz", ":content_file" => "02packages.details.txt.gz"); eend (my $s = -s "02packages.details.txt.gz"); edie "not enough file" unless $s; } } # }}} # parse {{{ sub parse { my $gz = Compress::Zlib::gzopen("02packages.details.txt.gz", "rb") or die "couldn't open 02packages.details.txt.gz file: $!"; my $line; my $status_line_count = undef; my $my_line_count = 0; my %mod_db; my %pro_db; $mod_db = \%mod_db; $pro_db = \%pro_db; ebegin "parsing modules.txt.gz"; while( my $bytes = $gz->gzreadline($line) ) { chomp $line; if( my ($package, $version, $author_plus_dir, $dist_fname) = $line =~ m/^(\S+)\s+(\S+)\s+(\w\/\w{2}\/[\w\-]+)\/(\S+)/ ) { $version = undef if $version =~ m/undef/; my $dist; if( $dist_fname =~ m/^(.+?)-v?[\d\.]+(?:[a-z]|E\d+)?\.(?:tar\.gz|tgz|zip|pm\.gz)$/) { $dist = $1; } else { # seriously not worth mentioning when this doesn't work... wow # edie "ERROR PARSING package=\"$package\" dist_fname=\"$dist_fname\" (line $.)"; # zcat modules.txt.gz | grep -v tar.gz$ | grep -v tgz$ | grep -v zip$ | grep -v pm.gz } $mod_db{$package} = { v=>$version, p=>$author_plus_dir, f=>$dist_fname, d=>$dist, }; if( (my @s = split m/\//, $dist) == 2 ) { # NOTE: not worth mentioning, ... surprisingly common # ewarn "$dist_fname seems to have a subdir, adding {s} and shortening {d}"; $mod_db{$package}{s} = $s[0]; $mod_db{$package}{d} = $s[1]; } $my_line_count ++; } elsif ( $line =~ m/[A-Z][\w\-]+:\s*\S/ and not $line =~ m/::/ ) { # prolly a status line $status_line_count = $1 if $line =~ /^Line-Count:\s+(\d+)/; } elsif ( $line =~ m/^\s*$/ ) { # yawn } else { edie "ERROR PARSING LINE $.: $line"; } } ewarn "my_line_count: $my_line_count; status_line_count: $status_line_count" if $my_line_count != $status_line_count; eend( $my_line_count == $status_line_count ); ebegin "building dist db"; for my $mod (keys %mod_db) { if( my $dis = $mod_db{$mod}{d} ) { $pro_db{$dis} = [] unless exists $pro_db{$dis}; push @{$pro_db{$dis}}, $mod; } } eend 1; } # }}} # scan {{{ sub scan { local $/ = undef; my %f_db; $f_db = \%f_db; ebegin "parsing ppd files"; for my $file (glob "*.ppd") { open my $fh, $file or die "error opening $file: $!"; my $entire_file = <$fh>; close $fh; my ($dist_name) = $entire_file =~ m/SOFTPKG NAME="([^"]+)"/; my @dep; # depenedencies while( $entire_file =~ m/DEPENDENCY NAME="([^"]+)" VERSION="([^"]+)"/g ) { push @dep, [$1, $2]; } my @dis_pro = @{$pro_db->{$dist_name}} if exists $pro_db->{$dist_name}; ewarn "couldn't find that $dist_name provides anything..." unless @dis_pro; $f_db{$dist_name} = { p=>\@dis_pro, d=>\@dep, e=>[$entire_file, $file], }; } eend (keys %f_db); } # }}}