License Discussion

Anything and everything that's related to OGRE or the wider graphics field that doesn't fit into the other forums.
Lioric
Google Summer of Code Mentor
Google Summer of Code Mentor
Posts: 295
Joined: Fri Aug 06, 2004 10:25 pm

Post by Lioric »

Please correct me if wrong

Probably, according to the LGLP license, if you patch the ogre code (in this case the initialization of the logger) you have to release the code of your application

Lioric
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Post by jacmoe »

No, no - if you patch Ogre you have to make those changes public.
You only have to opensource your project if you link to Ogre statically.

That's why LGPL is also known as the Gnu Library License.
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
:wumpus:
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 3067
Joined: Tue Feb 10, 2004 12:53 pm
Location: The Netherlands
x 1

Post by :wumpus: »

Lioric wrote: Probably, according to the LGLP license, if you patch the ogre code (in this case the initialization of the logger) you have to release the code of your application
Yep, this is very wrong, LGPL means you have to release changes to the library back to the community. Not the code that you link (dynamically) against it.

Please tell me where you heard this nonsense, they will be dealt with swiftly :twisted:

Seriously, this kind of FUD is the reason companies are afraid to adapt open source libraries.
Lioric
Google Summer of Code Mentor
Google Summer of Code Mentor
Posts: 295
Joined: Fri Aug 06, 2004 10:25 pm

Post by Lioric »

yes, that is what i thought, in section 5 of the lgpl:

5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

but can you explain this please, in the section 2:

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

............

c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License

.............

But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.


and if the work fall in the section 2, you have to provide the complete corresponding machine-readable source code (as stated in section 4)

and there is some oposite point to the section 5, wich is:

However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library........ The executable is therefore covered by this License. Section 6 states terms for distribution

and in section 6:

a) Accompany the work with the complete corresponding machine-readable source code for the Library........ if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable


Lioric
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Post by jacmoe »

It basically states that if you change Ogre, you have to make that available to the public.
And if you statically links to Ogre, your entire project becomes lgpl.
Using it as a dynamically linked library does not lgpl'ize your project.
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Lioric
Google Summer of Code Mentor
Google Summer of Code Mentor
Posts: 295
Joined: Fri Aug 06, 2004 10:25 pm

Post by Lioric »

I understand what the lgpl says, i asked if you can elaborate in which part/section this is not true:
Accompany the work with the complete corresponding machine-readable source code for the Library....... if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library.
Should we open a new thread :?:

Lioric[/b]
Kai-Peter
Greenskin
Posts: 133
Joined: Tue Oct 15, 2002 10:14 am
Location: Helsinki, Finland
x 1
Contact:

Post by Kai-Peter »

Lioric,

I think you are confusing the statement in Section 2 starting "But when you distribute the same sections as part of a whole ..." with the the requirements in Section 4 of full source code disclousure. Read carefully the first words of Section 6 "As an exception to the Sections above ..". All programs using a LGPL library fall under the LGPL but Section 6 provides a way to distribute without the source code. In other words, even if LGPL does cover your executable it does not, because of Section 6, mean you have to distribute the source (it says "and/or source"). It is a very specific (and important) exception.

You have to see Section 2 in a broader sense. What it says is that if you integrate some other library with an LGPL library, even if that other library was completely written by you separately, the resulting library falls under the LGPL. I assume the reasoning is to make it clear that despite your rights to your separate part (as explained in the last part of Section 2) users still have the right to apply the LGPL license to the whole (and you have to provide source per Section 4).
And if you statically links to Ogre, your entire project becomes lgpl.
Per Section 6 a) this is not true. You can also distribute the object files needed for relinking the static executable. People just prefer the DLL route for easier compliance. It has been discussed earlier here.

And the standard disclaimer: IANAL! :D

Edit: Please refraim from quoting long stretches of the license. They can easily be taken out of context and mangled. Refer instead to the full lgpl.txt file.
Kai Backman, programmer (Blog)
ShortHike - Space Station Game
Lioric
Google Summer of Code Mentor
Google Summer of Code Mentor
Posts: 295
Joined: Fri Aug 06, 2004 10:25 pm

Post by Lioric »

First lets put in the context that the Ogre lib will be used for commercial projects, because if freeware/demo/whatever is in the context then no matter what license type is it under

