From Fedora Project Wiki

(Initial text)
 
(fix headings & typos)
Line 11: Line 11:
There are three ways to provide suppression specifications to Libabigail through abipkgdiff:
There are three ways to provide suppression specifications to Libabigail through abipkgdiff:


# Add a .abignore file to the RPMs
=== Add a .abignore file to the RPMs ===


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


# Pass suppression specifications to abipkgdiff using the <code>--suppressions</code> option
=== Pass suppression specifications to abipkgdiff using command a command line option ===


As explained in the [https://sourceware.org/libabigail/manual/abipkgdiff.html|documentation of abipkgdiff], using <code>--suppressions suppr-spec.abignore</code> option will make the tool consider the suppr-spec.abignore file as a suppression specification.
As explained in the [https://sourceware.org/libabigail/manual/abipkgdiff.html|documentation of abipkgdiff], using <code>--suppressions suppr-spec.abignore</code> option will make the tool consider the suppr-spec.abignore file as a suppression specification.


# Define default suppression specifications
=== Define default suppression specifications ===


Libabigail allows users to define default suppression specifications.  If the file <code>~/.abignore</code> 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.
Libabigail allows users to define default suppression specifications.  If the file <code>~/.abignore</code> 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.

Revision as of 15:04, 1 February 2018

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.