I have a commercial project which connects to a database (e.g. PostgreSQL) all licences are agreed at this moment. What should I do if I alter the database server with GPL (version 3 to be concrete) library?

(the library, for example, affects only the database - improves performance or security of the server)

  • Is your project's executable currently linked to any of the postgres libraries?
    – MadHatter
    Sep 30, 2019 at 13:57
  • It uses JDBC/JPA libraries on the client side, which already passed requirements for the commercial use of course.
    – rook
    Sep 30, 2019 at 14:14
  • 1
    So are you distributing only the client, all of these clients then interacting with your central DB, or are you distributing Postgres as well?
    – MadHatter
    Oct 1, 2019 at 6:31
  • If you distribute GPL software you have to distribute the source of your version. This is the same whether you modify it or not.
    – Brandin
    Oct 1, 2019 at 7:49
  • @madhatter PostgreSQL is also distributed (to ease installation process - all binaries in the place)
    – rook
    Oct 1, 2019 at 15:54

1 Answer 1


Though IANAL/IANYL, this seems a bit of a thorny one to me.

You currently distribute your proprietary software ("your offering") alongside stock Postgres, with which your software interacts through JDBC. You are happy that this is all permissible via the current licensing arrangements, though you don't say why (I don't doubt you, but it makes a difference; see below). You intend to modify the Postgres DB by linking in a GPLv3 library, whose authorship is unclear, and you wonder about the implications.

Postgres is currently distributed under a permissive (non-copyleft) open source licence. Currently, therefore, you acquire no particular source distribution obligations of any kind by virtue of either your distribution of, or your offering's interaction with, Postgres.

If you link a GPLv3 library into Postgres and distribute the resulting binary, the binary will need to be under GPLv3 (GPLv3 s6, s5c). You have now acquired the obligation to distribute the entire source of Postgres, also under GPLv3, according to the terms of GPLv3 s6. Furthermore, if you were relying on the non-copyleft licence of Postgres to avoid any obligation to distribute the source of your offering (rather than any arms-length relationship between your offering and Postgres introduced by the use of the standard interface that JDBC provides) you have now acquired an obligation to licence your offering under GPLv3 also.

So at the very least you now have a giant ongoing source distribution obligation which you did not previously have, and this may extend to the code of your offering. I advise you not to do this.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.