NAME

Muldis::DB::Copying - Matters of ownership, licensing, contributions

DESCRIPTION

This document is about copyright issues concerning the Muldis::DB framework, both as they are now, and how they are anticipated to be in the future.

These may very well be intuitive, but the principle of least surprise will be followed such that they are explicitly spelled out anyway, so that no one is surprised later on.

First note that Muldis::DB was renamed from "QDRDBMS" in 2007.06, and that was renamed from "Rosetta" in 2006. In this document, any reference to "Muldis::DB" should be read as "Muldis::DB, QDRDBMS, Rosetta, and any derived works of either".

COMPOSITION

For the purposes of this document, the Muldis::DB framework core aka the Muldis::DB framework aka the core is composed entirely of, and only of, all the files included with this Muldis::DB distribution in its lib/ and t/ directories. While there are a few other files in this distribution, they are of relatively little importance as far as copyright issues of the Muldis::DB core go, and can be ignored for the purposes of this document.

While this Muldis::DB distribution is expected to evolve in content over time, it is expected that its functionality will be generally limited to the following: 1. Providing a human-readable document that authoritatively defines the Muldis D language (Muldis::DB::Language); 2. Providing a complete set of container data types to represent code written in the AST form of Muldis D (Muldis::DB::AST); 3. Providing a complete public API for the Muldis DB virtual machine (Muldis::DB); 4. Providing a complete but simple reference implementation of a Muldis DB Engine (Muldis::DB::Example); 5. Providing a complete reusable test suite to help prove if any Engine implements Muldis D properly (Muldis::DB::Validator); 6. A test suite for parts of the aforementioned in isolation, particularly #s 2 and 4. It is not expected that the core Muldis DB distribution would ever have any other substantial functionality, and that such would be distributed separately instead.

While this Muldis::DB distribution could potentially have included copyright-significant extra files, particularly in a examples/ directory, which are explicitly not part of the core, and which may be the copyright of other parties, such things will instead be distributed separately to keep various matters simpler; in the case of examples/, such would likely be part of a separate Muldis::DB::Cookbook distribution.

OWNERSHIP

Presently, all of the Muldis::DB framework core files are owned entirely by Darren Duncan, the sole copyright holder, all rights reserved; there are no co-owners to consult.

Presently, all of the Muldis::DB framework core files have been created and maintained entirely by Darren, both code and documentation, save for small amounts of casual assistance by other people. This consists mainly of providing advice in discussions that went to improve Muldis::DB, or in correcting minor code details or typos. Any exceptions are specifically mentioned.

In accordance with common sense, it is maintained that none of the assistance received to date, save any specifically mentioned, is enough to warrant partial ownership of affected portions of Muldis::DB to the other people, and so they remain entirely Darren's.

Likewise, Darren disclaims any possible ownership over portions of other peoples' projects where contributions to said by Darren were minor and casual, and even with more major contributions, Darren disclaims any ownership interest in them, unless explicitly stated otherwise.

LICENSING

All components of the Muldis::DB framework that Darren owns, particularly the core, are now and pledged to forever be available under at least one free and open source license. This grants all users the right to use it for any purpose, to make modifications, and to redistribute both the pristine and modified versions. The specific license terms may differ for each component, and are specified in that component's documentation.

This is a summary of their licensing terms, usually taking the core as an example, but what is written in the components themselves takes precedence; regarding the core, see the LICENSE AND COPYRIGHT documentation in the Muldis::DB file.

This Muldis::DB core distribution is currently licensed under the disjunction of the GNU General Public License (GPL), version 3.0 or later, and the GNU Affero General Public License (AGPL), version 3.0 or later.

Therefore, if you take any action concerning Muldis::DB that vanilla copyright law does not permit you to do in the absence of permission from Muldis::DB's copyright holder, then said actions of yours are subject to the GPL or AGPL. You may exploit all the additional privileges that the GPL or AGPL grants you, in exchange for following the terms and conditions that the GPL or AGPL imposes; if you do not agree to the terms and conditions of the GPL or AGPL concerning Muldis::DB, you may not do anything with Muldis::DB that vanilla copyright law doesn't allow.

Any third party component that links to Muldis::DB is required to be distributed under the GPL or AGPL unless at least one of the following conditions is met:

1. It is distributed separately from Muldis::DB, listing Muldis::DB as an external dependency, and the end user obtains the third party component and Muldis::DB separately. This condition exists because the GPL and AGPL are built on copyright law and gives you privileges that vanilla copyright law does not when you follow the GPL's or AGPL's terms; if you distribute Muldis::DB, which vanilla copyright law says you can't do by default, then the terms of the GPL or AGPL would apply to you.

2. The copyright holder has provided the third party a proprietary license that allows it.

3. The copyright holder generally re-releases Muldis::DB with additional permissions concerning linking, such as by using the LGPL rather than GPL.

Conjecture: To anyone wanting to distribute a combined work of just Muldis::DB and other FLOSS, there is probably no advantage for the Muldis::DB license including a FLOSS exception. The vast majority, if not the entirety, of FLOSS written in Perl probably has a GPL|AGPL-compatible license, meaning that a FLOSS exception for them is not necessary to permit distributing a combined work at all, which is the main purpose of FLOSS exceptions. If that assumption proves to be false, the idea of providing a FLOSS exception can be revisited. As for desires of the creators of the other FLOSS, that the recipients of the combination can use the creators' own components under their original licenses, that should be easy enough to do since the other components are likely to be easily separable from the Muldis::DB components, as they are likely in separate files.

