-
Notifications
You must be signed in to change notification settings - Fork 186
Description
I love this project, but I have a lot of issues with the license. It's really not very clear, and I don't think it will stand up very well legally. To start with looking at section 1:
Prior to using this database in your product, you will inform the irdb project about your product by opening an issue on https://github.com/probonopd/irdb/issues
Well to start with there's no mention of the product being granted or denied, so simply informing through here is enough. It would be better if it was clear though that they cannot be arbitrarily denied based on the issue opened.
Secondly it's not clear whether this section only applies to embedded hardware:
You may include this database and derivative works with your software (e.g., app) and/or access this database over network from your commercial or non-commercial software (e.g., app) or embedded hardware (subsequently called "your product") provided that:
It's ambiguous here whether "your product" applies to just embedded hardware or to all the uses listed. Reading that I would assume "your product" only refers to the hardware part, and that I would not have to create an issue here if I am using it purely in software.
Another issue with requiring users to inform is that it's not really clear what information should be given, all it says is "inform the irdb project about your product". It's not clear what this means, e.g. "We are using this for our product" would likely be enough given what's written in the first point. If you expect more than that and the issue creator refuses, what's your plan? I also think this creates issues, as what about projects contracted under an NDA? What about projects with legal requirements that prevent that information being given here? What about companies who simply want to keep the project information a secret for the time being?
Going back to this statement again:
You may include this database and derivative works with your software (e.g., app) and/or access this database over network from your commercial or non-commercial software (e.g., app) or embedded hardware (subsequently called "your product") provided that:
The first statement is also rather ambiguous. It's quite clear that you can access the database over a network from commercial or non-commercial software, but there's no distinction between commercial or non-commercial software when directly including it locally, or in embedded hardware.
You will make available up to three fully licensed copies/units of your product to the irdb team, represented by Simon Peter, free of charge (incuding shipping and handling) upon request.
Again we have the "your product" ambiguity here. But I also have a lot of issues with this:
Let's say a client has a legacy system that control their building. They need a way to integrate it into their new setup so they come to me. I write a bunch of software for them that allows them to integrate this legacy system into their new system. So my software is running on various specialized hardware devices throughout the building. How on earth would I follow this point of the license? This wouldn't be a system I could create a new user for, and it would only be a single setup. Am I expected to recreate their setup up to three times just to send it to you? In reality, I wouldn't be able to use this project in my project, as satisfying this license condition would be unreasonable.
Or here's another example, this one is rather extreme but something that could easily happen. Let's imagine I build a very expensive piece of equipment e.g. for a government, that intercepts and analyses a whole huge array of communications. We implement this because including IR has some sort of benefit. The whole system costs $200k, but the IR bit is only a very small part of the hardware + software. Would I be expected to deliver three entire systems worth up to $600k to you? Again this seems unreasonable. But the license also doesn't contain any definition of what part of it you want access to. If the IR functionality of this machine made up only 0.5% of the machine, would you expect them to still deliver an entire machine? Or what if BMW integrates uses it in part of a vehicle of theirs? Would you expect them to deliver you up to three entire vehicles?
The last example of this is one that is actually likely to come up a lot. I integrate it into a single system for someone, let's say a government again. Now part of the licensing agreement (or even law) from this government says that I cannot distribute their software to anyone else. I use this in the software, the software uses my code, this projects, and the governments. Your license requires I give you access to the software, but doing so is illegal or would violate my license agreements. The current way the license is written is very restrictive here, and just prevents me using it at all in situations like this. The government example is extreme, but this comes up all the time when writing software for someone, you're very often limited in licensing the software to others.
These are just some of the problems I thought of while having a quick glance at it. There's also many other potential issues that really limit the usage in many applications, and make it ambiguous enough to be worried about the implications of depending on it.
I would implore you to consider dropping this license entirely, and going with something much more open like the MIT license. But if not I would really ask you to consider dropping requirements 1 and 3. Perhaps you would consider using a permissive open source license like the MIT one, but with requirement 2 added in as well?
If you are not open to moving towards a more permissive license, then I would ask you to at least remove the ambiguity from this license. It's really limited in so many situations at the moment. Maybe by being a lot clearer in sections 1 and 3, and applying limits to section 3, so that projects like the ones I mentioned are excluded?