diff --git a/debian/NEWS b/debian/NEWS index 5383d3887..d2c9aeeb4 100644 --- a/debian/NEWS +++ b/debian/NEWS @@ -1,10 +1,11 @@ linux-2.6 (2.6.32-10) unstable; urgency=low - * The old IDE (PATA) drivers are no longer developed, but most PATA - controllers can be handled by new drivers using 'libata', which is - already used for SATA controllers. This release enables all the new - drivers that are considered stable and disables the old drivers that - they replace. + * The old IDE (PATA) drivers are no longer developed. Most PATA + controllers used in PCs (i386 and amd64 architectures) can be handled + by new drivers using 'libata', which is already used for SATA + controllers. This release enables all the new drivers that are + considered stable and disables the old drivers that they replace. + Other architectures should not be affected. While the old drivers presented device names beginning with 'hd', libata makes PATA drives appear as SCSI devices and presents device diff --git a/debian/changelog b/debian/changelog index 465868431..ebd8878a6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -53,7 +53,7 @@ linux-2.6 (2.6.32-10) UNRELEASED; urgency=low * Remove /usr/include/drm from linux-libc-dev; let libdrm-dev provide it again * [x86] Enable rtl8192su driver using external firmware - * Use libata-based drivers for most PATA controllers (Closes: #444182): + * [x86] Use libata-based drivers for most PATA controllers (Closes: #444182): - pata_triflex replaces triflex - pata_atiixp replaces atiixp - pata_ns87415 replaces ns87415 diff --git a/debian/linux-base.postinst b/debian/linux-base.postinst index 233c4757e..fcdb0938e 100644 --- a/debian/linux-base.postinst +++ b/debian/linux-base.postinst @@ -522,225 +522,12 @@ sub lilo_post { system('lilo'); } -### SILO - -sub silo_post { - system('silo'); -} - ### ELILO sub elilo_post { system('elilo'); } -### PALO - -sub palo_next { - my ($file, $expect_opt) = @_; - my $text = <$file>; - - if (!defined($text) || $text eq '') { - return (); - } - - my $arg = $text; - $arg =~ s/^\s*(?:#.*)?//s; - $arg =~ s/\s*$//; - - # I would like to use Getopt::Long but it would make it - # impossible to determine which source text to replace. - if ($expect_opt && $arg =~ /^-(?!-)[?v]*(.)(.+)?$/) { - return ($text, "-$1", $2, defined($2)); - } elsif ($expect_opt && $arg =~ /^(--[^=]+)(?:=(.*))?$/) { - return ($text, $1, $2, defined($2)); - } elsif ($arg ne '') { - return ($text, undef, $arg, 1); - } else { - return ($text, undef, undef, $expect_opt); - } -} - -sub palo_list { - my ($file) = @_; - my $optopt; - my @bdevs; - - while (1) { - my ($text, $optarg, $complete); - if (defined($optopt)) { - ($text, undef, $optarg, $complete) = palo_next($file, 0); - } else { - ($text, $optopt, $optarg, $complete) = palo_next($file, 1); - } - last unless defined($text); - - if ($complete && defined($optopt)) { - if ($optopt eq '-c' || $optopt eq '--commandline') { - # If PALO is not configured to use the generic sym-link, - # ignore it - if ($optarg !~ m|^\d+/vmlinux\b|) { - return (); - } - push @bdevs, kernel_list($optarg); - } elsif ($optopt eq '-I' || $optopt eq '--init-partitioned') { - push @bdevs, $optarg; - } - $optopt = undef; - } - - if (!defined($optopt) && defined($optarg) && $optarg eq '--') { - last; - } - } - - return @bdevs; -} - -sub palo_update { - my ($old, $new, $map) = @_; - my $optopt; - my $allow_opts = 1; - - while (1) { - my ($text, $optarg, $complete); - if (defined($optopt)) { - ($text, undef, $optarg, $complete) = palo_next($old, 0); - } else { - ($text, $optopt, $optarg, $complete) = palo_next($old, $allow_opts); - } - last unless defined($text); - - if (defined($optopt)) { - if ($optopt eq '-c' || $optopt eq '--commandline') { - $text = "# $text"; - if ($complete) { - my $new_cmdline = kernel_update($optarg, $map); - if (!defined($new_cmdline)) { - $new_cmdline = $optarg; - } - $text .= "--commandline=$new_cmdline\n"; - } - } - $optopt = undef; - } - - $new->print($text); - - if (!defined($optopt) && defined($optarg) && $optarg eq '--') { - $allow_opts = 0; - } - } -} - -sub palo_post { - system('palo'); -} - -### delo - -sub delo_next { - # Based on getconfig() in config.c - - my ($file) = @_; - my $text = <$file>; - - if (!defined($text) || $text eq '') { - return (); - } - - local $_ = $text; - s/[ \t]*(?:#.*)?\n//; - s/^[ \t]*//; - - if (/^([a-z]+)=(.*)$/) { - return ($text, $1, $2); - } else { - return ($text); - } -} - -sub delo_sections { - my ($file) = @_; - my @sections; - my $section = {}; - - while (1) { - my ($text, $name, $value) = delo_next($file); - - # If this is EOF or a new section, finish the current section - if (!defined($text) || (defined($name) && $name eq 'label')) { - $section->{is_generic} = - (exists($section->{image}) && - exists($section->{append}) && - $section->{image} =~ m|^/vmlinux(?:\.old)?$|); - push @sections, $section; - $section = {}; - } - - last unless defined($text); - - if (defined($name)) { - if ($name eq 'append') { - $value =~ s/^"([^"]*).*/$1/; - } - $section->{$name} = $value; - } - } - - return @sections; -} - -sub delo_list { - my ($file) = @_; - my ($globals, @entries) = delo_sections($file); - my @bdevs; - - if (exists($globals->{boot})) { - push @bdevs, $globals->{boot}; - } - - for my $entry (@entries) { - if ($entry->{is_generic}) { - push @bdevs, kernel_list($entry->{append}); - } - } - - return @bdevs; -} - -sub delo_update { - my ($old, $new, $map) = @_; - my ($globals, @entries) = delo_sections($old); - my $i = -1; - - $old->seek(0, 0); - - while (1) { - my ($text, $name, $value) = delo_next($old); - last unless defined($text); - - if (defined($name)) { - if ($name eq 'label') { - ++$i; # next entry - } elsif ($name eq 'boot' && $i < 0) { - my $new_value = $map->{$value} && id_to_path($map->{$value}); - if (defined($new_value)) { - $text = "# $text" . "boot=$new_value\n"; - } - } elsif ($name eq 'append' && - $i >= 0 && $entries[$i]->{is_generic}) { - my $new_cmdline = kernel_update($value, $map); - if (defined($new_cmdline)) { - $text = "# $text" . "append=\"$new_cmdline\"\n"; - } - } - } - - $new->print($text); - } -} - ### extlinux sub extlinux_old_path { @@ -804,51 +591,6 @@ sub extlinux_post { system('update-extlinux'); } -### aboot - -sub aboot_next { - my ($file) = @_; - my $text = <$file>; - - if (!defined($text) || $text eq '') { - return (); - } - - if ($text =~ /^([0-9]):([^ ]*) (.*)/) { - return ($text, $1, $2, $3); - } else { - return ($text); - } -} - -sub aboot_list { - my ($file) = @_; - my @bdevs; - while (1) { - my ($text, $preset, $kernel, $params) = aboot_next($file); - last unless defined($text); - if (defined($params) && $kernel =~ m|^\d+/vmlinux(?:\.old)?$|) { - push @bdevs, kernel_list($params); - } - } - return @bdevs; -} - -sub aboot_update { - my ($old, $new, $map) = @_; - while (1) { - my ($text, $preset, $kernel, $params) = aboot_next($old); - last unless defined($text); - if (defined($params) && $kernel =~ m|^\d+/vmlinux(?:\.old)?$|) { - my $new_params = kernel_update($params, $map); - if (defined($new_params)) { - $text = "# $text" . "$preset:$kernel $new_params\n"; - } - } - $new->print($text); - } -} - # udev persistent-cd sub udev_next { @@ -1087,37 +829,11 @@ my @config_files = ({packages => 'mount', list => \&lilo_list, update => \&lilo_update, post_update => \&lilo_post}, - {packages => 'silo', - path => '/etc/silo.conf', - list => \&lilo_list, - update => \&lilo_update, - post_update => \&silo_post}, - {packages => 'quik', - path => '/etc/quik.conf', - list => \&lilo_list, - update => \&lilo_update}, - {packages => 'yaboot', - path => '/etc/yaboot.conf', - list => \&lilo_list, - update => \&lilo_update}, {packages => 'elilo', path => '/etc/elilo.conf', list => \&lilo_list, update => \&lilo_update, post_update => \&elilo_post}, - {packages => 'palo', - path => '/etc/palo.conf', - list => \&palo_list, - update => \&palo_update, - post_update => \&palo_post}, - {packages => 'delo', - path => '/etc/delo.conf', - list => \&delo_list, - update => \&delo_update}, - {packages => 'arcboot', - path => '/etc/arcboot.conf', - list => \&delo_list, - update => \&delo_update}, {packages => 'extlinux', path => extlinux_old_path(), list => \&extlinux_old_list, @@ -1128,10 +844,6 @@ my @config_files = ({packages => 'mount', list => \&extlinux_new_list, update => \&extlinux_new_update, post_update => \&extlinux_post}, - {packages => 'aboot', - path => '/etc/aboot.conf', - list => \&aboot_list, - update => \&aboot_update}, {packages => 'udev', path => '/etc/udev/rules.d/70-persistent-cd.rules', needs_update => \&udev_cd_needs_update, @@ -1622,8 +1334,11 @@ sub compare_versions { return $AptPkg::Config::_config->system->versioning->compare(@_); } -if ($ARGV[0] eq 'reconfigure' || - compare_versions($ARGV[1], '2.6.32-10') < 0) { +my $deb_arch = `dpkg --print-architecture`; +chomp $deb_arch; + +if (($deb_arch eq 'i386' || $deb_arch eq 'amd64') && + ($ARGV[0] eq 'reconfigure' || compare_versions($ARGV[1], '2.6.32-10') < 0)) { DebianKernel::DiskId::transition(); }