On 9/9/14 9:51 AM, "Erik de Bruin" <e...@ixsoftware.nl> wrote: >Not to poke my nose to deep into what is shaping up to be one of those >nice >and informative legal threads, but I think I may have a relevant question: >if some bit of code is AL, is there a 'legal' way to rip it apart and put >it back together again, improved and upgraded and then use it for the >project? I do not claim to have authority to give a final answer, which is why we usually end up asking on legal-discuss, but my mental model is this:
-Every line of code was written by somebody, and therefore copyrighted by that somebody (or their employer). -The Apache License says you can bundle those lines of code into some larger code base and modify or add to them. -Copyright law says that after some amount of modification, you own the lines you changed/added and somebody owns the lines you didn't touch. IMO, the law sort of stops there, then policy starts to take over: -There is an unwritten policy that says that Apache projects do not "take" code. It must be "donated". -Apache projects are free to use code from other projects within the ASF. -AL-licensed code not outside the ASF is considered third-party. -Things not donated can be bundled as third-party. -Third-party headers should remain intact and not modified to the standard ASF header. -Copyrights in NOTICE files in bundled AL works get aggregated in the top-level NOTICE file And then there is a convention we learned about during the last installer release. -The LICENSE file should provide pointers to third-party works So, IMO, the answer to your question is "yes", but then we have to handle it properly afterwards. If you take some code and totally rewrite it, I believe it is then all yours. This would be the case when porting code from one language to another. It gets murky if you re-implement some functionality already in the same language. For MD5Stream, I took the code from a third party, left the public function headers and some constants intact and rewrote the method bodies. When done, I felt that there was no creative content left from the original so I considered it mine and "donated" it to the ASF. In briefly looking at the code Om borrowed, it looked like lots of it was from the original so I would think it needs third-party handling. IMO, if you think the end result is going to have a fair amount of original code in it, I would start from a copy of the original file and modify it, as opposed to starting a blank file and copying third-party code into it. -Alex