Is it legal to reverse-engineer and reimplement a file format? If I reverse engineer a file format used by proprietary software and write (a) a specification and (b) a third-party program for reading and writing the format, and I publish both (a) and (b) online under open source licenses, is that legal? I am not looking at the software's code, only its interface and the file.
Yes, it is legal to do that More exactly, it is not copyright infringement. Reverse engineering has been found to be a fair use under US copyright law in: Sega Enterprises v. Accolade 977 F.2d 1510 (9th Cir. 1992); Sony Computer Entertainment v. Connectix 203 F.3d 596 (9th Cir. 2000).; and Atari Games Corp. v. Nintendo of America, Inc. 975 F.2d 832 (Fed. Cir. 1992). In general pure reverse engineering is fair use when the reuser has not agreed to a contract limiting reverse engineering and has not obtained a copy through deception. But a file format is considered to be an idea or a method of operation, and so is not protected by copyright at all, and nothing that is done with it could ever be copyright infringement. See https://social.msdn.microsoft.com/Forums/windows/en-US/3269d4f3-8b39-4a2c-8205-1a55e0c6774d/are-file-types-copyrighted?forum=Vsexpressvcs and &quot;Does copyright protect data file formats?&quot; from Lexology, the latter citing EU law and the case of SAS Institute Inc. v World Programming Ltd in the Court of Justice of the European Union (CJEU). Thus there is no copyright infringement in reverse engineering a file format, or in then writing and distributing code to read, write, or, modify files in such a format. If a valid patent applies, that may prevent creating or using such software without a license from the patent holder. But my understanding is that in most cases a file format will not be subject to a patent.
The creator of the software doesn't provide any warranty. If you feel confident in the quality of the software, nothing stops you from providing a warranty. If the software doesn't meet your guarantees, you will have to pay out because you provided the warranty, depending on the terms. Not the creator of the software because they explicitly didn't provide any warranty. If that's what you want to do, go ahead. I wouldn't. You don't have to republish under the BSD license, which you wouldn't. You must attach the license terms, which clarifies the role of the original creators, and that they don't give a warranty. Doing this allows you to copy the software. It doesn't mean you can't provide a warranty.
In general, using content provided by another who incorrectly posted it under a permissive license, such as a CC license, does not grant a valid license from the real copyright holder. That is, if A writes some code (or a song, or creates an image, or whatever else), it is protected by copyright. If B then posts it to the web, with a statement that it is released under a particular license, without having obtained permission from A, then B's &quot;release&quot; is of no value, because B had no rights to grant. If C downloads and uses this content, relying on B's license, then A could take legal action against C. C would probably be considered (in the US) an &quot;innocent infringer&quot; which reduces the minimum statutory damage amount, but does not otherwise change C's legal position. A could, if it chose, bring suit and possibly obtain a judgement including some damages. But to return to the practical case of code posted on one of the SE sites. Given the comparatively short code sections usually posted, and that they do not usually form a complete working program, and given further the stated educational purpose of SE, it is likely that in US law such a posting would constitute fair use, and in the law of other countries fall under one or another exception to copyright. That is a general conclusion, the details would matter. I have not heard of a case similar to that suggested in the question. I find it unlikely that an SE poster would post copyright-protected code without permission, that is valuable enough to be worth an infringement suit, and substantial enough and having enough effect on th market for the original to be outside the protection of fair use. Such a situatiion is, of course, possible, even if unlikely. Note that a cease-and-desist letter is not a court order, and is really only a threat of court action. its only legal effect is to put the recipient on notice, so that continued infringement is not without awareness of the copyright claim. To have legal effect the claimant must actually bring an infringement suit, which is not without cost.
The software being free and open source has no impact on whether it infringes any patents or violates any copyrights. Copyrights attach to fixed representations of creative work in a tangible medium (e.g., the actual code and graphical elements of the software in question). As long as you aren't copying the copyrighted work of someone else, you should be in the clear. So, if you write your own code from scratch, or rely on code that you're allowed to use (e.g., "free" software with a permissive license that allows it to be used freely), you should be fine. On the other hand, if you copy a chunk of code that you aren't allowed to use, and then change the variable names so that it's superficially different, you're likely violating someone's copyright. Patents are a much more difficult question. To determine whether you would infringe any patents, you would have to read the independent claims of every patent that might be related. If you perform all the steps of any one of those claims, then you are infringing that claim (and therefore, the patent in which it is found). Unfortunately, this is much easier said than done. First, it may be difficult to search for all the potentially relevant patents, and once you've found them, there may be far too many to read. Second, claims are written in a type of language that is specific to patents, and someone without experience in patent law may not understand them correctly. Finally, the terms in the claims may not take on their plain English meaning, but rather may have been defined by the language in the rest of that patent, so it's possible that you might incorrectly think you were in the clear based on a misunderstanding arising from that. All that said, it may be best to go ahead with implementing an idea and then waiting to see what happens. Chances are that the implementation will arguably infringe some patent in some way, no matter what's done. But chances are also high that there will never be any worrisome enforcement action taken against it by a patent owner, simply due to the difficulty and expense associated with enforcing patent rights.
I cannot speak for civil law systems (Germany) but in Common Law (UK, USA) systems the law looks at substance rather than form. So: Am I allowed to undo the word-wrapping of all the texts and unindent them, as well as performing a new word-wrap on them? Yes Do I have to make sure that it is readable for everyone on every device, and do I have to make sure that accessibility interfaces are used (e.g. for blind persons, which aren't even the target group of my software)? If they are licences (rather than contracts) they must simply be available; this does not mean universally available. Do I have to make sure, that if my application wouldn't even start correctly on a device, that the user is able to start the application in an impossible, absurd, magic or religious way to ensure that he can read the legal texts or is it enough to state it on the website then? It depends if you want the licences to be enforceable by you on the users or if you are simply complying with your disclosure obligations. See What if the user disagreed with the Terms of Service, but still registered on a website?. Do I have to make sure that the rendering of the licenses/privacy policy/impressum is performant (e.g. text rendering and refresh after scrolling takes less than a second)? I already have to include two external libraries with my software to display the texts, otherwise it would not be possible to display texts at all. No - make them wait if you want.
In general, the output of a program is not copyrighted by the author of the program. When you write a novel in Word, Microsoft doesn't own any copyright in your novel. When you prepare financial statements with Excel, Microsoft doesn't own any copyright in those either. There can be exceptions. Some programs (like GNU Bison, a parser generator) actually do output parts of their own source code, and their source code is copyright to the author. To clarify things, GNU made a statement in the license for Bison that officially says they don't have copyright to what it outputs. You should expect programs of this type to have such an exception, and if they don't, maybe ask the author or don't use them.
Written down computer code is subject to copyright. If you do not have the permission of the owner to copy it you are breaching their copyright unless your use constitutes fair use/dealing.
No You are limited to “your ... use only”. You are not given permission to make this available for 3rd parties either commercially or for free.