Using FreeBASIC for commercial software development

Game development specific discussions.
DrV
Site Admin
Posts: 2116
Joined: May 27, 2005 18:39
Location: Midwestern USA
Contact:

Postby DrV » Aug 23, 2007 20:02

Read the text of the LGPL yourself, but this is my interpretation:

You may write commercial programs that link statically to LGPL libraries; however, you must provide all the necessary object files from your program so the receiving party can replace the LGPL library with a modified version and relink the application. You don't need to distribute the source of your program's object files, but you do need to distribute the source of the LGPL library.
notthecheatr
Posts: 1759
Joined: May 23, 2007 21:52
Location: Cut Bank, MT
Contact:

Postby notthecheatr » Aug 23, 2007 22:16

AFAIK the whole point of the LGPL is to allow people to create non-open source programs using open source libraries. You'll probably need to include a link to the sources of the library or the sources/object files of the library themselves (in your program directory, where nobody is likely to look anyways) but the code YOU write need not be open source. Probably if you ask the creators you could even get permission not to include the library object files, though I don't know why you'd worry about that.

That's how I understand LGPL to be - after all, if it were the same as GPL (i.e., the entire program must be open source) then there would be no point in creating a separate license like that.
DOS386
Posts: 798
Joined: Jul 02, 2005 20:55

LGPL & RGPL

Postby DOS386 » Aug 23, 2007 23:48

You may write commercial programs that link statically to LGPL libraries; however, you must provide all the necessary object files from your program so the receiving party can replace the LGPL library with a modified version and relink the application. You don't need to distribute the source of your program's object files, but you do need to distribute the source of the LGPL library.


I wonder whether someone cares about this ... people just include the stuff ... no objects visible :-D

That's how I understand LGPL to be - after all, if it were the same as GPL


It is (almost ?) - GPL v3 does no longer provide a separate LGPL ... the LGPL seems to be highly deprecated :-(

Seems LGPL simply means if I want to avoid GPL'ing of all of my code and trouble I should just avoid FBGFX or anything LGPL'ed ...

Maybe GPL and BSD would be better than LGPL-with-exception and LGPL-without-exception ?

IANAL
KristopherWindsor
Posts: 2428
Joined: Jul 19, 2006 19:17
Location: Sunnyvale, CA
Contact:

Postby KristopherWindsor » Aug 24, 2007 4:07

I don't like how the license is automatically inherited for programs that use FBGFX; I would rather have full control over my program, as long as I don't modify FBGFX. I would rather pay royalties for FBGFX than be forced into a certain license.
Please at least see if the admins would consider using a different license (before rejecting the idea :-P).
Eponasoft
Posts: 264
Joined: Jul 26, 2007 2:40

Postby Eponasoft » Aug 24, 2007 12:57

I have worked with license schemes for many years, as it is required for the work I do. When you spend so much time in commercial software development, license schemes become a major part of your work. And I can tell you without a hint of doubt that the LGPL does NOT require you to make your program LGPL in nature, nor does it require you to release your application's source code. You are absolutely not forced to use the same license; what you would have then is called a license conflict, since GPL-style licenses cannot coexist with each other for the same application. The problem with the GPL and its alternate licenses is that the wording is highly legalese; it leaves the average programmer scratching his head, wondering exactly what he is supposed to do. This is not the proper way to handle a license; it should be clear, concise, and human-readable, not a document that only lawyers understand. And if you know anything about the GPL's history, you'll know that it was written with lawyers backing it, so a little too much legalese was slipped into the phrasing.

So, in summary, major points of the LGPL, written in normal human English and not legalese:

-LGPL protects the licensed work from unauthorized, proprietary modification.
-LGPL permits the protected work to be used unmodified without any source code release required.
-LGPL requires that the source code of the protected work be released if said protected work is modified, but in no case requires the source code of the application that uses the modified work. Do NOT confuse this with the mention of object files, as they are not the same thing.
-LGPL requires the application that uses the protected work to carry the LGPL license as a supplemental license, which is tied to the protected work. The license you apply for your application must be able to coexist with the LGPL though, which actually isn't very hard to do; even a Microsoft-style EULA will coexist peacefully with the LGPL provided that the protected work is not modified.

As a whole, the entire family of GPL-based licenses are very bad for the average developer. They don't really protect anything, and good luck trying to enforce your license. What you need to do if you want to be serious about commercial development is have your work legally copyrighted, establish a corporate identity, establish a trade name, and have your applications trademarked. In the real world, that is the only real, legal protection you have, as licenses will only protect you so much. If you GPL your work, you may think you're hindering the big corporations from stealing your work (which is a very egocentric thing to think), but in reality, you're forcing all the little guys to give up their rights to proprietary work if they use even a byte of your code. I have heard all of the excuses to go with this, which usually entail something along the lines of "well if they want it so bad, they can write it themselves" or "then they should pay me for it if they want it so bad". Both of these rationales are hogwash. If you wanted to be paid for it, you shouldn't have released it under the GPL/LGPL to begin with, and if the developer CAN write it themselves, they're sure not going to use your work. See how these arguments fall flat on their faces?

EDIT: I do have to add one thing though...if it was the intention of the developers to force the LGPL license onto anyone who uses gfxlib, it makes me seriously question the motives of the gfxlib project.
DrV
Site Admin
Posts: 2116
Joined: May 27, 2005 18:39
Location: Midwestern USA
Contact:

Postby DrV » Aug 24, 2007 20:05

I don't want to get into a licensing discussion here, but my understanding of the LGPL leads me to think that one of its primary goals is to allow the recipient of some software that uses a protected work to modify that protected work.

If the protected work is in a shared library/DLL, this is easy, since the DLL can be recompiled and used with the existing binary without any effort on the part of the developer of the software using the protected work.

However, if the protected work is linked statically in the distributed executable, then the protected work cannot be easily modified and recompiled; this is the case in which the user of the protected work must distribute the object files of their code so that it can be relinked with a modified version of the protected work.

I can't speak for the other developers (and I didn't have anything to do with the initial licensing decisions), but I am pretty sure that they knew what they were doing when they picked the licenses they did. If not, that doesn't change the wording or intent of the licenses - if you don't like them, then don't use the software.
Eponasoft
Posts: 264
Joined: Jul 26, 2007 2:40

