Hi,

I've tried to compile gnucash 4.6 under Linux (OpenSuse Tumbleweed):
 cmake -DCMAKE_INSTALL_PREFIX=/opt/gnucash ..
 make

There was the following error:

[ 23%] Generating 
../../lib64/guile/3.0/site-ccache/gnucash/engine/business-core.go
Backtrace:
In /usr/bin/guild:
    72:17 19 (main _)
In srfi/srfi-1.scm:
    634:9 18 (for-each #<procedure 7ffbb68528c0 at scripts/compile.?> ?)
In scripts/compile.scm:
   279:26 17 (_ _)
In system/base/target.scm:
     65:6 16 (with-target _ _)
In system/base/compile.scm:
    187:6 15 (compile-file "/home/lothar/src/work/gnucash/gnucash-4?" ?)
     53:4 14 (call-with-output-file/atomic _ _ _)
In ice-9/boot-9.scm:
  1752:10 13 (with-exception-handler _ _ #:unwind? _ # _)
In system/base/compile.scm:
    69:11 12 (_)
   190:11 11 (_ #<closed: file 7ffbb6930930>)
   331:39 10 (read-and-compile #<input: business-core.scm 13> #:from ?)
   261:27  9 (_ _ _)
In ice-9/boot-9.scm:
   2835:4  8 (save-module-excursion #<procedure 7ffbb53e0da0 at lang?>)
In language/scheme/compile-tree-il.scm:
    31:15  7 (_)
In ice-9/psyntax.scm:
  1230:36  6 (expand-top-sequence (#<syntax:business-core.scm:22:0?>) ?)
  1222:19  5 (parse _ (("placeholder" placeholder)) ((top) #(# # ?)) ?)
   259:10  4 (parse _ (("placeholder" placeholder)) ((top) #(# # ?)) ?)
In unknown file:
           3 (load-extension "libgnucash-guile" "gnc_guile_bindings_?")
In system/foreign-library.scm:
   190:25  2 (load-foreign-library _ #:extensions _ # _ #:search-path ?)
In unknown file:
           1 (dlopen "/usr/lib64/libgnucash-guile.so" 1)
In ice-9/boot-9.scm:
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure dlopen: file "/usr/lib64/libgnucash-guile.so", message 
"/usr/lib64/libgnucash-guile.so: undefined symbol: 
gnc_pricedb_lookup_latest_before_any_currency_t64"
make[2]: *** [bindings/guile/CMakeFiles/scm-engine-0.dir/build.make:79: 
lib64/guile/3.0/site-ccache/gnucash/engine/business-core.go] Error 1
make[1]: *** [CMakeFiles/Makefile2:11852: 
bindings/guile/CMakeFiles/scm-engine-0.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

According to the NEWS file, gnc_pricedb_lookup_latest_before_any_currency_t64 was replaced by gnc_pricedb_lookup_nearest_before_any_currency_t64. The problem seems to be the dlopen "/usr/lib64/libgnucash-guile.so", that's the old 4.5 library installed by the distribution. Copying the new generated library build/lib64/libgnucash-guile.so to /usr/lib64 fixes the issue, but that's a pretty ugly hack.

Is there a better fix?

Lothar
--
Lothar Paltins                                      lkp...@mailbox.org
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to