Re: r23186 - gnucash/trunk - Bug 654196 - make check fails when built with --enable-dbi

2013-09-21 Thread Geert Janssens
On Friday 20 September 2013 18:41:51 John Ralls wrote:
 Author: jralls
 Date: 2013-09-20 18:41:50 -0400 (Fri, 20 Sep 2013)
 New Revision: 23186
 Trac: http://svn.gnucash.org/trac/changeset/23186
 
 Modified:
gnucash/trunk/configure.ac
 Log:
 Bug 654196 - make check fails when built with --enable-dbi
 
 but without sqlite DBD installed. Add configure test to ensure
 that at least one of the supported modules is installed
 
 Modified: gnucash/trunk/configure.ac
 
==
=
 --- gnucash/trunk/configure.ac2013-09-20 21:09:46 UTC (rev 23185)
 +++ gnucash/trunk/configure.ac2013-09-20 22:41:50 UTC (rev 23186)
 @@ -537,6 +537,41 @@
[AS_HELP_STRING([--with-dbi-dbd-dir=PATH],[specify location of
 libdbi drivers @:@default=${libdir}/dbd@:@])],
 GNC_DBD_DIR=$with_dbi_dbd_dir,
GNC_DBD_DIR=)
 +  case $host_os in
 +win32*|mingw*)
 +  LDINC=#include windows.h
 +  LDFUNC=LoadLibrary
 +  LDFUNCARGS=
 +  LDEXT=dll
 +  ;;
 +Darwin*)
 +  LDINC=#include dlfcn.h
 +  LDFUNC=dlopen
 +  LDFUNCARGS=, RTLD_NOW
 +  LDEXT=so
 +  ;;
 +*)
 +  LDINC=#include dlfcn.h
 +  LDFUNC=dlopen
 +  LDFUNCARGS=, RTLD_NOW
 +  LDEXT=so
 +  export LDFLAGS=$LDFLAGS -ldl
 +  ;;
 +  esac
 +  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GNC_DBD_DIR
 +  AC_MSG_CHECKING([Looking for at least one supported DBD
 module]) +  AC_RUN_IFELSE([AC_LANG_PROGRAM([$LDINC],
 +  [[if (!$LDFUNC(libdbdsqlite3.
$LDEXT$LDFUNCARGS)) return
 -1; +  ]])],AC_MSG_RESULT([SQLite3]),
 + AC_RUN_IFELSE([AC_LANG_PROGRAM([$LDINC],
 +  [[if (!$LDFUNC(libdbdmysql.
$LDEXT$LDFUNCARGS)) return -1;
 + ]])],AC_MSG_RESULT([MySql]),
 +   AC_RUN_IFELSE([AC_LANG_PROGRAM([$LDINC],
 +  [[if (!$LDFUNC(libdbdpgsql.
$LDEXT$LDFUNCARGS)) return -1;
 +  ]])],AC_MSG_RESULT([Postgresql]),
 +  AC_MSG_FAILURE([[
 +Unable to find any of the supported dbd modules (libdbdsqlite3,
 libdbdmysql, or libdbdpgsql) needed to actually use the SQL backend.
 Please install one or more of them to proceed. +   ]]
 
Would it make sense to also point out the other option here: disable dbi 
support again by 
dropping the --enable_dbi option ?

Geert
___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: r23186 - gnucash/trunk - Bug 654196 - make check fails when built with --enable-dbi

2013-09-21 Thread Geert Janssens
On Friday 20 September 2013 18:41:51 John Ralls wrote:
 Author: jralls
 Date: 2013-09-20 18:41:50 -0400 (Fri, 20 Sep 2013)
 New Revision: 23186
 Trac: http://svn.gnucash.org/trac/changeset/23186
 
 Modified:
gnucash/trunk/configure.ac
 Log:
 Bug 654196 - make check fails when built with --enable-dbi
 
 but without sqlite DBD installed. Add configure test to ensure
 that at least one of the supported modules is installed
 
 Modified: gnucash/trunk/configure.ac
 
==
=
 --- gnucash/trunk/configure.ac2013-09-20 21:09:46 UTC (rev 23185)
 +++ gnucash/trunk/configure.ac2013-09-20 22:41:50 UTC (rev 23186)
 @@ -537,6 +537,41 @@
[AS_HELP_STRING([--with-dbi-dbd-dir=PATH],[specify location of
 libdbi drivers @:@default=${libdir}/dbd@:@])],
 GNC_DBD_DIR=$with_dbi_dbd_dir,
GNC_DBD_DIR=)
 +  case $host_os in
 +win32*|mingw*)
 +  LDINC=#include windows.h
 +  LDFUNC=LoadLibrary
 +  LDFUNCARGS=
 +  LDEXT=dll
 +  ;;
 +Darwin*)
 +  LDINC=#include dlfcn.h
 +  LDFUNC=dlopen
 +  LDFUNCARGS=, RTLD_NOW
 +  LDEXT=so
 +  ;;
 +*)
 +  LDINC=#include dlfcn.h
 +  LDFUNC=dlopen
 +  LDFUNCARGS=, RTLD_NOW
 +  LDEXT=so
 +  export LDFLAGS=$LDFLAGS -ldl
 +  ;;
 +  esac
 +  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GNC_DBD_DIR
 +  AC_MSG_CHECKING([Looking for at least one supported DBD
 module]) +  AC_RUN_IFELSE([AC_LANG_PROGRAM([$LDINC],
 +  [[if (!$LDFUNC(libdbdsqlite3.
$LDEXT$LDFUNCARGS)) return
 -1; +  ]])],AC_MSG_RESULT([SQLite3]),
 + AC_RUN_IFELSE([AC_LANG_PROGRAM([$LDINC],
 +  [[if (!$LDFUNC(libdbdmysql.
$LDEXT$LDFUNCARGS)) return -1;
 + ]])],AC_MSG_RESULT([MySql]),
 +   AC_RUN_IFELSE([AC_LANG_PROGRAM([$LDINC],
 +  [[if (!$LDFUNC(libdbdpgsql.
$LDEXT$LDFUNCARGS)) return -1;
 +  ]])],AC_MSG_RESULT([Postgresql]),
 +  AC_MSG_FAILURE([[
 +Unable to find any of the supported dbd modules (libdbdsqlite3,
 libdbdmysql, or libdbdpgsql) needed to actually use the SQL backend.
 Please install one or more of them to proceed. +   ]]
 
  LIBDBI_LIBS=-ldbi
  _COMPONENTS=$_COMPONENTS dbi
 
And in addition to my previous comment: this code actually breaks configure on 
my system 
(Fedora 19, 64 bit):

checking dbi/dbi.h usability... yes
checking dbi/dbi.h presence... yes
checking for dbi/dbi.h... yes
src/optional/python-bindings/Makefile.am:117: warning: filter-out 
gnucash_core_c.py,
${PYTHON_LINK_FILES}: non-POSIX variable name
src/optional/python-bindings/Makefile.am:117: (probably a GNU make extension)
checking Looking for at least one supported DBD module... 
configure: error: in `/home/janssege/Development/Builds/gnucash-f19-trunk':
configure: error: 
Unable to find any of the supported dbd modules (libdbdsqlite3, libdbdmysql, or 
libdbdpgsql) 
needed to actually use the SQL backend. Please install one or more of them to 
proceed.

See `config.log' for more details
make: *** [config.status] Error 1
make: *** Waiting for unfinished jobs


Geert
___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: r23186 - gnucash/trunk - Bug 654196 - make check fails when built with --enable-dbi

2013-09-21 Thread John Ralls

On Sep 21, 2013, at 1:10 AM, Geert Janssens janssens-ge...@telenet.be wrote:

 Would it make sense to also point out the other option here: disable dbi 
 support again by 
 dropping the --enable_dbi option ?

OK.

On Sep 21, 2013, at 2:45 AM, Geert Janssens janssens-ge...@telenet.be wrote:
 And in addition to my previous comment: this code actually breaks configure 
 on my system 
 (Fedora 19, 64 bit):
 
 checking dbi/dbi.h usability... yes
 checking dbi/dbi.h presence... yes
 checking for dbi/dbi.h... yes
 src/optional/python-bindings/Makefile.am:117: warning: filter-out 
 gnucash_core_c.py,
 ${PYTHON_LINK_FILES}: non-POSIX variable name
 src/optional/python-bindings/Makefile.am:117: (probably a GNU make extension)
 checking Looking for at least one supported DBD module... 
 configure: error: in `/home/janssege/Development/Builds/gnucash-f19-trunk':
 configure: error: 
 Unable to find any of the supported dbd modules (libdbdsqlite3, libdbdmysql, 
 or libdbdpgsql) 
 needed to actually use the SQL backend. Please install one or more of them to 
 proceed.
 
 See `config.log' for more details
 make: *** [config.status] Error 1
 make: *** Waiting for unfinished jobs

Hmm. I tested on debian, not fedora, and I don't yet have a fedora-19 VM.
Can you look in config.log and see what failed?

Regards,
John Ralls

___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: r23187 - gnucash/trunk - Revert dbi check

2013-09-21 Thread Geert Janssens
Oops, this one slipped through but was intended for local-use only on my 
machine to be able to 
continue to work while the new configure issue was being sorted out.

I have just pushed a revert-the-revert commit :)

Geert

On Saturday 21 September 2013 12:12:10 Geert Janssens wrote:
 Author: gjanssens
 Date: 2013-09-21 12:12:07 -0400 (Sat, 21 Sep 2013)
 New Revision: 23187
 Trac: http://svn.gnucash.org/trac/changeset/23187
 
 Modified:
gnucash/trunk/configure.ac
 Log:
 Revert dbi check
 
 Modified: gnucash/trunk/configure.ac
 
==
=
 --- gnucash/trunk/configure.ac2013-09-20 22:41:50 UTC (rev 23186)
 +++ gnucash/trunk/configure.ac2013-09-21 16:12:07 UTC (rev 23187)
 @@ -537,41 +537,41 @@
[AS_HELP_STRING([--with-dbi-dbd-dir=PATH],[specify location of
 libdbi drivers @:@default=${libdir}/dbd@:@])],
 GNC_DBD_DIR=$with_dbi_dbd_dir,
GNC_DBD_DIR=)
 -  case $host_os in
 -win32*|mingw*)
 -  LDINC=#include windows.h
 -  LDFUNC=LoadLibrary
 -  LDFUNCARGS=
 -  LDEXT=dll
 -  ;;
 -Darwin*)
 -  LDINC=#include dlfcn.h
 -  LDFUNC=dlopen
 -  LDFUNCARGS=, RTLD_NOW
 -  LDEXT=so
 -  ;;
 -*)
 -  LDINC=#include dlfcn.h
 -  LDFUNC=dlopen
 -  LDFUNCARGS=, RTLD_NOW
 -  LDEXT=so
 -  export LDFLAGS=$LDFLAGS -ldl
 -  ;;
 -  esac
 -  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GNC_DBD_DIR
 -  AC_MSG_CHECKING([Looking for at least one supported DBD
 module]) -  AC_RUN_IFELSE([AC_LANG_PROGRAM([$LDINC],
 -  [[if (!$LDFUNC(libdbdsqlite3.
$LDEXT$LDFUNCARGS)) return
 -1; -  ]])],AC_MSG_RESULT([SQLite3]),
 - AC_RUN_IFELSE([AC_LANG_PROGRAM([$LDINC],
 -  [[if (!$LDFUNC(libdbdmysql.
$LDEXT$LDFUNCARGS)) return -1;
 - ]])],AC_MSG_RESULT([MySql]),
 -   AC_RUN_IFELSE([AC_LANG_PROGRAM([$LDINC],
 -  [[if (!$LDFUNC(libdbdpgsql.
$LDEXT$LDFUNCARGS)) return -1;
 -  ]])],AC_MSG_RESULT([Postgresql]),
 -  AC_MSG_FAILURE([[
 -Unable to find any of the supported dbd modules (libdbdsqlite3,
 libdbdmysql, or libdbdpgsql) needed to actually use the SQL backend.
 Please install one or more of them to proceed. -   ]]
 +#  case $host_os in
 +#   win32*|mingw*)
 +# LDINC=#include windows.h
 +# LDFUNC=LoadLibrary
 +# LDFUNCARGS=
 +# LDEXT=dll
 +# ;;
 +#   Darwin*)
 +# LDINC=#include dlfcn.h
 +# LDFUNC=dlopen
 +# LDFUNCARGS=, RTLD_NOW
 +# LDEXT=so
 +# ;;
 +#   *)
 +# LDINC=#include dlfcn.h
 +# LDFUNC=dlopen
 +# LDFUNCARGS=, RTLD_NOW
 +# LDEXT=so
 +# export LDFLAGS=$LDFLAGS -ldl
 +# ;;
 +#  esac
 +#  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GNC_DBD_DIR
 +#  AC_MSG_CHECKING([Looking for at least one supported DBD
 module]) +#  AC_RUN_IFELSE([AC_LANG_PROGRAM([$LDINC],
 +# [[if (!$LDFUNC(libdbdsqlite3.
$LDEXT$LDFUNCARGS)) return
 -1; +# ]])],AC_MSG_RESULT([SQLite3]),
 +#AC_RUN_IFELSE([AC_LANG_PROGRAM([$LDINC],
 +# [[if (!$LDFUNC(libdbdmysql.
