23

Like many other people I read this meta post. Since I don't really understand what is at stake I became confused and worried.

Does this mean that I can legally force any organization to let me see the source code of any application touched by a questioner when I give an answer to their question? Does this mean that I open up any organization I'm associated with to this liability when I ask a question? Finally will SO be required to release identifying information so people can check if rights were violated? It seems to me that this move will induce code attribution trolls like patent law released the patent trolls. I seem to recall Oracle antagonizing Google in court over a simple algorithm in Android code...

Or I could just put in the terms and conditions something to the effect of:

The lines of code that were derived from or generated by the kind folks who contributed to the Stack Exchange network are licensed under the MIT license. Everything else is licensed under XYZ license.

Then I would be in full compliance?

What are some of the big ramifications that I'm not knowledgeable enough to foresee?

  • 3
    What do you mean by "the source code of any application touched by a questioner"? Do you mean some code from an application was included in a question on SO? – apsillers Dec 16 '15 at 22:39
  • 1
    @apsillers Kind of, when people ask a question they'll drop a sample of their broken code, and/or associated code that isn't broken. So that code could be pirated but tracking that would be hard to impossible. The easily tracked situation would be an accepted answer, because presumably that code solved your problem and therefore was incorporated into the code base. That would give the owner of the accepted answer reasonable suspicion that their code was in an application, but no information as to which code base, and therefore more legal standing to see all code bases (I think). – Erik Dec 16 '15 at 22:48
  • 1
    @apsillers Alternatively another answerer might claim "Person X accepted the sub-optimal answer without using the code so they could rightfully claim the accepted answer code wasn't in their code base." That would be an excuse other answerers could use to see the source. – Erik Dec 16 '15 at 22:49
  • It's hard to tell what you are asking, or why you think that the license might let you force any organization to do that. I suggest you try to clarify by giving an example scenario and articulate your reasoning why you think that the SE license would cause such a strange result. I suspect the answer is "No, that would be silly; of course it doesn't mean that", but it's hard for me to tell for sure, because it's hard to tell exactly what you're asking or why you think it would have that implication. Editing the question might help clarify what you are asking. – D.W. Dec 17 '15 at 1:22
24

I posted an answer to the announcement post that pretty much sums up why part of this - the exception - is a bad idea:

  1. You're essentially creating a crayon license.
    If you modify the terms of an existing license, you create what is known as a crayon license. Those are a problem - see "How can a “crayon” license be a problem?" for the reasons why.
  2. It's far too easy to claim an illegal use is legal.
    See this answer of mine. Essentially, someone can get my code from somewhere I use it - perhaps in a commercial open-source product of mine - and not attribute it to me. When I chase them down on that, they can simply claim "oh, I got it from Stack Overflow", and get away scot-free.
  3. It's massively unclear how to reverse that requirement.
    Say I don't want to have this extra exception applied to any of my code. How do I note that? If I put a note in my user profile that all my code snippets must be attributed properly as per the terms of the full MIT, is that enough? Do I have to add a note to every answer? I'd rather not have to do that, but I also don't want to be chasing people down endlessly for misusing my code.

So what does this change mean? Let's answer some of your questions:

Does this mean that I can legally force any organization to let me see the source code of any application touched by a questioner when I give an answer to their question?

No. The code that came from the answer (or whatever post you got it from) is under the MIT license with an SE-specific exception. That means that the code can be used in a commercial, closed-source application (as the standard MIT allows), without the original license being included (which is provided for by the exception). Some reasonable attribution must be included at the request of the code author, but that doesn't have to be the full license document.

Finally will SO be required to release identifying information so people can check if rights were violated?

Nope. There's nothing in either the license, the exception, the SE TOS, or any other pertinent laws that requires them to do this.

Or I could just put in the terms and conditions something to the effect of:

...

Then I would be in full compliance?

