LuaSQLite3 - Cross Platform Binary Collection

Showcase your libraries, tools and other projects that help your fellow love users.
User avatar
josefnpat
Inner party member
Posts: 955
Joined: Wed Oct 05, 2011 1:36 am
Location: your basement
Contact:

LuaSQLite3 - Cross Platform Binary Collection

Post by josefnpat »

What's this for?
I'm a big fan of SQL, and SQLite3 seems like a great drop in module for love. Whereas LuaSQLite3 doesn't have a place in love at the moment (if you feel otherwise, please feel free to contribute to a different thread, not this one) it's an interesting experiment to see if developers would actually use it effectively in their own projects. To this purpose, I am hoping that this thread will allow folks to try and deploy projects in love cross-platform, just like love can.

I admit I am not the most knowledgeable about lua module binaries, and if there is something goofy (e.g. missing deps, how to trust sources, etc etc) please feel free to tell me!

The goal of this thread is to attempt to find a set of binaries that are;
  • Made for the each OS supported by the current version of love.
  • Made from trusted sources
  • Is the current release of LuaSQLite3.
What can I do?
There are a few things you can do;
  • Build a binary from the list if it does not meet specifications, and post it here. The downloads will be updated.
  • Test binaries with, and report any problems you find.

    How can I test this?
    Visit the download section for your platform, and download the test_<platform>_<arch>.zip, and run it!
    Regardless if it works for you or not, please post;
    • The version of your operating system.
    • If it works, and if not, what error(s) you get!
    Available Downloads
    • Windows x86 (32-bit) - download
      status: tested on Vista and wine-1.5.31
      source: boolsheet, Vista
      version: 0.9.1
      note: You need both lsqlite3.dll and lua51.dll in conjunction with the default 0.8.0 download.
    • Windows x86_64 (64-bit) - download
      status: tested on wine-1.5.31, 7
      source: boolsheet, Vista
      version: 0.9.1
      note: You need both lsqlite3.dll and lua51.dll in conjunction with the default 0.8.0 download.
    • OS X (32/64-bit) - download
      status: tested on OS 10.8
      source: slime, OS X 10.5 -> OS X 10.8
      version: 0.9.1
      note: since stock love 0.8.0 doesn't allow io.popen, you need to use slime's openalsoft build (located in the download folder as well)
    • Linux x86 (32-bit) - download
      status: untested
      source: josefnpat, Ubuntu 12.04 x86 (32)
      version: 0.9.1
    • Linux x86_64 (64-bit) - download
      status: tested on Ubuntu 12.04 and Arch Linux (2013-07-05)
      source: josefnpat, Ubuntu 12.04 x86_64 (64)
      version: 0.9.1
edit: slime tells me it's best to provide universal 32/64 binaries in OS X.
edit: slime got the 32.64 OSX bins
edit: boolsheet got the window dll's!
edit: moving the stuff around, links have changed!
edit: added test builds
edit: added custom love binary from slime for io.popen support on OS X
Last edited by josefnpat on Wed May 07, 2014 8:07 pm, edited 17 times in total.
Missing Sentinel Software | Twitter

FORCIBLY IGNORED.
<leafo> when in doubt delete all of your code
<bartbes> git rm -r *
<bartbes> git commit -m "Fixed all bugs"
<bartbes> git push
szensk
Party member
Posts: 155
Joined: Sat Jan 19, 2013 3:57 am

Re: LuaSQLite3 - Cross Platform Binary Collection

Post by szensk »

bizarre. I tried to require the windows-x86 and simply "lua.dll" not found, which is odd.
User avatar
josefnpat
Inner party member
Posts: 955
Joined: Wed Oct 05, 2011 1:36 am
Location: your basement
Contact:

Re: LuaSQLite3 - Cross Platform Binary Collection

Post by josefnpat »

szensk wrote:bizarre. I tried to require the windows-x86 and simply "lua.dll" not found, which is odd.
I can't help you here. I fired up my windows xp vm, and I couldn't even get love to run. Anyone up for the challange?
Missing Sentinel Software | Twitter

FORCIBLY IGNORED.
<leafo> when in doubt delete all of your code
<bartbes> git rm -r *
<bartbes> git commit -m "Fixed all bugs"
<bartbes> git push
Kyle
Party member
Posts: 146
Joined: Sat Mar 16, 2013 9:46 pm

Re: LuaSQLite3 - Cross Platform Binary Collection

Post by Kyle »

THANK YOU. Perfect timing. I was just about to rebuild lsqlite3 so I could use it, but this is wonderful.
User avatar
josefnpat
Inner party member
Posts: 955
Joined: Wed Oct 05, 2011 1:36 am
Location: your basement
Contact:

