REUSE Software is a tool and specification for managing licenses in open source projects. You can read a tutorial here.
Because the format is machine-readable, tools can use the information and for example improve the user experience. On Sourcehut, the licenses are listed on the project page (an example).
I’ve been using REUSE for my new projects, and it’s been really pleasant. It’s especially helpful for adding licenses to non-text files, and for projects with a large variety of file types under different licenses (for me it’s often a combination of CC0 and GPL).
I wanted to write a REUSE-quickstart guide but never got around to it. The tutorial is nice, but I’d like something more concise for people who just want to quickly license their projects. How to install the tools, which commands to use and how to deal with different kinds of files. Let me know if you think that’s still a good idea!
What do you think of the initiative? Feel free to share your tips, tricks, use cases, resources or problems!
It’s generally most attractive to very large projects (think the Linux kernel or Firefox, that kind of thing) which incorporate source code from a variety of downstreams using a variety of licenses and benefit from a more structured system of understanding what files have what copyrights and licenses.
I generally add REUSE to my projects as well. Even though I personally don’t rely on it, I believe it can have an advantage for bigger corporations to get a quick overview of the licensing of a specific product/package that they are considering to use.
I think everybody that works in an “enterprise” environment knows the pain of getting your SBOM assembled. With REUSE I feel it makes it much easier, as the licensing information are already assembled for you and you can be sure that all files are correctly label with their corresponding license information.
The major benefit I get out of making my code reuse-compliant is that it forces me to be diligent about documenting the licenses used. That, in turn, helps potential packagers, and potential users too, a lot.
A while ago, when I was packaging things for Debian, writing proper debian/copyright files was a daunting task, as I had to review the licensing situation myself. With REUSE-compliant software, that task is done once, by upstream, rather than each and every distribution, rather than each and everyone who wishes to incorporate the software in a larger work.
I hate doing duplicated work, and I’d like my downstreams to not do unnecessary work either. So I document my licenses meticulously, so they’ll have a much easier time. REUSE helps a lot in this regard.