Sherlock, Fixing the code is always the right answer. Setting GNC_DBD_DIR in the Mac bundle file does no harm so there’s no rush to remove it.
Regards, John Ralls > On Oct 30, 2025, at 10:31 AM, Sherlock <[email protected]> wrote: > > John, > > Thanks. That explains why only Windows appears broken. > > So, is the intent to use GNC_DBD_DIR on Windows as well or should we fix the > code and not use GNC_DBD_DIR to work around the issue on Mac? > > Regards, > > Sherlock > > > On 10/30/25 8:28 AM, John Ralls wrote: >> 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.
