Full corresponding source code for 2.5.2?

Discuss anything to do with Nexuiz here.

Moderators: Nexuiz Moderators, Moderators

Full corresponding source code for 2.5.2?

Postby TwistedLincoln » Fri May 21, 2010 6:30 am

Where can I download the full source code for version 2.5.2? Browsing the SVN shows a tag for the 2.5.1 release, but nothing for 2.5.2. I can't use the latest development version, because I need the source that matches the binaries that I am distributing, and don't have the ability to easily recompile myself for all the platforms that Nexuiz supports.
Tony Lovasco
Twisted Lincoln, Inc.
www.twistedlincoln.com
TwistedLincoln
Member
 
Posts: 14
Joined: Mon Jun 08, 2009 7:46 pm
Location: O'Fallon, MO

Re: Full corresponding source code for 2.5.2?

Postby Vermeulen » Fri May 21, 2010 7:57 am

The engine source code should be included in the 2.5.2 download, in the 'sources' folder in the main directory.
Vermeulen
Site Admin
 
Posts: 138
Joined: Tue Feb 28, 2006 4:43 pm
Location: Canada

Re: Full corresponding source code for 2.5.2?

Postby TwistedLincoln » Fri May 21, 2010 5:41 pm

I did see that, but I can't find the source for the various libraries that are included in binary form for the Windows version (libcurl-4.dll, libtheora.dll, etc).
Tony Lovasco
Twisted Lincoln, Inc.
www.twistedlincoln.com
TwistedLincoln
Member
 
Posts: 14
Joined: Mon Jun 08, 2009 7:46 pm
Location: O'Fallon, MO

Re: Full corresponding source code for 2.5.2?

Postby TwistedLincoln » Tue Jun 01, 2010 10:26 pm

Can anyone official help me with this?

I know many have jumped ship and gone over to Xonotic, but since Alien Trap is still distributing binary copies of GPL Nexuiz, it is still on them to provide the source code...
Tony Lovasco
Twisted Lincoln, Inc.
www.twistedlincoln.com
TwistedLincoln
Member
 
Posts: 14
Joined: Mon Jun 08, 2009 7:46 pm
Location: O'Fallon, MO

Re: Full corresponding source code for 2.5.2?

Postby Willis » Thu Jun 03, 2010 5:34 pm

Since the Nexuiz project does not maintain the code, but simply links to code maintained in other projects, it is not necessary to provide a separate repository for them. In fact, they are only provided in binary forms for Windows and Mac OS X since they don't have library managers as part of the OS base.

All binaries included are unmodified from official project's codebase.

This does comply with the GPL and LGPL or other licenses of included libraries.
You should easily be able to use search engines to find each libraries respective code base, if not, please specify which one you are looking for source for.
--Willis
Willis
Site Admin
 
Posts: 168
Joined: Tue Feb 28, 2006 7:00 pm
Location: Wisconsin, USA

Re: Full corresponding source code for 2.5.2?

Postby TwistedLincoln » Thu Jun 03, 2010 9:29 pm

Willis wrote:Since the Nexuiz project does not maintain the code, but simply links to code maintained in other projects, it is not necessary to provide a separate repository for them.


While there is no requirement to maintain a separate repository, anyone who distributes GPL software in binary form must also provide access to the full corresponding source code, or a written offer for the source code. Under certain non-commercial circumstances (which do seem to apply to Nexuiz), one can simply pass along the written offer from the upstream distributor.

Willis wrote:
All binaries included are unmodified from official project's codebase.


Which does make things easier. But one must still pass along the written offer for source code from the upstream source -- that is to say provide info as to where one can get the source code.

