Thanks Alex! The way you explain it helps me to (finally) understand how this stuff fits together.
Would you mind if I put that information in the Wiki, for future reference and instruction? EdB On Tue, Sep 9, 2014 at 7:48 PM, Alex Harui <aha...@adobe.com> wrote: > > > 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 > > > -- Ix Multimedia Software Jan Luykenstraat 27 3521 VB Utrecht T. 06-51952295 I. www.ixsoftware.nl