Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to fork, make significant changes, and give proper credit? [closed]

There is an elisp project on github I have forked. Some of the source files and functions I don't want to change, some I want to change drastically, and others only slightly. The original copyright at the top of each source file mentions the project that it came from.

1) Should I rename all functions or only those that have code changed (no matter how minor)?

2) If I modify some functions within a file but not all/most should I rename the file and change the copyright at the top to reflect my project instead of the original?

3) If many/all of the files get renamed how should I give credit to the original authors (other than their commits showing up in git log)?

notes

I'm forking due to wanting to take the code in a very different direction from the original's stated purpose and my fork would not be pulled in by the original authors.

The original project and my fork both use GPLv3

Elisp code by convention prefixes the name of functions/variables with the project name to avoid namespace collisions.

** Edit **

Found some additional information after posting...

How to rebrand/copyright a forked project (GNU/GPL)?

1) Sure. In fact, not changing it at least a little would imply it's the original project, which is a bad idea.

2) You can't remove copyright notices. Add yours on top.

3) Why do you want to remove the reference to the old project? It's a suggestion, but removing it would be impolite and potentially misleading. The Open Source/Free Software communities value correct attribution.

Need advice on attribution/copyright of heavily modified OSS code (BSD, Apache, etc) in source headers

If you copy even a single function out of a file, unless you could convince a court that the function was too trivial for copyright to apply, then the license of the source file stays with the function

Between Stefan's answer and these stackoverflow posts I've decided to:

1) Rename all files and functions even if unchanged to use my project's name.

2) Keep the original copyright as is in all existing files (and a few new files resulting from moving the old code into more logical subdivisions)

3) Add my copyright to all files new and old.

4) Make a note just above the old copyright to check git history before a certain commit id to see the original project at the time of fork as well as a reference to the url of the original project to see the most up to date version.

I think these changes should make clear that this is a separate project while maintaining credit where due to the original and avoiding any namespace conflicts or copyright violations.

like image 683
user1854496 Avatar asked Feb 27 '15 16:02

user1854496


People also ask

How do I fork my own repossession?

You can fork any repo by clicking the fork button in the upper right hand corner of a repo page. Click on the Fork button to fork any repo on github.com. Source: GitHub Guides.

Why to fork a repo?

Most commonly, forks are used to either propose changes to someone else's project to which you do not have write access, or to use someone else's project as a starting point for your own idea. You can fork a repository to create a copy of the repository and make changes without affecting the upstream repository.


1 Answers

Copyright is cumulative (i.e. as long as you keep using some of the original code in the new code, the original's author still applies to that part of the code). So don't replace his copyright with yours, but just add yours next to his instead.

like image 145
Stefan Avatar answered Nov 10 '22 17:11

Stefan