this post was submitted on 21 Mar 2024
306 points (93.2% liked)
Programming
17443 readers
172 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
There are two concepts at play here: open-source and free software. An early example of open-source is AT&T Research UNIX, which was made source-available (for a few) to universities for research purposes, who could recompile the code and use the binaries for that purpose. Here, the use of the software is restricted by the license terms.
On the free software side, as a reimplementation if the Unix software utilities -- ie all the programs like tar, ps, sh -- GNU coreutils is GPL licensed, meaning any use of the compiled binaries is allowed, but there are restrictions on the distribution, of both source and binaries. As it turns out, GPL is both free and open-source (FOSS); there are fewer major examples of free but non-open source, but WinRAR and nVidia drivers on Linux would count.
Specifically, GPL and other copyleft licenses require that if you distribute the binary, you must make the source available under the same terms. If you've made no changes, then this is as simple as linking to the public source code repo. If you did add or remove code, you must release those alongside the binaries. If you simply use the binaries internally, you don't need to release anything at all, and can still use them for any internal purpose.
From the background above, free software has always been understood to mean the freedom to use software, not necessarily distribute it. GPL complies with that definition for using the software, but also enforced a self-perpetuating distribution requirement. Unlike plain ol free software, under GPL, you must redistribute source if you distribute the software for use (aka binaries), and you must make that source also GPL.
Under this explanation, the AGPL wouldnt qualify as an open source license, since you must distribute the source if you provide a modified version as a network service.
I'm not quite sure I follow. The AGPL mirrors the GPL, with an extra proviso that accessing the software via the network constitutes "use" if the binary, not "distribution" of the binary. Under GPL, the mere use of a binary does not require the availability of source.
Example: a student uses a GNU/Linux computer at their university computer lab. She runs the unmodified "tar" command from GNU Coreutils, which is GPL licensed. She is not entitled to a copy of the source from the university, because execution is a "use" of the binary on an already-provisioned machine, not a "distribution" of the binary.
Example: a student is given a software assignment from her professor, along with a .7z file containing old versions of "tar" that contain bugs, all GPL licensed. This is a distribution -- as in, a copy -- of the binary, so she is entitled to a copy or link to the source from her professor.
The first example helps explain what the AGPL adds, in the context of network use. Consider what happens if the university actually modified the "tar" command installed on their machines. They still would not have to distribute the modified source to the students, because students only execute ("use") the binaries. But with AGPL, use of modified software obliges source distribution.
Phrased another way, AGPL has every guarantee that GPL does, but adds another obligation for modified use via a network. Unmodified use does not require source distribution, under both GPL and AGPL.