$LDEXT$LDFUNCARGS)) return -1;
 +#]])],AC_MSG_RESULT([MySql]),
 +#  AC_RUN_IFELSE([AC_LANG_PROGRAM([$LDINC],
 +# [[if (!$LDFUNC(libdbdpgsql.
$LDEXT$LDFUNCARGS)) return -1;
 +# ]])],AC_MSG_RESULT([Postgresql]),
 +# AC_MSG_FAILURE([[
 +#Unable to find any of the supported dbd modules (libdbdsqlite3,
 libdbdmysql, or libdbdpgsql) needed to actually use the SQL backend.
 Please install one or more of them to proceed. +#   ]]
 
  LIBDBI_LIBS=-ldbi
  _COMPONENTS=$_COMPONENTS dbi
 
 ___
 gnucash-changes mailing list
 gnucash-chan...@gnucash.org
 https://lists.gnucash.org/mailman/listinfo/gnucash-changes
___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: r23186 - gnucash/trunk - Bug 654196 - make check fails when built with --enable-dbi

2013-09-21 Thread Geert Janssens
On Saturday 21 September 2013 08:50:03 John Ralls wrote:
 On Sep 21, 2013, at 1:10 AM, Geert Janssens janssens-ge...@telenet.be wrote:
  Would it make sense to also point out the other option here: disable
  dbi support again by dropping the --enable_dbi option ?
 
 OK.
 
 On Sep 21, 2013, at 2:45 AM, Geert Janssens janssens-ge...@telenet.be wrote:
  And in addition to my previous comment: this code actually breaks
  configure on my system (Fedora 19, 64 bit):
  
  checking dbi/dbi.h usability... yes
  checking dbi/dbi.h presence... yes
  checking for dbi/dbi.h... yes
  src/optional/python-bindings/Makefile.am:117: warning: filter-out
  gnucash_core_c.py, ${PYTHON_LINK_FILES}: non-POSIX variable name
  src/optional/python-bindings/Makefile.am:117: (probably a GNU make
  extension) checking Looking for at least one supported DBD
  module...
  configure: error: in
  `/home/janssege/Development/Builds/gnucash-f19-trunk': configure:
  error:
  Unable to find any of the supported dbd modules (libdbdsqlite3,
  libdbdmysql, or libdbdpgsql) needed to actually use the SQL
  backend. Please install one or more of them to proceed.
  
  See `config.log' for more details
  make: *** [config.status] Error 1
  make: *** Waiting for unfinished jobs
 
 Hmm. I tested on debian, not fedora, and I don't yet have a fedora-19
 VM. Can you look in config.log and see what failed?
 
 Regards,
 John Ralls

