Index | FAQ | Search | Memberlist | Usergroups | Profile | Log in to check your private messages | Log in | Register

MP3 or Ogg Support Goto page Previous 1, 2, 3, 4, 5 Next

| Inside3d Forums Forum Index -> Engine Programming

View previous topic :: View next topic
Author | Message
--- | ---
frag.machine Joined: 25 Nov 2006 Posts: 728 |

Posted: Wed Jun 16, 2010 5:12 pm Post subject: |

Well, I am not here to patrol the actions of people (leileilol does it better than me ). If you guys think there's no problem with mixing different code licenses and then make a public release of the result, good luck. I sincerely hope you guys manage to proof me I am flat wrong for being too much cautious; the liberty of free experimentation without worrying about breaking licenses definitively would be positive to our community.
_________________
frag.machine - Q2K4 Project
http://fragmachine.quakedev.com/

Back to top |

Spike Joined: 05 Nov 2004 Posts: 944 Location: UK |

Posted: Wed Jun 16, 2010 5:16 pm Post subject: |

windows95b comes with opengl out of the box. I've never even seen win95a, but I do know that it also lacks usb and long file names. personally, I never saw a 3d card before win98. a user is free to use it how they wish, but when you distribute an engine that requires opengl, you generally expect that its for a computer that supports opengl well enough for it to be of use - ie: probably at least win98.
In which case it is a system component in the majority of systems that will run it. I don't see the issue. :P
_________________
What's a signature?

Back to top |

mh Joined: 12 Jan 2008 Posts: 910 |

Posted: Wed Jun 16, 2010 5:59 pm Post subject: |

Spike wrote:
a user is free to use it how they wish, but when you distribute an engine that requires opengl, you generally expect that its for a computer that supports opengl well enough for it to be of use - ie: probably at least win98. In which case it is a system component in the majority of systems that will run it. I don't see the issue.

Well that makes no sense. You're saying that you can't link to the DirectX SDK but yet you can link to OpenGL? You really need to explain this better.
The other option of course is to switch to GPL v3 (which is allowed for any GPL v2 work) which totally clarifies the whole "system library" thing.
_________________
DirectQ Engine - New release 1.8.666a, 9th August 2010
MHQuake Blog (General)
Direct3D 8 Quake Engines

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Wed Jun 16, 2010 8:51 pm Post subject: |

Spike wrote:
windows95b comes with opengl out of the box. I've never even seen win95a, but I do know that it also lacks usb and long file names. personally, I never saw a 3d card before win98.

"#include <arpa/inet.h>"
Help! Help! The file isn't part of the kernel! Oh noes! OMG.
/Breaks into cold sweat
Quake ports using 3D API on non-Windows 95 compatible systems are illegals! OMG ... I better write the OS X people and send emails to SourceForge about non-Windows ports of the Quake engine.

frag.machine wrote:
I sincerely hope you guys manage to proof me I am flat wrong for being too much cautious

Two parts of that sentence are important:
1. "manage to proof me"
Right after I find Obama's birth certificate for those people that people that say they need it.
Look, I feel that your viewpoint is sincere. And also wrong and not the interpretation witnessed anywhere in common practice outside this thread.
I personally don't feel an obligation to track down people with everything single "interesting" view point and get them to agree with mine.
As far as I am concerned this section of the GPL 2 more than covers it and is the prevailing common sense interpretation used by in my examples above companies like Sun.

GPL 2 Text wrote:
However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

2. "flat wrong for being too much cautious"
Yes. But you said this, not me ...
I agree with both the "flat out wrong part" and the "too much cautious" part.
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...

Back to top |

frag.machine Joined: 25 Nov 2006 Posts: 728 |

Posted: Wed Jun 16, 2010 9:09 pm Post subject: |

And I disagree with the out of context partial quote But I guess I have nothing useful to add to this discussion, so... Nevermind. _________________ frag.machine - Q2K4 Project http://fragmachine.quakedev.com/

Back to top |

mh Joined: 12 Jan 2008 Posts: 910 |

Posted: Wed Jun 16, 2010 9:37 pm Post subject: |

The annoying thing is that I strongly suspect that the intention of the GPL is very much not to prohibit you from linking with non-free third-party libraries. Instead it's to prevent a situation where I could take something like the Quake engine, put all of my own code changes into a static lib, make that static lib non-free, then link to it.
Unfortunately the quite murky (and - admittedly - naive) GPL 2 text leaves it open to interpretation (or open to misunderstanding of the intention; or not, depending on which side of the fence you sit on).
This suspicion is pretty much confirmed by the GPL 3 FAQ entry that basically says "you can link with non-free 3rd party libraries".
_________________
DirectQ Engine - New release 1.8.666a, 9th August 2010
MHQuake Blog (General)
Direct3D 8 Quake Engines

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Wed Jun 16, 2010 10:40 pm Post subject: |

