Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Rich Breton committed Jul 5, 2015
0 parents commit 2bcc03b
Show file tree
Hide file tree
Showing 6 changed files with 342 additions and 0 deletions.
65 changes: 65 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
Open Source at FusionPBX
==============================================

This repository serves as the umbrella project to represent the
various open source efforts at [ Mark J. Crane ](https://fusionpbx.com).
Come here to get an overview of the various projects, to learn how to
contribute to them, and to sign up as a contributor.

Table Of Contents
-----------------

On this page:

* [Note to External Contributors](#note-to-external-contributors)
* [List of Projects](#list-of-projects)

Other pages:

* [Sign the CLA](https://github.com/Fusionpbx/opensource/blob/master/sign-cla.md)
* [CLA Rationale](https://github.com/Fusionpbx/opensource/blob/master/cla-rationale.md)
* [Contributors](https://github.com/Fusionpbx/opensource/blob/master/contributors)
* [Contributor License Agreement 2.0](https://github.com/Fusionpbx/opensource/blob/master/cla-2.0.md)

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Note to External Contributors
-----------------------------

Hello, External Person!

We at FusionPBX are eager to work with you.

In particular, in order for us to accept any patches from you, you will have to
electronically sign a statement that indicates two things:

* You are willingly licensing your contributions under the terms of
the open source license of the project that you’re contributing to.

* You are legally able to license your contributions as stated.

The reason we do this is to ensure, to the extent possible, that we don’t “taint”
the projects we manage with contributions that turn out to be improper. This protects
everyone who wants to use the projects, including *you*! If you want a longer explanation,
then you can check out the [CLA Rationale page](https://github.com/Fusionpbx/opensource/blob/master/cla-rationale.md).

Once you sign the Contributor License Agreement (the “CLA”), we will then be able to
merge your contributions with a clear conscience and with only the friction that results
from the usual technical back-and-forth of a vibrant open source project.

To get started with this process, visit the
[Sign the CLA](https://github.com/Fusionpbx/opensource/blob/master/sign-cla.md)
page.


Thanks, FusionPBX!

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

List of Projects
----------------

* [FusionPBX](https://github.com/Fusionpbx/fusionpbx) — The Official FusionPBX Repo.
* [FusionPBX Apps](https://github.com/Fusionpbx/opensource) — Applications for FusionPBX.
* [FusionPBX Scripts](https://github.com/Fusionpbx/opensource) — Install and Upgrade Scripts for FusionPBX.
* [Open Source Umbrella Project](https://github.com/Fusionpbx/opensource) — This site.
31 changes: 31 additions & 0 deletions cla-2.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Contributor License Agreement
==========================================

Thank you for your contribution to this Mark J. Crane software project. In order to clarify the intellectual property rights in the project, and to grant licenses to the project to others, Mark J. Crane (“FusionPBX”) requires that you accept this Contributor License Agreement (“Agreement”). This license is for your protection as a Contributor as well as the protection of Mark J. Crane its users, and its licensees; you may still license your own Contributions under other terms.

You accept and agree to the following terms and conditions for Your present and future Contributions submitted to Mark J. Crane. Except for the license granted herein to Mark J. Crane and recipients of software distributed by Mark J. Crane, You reserve all right, title, and interest in and to Your Contributions.

1. Definitions
* “You” (or “Your”) shall mean the copyright owner or legal entity authorized by the copyright owner that is making this Agreement with Mark J. Crane. For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. For the purposes of this definition, “control” means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
* “Contribution” shall mean any original work of authorship or invention, including any modifications or additions to an existing work, that is intentionally submitted by You to Mark J. Crane for inclusion in, or documentation of, any of the products owned or managed by Mark J. Crane (the “Work”). For the purposes of this definition, “submitted” means any form of electronic, verbal, or written communication sent to Mark J. Crane or its representatives, including but not limited to communication on electronic mailirepresentatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, Mark J. Crane for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by You as “Not a Contribution.”
* "FusionPBX Projects" — Open source projects being managed by Mark J. Crane.
The Projects may all be found at:
<https://github.com/Fusionpbx> with an overview at
<https://github.com/Fusionpbx/open-source>.

2. Grant of Copyright License. Subject to the terms and conditions of this Agreement, You hereby grant to Mark J. Crane, FusionPBX Projects and to recipients of software distributed by Mark J. Crane, FusionPBX Projects a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute Your Contributions and such derivative works, as well as the right to sublicense and have sublicensed all of the foregoing rights, through multiple tiers of sublicensees.

3. Grant of Patent License. Subject to the terms and conditions of this Agreement, You hereby grant to Mark J. Crane, FusionPBX Projects and to recipients of software distributed by Mark J. Crane, FusionPBX Projects a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution(s) alone or by combination of Your Contribution(s) with the Work to which such Contribution(s) was submitted. If any entity institutes patent litigation against You or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the Work to which you have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Agreement for that Contribution or Work shall terminate as of the date such litigation is filed.

4. You represent that you are legally entitled to grant the above license. If your employer(s) has rights to intellectual property that you create that includes your Contributions, you represent that you have received permission to make Contributions on behalf of that employer, that your employer has waived such rights for your contributions to Mark J. Crane, FusionPBX Projects, or that your employer has executed with Mark J. Crane, FusionPBX Projects a separate contributor license agreement substantially similar to this Agreement.

5. You represent that each of Your Contributions is Your original creation (see section 7 for submissions on behalf of others). You represent that Your Contribution submissions include complete details of any third-party license or other restriction (including, but not limited to, related patents and trademarks) of which you are personally aware and which are associated with any part of Your Contributions.

6. You are not expected to provide support for Your Contributions, except to the extent You desire to provide support. You may provide support for free, for a fee, or not at all. Unless required by applicable law or agreed to in writing, You provide Your Contributions on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of title, non-infringement, merchantability, or fitness for a particular purpose.

7. Should You wish to submit work that is not Your original creation, You may submit it to Mark J. Crane, FusionPBX Projects separately from any Contribution, identifying the complete details of its source and of any license or other restriction (including, but not limited to, related patents, trademarks, and license agreements) of which you are personally aware, and conspicuously marking the work as “Not a Contribution. Third-party materials licensed pursuant to: [license name(s) here]” (substituting the bracketed text with the appropriate license name(s)).

8. You agree to notify Mark J. Crane, FusionPBX Projects of any facts or circumstances of which you become aware that would make these representations inaccurate in any respect.

9. The Parties in this agreement and this agreement itself is subject to change at the discretion of Mark J. Crane

93 changes: 93 additions & 0 deletions cla-rationale.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
CLA Rationale
==============

Why do this at all?
-------------------

The point of the CLA signing process is to have a credible record of
a developer stating that they really intend to contribute to an open
source project. Technically speaking, the thing we are aiming for is a
*non-repudiable* statement from a contributor, that is, a statement
that would be a blatant falsehood to later deny.

This is an important step in assuring that an open source project
&mdash; any open source project &mdash; truly is open source. More
specifically, it helps guard against bad actors who contribute to a
project only *apparently* in good faith, and then later make trouble
by claiming they weren't really contributing under the project's open
source license. For some projects "trouble" has historically come, for
example, in the form of patent lawsuits.

Mark J. Crane wants to do his part to guard against this
potential trouble, and believes so should you. We aren't innovating
here by asking you to sign an agreement, but we *are* trying to
innovate by making the agreement and process nearly-transparent,
natural to do for folks already active in open source, and (we hope)
extremely understandable.

For comparison, here are a few other open source projects and
organizations that use contributor license agreements or have similar
processes:

* [ANTLR](http://www.antlr.org/):
<http://www.antlr.org/doc/ANTLR-contributor-agreement.pdf>
* [Apache](http://www.apache.org/): <http://www.apache.org/licenses/icla.txt>
* [GNU](http://www.gnu.org/):
<http://www.gnu.org/prep/maintain/html_node/Copyright-Papers.html>
* [Google](http://code.google.com/) (Android, Chrome / ChromeOS, and more):
<http://code.google.com/legal/individual-cla-v1.0.html>
* [Linux kernel](http://kernel.org/):
<http://elinux.org/Developer_Certificate_Of_Origin>
* [Node](http://nodejs.org/): <http://nodejs.org/cla.html>
* [10Gen](http://www.10gen.com/) (MongoDB):
<http://www.10gen.com/contributor>

In addition, there is unsurprisingly a
[Wikipedia page about CLAs](http://en.wikipedia.org/wiki/Contributor_License_Agreement). It's brief but has some good information and useful links.


Why do it this way?
-------------------

In an older time, this sort of agreement might have been collected in
paper form. You might have been asked to sign a piece of paper and
then send it into an organization (perhaps physically or as a fax),
which would in turn keep it in a real filing cabinet.

We no longer live in that time.

One wonderful thing about the world we live in today is that we can
achieve the necessary non-reputiability without having to have a
physical document. In the case of the CLA, we bootstrap this ability
off of the infrastructure provided by GitHub: More specifically, we
treat GitHub as a neutral third party to witness the transactions
between a would-be contributor and Mark J Crane. GitHub
ends up acting sort of like a notary, in that its records of the
actions &mdash; such as in particular the pull requests &mdash; of
people using it can be taken as authoritative and unbiased.

So, when a contributor forks this project, commits a change indicating
agreement to the CLA, and files a pull request back with this project,
GitHub knows that all that happened, knows when it happened, and knows
the identity of the entity taking all that action. Should there ever
be a dispute about whether any of that took place, it's not just
he-said she-said, because GitHub has unbiased information which it can
use to shed light on the situation.

In addition to what's in the pull request, we need to have a little
bit of extra information, which can help verify that you are who you
say you are, should the need arise. In particular, we need to have
some information that can link you to your contributions, even if you
later delete your GitHub account. Since people rightly desire privacy
about their addresses and phone numbers, we don't ask for this
information to be made public in the pull request, instead going for a
traditional email. We promise never to use this information for
any purpose other than resolving authorship disputes.

The upshot is that filing a pull request containing a statement of
agreement to the CLA, along with the supplementary email, is close
enough to having submitted a signed physical document saying the same
things. That is, this tactic is a workable solution to the problem. And
since fits in naturally with how actual contributions get made, what
we do here ends up being the least-intrusive way of getting the
assurance that we all need to operate in safety.
9 changes: 9 additions & 0 deletions contributors/richbreton.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
2015-07-05

I hereby agree to the terms of the Contributors License Agreement

I furthermore declare that I am authorized and able to make this agreement and sign this declaration.

Signed,

Richard Breton https://github.com/richbreton
50 changes: 50 additions & 0 deletions sign-cla-paper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
Sign the CLA: Paper Edition
================================

Even though Mark J Crane would love to leave the
paper world behind, various jurisdictions require that we also accept
physically signed documents. If you wish to take advantage of this
when signing the CLA, then all you need to do is mail us a document
with the following content:

```
[date]
I hereby agree to the terms of the attached Contributors
License Agreement.
I furthermore declare that I am free and able to make this agreement
and sign this declaration.
Signed,
[your signature]
[your name]
https://github.com/[your github userid]
[your email address]
[your address]
[your phone number]
```

Replace the bracketed text as follows:

* `[date]` with today's date, in the unambiguous numeric form `YYYY-MM-DD`.
* `[your signature]` with your signature.
* `[your name]` with your name (printed).
* `[your github userid]` with your GitHub userid.
* `[your email address]` with an email address at which you can be
contacted.
* `[your address]` with a physical mailing address at which you can be
contacted.
* `[your phone number]` with a phone number at which you can be contacted.

Print out a copy of [the CLA](cla-2.0.md), sign and date that copy,
and attach it to the page described above.

Send it all to:

Mark J Crane
30865 Shelton Road
Parma, Idaho 83660
United States

94 changes: 94 additions & 0 deletions sign-cla.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
Sign the CLA
=============

This page is the step-by-step guide to signing the FusionPBX
Contributor License Agreement. It's easy and pretty painless!
For an explanation about why we ask you to do this, see the
[CLA Rationale page](cla-rationale.md).

1. First and foremost, read [the current version of the
CLA](cla-2.0.md). It is written to be as close to plain
English as possible.

2. Make an account on [GitHub](https://github.com/) if you don't already
have one.

3. File a pull request on this project (FusionPBX Open Source),
as [outlined below](#filing-the-pull-request).

4. Email the FusionPBX, as [outlined below](#sending-the-email).
Wait for a FusionPBX team member to merge your pull request. You may start
opening pull requests for the project you're contributing to but we will
only be able to merge your contributions after your signed CLA is merged.

If you wish to, you may also file the CLA in paper form. Please
see the instructions on [the paper CLA page](sign-cla-paper.md)
for details.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Filing the Pull Request
-----------------------

If you don't yet know how to file a pull request, read [GitHub's
document about it](https://help.github.com/articles/using-pull-requests).

Make your pull request be the addition of a single file to the
[contributors](contributors) directory of this project. Name the file
with the same name as your GitHub userid, with `.md` appended to the
end. For example, for the user `pbxmaster`, the full path to the file
would be `contributors/pbxmaster.md`.

Put the following in the file:

```
[date]
I hereby agree to the terms of the Contributors License
Agreement git revision [insert git revision # of the cla-2.0.md file]
I furthermore declare that I am authorized and able to make this
agreement and sign this declaration.
Signed,
[your name]
https://github.com/[your github userid]
```
Replace the bracketed text as follows:

* `[date]` with today's date, in the unambiguous numeric form `YYYY-MM-DD`.
* `[your name]` with your name.
* `[your github userid]` with your GitHub userid.

That's it!

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Sending the Email
-----------------

Send an email to FusionPBX
at [[email protected]](mailto:[email protected]),
with the subject "CLA" and the following body:

```
I submitted a pull request to indicate agreement to the terms
of the Contributors License Agreement.
Signed,
[your name]
https://github.com/[your github userid]
[your address]
[your phone number]
```

Replace the bracketed text as follows:

* `[your name]` with your name.
* `[your github userid]` with your GitHub userid.
* `[your address]` with a physical mailing address at which you can be
contacted.
* `[your phone number]` with a phone number at which you can be contacted.

0 comments on commit 2bcc03b

Please sign in to comment.