Sherlock, It doesn’t affect the Mac Bundle because that defines GNC_DBD_DIR to point to the bundle’s Resources/lib/dbd in the environment file.
Mingw64 doesn’t provide libdbi so it’s built by jhbuild. We set the dbd-driver directory to the installation prefix, https://github.com/Gnucash/gnucash-on-windows/blob/668227c9651224bd0a0f9ce87713546ccfca9af8/jhbuildrc.in#L82. Regards, John Ralls > On Oct 29, 2025, at 20:02, Sherlock <[email protected]> wrote: > > I've been trying to understand why this hasn't been an issue on the other > platforms that have been on libdbi 0.9.1 for sometime. The generic bug was > introduced 2 years ago (commit b011c81). I suspect the issue isn't seen on > Linux where libdbi is installed in the system location or on a Mac build > machine. I think the issue should appear on non-build Macs but, of course, > the issue won't be apparent to a user unless they aren't using the xml format. > > Regards, > > Sherlock > > On 10/29/25 6:54 PM, Sherlock wrote: >> I maybe wrong about the c:\libdbi\lib\dbd folder as there are compile time >> definition that will override the location which appears to be something >> like /mingw32/lib/dbd but that should still typically miss in a typical >> user's gnucash installation. >> Setting GNC_DBD_DIR to something like C:\Program Files (x86)\gnucash\lib\dbd >> should work around the issue. >> Regards, >> Sherlock >> On 10/29/25 4:32 PM, Sherlock wrote: >>> Hi John, >>> >>> I suspect the Windows nightly builds have not been properly supporting >>> databases since libdbi was updated to 0.9.1 on October 5th unless the >>> drivers are in the c:\libdbi\lib\dbd folder or the folder to which the >>> GNC_DBD_DIR environment variable is set. >>> >>> For example, attempt to save as sqlite3. >>> >>> It appears there is a generic bug in gnc_module_init_backend_dbi() when >>> HAVE_LIBDBI_R is defined. Specifically, when the initial >>> dbi_initialize_r() returns no drivers, the dbi_instance variable is still >>> set. >>> >>> So, instead of: >>> >>> #if HAVE_LIBDBI_R >>> if (dbi_instance) >>> return; >>> #endif >>> >>> the code should be: >>> >>> #if HAVE_LIBDBI_R >>> if (dbi_instance) >>> { >>> dbi_shutdown_r (dbi_instance); >>> dbi_instance = nullptr; >>> } >>> #endif >>> >>> >>> Regards, >>> >>> Sherlock >>> > > _______________________________________________ > gnucash-user mailing list > [email protected] > To update your subscription preferences or to unsubscribe: > https://lists.gnucash.org/mailman/listinfo/gnucash-user > ----- > Please remember to CC this list on all your replies. > You can do this by using Reply-To-List or Reply-All. _______________________________________________ gnucash-user mailing list [email protected] To update your subscription preferences or to unsubscribe: https://lists.gnucash.org/mailman/listinfo/gnucash-user ----- Please remember to CC this list on all your replies. You can do this by using Reply-To-List or Reply-All.
