Package: libc6-xen Version: 2.3.6.ds1-10 Severity: normal Tags: patch (Technically a policy violation, but the result seems relatively harmless, therefore I left the Severity at normal.)
The postinst parses /etc/ld.so.hwcappkgs and if there is already a line for libc6-xen, it sets $isrecorded (line 30). Only if this is not set in line 40 another line for libc6-xen is added to the file. The problem is that line 30 is in a sub-shell so the setting of $isrecorded does not propagate to line 40 (outer shell). The attached patch fixes that.
diff -u /var/lib/dpkg/info/libc6-xen.postinst /tmp/libc6-xen.postinst --- /var/lib/dpkg/info/libc6-xen.postinst 2007-02-02 14:37:56.000000000 +0100 +++ /tmp/libc6-xen.postinst 2007-02-02 14:37:57.000000000 +0100 @@ -36,10 +36,10 @@ fi fi echo "$pkg $ver" >> /etc/ld.so.hwcappkgs.tmp - done) < /etc/ld.so.hwcappkgs + done if [ "$isrecorded" != yes ]; then echo "$opt $curver" >> /etc/ld.so.hwcappkgs.tmp - fi + fi) < /etc/ld.so.hwcappkgs mv /etc/ld.so.hwcappkgs.tmp /etc/ld.so.hwcappkgs else # libc6 did not create ld.so.hwcappkgs correctly or ld.so.hwcappkgs