If you want to become or are a poppler contributor, this is a README for you, keep reading!

Licensing
---------
Only send patches to poppler if you agree to license (or relicense) them under
GPLv2 and later (or something more permissive that can be "upgraded" to GPLv2
and later). If you do not agree to this license, please explain the problem / bug
and how you would solve it in words instead of code.

By default all patches attached to the gitlab instance or sent to the mailing list
will be assumed to agree with the licensing expressed here.

Channels of contact
-------------------
Poppler has three main channels of contact:
 * The poppler mailing list http://lists.freedesktop.org/mailman/listinfo/poppler
 * The poppler gitlab instance https://gitlab.freedesktop.org/poppler/poppler/
 * The #poppler channel at the IRC freenode network
Do not hesitate to drop by talk to people there.

And keep hacking on poppler!
