Am 2023-11-12 05:55, schrieb john:
On Nov 11, 2023, at 17:47, Manfred Usselmann <manf...@usselmann.de> wrote:

Am 2023-11-11 18:46, schrieb john:
On Nov 11, 2023, at 04:18, Manfred Usselmann <manf...@usselmann.de> wrote:
# Next issue:
# -------------------------------------------------------------------------------
*** Checking out gnucash-git *** [12/14]
[...]
CMake Error at CMakeLists.txt:345 (message):
Neither guile 3.0, guile 2.2, nor guile 2.0 were found GnuCash can't run without one of them. Ensure that one is installed and can be found with
pkg-config.
-- Configuring incomplete, errors occurred!
*** Error during phase configure of gnucash-git: ########## Error running cmake -DCMAKE_INSTALL_PREFIX=/C/users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst -DCMAKE_INSTALL_LIBDIR=lib -G Ninja -DCMAKE_PREFIX_PATH=$MSYS2ROOT -DPERL_EXECUTABLE=/usr/bin/perl -DGNC_DBD_DIR=$PREFIX/lib/dbd -DGTEST_ROOT=$SRCROOT/googletest/ -DCMAKE_BUILD_TYPE=Debug /C/users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/src/gnucash-git *** [12/14] # ------------------------------------------------------------------------------- Not sure what this one is. I believe there was already a long running build of guile2.
*** Checking out guile2 *** [10/14]
*** Skipping guile2 (package and dependencies not updated) *** [10/14]
Any hint for me?
You probably need at least mingw-w64-i686-webkitgtk3-2.4.11-999.5-any. WebKit is a long-running sore point. MSYS2 periodically updates one of the webkit dependencies and I have to build another one, a process that can take several days. Another wrinkle is that Derek's windows VM and my windows VM sometimes diverge. Getting them back is another manual process that I have to make time to do carefully so as not to break the nightly builds; keeping those working is the top priority for gnucash-on-windows.

Completely understandable.

With a new installation you're likely out of sync with both of those reference MSYS2 installations. Having a mismatch will cause link errors with libgnc-html.dll.

We'll see...


For guile, make sure that $PREFIX/lib/pkgconfig/guile-2.2.pc exists; if it does make sure that PKG_CONFIG_PATH contains $PREFIX/lib/pkgconfig.

It does.

$ pkg-config --list-all
aqbanking AqBanking - A library for online banking functions and financial data import/export atomic_ops The atomic_ops library - Atomic memory update operations portable implementation bdw-gc Boehm-Demers-Weiser Conservative Garbage Collector - A garbage collector for C and C++ guile-2.2 GNU Guile - GNU's Ubiquitous Intelligent Language for Extension
[...]0

But for cmake / pkg_check_modules only the packages from gcdev64/msys2/mingw32/lib/pkgconfig are visible.

Strange...

Dunno if it's strange. jhbuildrc should add $PREFIX/lib/pkgconfig/ to PKG_CONFIG_PATH. Maybe that's gotten messed up?


PKG_CONFIG_PATH eventually contains 7 path elements.

4) /c/Users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/lib/pkgconfig 4) /c/Users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/share/pkgconfig
1) /mingw64/lib/pkgconfig
1) /mingw64/share/pkgconfig
2) /c/Users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/lib/pkgconfig
3) /c/Users/mu/Entwicklung/GnuCash/gcdev64/msys2/mingw32/lib/pkgconfig
4) /c/Users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/lib/pkgconfig

1) Set by msys2 in C:\Users\mu\Entwicklung\GnuCash\gcdev64\msys2\etc\profile (bash.bashrc: source /etc/profile)

   MINGW_MOUNT_POINT="${MINGW_PREFIX}"
PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig"

2) I added it to C:\Users\mu\Entwicklung\GnuCash\gcdev64\msys2\home\Manfred\.bashrc

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/c/Users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/lib/pkgconfig

3) Set by jhbuildrc

   _mingw_base = os.path.join(_basedir, 'msys2', _arch)
   _mingw_libs = os.path.join(_mingw_base, 'lib')
add_to_path_var('PKG_CONFIG_PATH', os.path.join(_mingw_libs, 'pkgconfig'))

4) After jhbuildrc, but I didn't find where exactly. But makes 2) superfluous.

-------------------------------------------------------------------------------------------
For testing purposes I extended CMakeLists.txt a little bit around the Guile check to see what is found and what not:
-------------------------------------------------------------------------------------------

# guile library and include dir
message(STATUS "PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH}")
pkg_check_modules (AQB_DUMMY_TEST aqbanking)
pkg_check_modules (GWGUI_DUMMY_TEST gwengui-gtk3)
pkg_check_modules (GOBJECT_DUMMY_TEST gobject-2.0)
pkg_check_modules (GMP_DUMMY_TEST gmp)
pkg_check_modules (GUILE3 guile-3.0)
pkg_check_modules (GUILE22 guile-2.2)
pkg_check_modules (GUILE2 guile-2.0>=2.0.9)
execute_process(
    COMMAND pkg-config --path guile-3.0
    OUTPUT_VARIABLE GUILE_PKG_RESULT
    OUTPUT_STRIP_TRAILING_WHITESPACE
)
execute_process(
    COMMAND pkg-config --exists guile-3.0
    RESULT_VARIABLE GUILE_EXISTS_RESULT
)
if (${GUILE_EXISTS_RESULT} EQUAL 0)
  execute_process(
      COMMAND pkg-config --validate guile-3.0
      RESULT_VARIABLE GUILE_VALID_RESULT
)
else()
  set(GUILE_VALID_RESULT 1)
