diff options
-rw-r--r-- | perl-install/Xconfigurator.pm | 25 | ||||
-rw-r--r-- | perl-install/Xconfigurator_consts.pm | 24 | ||||
-rw-r--r-- | perl-install/c/stuff.xs.pm | 26 | ||||
-rw-r--r-- | perl-install/pkgs.pm | 18 |
4 files changed, 51 insertions, 42 deletions
diff --git a/perl-install/Xconfigurator.pm b/perl-install/Xconfigurator.pm index 3f8b7027c..cdedd020e 100644 --- a/perl-install/Xconfigurator.pm +++ b/perl-install/Xconfigurator.pm @@ -120,13 +120,14 @@ sub rewriteInittab { sub keepOnlyLegalModes { my ($card, $monitor) = @_; - my $mem = 1024 * ($card->{memory} || 99999); + my $mem = 1024 * ($card->{memory} || ($card->{server} eq 'FBDev' ? 2048 : 99999)); my $hsync = max(split(/[,-]/, $monitor->{hsyncrange})); while (my ($depth, $res) = each %{$card->{depth}}) { @$res = grep { $mem >= product(@$_, $depth / 8) && - $hsync >= ($min_hsync4wres{$_->[0]} || 0) + $hsync >= ($min_hsync4wres{$_->[0]} || 0) && + ($card->{server} ne 'FBDev' || $vgamodes{"$_->[0]x$_->[1]x$depth"}) } @$res; delete $card->{depth}{$depth} if @$res == 0; } @@ -387,17 +388,17 @@ sub autoDefaultDepth($$) { my ($card, $wres_wanted) = @_; my ($best, $depth); -# if ($card->{server} eq 'FBDev') { -# 16; #- assume 16 bits depth for this case. -# } else { - while (my ($d, $r) = each %{$card->{depth}}) { - $depth = $depth ? max($depth, $d) : $d; + if ($card->{server} eq 'FBDev') { + return 16; #- this should work by default, FBDev is allowed only if install currently uses it at 16bpp. + } - # try to have $resolution_wanted - $best = $best ? max($best, $d) : $d if $r->[0][0] >= $wres_wanted; - } - $best || $depth or die "no valid modes"; -# } + while (my ($d, $r) = each %{$card->{depth}}) { + $depth = $depth ? max($depth, $d) : $d; + + #- try to have $resolution_wanted + $best = $best ? max($best, $d) : $d if $r->[0][0] >= $wres_wanted; + } + $best || $depth or die "no valid modes"; } sub autoDefaultResolution(;$) { diff --git a/perl-install/Xconfigurator_consts.pm b/perl-install/Xconfigurator_consts.pm index d8387879a..25c8483c7 100644 --- a/perl-install/Xconfigurator_consts.pm +++ b/perl-install/Xconfigurator_consts.pm @@ -60,22 +60,14 @@ $resolution_wanted = "1024x768"; '1024x768x16' => 791, '1280xx16' => 794, '1280x1024x16' => 794, - '640xx24' => 786, - '640x480x24' => 786, - '800xx24' => 789, - '800x600x24' => 789, - '1024xx24' => 792, - '1024x768x24' => 792, - '1280xx24' => 795, - '1280x1024x24' => 795, - '640xx32' => 786, #- just in case. - '640x480x32' => 786, - '800xx32' => 789, - '800x600x32' => 789, - '1024xx32' => 792, - '1024x768x32' => 792, - '1280xx32' => 795, - '1280x1024x32' => 795, +#- '640xx24' => 786, #- there is a problem with these resolutions since the BIOS may take 24 or 32 planes. +#- '640x480x24' => 786, +#- '800xx24' => 789, +#- '800x600x24' => 789, +#- '1024xx24' => 792, +#- '1024x768x24' => 792, +#- '1280xx24' => 795, +#- '1280x1024x24' => 795, ); { #- @monitorSize2resolution diff --git a/perl-install/c/stuff.xs.pm b/perl-install/c/stuff.xs.pm index a3317b76b..32ca98ff6 100644 --- a/perl-install/c/stuff.xs.pm +++ b/perl-install/c/stuff.xs.pm @@ -229,7 +229,12 @@ rpmdbOpenForTraversal(root) char *root CODE: static rpmdb db; + rpmErrorCallBackType old_cb; + old_cb = rpmErrorSetCallback(rpmError_callback_empty); + rpmSetVerbosity(RPMMESS_FATALERROR); RETVAL = rpmdbOpenForTraversal(root, &db) == 0 ? db : NULL; + rpmErrorSetCallback(old_cb); + rpmSetVerbosity(RPMMESS_NORMAL); OUTPUT: RETVAL @@ -392,7 +397,12 @@ int rpmdbRebuild(root) char *root CODE: + rpmErrorCallBackType old_cb; + old_cb = rpmErrorSetCallback(rpmError_callback_empty); + rpmSetVerbosity(RPMMESS_FATALERROR); RETVAL = rpmdbRebuild(root) == 0; + rpmErrorSetCallback(old_cb); + rpmSetVerbosity(RPMMESS_NORMAL); OUTPUT: RETVAL @@ -461,16 +471,16 @@ rpmRunTransactions(trans, callbackOpen, callbackClose, callbackStart, callbackPr } case RPMCALLBACK_INST_START: { - dSP ; - PUSHMARK(sp) ; - XPUSHs(sv_2mortal(newSVpv(n, 0))); - PUTBACK ; - perl_call_sv(callbackStart, G_DISCARD); - last_amount = 0; - } break; + dSP ; + PUSHMARK(sp) ; + XPUSHs(sv_2mortal(newSVpv(n, 0))); + PUTBACK ; + perl_call_sv(callbackStart, G_DISCARD); + last_amount = 0; + } break; case RPMCALLBACK_INST_PROGRESS: - if ((amount - last_amount) * 4 / total) { + if ((amount - last_amount) * 4 / total) { dSP; PUSHMARK(sp); XPUSHs(sv_2mortal(newSViv(amount))); diff --git a/perl-install/pkgs.pm b/perl-install/pkgs.pm index c4e41db87..0c56f6a11 100644 --- a/perl-install/pkgs.pm +++ b/perl-install/pkgs.pm @@ -317,12 +317,15 @@ sub init_db { c::rpmErrorSetCallback(fileno LOG); #- c::rpmSetVeryVerbose(); -# log::l("reading /usr/lib/rpm/rpmrc"); -# c::rpmReadConfigFiles() or die "can't read rpm config files"; -# log::l("\tdone"); + log::l("reading /usr/lib/rpm/rpmrc"); + c::rpmReadConfigFiles() or die "can't read rpm config files"; + log::l("\tdone"); + + if ($isUpgrade) { + c::rpmdbRebuild($prefix) or die "rebuilding of rpm database failed: ", c::rpmErrorString(); + } - $isUpgrade and c::rpmdbRebuild($prefix) || die "rebuilding of rpm database failed: ", c::rpmErrorString(); - c::rpmdbInit($prefix, 0644) || die "creation of rpm database failed: ", c::rpmErrorString(); + c::rpmdbInit($prefix, 0644) or die "creation of rpm database failed: ", c::rpmErrorString(); #- $isUpgrade ? c::rpmdbRebuild($prefix) : c::rpmdbInit($prefix, 0644) or die "creation/rebuilding of rpm database failed: ", c::rpmErrorString(); } @@ -488,9 +491,12 @@ sub install($$) { eval { fs::mount("/proc", "$prefix/proc", "proc", 0) }; + #- if someone try to change the function log::ld or the parameters used, + #- DON TRY THAT unless you have modified accordingly install_steps_gtk. + #- because log::ld is catched, furthermore do not translate the messages used. log::l("starting installation: ", $nb, " packages, ", $total, " bytes"); + log::ld("starting installation: ", $nb, " packages, ", $total, " bytes"); - #- !! do not translate these messages, they are used when catched (cf install_steps_gtk) my $callbackOpen = sub { my $f = (my $p = $packages{$_[0]})->{file}; print LOG "$f\n"; |