EXCEPTION GENERAL PUBLIC LICENSE

Version 2, January 2009
DRAFT 7 - FOR FEEDBACK AND COMMENTS

Copyright (C) 2009 Exception License Foundation

Everybody is allowed to copy and distribute verbatim copies of this license
document, but modifying it in any way is not allowed.

Preamble

Licenses for most software and projects used to take away your freedom to
share and change them, until the "free" licenses were created. That enabled an
enormous quantity of free software and open projects to be created, developed,
maintained and expanded way beyond what one could have imagined in the
beginning. Internet and the contemporary world would not be what it is without
the contribution of so many people participating in the "Free, Libre and Open
Source" movement (FLOSS) as some have described it.

The original goal of FLOSS is a success, and now using and developing Open
Source projects is a mark of smart thinking. In a perfect world, that would be
a great common goal to use and change software freely, and collaborate in
order to make the world more open and more diverse. In a perfect world, you
wouldn't need an Exception License. We hope that this Exception License will
be a sufficient message so that no further abuse are done, and be used more as
an "art project example" or "theoretical or philosophical tool" for critical
study of Open Source than a real license used in the real world. Sadly, we
don't live in a perfect world and some uses are seen by the original Open
Source Developers as abuses of their Open Source projects.

Some military equipment are naturally using Open Source, for some weapon
systems on ships and airplanes. Some missile may actually be running Linux.
Some open source database may be used to track population for ethnic
cleansing. Also, on a less dramatic but even more real note, some of the
people using Open Source are actually working to make it impossible to develop
through DRM, software patents, lobbying or Internet censorship.

Using Free, Libre and Open Source Software for some socially negative
activities can be seen as an unfair use of a tool for openness and justice.
The social cost of these negative activities is not covered by the people
committing such negative actions. Worse, Open Source software used for such
negative goals is indeed helping such negative projects, often against the own
will of the project developers, creators, maintainers and of the whole
community. The eGPL can be seen as a way to redistribute the social and human
cost of negative actions back to the original perpetrators of such negative
actions.

The goal of this license is then to enable the Open Source developers to
choose that their project be covered by an Open Source license, and yet retain
the right to exclude some entities from the right of using or modifying this
software under this license. In such case, the concerned entities should
request another licensing scheme from these Open Source developers in order to
use the software. The project team can define groups of Exceptions for its
project, and can even subscribe to "feeds" of exceptions that will define in
time the group of entities that cannot use the project under eGPL. These feeds
can be written by Non-Governmental Organization who know which entities have a
detrimental social and human impact. By having such list written, that can
help reducing the number of entities with detrimental effect on people and
societies, giving them strong incentives to cease negative actions.

Of course, the eGPL itself could be used as a tool in order to exclude
entities that do not have any negative impact. As a result, a few restrictions
apply to the eGPL. For example, you cannot define Exceptions on a specific
person or on an ethnic group. You can however define an Exception for a
Country or a Geographic region. Another condition is that the eGPL itself is
place under eGPL, creating the first recursive license known to us. The
Exception License Foundation will then pay attention to the use of the License
and revoke the right of using such license for a given project when abuse of
the original intent of the eGPL would be witnessed. For example, one could not
agree with an Exception that would prevent "All peace organizations of the
world" to use one particular Open Source project.

We protect your rights with three steps: (1) copyright the project or
software, (2) propose this license which gives legal permission to copy,
distribute and/or modify the software or project, (3) enable you to define for
your own project the list of exceptions, that is of entities that cannot use
this license and should seek another license for this project.

As with any Open Source license, there is no warranty for this free software.
If the software is modified by anyone else and then shared, the recipients
have to be aware that what they have is not the genuine, original software, so
that any issue due to someone else should not affect the original authors'
reputation. Also, people modifying the original project must be aware that
they cannot introduce new Exceptions, and that their Exception list is Exactly
the same as the original project. The reason behind this is that it would be
otherwise very easy for someone to take a project and slightly modify it,
create a new project, and then remove all the Exceptions from the new project,
therefore breaking the original authors intent.

Finally, as with traditional Open Source License, we state again the obvious
that all patents affecting a project or software must be licensed for
everyone's free use or not licensed at all.

The precise terms and conditions for using, copying, distributing and
modifying follow:

EXCEPTION GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR USING, COPYING, DISTRIBUTING AND MODIFYING