This is what I have in config.log:


configure:21183: checking Looking for at least one supported DBD module
configure:21203: gcc -o conftest -g -O2   -ldl conftest.c -lpthread  5
configure:21203: $? = 0
configure:21203: ./conftest
configure:21203: $? = 255
configure: program exited with status 255
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME GnuCash
| #define PACKAGE_TARNAME gnucash
| #define PACKAGE_VERSION 2.5.5
| #define PACKAGE_STRING GnuCash 2.5.5
| #define PACKAGE_BUGREPORT gnucash-devel@gnucash.org
| #define PACKAGE_URL 
| #define PACKAGE gnucash
| #define VERSION 2.5.5
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| #define GNUCASH_MAJOR_VERSION 2
| #define GNUCASH_MINOR_VERSION 5
| #define GNUCASH_MICRO_VERSION 5
| #define GNUCASH_NANO_VERSION 0
| #define GNUCASH_RESAVE_VERSION 19920
| #define GNUCASH_LATEST_STABLE_SERIES 2.4
| #define GETTEXT_PACKAGE gnucash
| #define HAVE_LOCALE_H 1
| #define HAVE_LC_MESSAGES 1
| #define HAVE_BIND_TEXTDOMAIN_CODESET 1
| #define HAVE_GETTEXT 1
| #define HAVE_DCGETTEXT 1
| #define ENABLE_NLS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR .libs/
| #define STDC_HEADERS 1
| #define HAVE_LIMITS_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TIMES_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_STPCPY 1
| #define HAVE_MEMCPY 1
| #define HAVE_TIMEGM 1
| #define HAVE_TOWUPPER 1
| #define HAVE_SETENV 1
| #define HAVE_STRUCT_TM_GMTOFF 1
| #define HAVE_SCANF_LLD 1
| #define ENABLE_BINRELOC /**/
| #define HAVE_LIBPTHREAD 1
| #define BR_PTHREAD 1
| #define HAVE_GLIB_2_36 1
| #define HAVE_GLIB_2_32 1
| #define HAVE_DIRENT_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_UTMP_H 1
| #define HAVE_LOCALE_H 1
| #define HAVE_MCHECK_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_WCTYPE_H 1
| #define HAVE_DLERROR 1
| #define HAVE_X11_XLIB_H 1
| #define HAVE_GLOB_H 1
| #define HAVE_CHOWN 1
| #define HAVE_GETHOSTNAME 1
| #define HAVE_GETPPID 1
| #define HAVE_GETUID 1
| #define HAVE_GETTIMEOFDAY 1
| #define HAVE_GMTIME_R 1
| #define HAVE_GETHOSTID 1
| #define HAVE_LINK 1
| #define HAVE_DBI_DBI_H 1
| /* end confdefs.h.  */
| #include dlfcn.h
| int
| main ()
| {
| if (!dlopen(libdbdsqlite3.so, RTLD_NOW)) return -1;
| 
|   ;
|   return 0;
| }
configure:21225: gcc -o conftest -g -O2   -ldl conftest.c -lpthread  5
configure:21225: $? = 0
configure:21225: ./conftest
___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: r23186 - gnucash/trunk - Bug 654196 - make check fails when built with --enable-dbi

