How far does Programming Language license go? I know that source code can have a license. For example, if my code is released under GPL(e.g. v2), there are some restrictions that say what anyone who wants to use my code must do. I've found a tutorial for SDL(lazyfoo). There's FAQ. One of the points mentions "translating the code to the other programming languages". The author strictly prohibits this. Is this backed up by law? Can an author of the code forbid me from rewriting his code into other lanuage, and if yes, what are limitations of what can I (re)write?
A prohibition on "translating the code to the other programming languages" is a prohibition on creating a particular type of derivative work. The right to create any derivative work is an exclusive right of the copyright owner. 17 USC 106(2) They can licence or give that right to you in part, and with limitations. You are limited from taking what would amount to a "substantial similarity" compared to the copyrightable elements of the original. For computer programs, US courts use the abstraction-filtration-comparison test.
Ideas (methods of playing, game mechanics, strategy, goals) cannot be protected by copyright. But any part of a creative work can. So, no copying of drawings, patterns, images, sounds, or the element. I suppose copying the software code is not an issue here, but it can, obviously, also not be copied. And nothing in your game can look like someone's else trademark.
The GPL doesn’t require you to distribute the software to anyone. The only requirement to distribute something is that if you do distribute the software to someone as a binary, you must also distribute the source code to them at no additional charge. The focus of the GPL is ensuring freedom for people who have copies of the software, not ensuring that the software is available to the world at large. Because your final deliverable is source code, you’ve already complied with the requirement to distribute source alongside object code. You have to comply with the requirements in section 5: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. 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. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. You have to license the software to the company that hired you under the GPL v3 (since parts of it were licensed to you under GPL v3), so you can’t stop them from distributing it to the world. But nothing requires you to distribute it to the world.
Is this limitation enforceable? Sure it is; you agree to a TOS or EULA with the company to use the API, and that's a legally binding contract. If the contract stipulates limits to caching, that's enforceable in civil court by lawsuit (possibly criminal court, which will depend on jurisdiction). What if the end-user is the one caching the data on their end? If your end users might be caching, that's something you may need to outline in your own TOS/EULA to adhere to the API's stipulations. And, the API may not allow you to serve API data to your own users; read it and see. the information provided by the API is not proprietary,... That doesn't matter; you're using their API and service. If you don't like that, you need to write your own API or develop your own queries for the information. I'm designing a web application that will make use of a (non-free) third-party API. If that App is going to be distributed and used by others, talk to a lawyer about the API and have them write a TOS/EULA for your App; you run the risk of significant legal liability with a publicly distributed App that uses someone else's API, paid or free.
The section you quote as clearly saying a thing is not clearly saying the thing. However: you cannot pass on or resell any license keys seems to say a thing clearly. However, one could argue that it's the sharer of the account who is in the wrong, and not the person receiving and passing on the account. I'd say that that piece of the agreement, combined with this: must not... let other people get access to anything we've made in a way that is unfair or unreasonable says that, yes, they are out of bounds.
The first thing that people need to do is to quit over thinking it. That being said, I'm going to see if I can tackle your problems one by one, before summarizing and providing my own opinion: Many users don't care if their code is copied. I'm like that. I left a couple comments on Shog9's post that read this: Good point: Licensing does not prevent careless or malicious use. I'm surprised about how many people are thinking that this license will let them steal their code, because it's already happening right now. I don't want to sound pessimistic, but when thousands of people break a license/law/contract, it's a bit of a lost cause. You're not significantly damaged in a direct way, so honestly, let it go. All I want is to make sure that no one can come up to me if something of mine screwed something on there side. Aside from that, I don't care about people who don't attribute me: chances are, they have no moral sanity, and I will appreciate the people who do, and help me out. As it is, I'm 16, I share what I know with a good heart, and in a well-spirited manner, and at the end of the day, knowing that I was able to help someone out makes my day. I don't mind if my code is copied. I know that people will copy my code whether I like it or not, but I also know that there will be people in the world who will say "thanks", and will try to attribute me where possible. I feel good about that. That being said, I don't care. But the person who uses my code does. The license that affects all Stack Exchange posts are licensed under the Creative Commons Attribution Share-Alike license, or CC BY-SA. Code contributions don't fit well with this. This excellent post on Open Source explains why it's discouraged for code. What these people want is a code-friendly license, so that they can stay in the clear when it comes to copyright issues. The next thing they want, is for someone to come after them over some licensing issue. You may think that people are good, but you never know the world around you. They can be evil. For other users, they don't mind their code being copied to another post, as long as there is a link to the post and a mention of the original author. Most people post with good intention. There's not that much of an issue from a legal perspective either: The license allows people to copy and paste into answers of their own, and since the license remains the same, there's no issue to get into. The license allows it, and contributors kind of have to acknowledge it. I don't think anyone cares what happens to code that is less than 3-4 lines at least. I can probably agree. Such code probably wouldn't be eligible for copyright anyway, since it's so trivial. Many jurisdictions have a "Threshold of Originality," which means that simple things can't be under copyright. Stack Exchange does not probably want people to own the code they submit. For example, Stack Exchange has (and probably wishes to retain) the right to keep even deleted posts in the visibility of the high rep users (even if the author is against it). Wait what? You may be right that it is in Stack Exchange's interest to host content. After all, they get hits, which helps them as a business. It is illegal for companies to host illegal content. If somebody sees objectionable, copyrighted content hosted on Stack Exchange that they would like removed, then they need to file a DMCA Takedown Request. This is also why moderators, like myself, cannot process legal requests. The reason why Stack Exchange doesn't act themselves, even if they see something that is copyrighted and objectionable, is because it's a form of liability. When YouTube began removing copyrighted content themselves, they received a wave of lawsuits (If you remove some, you need to remove all. Why didn't you remove mine? being the argument). The plaintiff's won those, and when YouTube did nothing, they weren't liable at all. If a user wants to have their content taken down, it's tricky. You need to look at the Terms of Service for Stack Exchange: (quoting Section 3) You agree that all Subscriber Content that You contribute to the Network is perpetually and irrevocably licensed to Stack Exchange When Stack Exchanges gets your content, you grant them an irrevocable license to your contribution. This is pretty standard across a lot of sites: it's just a way to secure data and stay in the clear of licensing issues. At the same time, it doesn't seem fair for SE to acquire complete ownership of the content. The user must still have the final say, if the content is to be used for purposes not already agreed upon in the licence. They don't. What users have done is that they have provided a license of their content to Stack Exchange. This is done, again, through their Terms of Service: You grant Stack Exchange the perpetual and irrevocable right and license to use, copy, cache, publish, display, distribute, modify, create derivative works and store such Subscriber Content and to allow others to do so in any medium now known or hereinafter developed (“Content License”) in order to provide the Services, even if such Subscriber Content has been contributed and subsequently removed by You. The user grants a license to their content to Stack Exchange, but they do not assign or relinquish copyright. The code still belongs to them. It's important not to conflate the user contribution policy, with copyright assignment. You are still free to add an additional license to your content (known as dual or multi-licensing), and have a copy for your own use. Stack Exchange will always host a copy licensed under the CC BY-SA license. Stack Exchange can expect a high level of decorum and respect for laws from its users. At the same time, it cannot expect redundant attributions anywhere and everywhere, because one of its main aims is to not waste the users' time. Not only Stack Exchange expects it, but many copyright laws in various jurisdictions require it too. There's a concept known in many jurisdictions known as moral rights. These are rights that are irrevocable, whether you like it or not. Generally, these include attributions, disclaimer of liability, and other rights as well. Even if your work is in the public domain, you still retain these moral rights. If memory serves me right, the right to be attributed is revokable under United States copyright law. Therefore, attribution becomes more a courtesy, when the right is revoked. Licenses such as CC BY, and CC BY-SA still require attribution as a part of their licensing terms. What defines attribution is generally up to the person who uses the content. If memory serves right again, one can not demand how to attribute. There should be a clear-cut way to determine what is code and what isn't. The code formatting indicators on SE may not be adequate because some users simply use backticks, or 4-space indented text for other not-so-codey text. Personally, I feel like making the entirety of a post under both the Creative Commons license and whatever proposed code license they use is the best option, and allow people to use moral judgement to determine the most appropriate license. The concern comes about people who lack such judgment. I bet these same people don't follow the existing license anyway - and are a lost cause. We made it through! There will always be debate on the license of choice. Some people want the GPL, a license that's apparently closer to the status quo of Creative Commons license (I disagree that it's a good match), while other's want permissive licenses, such as the MIT or the Apache licenses. I'd prefer the permissive type, since it allows use in closed-source applications, and grant more rights (i.e. less restrictions) to the people that use them. I'm not going to right much because my hands are tired, but I'm sure if you've got more questions about the open source licenses themselves, you can probably ask on Open Source Stack Exchange.
The lack of a copyright notice is irrelevant, what matters is whether permission is granted. The material cannot be copied, except if the copyright holder grants you permission to copy. However, you might be able to create something legal and satisfactory on your own, because the underlying ideas are not protected. By way of analogy, you cannot copy the Turbo Pascal Numeric Methods library without permission, but you can study the logic of a module and write your own FFT routine. The status of something as &quot;declaring code&quot; is entirely irrelevant to the court's decision in Google v. Oracle. What is relevant to the court's finding of fair use is that the content constituted 0.4 percent of the entire API, and the fact that the copied lines of code are inextricably bound to other lines of code that are accessed by programmers, allowing programmers to bring their skills to a new environment. The court found that he amount of copying was tethered to a valid, and transformative, purpose.
Your understanding of the GPL is a bit off. GPLed code doesn't generally force you to GPL the output of the program, but that's just because the output of the program is normally not a derivative work of the program. For instance, if you write a novel in Emacs, your novel is an entirely original work. The fact that you used Emacs as a tool doesn't mean that your novel is somehow based on Emacs. This generator is different. It generates sprites by putting together art assets made by the program's creator. That means that the output contains a substantial amount of content made by the program creator, which means that it would likely be covered by the program creator's copyright. If the content was licensed to you under the GPL, you normally have to abide by GPL restrictions when you redistribute the content or incorporate it into your own program. Copyright holders can, if they want, grant additional permissions to their content and allow you to incorporate that content into nonfree software. For instance, the GCC compilers have an additional permission for their runtime libraries to let you use them in any GCC-compiled code; without that permission, GCC could only be used to compile GPL-compatible code. But unless the copyright holder has granted those permissions, when program output contains large amounts of their copyrighted content you're bound by the GPL when using it. In this case, the program specifically says that the art is dual-licensed under GPLv3 and CC-BY-SA-3.0. Since the generator's output is a combination of premade art assets (the buttons just let you tell the program which art assets to combine), the output is a derivative work of those assets. You can't use it unless your use is compatible with the GPL v3 or CC-BY-SA-3.0 (either works, since dual licensing lets you pick either license).