6 comments

[ 3.9 ms ] story [ 23.3 ms ] thread
> There's a problem in the software development world, a practice that breaks down the free and open exchange of information. [...] I'm talking, of course, about copyleft licenses such as the GPL.

It takes some spectacular mental gymnastics to believe that requiring available source code hinders "open exchange of information".

> The GNU General Public License (GPL) is the most well-known example of a so-called "copyleft" license and it requires, among other things, that any project which utilizes GPL code that is released must, itself, be released under the GPL.

No, the GPL requires that anything dependent on GPL code must be under a compatible license. You're free to release code under the BSD or X11 or zlib or apache (etc...) license. The author is just repeating the same tired old propaganda that's been shoveled out by proprietary software vendors for years.

> I've never built an open-source project so large or complex that someone else, given a little time and elbow grease, couldn't work out a similar solution in a reasonable amount of time.

Most interesting opinions come from experience. If the author has never built anything significant, perhaps they ought to stop and consider where their opinions come from.

> So how do I get people to contribute? It isn't going to be by using the GPL...people will say "screw it" and build their own version of my library that they can use without worrying about overly cumbersome licenses. [...] No, I get people to contribute by giving it away as completely as possible (I use the MIT license, but also like the WTFPL) and asking them to contribute interesting stuff back.

This assumes that the same people contributing code would refuse to do so if the project was GPL-licensed, which to me seems extremely unlikely. I have released software under several licenses (including GPLv2, GPLv3, X11, and BSD-3); every single person who has begged me to change from the GPL to a proprietary-friendly license has never contributed a patch. Not a single bug fix, nor test case, nor even benchmark. Every contribution I've received, large or small, has been from people who are themselves working on open-source software.

> Copyleft licenses are simply not necessary for the vibrancy of the open-source community when it comes to simple libraries and, in fact, are more likely to hinder the community by encouraging the creation of multiple libraries to accomplish the same thing simply to avoid the requirements of a license like the GPL.

Does any HN reader have a case where a member of the "open-source community" was harmed, hindered, or even momentarily annoyed by having to use GPL'd software? Because I can't think of any case, nor any reason why one might occur.

> The Affero GPL is a variant of the GPL specifically designed to address software that runs on network servers (such as web applications). It requires that any server running the software (or a modified version thereof) must make available the full source code of any modifications.

This is also wrong. The AGPL is, like the GPL, a copyright license. It only applies if the remote application (or derived data) is itself being sent to a client. For example, if I let an AGPL'd httpd serve my files, I am under no obligation to do anything at all regarding its source code.

> Most interesting opinions come from experience. If the author has never built anything significant, perhaps they ought to stop and consider where their opinions come from.

The problem is that 90% of open-source libraries ARE small-to-medium size projects like the ones I've built. I didn't say I'm new to open source (I've released numerous successful projects) or even argue that for many big complex projects the GPL or other copyleft licenses are the wrong way to go. I'm simply stating that for projects like the ones I build the GPL is more likely to reduce user adoption than help build a contributing community.

> This assumes that the same people contributing code would refuse to do so if the project was GPL-licensed

Not at all. I can't think of a reason that someone would refuse to contribute to an open source project because it was under the GPL. However, my argument is that many people will never even start using a library to begin with if they don't want to put up with the licensing headaches entailed with GPL.

> This is also wrong. The AGPL is, like the GPL, a copyright license. It only applies if the remote application (or derived data) is itself being sent to a client.

I'm not extremely well versed in the AGPL, I'll concede. Are you saying that someone could build a fork of Diaspora (say Facebook forked it and rewrote their entire site on top of it), made it available to the public without releasing the source and it would be compliant with the AGPL? If so, I retract my statements about the AGPL, but I'm under a different impression.

> The problem is that 90% of open-source libraries ARE small-to-medium size projects like the ones I've built.

What's your definition of "small" and "medium"? I'd say a small project takes about a week to go from nothing to a working prototype, and medium might take a month or two.

I might be misreading, but "I completed the first version in a day or less" makes it sound like the releases are basically just a few small utilities.

> Are you saying that someone could build a fork of Diaspora (say Facebook forked it and rewrote their entire site on top of it), made it available to the public without releasing the source and it would be compliant with the AGPL?

I don't know anything about Diaspora, so I can't completely answer this question. However, assuming their protocol library is separate from the user interface, Facebook could indeed build support for Diaspora protocol into their site, using the AGPL'd Diaspora libraries, and not have to release source code.

The AGPL is IMO poorly considered. The authors wanted it to behave as you describe, eg, as a sort of super-EULA that covers how the code can be run. However, since it's a copyright license, it doesn't have any action mechanism. If I modify an AGPL'd server, then run it on a publicly accessible host, I'm not doing anything that requires copyright permission and thus am not subject to the code's copyright license.