0. This License applies to any project, program, software or other work which
contains a notice placed by the copyright holder stating it may be used or
distributed under the terms of this Exception General Public License. The
"Project" below refers to any such project, program, software or work, and a
"work based on the Project" means either the Project or any derivative work
under copyright law: that is to say, a work containing the Project or a
portion of it, either verbatim or with modifications and/or translated into
another language. (Hereinafter, translation is included without any limitation
in the word "modification".) Each licensee is addressed as "you".

Activities other than using, copying, distributing and modifying are not
covered by this License; they are outside its scope. The act of running the
project is restricted by the terms of this License (referred as "using"), and
the output from the Project is covered only if it can be considered as "a work
based on the Project" (independently from having been produced by running the
Project). Whether that applies to this current Project depends on what the
Project does.

1. You may copy and distribute non-modified copies of the Project's source
code as you received it, in any medium, provided that you publish on each copy
an appropriate and visible copyright notice and disclaimer of warranty; do not
modify and preserve all the notices that refer to this License and to the
absence of any warranty; and give any other recipients of the Project a copy
of this License along with the Project, provided such recipients are not
Excepted from the use of such Project.

You may charge a fee for the physical act of providing a copy, and you may at
your discretion offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Project or any part of it, thus
creating a work based on the Project, and copy and distribute such
modifications or work under the terms of Section 1 above, provided that you
also meet all of these following conditions:

a) You must change the modified files to carry visible and prominent notices
stating that you modified the files and the date of any such modification.

b) You must license any work that you distribute or publish, that in whole or
in part contains or is derived from the Project or any parts thereof, under
the terms of this License, at no charge to all third parties covered by this
License and not Excepted from its use.

c) If the modified program normally has an interactive mode when run, you must
make it, when started in the most ordinary way, to display or print a notice
including an appropriate copyright statement and a notice that there is no
warranty (or else, saying that you provide a warranty yourself) and that users
may redistribute the Project under these same conditions, and telling the user
how to visualize a copy of this License. If the original Project itself is
interactive but does not normally display such an announcement, your work
based on the Project is not required to display an announcement. If printing
such an announcement would make another program non-interoperable with your
own program and that the goal of your modification is to enable
interoperability, your work based on the Project is not required to display an
announcement.

d) You must make sure that the Exceptions of this License do not cover any
entities or part of entities that may have modified this Project, or used this
program against the terms of this License for any activity related to the
modification of this Project.

The requirements apply to the modified work in its entirety, not to parts of
it. If identifiable parts of that work are not derived from the Project, and
can be reasonably distinguished from your modified work, and as such
considered independent and separate works in themselves, then this License
does not apply to those parts when you distribute them as separate works.
But when you distribute these same parts as part of a whole which is a work
based on the Project, the distribution of the whole must be under this
License, whose permissions, obligations and terms for other licensees extend
to the entire whole and to each and every part of it regardless of who wrote
it.

Thus, it is not the goal of this section to claim rights or contest your
rights to work written entirely by you; rather, the goal is to exercise the
right to control the distribution of derivative or collective works based on
the Project, and make sure that you distribute parts not covered by this
License separately from the modified work.

In addition, mere aggregation of another work not based on the Project with
the Project (or with a work based on the Project) on a storage space or
distribution medium does not put the other work under the scope of this
License.

3. You may distribute and copy the Project (or a derivative work, under
section 2) in binary code or executable form under the conditions of Sections
1 and 2 printed above provided that you are not listed as part or whole of the
entities Excepted from its right of use and also do one of the following:

a) Join the whole corresponding machine-readable source code, distributed also
under the terms of Section 1 and 2 printed above on a medium usually used for
software source-code exchange; or,

b) Join a written offer, valid for at least three years, to give any third
party at no more price than the cost of performing the physical act of source
distribution, the corresponding machine-readable copy of the source code, to
be distributed under the terms of Sections 1 and 2 printed above on a medium
usually used for software source-code exchange; or,

c) Join the information you received as to the offer to distribute
corresponding source code. (This option is only allowed for non-commercial
distribution and only if you obtained the Project in binary or executable form
with such offer, in accord with Subsection b printed above.)