(See http://www.gnu.org/licenses/gpl-faq.html#UnchangedJustBinary)

Willis wrote:This does comply with the GPL and LGPL or other licenses of included libraries.
You should easily be able to use search engines to find each libraries respective code base, if not, please specify which one you are looking for source for.


No, this doesn't comply with the GPL, etc. Simply saying "do a Google search" is not providing info on where to get the source. That's the equivalent of telling someone asking how to get to Washington DC to simply "go east."

For starters, no where is there a listing of which libraries were used. Sure, one can look at the .dll's for starters, but this is by no means comprehsive, especially if one doesn't have knowledge of binary Mac OS libraries (as I do not) to know how to find them by looking at the directories.

Second, there is no listing of which versions of the libraries in question are being distributed in binary form. Without that info, even the original creators website(s) won't be of use, as no one will know what version of the libraries source code they need.

While a proper downloadable package with the full source code included would be ideal, simply listing all of the upstream packages needed and their versions would be a good start.

And remember all the build scripts needed to compile must also be distributed in order to comply with the GPL, so if Nexuiz is using such a system (which it appears to, based on the SVN version), instructions on where to get those scripts should be included as well.

I'm not trying to be difficult here, but this is a very important issue that makes it currently virtually impossible to legally distribute the pre-packaged binaries of Nexuiz right now.
Tony Lovasco
Twisted Lincoln, Inc.
www.twistedlincoln.com
TwistedLincoln
Member
 
Posts: 14
Joined: Mon Jun 08, 2009 7:46 pm
Location: O'Fallon, MO

Re: Full corresponding source code for 2.5.2?

Postby Willis » Thu Jun 03, 2010 11:37 pm

What you link to is a guideline, and not the license itself, and that guideline also contains a lot of information relating to changes in GPL v3.

What that is referring to as binary is the application itself. Technically speaking, libraries are not binaries if in dynamic form. The entire project is compilable without the libraries, and all libraries could theoretically be replaced without the code to said library. If Darkplaces (the engine which powers Nexuiz) were to use code directly from those libraries, or if it were to statically link to libraries, the case would certainly be different.

No matter how you look at it, GPL is incredibly vague when it comes to libraries and non-code entities, and there are many "point of views" as to what it could mean, but nothing clearly established by the license itself.

As for build scripts, this depends on what you mean. The build scripts required to compile the code are indeed required, and this is true for both the engine, and the gamecode. Any script used specifically for packaging the game together does not fall under such a requirement as they are not a part of the code, but rather a process. However, that doesn't mean such a script isn't out there and free to use, but a 'packager' is not required by license, just as any application that doesn't use GPL content isn't required to have it's packaging (IE: non-compiling) tools included. However, I know there are certainly scripts out there that do such things, possibly even within the official code repositories, but every such script is subject to operating system and conditions.

All that being said, to the best of my knowledge, all libraries used with the Darkplaces engine, and therefore the Nexuiz project are able to use the latest official respective release with the exception of the jpeg or libjpeg library, which Darkplaces uses version 6b (version 7 was made intentionally binary incompatible by that project's developer). A possible upcoming exception to this is SDL, as Darkplaces is currently only tested with the SDL 1.2 release tree.

For a list of all potential libraries Darkplaces uses, you can search the engine source code for ".dll" ".so" or ".dylib" to respective operating systems. Note Nexuiz doesn't distribute one of the potential libraries as it doesn't use it's functionality at all (offscreengecko).
--Willis
Willis
Site Admin
 
Posts: 168
Joined: Tue Feb 28, 2006 7:00 pm
Location: Wisconsin, USA

Re: Full corresponding source code for 2.5.2?

Postby TwistedLincoln » Fri Jun 04, 2010 12:18 am

Willis wrote:What you link to is a guideline, and not the license itself, and that guideline also contains a lot of information relating to changes in GPL v3.


True. The Free Software Foundation isn't really the best at coming up with license specific examples. Or really any specific examples at all, actually.

Willis wrote:Technically speaking, libraries are not binaries if in dynamic form. The entire project is compilable without the libraries, and all libraries could theoretically be replaced without the code to said library. If Darkplaces (the engine which powers Nexuiz) were to use code directly from those libraries, or if it were to statically link to libraries, the case would certainly be different.


You are correct when it comes to the licensing of Nexuiz itself. But if one of the specific dynamic libraries is released under the GPL or LGPL, it is still necessary for me to provide the source code for this library upon request if I distribute it. Because I have to distribute EXACTLY the same version source code as the compiled library, the only safe way for me to distribute the compiled version is to have a copy of the relevant source code on hand, even if only in case anyone ever asks.

Willis wrote:No matter how you look at it, GPL is incredibly vague when it comes to libraries and non-code entities, and there are many "point of views" as to what it could mean, but nothing clearly established by the license itself.


Agreed completely. I made a point of making this argument during the development of GPLv3 in hopes that license might be made more specific. Sadly, that isn't really what happened.

Willis wrote:As for build scripts, this depends on what you mean. The build scripts required to compile the code are indeed required, and this is true for both the engine, and the gamecode. Any script used specifically for packaging the game together does not fall under such a requirement as they are not a part of the code, but rather a process. However, that doesn't mean such a script isn't out there and free to use, but a 'packager' is not required by license, just as any application that doesn't use GPL content isn't required to have it's packaging (IE: non-compiling) tools included. However, I know there are certainly scripts out there that do such things, possibly even within the official code repositories, but every such script is subject to operating system and conditions.


That does make sense, and I hadn't thought about that. Sadly it does create an unfortunate scenario in which a project could release everything needed to build the executables (and therefore comply with the GPL), but not the scripts needed to make those executables do anything actually useful. Actually, that's exactly what Sun/Oracle did with the VirtualBox Guest Additions, but I digress...

Willis wrote:All that being said, to the best of my knowledge, all libraries used with the Darkplaces engine, and therefore the Nexuiz project are able to use the latest official respective release with the exception of the jpeg or libjpeg library, which Darkplaces uses version 6b (version 7 was made intentionally binary incompatible by that project's developer). A possible upcoming exception to this is SDL, as Darkplaces is currently only tested with the SDL 1.2 release tree.

For a list of all potential libraries Darkplaces uses, you can search the engine source code for ".dll" ".so" or ".dylib" to respective operating systems. Note Nexuiz doesn't distribute one of the potential libraries as it doesn't use it's functionality at all (offscreengecko).


So essentially what you're saying is that if I manually compile the latest versions of each library for MacOS and Windows, I can distribute them alongside the precompiled Nexuiz binaries, and everything should work? If so that is a viable solution for me, if not what I was looking for.

Another, more obvious question comes to mind: are there any instructions for cross compiling Nexuiz from SVN in GNU/Linux? If so, I can just compile my own binaries from source, and the SVN scripts should take care of fetching the source code for the relevant libraries.
Tony Lovasco
Twisted Lincoln, Inc.
www.twistedlincoln.com
TwistedLincoln
Member
 
Posts: 14
Joined: Mon Jun 08, 2009 7:46 pm
Location: O'Fallon, MO

Re: Full corresponding source code for 2.5.2?

Postby Willis » Fri Jun 04, 2010 1:00 am

The engine itself will compile completely without the source to any of the libraries. All functionality can also be duplicated without the use of any libraries (Ex, using non-compressed files in directory structure would remove need for zlib, converting ogg to wav would remove need for ogg/vorbis, using pcx or tga instead of jpeg, etc), which while terribly inconvenient, does meet the requirements of the GPL.

The only place this isn't the case is the compiler used to compile the nexuiz game code. This is why the fteqcc binaries AND source code are distributed with all Nexuiz releases. Since Nexuiz could not function without fteqcc without modification, that is provided as required by license.

As for cross-compiling, everything for the engine is included as best as possible in the source code. The makefile for linux will compile both linux and windows binaries via gcc. The makefile also handles building on Mac OS X, however, Apple provides no way to cross-compile, so it must be done on a Mac (buildscripts currently ssh to remote machines for specific platforms, not something that can be redistributed). I believe the makefile also contains support for BSD. On windows, there are both MSVC and mingw project files. For libraries, I am doubtful, for as I stated, the libraries are not required to compile the game or engine code, so are not recompile each build, hence the libraries are only provided in redistribution.

As for your question about compiling libraries, yes, to the best of my knowledge that is the case with all except libjpeg, which no longer appears to offer 6b for download, but can be downloaded here. The reason for using the older version of jpeg is because with linux, there are no supplied libraries, the OS handles them, and many stable distros still use 6b, and it is not easy to install side-by-side versions, and versions 7 and 8 are not binary compatible with 6. It is also not easy on the engine side to support two separate versions. This may change in the future, I am uncertain.
--Willis
Willis
Site Admin
 
Posts: 168
Joined: Tue Feb 28, 2006 7:00 pm
Location: Wisconsin, USA

Re: Full corresponding source code for 2.5.2?

Postby TwistedLincoln » Fri Jun 04, 2010 5:28 am

I think I have everything I need now. I really have no need for the Mac OS version, only the GNU/Linux and Windows ones, so I'm not concerned with compilation issues there. And if I can cross compile the Windows version on my GNU/Linux box, that will solve most of my issues.

I did some digging into the libraries that are included, and ironically, only a couple are actually licensed under the GPL. Most appear to be BSD-style licenses, which don't require source code distribution at all... So I might have overreacted a bit. :wink:

Thank you for all of your help. I apologize if I came across as harsh initially -- I've had similar conversations with developers from many different open source and Free Software projects, and in most cases I'm basically met with apathy. Guess I've gotten a bit jaded about such things as a result. I'm glad to see that my experience here has been different. It's also worth noting that Nexuiz remains one of only two FPS games that are completely Free Software (OpenArena being the other) -- far too many projects use non-free artwork and game content and try to market themselves as "open source" just because their game engine is.
Tony Lovasco
Twisted Lincoln, Inc.
www.twistedlincoln.com
TwistedLincoln
Member
 
Posts: 14
Joined: Mon Jun 08, 2009 7:46 pm
Location: O'Fallon, MO

Next

Return to Nexuiz - General Discussion

Who is online

Users browsing this forum: No registered users and 1 guest