aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2015-03-22 23:17:12 +0100
committerRémi Verschelde <remi@verschelde.fr>2015-03-22 23:17:12 +0100
commit80efbb77104557345ee9e45504f5c8827c241a4f (patch)
treed13d6008e1c38679a68225db845177151934da13
parent1231c5ae32d233e10336b84235c46d362aebef2d (diff)
downloadrpmdrake-80efbb77104557345ee9e45504f5c8827c241a4f.tar
rpmdrake-80efbb77104557345ee9e45504f5c8827c241a4f.tar.gz
rpmdrake-80efbb77104557345ee9e45504f5c8827c241a4f.tar.bz2
rpmdrake-80efbb77104557345ee9e45504f5c8827c241a4f.tar.xz
rpmdrake-80efbb77104557345ee9e45504f5c8827c241a4f.zip
rpmdrake: filter out critical config files from the .rpm{new,save} handling logic after installing packages (Martin Whitaker, mga#14266)
-rw-r--r--NEWS4
-rw-r--r--Rpmdrake/pkg.pm2
-rw-r--r--Rpmdrake/rpmnew.pm7
3 files changed, 11 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 952b8dea..4d1f0e47 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+- rpmdrake:
+ o filter out critical config files from the .rpm{new,save} handling
+ logic after installing packages (Martin Whitaker, mga#14266)
+
Version 6.16 - 14 February 2015, Thierry Vignaud
- rpmdrake:
diff --git a/Rpmdrake/pkg.pm b/Rpmdrake/pkg.pm
index 8dd87cd0..a190da1c 100644
--- a/Rpmdrake/pkg.pm
+++ b/Rpmdrake/pkg.pm
@@ -855,7 +855,7 @@ sub perform_installation { #- (partially) duplicated from /usr/sbin/urpmi :-(
foreach my $id (@rpms_upgrade) {
my $pkg = $urpm->{depslist}[$id];
next if $pkg->arch eq 'src';
- $pkg2rpmnew{$pkg->fullname} = [ grep { -r "$_.rpmnew" || -r "$_.rpmsave" } $pkg->conf_files ];
+ $pkg2rpmnew{$pkg->fullname} = [ grep { (-r "$_.rpmnew" || -r "$_.rpmsave") && !ignore_rpmnew($_) } $pkg->conf_files ];
}
statusbar_msg_remove($id);
dialog_rpmnew(N("The installation is finished; everything was installed correctly.
diff --git a/Rpmdrake/rpmnew.pm b/Rpmdrake/rpmnew.pm
index ffadf84f..437f3470 100644
--- a/Rpmdrake/rpmnew.pm
+++ b/Rpmdrake/rpmnew.pm
@@ -36,7 +36,7 @@ use mygtk3 qw(gtknew); #- do not import anything else, especially gtkadd() whic
use ugtk3 qw(:all);
use Exporter;
our @ISA = qw(Exporter);
-our @EXPORT = qw(dialog_rpmnew do_merge_if_needed);
+our @EXPORT = qw(ignore_rpmnew dialog_rpmnew do_merge_if_needed);
# /var/lib/nfs/etab /var/lib/nfs/rmtab /var/lib/nfs/xtab /var/cache/man/whatis
my %ignores_rpmnew = map { $_ => 1 } qw(
@@ -71,6 +71,11 @@ my %ignores_rpmnew = map { $_ => 1 } qw(
/etc/sysconfig/xinetd
);
+sub ignore_rpmnew {
+ my ($conf_file) = @_;
+ $ignores_rpmnew{$conf_file};
+}
+
sub inspect {
my ($file) = @_;
my ($rpmnew, $rpmsave) = ("$file.rpmnew", "$file.rpmsave");