2013-09-21 Thread John Ralls

On Sep 21, 2013, at 9:36 AM, Geert Janssens janssens-ge...@telenet.be wrote:

  
 Yet I do have all three libraries installed. If I remove the test, I can 
 build and run GnuCash just fine using any of the backends. For reference, the 
 so files are here:
 $ ls /usr/lib64/dbd/
 libdbdmysql.solibdbdpgsql.solibdbdsqlite3.so
  

Ah. That's because Fedora has broken dlopen by creating the non-standard 
/usr/lib64 and not modifying dlopen's search accordingly. See dlopen (3).

You can either call configure with --with-dbd-dir=/usr/lib64/dbd, add 
/usr/lib64/dbd to $LD_LIBRARY_PATH, or add it to /etc/ld.so.conf.d and run 
ldconfig as root.

I'll add some detail about that to the not found message.

Regards,
John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: r23186 - gnucash/trunk - Bug 654196 - make check fails when built with --enable-dbi

2013-09-21 Thread Herbert Thoma

Am 21.09.2013 19:22, schrieb John Ralls:


On Sep 21, 2013, at 9:36 AM, Geert Janssens janssens-ge...@telenet.be wrote:



Yet I do have all three libraries installed. If I remove the test, I can build 
and run GnuCash just fine using any of the backends. For reference, the so 
files are here:
$ ls /usr/lib64/dbd/
libdbdmysql.solibdbdpgsql.solibdbdsqlite3.so



