Hacker News new | past | comments | ask | show | jobs | submit | bloody_pretzels's comments login

The Apache license isn't compatible with GPLv2.

Isn't it possible to take a standard patent clause and add it to their UIUC/MIT licenses? Google has done something similar with Go, using BSD + their own patent grant.[1]

[1] https://golang.org/PATENTS


A. GPLv2 also isn't compatible with GPLv3, or a host of other licenses as well (There is tons of software that is not GPLv2 or later). So far, nobody has pointed out a piece of software this would cause actual issues with[1]

B. I wrote that patent clause ;) The patent clause is one-way, and works in part because Go collects CLA's that grant google and contributors other patent rights.

So using such a license basically has the CLA option as a pre-requisite.

[1] (interestingly, at least to me, this incompatibility this raises weird issues around doing things like using older gplv2 gcc's with newer gcc runtime libraries. The gcc runtimes require gpl compatible software as part of the exception, and define gpl compatible in a way that seems to exclude gplv2 ;P)


I've always wondered why the liability clause in Apache License 2.0 explicitly takes on liability for certain situations compared to no liability with MIT, ISC, BSD licenses, and I fear it because I can't control what users do with code I've published (think rm, fdisk, or anything else that can be easily misused). Can you explain what it means, and why it's not use-at-own-risk? For what it's worth, I like the patent clause for obvious reasons like dealing with current reality.

It's funny that the liability clause seems pretty similar to that found in GPLv2.


What liability does the Apache License accept other than that which is required by law?

"8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages."


The "unless required by law (...)" part is the problem.

Compare it to ISC's disclaimer:

IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

The intent is that I provide code and I'm not held liable if you use it irresponsibly or recklessly. Whatever current laws are, licenses can be tested in some local court and found invalid, but laws change and not all courts rule the same on a Tuesday. Therefore a license should state intent and not encode a certain market's laws from a certain year.

Patents are a special case because of the racketeering going on. Like copyright, the patent system was meant to foster more published work and not as a money making and extortion mechanism. There's a reason why places without concern for copyright or patents are more innovative. In that sense the liberal licenses encourage use in all situations by anybody because they want it to be used rather than restrict who's allowed to use it in what way.

The real problem is that there is no software safety or quality standard which can be measured and tested like for everyday items such as knives or power tools and won't exist for the immediate future. But that doesn't mean we should include disclaimers that hold you liable if somebody deletes their backups with your implementation of /bin/rm.

The interesting question then is if you need and want GPLv2 and Apache License 2.0 because they explicitly claim liability, does that mean you cannot use OpenSSH, OpenSSL or FreeBSD? Wouldn't you in that case be using an "illegal" tool like medicine from another continent?


You are not a legislator, your contract/license can not nullify acts of the legislative branch. If something is required by law it is in there, you don't get a say about it until next election day. I would be very interested to know why you think the ISC license is above the law, do you have any references that say software licenses can nullify legislative acts?


An open source software license is the wrong place to include what's current law in one or more jurisdictions. As I said, it's the job of a particular court to decide if a license is valid in some specific place. An open source software license is meant for the whole world and therefore should only include the intentions of the author without an encoding of current laws. The software is likely to exist longer than some law that was encoded into a license text. I'm sorry you took my text to mean I'm suggesting a license can void laws. On the contrary I was suggesting it cannot, but English isn't my first language, and I may have failed to be clear.

Again, what about the illegality of using a BSD/MIT licensed piece of software if you require GPL/Apache style liability?


GPLv2 incompatibility does seem like a possible issue. Moving to Apache would make it impossible to ever embed LLVM in the Linux kernel, for example. That might seem unnecessary now, but perhaps someday there will be a use for a JIT in the kernel, that we can't foresee.

The same problem might exist with other patent clauses, though - is the Go one compatible with GPLv2?


"Moving to Apache would make it impossible to ever embed LLVM in the Linux kernel, for example"

Because the kernel is GPLv2 only, you also can't embed the GCC JIT, as it's GPLv3.

So essentially, you are screwed along multiple axes

"but perhaps someday there will be a use for a JIT in the kernel, that we can't foresee."

Maybe, but you can't solve every use case on one side.

(IE it may be that the kernel may have to have some licensing movement as well)


Yes, multiple axes, but this would be a regression for LLVM.

In any case, there are other compilers which would remain license compatible with the GPL2, so should the kernel ever need one it could still have one, I guess it just wouldn't be LLVM or GCC.


"but this would be a regression for LLVM"

Surely, but as you can imagine, the LLVM community needs to figure out whether this is a use case they care about (it was raised in that discussion, and i think the consensus so far has been "not really")


Yes, of course.


see eBPF


It seems from what I understand from the discussion that fundamentally you can't have a patent clause in a license and having it being compatible with GPLv2. (IANAL)

Edit: see the last paragraph in this email: http://lists.llvm.org/pipermail/llvm-dev/2015-October/091636...


> The Apache license isn't compatible with GPLv2.

That seems potentially fixable, if they're changing the license anyway. Apache with an exception for linking to GPLv2 could work.

> Isn't it possible to take a standard patent clause and add it to their UIUC/MIT licenses?

Writing a new license is almost always a bad idea, and if they did write such a license, it should go to OSI and FSF for review first.


Note that the Apache License isn't compatible with GPLv2. If you don't make use of any patents use BSD/MIT/ISC instead.

Sadly there isn't a real alternative permissive license with a patent clause. There is a license called COIL[1], but it hasn't seen much adoption yet.

[1] http://coil.apotheon.org/


Nothing that a dual license GPL/APL wouldn't solve.


You're not quite right. Everything that touches the GPL code has to become GPL, period. GPL compatibility only exists in one direction. A license is compatible if it is relicensable as GPL, the GPL itself isn't compatible with anything.

Rant: I really want to like the GPL, but this requirement is downright hostile towards other open source licenses. And in my opinion it's not even necessary for the GPL's mission. Surely, it would be enough to require that all other parts of the combined work must also be distributed under open source licenses, not necessarily the entire GPL. Some parts of the GPL, like the installation instruction requirement and the anti-tivoization clause, should apply anyway if only some parts are GPL'd, and the reduced protection would easily be outweighed by a strengthened open source community.


What you are describing in the rant is how GPL works, so surely there must be some misunderstanding here. If you use a GPLv3 library, your own additions to it can be GPLv3 or any compatible license. It can be mit, apache, BSD, mpl, CC-anything so long it allow commercial use, and almost any of the free and open source licenses. The entire thing to do not need to be GPL and in large projects its commonly not.


GPLv3 Section 5. Conveying Modified Source Versions.

> You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:

> c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.

It really does not work like you would want it to. Technically, you only add the GPL, so the work will then be licensed under both licenses at once. But the GPL is so restrictive that this doesn't make much difference in practice beyond maybe retaining the original license text.


There is no form of maybe in it. People who don't retain the original license text are committing copyright infringement.

The license talks about when the the entire work is being distributed. Individual parts licensed under a different license can be used in other works under completely different licenses and the GPL do not impact such use.


I'm not clear on what you are trying to say. Naturally, the GPL only applies when distributing GPL'd code, not when it's used solely privately. The license clearly states that all parts of the "work based on the Program" (anything derived from GPL code) have to be licensed under GPL. The FSF has always asserted that a derived work includes anything that statically or dynamically links to GPL'd code, although the term was controversial and v3 now mentions linking explicitly. So, when the section above talks about "the whole of the work and all its parts", that includes files that are by themselves not GPL'd. These have to be distributed under GPL as well if you want to include them.


The distributor must apply the license to the entire work, but individual parts can always be licensed under different license.

Say for example that you created some GCC code and put that under MIT. When distributing GCC, GCC as the "entire work" will be GPLv3 which also then apply to the MIT part. However, the MIT license will also apply to that part, must be kept in every copy, and you could take that MIT part and put that into LLVM and GPLv3 would not suddenly impact LLVM.

When modifying a GPLv3 project, your own additions can always be any GPLv3 compatible license (as I stated above). In most cases that would not make much sense but in a few cases, say in a compiler, it might make sense if you want to use that code in several project with different or even proprietary licenses. Nothing in GPLv3 prevents this.


Your post does nothing but put down and ridicule an entire philosophical and political branch of thought without any rationale at all. It's a shame that this type of comment can receive so many upvotes in a community that alleges to care about quality discussion.


> Your post does nothing but put down and ridicule an entire philosophical and political branch of thought without any rationale at all.

Not every quip or fart deserve serious attention, and Rand's "philosophical branch of thought" would not have garnered any attention at all if not for the popularity of her books among American teens. Her "philosophy" is hardly recognized as such. I am not comparing Rand to Hitler, but the intellectual rigor of their "philosophies" is about the same. Would you consider an offhand dismissal of Hitler's ideas as not befitting a quality discussion? Nevertheless, Hitler's work has had quite an impact on society, as has Rand's, and for that reason, and that reason only, they are interesting subjects of study. No one is supposed to take their "philosophies" seriously, and frankly, hardly anyone does. Taking the time to refute Rand's philosophy is giving her too much credit and too little at the same time; too much, because her philosophy is not considered as such by philosophers; too little because her accomplishments lie away from intellectual rigor, in the realm of successful ideological fervor.

http://en.wikipedia.org/wiki/Objectivism_(Ayn_Rand)#Intellec...


You know that the "Godwin's law fail" rule was derived to deal with exactly the type of argument you are making?

http://en.wikipedia.org/wiki/Godwin%27s_law#Corollaries_and_...


Ugh. I would propose to apply the recursive Godwin's law on any invocation of Godwin's law if only Godwin's law weren't more trite and, worst of all — boring — than the comparisons Godwin's law tries to outlaw, and so, by induction would be any recursive Godwin's law.

And when have Hitler comparisons, if you think I made one, ever been more apt? ;)

