[GNC-dev] broken build dependencies within Gnucash on Windows project

Dale Phurrough dale at hidale.com
Mon May 27 07:31:09 EDT 2019

Hi all. I found a philosophical issue that leads to an ongoing series of
Windows build process bugs. Want to bring it to this forum. I believe it
needs discussion on approach, so that bugs can be created and holistically
fixed for now/future.

The Windows build process at
https://github.com/Gnucash/gnucash-on-windows since
Gnucash 3.5 (didn't look further back) relies on a single bootstrap file.
The bootstrap downloads resources (scripts, patches, repos) within the
control (and hosted by) the Gnucash project.

The issue is a favorite -- dependency management. This bootstrap is
downloaded from GitHub. Naturally, the bootstrap changes over time and
therefore has an inherit version. That bootstrap is downloading resources
within this project using *unversioned* URIs.

Bad news====
The bootstrap used for Windows GnuCash 3.5 doesn't work because it relies
on GitHub URIs that no longer exist in the current master branch. :-( The
more current bootstraps on master don't work also because of related URI
not found bugs and patches that don't match other downloaded resources.
Currently, the Windows build setup is broken. It is not possible to
bootstrap and setup a new Windows Gnucash build for 3.5 or later.

Everyone following? Here's one of the series of bugs
The fixes (like in that bug above) still have the versioning problem. These
fixes are fragile and break easily.

Good news====
This issue is inside the project. We can fix it. This community controls
the project, the code, and the download resources. :-)

Brainstorming ideas (not ready for implementation)...

   1. Put the commit version needed in the URI. For example, if your
   bootstrap is from commit 123abc, then download resources from that same
   2. Use git clone, checkout, etc. with versions.
   3. Put the download in a package manager and the bootstrap downloads the
   specific version it needs.


More information about the gnucash-devel mailing list