Ah. That's because Fedora has broken dlopen by creating the non-standard 
/usr/lib64 and not modifying dlopen's search accordingly. See dlopen (3).


I just found out that openSUSE (at least 12.3) has the same broken, 
non-standard behavior.


You can either call configure with --with-dbd-dir=/usr/lib64/dbd, add 
/usr/lib64/dbd to $LD_LIBRARY_PATH, or add it to /etc/ld.so.conf.d and run 
ldconfig as root.


OK, adding /usr/lib64/dbd to /etc/ld.so.conf.d and running ldconfig fixed the 
problem.


I'll add some detail about that to the not found message.


I'd rather prefer that the test would just work, even with the broken, 
non-standard
dlopen and /usr/lib64, since this seems to be quite common ...

 Herbert.


Regards,
John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: r23186 - gnucash/trunk - Bug 654196 - make check fails when built with --enable-dbi

2013-09-21 Thread Derek Atkins
Hi,

On Sat, September 21, 2013 3:43 pm, Herbert Thoma wrote:
 Am 21.09.2013 19:22, schrieb John Ralls:

 On Sep 21, 2013, at 9:36 AM, Geert Janssens janssens-ge...@telenet.be
 wrote:


 Yet I do have all three libraries installed. If I remove the test, I
 can build and run GnuCash just fine using any of the backends. For
 reference, the so files are here:
 $ ls /usr/lib64/dbd/
 libdbdmysql.solibdbdpgsql.solibdbdsqlite3.so


 Ah. That's because Fedora has broken dlopen by creating the non-standard
 /usr/lib64 and not modifying dlopen's search accordingly. See dlopen
 (3).

 I just found out that openSUSE (at least 12.3) has the same broken,
 non-standard behavior.

 You can either call configure with --with-dbd-dir=/usr/lib64/dbd, add
 /usr/lib64/dbd to $LD_LIBRARY_PATH, or add it to /etc/ld.so.conf.d and
 run ldconfig as root.

 OK, adding /usr/lib64/dbd to /etc/ld.so.conf.d and running ldconfig fixed
 the problem.

 I'll add some detail about that to the not found message.

 I'd rather prefer that the test would just work, even with the broken,
 non-standard
 dlopen and /usr/lib64, since this seems to be quite common ...