Then, we can't see the section x in a broader sense, because this is a license of use (a strict license, an impositive license, like all licenses), we can't speculate with their meaning or the extents of it sense. Because if another company or person or entity, can see the license in another sense, it can use as a way to force the openes of the source code or patent-issues and so, you get the idea

So the license can be interpreted only when there is a legal "license interpretation" addemdum (is that a word :?: ), but for GNU/LGPL lic there is a lot of ambiguos sections, that is why, we/companies are very against LGPL on commercial projects

LGPL was not created to support or ecourage the development of commenrcial projects, but to insert GNU libraries in a market dominated by similar commercial libraries

Per Section 6 a) this is not true. You can also distribute the object files needed for relinking the static executable. People just prefer the DLL route for easier compliance. It has been discussed earlier here.
this will never fit in a commercial project, at least not in the general case

Section 6 says this too (about that you can distribute the lib with you own application):

....provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.

So you can see why this license is not for serious commercial projects

Lioric[/b]
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Post by jacmoe »

Commercial Companies does not see any problems here. :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Lioric
Google Summer of Code Mentor
Google Summer of Code Mentor
Posts: 295
Joined: Fri Aug 06, 2004 10:25 pm

Post by Lioric »

probably your company, mine is very worried about this

Lioric
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Post by jacmoe »

Because of this? : http://www.ogre3d.org/phpBB2/viewtopic.php?t=7149 :)
It's all settled, isn't it?
Anyway, there's lots of companies out there using lgpl libs. :wink:

And I don't want to discuss this any further as I'm not a lawyer. :P
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Lioric
Google Summer of Code Mentor
Google Summer of Code Mentor
Posts: 295
Joined: Fri Aug 06, 2004 10:25 pm

Post by Lioric »

The inline problem was just an issue on a list of several issues regarding LGPL

Probably some of the Ogre Team members can give an opinion about this

I wont suggest that Ogre can use another license, this is just my opinion:

Probably the use of another type of license can help both parties, Ogre and their Users, a license that explicity/clearly/strictly says that if you modify the engine with any valuable/major feature, you have to contribute back to the project that modification right away if you like, or right after you project ships (if a commercial project). This license will not cover any of the client code that uses Ogre, because in the end, i dont think the ogre team members or the cummunity in general will be interested in a very specific implementation of a program that uses ogre, but in the enhacements of the Ogre library itself

In this way commercial companies can use Ogre and add their eye candy features, and release the code when they have shipped/published the product, if they want so, or need so

If you are serious about game developing, you should know how agressive and competitive is the game dev world, and have a feature over the big developers like ID or 3D realms is good

Its probably better that a company invest in Ogre and modify it, improve it and release the changes a few moths later, than not using Ogre at all and chossing a different rendering library, either MIT/ZLIB type or a commercial lib with a clear license

As an example, when i was testing Ogre for our current project, i had to derive a class from the MeshSerializerImpl i think, but as the class is not exported, i had to just add the dllexport token to the class, and our manager asked me right away if we have to release the code of the our tool because it is not more our tool, but a derivative work of the ogre lib

Companies and publishers want to be assured about where they put their money into, so licenses can be a real mess for them

Liroic
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Post by jacmoe »

Lioric wrote:As an example, when i was testing Ogre for our current project, i had to derive a class from the MeshSerializerImpl i think, but as the class is not exported, i had to just add the dllexport token to the class, and our manager asked me right away if we have to release the code of the our tool because it is not more our tool, but a derivative work of the ogre lib
Just submit a patch for the change and you are home free. :wink:
Deriving from Ogre classes - we do it all the time. That's the beauty of the OO. :)

The way you describe how you want the license to work, is how it works now. :)
The hardware-occlusion guys are doing just that: patching Ogre to get their work done. They are putting back these changes/improvements into Ogre. :wink:

Heck! How do you think TK Software is gonna make them dollars ? 8)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Post by jacmoe »

