-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

          The Dynamic Preferences Library

Frequently Asked Questions:
* What is xMule?
    xMule is an easy to use multi-platform file-sharing client with the look
    and feel of the eMule Win32 client. Based upon the wxWidgets library and
    GNU C++, xMule aims to support the Linux, *BSD, and MacOS X operating 
    systems.  The official continuation of the LMule Project, it aims at 
    achieving higher innovation, maintainability, stability and portability 
    than competing projects through wide-spread adoption of the XP 
    techniques.

* What is the Dynamic Preferences Library?
    An easily- and highly-extensible, easy to use virtual interface between
    xMule and its various Preference files.  Through its use of dynamic 
    panel loading (via libltdl), it is designed with Mods primarily in mind.

* How do I interface my program with the Dynamic Preferences Library?
    First, you need to modify the XML resource file to create the types of
    controls you want.  This should be fairly straight-forward.

    Second, initialize a DynamicPreferences object.

    Third, add preferences via 
        DynamicPreferences::AddPreference(const char* key, DATATYPE data)
    Valid datatypes are bool, long, double, and wxString.

    Finally, to access the preference via
        DynamicPreferences::GetPreference<DATATYPE>(const char* key)

    The Dynamic Preferences Library will take care of the rest, including
    dynamically [un]loading your module as it is [not] needed, completely
    transparently to both you and the end user.

* Can I use any piece of the Dynamic Preferences Library in my application?
    The answer is, yes, with restrictions.  The Creative Commons License
    conforms to the "Fair Use" restrictions enforced by the United States 
    and international Copyright laws.  "Fair Use" is defined as "No more 
    than 10% of the source, with each section's origin properly documented 
    (original project, author, place and date of acquisition), and that does
    not unfairly infringe upon the parent project's market share (in the 
    opensource world, this equates primarily to userbase and donations).  
    Because of the nature of the OSSAL's GPL restriction, you may *not* 
    legally use *any* part of this code in a GPL project, unless you get 
    written permission from the author of this project.

* Is it true that the Dynamic Preferences Library is not licensed under the 
  GNU General Public License?
    This assertion is correct.  As stated in the license header in each 
    header and implementation file in this library, the Dynamic Preferences 
    Library is dually licensed under the Open Source Software Alliance 
    License (OSSAL) and the Creative Commons License (CCL).  See below for 
    the legality, rationale and rammifications of this decision.

* Is it illegal to bundle the non-GPL'd Dynamic Preferences Library with the 
  GPL'd xMule?
    Absolutely not.  The Dynamic Preferences Library's author, Theodore R. 
    Smith, has taken special care to avoid licensing conflicts.  By writing 
    this library from scratch, without refering to the any existing 
    implementation, this non-GPL'd library can be officially bundled with 
    GPL'd xMule for the same reasons we have always bundled the LGPL'd XRC 
    Library with it.

    Per the GPL:
        [The requirements of the GPL] apply to the modified work as a whole. 
        If identifiable sections of that work are not derived from the 
        Program, and can be reasonably considered independent and separate 
        works in themselves, then this License, and its terms, do not apply 
        to those sections when you distribute them as separate works.

    As previously stated, the Dynamic Preferences Library is first and 
    foremost an interface between user, a main program and that program's 
    preference files. As such, it could work well with any number of 
    programs with little modifications; yet due to the licensing 
    ramifications of this Library, only expressly-permitted projects may 
    legally use it.

* Can I use the Dynamic Preferences Library or a derivative in my own 
  project?
    As per the Creative Commons License, no one may spawn derivatives of 
    this Library for their own application.  And because of the nature of 
    the OSSAL, you cannot use this library in an unmodified form with GPL'd 
    projects either, with out the express written permission obtained from 
    the author.

* Can I legally share xMule sources and/or binaries that contain or are 
  linked to the Dynamic Preferences Library?
    Absolutely!  Because of the Special Exceptions granted by the author
    specifically for the xMule Project, you may distribute xMule source 
    packages and binaries in accordance with the GPL, with the exception 
    that the xMule Library Preferences sourcecode not be modified without 
    express written consent from the author.

* Say I want to fork xMule.  Can I include the Dynamic Preferences Library 
  with  my fork?
    Absolutely not, without permission.  First of all, the OSSAL expressly 
    prohibits all GPL projects except for xMule (although express permission 
    can be granted for your particular project, see below).  Secondly, the 
    CCL prohibits derivations of the Library, which you shouldn't have to do 
    to make it support your application.

* How can I get consent to derive the Dynamic Preferences Library and/or use
  it in my GPL'd application?
    Contact the Author (contact information available at xmule.org) 
    explaining a) why you want to use this Library, b) the name, purpose, 
    and goals of your project, and c) a little bit about yourself.

This file was first created on 2004/03/10 05:45 UTC.
This file was last modified on 2004/08/05 16:50 UTC.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (MingW32) - WinPT 0.7.96rc1

iD8DBQFBEltRy4tlS+M78e0RAtdOAKCUqjFAS1u+g+gVBJW1fmA0d9Ak8gCgi3+B
7Qn8XkyNgi+nGyksQKwl5Zw=
=gaMT
-----END PGP SIGNATURE-----
