From Fedora Project Wiki

Revision as of 15:19, 1 February 2018 by Dodji (talk | contribs) (Fix links)

Introduction

[[1]] based tools emit reports about ABI artifacts (types, functions, variables, symbols, etc ...) that have changed. Some users might want some reports about some changed artifacts to be suppressed. This is where the filtering capabilities of Libabigail can be helpful.

Suppression specifications

Users tell Libabigail (and its tools) what ABI artifact change report to suppress by providing a file which contains suppression directives. That file is called a suppression specification. The exact syntax of that file is define in the [documentation]

Let's focus on the case of the [[2]] tool which aims at comparing the ABIs of binaries embedded in RPMs.

There are three ways to provide suppression specifications to Libabigail through abipkgdiff:

Add a .abignore file to the RPMs

If the RPM package contains a file which name ends with the extension .abignore then the tool considers it as a suppression specification.

Pass suppression specifications to abipkgdiff using command a command line option

As explained in the [of abipkgdiff], using --suppressions suppr-spec.abignore option will make the tool consider the suppr-spec.abignore file as a suppression specification.

Define default suppression specifications

Libabigail allows users to define default suppression specifications. If the file ~/.abignore is present, it's considered by all Libabigail tools as a "default user a suppression specification". That specification will apply to all the Libabigail tool invocations made the current user.

Note that by default, there is also a system-wide default suppression specification that is installed at $libdir/libabigail/libabigail-default.abignore and that is applied to all libabigail tools invocations on the system.

Note also that when when several suppression specification files are provided to the Libabigail system, the suppression directives coming from the different files are combined.