Windows Build

Geert Janssens geert.gnucash at
Mon Mar 5 16:07:55 EST 2018

Op maandag 5 maart 2018 18:41:38 CET schreef Geert Janssens:
> Op maandag 5 maart 2018 12:10:48 CET schreef Robert Fewell:
> > Geert,
> > 
> > I have successfully built a 2.7.5 version locally with these changes...
> > 
> > Added the following to gnome/CMakeLists.txt at line 178 but I think this
> > may need to go in the file
> > GETTEXTDATADIR=/mingw32/share/gettext
> Yes, I figured would be a good candidate. I'm playing with
> manipulating XDG_DATA_DIRS rather than GETTEXTDATADIR now for the same
> effect. It should be more useful as there's more in /mingw32/share than
> gettext data.
> Also, I have generalized it a bit to work for both 32 as 64 bit builds.
> > Added the following to gnucash-mingw64.iss at line 120
> > Source: "@MINGW_DIR@\bin\libboost_date_time-mt.dll"; DestDir: "{app}\bin";
> > Components: main
> Ok. I didn't understand your first mail correctly. Your fix makes sense now.
> > Whilst poking around yesterday I also created copies of
> > gettext/its/appdata.its/loc as it appeared to me the loc file was doing
> > file matching but the match pattern was *.appdata.xml and not *.
> >
> > but this may not be required, need to delete these extra files and try
> > another rebuild.
> This is probably not required. gettext tools will remove any .in extension
> before determining the file type. It's like that on linux as well and it
> works fine there.
> > Have you run the *setup-ming64-ps1 *file, I did last month and as reported
> > made some changes which effected the build, namely I think cmake was
> > updated to 10 which meant the FindSWIG patch would not apply so maybe
> > there
> > were other changes that affected gettext ?
> I didn't run setup-mingw64.ps1 and that was an important clue. Indeed it
> looks like FindGettext.cmake has been updated to take an optional .exe into
> account.
> The FindSWIG patch won't apply because it tries to look for a file in
> cmake-3.9 while the files are now in cmake-3.10. I'm holding off on
> adjusting the patch because it appears you didn't need it any more.
> Waiting for the build to finish (once more).

So some final updates:

1. The FindSWIG patch is still necessary. I have adapted it to work with cmake 
3.10. I don't know how Bob got past that on his local build. Perhaps the 
values were still cached?

2. I have rerun setup-minw64.ps1 several times to get all non-jhbuild managed 
packages up to date. It took several runs because the first run updated msys2, 
which had new mingw packages in its package list, but the first run had 
already determined what to update. I believe my local box and the gnucash 
build server are now fully up to date.

With that and my other patches in place...

2. I can't get a successful build on my local Windows 7 box. It fails to build 
xmlsec. I tried wiping it and restarting the build, but it consistently fails 
file xmlsec-xmlsec_1_2_20/src/openssl/x509.c:94
Error: expected declaration specifiers or '...' before '(' token 
static xmlChar* xmlSecOpenSSLX509NameWrite (X509_NAME* nm);

The error points at the the X in X509_NAME. This triggers a whole set of other 
warnings which I won't repeat here.

3. Since I didn't manage to get my Win7 box to build this, I decided to try on 
the build server. This has no issues with xmlsec (unless it didn't retry, but 
I think it did). It consistently fails however when building gnucash. The 
error log can be seen here:

Again I tried completely wiping the current build dir, but it still fails. So 
again I'm surprised Bob did get past this.

I don't know how to proceed from here (yet) and I don't know when I will have 
time to continue this.

If anyone else wants to take a stab at this, please go ahead.


More information about the gnucash-devel mailing list