| Name | Last modified | Size | Description | |
|---|---|---|---|---|
| Parent Directory | - | |||
| 0000_instructions_at_bottom | 2008-05-29 15:43 | 8.1K | ||
| 02packages.details.txt.gz | 2008-09-25 10:52 | 677K | ||
| ANSIColor.ppd | 2008-05-26 09:54 | 384 | ||
| ANSIColor.tar.gz | 2008-05-26 09:54 | 9.4K | ||
| Algorithm-Diff.ppd | 2008-05-26 11:06 | 330 | ||
| Algorithm-Diff.tar.gz | 2008-05-26 11:06 | 41K | ||
| Archive-Tar.old | 2008-05-26 11:07 | 615 | ||
| Archive-Tar.ppd | 2008-09-25 10:52 | 613 | ||
| Archive-Tar.tar.gz | 2008-05-26 11:07 | 39K | ||
| Archive-Zip.old | 2008-05-26 11:08 | 1.2K | ||
| Archive-Zip.ppd | 2008-09-25 10:52 | 783 | ||
| Archive-Zip.tar.gz | 2008-05-26 11:08 | 66K | ||
| CGI-RSS.ppd | 2008-05-24 18:27 | 306 | ||
| CGI-RSS.tar.gz | 2008-05-24 18:27 | 3.3K | ||
| CPAN-CachingProxy.old | 2008-05-24 18:37 | 581 | ||
| CPAN-CachingProxy.ppd | 2008-09-25 10:52 | 571 | ||
| CPAN-CachingProxy.tar.gz | 2008-05-24 18:37 | 4.7K | ||
| CPAN.old | 2008-05-26 10:06 | 713 | ||
| CPAN.ppd | 2008-09-25 10:52 | 716 | ||
| CPAN.tar.gz | 2008-05-26 10:06 | 196K | ||
| Cache.old | 2008-05-24 18:34 | 1.2K | ||
| Cache.ppd | 2008-09-25 10:52 | 916 | ||
| Cache.tar.gz | 2008-05-24 18:34 | 35K | ||
| Cairo.ppd | 2008-06-13 10:07 | 535 | ||
| Cairo.tar.gz | 2008-06-13 10:07 | 161K | ||
| Compress-Raw-Bzip2.ppd | 2008-05-26 11:01 | 424 | ||
| Compress-Raw-Bzip2.tar.gz | 2008-05-26 11:01 | 83K | ||
| Compress-Raw-Zlib.ppd | 2008-05-26 10:57 | 420 | ||
| Compress-Raw-Zlib.tar.gz | 2008-05-26 10:57 | 124K | ||
| Compress-Zlib.old | 2008-05-26 11:03 | 951 | ||
| Compress-Zlib.ppd | 2008-09-25 10:52 | 662 | ||
| Compress-Zlib.tar.gz | 2008-05-26 11:03 | 22K | ||
| Crypt-Blowfish.ppd | 2008-05-26 09:59 | 328 | ||
| Crypt-Blowfish.tar.gz | 2008-05-26 09:59 | 38K | ||
| Crypt-CBC.ppd | 2008-05-26 09:59 | 373 | ||
| Crypt-CBC.tar.gz | 2008-05-26 09:59 | 19K | ||
| Crypt-DES.ppd | 2008-05-26 09:59 | 313 | ||
| Crypt-DES.tar.gz | 2008-05-26 09:59 | 35K | ||
| Data-Dumper.ppd | 2008-05-26 10:52 | 320 | ||
| Data-Dumper.tar.gz | 2008-05-26 10:52 | 66K | ||
| Date-Lima.ppd | 2008-05-24 18:12 | 312 | ||
| Date-Lima.tar.gz | 2008-05-24 18:12 | 3.2K | ||
| Devel-FindBlessedRefs.ppd | 2008-05-24 18:26 | 384 | ||
| Devel-FindBlessedRefs.tar.gz | 2008-05-24 18:26 | 28K | ||
| Digest-HMAC.ppd | 2008-05-24 19:00 | 438 | ||
| Digest-HMAC.tar.gz | 2008-05-24 19:00 | 3.1K | ||
| Digest-MD5.old | 2008-05-26 09:55 | 435 | ||
| Digest-MD5.ppd | 2008-09-25 10:52 | 428 | ||
| Digest-MD5.tar.gz | 2008-05-26 09:55 | 41K | ||
| Digest-SHA.ppd | 2008-05-26 09:58 | 316 | ||
| Digest-SHA.tar.gz | 2008-05-26 09:58 | 66K | ||
| Digest-SHA1.old | 2008-05-26 09:57 | 380 | ||
| Digest-SHA1.ppd | 2008-09-25 10:52 | 374 | ||
| Digest-SHA1.tar.gz | 2008-05-26 09:57 | 40K | ||
| Event.ppd | 2008-05-24 19:19 | 354 | ||
| Event.tar.gz | 2008-05-24 19:19 | 134K | ||
| ExtUtils-CBuilder.old | 2008-05-26 08:47 | 682 | ||
| ExtUtils-CBuilder.ppd | 2008-09-25 10:52 | 446 | ||
| ExtUtils-CBuilder.tar.gz | 2008-05-26 08:47 | 17K | ||
| ExtUtils-Depends.ppd | 2008-06-13 08:03 | 335 | ||
| ExtUtils-Depends.tar.gz | 2008-06-13 08:03 | 7.7K | ||
| ExtUtils-MakeMaker.old | 2008-05-26 08:48 | 641 | ||
| ExtUtils-MakeMaker.ppd | 2008-09-25 10:52 | 521 | ||
| ExtUtils-MakeMaker.tar.gz | 2008-05-26 08:48 | 181K | ||
| ExtUtils-PkgConfig.ppd | 2008-06-13 08:03 | 340 | ||
| ExtUtils-PkgConfig.tar.gz | 2008-06-13 08:03 | 5.1K | ||
| File-HomeDir.old | 2008-05-26 10:56 | 888 | ||
| File-HomeDir.ppd | 2008-09-25 10:52 | 778 | ||
| File-HomeDir.tar.gz | 2008-05-26 10:56 | 16K | ||
| File-NFSLock.ppd | 2008-05-24 18:29 | 372 | ||
| File-NFSLock.tar.gz | 2008-05-24 18:29 | 10K | ||
| File-Path.old | 2008-05-26 10:16 | 584 | ||
| File-Path.ppd | 2008-09-25 10:52 | 416 | ||
| File-Path.tar.gz | 2008-05-26 10:16 | 18K | ||
| File-Slurp.ppd | 2008-05-26 11:28 | 401 | ||
| File-Slurp.tar.gz | 2008-05-26 11:28 | 10K | ||
| File-Temp.old | 2008-05-26 09:45 | 628 | ||
| File-Temp.ppd | 2008-09-25 10:52 | 572 | ||
| File-Temp.tar.gz | 2008-05-26 09:45 | 34K | ||
| File-Type.old | 2008-05-24 07:23 | 431 | ||
| File-Type.ppd | 2008-09-25 10:52 | 373 | ||
| File-Type.tar.gz | 2008-05-23 15:03 | 10K | ||
| File-Which.old | 2008-05-26 11:25 | 471 | ||
| File-Which.ppd | 2008-09-25 10:52 | 470 | ||
| File-Which.tar.gz | 2008-05-26 11:25 | 6.6K | ||
| Games-RolePlay-MapGen.old | 2008-05-26 11:41 | 834 | ||
| Games-RolePlay-MapGen.ppd | 2008-09-25 10:52 | 817 | ||
| Games-RolePlay-MapGen.tar.gz | 2008-05-26 11:41 | 54K | ||
| Getopt-ArgvFile.old | 2008-05-26 10:37 | 516 | ||
| Getopt-ArgvFile.ppd | 2008-09-25 10:52 | 452 | ||
| Getopt-ArgvFile.tar.gz | 2008-05-26 10:37 | 19K | ||
| Glib.ppd | 2008-06-13 09:49 | 489 | ||
| Glib.tar.gz | 2008-06-13 09:49 | 332K | ||
| Gtk2-Ex-Dialogs.ppd | 2008-05-24 07:23 | 605 | ||
| Gtk2-Ex-Dialogs.tar.gz | 2008-05-23 15:04 | 13K | ||
| Gtk2-Ex-PodViewer.old | 2008-05-24 07:36 | 635 | ||
| Gtk2-Ex-PodViewer.ppd | 2008-09-25 10:52 | 563 | ||
| Gtk2-Ex-PodViewer.tar.gz | 2008-05-24 07:36 | 23K | ||
| Gtk2-Ex-Simple-Menu.ppd | 2008-05-24 07:23 | 395 | ||
| Gtk2-Ex-Simple-Menu.tar.gz | 2008-05-23 15:05 | 5.4K | ||
| Gtk2-Ex-Utils.ppd | 2008-05-24 07:23 | 490 | ||
| Gtk2-Ex-Utils.tar.gz | 2008-05-23 15:04 | 6.3K | ||
| Gtk2.ppd | 2008-06-13 10:12 | 606 | ||
| Gtk2.tar.gz | 2008-06-13 10:12 | 1.7M | ||
| HTML-Parser.old | 2008-05-24 18:54 | 437 | ||
| HTML-Parser.ppd | 2008-09-25 10:52 | 437 | ||
| HTML-Parser.tar.gz | 2008-05-24 18:54 | 113K | ||
| HTTP-Server-Simple.old | 2008-05-24 19:03 | 564 | ||
| HTTP-Server-Simple.ppd | 2008-09-25 10:52 | 504 | ||
| HTTP-Server-Simple.tar.gz | 2008-05-24 19:03 | 12K | ||
| Heap.ppd | 2008-05-24 18:30 | 359 | ||
| Heap.tar.gz | 2008-05-24 18:30 | 16K | ||
| IO-Compress-Base.old | 2008-05-26 10:58 | 466 | ||
| IO-Compress-Base.ppd | 2008-09-25 10:52 | 471 | ||
| IO-Compress-Base.tar.gz | 2008-05-26 10:58 | 41K | ||
| IO-Compress-Zlib.old | 2008-05-26 11:00 | 596 | ||
| IO-Compress-Zlib.ppd | 2008-09-25 10:52 | 525 | ||
| IO-Compress-Zlib.tar.gz | 2008-05-26 11:00 | 119K | ||
| IO-Zlib.ppd | 2008-05-26 11:04 | 369 | ||
| IO-Zlib.tar.gz | 2008-05-26 11:04 | 8.0K | ||
| IO-stringy.ppd | 2008-05-24 07:23 | 317 | ||
| IO-stringy.tar.gz | 2008-05-23 15:38 | 41K | ||
| MIME-Base64.ppd | 2008-05-26 09:56 | 319 | ||
| MIME-Base64.tar.gz | 2008-05-26 09:56 | 38K | ||
| Makefile | 2008-05-29 15:43 | 1.8K | ||
| Math-Algebra-Symbols.old | 2008-05-26 10:04 | 629 | ||
| Math-Algebra-Symbols.ppd | 2008-09-25 10:52 | 522 | ||
| Math-Algebra-Symbols.tar.gz | 2008-05-26 10:04 | 93K | ||
| Math-BigInt-FastCalc.old | 2008-05-26 10:01 | 619 | ||
| Math-BigInt-FastCalc.ppd | 2008-09-25 10:52 | 618 | ||
| Math-BigInt-FastCalc.tar.gz | 2008-05-26 10:01 | 37K | ||
| Math-BigInt.old | 2008-05-26 10:01 | 526 | ||
| Math-BigInt.ppd | 2008-09-25 10:52 | 526 | ||
| Math-BigInt.tar.gz | 2008-05-26 10:01 | 136K | ||
| Math-BigRat.old | 2008-05-26 10:02 | 576 | ||
| Math-BigRat.ppd | 2008-09-25 10:52 | 575 | ||
| Math-BigRat.tar.gz | 2008-05-26 10:02 | 19K | ||
| Math-Units-PhysicalValue.old | 2008-05-24 18:25 | 610 | ||
| Math-Units-PhysicalValue.ppd | 2008-09-25 10:52 | 604 | ||
| Math-Units-PhysicalValue.tar.gz | 2008-05-24 18:25 | 7.4K | ||
| Math-Units.ppd | 2008-05-26 10:04 | 315 | ||
| Math-Units.tar.gz | 2008-05-26 10:04 | 9.1K | ||
| Module-Build.old | 2008-05-26 08:49 | 1.4K | ||
| Module-Build.ppd | 2008-09-25 10:52 | 953 | ||
| Module-Build.tar.gz | 2008-05-26 08:49 | 255K | ||
| Module-ScanDeps.old | 2008-05-26 10:35 | 780 | ||
| Module-ScanDeps.ppd | 2008-09-25 10:52 | 765 | ||
| Module-ScanDeps.tar.gz | 2008-05-26 10:35 | 20K | ||
| Net-Daemon.ppd | 2008-05-24 19:04 | 383 | ||
| Net-Daemon.tar.gz | 2008-05-24 19:04 | 28K | ||
| Net-SMTP-OneLiner.ppd | 2008-09-25 10:50 | 428 | ||
| Net-SMTP-OneLiner.tar.gz | 2008-09-25 10:50 | 3.6K | ||
| Net-Server.old | 2008-05-24 19:04 | 581 | ||
| Net-Server.ppd | 2008-09-25 10:52 | 415 | ||
| Net-Server.tar.gz | 2008-05-24 19:04 | 89K | ||
| Number-Format.ppd | 2008-05-24 18:14 | 325 | ||
| Number-Format.tar.gz | 2008-05-24 18:14 | 14K | ||
| PAR-Dist.old | 2008-05-26 10:18 | 617 | ||
| PAR-Dist.ppd | 2008-09-25 10:52 | 556 | ||
| PAR-Dist.tar.gz | 2008-05-26 10:18 | 14K | ||
| PAR-Packer.ppd | 2008-07-31 13:21 | 1.0K | ||
| PAR-Packer.tar.gz | 2008-07-31 13:21 | 1.6M | ||
| PAR.ppd | 2008-07-31 13:07 | 719 | ||
| PAR.tar.gz | 2008-07-31 13:07 | 65K | ||
| POE.old | 2008-05-24 20:30 | 1.0K | ||
| POE.ppd | 2008-09-25 10:52 | 794 | ||
| POE.tar.gz | 2008-05-24 20:30 | 364K | ||
| Parse-Binary.ppd | 2008-05-26 10:26 | 386 | ||
| Parse-Binary.tar.gz | 2008-05-26 10:26 | 14K | ||
| PathTools.old | 2008-05-26 08:49 | 601 | ||
| PathTools.ppd | 2008-09-25 10:52 | 489 | ||
| PathTools.tar.gz | 2008-05-26 08:49 | 74K | ||
| Pod-Escapes.ppd | 2008-05-24 07:23 | 319 | ||
| Pod-Escapes.tar.gz | 2008-05-23 15:29 | 8.2K | ||
| Pod-Parser.old | 2008-05-26 10:06 | 468 | ||
| Pod-Parser.ppd | 2008-09-25 10:52 | 469 | ||
| Pod-Parser.tar.gz | 2008-05-26 10:06 | 102K | ||
| Pod-Simple.old | 2008-05-26 10:30 | 1.1K | ||
| Pod-Simple.ppd | 2008-09-25 10:52 | 526 | ||
| Pod-Simple.tar.gz | 2008-05-26 10:30 | 186K | ||
| README.txt | 2008-05-29 15:43 | 8.1K | ||
| Scalar-List-Utils.ppd | 2008-05-26 10:09 | 413 | ||
| Scalar-List-Utils.tar.gz | 2008-05-26 10:09 | 50K | ||
| Software-License.ppd | 2008-05-26 11:34 | 515 | ||
| Software-License.tar.gz | 2008-05-26 11:34 | 68K | ||
| Storable.ppd | 2008-05-26 10:05 | 310 | ||
| Storable.tar.gz | 2008-05-26 10:05 | 105K | ||
| Sub-Install.old | 2008-05-26 11:31 | 514 | ||
| Sub-Install.ppd | 2008-09-25 10:52 | 520 | ||
| Sub-Install.tar.gz | 2008-05-26 11:31 | 5.5K | ||
| Term-GentooFunctions.old | 2008-05-24 07:23 | 536 | ||
| Term-GentooFunctions.ppd | 2008-09-25 10:52 | 528 | ||
| Term-GentooFunctions.tar.gz | 2008-05-23 14:08 | 3.2K | ||
| Term-ReadLine-Perl.ppd | 2008-05-26 11:19 | 342 | ||
| Term-ReadLine-Perl.tar.gz | 2008-05-26 11:19 | 41K | ||
| TermReadKey.ppd | 2008-05-26 11:10 | 319 | ||
| TermReadKey.tar.gz | 2008-05-26 11:10 | 45K | ||
| Test-Harness.old | 2008-05-26 08:47 | 380 | ||
| Test-Harness.ppd | 2008-09-25 10:52 | 379 | ||
| Test-Harness.tar.gz | 2008-05-26 08:47 | 101K | ||
| Test-Number-Delta.old | 2008-06-13 10:07 | 527 | ||
| Test-Number-Delta.ppd | 2008-09-25 10:52 | 397 | ||
| Test-Number-Delta.tar.gz | 2008-06-13 10:07 | 7.1K | ||
| Test-Pod.old | 2008-05-26 10:31 | 556 | ||
| Test-Pod.ppd | 2008-09-25 10:52 | 486 | ||
| Test-Pod.tar.gz | 2008-05-26 10:31 | 4.6K | ||
| Test-Simple.ppd | 2008-05-26 12:21 | 458 | ||
| Test-Simple.tar.gz | 2008-05-26 12:21 | 75K | ||
| Test.old | 2008-05-26 09:31 | 472 | ||
| Test.ppd | 2008-09-25 10:52 | 470 | ||
| Test.tar.gz | 2008-05-26 09:31 | 19K | ||
| Text-Diff.ppd | 2008-05-26 11:07 | 376 | ||
| Text-Diff.tar.gz | 2008-05-26 11:07 | 15K | ||
| Text-Glob.old | 2008-05-26 11:24 | 371 | ||
| Text-Glob.ppd | 2008-09-25 10:52 | 372 | ||
| Text-Glob.tar.gz | 2008-05-26 11:24 | 3.5K | ||
| Text-Tabs+Wrap.ppd | 2008-05-26 10:07 | 414 | ||
| Text-Tabs+Wrap.tar.gz | 2008-05-26 10:07 | 6.1K | ||
| Text-Template.ppd | 2008-05-26 11:30 | 325 | ||
| Text-Template.tar.gz | 2008-05-26 11:30 | 46K | ||
| Tie-IxHash.ppd | 2008-05-26 11:29 | 316 | ||
| Tie-IxHash.tar.gz | 2008-05-26 11:29 | 7.0K | ||
| URI.ppd | 2008-05-24 18:53 | 355 | ||
| URI.tar.gz | 2008-05-24 18:53 | 56K | ||
| Win32-Exe.old | 2008-05-26 10:26 | 502 | ||
| Win32-Exe.ppd | 2008-09-25 10:52 | 502 | ||
| Win32-Exe.tar.gz | 2008-05-26 10:26 | 16K | ||
| Win32API-Registry.ppd | 2008-05-26 10:55 | 429 | ||
| Win32API-Registry.tar.gz | 2008-05-26 10:55 | 128K | ||
| XML-NamespaceSupport.ppd | 2008-05-26 12:19 | 346 | ||
| XML-NamespaceSupport.tar.gz | 2008-05-26 12:19 | 7.5K | ||
| XML-Parser.old | 2008-05-26 07:40 | 444 | ||
| XML-Parser.ppd | 2008-09-25 10:52 | 451 | ||
| XML-Parser.tar.gz | 2008-05-26 07:40 | 300K | ||
| XML-SAX-Expat.ppd | 2008-05-26 12:19 | 606 | ||
| XML-SAX-Expat.tar.gz | 2008-05-26 12:19 | 5.1K | ||
| XML-SAX.ppd | 2008-05-26 12:22 | 435 | ||
| XML-SAX.tar.gz | 2008-05-26 12:22 | 53K | ||
| XML-Simple.ppd | 2008-05-26 12:24 | 582 | ||
| XML-Simple.tar.gz | 2008-05-26 12:24 | 62K | ||
| XML-XPath.ppd | 2008-05-26 11:27 | 461 | ||
| XML-XPath.tar.gz | 2008-05-26 11:27 | 45K | ||
| YAML.ppd | 2008-05-26 11:22 | 364 | ||
| YAML.tar.gz | 2008-05-26 11:22 | 45K | ||
| bignum.old | 2008-05-26 10:03 | 630 | ||
| bignum.ppd | 2008-09-25 10:52 | 628 | ||
| bignum.tar.gz | 2008-05-26 10:03 | 19K | ||
| check_versions | 2008-05-29 15:41 | 3.4K | ||
| fix_ppds | 2008-09-25 10:51 | 7.1K | ||
| html.xsl | 2008-05-24 12:23 | 1.3K | ||
| libnet.old | 2008-05-26 09:49 | 491 | ||
| libnet.ppd | 2008-09-25 10:52 | 378 | ||
| libnet.tar.gz | 2008-05-26 09:49 | 78K | ||
| libwww-perl.old | 2008-05-26 09:50 | 733 | ||
| libwww-perl.ppd | 2008-09-25 10:52 | 725 | ||
| libwww-perl.tar.gz | 2008-05-26 09:50 | 249K | ||
| package.xml | 2008-09-25 10:52 | 48K | ||
| stockmonkey.old | 2008-07-22 11:25 | 377 | ||
| stockmonkey.ppd | 2008-09-25 10:52 | 320 | ||
| stockmonkey.tar.gz | 2008-07-22 11:25 | 27K | ||
| version.old | 2008-05-26 10:33 | 429 | ||
| version.ppd | 2008-09-25 10:52 | 430 | ||
| version.tar.gz | 2008-05-26 10:33 | 60K | ||
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);
}
# }}}