endif()

message(STATUS "guile-3.0 exists: ${GUILE_EXISTS_RESULT}, path: ${GUILE_PKG_RESULT}, valid: ${GUILE_VALID_RESULT}")

execute_process(
    COMMAND pkg-config --path guile-2.2
    OUTPUT_VARIABLE GUILE_PKG_RESULT
    OUTPUT_STRIP_TRAILING_WHITESPACE
)
execute_process(
    COMMAND pkg-config --exists guile-2.2
    RESULT_VARIABLE GUILE_EXISTS_RESULT
)
if (${GUILE_EXISTS_RESULT} EQUAL 0)
  execute_process(
      COMMAND pkg-config --validate guile-2.2
      RESULT_VARIABLE GUILE_VALID_RESULT
  )
else()
  set(GUILE_VALID_RESULT 1)
endif()
message(STATUS "guile-2.2 exists: ${GUILE_EXISTS_RESULT}, path: ${GUILE_PKG_RESULT}, valid: ${GUILE_VALID_RESULT}")

execute_process(
    COMMAND pkg-config --path guile-2.0
    OUTPUT_VARIABLE GUILE_PKG_RESULT
    OUTPUT_STRIP_TRAILING_WHITESPACE
)
execute_process(
    COMMAND pkg-config --exists guile-2.0
    RESULT_VARIABLE GUILE_EXISTS_RESULT
)
if (${GUILE_EXISTS_RESULT} EQUAL 0)
  execute_process(
      COMMAND pkg-config --validate guile-2.0
      RESULT_VARIABLE GUILE_VALID_RESULT
  )
else()
  set(GUILE_VALID_RESULT 1)
endif()
message(STATUS "guile-2.0 exists: ${GUILE_EXISTS_RESULT}, path: ${GUILE_PKG_RESULT}, valid: ${GUILE_VALID_RESULT}")

execute_process(
    COMMAND pkg-config --path gmp
    OUTPUT_VARIABLE GUILE_PKG_RESULT
    OUTPUT_STRIP_TRAILING_WHITESPACE
)
execute_process(
    COMMAND pkg-config --exists gmp
    RESULT_VARIABLE GUILE_EXISTS_RESULT
)
if (${GUILE_EXISTS_RESULT} EQUAL 0)
  execute_process(
      COMMAND pkg-config --validate gmp
      RESULT_VARIABLE GUILE_VALID_RESULT
  )
else()
  set(GUILE_VALID_RESULT 1)
endif()
message(STATUS "gmp exists: ${GUILE_EXISTS_RESULT}, path: ${GUILE_PKG_RESULT}, valid: ${GUILE_VALID_RESULT}")

-------------------------------------------------------------------------------------------
Output:
-------------------------------------------------------------------------------------------
--
PKG_CONFIG_PATH=C:\Users\mu\Entwicklung\GnuCash\gcdev64\gnucash\stable\inst\lib\pkgconfig;C:\Users\mu\Entwicklung\GnuCash\gcdev64\gnucash\stable\inst\share\pkgconfig;C:\Users\mu\Entwicklung\GnuCash\gcdev64\msys2\mingw64\lib\pkgconfig;C:\Users\mu\Entwicklung\GnuCash\gcdev64\msys2\mingw64\share\pkgconfig;C:\Users\mu\Entwicklung\GnuCash\gcdev64\msys2\mingw32\lib\pkgconfig
-- Checking for module 'aqbanking'
--   Package 'aqbanking', required by 'virtual:world', not found
-- Checking for module 'gwengui-gtk3'
--   Package 'gwengui-gtk3', required by 'virtual:world', not found
-- Checking for module 'gobject-2.0'
--   Found gobject-2.0, version 2.78.1
-- Checking for module 'gmp'
--   Found gmp, version 6.3.0
-- Checking for module 'guile-3.0'
--   Package 'guile-3.0', required by 'virtual:world', not found
-- Checking for module 'guile-2.2'
--   Package 'guile-2.2', required by 'virtual:world', not found
-- Checking for module 'guile-2.0>=2.0.9'
--   Package 'guile-2.0', required by 'virtual:world', not found
-- guile-3.0 exists: 1, path: , valid: 1
-- guile-2.2 exists: 0, path: C:\Users\mu\Entwicklung\GnuCash\gcdev64\gnucash\stable\inst\lib\pkgconfig\guile-2.2.pc, valid: 0
-- guile-2.0 exists: 1, path: , valid: 1
-- gmp exists: 0, path: C:\Users\mu\Entwicklung\GnuCash\gcdev64\msys2\mingw32\lib\pkgconfig\gmp.pc, valid: 0

-------------------------------------------------------------------------------------------
Result:
-------------------------------------------------------------------------------------------

==> Packages with .pc files in /c/Users/mu/Entwicklung/GnuCash/gcdev64/msys2/mingw32/lib/pkgconfig are found by pkg_check_modules(), those in /c/Users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/lib/pkgconfig are not.

==> Although pkg-config seems to be fine with both of them.

???

Regards,
Manfred


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

Reply via email to