EDIT (if I need to spell it out): It was claimed that an offhand dismissal of a famous "philosophy" is inappropriate in a quality discussion. I then offered a famous example of an entirely different "philosophy", undeserving any serious merit and discussion on its own, and yet important historically for its effect on society. Rand is considered a childish, ridiculous "philosopher", so people rarely take the time to argue with her beliefs as their falsehood is apparent to almost anyone with a pair of eyes and/or ears, but her writings have played a part in recent American history. In no way other than in her intellectual rigor, should Ayn Rand (who, BTW, is one of my favorite historical characters; she was so deliciously cruel and lost at the same time) be compared to Adolf Hitler, the Nazis, the SS, the SA, the Luftwaffe or any of their affiliates.


It seems I need to spell it out too: The Godwin's law is not about Hitler in particular. It's about making a (non-)argument based on some superficial and irrelevant observations. Thus, as you aptly noticed, it's inherently recursive as it's dismissing arguments based on no less superficial and irrelevant observations i.e. mentioning Hitler or Nazis.


>>Her "philosophy" is hardly recognized as such.

That's almost like vegetarians saying, meat is hardly recognized as a source of nutrition because they don't eat it.


Node is a really nice word for what the article describes.

The word "tracker" doesn't roll off the tongue very well and I think it suffers from the same flaw that the article criticizes about "phone", namely that it focuses on a specific aspect of a multi-purpose device. Node seems a much better choice since it connotes all the important aspects of a smart phone:

  - Connection to a network for the purpose of information sharing
  - Being identifiable and addressable
  - Processing capabilities
