- MCP server with stdio transport for local use - Search episodes, transcripts, hosts, and series - 4,511 episodes with metadata and transcripts - Data loader with in-memory JSON storage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
102 lines
25 KiB
Plaintext
102 lines
25 KiB
Plaintext
Episode: 270
|
|
Title: HPR0270: Licensing Part 2 - AGPL and LGPL
|
|
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr0270/hpr0270.mp3
|
|
Transcribed: 2025-10-07 15:09:04
|
|
|
|
---
|
|
|
|
Good day, this is Dan Washko, dialing in another hacker public radio, and today I'm going
|
|
to continue my series on software licensing. Last episode, which was the first episode, we talked about the GNU GPL, which is the GNU General Public License, and just to give a quick rehash of the GNU GPL of what it means.
|
|
It is a free software license, and by free we mean free as in liberty, free as in not price, not beer, but free as in freedom, liberal, whatever.
|
|
Anyway, basically there are four tenants provided by the GNU GPL, that is the right to run the program, the right you have to run the program for any purposes, that's the right zero, freedom zero, freedom one is the right to distribute the unmodified source code, so you can distribute the program, give it away to everybody else, freedom three is the right or the freedom to view the source code, which requires that you have access to the source code.
|
|
And freedom four provides you the right to modify the source code. Now, the basic restriction, or if you can call it a restriction, the basic requirement of the GNU GPL software license under the GNU GPL, is that in order to comply with those four freedoms, that any modifications that you make, and then the software that you have created from those modifications.
|
|
If you distribute it, you must make the provide access to the modifications to the modified source code and document clearly where you made your modifications in conjunction with that, if you were to add on or write software that makes use of code, GPL code, you are required to release your software under a license.
|
|
Well, specifically the GNU GPL would be best, but under a license that doesn't provide any restrictions violating the rights of the GNU GPL.
|
|
So that in a nutshell is GNU GPL. Now, the two licenses that we're going to talk about today, working conjunction with the GNU GPL, and that's the afero GPL, also known as AGPL, and the lesser GNU public license, LGPL.
|
|
Now, we're going to start with a afero GPL, because one of the criticisms levied against the GNU GPL is how it does not target such things as software as a service, cloud computing, so to speak, as a big word, and application or services that companies like Google and Yahoo who provide that are, quote, in the cloud, like Gmail,
|
|
Google Docs, and other applications. Twitter is a great example. We'll probably stick with the Twitter example about how those applications are built on a largely a lot on free software or open source software and open standards, making use of stuff like Java, PHP, Python, and languages that are by and large free in nature.
|
|
But do not provide access to the source code. If you listen to Bradley Coons, episode three of, or it's actually episode two, because it started at zero, episode two of the software Freedom Law Center has an awesome speech on these issues and the afero GPL and looking forward.
|
|
Also, the link I provided to Evan Muglin's O'Reilly talk about, you know, freedom in the future, looking ahead in the future, the afero GPL tries to provide a better bridge towards the GPL and the software and cloud computing.
|
|
They make the analogy that the afero GPL provides that bridge between the restrictive more copy left GPL, which would be more of the less restrictive in this case, like the BSD license, and the afero GPL.
|
|
So in this case, what we're seeing is the actual GPL is more permissive than the afero GPL in these instances, because the GPL does as one of its attendants to allow you, you know, one of the freedoms is to run the software as you see fit.
|
|
And it is also the ability to run the software for somebody else. So on Gmail, you are essentially when you sign up for Gmail and use it, or when you sign up for Twitter, let's stick with the Twitter example, you are allowing Twitter to run that software on their server and provide you the service.
|
|
You're allowing them to run it for you, essentially is what it comes down to, you're giving them the permission. So under the attendance of the GPL, because they are running the software for you and not providing you the software, so to speak, they're not required to release to you or anybody else, the source code, they're not distributing software to you, they are providing a service to you by running the software for you.
|
|
Now, the afero GPL, they want to, so, quote, close the loophole in the GPL that permits making a modified version of letting the public access it to a server without releasing a source code to the public.
|
|
When you're running a software as a service, that was also called the ASP loophole, that the software as a service and not actually the software yourself, you're running the software as a service, they're not required on the GPL to provide you with the source code.
|
|
So the afero GPL, on the other hand, says it requires the operator of a network server to provide the source code of the modified version running there to the users of that server.
|
|
Therefore, public use of a modified version on a publicly accessible server gives the public access to the source code of the modified version.
|
|
If you're going to use a afero GPL, a GPL software and provide that software as a service to people, you must also provide to them the source code, make it available, and if you modify it just like under the GPL, you must also make available to the users of your service, the modifications to the source code.
|
|
If you modify the source code, you must document the source where you have modified indicating your modifications, your work may be released under the GPL, and if it's interactive user interfaces must display appropriate legal notices unless the program did not do so already.
|
|
The idea behind the GPL is to close the application service provider loophole in the GPL.
|
|
Again, for example, Twitter makes use of GPL software to provide the service, because the GPL allows you to run the software for another person, you are not contractually obligated to release the source code or the modifications you make.
|
|
You are providing a service, not the source code. AGPL's related software require Twitter to release the source code to the users of their service, both the original and the modified versions.
|
|
Now, this would be akin to, you know, Lacanica. It is a Twitter-like service, a micro blogging service server that is released under the, I believe, under the AGPL, and the source code is freely available to you.
|
|
So, in essence, if you want to get a little deeper into the license of the Feral GPL, section 13 of the AGPL and the GPL allow for the combining of these licenses, this is where it all takes place.
|
|
And as what it says, notwithstanding any other provision of this license, you have permission to link or combine any covered work with a work license under version three of the GNU general public license into a single combined work, and to convey the resulting work, the terms of this license will continue to apply to the part which is covered work, but the work with which it is combined will remain governed by version three of the GNU general public license.
|
|
So, essentially, what that means is section 13 of the AGPL specifically says, you know, provides the allowance to combine AGPL software and just general GNU GPL software in a way that only the sections covered by the AGPL are required to be released under the AGPL.
|
|
And if you modify those sections, they too must be released under the AGPL, but the remainder may be still released under the GPL.
|
|
That is the both the GNU GPL and the AGPL provide allowances in their licenses so that they can work together.
|
|
So, only one of the few cases where a more restrictive license may apply, and in this case a GPL software, you cannot be more restrictive on GPL software, so the AGPL allows for allowances of GPL software under the AGPL.
|
|
Okay, so back again to the Twitter example and the whole heart of this and looking a little towards the future. Again, what the AGPL is trying to kind of provide the freedoms and the rights of users of software as a service, quote, cloud computing, the ability to maintain access to the source, to not be locked in, so to speak,
|
|
and to, as Bradley Kuhn had put it in his speech, the concern that when we moved from software in the data center to software on the computer, the whole reason the GPL came about, which I talked about before, was in the past hardware manufacturers weren't as interested in the software.
|
|
Software was a means to sell hardware, and software became a little more prominent, and software licensing came along, and everything started to get locked up, and then we had a installment, you know, creating the GNU foundation, so you had a situation where software went from being free to being locked.
|
|
Now we have acquired the freedoms again under GNU software and the free software licenses, and as we move them to the internet and networking computing, and what we call cloud computing, once again the concern is what we're seeing, is a lockdown again of the software and accessibility to the source, where you're accessing it in more of a thin, client manner, where you have a client that you access the actual software from a service provider,
|
|
which you don't have the rights, you don't have the ability to look at the code, you don't have the ability to take your services elsewhere, because you are locked in, you know, you use Gmail, you are locked into the Gmail community, if you want to go somewhere else, you can take your, you can get your email out of Gmail in some cases, and you can get your address book, and you can move somewhere else, but you lose access to the quote Gmail community.
|
|
For instance, again, Twitter, you can stay on Twitter, you can use Twitter, but you are locked in the Twitter, all right, if you want to move to a different service, it's really, you know, you can, but you lose access to that Twitter community, people on Twitter, and generally can't get access to you, and your access to Twitter is limited unless you have a Twitter account.
|
|
So you move to Identica, or Lacanica service, or you could use Identica, but the thing about Identica, unlike Twitter, and Lacanica is, I run on a Lacanica instance of Server, we do for TLLTS, and Linux Outlaws runs one, and other people run one, and then there's the official Identica Server servers, which is Lacanica, and the difference between that and Twitter is it's more distributed.
|
|
We run it, we control our server, but at the same time, the Linux Outlaws guys, they control their own, and they run their community, but we are able to subscribe to stuff on the Linux Outlaws server, as they are able to subscribe to stuff on our server, and we could subscribe to stuff on the Identica, and it's all shared and distributed.
|
|
It's getting closer now, what they're ultimately working for towards, in addition to accessible access to the source code, is access to your data, because equally important as a source code is your data.
|
|
Right now, in a lot of this cloud computing services, your data is locked up in the service provider, you do not have access to your data, in some respects, it's not necessarily under your control.
|
|
While you do maintain in Gmail, you do have your email, you do have your address book, and Twitter, you have your post there, which you have access to, to fully remove that information, and take it somewhere else, you don't necessarily have that ability, and still in a lot of the apparel GPL based applications.
|
|
Aleconica, some of that accessibility has not yet been implemented, but that's kind of one of the goals that they're looking to do, that in the future, as we move forward, it's just not about access to the source code, but also to your data, and to be able to take your data, and go elsewhere with it, if you so choose, and have a similar community and similar functionality, and not be locked into a single vendor.
|
|
And thus, lose your freedoms. Just a general history of the apparel GPL, a guy by the name of Henry Pool, who was the founder of a Pharaoh Incorporated Web Server Business, his desire in building his own web services was he wanted to close the ASP loophole, you know, the software as a service, not requiring a release of the source code.
|
|
With the help of Richard Stallman and Bradley Amcun and Evan Moglin, they released version one of the apparel GPL, and it was considered for inclusion in GPL version three, but it was left as a separate license again.
|
|
One of the rights that the GPL affords you is to run a software, even if that means software, allowing someone else to run the software for you, and they did not want to restrict that freedom in the GPL version three, so that's what the apparel GPL is for.
|
|
Now, that aside, let's move on to a little more in some respects, confusing license, and that is the LGPL or the lesser general public license.
|
|
Now, the LGPL, the purpose of that is it allows for the conveyance of work under sections three and four of this license of the lesser GPL license to not be bound by section three of the GNU GPL.
|
|
So what is section three of the GNU GPL? Well, it says when you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is affected by exercising rights under this license with respect to the covered work.
|
|
And you disclaim any intention to limit operation or modification of the work as a means of enforcing against the works users, your third party's legal rights to forbid circumvention of technological measures.
|
|
In a nutshell, what we're talking about here is with the lesser GPL, the sections three and four of the lesser GPL are not bound by section three of the GNU GPL.
|
|
And that means the GPL essentially says, you know, if you are going to use this software or any conveyed work that you produce using, you know, linking to the GNU GPL software, you must provide them with the modifications that you do the software, the source code of the software that you are using, and you cannot restrict them in any.
|
|
The way that violates the GPL. Now, there are under sections three and four of the lesser GPL. This, this kind of eases that restrictiveness and assurance of strong copy left of the GPL.
|
|
It attempts to be a compromise between the strong copy left of the GPL and permissive licenses such as the BSD license. And that is a Wikipedia quote there that the lesser GPL is is a compromise between strong copy left GPL and permissive licenses such as the BSD license.
|
|
So applications written linking to the lesser GPL software can be under any license provided the software is not a derivative work. So a derivative work is essentially a work based upon one or more pre-existing works.
|
|
An application that dynamically links to the library is not considered a derivative work. Also static linking is allowed if either the source code or linkable object files are provided.
|
|
Applications not written under the GPL can link to LGPL libraries under certain conditions, which we're going to discuss in a minute here. So essentially what this allows is it allows for the use of GPL libraries or the ability for lesser GPL libraries under the LGPL to be used in some ways in proprietary applications.
|
|
And we'll get a little more into the concepts behind that and wire when you should use the lesser GPL and when you should according to the new foundation.
|
|
Anyway, this is where it's going to start to get a little bit on the dry side if you definitely consider this dry already because a lot of legal ease here and according to the license. But under the LGPL provided that you make, okay, you can convey modified versions of the software under the GPL provided that you make the best effort to reproduce the functionality or operation of the application.
|
|
Even if it does not produce disassernable function or data or under the GPL with none of the additional permissions of this license applicable.
|
|
Essentially, if you take LGPL software and you modify it, you must release it again under the LGPL and make the best effort to reproduce the functionality or operation of the application.
|
|
Even if it doesn't produce any disassernable function or data, but or you have to release it under the GPL.
|
|
So you can't take LGPL library, modify it and release it under a more restrictive license. It's either got to be GPL or LGPL.
|
|
The object code containing material from the headers and conveying the object code, the object code form form of the application may incorporate material from a header file that is part of this license.
|
|
You may incorporate object code under the license of your choice provided that it is incorporated. The incorporated material is not limited to numeric patterns, data structures, accessors, small macros, inline functions and templates fewer than 10 lines in length.
|
|
Again, what that means is that if you want to essentially what that means is if you are in some way linking to the library and making use of the object code from the library headers and your object must be incorporated material is not limited to numeric patterns, data structure layouts, accessors, small macros, inline functions and templates.
|
|
You must do one of the following. Give prominent notice with each copy of the object code that the library is used in it and that the library and this use are covered by the lesser GPL and accompany the object code with a copy of the GNU GPL and this license document.
|
|
You may convey a combined work under the 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 if you also do each of the following.
|
|
You get prominent notice with each copy of the combined work that the library is used in it and that the library and this use are covered by this license accompany the combined work with a copy of the GNU GPL and this license document the lesser GPL for a combined work that displays copyright notices during execution include the copyright notice for the library among these notices as well as a reference directing the user to the copies of the GNU GPL and its license document and do one of the following.
|
|
Convey the minimal corresponding source under the terms of this license and the corresponding application code in a form suitable for and under the terms that permit the user to recombine relink the application with a modified version of the linked version to reproduce to produce a modified combined work in the manner specified by section six of the GNU GPL for conveyance.
|
|
Convey and corresponding source or use a suitable shared library mechanism for linking with the library a suitable mechanism is one that uses a runtime copy of the library already present on the user's computer system and will operate on the user's computer system will operate properly with a modified version of the library that is interface compatible with the linked version or provide installation information but only if you would otherwise be required to provide such information.
|
|
Under section six of the GNU GPL and only to the extent that such information is necessary to install and execute a modified version of the combined work produced by recombining or relinking the application with a modified version of the linked version out that is a lot of information and amountful.
|
|
Let's just forge on through here combine libraries you may place library facilities that are a work based on the library side by side in a single library together with other library facilities that are not applications and are not covered by this license and convey such a combined library under terms of your choice if you do both of the following a company to combine library with a copy of the same work based on the library uncombined with any other library facilities.
|
|
Convade under the terms of this license and give prominent notice when the combined library that part of it is work based on the library and explaining where to find the company on a combined form of the work.
|
|
Now I understand why I think the LGPL and a lot of people say the LGPL is a little more confusing than the GNU GPL and even the Afero GPL because it's a little more complicated to weave through that when you look at the GPL essentially you have the four freedoms and that you cannot restrict those four freedoms with the lesser GPL essentially you have the same thing at the heart of it.
|
|
The recognition that under the GPL there are those four freedoms and that the lesser GPL then says GPL software is great but we also have to exist in some respects in a world where you know there's either less permissive licenses like the BSD or proprietary licenses and how in some ways can we facilitate working together.
|
|
And promotion of free software libraries under the lesser GPL provide a mechanism for getting software from a free system into a less and a more permissive system or in a more proprietary system so that they can spread the use of free software outward across all areas.
|
|
Again what you're looking at here is at the heart of it software released under the lesser GPL allows you to provide that software to be used or linked in some way to proprietary software.
|
|
Where provided that the software that is being the way that is being used is not a derivative work and that it makes use of the library it can make use of the output but that software that makes use of it that's linked to it in some way is not required to be released itself under the GPL.
|
|
So when using when you making use of LGPL libraries in your system you are not required to release your software so to speak under the GPL license provided again that it is a derivative work.
|
|
If you really are interested in using LGPL libraries or producing LGPL software really study the license and make sure you fully understand it it is a little complicated with some respect make sure you understand what is whether or not your software would be considered a derivative work or not.
|
|
Probably the best place to start is of course the GNU.org page under the licenses get familiar with the GPL get familiar with the lesser GPL and for a nice little summary go over and read the Wikipedia articles or entries for the lesser GPL which kind of gives an overview or summary of it but for the intricacies and everything you are going to be have to read the LGPL and get with it that way.
|
|
Finally the GNU.org foundation provides some ideas of why you shouldn't use the LGPL when you should because they say that you shouldn't use the LGPL because it allows for the inclusion of the library and proprietary software.
|
|
The whole point of free software is to break out the lock of proprietary software. So while they recognize that in some cases it may be advantageous to provide libraries for use in proprietary systems they say that in all and best interest you shouldn't do that.
|
|
When it is advantageous to use LGPL libraries is when a proprietary library already contains the same functionality as a GPL library. Examples that they had given to this in the GPL on the GNU.
|
|
The GNU.org site was the C library. There are various versions of the C library, the GNU.C. Compiler C library and we'll say Microsoft C library. There's a lot of similarities between the libraries and the functions there and there would be a great instance of why the C library, the GNU.C libraries are released under the lesser GPL because they already exist.
|
|
The functionality exists both in the free world and in the proprietary world. An example of when you wouldn't want to release your library under the GPL that they gave was the read line libraries and software that the functionality of read line isn't necessarily replicated in proprietary library.
|
|
So you wouldn't want to, because according to the GNU foundation you don't want to give proprietary software advantages over free software because the whole idea is to convey freedom and the freedoms under software and to avoid proprietary locking.
|
|
Well, that was a lot to get through and a lot to digest. I'm going to publish the notes from this on the website there, the HPR entry. I also recommend that you listen to Ebblin Moglands interview that I posted last time and also if you're already aren't listening to the software freedom law show.
|
|
Pick it up, it's great for understanding free software and the freedoms underneath and also episode two or three however you want to count it personally.
|
|
The speech that he gave on cloud computing and the Pharaoh GPL in there really pulls out some of the stuff that I was talking about and looking towards the future and both of those speeches look towards the future where we're going with regards to people's personal freedom.
|
|
I think you keep on listening to hacker public radio contribute where and when you can always looking for new people and you have a great day.
|
|
Thank you for listening to hacker public radio. HPR is sponsored by carrow.net so head on over to caro.net for all your hosting needs.
|