Software licenses (pt. 1): A general introduction

This is obviously not about the EERIE distro or Arch:E5. The reason for that is simply that I didn’t succeed in getting everything working. And to be honest, I didn’t have much time to attempt it in the first place. My second child was born this month and I guess everybody would agree that family comes first. So here’s the first post of a series that I had in mind since well before Christmas. Time just goes by so damn fast!

I’ve been thinking about software licenses a bit and decided to write about it. It’s a rather special topic for sure. Many programmers like dealing with licenses just as much as they like to write documentation: Not at all. For that reason a lot of people who support open source software decide to take the easy way and simply GPL their code.

However licensing is a very important thing and should be taken seriously. This article is meant to give a quick introduction – while avoiding the major problem of the whole license issue: Being boring for most people!

What is a license?

Ever read a typical Microsoft EULA (“End User License Agreement”)? No? Well, it’s not just you. Most people haven’t. Still you probably should. Or at least read a bit of it. Even if you didn’t read the license, you’ve agreed to it if you’re using Microsoft software. And that means that you are bound by its content – no matter if you’re in fact ignorant about that.

But what is a license? In fact you can think of a license which comes with a program as a blueprint. It is a draft of what the author proposes to you. Simply put: If you accept it, it will become a valid legal treaty. Yes – accepting a license isn’t some neglectable action. In doing it, you’re signing a treaty which legally binds you.

In general licenses contain various items which permit and prohibit certain actions. For example you may be granted the right to install one copy of a program on one computer and use it. You’re usually forbidden to analyze the program by means of reverse-engeneering. However there may be additional requirements being imposed on you. Probably you have to pay a monthly fee to continue using some service or you’re required to supply a valid address and keep it up to date.

Once you understood that by accepting a license you’re signing a treaty, you might no longer do so carelessly. After all you’re legally accountable if you knowingly or unknowingly violate it.

There has been a steady development in terms of proprietary licenses over the past decade. Many of them are getting stricter and more intrusive all the time. There are probably some quite nasty passage in the next license you’re going to “agree” to. So you should probably care about it.

(Why) do licenses matter?

Software – like any other artificial thing – doesn’t emerge out of nowhere. It has one or more author(s) who wrote the program and dedicated time and effort to that project. Now it is absolutely comprehensible that the author gets to decide what he or she would like to with it. The creator of some software project may decide to keep it private, try to sell it or give it away for free. And of course it’s all the author’s decision whether to open-source the project or to keep it close.

Depending on the nature of the program either path may seem like a good choice. The really important thing however is that each possible decision is perfectly legitimate. Who creates something decides. So if a coder makes the decision to give the source to his program away to the public – then this project is open-source and we can do all the good things with it, right? Wrong. Unfortunately.

Our coder may give the source of his or her program away for free but still remains the sole copyright holder. If the code is made available to you that implies that you may take a look at it. Certainly a nice move of the author. But other than that you’re not actually allowed to do anything with it. It is the intellectual property of another person. So without permission you may not redistribute it, are not allowed to modify it or in fact to actually put it to some use! Yes: In each of these cases you’d have to ask for permission first.

Let’s assume you cannot reach the author since he or she got a new email address and didn’t update the project page. Or the author simply doesn’t have the desire (or time) to answer mail asking for permissions. Well, if you’re a coder yourself, the source code may help you to get an idea on how to solve certain problems. But that’s pretty much it. If you need some functionality you’ll have to repeat the work already done and reimplement it because you’re not allowed to reuse the code despite it being publically available.

So for these reasons the answer to the question in the headline can only be: Yes. Licensing does matter!

What’s next?

I currently have three things in the making: 1) The basic repo of a musl-based Arch-like Linux distro 2) Quite some i686 packages for ArchBSD 3) An article about “Optimistic and pessimistic licenses”. And 4) I have no idea how much time I can spend before my screen in the coming weeks. 😉

Advertisements