Hi Philip, On Sat, Jun 15 2024, Philip McGrath wrote:
> Therefore, "the entire work, as a whole," would need to be under the > GPL. Thank you. That's also the conclusion I came to from several different angles. For now, the work remains licensed under the GPL. My work is Guile-PAM. [1] It's kind of a big step, because one day Guile-PAM could potentially strive to replace both Linux-PAM, which is licensed under MIT/Expat and OpenPAM, which is licensed under BSD-3. I effectively burden operating system distributors in that all programs using Guile-PAM must be "compatible" with GPL, or rather be linkable with a library released under the GPL. [2] > if you really want to, you can still license part of the work that you > write under the LGPL That's what I did for now. As a concession, the actual PAM module (written in C) is currently available under the LGPL. [3] That's the same license as libguile, which it calls. I'm not sure it makes much of a difference for users and distributors, however. Maybe both parts of my project should be released under the GPL. Any further comment or advice would be welcome. > Instead of writing a C program that uses libguile.so, you can write a > Guile program that accesses C-implemented functionality through the > Foreign Function Interface. If necessary, you can write new C code > designed to be accessed via the FFI; you can even write Foreign > Extensions that use the Guile C API. Code structured as a Guile > program that uses the FFI is often more flexible than a C program that > embeds Guile. Usually it also requires writing less new C code, which > is good for all the reasons we'd rather write Scheme than C. I totally agree, but unfortunately PAM expects a shared object. > If it would be useful to anyone, I'd be happy to write more about the > ways in which applying the LGPL to Racket seemed problematic. I looked unsuccessfully for information online and would like to read more about it, if you have time. Thanks! Kind regards Felix [1] https://codeberg.org/lechner/guile-pam [2] https://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL [3] https://codeberg.org/lechner/libpam-guile-c