Postby Eponasoft » Aug 24, 2007 22:36

DrV wrote:I don't want to get into a licensing discussion here, but my understanding of the LGPL leads me to think that one of its primary goals is to allow the recipient of some software that uses a protected work to modify that protected work.

That's not the realm of the LGPL but the GPL. For the GPL, this is correct. The LGPL allows the recipient of the protected work to modify that protected work under the terms of the LGPL, but does NOT grant rights to modify work that USES a work protected by the LGPL unless that work is ALSO protected by the LGPL.

DrV wrote:However, if the protected work is linked statically in the distributed executable, then the protected work cannot be easily modified and recompiled; this is the case in which the user of the protected work must distribute the object files of their code so that it can be relinked with a modified version of the protected work.

If an application that uses a library protected by the LGPL does not distribute the source code to the LGPLed work, that application is in violation of the LGPL. Also, it is stated by the LGPL to distribute the object files of the application that uses the protected work (note: this asks for object files of the application, not the applications' source code). However, even from the few FB programs that have been released as freeware, how many have actually included object files? I don't recall seeing any .obj files coming with Lynn's Legacy or Poxie. Because of this, we can safely (and legally) say that every program released to date that uses gfxlib is in violation of the LGPL.

DrV wrote:I can't speak for the other developers (and I didn't have anything to do with the initial licensing decisions), but I am pretty sure that they knew what they were doing when they picked the licenses they did. If not, that doesn't change the wording or intent of the licenses - if you don't like them, then don't use the software.

I'm sorry, but your last statement there is a red herring. However, it is very possible that they did not understand the actual wording and legalities behind the LGPL before they used the license. And furthermore, no one else seems to know it either, as I have yet to see a gfxlib-based program come with any object files, ready to be relinked, as required by the license.

I would strongly suggest to the original author of gfxlib to relicense it under a different license. And I, too, am not looking for an argument of any kind here, but unfortunately, the GPL licenses are SO grammatically unclear in many areas that it automatically causes these kinds of conflicts. That's why I steer VERY clear of them and recommend that others do the same. If you really want a good license for everyone to use for free, the BSD and zlib licenses are the best. If you want a license that is highly restrictive, any Microsoft EULA will do nicely, modified to your own terms and grammar.
zerospeed
Posts: 227
Joined: Nov 04, 2005 15:29

Postby zerospeed » Aug 25, 2007 15:38

I must disagree with you on that Eponasoft.

For the record, there was a issue with LGPL code used in Parallels virtualization tool and WINE project a few months back:

http://wiki.winehq.org/Parallels

You're on the safe side if you link against static or dynamic linking LGPL libraries, unless you modify them

If you do, you're legally bounded to release those changes, not your software that link against it.

There is a different issue regarding GPL code, you're force to release the code of your application if you use a GPLed library, so no commercial business could evolve from that.

Just a quick review of what my lawyer replied to me after reading all the GPL, LGPL, MIT and BSD licenses.

Some of our libraries are released under MIT, which is the most flexible one.

Also, we develop commercial software where part of it are compiled with FreeBASIC, but no source code from FB distribution is involved (we write our own stuff).

If the viral nature of LGPL disturb you, you could just ask nicely to the GFX team to release a dynamic linked version of the library, and that will fulfill the whole LGPL statement.

Is just a semantic issue.

HTH,
Zero

EDIT: I forgot to include a link to the GNU article about LGPL vs GPL and who benefit from it:

Why you shouldn't use the Lesser GPL for your next library
DrV
Site Admin
Posts: 2116
Joined: May 27, 2005 18:39
Location: Midwestern USA
Contact:

Postby DrV » Aug 25, 2007 17:28

Eponasoft wrote:
DrV wrote:I don't want to get into a licensing discussion here, but my understanding of the LGPL leads me to think that one of its primary goals is to allow the recipient of some software that uses a protected work to modify that protected work.

