I currently work on a proprietary, closed-source software suite, which is distributed to customers as part of a larger package (including various hardware and services).
The software suite uses LGPL-3 libraries (as shared libraries, we haven't done any modifications to these ourselves), but also contains a large amount of proprietary, in-house developed code (also provided as shared libraries) that we want to protect. We have thus added protection to the software suite, requiring a USB dongle to be present - without it, the software doesn't run. This protection also protects against running any part of our software suite in a debugger.
The protection is added to our own shared libraries, but not to the LGPL-3 libraries. Since all parts of our software suite uses one or more of our own, protected shared libraries, no part of the software suite can be run in a debugger.
Reading through the LGPL-3 text though, section 4 on 'Combined Works' says (emphasis mine):
You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, (...)
Question is - I'm a bit unsure about if section 4 should be read as:
- We are not allowed to restrict the user from debugging/reverse engineering with respect to the LGPL-3 licensed shared libraries in our license terms for our software suite, but we can technically make such debugging difficult by applying the protection - as in, it's only the terms that cannot restrict debugging?
- We can neither restrict the user from debugging/reverse engineering in our license, nor technically, using the described software protection?
We provide the appropriate license notice, a written offer for providing the LGPL-3 shared library source code, and instructions for where the shared libraries are located, to allow users to manually provide another version - it's just the part about debugging that I'm hoping to get cleared up.