Steven Edwards wrote:
Hi Hartmut,
On 1/19/06, Hartmut Birr <osexpert(a)googlemail.com> wrote:
If it is legal by the ReactOS policy to
disassemble every piece of
windows code to implement ReactOS, I would like it if ReactOS can put
this on the home page as the first topic.
This type of reverse-engineering is prohibited by law in many countries.
It gives M$ a very easy way to kick the project.
I can't believe that the project was started with this justification.
No this is clearly a violation of the policy
From Section C of the ReactOS IP Statement (C.
Copyrights of Others)
....Any source code produced by direct reverse engineering should be
treated in exactly the same way as any other non-free source code -
useful for study and understanding of the system, but not permitted
for inclusion in ReactOS.
My recommendation for ReactOS is:
1) Review the ReactOS project development policy
I think the policy is clear that this type of dirty-room reverse
engineering should be used as a last resort only.
Personally, I think that if the project is to survive
(and I suspect it may be too late) the policy should
be:
If you look at a piece of windows in a disassembler,
you MUST NOT implement that code for ReactOS. You
can write a document describing what is necessary
and put that document in SVN. Some other developer(s)
MUST do the implementation-- furthermore, they MUST
do the implementation without discussing it with
you-- they MUST work strictly from the document you wrote.
That may be harsh, and slow down progress, but I suspect
that is the only way ReactOS would survive a legal challenge.
Probably, to be safe, we'd actually need to say:
If you look at windows in a disassembler, you
MUST NOT write code for ReactOS. Sorry, thats
the way it is. But wait! You can still help with
the project by looking at this list (link to list)
of things we need to know in order to be compatible
with windows. Then, discover this information using
the disassembler, and write a specification (plain
English, no code or pseudo-code please) that describes
what we need to know and submit it to the project
for inclusion in our repository. One of our developers
will then (eventually) get around to using your
specification to correct our implementation to be
compatible.
I'm not sure we'd ever get that through... but that is the
way it should be.
Of course, I'm not a lawyer ... so what do I know.
Thanks,
Joseph