frag.machine wrote:
And I disagree with the out of context partial quote

It's all good, I am just kidding around and exercising a bit of absurdium.
Either way, I have important modding business to attend to and tutorials to write. But it was a fun conversation.
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...

Back to top |

mk Joined: 04 Jul 2008 Posts: 95 |

Posted: Thu Jun 17, 2010 2:16 am Post subject: |

mh wrote:
I strongly suspect that the intention of the GPL is very much not to prohibit you from linking with non-free third-party libraries. Instead it's to prevent a situation where I could take something like the Quake engine, put all of my own code changes into a static lib, make that static lib non-free, then link to it.

Exactly.
And I'm also quite sure that you can actually do something like this, as long as your new library isn't required or is freely available for the open-source code to compile and run.
That is, your new library must be somewhat optional, and linking it dinamically may be the only way to ensure that if you're distributing binaries, since the end user may not be able to unlink the precompiled binary to replace that static library.
Now, trying to explain this in another way...
In the source tree, what ends up in the binary is basically:
- source files and header files, compiled to object files
- data files (e.g.: icons)
- static libraries, which are object files precompiled from source files which may not be available to the end user
And as I understand, linking is not just writing code for it in the source, but also running the linker program to actually include the static library object(s) into the binary code of the program. So, static libraries are never linked to the actual source code, the source code only references them. The actual linking is done by the linking tool.
What the GPL was designed for is to prevent a user from distributing his binaries if copies of the static libraries' objects linked in it aren't available to be linked in new binaries of the open-source program. So, for example, it would prevent mh from including all of his changes in a static library and not releasing the object files of this library, only the full DirectQ executable and the open-source code for the program, as having no access to the object files of the library would make the code impossible to compile.
And finally, it also says that you don't need to distribute the object files of the library if these object files are already freely available to any user of the target platform.
_________________
Makaqu engine blog / website.
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn.

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Fri Jun 18, 2010 5:07 am Post subject: |

I wouldn't do this except -- well -- except this is always the kind of thing I normally do. Supervilliian License Violators or Quake Family Tree? Under some "interesting" interpretations of the GPL, you don't have a list of innovative engine modders but rather a criminal list of GPL violators. Well, feel free to view the above image as a picture of Quake super-villainy of license violators --- I find the very idea offensive.
If you want to use the far-fetched interpretation of the GPL, how can the Windows version of DarkPlaces be compiled on Linux -- I mean, if you take the silly argument posed in this thread literally, there are no Windows 95 components available on Linux therefore they'd all have to be third party. And gcc on Linux certainly doesn't supply them.
Some of the ideas raised in this thread remind me of nerds sitting around and debating whether Darth Maul or Count Dooku would win in lightsabre fight.
There is a reason it requires a JD and to belong to the American Bar Association in, well, the United States to practice law [for the most part].
Some of the ludicrous ideas put forth in this thread are offensive at the minimum and out of this world and entirely disconnected with reality at the maximum. The mere idea that compiling the q1source and distributing it violates the GPL is a novel idea.
I reserve the right to continually trash some of the stupid ideas raised in this thread. Not just for fun, but because it is "The Right Thing" (TM) to do.
Common Sense (TM) - It didn't get us into this argument, but it sure as Fuck(TM) can get us out of it!
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...

Back to top |

Spike Joined: 05 Nov 2004 Posts: 944 Location: UK |

Posted: Fri Jun 18, 2010 10:23 am Post subject: |

the linux version of gcc that compiles for windows is named mingw, as are the libraries provided to compile for windows. by linking against libGL.so in linux, you link against a system componant, but pretty much everything else is linking against a compiler componant.
You could argue that linking against the dx sdk is the standard way to utilize a major windows componant, and you'd likely get away with it. Certainly noone would care. It is not explicitly stated that this is permitted, however.
The GPL covers distribution only. Imho, so long as your .exe does not statically link to non-gpled works, and contains no non-gpled headers, you can dynamically link how you want, so long as the additional libraries are optional (plugins or whatever) or system componants (again optional, as you can run them on annother system). But is that what the gpl actually says? no. It makes no distrinction between static or dynamic linking.
But it only covers distribution. Thus you could argue that if it is the user that linked, after distribution, then the GPL was not violated.
Either way, *PLEASE* kill scitech's mgl in your version of winquake... seriously, kill it. now. More recent versions are distributed under a dual license including LGPL (in which case you should probably update to resolve any/all arguments). But kill it anyway. :P
With winquake, you don't even need the dxsdk directory, as quake doesn't utilise any directx features that are not already provided by the compiler's version of the sdk (msvc6 anyway, msvc5 might not even have a dxsdk, never used vc5).
With those two changes, an engine will comply with any interpretation of the GPL (without exceptions), allowing you to use code from other GPL projects.
_________________
What's a signature?

