On 18-01-05 22:29:07, Landry Breuil wrote:
> Hi,
>
> while playing with lua & nginx, i stumbled upon
> https://github.com/mwild1/luadbi which is an updated fork of the dead
> upstream luadbi on code.google.com - this one is maintained by a prosody
> developer, and he even released a 0.6 version. $SEARCHENGINE will prefer
> to show you https://github.com/snatchev/Luadbi when loooking for luadbi
> but this one saw no commits...
>
> builds fine here, and it still seems to connect fine to a postgresql
> database i have lying around. Testing with prosody (backed by a database
> ofc) would be very much welcome.
Prosody with PostgreSQL, everything (user auth, MAM) still working
fine.
> Landry
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/databases/luadbi/Makefile,v
> retrieving revision 1.11
> diff -u -r1.11 Makefile
> --- Makefile 21 Aug 2017 18:49:30 -0000 1.11
> +++ Makefile 5 Jan 2018 21:25:22 -0000
> @@ -4,22 +4,19 @@
> COMMENT-mysql= MySQL driver for luadbi
> COMMENT-pgsql= PostgreSQL driver for luadbi
>
> -V= 0.5
> -DISTNAME= luadbi.$V
> -PKGNAME-main= luadbi-$V
> -PKGNAME-mysql= luadbi-mysql-$V
> -PKGNAME-pgsql= luadbi-pgsql-$V
> -REVISION-main= 2
> -REVISION-mysql= 4
> -REVISION-pgsql= 1
> +GH_ACCOUNT= mwild1
> +GH_PROJECT= luadbi
> +V= 0.6
> +GH_TAGNAME= v${V}
> +PKGNAME-main= ${GH_PROJECT}-${V}
> +PKGNAME-mysql= ${GH_PROJECT}-mysql-$V
> +PKGNAME-pgsql= ${GH_PROJECT}-pgsql-$V
>
> CATEGORIES= databases
>
> # MIT
> PERMIT_PACKAGE_CDROM= Yes
>
> -MASTER_SITES= https://distfiles.nl/
> -
> MULTI_PACKAGES= -main -mysql -pgsql
>
> WANTLIB-main= sqlite3
> @@ -40,20 +37,18 @@
> USE_GMAKE= Yes
>
> ALL_TARGET= free # == sqlite3 mysql postgresql
> +INSTALL_TARGET= install_free
> +# requires luarocks
> NO_TEST= Yes
>
> MAKE_FLAGS= CC="${CC}" \
> COMMON_LDFLAGS="-L${LOCALBASE}/lib" \
> - CFLAGS="${CFLAGS} -I${MODLUA_INCL_DIR} -I${LOCALBASE}/include
> -I${LOCALBASE}/include/mysql \
> - -I${LOCALBASE}/include/postgresql/
> -I${LOCALBASE}/include/postgresql/server \
> - -I. -fpic -shared"
> -
> -WRKDIST= ${WRKDIR}
> -
> -do-install:
> - ${INSTALL_DATA_DIR} ${MODLUA_LIBDIR} ${MODLUA_DATADIR}
> - ${INSTALL_DATA} ${WRKSRC}/DBI.lua ${MODLUA_DATADIR}
> -# XXX: Not using INSTALL_PROGRAM, it strips the library.
> - ${INSTALL_SCRIPT} ${WRKSRC}/*.so ${MODLUA_LIBDIR}
> + LUA_INC="-I${MODLUA_INCL_DIR}" \
> + MYSQL_INC="-I${LOCALBASE}/include/mysql" \
> + SQLITE3_INC="-I${LOCALBASE}/include" \
> + PSQL_INC="-I${LOCALBASE}/include/postgresql"
> +
> +FAKE_FLAGS= LUA_LDIR=${MODLUA_DATADIR} \
> + LUA_CDIR=${MODLUA_LIBDIR}
>
> .include <bsd.port.mk>
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/databases/luadbi/distinfo,v
> retrieving revision 1.1.1.1
> diff -u -r1.1.1.1 distinfo
> --- distinfo 16 Aug 2012 15:21:30 -0000 1.1.1.1
> +++ distinfo 5 Jan 2018 21:25:22 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (luadbi.0.5.tar.gz) = SRFkWN2ABSU2v11+KyofWg+kKmcc538ctzVe9/rrMx4=
> -SIZE (luadbi.0.5.tar.gz) = 22454
> +SHA256 (luadbi-0.6.tar.gz) = QyiaVdlF4AzRkN9RX2CUgq9G7VkookzOZuppJfS30lU=
> +SIZE (luadbi-0.6.tar.gz) = 28621
> Index: patches/patch-dbd_sqlite3_connection_c
> ===================================================================
> RCS file: patches/patch-dbd_sqlite3_connection_c
> diff -N patches/patch-dbd_sqlite3_connection_c
> --- patches/patch-dbd_sqlite3_connection_c 16 Aug 2012 15:21:30 -0000
> 1.1.1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,111 +0,0 @@
> -$OpenBSD: patch-dbd_sqlite3_connection_c,v 1.1.1.1 2012/08/16 15:21:30
> jasper Exp $
> -
> -Fix DBD.SQLite3 transaction handling
> -From upstream svn rev 75
> -
> ---- dbd/sqlite3/connection.c.orig Sat May 1 06:25:12 2010
> -+++ dbd/sqlite3/connection.c Sun Jul 22 22:23:54 2012
> -@@ -9,20 +9,37 @@ static int run(connection_t *conn, const char *command
> - }
> -
> - static int commit(connection_t *conn) {
> -- return run(conn, "COMMIT");
> -+ conn->txn_in_progress = 0;
> -+ return run(conn, "COMMIT TRANSACTION");
> - }
> -
> -
> - static int begin(connection_t *conn) {
> -- return run(conn, "BEGIN");
> --}
> -+ int err = 0;
> -
> -+ if (conn->txn_in_progress) {
> -+ err = 0;
> -+ } else {
> -+ conn->txn_in_progress = 1;
> -+ err = run(conn, "BEGIN TRANSACTION");
> -+ }
> -
> -+ return err;
> -+}
> -+
> - static int rollback(connection_t *conn) {
> -- return run(conn, "ROLLBACK");
> -+ conn->txn_in_progress = 0;
> -+ return run(conn, "ROLLBACK TRANSACTION");
> - }
> -
> -+int try_begin_transaction(connection_t *conn) {
> -+ if (conn->autocommit) {
> -+ return 1;
> -+ }
> -
> -+ return begin(conn) == 0;
> -+}
> -+
> - /*
> - * connection,err = DBD.SQLite3.New(dbfile)
> - */
> -@@ -50,7 +67,7 @@ static int connection_new(lua_State *L) {
> - }
> -
> - conn->autocommit = 0;
> -- begin(conn);
> -+ conn->txn_in_progress = 0;
> -
> - luaL_getmetatable(L, DBD_SQLITE_CONNECTION);
> - lua_setmetatable(L, -2);
> -@@ -67,10 +84,13 @@ static int connection_autocommit(lua_State *L) {
> - int err = 1;
> -
> - if (conn->sqlite) {
> -- if (on)
> -+ if (on) {
> - err = rollback(conn);
> -+ }
> -+ /*
> - else
> - err = begin(conn);
> -+ */
> -
> - conn->autocommit = on;
> - }
> -@@ -88,6 +108,7 @@ static int connection_close(lua_State *L) {
> - int disconnect = 0;
> -
> - if (conn->sqlite) {
> -+ rollback(conn);
> - sqlite3_close(conn->sqlite);
> - disconnect = 1;
> - conn->sqlite = NULL;
> -@@ -105,12 +126,7 @@ static int connection_commit(lua_State *L) {
> - int err = 1;
> -
> - if (conn->sqlite) {
> -- commit(conn);
> --
> -- if (!conn->autocommit)
> -- err = begin(conn);
> -- else
> -- err = 1;
> -+ err = commit(conn);
> - }
> -
> - lua_pushboolean(L, !err);
> -@@ -176,12 +192,14 @@ static int connection_rollback(lua_State *L) {
> - int err = 1;
> -
> - if (conn->sqlite) {
> -- rollback(conn);
> -+ err =rollback(conn);
> -
> -+ /*
> - if (!conn->autocommit)
> - err = begin(conn);
> - else
> - err = 1;
> -+ */
> - }
> -
> - lua_pushboolean(L, !err);
> Index: patches/patch-dbd_sqlite3_dbd_sqlite3_h
> ===================================================================
> RCS file: patches/patch-dbd_sqlite3_dbd_sqlite3_h
> diff -N patches/patch-dbd_sqlite3_dbd_sqlite3_h
> --- patches/patch-dbd_sqlite3_dbd_sqlite3_h 16 Aug 2012 15:21:30 -0000
> 1.1.1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,24 +0,0 @@
> -$OpenBSD: patch-dbd_sqlite3_dbd_sqlite3_h,v 1.1.1.1 2012/08/16 15:21:30
> jasper Exp $
> -
> -Fix DBD.SQLite3 transaction handling
> -From upstream svn rev 75
> -
> ---- dbd/sqlite3/dbd_sqlite3.h.orig Fri Dec 19 07:33:32 2008
> -+++ dbd/sqlite3/dbd_sqlite3.h Sun Jul 22 22:23:54 2012
> -@@ -10,14 +10,15 @@
> - typedef struct _connection {
> - sqlite3 *sqlite;
> - int autocommit;
> -+ int txn_in_progress;
> - } connection_t;
> -
> - /*
> - * statement object
> - */
> - typedef struct _statement {
> -+ connection_t *conn;
> - sqlite3_stmt *stmt;
> -- sqlite3 *sqlite;
> - int more_data;
> - int affected;
> - } statement_t;
> Index: patches/patch-dbd_sqlite3_statement_c
> ===================================================================
> RCS file: patches/patch-dbd_sqlite3_statement_c
> diff -N patches/patch-dbd_sqlite3_statement_c
> --- patches/patch-dbd_sqlite3_statement_c 16 Aug 2012 15:21:30 -0000
> 1.1.1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,81 +0,0 @@
> -$OpenBSD: patch-dbd_sqlite3_statement_c,v 1.1.1.1 2012/08/16 15:21:30 jasper
> Exp $
> -
> -Fix DBD.SQLite3 transaction handling
> -From upstream svn rev 75
> -
> ---- dbd/sqlite3/statement.c.orig Sat May 1 06:25:12 2010
> -+++ dbd/sqlite3/statement.c Sun Jul 22 22:23:54 2012
> -@@ -1,5 +1,8 @@
> - #include "dbd_sqlite3.h"
> -
> -+extern int try_begin_transaction(connection_t *conn);
> -+extern int try_end_transaction(connection_t *conn);
> -+
> - /*
> - * Converts SQLite types to Lua types
> - */
> -@@ -128,10 +131,12 @@ static int statement_execute(lua_State *L) {
> - */
> - if (sqlite3_reset(statement->stmt) != SQLITE_OK) {
> - lua_pushboolean(L, 0);
> -- lua_pushfstring(L, DBI_ERR_EXECUTE_FAILED,
> sqlite3_errmsg(statement->sqlite));
> -+ lua_pushfstring(L, DBI_ERR_EXECUTE_FAILED,
> sqlite3_errmsg(statement->conn->sqlite));
> - return 2;
> - }
> -
> -+ sqlite3_clear_bindings(statement->stmt);
> -+
> - expected_params = sqlite3_bind_parameter_count(statement->stmt);
> - if (expected_params != num_bind_params) {
> - /*
> -@@ -180,18 +185,20 @@ static int statement_execute(lua_State *L) {
> - if (errstr)
> - lua_pushfstring(L, DBI_ERR_BINDING_PARAMS, errstr);
> - else
> -- lua_pushfstring(L, DBI_ERR_BINDING_PARAMS,
> sqlite3_errmsg(statement->sqlite));
> -+ lua_pushfstring(L, DBI_ERR_BINDING_PARAMS,
> sqlite3_errmsg(statement->conn->sqlite));
> -
> - return 2;
> - }
> -+
> -+ try_begin_transaction(statement->conn);
> -
> - if (!step(statement)) {
> - lua_pushboolean(L, 0);
> -- lua_pushfstring(L, DBI_ERR_EXECUTE_FAILED,
> sqlite3_errmsg(statement->sqlite));
> -+ lua_pushfstring(L, DBI_ERR_EXECUTE_FAILED,
> sqlite3_errmsg(statement->conn->sqlite));
> - return 2;
> - }
> -
> -- statement->affected = sqlite3_changes(statement->sqlite);
> -+ statement->affected = sqlite3_changes(statement->conn->sqlite);
> -
> - lua_pushboolean(L, 1);
> - return 1;
> -@@ -283,7 +290,7 @@ static int statement_fetch_impl(lua_State *L, statemen
> - /*
> - * reset needs to be called to retrieve the 'real' error message
> - */
> -- luaL_error(L, DBI_ERR_FETCH_FAILED,
> sqlite3_errmsg(statement->sqlite));
> -+ luaL_error(L, DBI_ERR_FETCH_FAILED,
> sqlite3_errmsg(statement->conn->sqlite));
> - }
> - }
> -
> -@@ -357,14 +364,14 @@ int dbd_sqlite3_statement_create(lua_State *L, connect
> - statement_t *statement = NULL;
> -
> - statement = (statement_t *)lua_newuserdata(L, sizeof(statement_t));
> -- statement->sqlite = conn->sqlite;
> -+ statement->conn = conn;
> - statement->stmt = NULL;
> - statement->more_data = 0;
> - statement->affected = 0;
> -
> -- if (sqlite3_prepare_v2(statement->sqlite, sql_query, strlen(sql_query),
> &statement->stmt, NULL) != SQLITE_OK) {
> -+ if (sqlite3_prepare_v2(statement->conn->sqlite, sql_query,
> strlen(sql_query), &statement->stmt, NULL) != SQLITE_OK) {
> - lua_pushnil(L);
> -- lua_pushfstring(L, DBI_ERR_PREP_STATEMENT,
> sqlite3_errmsg(statement->sqlite));
> -+ lua_pushfstring(L, DBI_ERR_PREP_STATEMENT,
> sqlite3_errmsg(statement->conn->sqlite));
> - return 2;
> - }
> -
> Index: pkg/PLIST-main
> ===================================================================
> RCS file: /cvs/ports/databases/luadbi/pkg/PLIST-main,v
> retrieving revision 1.1.1.1
> diff -u -r1.1.1.1 PLIST-main
> --- pkg/PLIST-main 16 Aug 2012 15:21:30 -0000 1.1.1.1
> +++ pkg/PLIST-main 5 Jan 2018 21:25:22 -0000
> @@ -1,3 +1,3 @@
> @comment $OpenBSD: PLIST-main,v 1.1.1.1 2012/08/16 15:21:30 jasper Exp $
> -lib/lua/${MODLUA_VERSION}/dbdsqlite3.so
> +lib/lua/${MODLUA_VERSION}/dbd/sqlite3.so
> share/lua/${MODLUA_VERSION}/DBI.lua
> Index: pkg/PLIST-mysql
> ===================================================================
> RCS file: /cvs/ports/databases/luadbi/pkg/PLIST-mysql,v
> retrieving revision 1.1.1.1
> diff -u -r1.1.1.1 PLIST-mysql
> --- pkg/PLIST-mysql 16 Aug 2012 15:21:30 -0000 1.1.1.1
> +++ pkg/PLIST-mysql 5 Jan 2018 21:25:22 -0000
> @@ -1,2 +1,2 @@
> @comment $OpenBSD: PLIST-mysql,v 1.1.1.1 2012/08/16 15:21:30 jasper Exp $
> -lib/lua/${MODLUA_VERSION}/dbdmysql.so
> +lib/lua/${MODLUA_VERSION}/dbd/mysql.so
> Index: pkg/PLIST-pgsql
> ===================================================================
> RCS file: /cvs/ports/databases/luadbi/pkg/PLIST-pgsql,v
> retrieving revision 1.1.1.1
> diff -u -r1.1.1.1 PLIST-pgsql
> --- pkg/PLIST-pgsql 16 Aug 2012 15:21:30 -0000 1.1.1.1
> +++ pkg/PLIST-pgsql 5 Jan 2018 21:25:22 -0000
> @@ -1,2 +1,2 @@
> @comment $OpenBSD: PLIST-pgsql,v 1.1.1.1 2012/08/16 15:21:30 jasper Exp $
> -lib/lua/${MODLUA_VERSION}/dbdpostgresql.so
> +lib/lua/${MODLUA_VERSION}/dbd/postgresql.so