diff --git a/packaging/win32/defaults.sh b/packaging/win32/defaults.sh index 481460d8f2..d264004cdb 100644 --- a/packaging/win32/defaults.sh +++ b/packaging/win32/defaults.sh @@ -292,6 +292,7 @@ set_default PGSQL_DIR $GLOBAL_DIR\\pgsql set_default LIBDBI_URL "http://downloads.sourceforge.net/libdbi/libdbi-0.8.3.tar.gz" set_default LIBDBI_DIR $GLOBAL_DIR\\libdbi set_default LIBDBI_PATCH `pwd`/libdbi-0.8.3.patch +set_default LIBDBI_PATCH2 `pwd`/libdbi-dbd_helper.c.patch set_default LIBDBI_DRIVERS_URL "http://downloads.sourceforge.net/libdbi-drivers/libdbi-drivers-0.8.3-1.tar.gz" set_default LIBDBI_DRIVERS_DIR $GLOBAL_DIR\\libdbi-drivers set_default LIBDBI_DRIVERS_PATCH `pwd`/libdbi-drivers-dbd_sqlite3.c.patch diff --git a/packaging/win32/install.sh b/packaging/win32/install.sh index 66008631a8..1a98bbae83 100755 --- a/packaging/win32/install.sh +++ b/packaging/win32/install.sh @@ -111,7 +111,7 @@ function inst_dtk() { if quiet ${_MSYS_UDIR}/bin/perl --help && [ "`m4 --version | sed '1!d;s,.* [Mm]4 ,,'`" = "1.4.7" ] then - echo "msys dtk already installed. skipping." + echo "msys dtk already installed. skipping." else smart_wget $DTK_URL $DOWNLOAD_DIR $LAST_FILE //SP- //SILENT //DIR="$MSYS_DIR" @@ -1094,6 +1094,9 @@ function inst_libdbi() { patch -p1 < $LIBDBI_PATCH ./autogen.sh fi + if [ -n "$LIBDBI_PATCH2" -a -f "$LIBDBI_PATCH2" ]; then + patch -p1 < $LIBDBI_PATCH2 + fi ./configure ${HOST_XCOMPILE} \ --disable-docs \ --prefix=${_LIBDBI_UDIR} diff --git a/packaging/win32/libdbi-dbd_helper.c.patch b/packaging/win32/libdbi-dbd_helper.c.patch new file mode 100755 index 0000000000..439a293338 --- /dev/null +++ b/packaging/win32/libdbi-dbd_helper.c.patch @@ -0,0 +1,40 @@ +--- libdbi-0.8.3/src/dbd_helper.c.orig Sun Sep 13 16:34:39 2009 ++++ libdbi-0.8.3/src/dbd_helper.c Sun Sep 13 16:35:02 2009 +@@ -145,7 +145,7 @@ + return len; + } + +-void _dbd_internal_error_handler(dbi_conn_t *conn, const char *errmsg, const int errno) { ++void _dbd_internal_error_handler(dbi_conn_t *conn, const char *errmsg, const int err_no) { + int my_errno = DBI_ERROR_NONE; + int errstatus; + char *my_errmsg = NULL; +@@ -154,7 +154,7 @@ + free(conn->error_message); + } + +- if (errno == DBI_ERROR_DBD) { ++ if (err_no == DBI_ERROR_DBD) { + /* translate into a client-library specific error number */ + errstatus = conn->driver->functions->geterror(conn, &my_errno, &my_errmsg); + +@@ -171,8 +171,8 @@ + } + } + else if (errmsg) { +- conn->error_flag = errno; /* legacy code may rely on this */ +- conn->error_number = errno; ++ conn->error_flag = err_no; /* legacy code may rely on this */ ++ conn->error_number = err_no; + conn->error_message = strdup(errmsg); + + if (conn->error_handler != NULL) { +@@ -181,7 +181,7 @@ + } + else { + /* pass internal errors to the internal libdbi handler */ +- _error_handler(conn, errno); ++ _error_handler(conn, err_no); + } + + }