Back to top |

frag.machine Joined: 25 Nov 2006 Posts: 728 |

Posted: Fri Jun 18, 2010 12:25 pm Post subject: |

Baker wrote:
Some of the ludicrous ideas put forth in this thread are offensive at the minimum and out of this world and entirely disconnected with reality at the maximum. The mere idea that compiling the q1source and distributing it violates the GPL is a novel idea.
I reserve the right to continually trash some of the stupid ideas raised in this thread. Not just for fun, but because it is "The Right Thing" (TM) to do.

Oh, so this was just a trolling thread, not a civilizated discussion, then. I'm sorry, wrong door.
_________________
frag.machine - Q2K4 Project
http://fragmachine.quakedev.com/

Back to top |

mh Joined: 12 Jan 2008 Posts: 910 |

Posted: Fri Jun 18, 2010 2:48 pm Post subject: |

Or alternatively switch to GPL 3 and the whole question just goes away. You can even statically link to bloody FMOD if you want, GPL 3 permits it, and we can all forget that we ever had this discussion. _________________ DirectQ Engine - New release 1.8.666a, 9th August 2010
MHQuake Blog (General)
Direct3D 8 Quake Engines

Back to top |

Downsider Joined: 16 Sep 2008 Posts: 478 |

Posted: Fri Jun 18, 2010 5:12 pm Post subject: |

Nightfire is based on HL1, not Q3.

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Fri Jun 18, 2010 8:28 pm Post subject: |

mh wrote:
Or alternatively switch to GPL 3 and the whole question just goes away. You can even statically link to bloody FMOD if you want, GPL 3 permits it, and we can all forget that we ever had this discussion.

MH, can you explain this in more detail? Citing the relevant portions?
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...

Back to top |

mh Joined: 12 Jan 2008 Posts: 910 |

Posted: Fri Jun 18, 2010 10:32 pm Post subject: |

Sure thing. This first part is not from the text of the GPL 3 itself, which is of course in legalese and therefore open to individual interpretations by us non-lawyers (and as non-lawyers we should realise that our own interpretations of legalese are not necessarily going to be valid). Instead, I'm citing the FSF explanatory text.
Exhibit A m'lud; from http://www.gnu.org/licenses/quick-guide-gplv3.html

Quote:
Less Source to Distribute: New System Libraries Exception Both versions of the GPL require you to provide all the source necessary to build the software, including supporting libraries, compilation scripts, and so on. They also draw the line at System Libraries: you're not required to provide the source for certain core components of the operating system, such as the C library.
GPLv3 has adjusted the definition of System Library to include software that may not come directly with the operating system, but that all users of the software can reasonably be expected to have. For example, it now also includes the standard libraries of common programming languages such as Python and Ruby.
The new definition also makes it clear that you can combine GPLed software with GPL-incompatible System Libraries, such as OpenSolaris' C library, and distribute them both together. These changes will make life easier for free software distributors who want to provide these combinations to their users.

If you write a D3D9 application and advertise it as a D3D9 application, stating that you need D3D9 to run it, then a user of your application must be reasonably expected to have D3D9 on their system. 2 + 2 = 4. Note also the part that I've bolded.
The actual GPL 3 definition of "system libraries" reads as follows:

Quote:
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. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.

It's important to consider both texts together. The quick guide explanation is the one aimed at you and me that says in plain English what we can and cannot do. The license definition is the one written in a manner that satisfies legal requirements. Quoting that in isolation is pointless because we are not lawyers and we do not understand this stuff.
The first text gives the intention behind the license, the second part gives that intention translated into legalese. Simple really.
Any further questions? I rest my case.
_________________
DirectQ Engine - New release 1.8.666a, 9th August 2010
MHQuake Blog (General)
Direct3D 8 Quake Engines

Back to top |

Display posts from previous:

| Inside3d Forums Forum Index -> Engine Programming | All times are GMT Goto page Previous 1, 2, 3, 4, 5 Next
Page 4 of 5

Jump to:

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Powered by phpBB © 2004 phpBB Group