Description of problem: When a package is installed or removed, the time stamps of the database files in /var/lib/rpm are updated. But when "rpm --rebuilddb" is run, they are not, causing some backup programs to think the files didn't change. Version-Release number of selected component (if applicable): rpm-4.4.2-15.2 How reproducible: Always Steps to Reproduce: # ls -al /var/lib/rpm total 20300 drwx------ 2 rpm rpm 4096 Apr 20 12:36 . drwx--x--x 7 root root 4096 May 3 04:02 .. -rw-r--r-- 1 rpm rpm 1425408 May 3 12:06 Basenames -rw-r--r-- 1 rpm rpm 12288 May 3 12:06 Conflictname -rw-r--r-- 1 rpm rpm 397312 May 3 12:06 Dirnames -rw-r--r-- 1 rpm rpm 2650112 May 3 12:06 Filemd5s -rw-r--r-- 1 rpm rpm 12288 May 3 12:06 Group -rw-r--r-- 1 rpm rpm 20480 May 3 12:06 Installtid -rw-r--r-- 1 rpm rpm 24576 May 3 12:06 Name -rw-r--r-- 1 rpm rpm 14688256 May 3 12:06 Packages -rw-r--r-- 1 rpm rpm 172032 May 3 12:06 Providename -rw-r--r-- 1 rpm rpm 53248 May 3 12:06 Provideversion -rw-r--r-- 1 rpm rpm 12288 Jul 8 2005 Pubkeys -rw-r--r-- 1 rpm rpm 106496 May 3 12:06 Requirename -rw-r--r-- 1 rpm rpm 69632 May 3 12:06 Requireversion -rw-r--r-- 1 rpm rpm 77824 May 3 12:06 Sha1header -rw-r--r-- 1 rpm rpm 40960 May 3 12:06 Sigmd5 -rw-r--r-- 1 rpm rpm 12288 May 3 12:06 Triggername -rw-r--r-- 1 root root 0 Apr 20 12:36 __db.000 -rw-r--r-- 1 root root 24576 Apr 20 04:02 __db.001 -rw-r--r-- 1 root root 1318912 Apr 20 04:02 __db.002 -rw-r--r-- 1 root root 450560 Apr 20 04:02 __db.003 # rpm --rebuilddb # ls -al /var/lib/rpm total 12816 drwx------ 2 rpm rpm 4096 May 3 12:14 . drwx--x--x 7 root root 4096 May 3 12:14 .. -rw-r--r-- 1 rpm rpm 1392640 May 3 12:06 Basenames -rw-r--r-- 1 rpm rpm 12288 May 3 12:06 Conflictname -rw-r--r-- 1 rpm rpm 323584 May 3 12:06 Dirnames -rw-r--r-- 1 rpm rpm 1306624 May 3 12:06 Filemd5s -rw-r--r-- 1 rpm rpm 12288 May 3 12:06 Group -rw-r--r-- 1 rpm rpm 12288 May 3 12:06 Installtid -rw-r--r-- 1 rpm rpm 12288 May 3 12:06 Name -rw-r--r-- 1 rpm rpm 10059776 May 3 12:06 Packages -rw-r--r-- 1 rpm rpm 90112 May 3 12:06 Providename -rw-r--r-- 1 rpm rpm 40960 May 3 12:06 Provideversion -rw-r--r-- 1 rpm rpm 12288 Jul 8 2005 Pubkeys -rw-r--r-- 1 rpm rpm 98304 May 3 12:06 Requirename -rw-r--r-- 1 rpm rpm 61440 May 3 12:06 Requireversion -rw-r--r-- 1 rpm rpm 24576 May 3 12:06 Sha1header -rw-r--r-- 1 rpm rpm 24576 May 3 12:06 Sigmd5 -rw-r--r-- 1 rpm rpm 12288 May 3 12:06 Triggername Actual results: The time stamps didn't change. Expected results: The files changed, so the time stamps should have changed.
Yep. Preserving mtime across --rebuilddb was added many years ago to solve exactly the opposite problem, that /var/lib/rpm/ files were being backed up because --rebuilddb was being performed, but there was no other change to the files themselves. No way to have it both ways. Since --rebuildb results in functionally identical data, the current behavior is best.