On Wed, Jul 3, 2013 at 9:40 PM, Mathieu Bridon <bochecha@fedoraproject.org> wrote:
On Wed, 2013-07-03 at 15:03 -0500, Richard Shaw wrote:
> If anyone is curious about it, I don't mind typing up the process I go
> through to make the checks. I think I've found a pretty good path of least
> resistance method :)

I've never used it, but I'd certainly be interested in reading that if
you ever write it up. :)

I use a directory, abicompare in the home of my build user followed by the library name then a version folder, i.e.:

~/abicompare/OpenImageIO/1.0.11 
and
~/abicompare/OpenImageIO/1.0.13

Then I use a little scripe I wrote[1] to unpack the main library and devel rpms into the version directory of each library because I can never remember how to do it manually:

# cd ~/abicompare/OpenImageIO/1.0.11
# rpmunpack /path/to/rpms
(repeat for second version)

# abi-compliance-cheker -l OpenImageIO -dump 1.0.11/
(repeat for second version, the version as a directory works nicely because it will assume that's the version of the library so no need to specify the version manually)

# abi-compliance-checker -l OpenImageIO -old /path/to/abidump-1.0.11 -new /path/to/abidump-1.0.13

Works like a charm as long as there's not any bad headers (like windows only headers) installed. If that happens I usually just have to rm the offending headers till I get a good dump.

Audrey,

How would this process change using abi-dump instead?

Thanks,
Richard
 
[1] rpmunpack contents:
#!/bin/bash

if [ ! -n "$1" ]
then
  echo "Unpacks an RPM into the current directory."
  echo ""
  echo "Usage: `basename $0` <package1> [package2]..."
fi

for file in $*; do
rpm2cpio $file | cpio -idmv
done