[GNC-dev] Documentation update problems

Geert Janssens geert.gnucash at kobaltwit.be
Wed Sep 19 04:08:49 EDT 2018

Op woensdag 19 september 2018 05:19:08 CEST schreef John Ralls:
> It’s Debian and derivatives: Ubuntu is a derivative--or these days maybe a
> symbiote, there are Canonical reps on the Debian board--of Debian.
> I frankly don’t understand why Ubuntu needs a per-release explanation of how
> to build it, especially since Debian doesn’t. `sudo apt-get build-dep
> gnucash` installs everything you need to build 2.6; there are a few
> additional packages (cmake, ninja, swig, xsltproc, libgtk-3-dev,
> libboost-all-dev, googletest, and libwebkit2gtk-3.0-dev) to build 3. After
> that it’s the same directory creation, clone gnucash.git, cmake, and ninja
> reqardless of distro version.

The build instructions are generic for *all* linux distributions, not only 
Debian and derivatives. The only part that differs is getting the required 
dependencies on your system. As there are plenty flavors of package managers, 
this part needs to be detailed per platform.

The Debian/Ubuntu world has more or less standardized on the apt family of 
tools, so for those the same instructions can probably be used.

On Fedora the primary package manager is dnf, and the instructions would be 
written for dnf. The dnf equivalent of
"sudo apt-get build-dep gnucash"
"sudo dnf builddep install gnucash"

The devil on the other hand is in the details.

While we don't actively develop on gnucash 2.6 any more we know many users 
will stick to this series until they are comfortable to make the switch. There 
are even users on 2.4 still. We decided recently that any wiki information 
older than that release should be considered obsolete. Which inversely also 
means anything more recent is not.

That's why we still have build documentation for 2.6.x next to documentation 
for 3.x. While the effort to migrate to cmake was started in the 2.6 series 
I'm not sure it was bug free. So I understand build instructions for 2.6.x are 
still documenting the autotools way. Yet in 3.x cmake is the only supported 
build environment. That leads already to two different sets of build 

Next, what "apt-get build-dep gnucash" and "dnf builddep install gnucash" 
really install depends on the version of gnucash supported by default on the 
chosen system. For example Fedora 27 by default still ships gnucas 2.6.21, so 
the builddep command will install build dependencies for that version. If you 
want to build gnucash 3.x on that system one has to manually install the new 
dependencies, as John mentioned for apt above. In theory it would be the other 
way around when your distro ships gnucash 3.x by default. In practice however 
it's very unlikely you can still "easily" build gnucash 2.6 on such systems. 
Most of these distros have dropped libwebkitgtk-1 due to security issues.

So how do we proceed practically from here?

I think a generic page for autotools based build and one for cmake based 
builds would be useful. We can even consider abandoning the autotools based 
page to save time. This should be accompanied with a page that explains how to 
set up the proper dependencies based on your platform. The Build instructions 
page itself would then become a very short recipe referring to these two or 
three pages.

Zooming in on the generic build instructions, it may be worth starting with a 
preferred directory setup, a section (or a link to) how to clone the git repo 
and check out the proper branch.


More information about the gnucash-devel mailing list