The source code for a work means the readable text-based form of the work
which is preferred for making modifications to it. For an executable work,
complete source code means all the source code for all parts it contains, plus
any interface definition files, plus the scripts and text rules used to
control compilation and deployment of the executable. However, as a special
exception, the distributed source code does not need to include anything that
is normally distributed (in either binary or source code form) with the major
components (kernel, standard libraries, compiler) of the operating system on
which the executable Project runs, unless that component itself accompanies
the executable. The Project must include any component that is not generally
available and required for compilation, especially if the given component is
otherwise only available under NDA (Non Disclosure Agreement) or any other
restrictive license, and has to be included without any other restriction than
this License.

If distribution of binary code or executable is made by offering access to
copy from a given place, then offering equivalent access to obtain the source
code from the same place counts as distributing the source code and has to
comply to the same rules, even though third parties are not compelled to copy
the source code along with the binary code.

4. You may not modify, copy, use, sublicense or distribute the Project except
as expressly provided under this License. Any attempt otherwise to modify,
copy, use, sublicense or distribute the Project is void, and will
automatically terminate your rights under this License. However, parties who
have received rights or copies from you under this License will not have their
licenses terminated as long as these parties remain in full compliance with
this License.

5. You are not required to accept this License, since you did not sign it.
However, nothing else grants you permission to use, modify, copy or distribute
the Project or its derivative works. These actions are prohibited by law if
you do not accept this License and expose you to legal actions. Therefore, by
using, modifying or distributing the Project (or any derivative work based on
the Program), you indicate your acceptance of this License to do so, and all
its terms and conditions, without any restriction, for using, copying,
distributing or modifying the Project or derivative works based on it.

6. Each time you copy or redistribute the Project (or any derivative work
based on the Project), the recipient automatically receives a license, this
License, from the original licensor to distribute, copy, use or modify the
Project subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein and in
the Exceptions of this License as governed by its terms and conditions
presented herein. You are not responsible for enforcing compliance by third
parties to this License.

7. If, as a consequence of a court judgment, justice decision, administrative
decision or allegation of patent infringement or for any other reason (not
limited to patent or legal issues), conditions are imposed on you or any
entity you're part of (whether by agreement, court order or otherwise) that
contradict the conditions of this License, they do not excuse you from the
conditions or terms of this License. If you cannot use or distribute so as to
satisfy both and simultaneously your obligations under this License and any
other obligations, then as a direct consequence you may not distribute, modify
or use the Project at all. For example, if a patent license would not permit
royalty-free sharing, copy or redistribution of the Project by anybody who
receive copies directly or indirectly through you, then the only manner you
could satisfy both the patent license and this License would be to refrain
entirely from distributing the Project.

If any article or part of the License is held invalid or unenforceable under
any particular circumstance or decision, by any authority within a country,
company or any territorial or organizational entity, for everybody within that
said country, company or any territorial or organizational entity, then the
License does not apply anymore to anybody or any entity within the
organizational or geographical zone or area of validity of the decision or of
applicability of the circumstance. When the License does not apply, that means
that any right of use, modification, copy, distribution is revoked for any
person within the area of validity or applicability of the decision or of the
circumstance, and thus prevents anyone with previous right under this License
from using, modifying, sharing, copying or distributing the Project and any
other project governed by this License. The spirit of this License is that if
any court or organization or territorial power would disagree with the
Exception List for example and hold it invalid and make a law precedent for a
particular territory, administrative, then the Exception License Foundation
cannot accept that the License be changed in its nature and thus would request
all its users to seek for another compatible license from the Project
developers and authors. If the license or any part of the License is held
invalid or unenforceable for the Project only, within a country, company or
any territorial or organizational entity, then the License does not authorize
anybody within this entity to use the Project for the Project only.

The purpose of this section is not to induce you to infringe any patents or to
contest validity of any right claims or to infringe any property right claims;
this section has the only purpose of protecting the integrity of the free,
libre and open source distribution system, which is implemented by this public
license practice. Many people have made generous contributions to the
multitude of software distributed through that system thanks to the
consistence application of that system; the author/donor has the decision
power to decide if he or she is willing to distribute software through any
other system and a licensee cannot impose that choice or overcome the terms
and conditions of this License.

This section is intended to make clear and well defined what is believed to be
a consequence of the rest of this License.

