GNOME Bugzilla – Bug 621238
Update guile to 1.8.7 on Windows
Last modified: 2018-06-29 22:40:45 UTC
Created attachment 163321 [details] [review] Patch to build with guile 1.8.7, but GnuCash won't run with it. Attached is a patch for the windows build system to build GnuCash with guile 1.8.7 instead of 1.6.8. !!! It doesn't work yet !!! I wanted to share the work I have done so far, hoping others can help to complete the task. So far I have patched the guile source and build script to get it to build, and get GnuCash to build with guile as well. However, GnuCash won't run. The libguile initialization terminates with an error, and hence takes GnuCash down before it got started. Also, guile as built fails to load the slib module. This might hold a clue to the cause of the problem. The simple test we use to see if slib is successfully installed fails: guile>(use-modules (ice-9 slib)) ERROR: In procedure open-file: ERROR: No such file or directory: "C:/software/guile/share/guile/1.8/guile/slib/C:/software/guile/share/guile/1.8/slib/require" Notice the double inclusion of the prefix.
Created attachment 180716 [details] [review] Working version of the patch to update guile to 1.8 Time to revisit this enhancement request. Good news is that I actually managed to get GnuCash on Windows running with Guile 1.8.8. On the other hand, it has become a rather large patch with many interdependent changes. I have broken it up in several smaller git commits to make it easier to see what has changed and why. But only if all commits are applied I come to a working build again on all platforms. Some background: Guile 1.8.x doesn't build with mingw's GCC 3.x. So I first had to install a more recent GCC. I had tried mingw's GCC 4.4.0 and 4.5.0 in the past, but they both introduced other issues that caused me additional head aches (like packaging bugs in 4.4.0 and internal compiler crashes in 4.5.0 when attempting to build aqbanking. So for this patch I ended up with the recently released 4.5.2-1. Unfortunately guile 1.6.x refuses to build with this compiler or at least I didn't manage to get it to build. This means I couldn't cleanly introduce GCC 4.5.2-1 independently from the guile update. This patch hence introduces both. Using 4.5.2-1 introduced some minor side issues in other packages we use, but they were relatively easy to solve. For guile, I chose 1.8.8, as there were Windows specific build issues with 1.8.7 [1], that were solved for 1.8.8. Then I hit another bad issue: I couldn't get slib to work properly with guile 1.8.8 on Windows. For some reason the load path got mangled. After spending some time trying to resolve this, I decided instead to eliminate slib from the equation. From bug 615168 I gather it is only still there because Andy's patches cause guile 1.6.x to crash. So to work around this, I applied Andy's patches (with some minor fixes) and increased the minimum requirement to 1.8.5. I did check the supported distro's. All the still actively supported distros (except the long term support editions) are at least this version for quite some time, so this should be fine. I deliberately ignore the LTS editions here. There is hardly a chance they will update to a more recent major release of GnuCash anyway and they are all still on GnuCash 2.2.9 or older. And that was pretty much it. With this patch, we have guile 1.8.8 on Windows and a slib-free GnuCash. This is a fairly big and intrusive patch and I'd love to have some others test it as well and provide some feedback. Since the changes include updating the compiler it's a bit tricky to simply update an existing build environment. If you want the build script to install the new compiler, you should at least remove mingw/bin/g++.exe. Additionally you must ensure autotools is installed again (guile requires a more recent version) and every package that is effectively compiled should be recompiled. Probably the easiest route is to start from a clean Mingw/Msys install, although you can reuse the htmlhelp and svn installations. Considering the impact of this patch, I obviously see this only applied for 2.5 and not in a 2.4 bugfix release. [1] refer to http://savannah.gnu.org/bugs/?29583
> Considering the impact of this patch, I obviously see this only applied for 2.5 > and not in a 2.4 bugfix release. Yes. In other words, as soon as there is a 2.4-stable branch created, this patch can go into (then-experimental) trunk and guile-1.6 support will be dropped in trunk.
> Yes. In other words, as soon as there is a 2.4-stable branch created, this > patch can go into (then-experimental) trunk and guile-1.6 support will be > dropped in trunk. I agree with this approach. Great work, Geert!
Now trunk is open for development again, I'll commit this in a couple of days. Note that for this patch to be picked up some directories and files on the build server will have to be removed at the same time.
Find me on IRC so we can coordinate. I'm still wondering if I should set up a daily or weekly build of the 2.4 branch?
Comment on attachment 180716 [details] [review] Working version of the patch to update guile to 1.8 Now in SVN, isn't it?
Indeed, committed in revisions 20435 to 20446.
GnuCash bug tracking has moved to a new Bugzilla host. This bug has been copied to https://bugs.gnucash.org/show_bug.cgi?id=621238. Please update any external references or bookmarks.