I'm going to write a C library that contains the major and most useful functions from Apache Commons IO's Java package. I will rewrite in C a lot of functions contained in Apache Commons. What do I need to do when licensing my library? Do I have to write something about intellectual property? I'd like to use a BSD 2-Clause license for my project.
Licensing a derivative work from a project
derivative works;java;intellectual property
The Apache license is sublicenseable:Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. I can therefore create a derivative work of Apache-licensed code under any license I please BUT I still must abide by the terms of the Apache license itself, including keeping notices, license texts, change tracking, etc and both license terms will apply.Therefore, sublicensing using a BSD is a rather moot point and I would rather instead keep thing under the Apache 2.0 license.So I have to include in my source directory the NOTICE and the LICENSE of Apache Commons and I have to write in my NOTICE file that my work is a derivative from another Apache licensed project? Yes, and a little more: the section 4 of the Apache license is clear and explicit:a You must give any other recipients of the Work or Derivative Works a copy of this License; andb You must cause any modified files to carry prominent notices stating that You changed the files; andc You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; andd If the Work includes a NOTICE text file as part of its distribution [...]