The tests should call dlopen in the exact same way that it's called in
GnuCash.  DBI works in F19, doesn't it?  How is dlopen() called in the
sources?  The tests should call it the exact same way.

We should not require people to modify their ld.so.conf to get GnuCash to
compile.

   Herbert.

 Regards,
 John Ralls

-derek

-- 
   Derek Atkins 617-623-3745
   de...@ihtfp.com www.ihtfp.com
   Computer and Internet Security Consultant

___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: r23186 - gnucash/trunk - Bug 654196 - make check fails when built with --enable-dbi

2013-09-21 Thread Christian Stimming
The new test fails for me as well: Kubuntu 11.10, and config.log says:

configure:20323: checking Looking for at least one supported DBD module
configure:20343: gcc -o conftest -I/home/cs/usr/include   -ldl conftest.c -
lpthread
  5
/tmp/ccISRVMn.o: In function `main':
conftest.c:(.text+0xf): undefined reference to `dlopen'
collect2: ld returned 1 exit status
configure:20343: $? = 1
configure: program exited with status 1
configure: failed program was:


I do have the libraries installed in /usr/lib/dbd/, though:

$ ls  /usr/lib/dbd/
libdbdmysql.la  libdbdpgsql.la  libdbdsqlite3.la  libdbdsqlite.la
libdbdmysql.so  libdbdpgsql.so  libdbdsqlite3.so  libdbdsqlite.so

