[GNC-dev] Proposed updates to Wiki Build#Ubuntu pages

John Ralls jralls at ceridwen.us
Thu Apr 19 11:00:08 EDT 2018

> On Apr 18, 2018, at 10:11 PM, DaveC49 <davidcousens at bigpond.com> wrote:
> John, Geert and whoever maintains the  Wiki Build#Ubuntu_16.04
> <https://wiki.gnucash.org/wiki/Building>  pages.
> I would like to propose some edits to the above Wiki page section in the
> light of my recent experiences building Guncash v3.0 which may help others
> building it in future.
> My major problems I encountered were in getting googletest and googlemock
> installed and running smoothly, not having fully removed libraries from
> 2.6.19 and the right choice of relative reference to the top level
> CmakLists.txt. 
> I think the main reason Google doesn't recommend installing googletest and
> googlemock as shared libraries is because of their reluctance to get dragged
> into any maintenance issues on the various Linux distros rather than with
> any inherent problems with shared libraries as such. 

That’s not what they say in the documentation. Did you read it?

> In version 1.8.0 the move to a single repository and download for googlemock
> and googleletest makes the installation as shared libraries fairly easy on
> Ubuntu systems.  I am guessing the patch to GncADDTest and the
> CmakeLists.txtin ~/common/test-core to detect shared libraries won't be in
> the stable version until v3.1 is released. 

Debian/Ubuntu follows Google’s recommendation and distributes sources, not shared libraries.

https://packages.debian.org/stretch/amd64/googletest/filelist <https://packages.debian.org/stretch/amd64/googletest/filelist>
https://packages.ubuntu.com/artful/amd64/googletest/filelist <https://packages.ubuntu.com/artful/amd64/googletest/filelist>
Though in Ubuntu’s case that’s available only in the just-released 18.04LTS. Since you’re talking about 16.04, the relevant packages are
https://packages.ubuntu.com/xenial/amd64/libgtest-dev/filelist <https://packages.ubuntu.com/xenial/amd64/libgtest-dev/filelist>
https://packages.ubuntu.com/xenial/amd64/google-mock/filelist <https://packages.ubuntu.com/xenial/amd64/google-mock/filelist>

It’s Fedora and derivatives that insist on shared libraries for googletest and now googlemock; it was the Fedora packager, Bill Nottingham, who provided the patch to support libgmock.so. 

> I would propose adding a note to the dependencies secion on the above page
> referencing the ability to use shared libraries with v1.8.0 and referencing
> an additional wki page addressing setting up for using googlemock and
> googletest for building GnuCash which could have a section for setting up
> GTEST_ROOT and GMOCK_ROOT if not using shared libraries  and or v 1.7.0 and
> a section on setting up shared libraries for v 1.8.0. I put a tutorial up on
> the Linux Mint Forum for that as I found the info available on many online
> source and forums was a) very skettchy and b) sometimes confusing or
> misleading which i could either reference or just incorporate directly.

That seems rather excessive when all one need do if googletest isn’t provided by one’s distro is
  git clone https://github.com/googletest/googletest <https://github.com/googletest/googletest>
and then pass two parameters to cmake when configuring GnuCash.

> I also propose putting a note re removing previous libraries. I had relied
> on a Linux Mint menu uninstall option which worked with the distro installed
> version but not with 2.6.19 which i had built. Another possibility is to
> reference a page with instructions on how to remove files relative to the
> install prefix.

  make uninstall (autotools)
  xargs rm < install_manifest.txt (cmake)
is too esoteric to expect that people building their own package to know already?

> The third proposal  would be to have some explanatory notes, possibly with
> some examples, on the positioning of the build directory relative to the
> source directory. My experience with this is that unlike the documentation
> build, there does not appear to be a need to have the build directory
> outside the source directory. This could either go on the Cmake page
> https://wiki.gnucash.org/wiki/CMake <https://wiki.gnucash.org/wiki/CMake>

I’ve rewritten this bit in a way similar to my rewrite in README. Where you but the build directory is completely up to you, but specifying a particular layout seemed to cause trouble for some people.

> If you are happy with the above proposals or can suggest other approaches, I
> am willing to have a go at editing the Wiki if I can be granted the
> appropriate permissions to edit the pages and create the requisite new
> pages.

You can certainly have permission to edit the wiki. Just request a login and say who you are on the form.

John Ralls

More information about the gnucash-devel mailing list