For #guix
If i create my own configuration of Guix System, where I add options for my own computer, accounts and whatnot, and maybe add a patch or two to get a program to work, then give that computer to a friend to use, would I then be legally required to license this config as GPLv3? Another case would be if i give this access over the network instead.
Seeing as im importing Guix into a programming language, instead of modifying an /etc/ file like in Debian, is there a cause for concern?
Guile is interpreted so the answer to the more general question - "do I have to make my config public" - is NO.
https://www.gnu.org/licenses/gpl-faq.en.html#IfInterpreterIsGPL
@futurile @soupglasses Guix is a library
"However, when the interpreter is extended to provide “bindings” to other facilities (often, but not necessarily, libraries), the interpreted program is effectively linked to the facilities it uses through these bindings. So if these facilities are released under the GPL, the interpreted program that uses them must be released in a GPL-compatible way. "
The original question was about whether users MUST make config "Free Software"
Guile says:
"Scheme level code written to be run by Guile (but not derived from Guile itself) is not restricted in any way, and may be published on any terms. We encourage authors to publish on Free terms."
https://www.gnu.org/software/guile/manual/html_node/Guile-License.html
Seems clear to me. There is no **requirement** on users to make their #guix config "Free Software" - users can choose what they want - freedom of choice.
@futurile @soupglasses I would disagree, a guix system configuration is using the GPL licensed definitions of the Guix: operating-system, packages, services. It is even more of a derived work when it contains patched packages, as described in the original post.
Of course a guile only config would not be subject to the GPL but here we are using Guix as a library, so GPL applies.
@baleine @futurile @soupglasses As a further datapoint to this, the current consensus is that Guix's GPL propagates to all channels: https://lists.gnu.org/archive/html/help-guix/2023-06/msg00049.html . AFAIK, the same argument applies to all package.scm, manifest.scm, and sys/homeconfig.scm files.
Given that all these files are meant to be declarative input files authored by users, I honestly felt like this could be an oversight. But apparently not
@Parnikkapore @baleine @futurile One could take the idea that configuration is inherently not copyrightable as it's not "an original work".
Equivalent to the idea that a CLI argument list to a GPL program isn't a derived work. But doing it though Guile makes that pretty hard to bargain for.
I think it's pretty deathly to the project to state that my passwords and installed apps need to be GPL licensed too.
@soupglasses @Parnikkapore @futurile You don't have to license them if you keep them to yourself.
@baleine I don't think your point of view is correct. The situation of GNU Guix configuration is the very same as GNU Emacs configuration. Maybe I've missed it but GNU Emacs configuration is subject to nothing.
For instance, Dooms Emacs (which is an "config" of GNU Emacs) is licensed as "MIT". Following your view, this would be illegal, since one is allowed to produce non-free based on Doom Emacs source code.
https://github.com/doomemacs/doomemacs/blob/7c89699e3fa3c3a06092c6bdb7f88fe1d33192b5/LICENSE
@zimoun Some MIT licenses are GNU GPL compatible, some are not. Doom uses the Expat license, which is compatible with the GNU GPL. Nothing illegal with that.
Making a program that is distributed and uses GNU Emacs that uses a non-free software license would most probably be a violation of the GNU GPL, since the work would probably be a derivate of GNU emacs (e.g., there are plenty of macros coming into play). The same argument can be done for GNU Guix.
@amszmidt Expat license allows me to derive non-free software. Therefore, if I cannot because my derived work based on Doom needs to be GPL-compliant because of Emacs, then it means I am not allowed to enjoy the rights that the Expat license grants me. It means it's a legal hole.
It implies that any Emacs configuration must be more than just GPL-compliant.
@zimoun And if you rip out parts of Doom that do not "derive" from GNU Emacs, you can license them under a non-free license.
You're perfectly free to enjoy the rights the Expat license grants you, which are the same as any free software license. There is no legal holes here.
I'm not sure what I said was different, Expat is compatible with the GNU GPL.
@amszmidt Maybe we agree.
My point's you cannot have all the Doom configuration under Expat because of the parts that rely on Emacs facilities. Therefore, these parts need to be more than GPL-compatible.
I think the case of Emacs or Guix adds an extra indirection about what means GPL-compatible.
@zimoun Of course you can have all the Doom configuration under the Expat?! The two licenses are entirely compatible!
@amszmidt I politely disagree. And except you have a simlar case in Court, we cannot know and only speculate.
@zimoun Then you disagree with the legal advice given for literally all FLOSS projects. And already current legal precedents. That is what compatible means. This is actual advice given from lawyers.
@amszmidt I think you are missing the point about the specificity of Emacs or Guix configuration.
Obviously, I'm mot discussing how mixing source code with different compatible licenses.
@zimoun Uhm .. that is exactly what you where doing, Doom and Emacs. Which have difference licenses, and where Doom is a deviate work of GNU Emacs. Exactly the same if you make something based/derivate of Guix, since Guix is GPL licensed, the configurations have to be licensed under a compatible license if they are to be distributed (since that is only when the GNU GPL kicks in).
@amszmidt I was always thinking that configuration language licenses can't affect platform:
Yaml and Ansible, k8s
JSON and Packer
Toml and Rust
Ini and Systems
Maybe I wrong
@sharlatan your not wrong. But there is a difference in how Emacs (specifically) works in this case where you use a normal programming language and not a tiny DSL like Yaml or similar.
@amszmidt Just to point RMS’s opinion:
« As for the more general question, we think that a program that uses Emacs facilities needs to be GPL-covered »
@zimoun Yes, GPL covered here means "GPL Compatible" -- nobody was disputing this fact. The individual parts can be licensed under a different license, and if you can manage to pick them out you can still use the original license for those parts. That is what compatible means.
@amszmidt Interesting, because Debian people and ILISP (source code using GNU Emacs facilities) did not understood "GPL-covered" your way. They relicensed ILISP under GPL. Anyway.
Bah this won't be resolved with 500 characters.
Thanks for explaining.
@zimoun From what I see, Debian et al did understand the same way. ILISP was under incompatible license, and distributed. It was then relicensed under a compatible license, which just happens to be the same as GNU Emacs.
@zimoun Specifically,
> o No fees or compensation are charged for use, copies, or
> access to this software. You may charge a nominal
> distribution fee for the physical act of transferring a
> copy, but you may not charge for the program itself.
Which makes it GPL incompatible (since it adds additional terms that do not exist). And thus an issue if it is a derivate work on GNU Emacs.
@futurile @baleine Still very curious of the case where one "improves Guix" by changing some standard APIs to do something different. Like patching a package, or adding more features to a generated service file.
As it sounds like it would go under the similar problem of "modifying the kernel's APIs", or otherwise changing the Guix "API".
How that is handled legally is what makes me curious. As we are linking to a GPL "library", without any linking exceptions.
@futurile @baleine For company use, i can see LGPLv3 work well, where package updates from Guix and feature updates of Guix should be up-streamed, or licensed in its own sub-folder/project as GPLv3.
What i don't think will work is having all of the sensitive information about server IPs, server config, firewall config, and how all the servers interoperate, as well as any possible proprietary app they might run on top is very feasible.
@soupglasses @futurile You are free to keep your config (or any modified gpl) inside your company and share it between collegues
@baleine @soupglasses @futurile IANAL, but AFAIK one impact of the config being GPL is that NDAs cannot be used on it, aka any employee with access to the config could legally leak it to the public.
@Parnikkapore @soupglasses @futurile Great, NDAs suck.