That's not the realm of the LGPL but the GPL. For the GPL, this is correct. The LGPL allows the recipient of the protected work to modify that protected work under the terms of the LGPL, but does NOT grant rights to modify work that USES a work protected by the LGPL unless that work is ALSO protected by the LGPL.


That's not what I said - please reread it. The *library* (in this case, fbgfx) must be able to be modified by the recipient of a program that uses it; the program itself need not be modifiable, so long as the library is.

DrV wrote:However, if the protected work is linked statically in the distributed executable, then the protected work cannot be easily modified and recompiled; this is the case in which the user of the protected work must distribute the object files of their code so that it can be relinked with a modified version of the protected work.

If an application that uses a library protected by the LGPL does not distribute the source code to the LGPLed work, that application is in violation of the LGPL. Also, it is stated by the LGPL to distribute the object files of the application that uses the protected work (note: this asks for object files of the application, not the applications' source code). However, even from the few FB programs that have been released as freeware, how many have actually included object files? I don't recall seeing any .obj files coming with Lynn's Legacy or Poxie. Because of this, we can safely (and legally) say that every program released to date that uses gfxlib is in violation of the LGPL.


Indeed, but just because someone else broke the rules, it's not automatically allowable for others to do so as well.

DrV wrote:I can't speak for the other developers (and I didn't have anything to do with the initial licensing decisions), but I am pretty sure that they knew what they were doing when they picked the licenses they did. If not, that doesn't change the wording or intent of the licenses - if you don't like them, then don't use the software.

I'm sorry, but your last statement there is a red herring. However, it is very possible that they did not understand the actual wording and legalities behind the LGPL before they used the license. And furthermore, no one else seems to know it either, as I have yet to see a gfxlib-based program come with any object files, ready to be relinked, as required by the license.

Then perhaps some people should read the license more closely.

I would strongly suggest to the original author of gfxlib to relicense it under a different license. And I, too, am not looking for an argument of any kind here, but unfortunately, the GPL licenses are SO grammatically unclear in many areas that it automatically causes these kinds of conflicts. That's why I steer VERY clear of them and recommend that others do the same. If you really want a good license for everyone to use for free, the BSD and zlib licenses are the best. If you want a license that is highly restrictive, any Microsoft EULA will do nicely, modified to your own terms and grammar.


That's up to the authors to decide; I don't see a reason to do it. I don't see the requirements of the LGPL to be excessively inconvenient, even for commercial software. As I said before, if you don't like the terms of the license, no one is forcing you to use it. If you're that concerned, write your own compatible gfxlib and license it under terms you prefer. Authors of software have the right to license it as they like.
Lachie Dazdarian
Posts: 2338
Joined: May 31, 2005 9:59
Location: Croatia
Contact:

Postby Lachie Dazdarian » Aug 25, 2007 17:34

I have to do what with my programms that use gfxlib? Duh?

Stupid liscenses.

Leave me alone.

:P
Eponasoft
Posts: 264
Joined: Jul 26, 2007 2:40

Postby Eponasoft » Aug 25, 2007 19:24

Lachie Dazdarian wrote:Stupid liscenses.

Leave me alone.

I agree 100%.

Here's the best license you can find:
http://www.pixeltoaster.com/licence/
which is a modified BSD/zlib license. It's fair for everyone.
Dr_D
Posts: 2398
Joined: May 27, 2005 4:59
Contact:

Postby Dr_D » Aug 25, 2007 20:53

Eponasoft wrote:Here's the best license you can find:
http://www.pixeltoaster.com/licence/
which is a modified BSD/zlib license. It's fair for everyone.


That's the same license GLFW uses. ;)
DrV
Site Admin
Posts: 2116
Joined: May 27, 2005 18:39
Location: Midwestern USA
Contact:

Postby DrV » Aug 25, 2007 23:45

Eponasoft wrote:Here's the best license you can find:
http://www.pixeltoaster.com/licence/
which is a modified BSD/zlib license. It's fair for everyone.


"Best" is a rather subjective word...

Perhaps (although this might not be the case) the developers do not want to be "fair for everyone", and if we don't, then that's our decision to make - those who wrote the code may decide to do whatever they like with it!

It's honestly very discouraging to me at least when someone who has done no work on the code comes along and presumes to tell me what should be done with it. If people don't like the decisions I make about the work I've done, then the incentive I have to continue making my work available to people who have given me nothing is very much reduced.
vdecampo
Posts: 2982
Joined: Aug 07, 2007 23:20
Location: Maryland, USA
Contact:

Postby vdecampo » Aug 26, 2007 0:19

If FBGFX is published under the LGPL then it states in line 5

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.

Means there should be no problem using FBGFX in commercial apps.

-Vince
:-0
Lachie Dazdarian
Posts: 2338
Joined: May 31, 2005 9:59
Location: Croatia
Contact:

Postby Lachie Dazdarian » Aug 26, 2007 0:34

Now that clears is all up. So what was all this fuss about?

Return to “Game Dev”

Who is online

Users browsing this forum: No registered users and 3 guests