I am currently studding OpengGL with OpenGL Supebible 5th edition. I’ve found interested for me some C++ code that is distributed with the book (see also on google code). That code is under New BSD License. I am writing my software on C# with SharpGL wrapper and I’d like to know following things:
- Can I rewrite that C++ to C#? edid: I’am interesting in using such things like GLBatch, GLShaderManager and some other thing from GLTools. Problem is that library is on C++, but I use C#.
- How do I have to mark my source code if I put it somewhere like to my github account?
- What disclaimer should be?
Original disclaimer looks like:
/* GLShaderManager.h
Copyright (c) 2009, Richard S. Wright Jr.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list
of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.
Neither the name of Richard S. Wright Jr. nor the names of other contributors may be used
to endorse or promote products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
Edit:
Should my copyright looks like after rewriting something like that?
Copyright (c) 2014, My Name
Copyright (c) 2009, Richard S. Wright Jr.
All rights reserved.
Redistribution...................
4
That’s the original 3-clause BSD license, not the newer 2-clause. The key difference is the requirement for attribution.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Means do whatever you want, so long as you provide a copy of that copyright notice and don’t use Richard’s name in promoting the software.
So what should you do?
Copy / re-write whatever code you need.
In your copyright.txt file, include the same block as you listed in the question and then put your copyright statement above Richard’s.
If you have any documentation, you’ll need to include that same copyright statement because that’s what he wrote in his version of the license. A great way to do this is in an acknowledgements section.
Don’t advertise your version as being endorsed or super-duper-wonderful because you borrowed the code from their project. (That’s the “endorse or promote” clause).
3
With most open source licences you can do what you like with the code as long as it’s for your own personal use. However if you plan on distributing the code (or any significant part of it) to others then you can only do that in the way that the licence allows.
BSD is pretty easy to comply with. What you are proposing should be just fine. If in doubt, contact the author and ask.
As I tell people repeatedly, if you make no money out of it and harm no-one then just do your best, acknowledge the work of others and don’t worry too much. If you make money out of your product or services and/or if you may cause damage to someone, you must take competent legal advice. That won’t protect you, but it will warn you about the risks and possibly help to mitigate them.
If you write new code which is based on close study of code written by someone else but is not a copy or adaptation of it, you may be able to argue that you don’t need a licence. That’s only something to consider if at some future time you want to use the code in ways that might breach the BSD licence.