[GNC-dev] Help with making changes on Windows maint

John Ralls jralls at ceridwen.us
Thu Apr 19 22:23:23 EDT 2018



> On Apr 19, 2018, at 9:16 AM, Robert Fewell <14ubobit at gmail.com> wrote:
> 
> Hi,
> I have successfully built maint and needed to test some changes for some
> bug fixes on Windows. So for the first couple of bugs I made the changes to
> files in the following path...
> c:\gcdev64\gnucash\maint\src\gnucash-git\gnucash\...
> 
> Went to my msys32 shell, used the usual jhbuild command which ran
> successfully and was able to run gnucash from the maint directory via a cmd
> file, some icons were missing but not relevant for my tests.
> 
> Now the problem...
> Wanted to change file
> c:\gcdev64\gnucash\maint\src\gnucash-git\gnucash\gnome-utils\gnc-main-window.c/h
> 
> There is a function in there gnc_main_window_popup_menu_cb which was
> declared static but I wanted to expose it so I could call it from
> gnc-plugin-page-register.c
> Removed the static, added function to .h file and started the rebuild which
> all looked fine until it failed with...
> 
> Backtrace:
> In ice-9/eval.scm:
> 432: 19 [eval # #]
> In C:/gcdev64/gnucash/maint/inst/bin/guild:
>  72: 18 [main ("C:/gcdev64/gnucash/maint/inst/bin/guild" "compile" "-o"
> ...)]
> In srfi/srfi-1.scm:
> 616: 17 [for-each #<procedure 4a697c0 at scripts/compile.scm:187:14
> (file)> #]
> In scripts/compile.scm:
> 190: 16 [#<procedure 4a697c0 at scripts/compile.scm:187:14 (file)>
> "C:/gcdev64/gnucash/maint/src/gnucash-git/gnucash/import-export/qif-imp/qif-import.scm"]
> In system/base/target.scm:
>  59: 15 [with-target "i686-w64-mingw32" ...]
> In system/base/compile.scm:
> 152: 14 [compile-file
> "C:/gcdev64/gnucash/maint/src/gnucash-git/gnucash/import-export/qif-imp/qif-import.scm"
> ...]
>  43: 13 [call-once #<procedure 4a69120 at system/base/compile.scm:56:5 ()>]
> In ice-9/boot-9.scm:
> 174: 12 [with-throw-handler #t ...]
> In system/base/compile.scm:
>  59: 11 [#<procedure 4a69100 at system/base/compile.scm:58:9 ()>]
> 155: 10 [#<procedure 4a69140 at system/base/compile.scm:153:8 (port)>
> #<closed: file 0>]
> 218: 9 [read-and-compile #<input: qif-import.scm 5> #:from ...]
> 234: 8 [lp (# # #) #<directory # 4d5df50> #<directory # 4d5df50>]
> 182: 7 [lp (#<procedure compile-tree-il (x e opts)>) (eval-when # #) ...]
> In ice-9/boot-9.scm:
> 2412: 6 [save-module-excursion #<procedure cb3ba98 at
> language/scheme/compile-tree-il.scm:29:3 ()>]
> In language/scheme/compile-tree-il.scm:
>  31: 5 [#<procedure cb3ba98 at language/scheme/compile-tree-il.scm:29:3
> ()>]
> In ice-9/psyntax.scm:
> 1107: 4 [expand-top-sequence ((eval-when # #)) () ((top)) ...]
> 990: 3 [scan ((eval-when # #)) () ((top)) ...]
> 279: 2 [scan ((load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))
> () ...]
> In unknown file:
>   ?: 1 [load-extension "libgnc-gnome" "scm_init_sw_gnome_module"]
> In ice-9/boot-9.scm:
> 109: 0 [#<procedure 4a690e0 at ice-9/boot-9.scm:100:6 (thrown-k . args)>
> misc-error ...]
> 
> ice-9/boot-9.scm:109:20: In procedure #<procedure 4a690e0 at
> ice-9/boot-9.scm:100:6 (thrown-k . args)>:
> ice-9/boot-9.scm:109:20: In procedure dynamic-link: file: "libgnc-gnome",
> message: "The specified module could not be found."
> make[2]: ***
> [gnucash/import-export/qif-imp/CMakeFiles/scm-qif-import-2.dir/build.make:63:
> lib/gnucash/scm/ccache/2.0/gnucash/import-export/qif-import.go] Error 1
> make[1]: *** [CMakeFiles/Makefile2:9685:
> gnucash/import-export/qif-imp/CMakeFiles/scm-qif-import-2.dir/all] Error 2
> make: *** [Makefile:163: all] Error 2
> 
> Next I deleted maint/build/gnucash-git but that made no difference.
> Added a duplicate of that function with a different name but that made no
> difference.
> 
> Why do my changes cause this scheme error?
> Do I need to remove more files before the rebuild ?


Bob,

This is probably due to https://github.com/Alexpux/MINGW-packages/issues/3609 <https://github.com/Alexpux/MINGW-packages/issues/3609>. The workaround for now is to set ignorepkg in paceman.conf, see https://wiki.gnucash.org/wiki/Building_on_Windows <https://wiki.gnucash.org/wiki/Building_on_Windows>

To recover you need to revert the upgrades of ICU, Boost, and harfbuzz. The previous versions will be in /var/cache/pacman/pkg; you want the next-to-latest of each. Open an msys shell (doesn’t matter which), do e.g.
  ls /var/cache/pacman/pkg/*boost*
  pacman -U /var/cache/pacman/pkg/<filename>
for each one.

Regards,
John Ralls


More information about the gnucash-devel mailing list