Skip to content

xsuchy/rpmconf

Repository files navigation

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

GPL-3.0-only

Author

Miroslav Suchý msuchy@redhat.com