rpm overwriting config files again
Elan Ruusamäe
glen at pld-linux.org
Sat May 30 09:30:16 CEST 2015
On 29.05.2015 17:43, Jeffrey Johnson wrote:
> If you wish to change the behavior to, say, create foo.rpmnew instead of foo
> when the new package file is marked %config(noreplace), then patch
> lib/rpmfi.c to return FA_ALTNAME instead of FA_CREATE when marked
> %config(noreplace) in lib/rpmfi.c rpmfiDecideFate()
>
> The patch will likely be as simple as
>
> - return FA_CREATE;
> + return save;
i don't know what i'm doing wrong, but the fate is not decided for
commands.cfg file:
10:26:18 root[load: 0.13]@new-server ~# rpm -Uvv
nagios-nrpe-2.15-4.1.i686.rpm 2> inst.log
Preparing packages for installation...
Repackaging erased files...
nagios-nrpe-2.15-1.i686
Upgrading packages...
nagios-nrpe-2.15-4.1.i686
10:29:10 root[load: 0.01]@new-server ~# rpm -qf
/etc/nagios/nrpe.d/commands.cfg
nagios-nrpe-2.15-4.1.i686
10:26:22 root[load: 0.12]@new-server ~# grep -i fate inst.log
D: /etc/nagios/nrpe.cfg rpmfiDecideFate
besides your patch,
https://github.com/pld-linux/rpm/compare/config-noreplace-newfile
i added log when the method is invoked:
--- rpm-5.4.15/lib/rpmfi.c~ 2015-05-30 10:15:12.000000000 +0300
+++ rpm-5.4.15/lib/rpmfi.c 2015-05-30 10:21:23.644364230 +0300
@@ -677,6 +677,8 @@
struct stat sb;
int save = (newFlags & RPMFILE_NOREPLACE) ? FA_ALTNAME : FA_SAVE;
+ rpmlog(RPMLOG_DEBUG, D_("%s rpmfiDecideFate\n"), fn);
+
if (Lstat(fn, &sb)) {
/*
* The file doesn't exist on the disk. Create it unless the new
--
glen
More information about the pld-devel-en
mailing list