How I Deal With Copyright Notices
Copyrights! or is it copyleft? Which direction are we going to? I don’t know; do you? Jokes aside, copyright is some very serious stuff and is in the very basis of everything FOSS… or it will stay so unless we see some very, very radical changes in copyright law. Remember, all your favorite licenses work on top of copyright law!
I’m not a lawyer, but I do have some legal training, both at college because I took some courses in Law school and because when you’re a linguist or someone used to the publishing industry, you get to touch on copyright every once in a while. Don’t take this as legal advice, but believe me I’ve dealt with copyright releases in places outside the FOSS world.1
If you don’t know how copyright works at any level, I highly recommend you take a look at Tom Scott’s video on the matter. It’s centered on YouTube and social media, but, in my honest opinion, his is the best (and funniest) take on a topic you usually get very dry and technical explanations for. Also, we all love a well-spoken Brit guy explaining things in a documentary in a perfect British accent, don’t we?
Now that I’ve give you some pointers as to where to find some information on this, I will assume that you know the basics of copyright.
So, you surely know this if you’ve been around the FOSS community: almost all FOSS licenses require you to preserve any previous copyright notices you find in a codebase. A “copyright notice” is the piece of text that states something along these lines:
Copyright (c) 2021 Ariadna Vigo
Notices always show the year of creation and the name of the individuals or group who are copyright holders of the work. Optionally, they might include the word “Copyright” itself and the copyright symbol stylized in some fashion. Their purpose is to state a copyright claim and as such, they are…
…completely useless, because they’re legally moot since 1989 in the US and worldwide since the Berne Convention in… 1887… Yes, that’s the 19th Century.
Copyright law doesn’t require any notices anymore, although we all still use them. They’re certainly useful from a social standpoint: they clearly state who are the holders of copyright of some work, if you need to contact them in case you want to license that work. Also, because it’s nice to stamp your name onto whatever thing you created, isn’t it?
However, licenses are binding. Most of the licenses we use and love were originally written in the US before 1989. The GPL dates back to 1989 itself, the various BSD-like licenses date back to 1988, and everyone else somewhat followed suit even later on. The copyright notice is a cultural artifact that everyone recognizes as what it is and does no harm, so that’s why everyone uses them and why all licenses in some manner require you to keep them intact.
The problem? Which notices do you have to keep intact? And where? A quick glance over different FOSS projects will quickly… drive you absolutely nuts. Some projects, especially those using the GPL version whatever place notices per module in a way that implies that copyright should be attributed per module as well. Some other projects put them all together into one single project-level file, implying that copyright attribution is over the whole project… but do you need to keep notices for people whose code has been removed? Technically, you shouldn’t remove those notices! And do I need to add notices for every single contribution there is, even if it’s just fixing a typo? AAAAAAARGH!
Other projects, especially in the suckless-side of things, don’t place notices anywhere and work under the assumption that it’s the VCS job to attribute copyright… but what if that code is copied over some other project as-is (i.e. not using something like git submodules) and all that information is lost?
In my opinion, and after several years of trying to make any sense out of this mess, I’ve come to this method that I use to deal with my own projects and patches I occasionally get for them. It’s probably wrong at some level, but if you find it useful, please do use it:
- Copyright notices for the project are found in the LICENSE file, ordered in strict alphabetical order (by first name).
- Modules “imported” into the project retain their copyright notices in their own code if they had them there (e.g. the arg.h header). If the code comes from a project that also listed notices in a file specific for that purpose, I append those to my project’s LICENSE file. This is rarely the case in my experience: I think the last time I had to do so I was still using Launchpad and bzr.
- I place copyright notices for all contributors I accept a patch from. I do know that copyright law doesn’t necessarily attribute rights to those whose contribution is not “original enough.” What that means is so dependent on your jurisdiction that it’s safer to assume that everything may be granted copyright.
- I never remove any notices, not even if the code is no longer present after some massive rewrite. The LICENSE file, under my own view, does not only show attribution for the current codebase, but for the whole history found at the VCS backlog.
On the other hand, my patches to other projects have mostly been very small one line fixes, so I leave the project’s leader or team decide what to do with that. The very occasional times in which I’ve contributed anything more substantial it’s been the development team themselves who’ve asked me to include myself on the notices list. I guess if I happen to write a huge module for someone else’s project I would place my own notice, but generally I prefer not to do it on my own.
I would love, though, that this whole mess got sorted out someday. It strikes me as super unusual that we’re constantly using copyright licenses for our coding projects, but we don’t really seem to know how to deal with them. Yeah, there are lots of articles and guides on how to choose a license depending on your wants and needs, but… nothing of real practical value about how to follow those very same licenses in a way that is based on real world experience. It almost feels like all of us just slap on whatever license we like most and act as everything is fine as long as we give back the source and don’t steal some code from some proprietary source… But the devil is in the details and I’m sure that if someone wanted to make some serious money, they could easily start suing people for stupid bona fide violations of FOSS licenses everywhere…
Hm, I’m starting to think that maybe releasing everything into the public domain seems the easiest route to go? Oh, the irony…
Also photography. ↩︎