Note that some cases (such as JavaScript-based applications) will require copyright permission for me to host, and thus, be covered by the AGPL. However -- and this is a funny part -- they'd also be covered by the GPL! In other words, anything the AGPL can do, the GPL can also, and the GPL doesn't have aspirations of EULA-ship.

"No, the GPL requires that anything dependent on GPL code must be under a compatible license. You're free to release code under the BSD or X11 or zlib or apache (etc...) license. The author is just repeating the same tired old propaganda that's been shoveled out by proprietary software vendors for years."

This is misleading. I'm not sure if this is intentional or due to your zealotry. If I take GPLd code, make changes, and try to release it under a BSD license, I am going against the license and will be taken to court. This is because the BSD license allows you to close the source and only release the binaries.

Look at the guy from thesis. He made a Wordpress template, which used small parts of Wordpress to run, and the wordpress creators laid claim to all of his code. Most people don't realize that it wasn't in the name of the community. It was so they could make more money with their hosting services.

"Most interesting opinions come from experience. If the author has never built anything significant, perhaps they ought to stop and consider where their opinions come from"

You don't need to have experience with building software to understand the implications of the GPL license.

"This is also wrong. The AGPL is, like the GPL, a copyright license. It only applies if the remote application (or derived data) is itself being sent to a client. For example, if I let an AGPL'd httpd serve my files, I am under no obligation to do anything at all regarding its source code."

Here is a link to the AGPL license: http://www.gnu.org/licenses/agpl.html

I took an excerpt:

"Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph."

This was specifically designed to prevent people from using some open source apps as web services without giving back the source. In your example, if you had an AGPL web server, you would be required to give the source code of that server to anyone that connected to it.

The GPL license isn't freedom to me. It's a license used by the zealots of the community to push an agenda. Many people of the community love when companies accidentally use licensed code because it means they will be forced to give out their sources to the community. A goal that Stallman has even said himself that he hopes to achieve one day (all software being open source). Using the word "free" to describe software is also another deliberate move to confuse.

If it was truly about freedom, it wouldn't happen by force. This is why I only release software under the BSD license and only use BSD software. It's very simple. You can use software in any way as long as you give credit back to the original author.

> This is misleading. I'm not sure if this is intentional or due to your zealotry. If I take GPLd code, make changes, and try to release it under a BSD license, I am going against the license and will be taken to court.

It's not misleading, though you seem to be misreading it. Dependent code (eg, an application depending on a GPL'd library) does not have to be under the GPL. It's completely fine to release a BSD-licensed application or library that depends on (for example) readline. The GPL only applies when you're distributing readline itself, such as in a compiled binary.

> Look at the guy from thesis. He made a Wordpress template, which used small parts of Wordpress to run, and the wordpress creators laid claim to all of his code.

The GPL doesn't allow them to "[lay] claim to all of his code", and they didn't. They laid claim to their own code, which he had copy-and-pasted into his theme. He had the option of either abiding by the licensing terms, or stopping his infringement.

If his theme hadn't been based on pirated Wordpress code, he would have been able to distribute it under any license he liked.

> This was specifically designed to prevent people from using some open source apps as web services without giving back the source. In your example, if you had an AGPL web server, you would be required to give the source code of that server to anyone that connected to it.

According to what law?

The GPL and AGPL are copyright licenses. That means they apply whenever their covered work is being distributed. Since I am not distributing the hypothetical AGPL'd web server, I do not require copyright permission, and the AGPL does not apply.

It doesn't matter what the AGPL claims. It could claim that anybody running the software must give the author a million dollars. There's no way the author could ever collect, because copyright doesn't cover running the software.

> Many people of the community love when companies accidentally use licensed code because it means they will be forced to give out their sources to the community.

Bullshit. It's not possible to force release of source code, and even if it were, that's not the point of the GPL. The GPL exists to give Free software a competitive advantage over proprietary software, by making it easier to develop and maintain. You have fallen victim to propaganda, and I suggest you educate yourself.

Dear jmillikin Let me make a helpful suggestion that is purely intended to be for your benefit (and if you work for a company, it would significantly help them too): contact an attorney who is familiar with Open Source legalities to get clarity on the obligations associated with distributing derivative works that use GPL. I just checked to make sure that you don't work in my company, 'cuz if you did I'd be very motivated to meet with you ASAP and help you understand some of the issues that GPL poses.

I don't mean to be condescending in my tone. Seriously. But Open Source licensing confuses many people -- and many form their opinions based on blogs (which are probably not very admissible in court), and not on the license text. Many people want and wish that the licenses work in the way they think it ought to. But that's not the way the legal system works.

Much like lawyers can't grok why a misplaced semicolon can cause a computer program to crash, developers don't seem to understand how contract language is interpreted by the legal system. In both cases though, the "interpreter" is very literal and does not heed to the authors intent as much as we might hope.