(((I know - I said that I didn't want to pursue this topic any further -- Look at me now :shock:)))


Can't help myself, can I? :P 8)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Lioric
Google Summer of Code Mentor
Google Summer of Code Mentor
Posts: 295
Joined: Fri Aug 06, 2004 10:25 pm

Post by Lioric »

yeah, its hard isnt it? 8) :P

I said that i had to modify the ogre lib, as simple as adding the export token in front of the class to make it exportable so i can derive from it in my client code, why in the world submitting a patch as simple as adding a word to the lib for my very specific need, has to be done

In the actual model you have to release the chages right away, as this is not clearly stated in the LGPL

Lioric
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Post by jacmoe »

IIRC the makers of HomeWorld used opensource libs - they made them public via their website (devel dept.)
They released the source-code and released the source for the included libs also. :wink:

You could just post it somewhere on the net, with a link to the Ogre source. :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Lioric
Google Summer of Code Mentor
Google Summer of Code Mentor
Posts: 295
Joined: Fri Aug 06, 2004 10:25 pm

Post by Lioric »

yes, but you dont get my point here

I say that this license model is incompatible with the high competitive commercial market, lets suppose that you are creating a high end modeler that will compete directly with Discreet 3dsMax, we are talking about big numbers here, not some shareware or low cost downloadable game, here Ogre will be a minor part of the total of the project, just the renderer, but the Ogre lib have to be modified to suit our project needs, it cant be that our project or everyothers project has to be adapted to the renderer lib

If you want to compete, you better have some revolutionary modeling technique or some AAA feature that your competitor does not have, so what is the point of years and money in R&D if you are going to release it to the open source at the same time you are shipping your product

Tha is why most compnies rely on software patents, but im totally against them

What i said is that the actual license model is ok, but without the derivative work part

Lioric
User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Post by sinbad »

You have misunderstood the LGPL completely. You don't have to release anything of your code if you dynamically link, and if you statically link you only need to release the object code.

If you do make changes to the internals of OGRE (which isn't by any means necessary most of the time since you can do lots of things with separate plugins), you only have to release the source when you distribute. That's very clear in the license. I've never come across anyone who has stuck to this though - everyone typically contributes patches immediately, because it means they don't have to deal with re-merging their code into new versions.

Therefore I don't know what you've got your knickers in a twist about. OGRE can and has been used in commercial projects on this basis. Commercial companies I know of who have added on new features they want to keep to themselves have done it through external plugins.
Last edited by sinbad on Sat May 14, 2005 11:20 pm, edited 1 time in total.
User avatar
:wumpus:
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 3067
Joined: Tue Feb 10, 2004 12:53 pm
Location: The Netherlands
x 1

Post by :wumpus: »

Again: our license does *not* cover any of the client code that uses Ogre. You can do with Ogre what you want, like subclass from classes, register plugins, rendersystems, particle emitters, and so on. As long as Ogre is in a seperate DLL from you main program.

Deriving from classes does not make it a derived work. A derived work would be an Ogre fork.

There is already a commercial Ogre plugin (by Lee04) that provides hardware occlusion. This is allowed by our license, as it's external to Ogre code.

There is no need for relicensing here because the LGPL is already exactly what you want.

The reason we don't license Ogre under a ZLib or BSD license is that then someone could fork Ogre commercially without ever benefitting the community at all. I don't believe in that kind of free lunch. The reason free software works is because everyone contributes in improving it.

FYI. There have been quit a few companies using Ogre in commercial products ( http://www.ogre3d.org/index.php?option= ... 8&Itemid=9 )
Lioric
Google Summer of Code Mentor
Google Summer of Code Mentor
Posts: 295
Joined: Fri Aug 06, 2004 10:25 pm

Post by Lioric »

@wunpus:

Again yes, but you dont understand, i dont say the if i derive from some class....., what i said is that in order to be able to derive from the meshSerializerImpl class you have to export that class from the Ogre lib, because is not exported by default (at least not when i tested the 0.14 version) so you have to modify the code of the lib, is this patch necesary to submint, i dont think so, and because of this little minor change or some minor chages like this, to bettter suit ogre to our project, i dont think i have to ship the source code of the lib with our product, or even storing on the web with a link to it, or whatever the LGLP is happy with

And because gamers or consumers think what is the best techs out there (i.e. Intel over AMD, Win over Linux, ID engine/Unreal3 engine over Ogre, or whatever) public release of a not so familiar engine along with our product is not to help too much with publishers or potential customers

Depending on the target market, final users are not too concerned about opensource and its philosophy, i even saw gamers saying some like this: "...uhhh, it has to be a bad game, after all its made with free tools...", this is a quote from a research we did a few years ago

And before some guy is going to write "dont use if dont like it", i m not using Ogre in our current project, i tested in the 0.14 version and i really liked, it looked like the best solution, but i because of this license model, it dont passed the testing phase.

I will take a look at Ogre again in a few days, the new 1.x version, probably it is different from 0.14 and i can switch to Ogre without modifying it and thus not dealing with distributing the sourcecode along with the product

Lioric
User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Post by sinbad »

Lioric: we already covered that. If you make any internal changes you have to publish them. That doesn't mean redistributing all the source - just the changes. The most popular, and simplest way to do this, is to send us a patch - that way you don't have to distribute anything yourself and you don't have to merge your own updates. Commercial users submit patches all the time. Some even pay me to make changes. Some people are fooled by the general FUD though and think LGPL is somehow anti-commercial, and that's utter nonsense. Looks like they got to you.

For something as trivial as an export change, I can't believe we're wasting this forum space on it. But if for some bizarre reason you don't want to submit a patch, post the diff on your website if you want.

And if you think using an open-source lib is bad publicity, by all means don't use them. It's a silly attitude to have though, if it will save you time and money. I don't think the kind of gamer who says 'it's based on free stuff, therefore it's bad' will have enough brain cells to actually figure out what you're using anyway.
Lioric
Google Summer of Code Mentor
Google Summer of Code Mentor
Posts: 295
Joined: Fri Aug 06, 2004 10:25 pm

Post by Lioric »

Sinbad:

Keep in mind that i really respect and like the Ogre engine, as i told you long before, i even tried to switch to Ogre after using RenderWare for a couple of projects

I dont think the pressure of my coworkers and my need to clarify all the possible issues that can arrise from using a LGPL lib can be called 'silly'

Im looking forward to use it, and convince all people here about of its value

Lioric
User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Post by sinbad »

My reference to 'silly' was about making a library decision based on publicity, not about checking licensing. Of course you must check licenses, but in this case you appear to have overreacted to what is actually quite an innocuous requirement - had you checked with us beforehand we could have explained it.

The reason for my firm words in this thread is that I do not want other potential commercial users to read your posts in this thread and to misunderstand too. The requirements of the LGPL, particularly with a library as externally extensible as OGRE, are certainly no barrier to commerical use. That has to be very clear.
User avatar
:wumpus:
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 3067
Joined: Tue Feb 10, 2004 12:53 pm
Location: The Netherlands
x 1

Post by :wumpus: »

Lioric wrote:i dont think i have to ship the source code of the lib with our product, or even storing on the web with a link to it, or whatever the LGLP is happy with
Well, LGPL is as liberal as it gets, people advocating less strict licenses usually forget that the authors need to get better from it as well.
We are commercial-friendly, but I'd like your opinion on this: why would we publish the source of the Ogre library freely in the first place, if there wasn't anything for us in it?

If you could just use years of work without providing a link to us, or submitting patches, that wouldn't help us in either.. To be succesful we need
1) publicity; being mentioned in the credits of a great game helps us a lot
2) progress; people sending in patches has helped the engine become what it is

Being afraid of gamers that thing 'it's based on free stuff, therefore it's bad' is wrong. If you help Ogre get recognized then one day it might start to sound familiar to gamers. If not, this problem remains.
Last edited by :wumpus: on Sun May 15, 2005 12:42 am, edited 1 time in total.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Post by jacmoe »

Lioric wrote:And because gamers or consumers think what is the best techs out there (i.e. Intel over AMD, Win over Linux, ID engine/Unreal3 engine over Ogre, or whatever) public release of a not so familiar engine along with our product is not to help too much with publishers or potential customers
This is changing rapidly!! This not so familiar engine is one of the highest ranking Opensource Engines.
And check the stats for this forum! :)
Lioric wrote:"...uhhh, it has to be a bad game, after all its made with free tools...", this is a quote from a research we did a few years ago
A few years ago - it's aeons ago in terms of tech time. :P
A lot happened since then. Look at Linux, for instance.
Lioric wrote:I will take a look at Ogre again in a few days, the new 1.x version, probably it is different from 0.14
Yes, it definately is!! :wink:
Lioric wrote: and i can switch to Ogre without modifying it and thus not dealing with distributing the sourcecode along with the product
That's not a big deal :P
Last edited by jacmoe on Sun May 15, 2005 1:52 pm, edited 1 time in total.
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Post Reply