As of its 2.0 version, as agreed by the committers listed below, the
Libabigail project license was changed from LGPL version 3 or later to
Apache License 2.0 with LLVM exception.

The LGPLv3+ continues to apply to prior versions of the software.

Here is the list of the committers who have agreed to the change:

Benjamin Kosnik <b.dekosnik@gmail.com>
Ben Woodard <woodard@redhat.com>
Chenxiong Qi <cqi@redhat.com>
Dodji Seketeli <dodji@redhat.com>
Giuliano Procida <gprocida@google.com>
Jan Engelhardt <jengelh@inai.de>
Jessica Yu <jeyu@kernel.org>
Jonathan Wakely <jwakely@redhat.com>
Mark Wielaard <mark@klomp.org>
Matthias Klose <doko@debian.org>
Matthias Maennich <maennich@google.com>
Ondrej Oprala <ondrej.oprala@gmail.com>
Roland McGrath <roland@hack.frob.com>
Sinny Kumari <skumari@redhat.com>
Slava Barinov <v.barinov@samsung.com>

Please note that concerning the contributions of people working at
Google, I (Dodji Seketeli) was forwarded the following from Matthias
Maennich:

    That is in response to all contributors from Google from the department
    that is able to clarify open source licensing issues:

    "Please let the maintainer know that Google LLC formally consents to
    relicensing Googlers' contributions to libabigail to the LGPLv3 / Apache
    2 with LLVM Exception license.

    If the maintainer would like to direct one of the relicensing requests
    to us directly, we'll be happy to respond in the affirmative."
