On Mon, Nov 17, 2008 at 8:47 AM, gedmurphy gedmurphy@gmail.com wrote:
Steven, do Wine have any thoughts on this? I only brought this up so it doesn't look like we're ignoring Wine's requests.
I propose we try to adopt a simple set of guidelines for how to handle Wine (or for that matter any other) code that is derived in ReactOS source files. The KEY thing is we want to keep it fun and not add a bunch of work otherwise no one will want to do it. If we need to do an audit later having some simple rules in place will save us some trouble. I think the rule of thumb should be something like
- if you copy an entire source file from Wine with only minor changes, such as we've done in a lot of places in advapi32 or kernel32, leave the original license header with authors place. Add a GPL header on top for your changes if you hate all things LGPL or add yourself to the original Wine header with a comment that you did the ReactOS changes.
- If you copy a function from Wine verbatim or with very minor changes but are adding that to a source file containing mostly ReactOS original code, put a comment in the comment block above the function that its came from Wine (in case we want to audit later). In the ReactOS license header, attribute the Wine author that you 'think' is the original author based upon the Wine license header. It's not your fault if they did not make it clear in the source file which author implemented what functionality and if you got the Wine source via tarball or something, its not like you have a method of checking the revision history anyway.
- If your doing major hacking on a function that is derived from Wine sources, I don't think its too much trouble for you to fire up a browser and hit http://source.winehq.org/git/wine.git/?a=tree to see who the original author is and note this in the license header. Again, this brings in to question, how much of the original work remains after your changes? It's a judgement call. I think the rule of thumb should be, if you were going to add a comment to SVN saying 'from Wine' then you need to credit the original author.
- If your work really has no resemblance to the original Wine code, the original Wine code was totally wrong and you had to rewrite the whole thing, then you don't need to credit Wine at all. If you just want to credit them you can always say something like 'inspired by Wine'
Alexandre tends to avoid accepting formatting changes so using 'git blame file.c' is pretty safe. Another thing you can try doing is grepping the Changelog for the function name and see who's credited as the author. I don't think either of these processes take very long but I don't think that ReactOS developers need to go through all of the trouble in every case. We already have a lot of Wine derived code used in a large number of places, so it does not make sense to try to go back and audit everything right now. We don't want to make it too much of a painful process to do something simple like attribution.
If these suggestions seem like too much work or too much process, feel free to disregard them. I will just keep pestering you if I see a bunch of 'from Wine' svn commits with no attribution on them. =)