Page 1 of 1

Newly compiled love.exe in VS2010 runs without DLLs

Posted: Tue Mar 06, 2012 12:52 am
by luminosity
Hi,

So there were a few little tweaks I wanted to make to Love that required building it myself (eg, make it look for a main.lua in the same directory if you double click to open love.exe), and wanted to give luaJIT a try. I've downloaded Visual c++ 2010 express, the love source, the sdk, got them all set up, and it compiles properly and runs properly with the changes I wanted -- but it doesn't seem to require the DLLs to run. When I move it into its own directory without the DLLs everything runs perfectly fine, which is not what I want.

This is the first project I've tried to compile myself, and I'm unsure if I've just set something wrong in VC++?

FYI I built my own Lua too, and copied it into the SDK dir, as detailed in this thread. I haven't changed any files in the love solution outside of the boot.lua.h.

Thanks.

Re: Newly compiled love.exe in VS2010 runs without DLLs

Posted: Tue Mar 06, 2012 1:42 am
by TechnoCat
luminosity wrote:Hi,

So there were a few little tweaks I wanted to make to Love that required building it myself (eg, make it look for a main.lua in the same directory if you double click to open love.exe), and wanted to give luaJIT a try. I've downloaded Visual c++ 2010 express, the love source, the sdk, got them all set up, and it compiles properly and runs properly with the changes I wanted -- but it doesn't seem to require the DLLs to run. When I move it into its own directory without the DLLs everything runs perfectly fine, which is not what I want.

This is the first project I've tried to compile myself, and I'm unsure if I've just set something wrong in VC++?

FYI I built my own Lua too, and copied it into the SDK dir, as detailed in this thread. I haven't changed any files in the love solution outside of the boot.lua.h.

Thanks.
This is illegal. Statically compiling the DLL's (specifically devil, openal, sdl) is illegal AFAIK.
If you have the required DLL's in some envvar like system32 then it will work without DLL's in the current dir.

Re: Newly compiled love.exe in VS2010 runs without DLLs

Posted: Tue Mar 06, 2012 3:57 am
by Boolsheet
TechnoCat wrote:This is illegal.
Illegal is such a strong word. ;)

It is perfectly fine to link statically against LGPL libraries as long as you provide a way for users to recompile the LGPL part. That means you have to distribute the source of the LGPL part and at least the object code (.obj files) of your non-LGPL stuff.

The LÖVE SDK for msvc2010 includes only dynamically linked versions of SDL, OpenAL Soft and DevIL. (Like TechnoCat said) If you still can run it without any of the dlls in the same directory as the executable you probably have other versions in the dll search targets. A debugger should show you what exactly gets loaded (I know windbg does).

Re: Newly compiled love.exe in VS2010 runs without DLLs

Posted: Tue Mar 06, 2012 11:24 am
by Robin
Boolsheet wrote:It is perfectly fine to link statically against LGPL libraries as long as you provide a way for users to recompile the LGPL part. That means you have to distribute the source of the LGPL part and at least the object code (.obj files) of your non-LGPL stuff.
No. Statically linking is making a derivative in terms of LGPL, which means LÖVE would need to be LGPL or GPL as well.

Re: Newly compiled love.exe in VS2010 runs without DLLs

Posted: Tue Mar 06, 2012 12:29 pm
by pk
Wikipedia says it's not such a cut-and-dry issue.

Re: Newly compiled love.exe in VS2010 runs without DLLs

Posted: Tue Mar 06, 2012 12:51 pm
by Boolsheet
Yeah, depends on what is considered a modified version. Damn you, lawyer speak.

Section 4 of the LGPL states that you can release your work under your terms if you follow a few points. The issue of static or dynamic is never mentioned in the text, except where it is an option of two in section 4d1 where dynamic loading is described. I interpret the option 4d0 as the thing I said above.

Re: Newly compiled love.exe in VS2010 runs without DLLs

Posted: Tue Mar 06, 2012 2:28 pm
by MarekkPie
Boolsheet wrote:4d1 ... 4d0
Damn! I missed my saving throw. Anyone have a Cure Light Wounds?

Re: Newly compiled love.exe in VS2010 runs without DLLs

Posted: Tue Mar 06, 2012 2:52 pm
by Robin
pk wrote:Wikipedia says it's not such a cut-and-dry issue.
Fair enough. I would err on the safe side, though, with things like this.

Re: Newly compiled love.exe in VS2010 runs without DLLs

Posted: Tue Mar 06, 2012 3:09 pm
by scirath
Something just dawned on me (sorry for yet another topic segue, luminosity). It's been awhile since I thought about GPL a whole lot, but when we distribute the DLLs with our projects (or with the LÖVE binary itself, for that matter), aren't we technically required to provide both a copy of the license and (at least) a link to the original source code for the DLLs?

Re: Newly compiled love.exe in VS2010 runs without DLLs

Posted: Tue Mar 06, 2012 3:56 pm
by pk
Not sure. The LOVE distribution does, but seeing as LOVE can't force end users to release their creations as free software/open source, I don't think anyone is required to use or alter the bundled license.txt.

The SDL 2.0 branch has switched to the zlib/libpng license, which is nice.