patacongo commented on issue #8858:
URL: https://github.com/apache/nuttx/issues/8858#issuecomment-1487212762

   > * Licensing issue: While major part of the implementation is my own and 
therefore can be released under Apache License, the idea of the algorithm 
itself is taken from libntp @patacongo refered to. I am not sure about 
licensing in this case. Do we need the original author agreement?
   
   I haven't looked at your implementation, but if you ONLY took the algorithm 
and implementation is wholly yours, then there is not copyright issues.
   
   Think of it this way:  The copyright protects the implementation.  It 
protects the actual code.  If you re-use code, or even copy-paste sections of 
the code, you may be violating a copy right.  If you look at the code to 
understand the algorithmic content, then write you own code that implements 
that algorithm, you have not violated any copyrights.  People do this all of 
the time.  That is why we can have work alike versions of some things.  This is 
the whole basis of IBM's clean room design that has led to thousands of line of 
opened code.  https://en.wikipedia.org/wiki/Clean_room_design
   
   There can be an issue with using if the underlying algorithm is patented, 
however.  Unlike copyrights, patents can protect the content of the code.  
Think for examples of the problems that people had with writing their own open 
source MPEG4/5 algorithms.  MPEG4/5 is patented so although there is no 
copyright violation from distributing the code, there is a patent violation if 
you use the code without permission.  I doubt that applies here; the adjtime() 
algorithm is not that complex and probably not patentable.
   
   > * I implemented adjtime function separately from TIMEKEEPING support as 
that seems to be implementing not only adjtime but also some other stuffs. I 
think it is ok to keep it separate, what do you think?
   
   adjtime() is a standard application interface.  It is not POSIX but still a 
part of standards that NuttX follows.  I think that adjtime() should be 
available with being conditioned on a configuration variable.  That should not 
result in any size increase since adjtim() is a leaf function in a library;  in 
the FLAT build it will not be drawn in unless it is specifically referenced. 
(It will get pulled into PROTECTED and KERNEL builds because the system call 
logic will reference it.
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to