8. If the use and/or distribution of the Project is restricted in certain
geographical zones or countries either by copyrighted interfaces or by
patents, the original copyright holder who places the Project under this
License may add a geographical use and/or distribution limitation excluding
these countries, so that use and/or distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates the
limitation as if written in the body of this License. The recipient of the
Project should make sure that these restrictions are up to date and accurate
and do not apply to him, his country, the country where computers storing or
executing the Project may be placed on or the entity he is part of.

9. The Exception License Foundation may publish new versions and/or revised
versions of the Exception General Public License at variable time intervals.
Such new versions will be in similar spirit to the present version, but may
differ in the text or details to address issues, problems or concerns as they
occur. The Project can adopt a new version of the Exception General Public
License or keep on using any earlier version.

10. If you wish to use parts of the Project into other free projects whose
distribution conditions are not governed by this Exception General Public
License, write to the author to ask for permission.

11. You can use, modify, copy and distribute the Project, provided any
Exception does not prevent you to use the Project under this License.
Exceptions are defined by the developers and makers of the Project. All the
Exceptions are combined together to define the Exception List. Exceptions are
defined as an exclusion of a certain list of given entities, be it companies,
governmental components, countries or any organizational or territorial entity
of any kind. Exceptions can be defined at the beginning of a Project and be
changed during the whole evolution of the Project. If you can reasonably be
included in any of the Exceptions for the Project, you are not allowed to use,
modify, copy, share or distribute the Project under these License terms and
conditions and should remove the Project from any storage medium you used. If
you wish to use the Project but are Excepted from it, you should seek another
alternative license from the Project authors and developers.

12. Exceptions cannot apply to individual people. You cannot use the Project
in any way that would benefit any of the entities listed in Exception, either
directly or indirectly. Exceptions cannot apply to ethnic groups or genders.
Such Exceptions, if defined are automatically said to be null and do not
apply, whatever wording may be used by the Project, but the remainder of the
Exception List applies in full force without being affected by any nullified
Exception.

13. Exceptions are defined either in fixed form as a file, usually named
"EXCEPTIONS", hereby described as the Exception File, included in the Project
or as a changeable list (that can be found online, on Internet, or requested
from the Project developers and authors) and which location should be in the
Exception File, included in the Project. Having an Exception File within the
Project does not prevent the Project's authors to define other additional
Exceptions online. The address of the online Exception List may or may not be
listed within the Exception File. If no Exceptions File or alike is present
within the Project, you must assume that all Exceptions are defined online and
respect the License accordingly. You have to check both the Exception File and
online in order to verify that this License applies to you. The default online
server for defining Exceptions is the home web server of the Exception License
usually located at http://www.eGPL.info. In case of not being able to access
such server, you must use well known Internet tools and search engine to find
the location of appropriate Exceptions for the Project.

14. A Project is said to be a Forked Project when it is based on another
Project and considered a derivative of this other Project. You may create a
Forked project for any Project provided you're not excepted from this Project.
The Forked project inherits all the Exceptions from the Parent Project. All
the Exception requirements applies automatically to any Forked Project of the
Forked Project, as a Forked Project at the second degree, third degree, or any
degree, is also considered a Forked Project of the Parent Project. The Parent
Project may declare at any time that Forked Project may add to the Exception
List. Such indication is to be written in plain english in the Exception List
of the Project. By default, any Forked Project cannot and should not add any
Exception to the Exception List. If such statement allowing Forked Project to
add Exceptions is present in the Parent Project, you may, as the modifier of a
Project and thus the creator of a Forked Project, add more exceptions to the
inherited Exceptions but cannot remove any Exception from the Parent Project
Exception List. The Parent Project may require the Forked Project to remove
any exception and you must comply with it. The Forked Project, by being a
derivative, accepts any Exception removal request and recognize the right of
the Parent Project to request such removal for the lifetime of the Parent
Project. Not complying with a request from the Parent Project may lead to
having the Forked Project listed in the Exception List, and as such, loose all
rights of use of the original code, parts or sections of the Parent Project.
In such case of a Forked Project being added to the Exception List of the
Parent Project, you must delete all parts of the Parent Project from your
Forked Project. Any Forked Project hereby accepts such requirement, present or
future, and recognize the right of the Parent Project to request at any time
that no change to the Exception List be done by any Forked Project.

15. The License is itself a project placed under eGPL License. As such, the
Exception License Foundation can define Exceptions for the application of this
License. This is said to create the first recursive License where the License
apply on itself.

