6 This script investigates all CPAN distros if they contain
7 inc/Module/Install/AutoInstall.pm but not
8 inc/{Module,ExtUtils}/AutoInstall.pm. We wanted to write these authors
9 hat they should upgrade their distris with a newer release of
12 This exercise was amazing as it revealed several unrelated bugs like
13 broken signatures and distros that could not be untarred for some
14 reason. And bugs in CPAN.pm that did not react adequatly to certain
20 use CPAN
1.81; # 1.80 broken for *.tgz
22 use File
::Path
qw(rmtree);
25 open my $fh, "$0.out" or die;
33 A/AU/AUTRIJUS/Lingua-ZH-TaBE-0.06.tar.gz
34 A/AU/AUTRIJUS/Parse-SVNDiff-0.03.tar.gz
35 B/BM/BMORROW/PerlIO-nline-0.03.tar.gz
36 B/BO/BOBMATH/Crypt-CAST5_PP-1.03.tar.gz
37 B/BU/BURAK/CGI-Auth-Basic-1.02.tar.gz
38 B/BU/BURAK/GD-SecurityImage-1.583.tar.gz
39 B/BU/BURAK/MP3-M3U-Parser-2.1.tar.gz
40 C/CR/CRAIHA/Geo-Coordinates-Parser-0.01.tar.gz
41 D/DA/DARREN/Text-TabularDisplay-1.21.tar.gz
42 D/DM/DMAKI/Class-Validating-0.02.tar.gz
43 D/DM/DMAKI/DateTime-Event-Lunar-0.04.tar.gz
44 D/DM/DMAKI/DateTime-Util-Astro-0.06.tar.gz
45 D/DM/DMAKI/POE-Component-StackedProcessor-0.05.tar.gz
46 D/DR/DROLSKY/DateTime-Format-HTTP-0.36.tar.gz
47 G/GO/GOZER/Scalar-Readonly-0.01.tar.gz
48 J/JJ/JJORE/B-Lisp-0.01.tar.gz
49 J/JJ/JJORE/Geo-TigerLine-Abbreviations-0.02.tar.gz
50 J/JM/JMEHNLE/apache-auth-userdb/Apache-Auth-UserDB-0.11.tar.gz
51 J/JM/JMEHNLE/clamav-client/ClamAV-Client-0.11.tar.gz
52 J/JM/JMEHNLE/courier-filter/Courier-Filter-0.17.tar.gz
53 J/JM/JMEHNLE/net-address-ipv4-local/Net-Address-IPv4-Local-0.12.tar.gz
54 J/JM/JMEHNLE/www-restaurant-menu/WWW-Restaurant-Menu-0.11.tar.gz
55 K/KC/KCLARK/SQL-Translator-0.07.tar.gz
56 K/KM/KMELTZ/SSN-Validate-0.13.tar.gz
57 K/KU/KUDARASP/PHP-Strings-0.28.tar.gz
58 L/LO/LORENSEN/Net-BGP-0.08.tar.gz
59 N/NI/NIKC/SVN-Web-0.42.tar.gz
60 P/PT/PTANDLER/PBib/Bundle-PBib-2.08.01.tar.gz
61 P/PT/PTANDLER/PBib/Bundle-PBib-2.08.tar.gz
62 R/RE/REEDFISH/Term-Menus-1.11.tar.gz
63 R/RR/RRWO/Acme-AutoColor-0.01.tar.gz
64 R/RR/RRWO/Acme-Mobile-Therbligs-0.04.tar.gz
65 R/RR/RRWO/Algorithm-ScheduledPath-0.41.tar.gz
66 R/RR/RRWO/Algorithm-SkipList-1.02.tar.gz
67 R/RR/RRWO/CPAN-Mini-Tested-0.22.tar.gz
68 R/RR/RRWO/CPAN-YACSmoke-0.03.tar.gz
69 R/RR/RRWO/CPAN-YACSmoke-Plugin-Phalanx100-0.02.tar.gz
70 R/RR/RRWO/File-HomeDir-Win32-0.03.tar.gz
71 R/RR/RRWO/Graphics-ColorNames-1.06.tar.gz
72 R/RR/RRWO/Log-Dispatch-Win32EventLog-0.13.tar.gz
73 R/RR/RRWO/Logic-Kleene-0.05.tar.gz
74 R/RR/RRWO/Module-Phalanx100-0.05.tar.gz
75 R/RR/RRWO/Mozilla-Backup-0.06.tar.gz
76 R/RR/RRWO/Params-Smart-0.06.tar.gz
77 R/RR/RRWO/Pod-Readme-0.05.tar.gz
78 R/RR/RRWO/Text-Truncate-1.03.tar.gz
79 R/RR/RRWO/Tie-RangeHash-1.03.tar.gz
80 R/RR/RRWO/Tie-RegexpHash-0.13.tar.gz
81 R/RR/RRWO/Tree-Node-0.06.tar.gz
82 R/RR/RRWO/Win32-EventLog-Carp-1.39.tar.gz
83 S/SA/SAMV/Parse-SVNDiff-0.03.tar.gz
84 S/SC/SCHUMACK/CircuitLayout-0.07.tar.gz
86 S/SI/SIMON/Lingua-EN-Keywords-2.0.tar.gz
87 S/SI/SIMON/Mail-Miner-2.7.tar.gz
88 S/SM/SMUELLER/Acme-Chef-1.00.tar.gz
93 B/BC/BCH/Win32-Filenames-0.01.tar.gz
94 B/BR/BRUNODIAZ/Finance-Bank-ES-INGDirect-0.02.tar.gz
95 D/DA/DAOTOAD/Log-WithCallbacks-1.00.tar.gz
96 D/DE/DENKINGER/Games-Poker-HistoryParser-1.3.tar.gz
97 E/EC/ECASTILLA/DBIx-PasswordIniFile-1.1.tar.gz
98 J/JO/JONATHAN/Math-Calculus-TaylorEquivalent-0.1.tar.gz
99 J/JO/JONATHAN/Math-Calculus-TaylorSeries-0.1.tar.gz
100 K/KO/KOKOGIKO/Location-GeoTool-Plugin-Locapoint-0.01.tar.gz
101 M/MA/MARKWIN/CNC-Cog-0.06.tar.gz
102 N/NI/NILSONSFJ/subs-parallel-0.07.tar.gz
103 P/PH/PHOENIXL/extensible_report_generator_1.13.zip
104 R/RV/RVOSA/Bio-Phylo-0.04.tar.gz
107 for my $x (@brokensig,@brokendist) {
108 if ($restart_after) {
109 if ($x gt $restart_after) {
117 DISTRO
: for $d (CPAN
::Shell
->expand("Distribution","/./")){
119 next if $restart_after && $id le $restart_after;
120 print "---->[$id]<----\n";
121 next DISTRO
if grep {$_ eq $id or
122 ( m/\/$/ && substr($id,0,length($_)) eq $_)
123 } @brokensig, @brokendist;
125 my $dir = $d->dir or die;
126 if (-f
"$dir/inc/Module/Install/AutoInstall.pm"
128 ! -f
"$dir/inc/Module/AutoInstall.pm"
130 ! -f
"$dir/inc/ExtUtils/AutoInstall.pm"){
131 open my $rfh, ">>", "$cwd/$0.out" or die "Cannot open >$cwd/$0.out: $!";
132 print $rfh $d->id, "\n";
141 # cperl-indent-level: 2