/rpmconf

Tool to handle rpmnew and rpmsave files

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

rpmconf

tool to handle rpmnew and rpmsave files

What it does:

  • run "rpmconf --help" and you will see :)
  • it searches all config file of all installed packages and check if file with .rpmsave or .rpmnew exists.
  • It allows you to see diff of this file against current file and can do merge.
  • It allows you to keep current version or the other one (rpmsave or rpmnew one).
  • it deletes .rpmsave and .rpmnew files which are identical to current file
  • after your choice it deletes the unwanted file.
  • it can search for all orphaned rpmsave and rpmnew files.
  • it can dump diffs for unattended automation.

I provide only .zip and .tar.gz (automagically generated by GitHub) and .src.rpm. If you are looking for .rpm files run either: dnf install rpmconf

If you just want to see the difference between old and new files, run rpmconf non-interactively like this (for one package):

[user@host ~]$ rpmconf -oglibc -D
--- /etc/nsswitch.conf  2013-07-02 13:55:25.000000000 +0000
+++ /etc/nsswitch.conf.rpmnew   2012-10-22 15:46:43.000000000 +0000
@@ -36,7 +36,7 @@
 initgroups: files

 #hosts:     db files nisplus nis dns
-hosts:      files dns myhostname
+hosts:      files dns

 # Example - obey only what nisplus tells us...
 #services:   nisplus [NOTFOUND=return] files

or like this for all packages:

[user@host ~]$ rpmconf -D -a | head -20
--- /etc/nsswitch.conf  2013-07-02 13:55:25.000000000 +0000
+++ /etc/nsswitch.conf.rpmnew   2012-10-22 15:46:43.000000000 +0000
@@ -36,7 +36,7 @@
 initgroups: files

 #hosts:     db files nisplus nis dns
-hosts:      files dns myhostname
+hosts:      files dns

 # Example - obey only what nisplus tells us...
 #services:   nisplus [NOTFOUND=return] files
--- /usr/share/info/dir 2013-12-29 02:37:24.067000000 +0000
+++ /usr/share/info/dir.rpmnew  2013-03-21 13:20:38.000000000 +0000
@@ -15,1978 +15,8 @@

 * Menu:

-Archiving
-* Cpio: (cpio).                 Copy-in-copy-out archiver to tape or disk.
-* Tar: (tar).                   Making tape (or disk) archives.

How to build package

yum install tito
cd source
tito build --rpm

Hacking

commit your code (localy is fine)
cd source
tito build --test --rpm

Packaging status

rpmconf versions

History

Originally there was no such tool for RPM world. I came from Debian world where handling of configuration files is directly in apt. Since rpm is non-interactive, such handling must be in separate tool. Therefore I started creating rpmconf, which is very similar to Debian configuration handling. I even try to copy as much as possible the frontend strings and formatting as I hope that sysadmins appreciate unified UI in Debian and Fedora.

Sponsor

This project is sponsored by Red Hat. You can buy Red Hat subscription to sponsor this project.

License

GPLv3

Author

Miroslav SuchĂ˝ msuchy@redhat.com