You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.6 KiB
47 lines
1.6 KiB
7 years ago
|
From 3c99b06c7776345cfc3a3d4fd0c59fe671644317 Mon Sep 17 00:00:00 2001
|
||
|
From: Lubos Kardos <lkardos@redhat.com>
|
||
|
Date: Wed, 21 Oct 2015 15:25:47 +0200
|
||
|
Subject: [PATCH] Overwrite a file if it is not marked as config any more.
|
||
|
|
||
|
If a file was marked as config in the previous version of a package but
|
||
|
it is not marked as config in currently being installed version of
|
||
|
the package then backup the old file as .rpmsave and overwrite it with
|
||
|
the new file. (rhbz:1263859)
|
||
|
---
|
||
|
lib/rpmfi.c | 12 ++++++++++++
|
||
|
1 file changed, 12 insertions(+)
|
||
|
|
||
|
diff --git a/lib/rpmfi.c b/lib/rpmfi.c
|
||
|
index 924ff4b..28a697e 100644
|
||
|
--- a/lib/rpmfi.c
|
||
|
+++ b/lib/rpmfi.c
|
||
|
@@ -1040,6 +1040,12 @@ rpmFileAction rpmfilesDecideFate(rpmfiles ofi, int oix,
|
||
|
goto exit; /* file identical in new, replace. */
|
||
|
}
|
||
|
|
||
|
+ /* if new file is no longer config, backup it and replace it */
|
||
|
+ if (!(newFlags & RPMFILE_CONFIG)) {
|
||
|
+ action = FA_SAVE;
|
||
|
+ goto exit;
|
||
|
+ }
|
||
|
+
|
||
|
/* If file can be determined identical in old and new pkg, let it be */
|
||
|
if (newWhat == REG && oalgo == nalgo && odiglen == ndiglen) {
|
||
|
if (odigest && ndigest && memcmp(odigest, ndigest, odiglen) == 0) {
|
||
|
@@ -1071,6 +1077,12 @@ rpmFileAction rpmfilesDecideFate(rpmfiles ofi, int oix,
|
||
|
goto exit; /* unmodified config file, replace. */
|
||
|
}
|
||
|
|
||
|
+ /* if new file is no longer config, backup it and replace it */
|
||
|
+ if (!(newFlags & RPMFILE_CONFIG)) {
|
||
|
+ action = FA_SAVE;
|
||
|
+ goto exit;
|
||
|
+ }
|
||
|
+
|
||
|
/* If link is identical in old and new pkg, let it be */
|
||
|
if (newWhat == LINK && oFLink && nFLink && rstreq(oFLink, nFLink)) {
|
||
|
action = FA_SKIP; /* identical file, don't bother. */
|
||
|
--
|
||
|
2.5.5
|
||
|
|