If we choose to find a more suitable name, I'd suggest maybe "Personal Node" or "Smart Node".


I think the problem is they're not a "personal node", they're nodes working for Apple or Google or your telco. The idea of "node-ness" carries connotations (at least to me) of being more useful as part of a network than as individual devices - and that's way more true for the people/organisations with access to data from the whole network of nodes, than the owner/operator of a singe node.

I wonder if Google are collecting geo-spacial data about your social graph? I suspect they could, if they wanted to, work out which section of your online social network are people you meet in real life, and which are people you only interact with on-line?


If I didn't misunderstand, you're suggesting that "node" carries the idea of being an autonomous entity that connects to a neutral network (i.e. no node is more privileged than any other). In that case a more accurate term might be "slave node" as opposed to the master nodes operated by carriers which control and monitor the communication flow. But I think that's a subjective view. The internet also has privileged nodes which could be used to monitor and control the network or individual nodes.

"Tracker" simply ignores all the service aspects of the device and focuses on a single use for one of the parties involved (costumer, carrier, manufacturer). In that respects it is just as misleading a term as "phone".


A good idea would be to make a typespeed clone: http://typespeed.sourceforge.net/

Or any kind of game where you have to type words to advance. In fact, while we're already on the Space Invaders idea, you could make a clone where the invaders represent common words and to destroy them you have to type them out. Oh, and the invaders shoot single letters or two-letter combinations which you can type out to defend against. Also, you have to defeat the invaders from bottom up and to shoot at one you have to move into it's line below it, So you have to choose between dodging by typing out an invader in a different line or defending against a shot.


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: