I’m a contributor to a large open source project. I have made heavy changes to a submodule of that project to support more functionality, but at this point further improvements will be outside the scope of the original project. As such, I have pulled only the relevant files to the submodule into their own repo, and am proceeding with a major rewrite to allow for these new features. The file structure is such that this submodule can live on it’s own, with the original as a dependency.
My question is, what are the licensing/etiquette issues I need to follow? At this point, the codebase only has traces of the original files left, but they did help get things started. With a BSD license on the original project, what do I need to do for my forked project to comply?
With software licensed under BSD, you have freedom to add your own license, as long as you keep all the original copyright notices. This has been done extensively, both from BSD->GPL-family and from BSD->proprietary.
Etiquette is always fuzzy, but I’d say:
- you make sure your repo contains a URL to what you forked from (i.e. more than just the legal minimum), and (if you’ve done branch filtering – please don’t if you can avoid it) a script to create/update your repo from upstream (use exact hashes or tags instead of branch names, use GIT_AUTHOR_DATE, GIT_COMMITTER_DATE, etc for reproducible repos).
- you make it very clear to upstream that you exist, and what your scope is
- if you modify or create any purely utility functions, you keep them under a license that is useful to upstream.