Conditional yes. If none of the individual code authors asked you to attribute them, that's perfectly sufficient. However, if one of them does ask you to attribute them, you should then include their name, a link to their profile, and a link to the original source of the content. No MIT license document required, still.

  • 1
    I assume this attribution would have to be public, not just buried in the source code. My paying job is for a closed source mobile application. How discoverable should those attributions be? Should there be a buried screen on the mobile app that lists contributions to server side and mobile code? Should the api expose a json list of contributors? Would any or all of those options suffice? – Erik Dec 16 '15 at 23:17
  • 1
    Also what is the requester's legal standing if I deny that their code is in my application? It seems you're saying that if I was evil I could say "I accepted your answer but decided against including it in my project, sorry." even if I did use the code. Is there no mechanism to force a denier to prove their claim? Alternatively will people decide to place false attributions because it is cheaper and easier than fighting with someone. – Erik Dec 16 '15 at 23:22
  • 1
    @Erik the usual way is to have a credits screen with all the attributions. If you deny it, then if they care enough they can start a court case, and if that proves otherwise it's costly for you. – ArtOfCode Dec 16 '15 at 23:25
  • 2
    @MichaelT AFAICT, you can still use SE code in a GPL product, there's no reason why attributing should break the GPL. – ArtOfCode Dec 17 '15 at 9:03
  • 1
    @MichaelT: Isn't GPL section 7 specifically for the purpose of allowing the addition of attribution requirements? you may supplement the terms of this License with terms: b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it – Ben Voigt Dec 18 '15 at 5:27
-4

The proposed terms are reducible to any license, including CC0 or WTFPL.

For 'code' (which Stack Exchange has not yet defined), the terms Stack Exchange is proposing possess a gaping license-laundering loophole and are legally reducible to CC0 or any other desired license. I'll explain how.

This post states that the new licensing terms will be as follows.

Starting March 1, 2016, new contributions across the network will be licensed to the public under the following terms:

  • Non-code contributions will continue to be available for use under the terms of CC-BY-SA
  • Code contributions will be available for use under the terms of the MIT License
  • You don’t have to include the full MIT License in your code base. Contributors agree to give code users permission to ignore the MIT License’s notice preservation requirement, as long as users give reasonable attribution. This optional exception to the MIT License will live in our terms of service.

That "MIT License" (which is really the OSI MIT License or the Expat License) states:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.

The only restriction the OSI MIT License imposes is the requirement to include a copy of the copyright notice and the permission notice. However, Stack Exchange's proposed terms waive that requirement (see above: "Contributors agree to give code users permission to ignore the MIT License’s notice preservation requirement").

This means that:

  1. A first generation derivative work would have to include attribution, but would be able to be distributed under a license not requiring attribution or sharing alike, e.g. CC0 or WTFPL.

  2. Anyone receiving such a first derivative work is therefore not required to attribute or to share alike (e.g. in any second derivative works).

  3. Anyone will be able to re-license, in this way, any 'code' posted to Stack Exchange sites.

  4. 'Code' posted to Stack Exchange sites can therefore ultimately be used in any way a plagiarist derivative author wishes. As such, it is effectively CC0 (or WTFPL, etc) licensed.

This loophole means that the proposed change to Stack Exchange's licensing terms ultimately undermines any desire one may have that Stack Exchange contributors should be required to be treated with respect and acknowledgement by users of their contributions.

This answer is based on my answer here.

  • 1
    I see that someone has downvoted this answer. If you downvote, please at least have the courtesy to explain what you think I could improve in my answer. Thanks :) – sampablokuper Jan 14 '16 at 23:26
  • 5
    I downvoted because this answer is wrong. Under the Berne convention, everything is copyright by default, so this loophole doesn't exist. Assuming code with no license is public domain is exactly what you've struck out: plagiarism. See opensource.stackexchange.com/q/1720/175 – congusbongus Jan 15 '16 at 0:08
  • 1
    Sublicense is not the same as relicense. Sublicensing means you can grant a subset of the rights in the original license to a licensee, i.e. you can only replace MIT with a more restrictive license, not a less restrictive one like CC0 or WTFPL. You cannot waive rights that you weren't given in the first place. See programmers.stackexchange.com/a/189704/81527 for more details. – congusbongus Jan 15 '16 at 0:53
  • 1
    Not requiring the reproduction of a license doesn't mean you are no longer bound by it. Otherwise the whole suite of CC licenses will fall apart because they don't require including the license either, only a link or mention of a license. The steps you have outlined are not legally possible. – congusbongus Jan 15 '16 at 1:08
  • 2
    Please explain exactly how the license allows you to redistribute under CC0/WTFPL. Neither the MIT license, nor the proposed SE license allow this. Neither would the recipient of a code snippet with a URL only. Therefore step 1 is a non-starter. – congusbongus Jan 15 '16 at 1:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.