As a general note, I don't think that it will become too difficult to switch the license in the future. In contrast to other major projects, Horde is intended to be a lightweight and manageable library. It is quite modular, so we hope that a lot of additional funcionality will be created with additonal utility libraries (a layer above Horde) and new extensions. But these are not directly part of Horde, so I think the core will still remain manageable.
Although I was already gently considering a BSD license, I must say that I see things similar as Volker. The BSD license just enables very unfair use of our work. It could help to get a few more reference projects but probably often no insight in how they used the engine or to which degree it is actually still Horde. So I am also against a BSD-style license. On the other hand, we understand that the LGPL is not a perfect fit for Horde. Our integration and extension philosophy collides with the static linking restriction. So we need to find an option in-between.
swiftcoder wrote:
"Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obliged to do so. If you do not wish to do so, delete this exception statement from your version."
I don't think the classpath exception can be used with Horde's extensions (neither for static nor dynamic linking). It clearly states that solely independent modules may be linked. The definition of independent is "not based on" and "not derived". But an extension uses the Horde internals, so it is based on Horde and also derived from Horde.
I was thinking about a custom license that can be applied with dual licensing (LGPL and custom Horde license). It would basically be a BSD license with an additional clause which makes the license a weak copyleft one. Here is a quick draft:
Code:
Horde3D - Copyright (C) ...
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
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 above disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the above disclaimer in the documentation and/or
other materials provided with the distribution.
* Modifications done to source files that are part of this software need to be
contributed back to the copyright holders. If parts of the source files are
merged into new files, the same license conditions apply to these new files.
The third condition is the most important one, the rest is just a mixture of BSD and zlib. The boundary between Horde code and proprietary code would be the source code files (similar to MPL), not the built binary library (as in LGPL).
Please discuss if you think that the file boundary is appropriate. Maybe it would also be necessary to find a better wording for that clause.