> On Apr 2, 2015, at 4:23 AM, Frank H. Ellenberger > <[email protected]> wrote: > > Am 01.10.2014 um 22:34 schrieb Dimstar / Dominique Leuenberger: >> On Wed, 2014-10-01 at 22:29 +0200, Frank H. Ellenberger wrote: >>> Hi Dominique, >>> >>> Am 01.10.2014 um 21:50 schrieb Dimstar / Dominique Leuenberger: >>>> For reference, >>>> >>>> gnucash built for openSUSE Factory and 13.2 (which comes with libdbi3, >>>> we carry this patch for now: >>>> >>>> Index: gnucash-2.6.3/src/backend/dbi/gnc-backend-dbi.c >>>> =================================================================== >>>> --- gnucash-2.6.3.orig/src/backend/dbi/gnc-backend-dbi.c >>>> +++ gnucash-2.6.3/src/backend/dbi/gnc-backend-dbi.c >>>> @@ -2039,7 +2039,7 @@ row_get_value_at_col_name( GncSqlRow* ro >>>> dbi_result_t *result = (dbi_result_t*)(dbi_row->result); >>>> guint64 row = dbi_result_get_currow (result); >>>> guint idx = dbi_result_get_field_idx (result, col_name) - 1; >>>> - time64 time = result->rows[row]->field_values[idx].d_datetime; >>>> + time64 time = >>>> _dbi_make_datetime(result->rows[row]->field_values[idx].d_datetimex); >>>> (void)g_value_init( value, G_TYPE_INT64 ); >>>> g_value_set_int64 (value, time); >>>> } >>>> >>> >>> If we would have different -devel packages, which should report >>> different versions, the patch could be generalized. I assume, the >>> problem will appear in other distros earlier or later, too. >>> >>> What do you think? >> >> It should not matter about parallel installation of the -devel or not: >> configure should simply identify which of the two variants are there and >> 'do the right thing' out of it (I don't think libdbi exports usable >> version info in the headers). >> I'd go with some test compile of one function, if fails do the other.. >> then you know which version is there. >> >> IF there is interest in this, I am willing to work on that in the next >> couple days (probably tomorrow afternoon) >> >> > > In libdbi commit ac482c2b4e478898d1b78afc62972c78c211d6d9 the function > is changed, And in configure.ac the version is pushed: > > dnl set up libtool library versioning > -LIB_CURRENT=2 > +LIB_CURRENT=3 > LIB_REVISION=0 > -LIB_AGE=1 > +LIB_AGE=0 > > resulting in include/dbi/dbi.h: > > /* definitions of the libtool library interface versions */ > #define LIBDBI_LIB_CURRENT 3 > #define LIBDBI_LIB_REVISION 0 > #define LIBDBI_LIB_AGE 0 > > Don't confound it with: > > /* definition of the libdbi version */ > #define LIBDBI_VERSION ((2 * 10000) + (8 * 100) + (0))
Nice. 4 Months after Hoenicka marked https://sourceforge.net/p/libdbi/bugs/15/ as "won't fix". Jerks. BTW, with regards to the earlier patch, don't use _dbi_make_datetime(). It returns a time_t, which is the wrong answer on Mac, Win, and 32-bit Linux/BSD. Use gnc_mktime() which returns a time64 regardless of sizeof(time_t). All of which is interesting, but what's OpenSuse doing creating packages from unstable code? The last libdbi release is still 0.9.0 from 12 March 2013. Regards, John Ralls _______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
