Making GnuCash development on Windows easier, one step at the time

Geert Janssens janssens-geert at telenet.be
Fri Jan 18 11:33:52 EST 2013


Although we support Windows, we don't have any GnuCash developers that 
develop natively on that platform. There are probably many reasons for 
this, like platform preference being a personal choice for example.

But as I occasionally do maintenance work on the Windows build, and my 
own experience there seem to suggest at least one other important 
reason: it is my perception that the barrier for entry on Windows is a 
lot higher than it is on the native linux platform.

So I decided to see if I could make it easier to develop GnuCash 
natively on Windows.

The very first hurdle a potentially new developer encounters IMO is that 
s/he manually has to set up the initial development environment, 
grabbing tools from different websites, editing configuration files and 
so on.

I have written an experimental bootstrap script that will eventually 
make all of that obsolete. It's not quite there yet though (actually the 
bootstrap script is, but install.sh needs updating before this can work).

This script is fully self-contained and written in Visual Basic Script. 
It should be capable of downloading all the necessary components to set 
up a minimal development environment in which the beginning user only 
has to open an msys shell and type install.sh.

I have added it to the GnuCash repo, you can download it from here:
https://github.com/Gnucash/gnucash/raw/trunk/packaging/win32/bootstrap_win_dev.vbs

I would really like if you would download this script, run it and give 
me feedback. It works on my test system (WinXP 32 bit), but I'd like to 
learn how it works on other Windows platforms. I may have assumed things 
to be installed that actually aren't on all versions of Windows.

What you can expect:
If you don't modify anything, the script will create a directory tree as 
follows:
- c:\soft
- c:\soft\downloads
- c:\soft\Git-1.7.10     -> git installation
- c:\soft\gnucash.git   -> gnucash git repository cloned from github
- c:\soft\gnucash.git\packaging\win32\custom.sh
- c:\soft\mingw          -> will have mingw-get and msys (including 
msys-wget)
- c:\soft\tmp

That's it. All the rest will need to be handled by the rest of our 
native tool chain.

Early in the bootstrap script is a section where a number of parameters 
are defined. You can modify these before running the bootstrap script is 
you prefer different paths to install things in.

The custom.sh script defines a number of paths as assumed by the 
bootstrap script, so install.sh will be aligned with whatever bootstrap 
set up.

If any of the files or directories exist, they won't be overwritten, but 
reused. If you already had a custom.sh in 
c:\soft\gnucash.git\packaging\win32, you may need to adapt it manually 
to match the parameters used by bootstrap.

Last note: the bootstrap script uses mingw-get, an experimental package 
manager for mingw and msys packages (currently considered beta). I 
intend to rewrite the windows toolchain to use this as well as it will 
simplify a large part of our mingw/msys setup code. Because the windows 
toolchain is not using this yet, install.sh probably won't work with the 
environment set up by bootstrap. As I said, it's only the first step !

Please do test though if the script runs properly and give feedback.

Geert


More information about the gnucash-devel mailing list