Re: LuaSQLite3 - Cross Platform Binary Collection

Post by josefnpat »

Kyle wrote:THANK YOU. Perfect timing. I was just about to rebuild lsqlite3 so I could use it, but this is wonderful.
Any chance you have the OSX / windows versions? :)
Missing Sentinel Software | Twitter

FORCIBLY IGNORED.
<leafo> when in doubt delete all of your code
<bartbes> git rm -r *
<bartbes> git commit -m "Fixed all bugs"
<bartbes> git push
User avatar
josefnpat
Inner party member
Posts: 955
Joined: Wed Oct 05, 2011 1:36 am
Location: your basement
Contact:

Re: LuaSQLite3 - Cross Platform Binary Collection

Post by josefnpat »

Slime gave me the x86/x86_64 binaries over IRC!
01:53 <slime> josefnpat: https://dl.dropboxusercontent.com/u/4214717/lsqlite3.so osx library with x86 and x64 included
01:53 <slime> (for some reason lua by default uses the .so extension for shared lua libs in osx even though the extension should be .dylib)
01:54 <slime> version 0.9.1
Just need his OS version for archiving.
Missing Sentinel Software | Twitter

FORCIBLY IGNORED.
<leafo> when in doubt delete all of your code
<bartbes> git rm -r *
<bartbes> git commit -m "Fixed all bugs"
<bartbes> git push
User avatar
Boolsheet
Inner party member
Posts: 780
Joined: Wed Dec 29, 2010 4:57 am
Location: Switzerland

Re: LuaSQLite3 - Cross Platform Binary Collection

Post by Boolsheet »

szensk wrote:bizarre. I tried to require the windows-x86 and simply "lua.dll" not found, which is odd.
Not really that odd if you use the current official LÖVE 0.8.0 build for Windows. This build has Lua statically linked because of file-stream handle and distributions issues with the C/C++ runtime library. (Probably) All Lua modules want a dynamic Lua. What is odd is that this lsqlite3_win_x86.dll was linked against lua.dll instead of lua51.dll, the name used by the makefiles of the Lua source code. The name does somewhat matter as this is how Windows looks up where to get the symbols.

It should be possible to just drop in a Lua 5.1 library as lua.dll beside love.exe and have it working, but this very much depends on the compatibility of the binary interface. Lua's API and internals seem simple enough that they won't cause an issue, though it really isn't recommended to mix the code like that.

- Edit -
josefnpat: I didn't look at the sqlite3 source code, but I think it's using the C file IO library. When main.lua calls "db = sqlite3.open('db')", it will look in the working directory. For test purposes this is probably sufficient, but you could set an identity, write the db to the save directory and then pass the absolute path to it instead.
Shallow indentations.
User avatar
josefnpat
Inner party member
Posts: 955
Joined: Wed Oct 05, 2011 1:36 am
Location: your basement
Contact:

Re: LuaSQLite3 - Cross Platform Binary Collection

Post by josefnpat »

Boolsheet wrote:you could set an identity, write the db to the save directory and then pass the absolute path to it instead.
Actually, I had originally done this before, but to reduce the amount of failure vectors, I decided against it. But since you mentioned it, I will make this happen so that it represents the love workflow better. :)
Missing Sentinel Software | Twitter

FORCIBLY IGNORED.
<leafo> when in doubt delete all of your code
<bartbes> git rm -r *
<bartbes> git commit -m "Fixed all bugs"
<bartbes> git push
User avatar
Boolsheet
Inner party member
Posts: 780
Joined: Wed Dec 29, 2010 4:57 am
Location: Switzerland

Re: LuaSQLite3 - Cross Platform Binary Collection

Post by Boolsheet »

josefnpat wrote:note: the binary is reads as an x86 (32), but I believe it might be possible that it works on windows x86_64 (64)
It will work with a 32-bit version of Lua, but you can't mix 64-bit with 32-bit binaries.

I've built SQLite and LuaSQLite3 for Windows. It probably works best with my build of LÖVE (see branches section).
Shallow indentations.
User avatar
jasonisop
Citizen
Posts: 93
Joined: Thu Jun 21, 2012 1:35 am

Re: LuaSQLite3 - Cross Platform Binary Collection

Post by jasonisop »

Thank you all for working on this!
I do have some questions tho, how hard will it be to keep this all cross platform? Id like to only have to pakage one version of the game that targets MAC,Linux, Windows.
Will the the offical .8 version of love work, or does this require a custom build.
Post Reply

Who is online

Users browsing this forum: No registered users and 60 guests