These licensing terms are being applied to Muldis::DB because the copyright holder agrees with, and wants to support, the principles of user freedom provided by use of the GPL|AGPL, which users should hopefully appreciate.

The copyright holder has no intention of broadly releasing Muldis::DB itself under any license that is not compatible with the GPL, and has little intention of broadly releasing Muldis::DB under a non-copyleft license. A broad release under a license like BSD or Artistic would be irrevocably granting the legal means for anyone to make non-free derivatives, due to other licenses having weaker protections for indirect recipients of covered works. The copyright holder currently believes that a broad release under the GPL or AGPL licenses would be best, but is willing to consider switching to an LGPL licensed broad release instead, as a compromise on ideals, to help increase adoption.

The copyright holder would prefer that it be possible for everyone to employ Muldis::DB according to the GPL or AGPL. The GPL|AGPL/proprietary dual-license is not intended as a developer-extortion measure to build a business with; in fact, it would often be the case that the proprietary licenses would be provided at no cost, meaning the copyright holder makes no financial gain at all from them; rather, the copyright holder intends to build a business with Muldis::DB in the same ways that the GPL permits everyone else to, such as by selling GPL|AGPL-licensed copies for a fee, and support services, and warranties, and sponsored improvements, and by using Muldis::DB as a platform to build other works on; a unique selling proposition of the copyright holder for this is that, being the creator, they know and can support the product best.

The main reason that proprietary licenses are also offered for Muldis::DB is that, for some potential users, various legal or business or compatibility concerns create an environment where it is not feasible for them to employ GPL|AGPL-licensed works, and so customized proprietary licenses should address these concerns so that it is still possible for them to employ Muldis::DB to meet their needs. The copyright holder values any reasonable means by which the most people possible can use Muldis::DB.

There should not be any rationale for rejecting Muldis::DB as a solution due to its license(s); but if that assumption proves to be false, then workable arrangements should still be possible on a case by case basis.

All extensions to the Muldis::DB framework, that Darren creates, whose sole purpose is to enable other free software modules or applications on top of Muldis::DB, such as Tangram or DBIx::Class or Bricolage, will typically be individually licensed under the same terms as those components being enabled.

For example, "DBIx::Class::Storage::Muldis::DB is free software and is licensed under the same terms as DBIx::Class itself".

A primary advantage of this approach is that the enabling glue code can be both distributed with the enabled module or application regardless of the latter's license, and the latter can choose to refactor itself by moving code from the glue code to itself, without affecting its licensing implications. It also makes conceptual sense, since the glue is more part of the enabled component than Muldis::DB.

CONTRIBUTIONS

The copyright holder of Muldis::DB welcomes and encourages contributions towards improving Muldis::DB from anyone and at any time, big or small, and for any part of the system.

Considering Muldis::DB's heavily componentized design, some improvements are best included in the core, and others are best done as externally distributed extensions. As Muldis::DB matures, changes to extensions should become the more common way to extend it than modifying the core is, since a mature core should readily support a wide variety of extensions.

In the case of extensions that you write and distribute separately, you retain ownership of them as usual.

If your contribution fits best inside one of Darren's modules and is non-trivial, then you would normally retain ownership of that contribution unless you grant said ownership to Darren.

In the case of the Muldis::DB core modules, Darren will require the transfer of ownership for your contribution (which can be done, eg, with an informal statement by email), as a precondition for merging that into the official releases of the core modules. This is done so that sole ownership of said core modules can be maintained, and Darren can then still unilaterally re-license Muldis::DB in the future, should that become necessary. (But you can still reuse your contributed code as you see fit in external projects.)

If you refuse the ownership transfer, then Darren will not accept the contribution into the Muldis::DB core distribution, or may possibly rewrite the contribution instead, in which case the contribution would effectively be 'advice'.

As an exception to the above, material changes to a core module that are distributed independently as a patch may remain yours.

In a worst case scenario, you are always allowed to fork Muldis::DB, and have shared ownership in your alternate version, though the Muldis::DB copyright holder would hope that a fork would never happen.

CONCLUSION

Darren Duncan created Muldis::DB in the hope that it would be greatly useful to and be used by a lot of people, and through its use, lead to positive change in society. Releasing it as free software should take care that it serves this purpose over the long term. But it is also hoped that Muldis::DB can contribute to the ability of its copyright holder to earn a living over the long term. Hopefully the policies that have been laid out in this document are fair and acceptable to everyone.

SEE ALSO

Go to Muldis::DB for the majority of distribution-internal references, and Muldis::DB::SeeAlso for the majority of distribution-external references.

AUTHOR

Darren Duncan (perl@DarrenDuncan.net)

LICENSE AND COPYRIGHT

This file is part of the Muldis::DB framework.

Muldis::DB is Copyright © 2002-2007, Darren Duncan.

See the LICENSE AND COPYRIGHT of Muldis::DB for details.

ACKNOWLEDGEMENTS

The ACKNOWLEDGEMENTS in Muldis::DB apply to this file too.