Any ideas, someone?

Regards,

Christian



Am Samstag, 21. September 2013, 16:51:09 schrieb Derek Atkins:
 Hi,
 
 On Sat, September 21, 2013 3:43 pm, Herbert Thoma wrote:
  Am 21.09.2013 19:22, schrieb John Ralls:
  On Sep 21, 2013, at 9:36 AM, Geert Janssens
  janssens-ge...@telenet.be
  
  wrote:
  Yet I do have all three libraries installed. If I remove the test, I
  can build and run GnuCash just fine using any of the backends. For
  reference, the so files are here:
  $ ls /usr/lib64/dbd/
  libdbdmysql.solibdbdpgsql.solibdbdsqlite3.so
  
  Ah. That's because Fedora has broken dlopen by creating the
  non-standard
  /usr/lib64 and not modifying dlopen's search accordingly. See dlopen
  (3).
  
  I just found out that openSUSE (at least 12.3) has the same broken,
  non-standard behavior.
  
  You can either call configure with --with-dbd-dir=/usr/lib64/dbd, add
  /usr/lib64/dbd to $LD_LIBRARY_PATH, or add it to /etc/ld.so.conf.d and
  run ldconfig as root.
  
  OK, adding /usr/lib64/dbd to /etc/ld.so.conf.d and running ldconfig
  fixed
  the problem.
  
  I'll add some detail about that to the not found message.
  
  I'd rather prefer that the test would just work, even with the broken,
  non-standard
  dlopen and /usr/lib64, since this seems to be quite common ...
 
 The tests should call dlopen in the exact same way that it's called in
 GnuCash.  DBI works in F19, doesn't it?  How is dlopen() called in the
 sources?  The tests should call it the exact same way.
 
 We should not require people to modify their ld.so.conf to get GnuCash to
 compile.
 
Herbert.
  
  Regards,
  John Ralls
 
 -derek
___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: r23186 - gnucash/trunk - Bug 654196 - make check fails when built with --enable-dbi

2013-09-21 Thread John Ralls

On Sep 21, 2013, at 2:36 PM, Christian Stimming christ...@cstimming.de wrote:

 The new test fails for me as well: Kubuntu 11.10, and config.log says:
 
 configure:20323: checking Looking for at least one supported DBD module
 configure:20343: gcc -o conftest -I/home/cs/usr/include   -ldl conftest.c -
 lpthread
 5
 /tmp/ccISRVMn.o: In function `main':
 conftest.c:(.text+0xf): undefined reference to `dlopen'

That's the problem, and it's a big one.

 collect2: ld returned 1 exit status
 configure:20343: $? = 1
 configure: program exited with status 1
 configure: failed program was:
 
 
 I do have the libraries installed in /usr/lib/dbd/, though:
 
 $ ls  /usr/lib/dbd/
 libdbdmysql.la  libdbdpgsql.la  libdbdsqlite3.la  libdbdsqlite.la
 libdbdmysql.so  libdbdpgsql.so  libdbdsqlite3.so  libdbdsqlite.so
 

