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