AFL vs. GPL

General, off-topic discussion about things of interest to the members of these forums.

Moderator: cheriff

Post Reply
mharris
Posts: 155
Joined: Sun Jan 25, 2004 2:26 pm
Location: Annapolis, MD, USA

AFL vs. GPL

Post by mharris »

I really don't want to start a religious war, but what is the problem with GPL code vs. AFL code? I've seen posted here on a couple of occasions "we can't accept that code because it's licensed under the GPL."

What are the main distinctions between the GPL and the AFL, and why is the AFL chosen over the GPL? I think I understand the GPL fairly well (for a non-lawyer, at least), but I'll admit to being pretty ignorant about the AFL.

Thanks for any enlightenment you can offer. And like I said, I don't want to upset anyone -- I know this is an issue people get all bothered about, my interest here is purely academic (hehe)....

mharris
Oobles
Site Admin
Posts: 347
Joined: Sat Jan 17, 2004 9:49 am
Location: Melbourne, Australia
Contact:

Post by Oobles »

There is one very basic difference between GPL and AFL. GPL requires that any program that you link with the code must also be GPL and have the source code available. AFL allows commercial companies to use the code without providing their source code. AFL only requires that the usage of the code be credited in the distribution. AFL is considered the better written version of the BSD license.

As you can probably understand, AFL is chosen so that people can actually use libraries in their demos and are not required to release source code.

In my view GPL is useful for tools such as GCC which only the output is released and is not covered by a license and you want to encourage people to use the tool. I won't touch libraries released under GPL as it has the effect of requiring me to release my programs under GPL aswell.

As most people who have put projects in the CVS repository here know, I am very stuborn about having a license of some kind associated with all code. Choices are generally...

public domain: I give it away.. it's yours.
AFL/BSD: I/we retain copyright, but you can use it for whatever you want.
GPL: I/we retain copyright, and if you use it.. you have to release code.
Non-Commercial: I retain copyright.. and you can use it for non-commercial use only. Contact me and we can discuss commercial use.

Hope that helps.
Oobles.
mrbrown
Site Admin
Posts: 1537
Joined: Sat Jan 17, 2004 11:24 am

Post by mrbrown »

Pretty much what Oobles said. In my opinion, the GPL places enough restrictions on the code where it's no longer Free or Open. Forcing someone to retain the same license that you use that requires them to publish their source code (whether or not they made any modifications to your code) is not my idea of Free. To me Open Source means giving your source away and retaining copyright, where the licensee has pretty much free reign of what they do with your code (having your cake and eating it too). If you don't want your code open, then use a proprietary license, or heaven forbid, the GPL.

The AFL is BSD with clearer legal text. It specifies the licensee's options in case there is a patent dispute, provides a clear disclaimer, and has the hotly-debated (in GPL-land at least) "no advertising" clause. For me, having my work attributed with the original copyright notice is the only "restriction" I'm willing to place on my work. Other than that, you are free to do whatever you want with the code.

I could go into a long rant about why I disagree with the GPL and the practices of those who enforce it, but there's plenty of that on the Web anyhow :). Let me just say, unlike Oobles, I don't think the GPL has a place in any tool or software, and I grow warier of the FSF's true intentions every time I see them strongarm a company using the GPL.

Cheers.
User avatar
Drakonite
Site Admin
Posts: 990
Joined: Sat Jan 17, 2004 1:30 am
Contact:

Post by Drakonite »

Linking to a GPL'd library does not force your app to be GPL'd.
Shoot Pixels Not People!
Makeshift Development
pixel
Posts: 791
Joined: Fri Jan 30, 2004 11:43 pm

Post by pixel »

Linking to a dynamical GPL library doesn't. Linking to a statical GPL library does. Linking to a statical LGPL library doesn't. As far as I know :-P
pixel: A mischievous magical spirit associated with screen displays. The computer industry has frequently borrowed from mythology. Witness the sprites in computer graphics, the demons in artificial intelligence and the trolls in the marketing department.
misfire
Posts: 110
Joined: Mon Sep 06, 2004 7:53 am
Location: Germany

Post by misfire »

Hi, I'm currently working on a PS2 project which is licensed under the GPL. Apart from the philosophical reasons, the ELF is statically linked to two LGPL libraries leaving me no other choice.

According to this list, GPL is incompatible with AFL which is the license used by the PS2SDK.

I don't know if this is a problem on the binary level (linking PS2SDK libraries), but on the source level it certainly is (I cannot incorporate any PS2SDK source code directly).

Please give me some legal advice. Does this really mean that I cannot use the PS2SDK for the project at all?


EDIT: This is giving me headache. How could you ever use the GPL-licensed PS2SDK ports when you're not allowed to link them to the AFL-licensed PS2SDK? Also, ps2link is violating the GPL by statically linking in ps2smap.irx.

Why doesn't PS2SDK use the 3-clause BSD license like PSPSDK? At least dual licensing would be helpful. IMHO, using AFL only was a big mistake.
J.F.
Posts: 2906
Joined: Sun Feb 22, 2004 11:41 am

Post by J.F. »

It's not a problem. If you had bothered to look closer at the GPL FAQ, you would have seen:
What legal issues come up if I use GPL-incompatible libraries with GPL software?

Both versions of the GPL have an exception to their copyleft, commonly called the system library exception. If the GPL-incompatible libraries you want to use meet the criteria for a system library, then you don't have to do anything special to use them; the requirement to distribute source code for the whole program does not include those libraries, even if you distribute a linked executable containing them.
That's why you can do things like run GPL programs compiled with DirectX and the like.
misfire
Posts: 110
Joined: Mon Sep 06, 2004 7:53 am
Location: Germany

Post by misfire »

Thank you for pointing this out.

If I understood it correctly, it is still not possible to take portions of the PS2SDK source code, improve it, and directly include it into GPL-licensed software? Because then, it would be part of the "Major Component".

From GPLv3:

Code: Select all

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.
J.F.
Posts: 2906
Joined: Sun Feb 22, 2004 11:41 am

Post by J.F. »

misfire wrote:Thank you for pointing this out.

If I understood it correctly, it is still not possible to take portions of the PS2SDK source code, improve it, and directly include it into GPL-licensed software? Because then, it would be part of the "Major Component".
No, you have to leave it as part of the SDK and not incorporate it into the program. That's the point of the difference in the license - if you could take portions of the SDK, make a few changes, then require people to GPL it, it would be going against the author's wish to AFL it instead. So you take portions, improve it, then put it back in the original SDK so that everyone can enjoy the improvements with the same license the original had.
Post Reply