That part doesn't matter until we can sort out why the linker can't find dlopen.
It's supposed to be in libdl.so, which Debian installs in 
/usr/lib/x86_64-linux-gnu.
Can you check that it's there (it might be in /lib instead of /usr/lib)? 
Also, please run
  grep lt_cv_dlopen config.log

Regards,
John Ralls



___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: r23186 - gnucash/trunk - Bug 654196 - make check fails when built with --enable-dbi

2013-09-21 Thread John Ralls

On Sep 21, 2013, at 1:51 PM, Derek Atkins de...@ihtfp.com wrote:

 Hi,
 
 On Sat, September 21, 2013 3:43 pm, Herbert Thoma wrote:
 Am 21.09.2013 19:22, schrieb John Ralls:
 
 On Sep 21, 2013, at 9:36 AM, Geert Janssens janssens-ge...@telenet.be
 wrote:
 
 
 Yet I do have all three libraries installed. If I remove the test, I
 can build and run GnuCash just fine using any of the backends. For
 reference, the so files are here:
 $ ls /usr/lib64/dbd/
 libdbdmysql.solibdbdpgsql.solibdbdsqlite3.so
 
 
 Ah. That's because Fedora has broken dlopen by creating the non-standard
 /usr/lib64 and not modifying dlopen's search accordingly. See dlopen
 (3).
 
 I just found out that openSUSE (at least 12.3) has the same broken,
 non-standard behavior.
 
 You can either call configure with --with-dbd-dir=/usr/lib64/dbd, add
 /usr/lib64/dbd to $LD_LIBRARY_PATH, or add it to /etc/ld.so.conf.d and
 run ldconfig as root.
 
 OK, adding /usr/lib64/dbd to /etc/ld.so.conf.d and running ldconfig fixed
 the problem.
 
 I'll add some detail about that to the not found message.
 
 I'd rather prefer that the test would just work, even with the broken,
 non-standard
 dlopen and /usr/lib64, since this seems to be quite common ...
 
 The tests should call dlopen in the exact same way that it's called in
 GnuCash.  DBI works in F19, doesn't it?  How is dlopen() called in the
 sources?  The tests should call it the exact same way.

It's not called in Gnucash. It's called in libdbi. 

That said, it occurred to me that I can just add /usr/lib/dbd, /usr/lib64/dbd,
and ${libdir}/dbd to LD_LIBRARY_PATH before running the test programs. Commit 
coming as soon as I test it.
 
 We should not require people to modify their ld.so.conf to get GnuCash to
 compile.

We don't. There are three ways, of which adding --with-dbd-dir to configure's 
arguments is the recommended one.

Regards,
John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: r23186 - gnucash/trunk - Bug 654196 - make check fails when built with --enable-dbi

2013-09-21 Thread John Ralls

On Sep 21, 2013, at 3:44 PM, John Ralls jra...@ceridwen.us wrote:
 We don't. There are three ways, of which adding --with-dbd-dir to configure's 
 arguments is the recommended one.

Sorry, that's --with-dbi-dbd-dir.

Regards,
John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: r23186 - gnucash/trunk - Bug 654196 - make check fails when built with --enable-dbi

2013-09-21 Thread John Ralls

On Sep 21, 2013, at 3:44 PM, John Ralls jra...@ceridwen.us wrote:
 That said, it occurred to me that I can just add /usr/lib/dbd, /usr/lib64/dbd,
 and ${libdir}/dbd to LD_LIBRARY_PATH before running the test programs. Commit 
 coming as soon as I test it.

r23190

In an attempt to fix Christian's problem as well, it uses whatever 
AC_LIBTOOL_DLOPEN found for $lt_cv_dlopen and $lt_cv_dlopen_lib instead of 
hard-coded values.

An interesting aside: This took a long time because commas in AC_MSG_ERROR 
descriptions break it. Not documented and took many tries to figure out the 
problem.

Regards,
John Ralls



___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel