Can the permission to implement a specification be restricted? Let's say I invent a new image file format and release the specification to the public. Is it possible to only allow GPL projects to implement this specification? Or is this not possible in the U.S.? (Because the national laws do not allow something like this. To keep it simple let's assume we are in the U.S.) There is a similar question here but it is not the same because it is about a reverse-engineered file format.
Unless you have a legally valid IP right related to the specification that statement is meaningless. When a software license is granted it is based on the copyright of the code. The copyright of the spec. just stops people from copying the spec - it does not protect the information in it. You can restrict copying of the spec. under copyright, you can make up a name for the spec (like USB or Bluetooth) and get a trademark and only allow the trademark use in limited cases(doesn’t stop implementation of the spec), or get a patent that would be necessarily infringed if something complying with the spec was created and used, sold, made, etc. or you can keep it secret and only show it to people who contractually agreed with your terms.
Yes, you can fork it - but you can’t use it GitHub explain what’s a public deposit with no licence means here. If you find software that doesn’t have a license, that generally means you have no permission from the creators of the software to use, modify, or share the software. Although a code host such as GitHub may allow you to view and fork the code, this does not imply that you are permitted to use, modify, or share the software for any purpose. Your options: Ask the maintainers nicely to add a license. Unless the software includes strong indications to the contrary, lack of a license is probably an oversight. If the software is hosted on a site like GitHub, open an issue requesting a license and include a link to this site. If you’re bold and it’s fairly obvious what license is most appropriate, open a pull request to add a license – see “suggest this license” in the sidebar of the page for each license on this site (e.g., MIT). Don’t use the software. Find or create an alternative that is under an open source license. Negotiate a private license. Bring your lawyer.
Copyright never protects ideas or processes, it only protects expression: words, images, and sounds, some of which may describe ideas. But when a work is nothing more than a translation of an idea into words, with no independent originality -- when almost anyone would use more or less the same way to describe the idea, then the work will not be protected by copyright at all, as it is not considered an "original work". Computer code that implements an algorithm often falls under this rule. It is my belief that the code shown in the linked SE thread would fall under this rule, and would not be protected by copyright at all. If this is correct, then anyone may share such a program with no copyright concern.
It is not necessary to design anything (program design is outside the scope of Law SE, anyhow). It is legal to pay a person to encrypt your drive with BitLocker. It is legal to instruct them, as part of the contract, to not reveal the key to you, until you complete your contractual obligation (paying the fee that constitutes your consideration under the contract). The contract could immunize the encryptor against liability for the drive-owner wising up moments after enter is pressed.
Yes, a work with no license is All Rights Reserved, reserved meaning the creator of the work. Who is the creator of the work ? Everyone who contributed it, unanimously. Yes. If people contributed any copyrightable part of your work, in theory you cannot add any license or grant any right to use/reproduce/whatever the work without their unanimous agreement. That's very cumbersome, and almost nobody really does that, but it's what the law is. Big serious companies and repos require contributors to waive their rights on the code they contribute, by agreeing to a contributor's agreement. For example, python/cpython requires you to give your contribs a license allowing the python org to do essentially what they want with it, even though you retain copyright over them. If your project is not so serious, I suggest it should be enough to make the license clear, and that by contributing people are agreeing to place their contribution's code under the license. If it's a free license, that's all you need.
Ok here is my go at answering my own question: (see comments above &amp; below for links) Depending on what you want to do, GPL can be a bit complicated, with multiple versions, version numbers, and added exceptions over the years. it can be a headache. However, for this purposes of app development incorporating GPL/LGPL libraries, it is fairly straightforward. Keep in mind to check version numbers on all relevant documents, although they are most likely v3.0. As far as I know linking to a GPL library binds you to also releasing your code under GPL. So that is a no-go for closed source, but that brings me to my 1st question. is it legal for me to remain closed source while incorporating external libs that are both BSD and LGPL? and I think the answer to that is yes provided that I dynamically link to said component (.so .dll .dylib .framework). Permission of this is granted under section 4d of LGPL v3.0. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. My 2nd question Would it change the ability for me to stay closed source if i were to use an altered version of one of these libraries? It is my interpretation that in this case the only source you would need to provide is that of the modified library, and that the application itself can remain closed source. I'm basing this on grounds that nothing has changed from the situation for my 1st question other than the fact that the modified component library is now a derivative work under standard GPL v3.0. finally my 3rd question what is the legal effect on static vs dynamic linking? This seams to be a bit iffy. Again see section 4d of the LGPL v3.0. By this wording dynamic linking is much preferable, and there are basically no requirements. If you choose to link statically though(in other words as part of the project build) things get complicated. To fully understand see LGPL definition of "Corresponding Application Code", and then see sections 4 5 and 6 of the GPL document. Full source is not required, but as far as i can tell you are required to provide all necessary materials for someone to build the project from scratch, so they can use a different version of the library if they so choose. This, in my opinion, would not be closed source. I hope that is clear enough? I did quite a bit of looking around the internet in coming up with this answer, and in the end even some reading of the license, though I'm not sure I've actually read them through in there entirety. Keep in mind that there are multiple version of each license, and you should check version numbers for each LGPL library you use. There is a lot of good information on on opensource.stackexchange, although much more than one can process in a single sitting, and with occasional disagreement on finer points. Below are some related links. gnu.org/licenses/gpl-3.0.txt gnu.org/licenses/lgpl-3.0.txt copyfree.org/content/standard/licenses/2bsd/license.txt opensource.stackexchange.com/questions/1700/are-derivative-works-a-subset... opensource.stackexchange.com/questions/2772/can-this-nvidia-licence-be-us... opensource.stackexchange.com/questions/2488/do-i-need-to-host-qt-source-w... opensource.stackexchange.com/questions/1431/are-there-examples-of-proprie... opensource.stackexchange.com/questions/5162/are-the-terms-of-lgpl-3-0-alr...
The creative commons licenses explicitly include a paragraph that they cannot be revoked once granted. That is an important concept of all free licenses (CC, but also MIT, Apache etc) Now it's a fact that Flickr (and maybe other sites) do allow changing the license to something less permissive. If you use one of their images, it's really best to keep a proof that it once was available under the CC license you originally got it with. This can be e.g., a screenshot or a link to the wayback machine. Wikimedia commons is often affected by this problem, as people regularly upload files from Flickr (which is absolutely ok, if they have a CC-by-sa or similar license at the time of the upload). Commons has installed a review process for such uploads. Trusted users check that the uploaded files really have the license on Flickr that the uploader declared. If later the license on Flickr is changed by the original owner, the history on Commons is considered to be enough evidence that the license was, in fact, permissive earlier. More about this can be read here.
If you want to implement this or a similar feature, you'd look up the patents, and either get a license (unlikely that Microsoft would give you a license), or figure out how to implement the feature without violating the patent. An example how a company I worked for worked around a patent: In order to compress data. in the best possible way, the idea was to try eight different methods to compress the data and pick the best compressed data. There was a patent for that (even though to me, this was quite obvious). Workaround: The software tried eight different methods and reported a number from 1 to 8 indicating which method gave the best result (unlike the patent, which actually gave the best result). Then the data was compressed once using the best method. No patent violation. You'd probably want a patent lawyer to check if your idea how to implement the feature violates the patent or not, and how to get around it. It takes a specific mindset that you and I don't have. And even good lawyers who are not patent lawyers might not be able to help you there. Commercial vs. open source/free software makes no difference, except that Microsoft might not bother suing you if there is no money to be made. Unless the intent is to prevent you from implementing the feature, in which case the would sue companies without money as well.