Harm-Less Permissive License (HPL)

The Harm-Less Permissive License (HPL) is a permissive, non copyleft, software license. It is based on the FreeBSD license but with one additional restriction; the "harm-less" clause. It prevents software, licensed under the HPL, to be used for harming humans or animals.

This document discusses the advantages and limitations of HPL and explains the details of the license.

Content

  1. The HPL License Text
  2. HPL License Details
  3. Using the HPL
  4. A Limited Version: The weak Harm-Less Permissive License (wHPL)
  5. Pros and Cons
  6. Objections to HPL

The HPL License Text

A text file containing the HPL license text is available here.

Copyright (c) [YEAR], [NAME]

This software is licensed under the Harm-Less Permissive License.
Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions 
are met:

    * Redistributions of source code must retain the above copyright notice, 
      this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
    * Using this software in source or binary format, with or without 
      modification, to develop, modify or improve products with an intended 
      purpose of causing bodily harm to humans, without their consent, 
      or of causing grievous bodily harm to any other animal from the phylum 
      Chordata (including, but not limited to, all mammals, fishes and birds), 
      is not permitted without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS" AND 
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

HPL License Details

The following section discusses the details of the license. This discussion might be of interest to any one who is considering using the license or who is considering using software licensed under the HPL. If you haven't already, please have a look at the license text before reading on.

The HPL is based on the FreeBSD license, some times called the “2-clause BSD license”. With the exception of the third clause, it's a verbatim copy of this widely used permissive, non-copyleft license. The HPL license is compatible with most of the permissive licenses in use. In particular it is compatible with the following commonly used licenses:

There are some passages in the "harm-less" clause that require explaining.

Lets start with the term "bodily harm". It is a phrase borrowed from English and Canadian law. It's generally understood to mean: "any hurt or injury that interferes with the health or comfort of a person and that is more than merely transient or trifling in nature". The therm also covers some forms of psychological harm, where there is formal medical evidence to verify the injury. In particular, killing is considered a type of "bodily harm".

We have used the phrase "intended purpose of causing bodily harm" to distinguish between cases of unintentional or accidental harm from more sinister cases, where the harm is really intended.

There are some cases where causing bodily harm is perfectly fine; in some sports, in body modification, in some forms of sexual activities, etc.. That is why we have added the phrase "without their [the harmed persons] consent". This makes it ok to use HPL licensed software for e.g. developing a computer aided tattoo drawing tool.

The part of the license that covers prevention of harming animals also requires some explaining. Since there is no consent clause regarding animals (animals can't consent to being harmed) we have added the wording "any other animal [than humans]". The reason for this is that the consent clause for humans could otherwise be eclipsed by the subsequent, more restrictive, animal clause.

The term "grievous bodily harm" is also borrowed from English law (where it applies to humans) and covers bodily harm that is more serious in nature. The reason for choosing a different degree of harm with regards to animals is that we do not want to prevent HPL licensed software from being used in some wildlife preservation applications (where animals might be sedated, tagged, etc.).

Finally, what does "animal from the phylum chordata" mean? Well, chordates are a group of animal species (phylum is a biological taxonomic rank), which includes all mammals, fishes, reptiles, amphibians and birds. We do not use the term animals unqualified since there are some rare cases where we wish HPL licensed software to be available for use in applications that do cause harm. These rare cases include fighting malaria by killing mosquitoes (not a chordate) and helping humans and animals suffering from parasites like fleas, flatworms, etc..

Using the HPL

If you have written some software that you would like to license under the HPL all you have to do is to include the license text at the top of the source code files; or if you are distributing a binary, include the license in a text file bundled with the rest of your software files.

Change the [YEAR] to the year when you finished preparing the release. If you have made several releases, add all years separated with commas. Change the [NAME] to show your own and your collaborators. It might look some thing like this:

Copyright (c) 2007,2010 Darth Vader <d.vader@example.com>

It's not required, but considered good practise, to include contact information (e.g. an email or snailmail address). This would be useful for anyone who would like to contact you to request an exception to the terms of the license or to report a license violation.

Finally, you should make a last check to verify that you don't use any software licensed under some other, HPL incompatible, license.

A Limited Version: The weak Harm-Less Permissive License (wHPL)

If one shares the ideological conviction about preventing harm against humans, but does not wish to extend the "harm-less" restrictions to animals, then the "weak HPL" (wHPL) can be used. This license is equivalent to HPL in all regards except that it doesn't include the restriction that the licensed software is not to be used to harm animals. We, off course, advocate using the regular HPL license.

Since the HPL and wHPL are not copyleft, they allow users of the licensed software to add additional restrictions (but never to remove restrictions). This means that software that is licensed under wHPL can be used by HPL software as long as the aggregate is HPL licensed, but not the other way around. The wHPL is thus compatible with HPL while HPL is incompatible with wHPL.

A text file containing the wHPL license text is available here.

Copyright (c) [YEAR], [NAME]

This software is licensed under the weak Harm-Less Permissive License.
Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions 
are met:

    * Redistributions of source code must retain the above copyright notice, 
      this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
    * Using this software in source or binary format, with or without 
      modification, to develop, modify or improve products with an intended 
      purpose of causing bodily harm to humans, without their consent, is 
      not permitted without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS" AND 
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Pros and Cons

As great as we think this license is, it has a number of limitations and drawbacks:

Looking at the above list, you might wonder why anyone in their right mind would ever even consider using the HPL? Well, there are some really strong ideological reasons to do so.

If you share our ideological and moral conviction that causing harm to others is a bad thing, then you probably don't want to contribute to developing products that causes harm either.

When you make software available to the FLOSS community under any of the usual licenses (e.g. FreeBSD, GPL, etc.) you are investing your time and effort to make a valuable contribution; but you might also, inadvertently, help some one else develop software that causes harm.

As a developer, you can use the HPL to ensure that your software is not used for any malicious harmful purposes. I would, for instance, be hesitant to share a new image processing library containing innovative motion tracking algorithms with the open source community had it not been covered by HPL; since it could otherwise be used to improve computer vision aided missiles. The open source community will hopefully benefit from the HPL since some software can be made publicly available that would otherwise have been withheld altogether.

Here are some further comments about the limitations and downsides listed above:

I leave it up to each and every one to make up their own mind about whether to use the HPL or not.

Objections to HPL

There are two objections to this license that are often voiced and that I would like to respond to here (to save me from responding to the same objection several times in many different places).

The first objection is usually stated something like this: "Terrorist don't give a rat's ass about license compliance. The HPL puts the good guys [usually the military or the police] at a disadvantage". This is probably true, I can't imagine why any terrorist (other that some deranged free software fundamentalist) would care about software licenses. However I don't think it's a valid argument. The terrorists probably don't care about killing civilians either, that doesn't mean we should not refrain from doing it.

The second objection is usually stated something like this: "It is true that bombs used by the military are intended to cause harm. But by causing a limited amount of harm, we can prevent a greater suffering". This argument has for example been used to defend the nuclear bombing of Japan by the USA during the second world war. And while I consider the situation a lot more complex here, than in the previous objection, there is, in my opinion, one fundamental flaw to this argument. It is speculative by nature. That is, you can never be sure that causing harm will contribute to a greater good. You thus always run the risk of causing harm without actually preventing any suffering. This might not be a big problem to some, but it is to me. And if there ever is a situation so extraordinary, that I would consider abandoning my "harm-less" principles for some greater good, I could always issue a limited written permission to use the HPL licensed software.