I’m working on an assembly project and I need to write code to switch from text to VGA mode. This is fairly complex and requires setting up a lot of data, so I’d rather not write it myself.
Fortunately I found a snippet of code on the internet that does exactly what I want. Unfortunately it does have a copyright notice, but no license is anywhere to be found.
I’ve currently written my own code with the snippet as a reference, but in the end it’s basically the same code with different variable names and comments. Then again, with assembly there’s only so many ways you can introduce variation in your code.
Is it okay if I publish my code with for example a notice that it was inspired by that snippet? Or am I not allowed to do this at all?
Big Fat Warning
IANAL and I might be a dog.
While I agree with Bart’s answer, mostly for his “you will need to consult a lawyer” because that’s what you should do when you have concerns about legal matters, your question can be answered a bit more clearly.
On Copyright
If you find something which isn’t explicitly stated as being in the public domain or with other copyright information, then it belongs to whoever published it, unless proof of the contrary exists.
Of course, that’s only the tip of the iceberg, as something you found online could very well be reproduced by someone who malevolently decided to say “here, I make this PD” even though they took it from a non-PD source. Also, the thing with law is that it isn’t universal and varies from one country to another, and international copyright laws are murky waters.
See the Berne Convention for a classic example of international copyright agreements.
On Licensing
Regarding the right to re-use and re-distribute, the general rule is that if someone made something publicly visible in sime form, you are entitled to reproduce and use it privately, unless otherwise stated (this is a common concept for instance for taking photos of publicly visible items or people (see: 1, 2, 3), duplication of CDs for private use or backup purposes, etc…).
For commercial re-use and public re-distribution, however, if there’s no clarifiaction you will need to get a licensing right granted by the copyright holder (did you try to contact that person), unless in some circumstances:
- your use of the material falls under the “fair use” conditions (quite unlikely for source code re-used in a program)
- your use of the material is in a derivative work and is transformative,
- you can provide sufficient proof that you made all possible attempts to contact the copyright holders (and transitive right holders) and they could not be located (meaning you can actually prove that nobody else owns the copyright, which is going to be a long and difficult process).
Get in Touch
So, easiest routes for you:
- contact the owner and ask for an explicit re-use and re-distribution license (with modification rights, if necessary),
- contact a lawyer.
2
For a definitive answer, you will need to consult a lawyer.
The fact that your code is not a literal copy is a good start. The two remaining questions are
- Are the differences of such a nature that they are not the result of a mechanical process but required original thought?
- Given sufficient time and effort, could you have written this code without referencing the snippet you found? This question is more borderline between copyright and patent issues.
If the answer to both is ‘yes’, chances are that you can publish your code.
0