diff --git a/HACKING.md b/HACKING.md index 0c3728d..21e17a4 100644 --- a/HACKING.md +++ b/HACKING.md @@ -6,6 +6,27 @@ Although the library uses GLib internally, libfprint is designed to provide a completely neutral interface to its application users. So, the public APIs should never return GLib data types. +## License clarification + +Although this library's license could allow for shims that hook up into +proprietary blobs to add driver support for some unsupported devices, the +intent of the original authors, and of current maintainers of the library, +was for this license to allow _integration into_ proprietary stacks, not +_integration of_ proprietary code in the library. + +As such, no code to integrate proprietary drivers will be accepted in libfprint +upstream. Proprietary drivers would make it impossible to debug problems in +libfprint, as we wouldn't know what the proprietary driver does behind the +library's back. The closed source nature of drivers is usually used to hide +parts of the hardware setup, such as encryption keys, or protocols, in order +to protect the hardware's integrity. Unfortunately, this is only [security through +obscurity](https://en.wikipedia.org/wiki/Security_through_obscurity). + +We however encourage potential contributors to take advantage of libfprint's +source availability to create such shims to make it easier to reverse-engineer +proprietary drivers in order to create new free software drivers, to the extent +permitted by local laws. + ## Two-faced-ness Like any decent library, this one is designed to provide a stable and