Light Table is now open source
chris-granger.com
chris-granger.com
Happy hacking, Light Table devs.
If I had known it would of actually gone this route, I would of being pitching in bigtime for the kickstarter.
So you don't consider a permissive license to be friendly with the free software community, or is that a typo?
It all depends on pespective. GPL has more freedom for users, BSD for developers.
Both are valid licenses that do different things. Calling one restrictive just shows that you view this from one side only.
It is objectively and unequivocally less restrictive than the GPL. All it restricts is your ability to claim it is your own code. The GPL adds several more restrictions. Thus it is more restrictive. Arguing that you think those restrictions serve a purpose does not mean you can claim they are not restrictions. Lame straw man crap like pretending anyone ever said the GPL wasn't "valid" doesn't belong in a reasoned conversation.
Neither of those licenses allows you to claim some code is "your own". Copyright still applies.
> The GPL adds several more restrictions.
I can easily rephrase that as GPL adds more freedoms. Your restriction is somebody else's freedom. A matter of perspective.
> does not mean you can claim they are not restrictions
I can claim anything I like, and I provide a reasoning.
> Lame straw man crap like pretending anyone ever said the GPL wasn't "valid" doesn't belong in a reasoned conversation.
Except that I never said that. Oh the irony.
This is a completely irrelevant statement. What was your intended purpose for making it?
>I can easily rephrase that as GPL adds more freedoms
You could, but it would what is known as "lying". I could easily say that the sky is green too, but that doesn't mean it is.
>Your restriction is somebody else's freedom
No, restrictions are restrictions. Words have meanings, and you don't get to just pretend they mean the opposite of what they actually mean. The GPL imposes additional restrictions. You like those restrictions because of their consequences. That is fine. But that does not make them cease to be restrictions.
>I can claim anything I like
Sure, but you can't expect anyone to treat you like a rational adult if you make obviously false claims and say "I can do whatever I want!" as a rationale for it.
Copyright impose restrictions, and GPL gives permission where you do not have any. If you get sued for copyright infringement, its your job to waive the GPL as your permission to distribute. The legal permission granted in the GPL is what protect your distribution, and without it, anything requiring copyright permission is illegal.
Words have meanings indeed, and the word restrictions is thus wrong, plain and simple. The GPL provide permission under a set of requirements. This is true for any software license, including BSD/MIT.
So the obviously false claims are yours here, Im sorry to tell you. If you don't want to be granted permission under the license, all you need to do is stop infringing the copyright of the author. That and possible pay compensation for any current act of infringement.
No it is not.
>Please try understand copyright law when making statements about it.
I understand it quite well. You are simply confused. The GPL gives you permission to do things that you couldn't do otherwise due to copyright law. But it gives you that permission under several restrictions. MIT/BSD/ISC license also give you permission to do things that you couldn't do otherwise, but does so under fewer restrictions. This is not complex or difficult to understand.
I was simply going to ignore your aggressive behavior, but now that others chimed in...
> MIT/BSD/ISC license also give you permission to do things that you couldn't do otherwise, but does so under fewer restrictions.
Somebody takes a BSD program, extends it, and distributes binaries. This restricts my ability to inspect, improve, or extend the code. Restrictions don't have to be written into a license. You ignore those implicit restrictions and their consequences, while complaining about explicit restrictions.
Anyway, I'm pretty sure you're not going to agree and just add another aggressive or insulting reply.
I see simple objective questions in black and white because they are. Is 1+1 2? Yes. There is no grey area. The answer is yes. If you say it is 3, then you are in fact wrong.
>Somebody takes a BSD program, extends it, and distributes binaries. This restricts my ability to inspect, improve, or extend the code.
No it does not. See, this is precisely what I mean. You are simply making an objectively false statement. Here is some BSD licensed code: http://openssh.org/ I challenge you: restrict my ability to inspect, improve or extend it. Hundreds of closed source pieces of software use that code. Yet it is still there, still BSD licensed, my ability to inspect, improve and extend has not been magically removed.
>Anyway, I'm pretty sure you're not going to agree and just add another aggressive or insulting reply.
You might want to consider some introspection. You are screaming 1+1=3 at me and calling me "aggressive and insulting" for correcting you.
For a restriction to happen, you got to have permission in the first place. Since you do not have any permission, a copyright license can not in any form add a restriction. It is not possible under the English language.
Permission can be granted under conditions, also called requirements. A sale for example is to exchange an asset under the condition that the consumer can pay. Its not valid English to say that its an exchange of an asset under the restriction that the consumer can pay.
Your insistence on using incorrect English only paint a picture of someone with a agenda. Words has meaning, and you are trying to ignore it. Please stop.
No I am not. http://www.thefreedictionary.com/restriction
You are trying to be pedantic, but you are simply incorrect. The GPL imposes restrictions as part of the license conditions. Obviously you are not subject to those restrictions if you do not accept the license, and obviously you also don't get the permissions that go with those restrictions either. Nobody is claiming otherwise. The exact nonsense you are doing is precisely why people hate GPL nuts. You are deliberately dishonest and try to hide behind misguided pedantry.
The only way GPL can limit you, is if what you had previous is more. You might feel self-restricted by accepting a license, in the same way that my income will be restricted if I buy a new car every week. The car however is not a restriction, nor is the trade a restriction. Its my action of purchasing beyond my credit limit that is the restriction.
What people hate is irrational people that you represent here that refuses to actually use correct language in favor of pushing your agenda onto people. Calling you nut might be a bit crude, but what else is there to say.
I'm sure such a framework could be constructed, I just wouldn't call it cohesive.
Supporting BSD and Apache licenses as compatible with free software is something done in addition to supporting the GPL.
The term "open source", however was coined Eric Raymond and the Open Source Initiative. Nobody before OSI ever said "open source" to refer to software. The term was coined during a brainstorming session prior to the release of Mozilla. There is an unrelated, older occurrence of the term in "open source intelligence" which is about how to spy on people using publicly available sources, but nothing about software nor all the other things people mean with "open source" nowadays.
As a marketing term, open source has met its goal admirably: it is a far more popular term than "free software", being used to describe many things and situations other than software, and many of them almost completely unrelated to anything that OSI originally intended.
http://openbsd.org/lyrics.html
However, as you well know, all BSDs really hate the GPL.
To stereotype:
GPL == best for users
BSD == best for developersYou know CodeCombat recently open sourced their game? They're basically the first gamedev company in the history of gamedev to do that -- a non-indie company who open sourced their current-gen tech. It's a good idea, and I hope more companies follow. So, times are changing, but in the meantime your strict adherence to "GPL license == good guys; MIT license == bad guys" is detrimental to pretty much an entire community of programmers. (Programmers with zero options; they're not going to ragequit the gamedev industry just because engines are closed source.)
Straw man.
> who don't want to give back anything
Straw man.
There's nothing under GPL/LGPL I need or particularly want, but I do benefit from BSD-based stuff if only because I can't statically link LGPL stuff and I find the GPL unethical. Of course I'll give back where I change stuff, because I'm not an asshole. But GPL/LGPL ignores reality in too many ways to be viable; I personally like the CDDL quite a bit but nobody uses it.
Nope. Gamedevs are covered under both non-disclosure and non-compete agreements. There's a lot of red tape to cut through to release something as open source. Even if you've written it at home on your own time, companies have made a big deal about employees open-sourcing code before.
This is doubly true in the finance industry.
Without MIT licensing, there would be an extra hurdle of "GPL? We cannot under any circumstances be associated with GPL." It's absolutely silly, but absolutely true. I'm speaking as someone with firsthand, I've-been-there-in-person-and-dealt-with-this experience.
Also, by releasing it as GPL, no other gamedevs can use it. We gamedevs like to release code that other gamedevs can use.
Personally I choose a license relevant for the kind of software and what it will be used for. When that includes software I want people to be able to use in commercial software I use MIT. I'm still releasing hard work for free, I don't have your admiration, but people get to use it.
Facebook uses the PHP license for HHVM which is a very significant OSS contribution, and has very similar terms to MIT.
Other gamedevs absolutely can use it. The only thing they can't do is include it in a shipping product. Light Table appears to be an IDE, and there is no problem using a GPL IDE for writing a commercial product any more than there is a problem compiling it with GCC.
0. https://github.com/id-Software 1. http://en.whttp://en.wikipedia.org/wiki/File:Quake_-_family_...
It's still a really cool thing to do, but neither Id (or any other game company I'm aware of, anywhere, ever), has released their game as GPL while they were still making significant amounts of money from it (which in practice means within the first couple of months, for almost all games).
Poor you. The game industry _chooses_ not to go near GPL'd code because they want to sell proprietary software. Counteracting the existence of companies doing proprietary software is the very reason why the free software movement was started in the first place.
Yes, the free software movement is supposed to be detrimental to the developers of proprietary software and has no incentive to cater to their needs. Do you think we want to make Windows or iOS a more attractive platform? Or to build components to be used to improve proprietary engines instead of helping free ones because hey, the proprietary devs may send a bugfix our way? No.
MIT-license users are not bad guys -- I have both GPL and MIT code out there myself -- but choosing a non-copyleft license because it helps proprietary developers is not a good reason. I chose MIT to interoperate with other free software; if it wasn't for that I would have chosen the GPL or the LGPL.
> hurting our entire industry
I think the entire software industry is _helped_ if I drive it towards free software. I don't care how many billions the next Call of Duty game will make. I care if local developers in my country can get a consulting gig because the system my government uses is open source and so they have a shot at fixing its bugs instead of having my government sign a multimillion dollar contract with a major foreign company and get locked-in to it.
> (Programmers with zero options; they're not going to ragequit the gamedev industry just because engines are closed source.)
Weak argument. Back then would you say "system programmers are not going to ragequit the industry just because operating systems are closed source". But instead, they wrote open operating systems. Follow their example. Write a free engine. That's the entire point.
Back then would you say "system programmers are not going to ragequit the industry just because operating systems are closed source". But instead, they wrote open operating systems. Follow their example. Write a free engine. That's the entire point.
The gamedev industry isn't like other industries. You can't spend a decade writing an engine. You therefore need talent in order to write a competitive non-toy engine. This means you must work in the game industry for a period of time to get that talent. You also need to be brought up steeped in the sort of culture that makes you mentally inclined to open source your years of hard work rather than keeping it closed and proprietary. That's why it's a mistake to villify the MIT license -- you're cutting off an entire generation of programmers from open source culture. Specifically, the generation of programmers who want to be game developers. The reason is because they are going to be working in the gamedev industry, and hence the MIT license is going to be their only option to participate in open source culture. Villifying them will drive them away, and future talent will write proprietary closed-source engines as a result rather than free and open source ones.
In summary, villifying the MIT license is directly counterproductive to your philosophical goal of seeing less proprietary software.
In fact, proprietary engines that are less than a decade old and have exceeded their commercial usefulness are often open sourced.
In fact, I would say the video game industry is somewhat unique in the case of software dev, as it is not generally a "life improver". Video games are not tools that would improve the world if everyone had free access to them. In fact, most big games being proprietary (and not free) is probably a blessing for the productivity of the entire human race.
I personally don't want most of my multiplayer games to be open source (you used the example of Call of Duty), because when the client is open source it is much easier to cheat (and build your own "cheat client")
Is this really true? I always thought it was to counteract the abuses of companies doing proprietary software.
MIT-license users are not bad guys -- I have both GPL and MIT code out there myself -- but choosing a non-copyleft license because it helps proprietary developers is not a good reason.
Proprietary developers might disagree with you. There is a lot of evil done by proprietary software companies. Especially...
...have a shot at fixing its bugs instead of having my government sign a multimillion dollar contract with a major...
...situations like that, but not everyone who does proprietary software is automatically evil. In my philosophy, evil comes about through non-consensuality. It's providing choice that stops evil and it's suppressing choice that encourages it. The emergence of open source software, then, is a good. The elimination of all proprietary would be an evil.
The fact that some code is licensed with the GPL is in no way detrimental to anybody. If the person who had written the GPL code had instead made the code completely closed source, "game programmers" would have been in a situation that would can only be the same, or worse. They would still have to write their own code, and wouldn't have even the choice of building upon the free software and making it free to everyone else.
Open source developers are under no obligation to do your work for you, or to make your life easier. That some choose to do so is fantastic. To expect everyone to give away their code with no form of compensation is silly (even if that compensation is simply paying it forward).
And there's always the third option... pay someone for an alternate license to the code. Do you really dig Lighttable, and want to incorporate it in your closed source videogame? Pay the developer enough money that he'll license it to you without any of the GPL clauses.
I also think the MIT license is great, or at the very least that people who use it shouldn't be vilified. As I mentioned elsewhere, vilifying the MIT license is counterproductive to our mutual goal of seeing less proprietary software. https://news.ycombinator.com/item?id=7026368
developers == usersGPL is perfectly fine. It's a good match for something like LightTable. However companies that practice dual-licensing and that require copyright assignment for contributions do not have to play by the same rules as the third-parties that are contributing and I think this is poisonous.
It's a good business strategy of course, however, how many times have you heard of such a company that does profit sharing with the third-parties that contributed code? It's also bad for the company ... if some third-party releases some really good plugin as GPL, without doing copyright assignment, then it means the plugin in question will never be a part of the official distribution, which hurts all parties.
This is why I prefer the open core model, in which anybody can build proprietary things on top. For example IntelliJ IDEA Community Edition is licensed with the Apache 2.0 license. Apache 2.0 is IMHO the best open-source license. IntelliJ IDEA Ultimate edition includes all kinds of smarts and JetBrains is doing well - it obviously doesn't hurt them when third-parties release plugins such as this one: http://cursiveclojure.com/ - it actually helps them, because they don't have the resources to build plugins for everything under the sun.
BTW - I'm happy that LightTable was released as open-source. I would have preferred another license, preferably one that is compatible with EPL (that's pervasive in Clojure's ecosystem), but can't complain, it's their right to do as they please.
AFAIK the money made is shared amongst x264 key contributors, but I have no idea if any money trickles down to less prolific contributors.
> if some third-party releases some really good plugin as GPL, without doing copyright assignment, then it means the plugin in question will never be a part of the official distribution,
Why not? I don't see why a third-party plugin should be excluded from the official open source distribution? Obviously they can't offer a proprietary licence for it alongside their own code, but it could still be part of the official release.
>This is why I prefer the open core model, in which anybody can build proprietary things on top.
Hmm... actually I prefer that if someone should make money off proprietary use of open source code, then it should be the authors of that open source code, so personally I prefer the dual-licence mechanism that the x264 devs use.
Anyone can use x264 in full open source fashion under GPL, if someone wants to use their work for proprietary means, the x264 developers are compensated for allowing this.
That community effect can make BSD/MIT/etc. better for users.
The idea that GPL is "best for users" seems to rest on at least one two assumptions, both of which are flawed:
1. No one considers licenses when they select free software, so that someone who would use a piece of software under a permissive license will use it under a GPL-style license (discounting the fact that there are organizations that simply won't touch software with GPL-style terms, that would use it with BSD-style terms),
2. People always and only give back when legally required to do so.
In the world where I live there is also a different kind of people
The assumptions you cite are not the primary reason GPL software is considered "best for users" (by some). The second point is not even relevant for users but developers.
GPL software is guaranteed to stay free. That's what's relevant for the user.
(Personally I like both kinds of licenses, so I'm not arguing for/against either)
No, the point wasn't "only permissively licensed software can have communities" (which would be ridiculous), it was "the fact that many organizations are less receptive to the GPL can result in larger potential contributing communities for permissively-licensed projects".
> GPL software is guaranteed to stay free.
GPL software is no more guaranteed to stay free than permissively licensed software is.
The closest thing to that that is a real difference between GPL and permissively-licensed software is that, assuming no radical change on the part of the FSF (or, alternatively, assuming the "or any later version" option isn't used), GPL software is guarantted to not have legal non-free derivative works not separately licensed by the copyright owner. Which is relevant to the degree of control that the copyright owner can exercise -- and why it is popular for commercial Open Core schemes -- but not particularly relevant, at least in a positive sense, for users.
"Can" result, perhaps, but there seems to be little real word data behind that claim. I've heard this a few times, but I've never seen any numbers to back it up. As a counter example: The Linux kernel seems to be the most commercially backed OSS project of all. If what you say would be true, why would the major players not flock to the BSD:s instead?
> not particularly relevant, at least in a positive sense, for users.
What you say about the GPL is only true for projects where copyright is assigned away from the contributor. And a lot of developers as well as users tend to shy away from those for just the same reasons you state.
The wording of the claim is particularly relevant. You seemed to acknowledge it, but then ignored it. The claim doesn't require data; it's using a priori reasoning. In particular, it assumes that the GPL is one potential road block preventing certain entities from using software. If a roadblock is removed, then that can result in a larger community. (N.B. Removing a road block, in and of itself, doesn't imply that more people will come.)
This is specifically one practical reason why I use permissive licenses. I want to maximize the number of people using my software. If I use the GPL, due to its infectious nature, people tell me they can't use it because their employer won't allow it. This conflicts with my goal of maximizing the number of people who can use my software.
> As a counter example: The Linux kernel seems to be the most commercially backed OSS project of all. If what you say would be true, why would the major players not flock to the BSD:s instead?
That's not a counter example. The claim in question here does not imply that GPL projects cannot have large communities.
Yes it is. Given the counter example one might just as well argue that the GPL can attract more commercial contributors than a permissively licensed project, or even that such licensing is a "roadblock" for some contributors.
You really find this sort of "a priori reasoning" meaningful?
A counter example demonstrates a claim as false by assuming it is true, and the demonstrating that, in reality, it is false.
Your counter example does no such thing. It merely shows that a GPL project can be popular. In particular, your example does not denote any relationship between GPL and permissively licensed projects.
> You really find this sort of "a priori reasoning" meaningful?
Yes. Re-read my last comment to you. I explicitly described how it was meaningful. I'd rather remove roadblocks to using my software than add them.
But on the other hand a permissive licence could just as well be a road block preventing 'certain entities' from contributing code, and if it had a copyleft licence it could result in a larger amount of contributions.
In short, in lack of any data to back either of these hypothesises means they are just that, hypothesises.
There are successful collaborative projects using both types of licences, andydroid pointed out Linux which is GPL licenced and also the largest collaboratively developed software project in the world, so certainly GPL is not a serious problem when it comes to getting contributions or use (Linux is practically everywhere).
Looking at the larger open source landscape, it's my impression that copyleft is predominantly used in larger, finished application type projects (of which Light Table is a perfect example), while permissive licencing dominates in component/framework style code.
At the end of the day it's up to the developer to choose the licence for _their_ code, both copyleft and permissive licencing fulfills a need, else they would not be so popular amongst developers.
>This is specifically one practical reason why I use permissive licenses. I want to maximize the number of people using my software.
Nothing wrong with that, but there's also nothing wrong with wanting to licence your code so that end users of your code and it's derivatives are given rights (which include the source).
A permissive license, by definition, cannot prevent an entity from contributing to it. I've never heard anyone tell me they won't use a permissively licensed project for any reason related to its licensing.
> In short, in lack of any data to back either of these hypothesises means they are just that, hypothesises.
If you still think this claim requires data, then I'm afraid you're missing the point. The claim is using a priori reasoning, and makes an assumption about removing road blocks from using open source projects. The claim does not make any quantitative claims relating permissively licensed projects and GPL projects.
In any case, making a quantitative claim here is nearly impossible. There are too many confounding factors.
> Nothing wrong with that, but there's also nothing wrong with wanting to licence your code so that end users of your code and it's derivatives are given rights (which include the source).
I don't understand your point here. I didn't say there was anything wrong with that. I merely stated that the claim made by dragonwriter actually factors into my decision to use permissive licenses. i.e., Anecdotally, the GPL is enough of a barrier that I perceive a permissive license as better if I want to maximize the number of people using my software.
Nor can a copyleft licence 'prevent' an entity from contributing it. It is a choice, just as someone could choose to only contribute to permissive projects they could also choose to only contribute to copyleft licenced projects, so I fail to see what point you are trying to make here.
>I've never heard anyone tell me they won't use a permissively licensed project for any reason related to its licensing.
Now you bring up 'use' which is different from 'contributing'. And given that copyleft requires the source code to be open, it can't be used with proprietary projects (which of course permissively licenced code can), but that is by design as copyleft exist to give end users the rights which proprietary software typically removes.
>and makes an assumption about removing road blocks from using open source projects.
And I pointed out the assumption is flawed since he (dragonwriter) talked about 'contribution'.
Saying that a lot of 'entities' are happy to _use_ permissively licenced code is not the same as them _contributing_ code under permissive licences.
> I merely stated that the claim made by dragonwriter actually factors into my decision to use permissive licenses.
And I merely pointed out that there are other factors than 'maximising code use' which developers may consider when licencing their code.
Oh, and I'd like to take the opportunity to thank you for Wingo, really like it!
Pure and simple: someone works for an employer whose policy is not to use GPL'd code. Therefore, they cannot use any code I publish under the GPL license.
No such policy exists (that I've heard of) for permissively licensed code.
> Now you bring up 'use' which is different from 'contributing'.
You're the one who said "contributing"! :-) I initially said "use" several comments ago: "I want to maximize the number of people using my software."
> Oh, and I'd like to take the opportunity to thank you for Wingo, really like it!
Thanks :-) Come hang out on IRC/FreeNode at `#wingo`. (Although it's kind of dead.)
Ah, yes you did, however the claim you initially referenced talked about contributing code, not using.
>Thanks :-) Come hang out on IRC/FreeNode at `#wingo`. (Although it's kind of dead.)
Maybe I will dust off irssi and drop by :)
There's a reason I use "can" instead of "does". Its very hard to quantify the effects of licensing since you can't easily isolate it from other contributing factors.
> As a counter example: The Linux kernel seems to be the most commercially backed OSS project of all. If what you say would be true, why would the major players not flock to the BSD:s instead?
That's a very good point. OTOH, while there are widely used GPL RDBMS, which ones have the non-first-party commercial backing of SQLite or Postgres?
> What you say about the GPL is only true for projects where copyright is assigned away from the contributor.
From the point of view of a downstream developer, its more of a concern with assignment, true. In any case, its not a positive benefit for users.
The build instructions were added in the order that they were tested by volunteers. I wouldn't read too much into it.
Fwiw, I wrote and tested the rest of the readme on linux.
[1] http://ebb.org/bkuhn/blog/2009/10/16/open-core-shareware.htm...
I do have a question about the licensing -- will you be requiring copyright on code contributions to be assigned to you?
If not, you can't then sell those contributions outside of the terms of GPLv3, because you have to own them before you can relicense them, or obtain the owner's permission.
(If so, it's a little distasteful for the people contributing to know that their code is being used to make money for other people and they won't receive any of it.)
You can always fork the project, put your own branding on it and make money off your contributions still :) It's just not possible to make money under their brand, or in a closed source product.
> You can always fork the project, put your own branding on it and make money off your contributions still :) It's just not possible to make money under their brand.
This doesn't sound right. You'd be forbidden from selling non-GPLv3 access to any of the existing code, even under a new brand, and any plugins that you created would either be GPLv3, or not distributable at all.
You can definitely sell GPLv3 software. As long as the source is available and you abide by the terms of the licence.
Yes sorry, I realised my omission and edited my post just before you commented. You are right that you wouldn't be able to sell your code under a different license than GPLv3, whilst the person you signed the copyright to would.
> But in a few years, we could imagine that the majority of contributions come donated for free from volunteers. Would it still be fair then?
I would hope that by that time, all significant contributions would be in the form of plugins, which are not required to be GPLv3 as far as I'm aware, or even require a sign away of copyright. The question would then be, do you want to sell your plugin through their system, or distribute it on your own.
Chris said in the thread that plugins would be "infected" by GPLv3: https://groups.google.com/forum/#!msg/light-table-discussion...
Yes, because running a project, mentoring, moderation and releasing in an orderly fashion is far more work then most people expect.
Perhaps they are not aware of this and it matters to them; this makes it useful information.
If they don't care (or care but have other, more compelling reasons, for their choices) then fine. But at least they can make a more informed decision.
If someone contributes code and licenses their copyright to LightTable, knowing full well that the product they support and invested time in may acquire some funds because of it, gosh, I just don't see how that's a bad thing. And if they believe that their patch is significant enough to demand reimbursement, that they would like to charge LightTable for a copyright license, they are free to negotiate such a trade. And if LightTable actually makes money from relicensing, they'll probably be happy to pay for such things.
I do, however, hope that they ask for copyright licenses rather than copyright assignment. Copyright assignment turns the author into a person powerless to use their own work. See harmonyagreements.org.
In practical terms open source is the same as free software. I think just about any licence that is approved by the Open Source Initative is also approved by the Free Software Foundation.
It's Free software but not free software.
The EPL 1.0 is not compatible with the GPL, and a work created by combining a work licensed under the GPL with a work licensed under the EPL cannot be lawfully distributed.
I haven't looked, but Light Table is using some EPL software for sure, starting with ClojureScript itself.
"The EPL and the GPL are not compatible in any combination where the result would be considered either: (a) a "derivative work" (which Eclipse interprets consistent with the definition of that term in the U.S. Copyright Act ) or (b) a work "based on" the GPL code, as that phrase is used in the GPLv2, GPLv3 or the GPL FAQ as applicable. Further, you may not combine EPL and GPL code in any scenario where source code under those licenses are both the same source code module.
Based upon the position of the Free Software Foundation, you may not combine EPL and GPL code in any scenario where linking exists between code made available under those licenses. The above applies to both GPL version 2 and GPL version 3."
The reason I ask is because I think the opposite is the case: what you call "permissive licenses" give me freedom to do whatever I want, while GPL, especially v3, is very restrictive as to what it allows me to do.
Please, I do not want to discuss the merits of each approach, I would just like to understand the point of view, especially the seemingly conflicting uses of the words "free" and "permissive".
If someone develops something amazing based off of LightTable with LightTable on GPL, aren’t they required to release that something on GPL as well? I believe under MIT derivative products can be created for commercial purposes (please correct me if I’m wrong!).
[1] explains the difference. Why is a BSD license not free but the GPL is? Because a BSD type license allows you to take software and turn it into non-free software. IOW, you could take BSD software, base your new software on that software and not release your changes or your source code.
I'm not imparting morality here, just trying to explain to you the difference between BSD and GPL and why some consider BSD to be not free.
[1] http://understandinglimited.com/2007/12/13/rms-on-bsd-vs-gpl...
No, it doesn't. A BSD-type license doesn't let a third party make the software anything but BSD-licensed software. It does let them distribute derivatives under different licenses, but that doesn't change anything about the original.
The benefits of GPL when it comes to derivatives is that all the code will remain open, so if someone forks project A into B and make changes, project A can incorporate those changes or maybe everyone jumps onto project B, and perhaps someone will later combine project A and project B into forked project C, etc.
Either way the source code of all derivatives remain open.
With permissive licencing there is the option of proprietary forks, which means that nothing ensures that any changes made in a proprietary derivative will ever reach the open project. That doesn't mean that no code will be contributed back, but again there's nothing saying it will.
Not everyone agrees with this position (I also am not interested in arguing about it) but this is my explanation of this point of view.
No one's software freedom is reduced if I release a closed source derivative of a permissively-licensed open source product. All the rights that existed to the originally permissively-licensed product are intact.
Which doesn't reduce their freedom, since they couldn't modify it -- or have the choice to pay for it and use it -- before I made the proprietary derivative.
The only "reduction in freedom" is based on the assumption that I would have made and shared a Free derivative if I did not have the choice to distribute a proprietary one, rather than either not making a derivative, or making a derivative for my own use and not providing it to others.
I'm perfectly okay with this. The abysmal UX of desktop linux is proof that profit motive is necessary to drive the development of high-quality end user software when that development is difficult and/or not sexy.
But the only assumption required is that someone uses your product instead of the free alternative. He might have higher quality software, but he does have less software freedom.
No, he has the same software freedom -- he has the freedom to choose to use and/or modify the free version and any free derivatives people have chosen to make, and the freedom to choose to use the non-free derivative, with perhaps less freedom to modify it.
If anything, he has less freedom when the creation of non-free derivatives is prohibited.
By this logic, OSX is free software because I have the freedom to choose Windows instead.
I'm not advocating for the prohibition of non-free derivatives, but the position that adoption of propriety software doesn't reduce software freedom is ridiculous.
Freedom is the power to make choices rather than suffer external dictates. If a particular piece of free software exists, the existence of non-free derivatives doesn't reduce anyone's freedom, as they are free to choose the free software.
Stop this condescending, paternalistic treating me like an imbecile who can't make informed decisions about what kind of software to use. Stop acting like you can decide for me what rights I do and do not wish to exercise. Stop acting like the freedoms I want to have, including the freedom to enter into a lawful contract with a provider of proprietary software, don't count because they don't correspond with your values. Stop preaching that my entire system for deciding what software I do and do not want to install on my own computer is wrong because it doesn't match up with your ideology. Just stop being such a @$%^! ideologically-motivated authoritarian. And most of all, stop pretending that your authoritarianism is somehow defending my liberties.
I've got no problem with the GPL. If you want to maintain some sort of legal control over how others are allowed to use intellectual property that you create, you've every right to do so. That goes for releasing the source code with limitations on incorporating it into proprietary software every bit as much as it does for keeping it all proprietary in the first place. What I do have a problem with is you trying to tell me that I'm doing something wrong by choosing to be less controlling about the code I create. And what I have a problem with is you trying to tell me that my choice to place no restrictions whatsoever on what people do with the code I share is somehow stomping on somebody's rights. That includes allowing third parties to incorporate it into proprietary software. If you're uninterested in using that proprietary software, fine, it makes no difference to you whether the software existed or not. OTOH, people who are willing to pay for a proprietary modification might benefit from one existing, and in that case, more power to them - I don't care, and I don't see why 4th parties who don't have any basis for claiming ownership of the software should care.
What I'm bristling at is the line of thinking that says that I would somehow be harmed if Light Table's maintainers had chosen a license that permits proprietary derivatives.
however, you are not representative of the commercial world. patents/copyright mean money, and no business with rational business leadership would choose not to shutdown competitors with patent disputes if possible, let alone not licence code in a restrictive fashion (i.e closed source, not free, etc.)
regardless, this isn't just about copyright and patent disputes. it's about trust. i'm using a computer right now, and i don't trust the hardware, or even the software i'm using. i have no way of verifying that it's doing exactly what it says it's doing, and that it's not doing something that i don't want it to.
which is weird, because.. i own it.
i get into my car, and there are (probably) hundreds and thousands of lines of code between me and the wheels. but i don't know what's going on really? maybe there's something wrong with ECU's management of fuel injection. maybe there's a bug in the ABS controller.
i can't trust any of the electronic equipment that i use. that's.. pretty bizarre, given that i am employed to work on these things, don't you think?
so what purpose does the viral clause in the GPL have? it's simple really -
lets say i program.. a home automation system (one that's not just.. terrible). i've got a few raspberry pi's, some arduinos, all talking over wifi/ethernet. control of things like lights, heating, doors, the whole thing. i've got an app i run on my phone, it's looking pretty slick. the source is a bit of a hack, probable buffer over/underflows, no comments, i only have the app on my iphone.. it's not perfect, but it works. and if it doesn't, i can fix it. the literal last thing i'm thinking about (i almost forgot to write about it, in fact), is the code licence. but fuck it, i can't be bothered. MIT looks simple enough, why the hell not.
a few months later, PicoHard (c) release something amazingly similar, but with more functionality. they have android apps, more polish, they have their own custom wall sockets that switch on and off the power.. you get the idea. it's on sale for a few thousand dollars. but hey, i don't care, i can do all that if i want to. i haven't lost anything, and this company hasn't infringed on my rights.
thousands of people have installed this system now, but nobody (except maybe the original author) knows really anything about how it works.
june 2013 happens, and suddenly there is a guy on TV saying that the government have almost certainly got backdoors in my software. now thousands of peoples rights are infringed.
so, no, please, may you STOP IT.
(the story was, of course, entirely fictional)
Your ad hominem, however, is misdirected. I too oppose FSF's mission to value our craft at $0.00/hour. People have the right to compensation when others enjoy their creative output and if that impedes software freedom, so be it. Software freedom is a good thing but by no means an inalienable right.
I support open source because it's in our collective interests to subsidize the creation of freely available and high-quality platforms/tools with our earnings from proprietary software. I don't think we'd have those earnings without proprietary software, though.
Some people point to the Red Hat model. But most people don't need those kinds of guarantees. Third parties (i.e. every system administrator who's ever been responsible for at least one CentOS box and is not a Red Hat employee) can provide good enough support for drastically cheaper because they don't have the extra costs associated with developing the product.
Without proprietary software, it is in no one's interest to make software. (Well, maybe for personal amusement.) Not even line-of-business software, because you're just handing your competitors the ability to undercut your prices and push you out of the market (similar productivity boost, lower costs than you).
Nobody's freedom is impeded. They didn't have the freedom to modify the code in the first place, since they didn't have the source code. Nothing they could do before has been taken away.
It's really intellectually dishonest to use this freedom and morality rhetoric when you're actually talking about compelling people to give away something they have created.
Not that I think it's conceptually a bad idea. I see nothing wrong with the idea of the GPL as a concept. A contract that says 'if you use this software, you agree to also give away any code you base on it' seems fine.
But I see no reason not to just call it 'permanenrly malleable' software or something like that.
It's the faulty rhetoric around freedom that is presented as a moral crusade that is a problem.
Not necessarily a bad thing (your product might be legitimately better), but it is a decrease in software freedom.
Forking FreeBSD is not remotely the same thing as forking OSX and you can't "just use the open-source alternative if they want to change the source code" of OSX.
I really don't like the idea of licences which compel their users to act in a certain way. Freedom cuts both ways.
OSX users do not have this freedom. Hence, prevalence of OSX reduces software freedom. Ability to choose between OSX and alternatives is something but it is not software freedom.
What business models for software do you prefer, and why?
I have no objection to "paid software" as a business model, because the term is too broad. Paying someone to add a feature I want to a GPL project and release the result is, I think, not something anyone would object to. I have objection to "proprietary software" as a business model, because it collapses the value that the software can provide; I am not convinced that this objection is sufficient to say that proprietary software is always the wrong choice. I have more objection to proprietary software where, having paid, I cannot see the source and make changes (or pay others to make changes).
There are a number of alternatives for funding development of mass-market software that are more compatible with copyleft licenses (donations, threshold pledge models, consulting) and I'm currently working on an innovative project in this space.
If you stop using this misleading word, the whole GPL thing looks more reasonable, but also less like a moral crusade.
This doesn't follow. Like most arguments about proprietary software reducing, rather than not providing, software freedom, it seems to rest on the assumption that if proprietary software did not exist, it would be replaced use-for-use with Free software, that is, that license models have no impact on the creation or distribution of software.
I do also not care if the legal violence happened because of changes an other developer did on my work. Just because they added something does not give them the right to use what I made into a legal weapon.
The GPL is instead defined on the tradition of positive liberty, which defines freedom as the number of options freely available to each person to choose. There's a very real risk of those being reduced by permissive licenses, as you can no longer ignore network effects, as negative freedom (being defined over individual atomic actions) does.
History shows us that if you allow open source code to be relicensed as proprietary, the competitive advantage of companies building and selling products with enhanced features tend to displace the original project, which gets abandoned. This happened to Unix, to Mac OS X, and is now happening to Android. If this continues for an extended time, the whole ecosystem evolves and the old software becomes unusable, greatly reducing the total options that users can effectively perform - not by an legal or coercive restriction, but because of pragmatic impossibility. There are permissive projects where this doesn't happen (at least for a while) because of the economic incentives of remaining close to the free+open project, but the risk is always there.
What good is the permission to run the original, abandoned version of a software project if all the available hardware has been locked and is uncapable of running it, and it's impossible to modify it to support the modern functions that are available in the proprietary platform and required for any productive usage? Those are very real threaths, and the GPL was designed to combat them (as a reaction to the first time they happened on a large scale). Avoiding this "reduced total available options" scenario is what GPL projects call freedom, not "reducing the number of restrictions" definition that you use. Not a problem of rhetoric, but of chosen vocabulary.
I also don't accept "history shows us" as establishing some law of nature when the history we're talking about is a couple of decades.
I think the abandoning of ecosystems can just as easily be explained by them being based on inadequate foundations, than by a mythical horde of developers somehow being prevented from working on them. Usually systems are abandoned because of a lack of economic incentive, after all the displacement you describe can only happen if proprietary development produces enhancements more efficiently than open source. Witness the failure of the Linux desktop.
I think 'greatly reducing the total options that users can effectively perform' is a statement that needs much more qualification. To me, that's a function of design, extensibility, and how much leverage a system provides, and is independent of whether the source is available or not. Extending by forking is a last resort.
Nevertheless, I do respect the hypothesis that a GPL style open system provides an important counterbalance to proprietary systems.
What I do not support is the dishonest use of language and morality to further it.
If you are using positive freedom, then there is much more to be gained through improvements in software design - e.g. along the lines of Alan Kay's FONC - to increase leverage - than through ideology.
I still fail to see what is it that you call dishonest use of language. If freely talking of one's perspective and goals is dishonest, then all ideologies are.
The dishonest use of language is the misappropriation of the word 'freedom', and the moralizing around what is essentially a business problem. But, if you are claiming to be an ideologue, then fair enough.
In which case, I'd love to hear more about how that ideology translates into a better future economic future for software developers. To me it seems to just translate into greater dependence on powerful corporations.
Programmers are expected to work other jobs to subsidize their hobby. IIRC he also suggested that they could sell copies of their software on physical media, but this is irrelevant in the bittorrent era.
He acknowledges that realization of the FSF's goals would most likely end the phenomenon of professional developers and is perfectly okay with this.
It's somewhere on the Philosophy section of the gnu project's website. It's late, but I'll find the specific link later.
Eliminating the revenue from selling the same work multiple times is probable consequence of the FSF's mission. It is uncharitable to say that it is the FSF's mission. It is also false that this implies an hourly rate of $0.00 - there is a huge amount of programming work for which the first copy is the only copy, and that can be sold just as readily as ever in a world using even the strictest AGPL for everything. And that's not even considering donations, threshold pledge systems, &c.
I'm both a user and a developer of commercial software, and I would like for you to apologize for speaking as if you represented anyone other than yourself in this ignorant and hateful screed.
So no ones freedom is reduced if you get the power to sue anyone who modify or share the derivative product? Is this the statement being made?
If there are no restrictions against (to pick a colorful example) letting your dog go to the toilet on the sidewalk, then individually you have more "freedom to do whatever I want", but societies work better when you can walk around without constantly stepping in dog poop.
So, the way I look at it is that the GPL attempts to build a society where total happiness is greater than in the society that gave more permissions to everyone. If you agree with the existence of laws that prevent poor behaviors, you're already sympathetic to this view in principle; it just becomes a practical question of whether the harms that the GPL is trying to avoid are serious enough for it to make it worth the trade-off with individual liberty. Reasonable people disagree about this.
In terms of choosing a license for an open source project, I think you should choose the most permissive license that will sufficiently encourage people not to make proprietary forks. The GPL was designed on the premise that it would be necessary to legally force people to contribute changes back, but the success of so many projects with MIT and BSD licenses shows this often isn't necessary. I think the choice depends on how "infrastructurey" or "producty" the project is. For projects like libraries, compilers or programming languages, it turns out that proprietary forks don't happen because of simple economics. Why would anyone pay for a forked proprietary version of a library when the original open source project is available? And if no one wants to directly pay for a forked version of some library, why would any company bother maintaining a fork when they can just contribute their improvements back and let the open source community maintain them for free?
With a self-contained product like Light Table, on the other hand, there's a very real danger that some company could come along, fork the code base, make a bunch of improvements and start selling their version. Using a viral open source license like the GPL makes this illegal, ensuring that only the original author can sell forks of the product.
tl;dr – GPLv3 is a great choice of license for Light Table because it is a product, but it's overkill for most open source projects which provide much lower level functionality.
This is the rationale Linus gives for using GPL: Wanting to let people use your stuff while requiring them to give you access to any modifications. However, Richard Stallman (who wrote the GPL) has been very explicit that it is not the premise behind the license and that he disagrees with Linus on that point.
The premise behind GPL is to promote freedom[1]. In short, to ensure that the user always has complete control over the software they run. GPL ensures these freedoms, while permissive licenses that allow distribution of derivative binaries without sources do not.
That phrasing presumes that the existence of a fork is not determined by the license terms.
GPL guarantees that the would-be users of a fork that would have been made by someone not interested in (or able to, because of conflicting requirements necessary to actually produce the fork in question) providing Free software on the particular terms in the version of the GPL used by the particular upstream provider on which the putative fork would depend get nothing at all.
More practically, history has shown us that the GPL is necessary in order to ensure that companies don't short the community, suddenly improve everything and leave us with 99% of people using the proprietary fork. To illustrate my point, the clearest example (and the only large one) is the free distributions of BSD, mainly used by companies developing proprietary forks for it and contributing back very little. On the other side is Linux, used by companies for its freedom, security and reliability. The companies using it contribute back because they have to, continually making it stronger and always remaining free (unlike BSD, which can have many proprietary and untrusted libraries which cannot be used with security or reliability in mind). Linux is therefore getting larger only thanks to the GPL and its strong enforcement.
And this example can be applied to the entire copyleft vs permissive license debate, showing how software being free benefits the people more than people being free.
The FSF is about free people. Free software is just a mean, and they will use whatever licenses they think promotes freedom the most. That's why the GNU C standard library is in LGPL: the GPL itself would have prevented GCC from becoming popular, resulting in less freedom for the people. Also, looking at the history of GCC and the Hurd kernel, you can see they don't limit themselves to licenses.
You seem to imply that the GPL forbids you to keep your code secret. It doesn't. The right for private modification is preserved by the GPL. Only public modifications must be distributed in source form.
Companies don't contribute back to Linux because they have to. First, it's often more cost-effective to push changes upstream than maintaining them yourself. Second, monetizing private changes with GPL software is very very hard when the main distribution channel is gratis. Third people like to be good citizen. If I do changes for my company, and my company cannot possibly monetize the secrecy of those changes, why not contribute back?
If people and companies were forced to contribute back changes, they probably wouldn't use the software in the first place.
Now yeah, Linux is indeed larger than BSD thanks to the GPL.
What ways would those be? In what way does refusing to contribute the source code to your modifications qualify as using the software in certain ways?
In the case of GPLv3, the development of software for hardware devices that are tamperproofed -- unless those devices are intended for "business" rather than "consumer" markets. [1]
The GPLv3 restricts the features of products made with software licensed under it based on how the products are intended to be used.
[1] "business" and "consumer" are rough descriptions, the actual definitions are more complicated and are contained in the GPLv3.
This is not true. All the GPLv3 requires is for you to provide the means to modify or replace the software contained in the device. In the case of a tamper-proof device, this would entail providing the user with a master key or password which would allow her to unlock a developer mode of some kind.
The issue GPL fixes is when device manufacturers exercise ownership control of the device after sale (ie, do things that the owner is not allowed/enabled to do). If the manufacturers can modify or replace the software, then the device owner must be able to do the same.
Sure, you can develop one of those, as long as you subsequently provide a means to circumvent the tamper-proof mechanism. There is a critical semantic distinction that I think a lot of people are missing: the GPL does not restrict your ability to develop any sort of product you wish, it merely imposes additional obligations designed to ensure your users have the same freedom of development that you had when you developed the device.
No, you do not need to add a way to circumvent the tamper-proof mechanism. Thats the whole point of my comment.
Section 6, Conveying Non-Source Forms: "this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM)."
If the device is completely immune to software modifications, the anti-drm requirement of GPLv3 won't come into effect.
Last, a device which the manufacturer has ability to tamper with is not a device I would call tamper-proof. The attacker just need to get the developer key, so maybe Tamper-resistant is a better description?
Right, I had forgotten that. The reasoning behind it is that a non-programmable ROM chip might just as well be considered hardware for the purposes of programmability. Of course, the user might decap the chip and modify the code stored there with a scanning-tunneling microscope so the term tamper-proof in the absolute sense is probably not applicable to any device made by humans.
So maybe tamper-proof is not the best term, but at least physical security add something more than just a digital signature. The device owner has a much better chance to see if someone took apart the device, decapped the chip and then put it together. If I as the consumer want a tamper-proof device, I would go with physical security every time.
But is redistribution a use? I would say no.
Okay, you can't. Well, this is a textbook example of the GPL discouraging people from distributing proprietary software, and seeking free alternatives instead. This is its exact purpose.
I feel somewhat sorry for you, but this looks like a net win.
The only restriction is that you cannot remove any of those freedoms from any users of your derivative works. That restriction is enforced by the license.
For example, if you create a derivative work, as long as you keep using it only yourself, you're not required to give the sources to your modifications to anyone (you are the only one using it and you have all the freedoms). However, if you wish to share your derivative work with someone else (which you always have the freedom to do), you cannot limit that user's freedoms. You cannot, for example, refuse to give them the source code because it would take away the user's freedom to modify the software. You also cannot attach a proprietary license that would remove the user's freedom to distribute copies of the software to whoever they want.
Intuition. If I may, you should learn to "shut up and multiply"[1]. The various costs and benefits (in terms of freedom) are pretty much nailed down: freedom at large is simply way bigger than immediate freedoms, for a simple reason: the only freedom the GPL doesn't give you, is the freedom to further restrict your users. (Contrary to how most comments are worded here,, you don't have to contribute back changes. You have to contribute back public changes.)
The end doesn't always justify the means, but sometimes it does.
Even that isn't strictly true - you only have to contribute forward public changes. Of course, since your users have the ability to share things, and since your changes are probably "out there" you might as well contribute them back at that point and doing so usually eases development.
For those interested, GNU's Lesser General Public License (LGPL) was created to address these concerns.
(Edit: I can't seem to quote the LGPL section 4, so here is a link to it: https://www.gnu.org/licenses/lgpl.html#section4)
There is a massive reluctance in the QT community over this currently -- people want to distribute single-binary applications, and they are told to be careful about doing it.
I consider this the absolutely worst reason to use the GPL. Quite a few companies (large companies like MySQL/now Oracle or small ones like Macromates) require contributors to sign an agreement that allows the company to distribute the code under a different, proprietary license.
Doesn't this circumvent everything the GPL stands for? If I contribute to such a project, what guarantee do I have that the owner doesn't just distribute the software, including my contributions, under a proprietary license and stops making improvements public?
> I consider this the absolutely worst reason to use the GPL.
I think rms is right here. Selling exceptions is a good thing. It's certainly no worse than selling proprietary forks of non-copyleft free software:
http://www.gnu.org/philosophy/selling-exceptions.html
Why would it be ok to take non-copyleft software like clang and make proprietary forks with it, but not ok to sell exceptions in order to fund copyleft software?
EDIT: As an Octave developer, I greatly respect how FFTW's copyleft is used, for example. Matlab buys a license exception to use FFTW. Octave gets FFTW under the terms of the GPLv3, just like Octave itself, which we in turn contribute back to everyone else. Matlab and Octave are both using the exact same library for Fourier tranforms.
I like this model. Everyone is paying one way or another, no freeloaders, just lots of freedom.
I think the problem I have with the practice of selling exceptions is that it gives more rights to the owner. I feel that open source licenses should give equal rights to everyone. Dual licenses undermine that equality. I understand that people want to stay in control of their software, but for me the words 'free' and 'open' somehow imply 'equal rights for everyone'.
I'll ask the FFTW guys what do they do about external contributions.
Also, thinking about it more, there is nothing wrong with copyright holders having extra rights as long as they do not use these rights abusively. After all, they did the work, so they deserve to be compensated for it. Nobody would dispute that. It is problematic if they use these extra rights to try to make people pay for proprietary software that is not otherwise available freely. This is what I dislike about what Oracle does.
The problem is that many Open Source projects aren't created by an individual, or even a single company. Large projects have hundreds of contributors. If a project requires copyright assignment, all these contributors have fewer rights than the maintainer of the project.
If a project doesn't require coypright assignment, and uses a single license, all contributors have equal rights to the collective work.
It's some sort of empirical law that almost all of the code in free projects is written by at most a handful of all contributors. If this law holds, and I can think of only few examples where it doesn't, it seem fair for the tiny minority to benefit the most from selling exceptions.
What the FSF does when requesting copyright is a two-way agreement. The FSF drafts a contract that promises that they will never use the copyright aassignment for creating non-free software. Similar contracts could be drafted that agree to share revenue proportionally and provides clauses for arbitration if this proportion is in dispute.
None. But if they do that then you can fork the latest free release and carry on improving that (e.g. OpenOffice -> LibreOffice), and from then on the company's version receives no more contributions from the community.
And it's unambiguously better for the principles of the GPL than the alternative of licensing the project under a BSD-style license and requiring contributions to be made under such a license, which allows not only the original maintainer but anybody whatsoever to do the thing you're objecting to.
In fact, this is exactly what happened with Dosbox Turbo (https://play.google.com/store/apps/details?id=com.fishstix.d...). Dosbox is licensed under GPL, but here it's still being sold on Google Play. The author, fishstix, will send you the source if you've paid for the binary. This is completely legal.
https://sites.google.com/site/dosboxturbo/gpl
There were a couple of good discussions on this on SlashDot and VOGONS:
http://yro.slashdot.org/story/12/12/09/1721200/ask-slashdot-...
https://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySy...
http://programmers.stackexchange.com/questions/110380/call-g...
Disclaimer: IANAL
The answer is sadly quite blurry, and country specific. US law say something like: "A “derivative work” is a work based upon one or more preexisting works, such as ... abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted."
What would a judge say about two separate programs that talk to each other? A lot of people and companies has their opinion about it, but there is not much of case law in existence. All one can say is that the GPL author does not consider IPC level of communication to trigger a derivative work.
This is, however, not much of a business model, because the customers get the code under a license that allows them to redistribute it. Your first customer could buy the binary and then start selling it on Google Play themselves or give it away to everyone. Selling GPL code is pretty much just syntactic sugar over asking for donations.
Conversely you could also argue "it's not much of a business model to sell apps on app stores, because Chinese companies will copy and resell your app".
It just made me think of those stupid 'you wouldn't steal a car' ads before movies and I thought I'd point out that they have every legal right to re-sell GPL code if they want.
Frans De Waal demonstrates an experiment with Capuchin Monkeys showing this effect in action.
http://www.nature.com/nature/journal/v425/n6955/abs/nature01...
A common misconception. Copyright law is viral.
Apple's/NeXT's compilers were a high profile counterexample for many years.
Thus, "permissive" licenses tend to split a community into at least two groups: developers who can make use of the original code directly and enjoy the liberties the "permissive" licence allows, and users who are only allowed to use the things the developers create for them, and have none of the liberties granted by the original licence. By contrast, a "Free" licence (in the FSF sense) guarantees that everybody who obtains some piece of code, no matter how far removed from the original developer, has exactly the same rights to it. Thus, it does not split the community in the same way, and that's why some people regard "Free" licences as more community-friendly and useful than "permissive" licences.
Yes they do. They have exactly the same rights microsoft enjoyed, over the exact same code microsoft enjoyed those rights. They don't have the rights to microsofts code, which is a completely different thing.
"Permissive" licenses are a subset of "free" licenses; the contrast you probably intend is between "copyleft" and "permissive" licenses.
The BSD vs. GPL, which is more "free" or "permissive", argument has been going on for decades and is not going to be settled in this thread.
Can you not see that no one is changing anybody's minds here, and everyone who is chiming in has a fiercely held position? This is one of the classic hacker flame wars, and flame wars are a waste of everybody's time.
In short: Arguing about GPL vs BSD is a shitty thing to waste this great community on, and I felt like it was worth risking the ire of all the people who love flame wars in order to say so. The guidelines exist for a reason (and this thread is more evidence that this particular guideline is useful and relevant; if pg didn't have this particular argument in mind when he wrote it, I'd be moderately surprised).
GPL/Copyleft - more "rights" for the users
I think of "user" as someone who downloads the licensed software and uses it. And "developer" I associate with whoever wrote the licensed software that was downloaded.
Based on this definition, GPL gives more right to the developer, and less rights to the user. The user can't create derivative works from it and distribute it without also releasing the source code. This is a restriction that affects the use of the code by someone who downloaded it. Any derivatives are contributed back, giving the developer the right to integrate it to the original.
It added the tivoization clause which prevents companies from selling hardware to you with GPLv3 code and not allow you to run your own modified version of the code on said hardware.
Also if you distribute GPLv3 licenced code, you grant all recepients of that code a patent grant to any patents you hold within that code.
I find these to be perfectly valid additions of what the GPL licence is for: granting and preserving end user rights.
That depends on who "you" are. In the FSF's view some users are permitted to want to purchase hardware that can't be tampered with, and others are not.
If the tamper proof hardware resist modification by everyone (including the people who produce/sell them), GPL is perfectly fine with it. Sell it, bake it, do what ever you want. However, if a producer want to sell tamper proof hardware which they exclusively have a way to tamper with, its not tamper proof and it is not fair to the person who bought it. At minimum, give the owner of the device the same right to do modifications.
Is your argument that giving someone else exclusive control of things you own is a feature? I guess a thief could argue that stealing stuff from people house is a feature too.
GPL denies people to circumvent property rights of the devices owner - ie, the person who bought it. If you object to stopping such activities, I hope you don't object when people circumvent other laws.
There are three possible, reasonably coherent views of the anti-tivoization clause I can see:
1. Either the restrictions it places on device features in the consumer market are essential to software freedom, in which case GPLv3 segregates markets and prioritizes something else over essential elements of software freedom in the business market, or
2. The restrictions it places on device features in the consumer market are not essential to software freedom, and the GPLv3 segregates markets and imposes restrictions on what can be done with GPL-licensed software in ways that restrict rather than promote freedom in the consumer market.
3. Or "software freedom" means different things in different markets.
My personal view aligns more with the second of those options, but I wouldn't be happy with any of them.
> Is your argument that giving someone else exclusive control of things you own is a feature?
If it is in the business market (where the FSF seems to think it is) then it is in the consumer market.
> GPL denies people to circumvent property rights of the devices owner - ie, the person who bought it.
It would be more accurate to say, for what it defines as "User Products", that the GPLv3 actively encourages device renters to circumvent the property rights of devices' owners, and bars device owners from having the technical tools to prevent that.
2: Not allowing circumvention of property law is neither promotion or restriction of freedom. It has the same purpose such as anti-theft laws. business markets depend on property law, and could not operate without it. However, selecting enforcement of property law can be exploited in the market, and a segregation between those who exploit and those who don't then happens.
3: anti-theft laws and "software freedom" are not directly related. This is where the confusion comes from.
> It would be more accurate to say, for what it defines as "User Products", that the GPLv3 actively encourages device renters to circumvent the property rights of devices' owners, and bars device owners from having the technical tools to prevent that.
You seem to imply that manufacturer are the device owner after they have sold the device. Here we must come to a disagreement, as I follow the classic view that a trade results in a change in ownership. The financial transaction causes the manufacturer to assign ownership of a specific device over to the buyer in exchange for money. The new owner of the device is thus no longer the manufacturer, but the person who paid money for it.
Maybe the wikipedia article, or a dictonary would help you here. Renting is not the same as a trade. I can see how you might get those two words confused, but really, they are not the same thing.
If device manufacturers want lease out devices rather then trade them, they can likely do so without having comply with the requirements in the GPLv3 license. Leasing out devices is commonly not viewed as distribution (case law lacking).
No, that's irrelevant.
> If device manufacturers want lease out devices rather then trade them, they can likely do so without having comply with the requirements in the GPLv3 license.
The anti-tivoization clause specifically applies to transfer of a "User Product" with the right to possession and use of the device either permanently (sale) or for a period of time (rental).
A common distinction is that 'permissive licenses' give the developer more freedom, where 'free licenses' give the end user more freedom.
Giving the developer freedom allows them to constrain the freedoms of the end user, where giving the end user freedoms constrains the freedom of the developer.
So yes, if you're optimizing for your own personal freedom, a permissive license is best, but if you're optimizing for ecosystem or social freedom, a 'free' license is best.
My main interest in AGPLv3 is the release of open core software with paid, proprietary addons.
If parts of the code remain proprietary then this is Open Core and if they don't, it isn't. The licence doesn't enter into it.
Remember, the copyright holder is not bound by the GPL. And in this case external contributors are required to sign the Apache CLA[1]. So it is a permissive project as far as the original developers are concerned, and copyleft for everyone else. This is exactly the kind of situation that often leads to Open Core-like projects and proprietary vendor forks down the track, and is in no sense better for the user than if the code was permissively licensed for everyone.
[1] https://github.com/LightTable/LightTable/blob/master/CONTRIB... BTW if the developers are reading, I find that description oversimplistic to the point of dishonesty. It is very unexpected that a GPL project would accept only Apache-licensed contributions, and your summary of the CA offers no hint that the developer is about to agree to it.
[1] Chromium Embedded Framework (CEF): http://code.google.com/p/chromiumembedded/
Edit:
the main author explained his decision to use Chromium here: https://groups.google.com/forum/#!topic/light-table-discussi...
He is using node-webkit: https://github.com/rogerwang/node-webkit
apparently, it doesn't use CEF anymore: https://github.com/rogerwang/node-webkit/issues/1406
Valve's Steam and Adobe continue to use CEF for their web based desktop apps: https://github.com/adobe/brackets/wiki/CEF3-vs.-Chromium-Con...
"The wrapper for embedding Chromium in C++ apps from CEF is useless to node-webkit, and it adds complexity and costs. Regarding the statement Content API and is not intended to be a starting point for a robust application, I don't think that's true -- Chrome is based on Content API and it's clearly a robust application. Maybe it just want to say Content API is not as easy to use as CEF API."
I'd suggest you also submit this piece to Hacker News, and see what they make of it. I mean in terms of the actual, you know, software that you wrote.
I run a small side business sell packages for Sublime Text and considered the concept of something similar for Light Table. While you certainly can sell GPL software, you can not prevent redistribution, so you effectively get into the business of providing support. I can't foresee being able to run a small support business without catering only to the enterprise. And even then "small" would be a relative term.
In other news, I downloaded Light Table and I'm willing to give it a shot.
[1] https://chrome.google.com/webstore/detail/hacker-news-enhanc...
I've become so reliant on HNES that I avoid accessing hacker news on other devices (and when I have to, I use hn.premii.com).
As a user I'm a bit concerned by this phrase '"plugin" is a bit of a misnomer - they are capable of fundamentally redefining in or adding anything to Light Table.' I understand that the dynamic nature of clojure makes this possible, but I'm reminded of all the issues monkey-patching causes. I would hate to spend hours diagnosing plug-in interactions.
Have you started playing with strategies to proactively identify potential clashes?
I think one of the big challenges will be establishing the best practices for plug-ins to avoid user-experience-ruining clashes.
[1] - I help maintain the smooth-scrolling minor-mode and diagnosing and solving some of the interactions with evil-mode and macros has been... fun. Thankfully the Emacs community is populated by people who provide excellent bug reports!
Maybe emacs' level of brokenness is comparable to other editors, but it's far short of the ideal of problem-free software -- it suffers from all kinds of little bugs because of weird package interactions.
E.g., there's a mode to edit grep results, and a mode to edit multiple occurrences of a symbol inline, but using these two modes together doesn't work, for some reason. There's a mode to highlight the current line, and a mode to run a shell inside emacs, but highlighting the current line doesn't work on the most-recent line of the shell, for some reason. Highlighting the current line also doesn't work when jumping to compile errors (for me, anyway) -- that last one particularly frustrating since jumping to a compile error is one of the times you want line-highlighting most...
Etc etc etc.
Perhaps more importantly, not trying to restrict plugins to using a particular API has opened LT to integration with the tons of projects already built for the web -- from terminal emulators to emmet.io, integration is very nearly as simple as including the project's source and embedding it's root element into a tab. There's a lot of low hanging fruit at this stage in the game, so I look forward to seeing rapid plugin development in the coming weeks.
[1] Claire - Fuzzy File Finder inspired by ido-mode in emacs (https://github.com/joshuafcole/claire).
[2] Recall - Workspace Persistence Plugin to keep your tabs and tabsets loaded between sessions (https://github.com/joshuafcole/recall).
1. A SASS-based theme framework for LT that modularizes all of the widgets and plugins into partials. It's pretty difficult to just dive into the existing CSS and figure out what to change to achieve a particular effect. You're basically required to poke around in the dev inspector.
2. A proper C++ language mode via clang.
Once those are up in several weeks if nobody else has tackled an org-mode implementation I'll probably investigate it. If you have any free time and a desire to learn or use clojure I'd definitely recommend giving it a shot though. The community would definitely appreciate it.
That said, the feature set seems very intriguing and I'm tempted to give it another shot (especially with all this news).
Does anyone have any thoughts on (or know of someone who's written about) making the transition to Light Table?
In Sublime, if I want to open my Gemfile(at root), I just go
Cmd+T: Gem
And it's selected.
If I want to open my admin_controller, located inside of /app/controllers/, I use
Cmd+T: adm
And it's selected.
If I wanna do my Admin Controller test(spec) file, at /spec/controllers/admin_controller_spec.rb?
Cmd+T: adm sp
This is all a ton faster than what I'm seeing currenltly in Light Space, where I'm essentially forced to use my mouse, or OSX's poor keyboard controllers for open menu navigation.
(Disclaimer: I'm the author of claire)
Here's an (old) article about it: http://www.linuxjournal.com/article/8904
I'm working on an embedded device with a Python interpreter, and I'd love to be able to run that environment remotely, over ssh with a Python session.
If it doesn't exist, can you steer me to a place to get started building this as a plugin? Thanks!
Past that, you'd just need to add something to the python plugin that runs a tcp server in your process and then hooks into the python running code that's already there. https://github.com/LightTable/Python/blob/master/py-src/ltma...
However, you really need to see the video to understand how viscerally awesome it is.
We will be doing all Light Table development in the open. We will be accepting pull requests (actually, I think we already have) although we require a CA (https://github.com/LightTable/LightTable/blob/master/CONTRIB...).
So I imagine they're considering support and integration and sources of revenue.
(Totally speculative of course!)
Any way to donate?
I am eventually able to find out more, but only after assuming what it is and extrapolating what problems it's trying to solve.
What you're looking for is at http://www.lighttable.com/
Also on the main website, the background image has a height of just 762px, but stretches to the full height of the browser window. In my case, to 1920px (pivot). Needless to say it makes for an amateurish appearance.
PS. Just from the name, I expected it to be a Lightroom clone.
http://www.youtube.com/watch?v=gtXpOD6jFls
http://www.youtube.com/watch?v=d8-b6QEN-rk
http://www.youtube.com/watch?v=V2rOTrnqqtg
Light Table is also designed to be easily extensible, in the same way that emacs is. There is a small core which mostly defines interfaces and the rest of the features are implemented as plugins.
The binary from CloudFront looks to be a convenience to avoid building node-webkit. From the readme:
Then we have to do some juggling (unless you fancy building node-webkit from source).
You can get the source for node-webkit and build it yourself[1] but it looks to be time consuming and requires a significant amount of disk space.[1]: https://github.com/rogerwang/node-webkit/wiki/Building-node-...
Actually, its not so much node-webkit as chrome/webkit inside it. that took a few days to download correctly and then a few nights to build.
i did it when i was still on snow leopard and needed nw.
There is no real point for LightTable to be providing some bunch of binaries. A pointer to node-webkit would be enough, they have binaries (and build instructions) on their github front page.
There are a few more funnies there: .gitignore does not ignore the binary files added by these scripts, if there is a new node-webkit and then LightTable release and you re-run the script, your local old node-webkit copy will overwrite the new copy you just downloaded :)
Someone needs some solid packaging help. Oh and node-webkit people need a LOT of very good packaging help. Their build process is so convoluted, it might actually spawn an extra-dimensional entity.
The font rendering is shitty, tough, but that's probably expected when using OpenGL.
The video on the website, I can't even...
So confused :(
(Build instructions currently consist of dumping part of the current binaries and rebuilding the CLJS bits, which is straightforward but doesn't help much with porting to other archs)
Unfortunately, the EPL and the GPL don't play nicely together.
If you have different needs, shoot us an email and I'm sure we can work something out.
So, given that's the case, the real question comes down to how long you want or need the fangs of the license's reciprocal clauses to be. I personally have no problem with copyleft, and will be taking the EPL + commercial option route with one of my own projects in the near future.
I realize that monetization strategies are a big deal if you're essentially trying to "pay the bills" with your open source project. I can't help thinking, though, that choosing the GPL when the vast majority of the Clojure ecosystem is under the EPL - and given that the two licenses are incompatible - is a misstep. I hope to be proved wrong. :-)
Its been mentioned elsewhere here, but you should probably think about having copyright assignment before accepting third party (non-plugin) patches, so that you can continue to work something out with people in the future too.
The EPL 1.0 is not compatible with the GPL, and a work created by combining a work licensed under the GPL with a work licensed under the EPL cannot be lawfully distributed.
ClojureScript itself is EPL, how does this work?
Anyway, it's better for the community that it's free(ish) though I wish Kickstarter would exercise some control over its reward system, but lesson learned.
I wish there is a true crowd funding platform where you could "own" and partake in the profits generated from the funding.
How can I be the elite when everyone gets a castle.
(note: this is how is post appeared to me, I've no idea if it's accurate.)
I pay taxes for services I will never use (therefore I paid for "nothing) (and often could not use e.g. I don't have children and don't plan to have any either but my taxes subsidise state education (which is fantastic)).
I donate money to open source projects who release their projects and code to people who have never paid (which is a tiny fraction of what the people who write open source code and then give it away give).
The buddhists (I'm an atheist but there is much to admire in some religions) have a concept called pāramitā "the perfection of giving" which (horribly and likely inaccurately described) is the idea of giving without attachment expecting no return.
Also in this case the person who paid for X got X, that others also got X has no effect on the person who paid.
ClojureScript on node-webkit is looking like a very interesting platform for desktop apps, especially with om/react.
BTW, awesome work Chris, really looking forward to use it.
EDIT: added Python
tl;dr It's happening!
Now you have to enable it. Go back to Commands and find "Settings: User behaviors" . Then go to the :editor section between the square brackets. Type "vim" and it will show a popup with several items it can complete. Pick this one: "Vim: Activate Vim mode". It should then insert this: :lt.plugins.vim/activate-vim Save the file and it should now work!
it will be happening TWICE! I asked the original question, as I've been spending a bit of time creating an IDE, I'll be continuing development and will also be open sourcing it.
Good work though, I like the look and feel.
https://github.com/LightTable/Vim
Not sure how complete they are, though (or rather: if they make lt work "like vim", or just add some short cuts).
OTOH, another perspective is that the GPL is worse for the projects because the restrictions it imposes may make people less likely to touch it at all, and those who don't touch it aren't going to give anything back whether they have to or not, and commercial users demonstrably do give back to projects that are under licenses that don't require them to do so -- and even pay people to work directly on the projects.
With GPL , said commercial entity either have to provide their derivative's source (thus contributing back via more features/code), or pay the owners of lighttable a fee for not revealing the sources. Neither way allows them to get a free lunch. This is a good thing imho.
The GPL is infectous by choice: If some part of your project is under the GPL, the whole has to be licensed under GPL. This is not the case with the MIT license.
This really depends on whose liberty and what kind of liberty you have in mind. From a GNUish perspective, the MIT license gives you the liberty to... restrict downstream users' liberty to modify the software and distribute the modified versions. The GPL restricts your liberty to restrict other people's liberty in that manner.
Which is more free in some kind of libertarian sense probably depends on what you consider the status of copyright in the first place. If you think the ability to restrict downstream users through the copyright system is a kind of natural right (perhaps by analogy to property), then the GPL is adding restrictions on your ability to exercise that right, and MIT/BSD licenses are freer. If, on the other hand, you think the ability to restrict downstream users' distribution through copyright is an artificial privilege granted by the State, then the GPL constraining your exercise of it is not really a loss to liberty.
I'm sure you've used software that has frustrated you, knowing full well that you could easily fix the problem, if only you had the source. I expect every programmer has had that thought at least once. That is what the GPL is designed to resolve.
The MIT license, on the other hand, grants no rights to the users.