 Thank you for having me here. My name is Max Miel. I work for the Free Software Foundation Europe, the FSFE. We are a charity that empowers users to control technology. And today I would like to talk with you about one of our projects called ReUse. This is a nice project aimed towards developers but also people reusing software code and how we can make that easier. But before getting started right into the topic I would like to ask you for some honesty. So I have three simple questions so if it applies to you please raise your hand. The first question is who of you has ever programmed some software code? Maybe a shell script or a sophisticated program? Okay I see 95% of the hands up perhaps the last 5% are either sleeping or never really never touch software code but this is fine as well don't leave the room it might be interesting to you as well what I'm talking about. Second question is who has ever released some software code so released it as free software? Okay numbers drop not significantly 80% that's awesome folks you're awesome you're providing code your your creativity as free software to other people you spread the four freedoms and enable people to control technology that's awesome but now the last questions before we get started who has never been confused by how to properly license their free software code it's never one two three wow guys either you really blatantly lie to me or your geniuses really congrats okay next genius so this is the problem right we have four people in this room roughly 5% who probably know how to do free software licensing we should change that so there are some common uncertainties when doing free software licensing right so the most easiest question is where do I put the information about my chosen license so you do free software you release that and you think about which license should it have like which under which conditions can users use and reuse your software because that's your freedom to decide that but where to put that in the README file in some license text somewhere in the repo do you have to edit every file or do we have to call Richard Stallman to ask him well that that's the problem right we don't know or many people don't know and what do I do when I have multiple licenses in my project so this could well be if you your code is under a GPL license well under which license you can decide but you have some documentation for instance which is should be under like a documentation license and the text license like creative comments so you have now two licenses where to put this information two license files in your repo that's that's complicated then very important how can we make sure that re-users are aware of the license that we've chosen so you said I want to have a copy left license or I don't want to have a copy left license how can you inform re-users so other free software projects individual users but also big corporations about your choice how can you do that like how to make them really aware of what you think about your conditions for reuse and well last but not least free software is great because we can build on top of what others have solved so we have an issue a problem another guy another girl on the internet solved that issue you want to take the code and reuse it in your own program to make a shortcut that's great free software enables you to do that but how to find out which conditions which license the other person chose so now you have to crawl through the repository the read me file or you have to trust something like github.com and the license indicator on top and that's that's that's not really cool I mean that that's work and free software programming should be fun so we thought we really have to make licensing and copyright easier for everyone so we have to find easy solutions because the solutions out there are not really solving the problem and we came up with something called reuse reuse is supposed to help you free software developers and free software re-users our ideas to solve this problem at the very source so we don't store information about our copyright and our licensing choice somewhere else but as close as possible to the source files so the idea is that it's really hard to ignore your licensing choice and your copyright information so what we did is to came up come up with best practices for free software developers to make this licensing easy and transparent for everyone so easy for developers easy for re-users and as I said the idea is to store this information as close as possible to the source so ideally at every file so sorry so in you would have in each source code file a license header or something like that or something where it's really easy to find this licensing and copyright information and so the steps to reach this goal are quite simple there are three steps the first is choose and provide licenses so you should as a free software developer make a conscious decision about which license to choose and store this in a dedicated place like the full license text inside of your repo the second part is to add copyright and licensing information to every file so either add a commentator to every source code file or if that's not possible like for binary files like pictures or like other edge cases we also provide some other alternatives to do that the ideas again as close as possible as transparent as possible and the last step is to confirm we use compliance that's quite simple we have a reuse helper tool which can check your repository and you can verify whether you have this information available for every file if that's done you get a big fat smiley and you're done for this so this is one example how this may could look like this is a commentator which could could you could store in in the file and it just has two lines basically the spdx license identifier so that's a unique identifier for the license you've chosen so that's really clear and the second is a copyright who is the copyright holder of the file and this is also very important information that's the most important information you need to give out and if you release free software so this sounds quite theoretical we made it practical we have the set helper tool which enables your help you in becoming wheels compliant so this doesn't only check whether your reuse compliant but also give a tool to initialize your repository to download the license text so you don't have to find them in in the internet from different sources and it also helps you in adding these licensing and copyright information to the header to the header or also of the files or also the alternative solutions so this by that becomes really simple and the tool is easy to install you can find it online it's free software of course but we also work on the like learning side so we have a tutorial that will get you started so you will go through an example repository and you will just learn how to make this reuse compliant and in order to help you to understand the principles of reuse we also have an FAQ this is not only for the reuse tool and the reuse best practices but also for basic licensing questions like for instance what is copyright how does licensing work do i have to put something like the year in my copyright statement or something like so really simple simple things and to be honest one year ago or two years ago before i really started to get into this reuse project i also didn't have much clue about it but like this FAQ and the whole combination of the tutorial and the simple guidelines really also helped me to understand copyright and licensing and to make it this easier so if i have a free software project now it's really simple we have the best practices of course so this is not only nice words on some website but we have a formal specification of reuse so the idea is that it this is not a small movement but that we can make this a standard for every free software project out there so there's a formal specification for source forages for companies also for projects that you can follow and that we constantly develop if you see need for that and last but not least we have something like a reuse as a service so we call this the reuse API by this you can quickly register your project your free software project so it's any git repository no matter whether it's on a github, gitlab or some other independent git platform you can register your project you can see whether it's already reuse compliant well it probably won't but it will create a dynamic batch that you can include in your readme file so people can see that your reuse compliant and see the result of the reuse check already so this is dynamic if you came to the point that it's reuse compliant you will always see that if you're not reuse compliant it will also show that this is not the case so this is really transparent and really easy to start with so speaking about easy to start with who's already using reuse so obviously we started with our own projects and work quite well so the fsve repos but a really cool thing is that there's the next generation internet project this is a big project by the european commission where the fund 120 or over 120 projects software projects that make the internet or should make the internet safer more secure and privacy friendly so we have 120 free software projects that are reuse compliant funded with public money so this is a really great thing and this will speed up the whole thing but we also have and this is really great to know the linux kernel this is right now 60 to 70 percent reuse compliant already so they have added the copyright information and added the license identifiers already to 60 to 70 percent of their files and this is great when you know that the linux kernel has such a long history and so many confusing like copyright statements with changing companies and stuff that's really complicated to clean that up but the linux kernel is already quite far and so we hope to help these guys to finish this up very soon we also know about some multinational corporations who are already using reuse and make this a best practice for their developers for their free software projects and so one question remains is your project already reuse compliant probably not but you should do that so go to reuse.software and make your free software project reuse compliant and by that secure your intentions how you want to have your code handled by other parties by your users so if you want to contribute of course everything is free software and quite transparent so we look forward to your bug reports if you try it out we look forward to pull requests also to the website also to the specification everything is transparent so please help us in becoming better and make it easier for everyone you can work on this and on many other projects if you become an FSVE intern so we just opened up a few positions so no matter which background rather social science technical legal we have many cool projects and among them is also the reuse project so check out fsvepros.org and of course spread the word try it out if you like it tell your friends tell your colleagues tell your free software projects tell your boss and in your company that would be great we need that because reuse is only mighty becomes only mighty and useful for many people if as many projects as possible we become reuse compliant and thereby make copyright and licensing easy fun and simple again so I would like to thank you for your attention if you have any questions go to reuse.software or just approach me after the talk or ask some question now thank you any questions does distributing the license across all the files not make it a bit more difficult as well to find where should I be looking for the file the license that will apply to my reuse of this code so if you have 20 different files potentially with different licenses you have to go and check all of them yeah sure but the idea is that you I mean it doesn't matter whether you have only one license or 20 licenses over 20 files you can also do a license files but it's important that if you do that like for instance you use from a third party a certain library then this might have a different license so it's important that people reusing then from your code which are the in which you also reused other components that it's quite simple to see ideally at the top of the file under which license from which copyright holder this file is so of course it might be complicated but that's free software licensing but we should make that more transparent and that's just the idea of reuse any more questions other questions there could also be different licenses within a file right like Stack Overflow has you know you can copy code from there as long as it's attributed or things like that does the reuse handle any of that unfortunately not but that's a really cool question that we also want to work on the idea that we had is to have something like a here begins code under this copyright and this license and here dense that would be great like right now the reuse tool at least you could do that already but the reuse tool doesn't really detect whether a license is split in multiple snippets for instance you could do that manually somehow but the tool would will search for this spdx license identifier and for a copyright statement already so it would at least carry the information that there are multiple licenses in this file somehow but it's not like really easy yet but we can figure that out I think there's already an open issue for that so if someone has a really good idea please help us I would be great okay thank you very much that's all the time we have questions thank you