I have taken the Apache httpd 2.2.3 SRPM and extracted the .spec file. From this I've replaced 2.2.3 with 2.2.14 and removed the Serial tag from the specfile (as rpmbuild complained about the Serial tag - I presume this has been deprecated). Downloaded the httpd tarball, and built (rpmbuild) with no errors (to my surprise).
Upon running rpm --upgrade <newrpms> I received an error that my new RPMs were not newer versions even though the Version tag is clearly later. I set the Release, however, to 1.
I've tried looking through Google to find out how rpm determines what the newest version is (no luck). From the rpm -qi commands I have the following for the default 2.2.3 install:
Name : httpd Relocations: (not relocatable) Version : 2.2.3 Vendor: CentOS Release : 31.el5.centos Build Date: Thu 03 Sep 2009 10:43:06 PM BST Install Date: Mon 26 Oct 2009 10:27:12 AM GMT Build Host: builder16.centos.org Group : System Environment/Daemons Source RPM: httpd-2.2.3-31.el5.centos.src.rpm Size : 3254910 License: Apache Software License Signature : DSA/SHA1, Sun 20 Sep 2009 04:53:42 AM BST, Key ID a8a447dce8562897 URL : http://httpd.apache.org/ Summary : Apache HTTP Server
From my 2.2.14 build I have:
Name : httpd Relocations: (not relocatable) Version : 2.2.14 Vendor: Apache Software Foundation Release : 1 Build Date: Mon 16 Nov 2009 11:40:41 AM GMT Install Date: Mon 16 Nov 2009 11:44:38 AM GMT Build Host: build01.local Group : System Environment/Daemons Source RPM: httpd-2.2.14-1.src.rpm Size : 5101686 License: Apache License, Version 2.0 Signature : (none) URL : http://httpd.apache.org/ Summary : Apache HTTP Server
So the question is: how does rpm determine which is the most recent RPM for upgrade purposes?