Wind River Support Network

HomeDefectsLIN5-9869
Fixed

LIN5-9869 : rpm unable to extract some info on non-x86 targets

Created: Mar 20, 2012    Updated: Dec 19, 2017
Resolved Date: Feb 17, 2014
Previous ID: LIN4-19051
Found In Version: 5.0
Fix Version: 5.0.1.12
Severity: Severe
Applicable for: Wind River Linux 5
Component/s: Userspace

Description

We have been looking for a way to more accurately verify the versions of files being installed on targets. It turns out that the LDAT source checksum is embedded in the rpm files and this can be extracted easily on the host and x86 targets. However, this fails on other architectures (PowerPC and MIPS tested here).

On the host you can enter something like this:

  $ ./host-cross/bin/rpm -qp export/RPMS/<arch>/<rpm file> \
        --queryformat="%{Ldatoverallsumsrc}\n"

and get the full source checksum like this:

6e6ac7401444af7313d9e578a29d8739

Steps to Reproduce

Take any standard 4.x target (I used 4.3 RCPL 1), you only need to specify board, rootfs and kernel to the configure line so something like this works:

  $ configure \
        --enable-board=wrs_sbc8548 \
        --enable-rootfs=glibc_std \
        --enable-kernel=standard

My tests were done with the exact config above, plus common_pc and qemu_mips32 targets. Once built, boot the target and run the following command:

  # rpm -q $(rpm -qa|grep 'bash-') --queryformat="%{Ldatoverallsumsrc}\n" any-of-a-rpm-package-of-4.3-project

On the common_pc target you will see the checksum displayed as per the host example, something like this:

6e6ac7401444af7313d9e578a29d8739

But run the same command on a non-x86 target and you get:

(none)

The behavior of rpm should be the same no matter the target.

Other Downloads


Live chat
Online