16. When an entity is not granted rights on the Project because of an
Exception, such entity is called an "Excepted Entity" should seek another
license (hereby called an "Alternative license") to be granted to it before
using or redistributing the Project. If you are part of an Excepted Entity,
you can seek such Alternative license from the Project developers and authors.
This process is called Resolution. Some hints about who or which online
resource to contact in order to perform this Resolution can be noted in the
"EXCEPTIONS" file and you should refer to it when seeking an Alternative
license. You understand that if you cannot use the Project under this license
(due to one or several Exceptions), and did not obtain any other License for
the Project, then you have no right at all to use, modify, copy, share or
redistribute the Project and should thus remove this Project from any medium,
support or location that you may have under your command or used to
temporarily store this Project.

17. This License is automatically converted to Free Software Foundation GNU
General Public License (GNU GPL) version 2 (two) after 10 (ten) years of no
activity, no new release or no update on the Exception List of the Project.
After such period, the GNU GPL is the only license governing the Project. This
condition applies to the whole Project and does not take in account a
particular version, release or package of the Project. Any bug fix, new
version is considered as activity and therefore pushes back the conversion
date by the duration mentioned above. Any activity in a Forked Project is also
considered as activity on the Parent Project and therefore affects the
conversion date as if the activity was in the Parent Project itself.

NO WARRANTY

18. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE BY THIS LICENSE, THERE IS
NO WARRANTY FOR THE PROJECT, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT
WHEN OTHERWISE STATE IN WRITING THE COPYRIGHT HOLDERS AND/OR ANY OTHER PARTIES
PROVIDE THE PROJECT "AS IS" WITHOUT ANY WARRANT OF ANY KIND, EITHER IMPLIED OR
EXPRESSED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS THE
PERFORMANCE AND QUALITY AND OF THE PROJECT IS WITH YOU. SHOULD THE PROJECT
PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY CORRECTION, REPAIR OR
SERVICING. SHOULD THE PROJECT PROVE DANGEROUS, YOU HAVE TO NOTIFY THE ORIGINAL
AUTHORS AND ANY PERSON THAT MAY HAVE USED OR RECEIVED A COPY THROUGH YOU.

19. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
THE PROJECT AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
SPECIAL, GENERAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO DATA BEING
RENDERED INACCURATE OR LOSS OF DATA OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROJECT TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
PROBLEMS, ISSUES OR DAMAGES BY ANY FORM OF ORAL OR WRITTEN OR OTHER
COMMUNICATION.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Projects

If you make a new project and you want it to be of the greatest possible use
to the public while not helping entities having a social and human negative
impact, then you can achieve this by making it free and excepted software
which most people can redistribute and change under these terms.

The eGPL license was designed to be very close to the spirit of other public
license while allowing the Exception mechanism.

To achieve that, attach the following notices to your project. It is best to
attach them at the beginning of each source file to most effectively convey
the exclusion of warranty; and each source file should have at least the
"copyright" text and a pointer to where the full license is found.

<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>

This program is free and excepted software; you can use it, redistribute it
and/or modify it under the terms of the Exception General Public License as
published by the Exception License Foundation; either version 2 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the Exception General Public License for more
details.

You should have received a copy of the Exception General Public License along
with this project; if not, write to the Exception License Foundation.

Also add details on how to contact you by electronic and paper mail.

If the program has an interactive mode , make it print a short notice like
this when it starts:

Zblahvision version 42, Copyright (C) year name of author
Zblahvision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.

This is free and excepted software, and you are welcome to use it, modify it
and/or redistribute it under certain conditions; type `show c' for details.

The prototype commands `show w' and `show c' should show the appropriate parts
of the Exception General Public License. Follow the same idea if your program
has a graphical interface.

You should also get your employer or your school, if any, to sign a "copyright
disclaimer" for the project, if necessary. Here is a sample; alter the names:

Corpozealous, Inc., hereby disclaims all copyright interest in the program
`Zblahvision' (which identify true terror-making managers) written by Paul
Kludger.

<signature of Max Micromanage>, 1 April 2001 Max Micromanage, President of
Corporate Relationships

This Exception General Public License does not permit incorporating your
program into proprietary programs. If your program is a subroutine library,
you may consider it more useful to permit linking proprietary applications
with the library. If this is what you want to do, use the Exception Lesser
General Public License instead of this License.

Read more about this license at http://www.egpl.info

Add New License