I install rpm-4.0.1 on a host running 4.0,. then, I go back to 4.0 then, I try going to 4.0.1 again - and I get a core-dump from 4.0 ... [root@beast /root]# cd /users/src/install/ [root@beast install]# rpm.daimi -U /users/src/install/RPMS/i386-none-Linux/rpm-4.0.010118-1.rpm /users/src/install/RPMS/noarch-none-noos/rpm-shr-4.0.010118-1.rpm [root@beast install]# rpm.daimi -U /users/src/install/RPMS/i386-none-Linux/rpm-4.0-3.rpm /users/src/install/RPMS/noarch-none-noos/rpm-shr-4.0-3.rpm --oldpackage [root@beast install]# rpm.daimi -U /users/src/install/RPMS/i386-none-Linux/rpm-4.0.010118-1.rpm /users/src/install/RPMS/noarch-none-noos/rpm-shr-4.0.010118-1.rpm Segmentation fault (core dumped)
Yup. What's happening is that rpm-4.0.[12] does not sort tags in the database. When you go back to rpm-4.0, a "must have" tag (i.e. there's no attempt to check that a pointer is NULL) causes a segfault. rpm-4.0.2 is both the cause and the solution, otherwise the end of headerLoad() needs modification so that tags are sorted when loading: h->sorted = 1;