next if (!$d);
next if ($donedir{$d});
local $f;
- open(FIND, "find '$d' -name .packlist -print |");
+ open(FIND, "find ".quotemeta($d)." -name .packlist -print |");
+ print STDERR "find ".quotemeta($d)." -name .packlist -print\n";
while($f = <FIND>) {
chop($f);
local @st = stat($f);
elsif ($l =~ /^([^\/]+)\.pm$/) {
# Module name only, with no path! Damn redhat..
local @rpath;
- open(FIND2, "find '$d' -name '$l' -print |");
+ open(FIND2, "find ".quotemeta($d).
+ " -name '$l' -print |");
+ print STDERR "find ".quotemeta($d).
+ " -name '$l' -print\n";
while(<FIND2>) {
chop;
push(@rpath, $_);
next if ($donemod{$mod->{'name'}}++);
# Add the files in the RPM
- local $fn = &software::check_files(
- $software::packages{$i,'name'},
- $software::packages{$i,'version'});
- local $fi;
- for($fi=0; $fi<$fn; $fi++) {
- local $l = $software::files{$fi,'path'};
+ # XXX call rpm -ql only, avoid -V step
+ # XXX same for Debian
+ # XXX list_package_files function, returns an array
+ foreach my $l (&software::package_files(
+ $software::packages{$i,'name'},
+ $software::packages{$i,'version'})) {
if ($l =~ /\/((([A-Z][^\/]*\/)([^\/]+\/)?)?[^\/]+)\.pm$/) {
local $mn = $1;
$mn =~ s/\//::/g;
$software::packages{$i,'version'} };
# Add the files in the RPM
- local $fn = &software::check_files(
- $software::packages{$i,'name'},
- $software::packages{$i,'version'});
- local $fi;
- for($fi=0; $fi<$fn; $fi++) {
- local $l = $software::files{$fi,'path'};
+ foreach my $l (&software::package_files(
+ $software::packages{$i,'name'})) {
if ($l =~ /\/((([A-Z][^\/]*\/)([^\/]+\/)?)?[^\/]+)\.pm$/) {
local $mn = $1;
$mn =~ s/\//::/g;
# Start tabs
@mods = &list_perl_modules();
-@tabs = ( [ 'mods', $text{'index_tabmods'}, 'index.cgi?mode=mods' ],
+@tabs = (
[ 'install', $text{'index_tabinstall'}, 'index.cgi?mode=install' ],
+ [ 'mods', $text{'index_tabmods'}, 'index.cgi?mode=mods' ],
[ 'suggest', $text{'index_tabsuggest'}, 'index.cgi?mode=suggest' ],
);
-if (!$in{'mode'}) {
- $in{'mode'} = @mods ? 'mods' : 'install';
- }
+$in{'mode'} ||= 'install';
print &ui_tabs_start(\@tabs, 'mode', $in{'mode'}, 1);
+# Display install form
+print &ui_tabs_start_tab('mode', 'install');
+print "$text{'index_installmsg'}<p>\n";
+print &ui_form_start("download.cgi", "form-data");
+
+# Work out of packages should be refreshed
+@st = stat($packages_file);
+if (@st) {
+ $now = time();
+ $refreshopt = "<br>".&ui_checkbox("refresh", 1, $text{'index_refresh'},
+ $st[9]+$config{'refresh_days'}*24*60*60 < $now);
+ }
+if ($config{'incyum'} && &can_list_packaged_modules()) {
+ $cpanopt = "<br>".&ui_checkbox("forcecpan", 1,
+ $text{'index_forcecpan'}, 0);
+ }
+
+@opts = ( [ 3, $text{'index_cpan'},
+ &ui_textbox("cpan", undef, 50)." ".
+ &ui_button("...", undef, 0, "onClick='window.ifield = document.forms[$formno].cpan; chooser = window.open(\"cpan.cgi\", \"chooser\", \"toolbar=no,menubar=no,scrollbars=yes,width=800,height=500\"); chooser.ifield = window.ifield;'").
+ $refreshopt.$cpanopt ],
+ [ 0, $text{'index_local'},
+ &ui_textbox("local", undef, 50)." ".
+ &file_chooser_button("local", 0) ],
+ [ 1, $text{'index_uploaded'},
+ &ui_upload("upload", 50) ],
+ [ 2, $text{'index_ftp'},
+ &ui_textbox("url", undef, 50) ]
+ );
+print &ui_radio_table("source", 3, \@opts);
+print &ui_form_end([ [ undef, $text{'index_installok'} ] ]);
+print &ui_tabs_end_tab();
+
# Display perl modules
print &ui_tabs_start_tab('mode', 'mods');
if (@mods) {
}
print &ui_tabs_end_tab();
-# Display install form
-print &ui_tabs_start_tab('mode', 'install');
-print "$text{'index_installmsg'}<p>\n";
-print &ui_form_start("download.cgi", "form-data");
-
-# Work out of packages should be refreshed
-@st = stat($packages_file);
-if (@st) {
- $now = time();
- $refreshopt = "<br>".&ui_checkbox("refresh", 1, $text{'index_refresh'},
- $st[9]+$config{'refresh_days'}*24*60*60 < $now);
- }
-if ($config{'incyum'} && &can_list_packaged_modules()) {
- $cpanopt = "<br>".&ui_checkbox("forcecpan", 1,
- $text{'index_forcecpan'}, 0);
- }
-
-@opts = ( [ 3, $text{'index_cpan'},
- &ui_textbox("cpan", undef, 50)." ".
- &ui_button("...", undef, 0, "onClick='window.ifield = document.forms[$formno].cpan; chooser = window.open(\"cpan.cgi\", \"chooser\", \"toolbar=no,menubar=no,scrollbars=yes,width=800,height=500\"); chooser.ifield = window.ifield;'").
- $refreshopt.$cpanopt ],
- [ 0, $text{'index_local'},
- &ui_textbox("local", undef, 50)." ".
- &file_chooser_button("local", 0) ],
- [ 1, $text{'index_uploaded'},
- &ui_upload("upload", 50) ],
- [ 2, $text{'index_ftp'},
- &ui_textbox("url", undef, 50) ]
- );
-print &ui_radio_table("source", 3, \@opts);
-print &ui_form_end([ [ undef, $text{'index_installok'} ] ]);
-print &ui_tabs_end_tab();
-
# Show button to install recommended Perl modules
print &ui_tabs_start_tab('mode', 'suggest');
@allrecs = &get_recommended_modules();