Difference between revisions of "Dependencies"

From GnuCash
Jump to: navigation, search
(GnuCash Library Dependency Policy: Add instructions for getting dependencies that aren't in your distro.)
(GnuCash Library Dependency Policy: Prune and hide unmaintained distro matrix.)
Line 60: Line 60:
 
In other cases you may have a dependency but not at the required version. First look at the available repositories for your distro's package manager. For Debian based distros there's [[http://www.getdeb.net/welcome/ GetDeb]], for RPM based ones try [[https://rpmfind.net/linux/RPM/ RPMFind]].
 
In other cases you may have a dependency but not at the required version. First look at the available repositories for your distro's package manager. For Debian based distros there's [[http://www.getdeb.net/welcome/ GetDeb]], for RPM based ones try [[https://rpmfind.net/linux/RPM/ RPMFind]].
 
Failing that you may have to download and build the dependency from source. If it's a system dependency as well, for example glib or gtk+, you'll want to install it into a prefix not on the built-in search paths and then add the prefix to PKG_CONFIG_PATH and the library path to LD_LIBRARY_PATH so that CMake and GnuCash can find the updated versions.
 
Failing that you may have to download and build the dependency from source. If it's a system dependency as well, for example glib or gtk+, you'll want to install it into a prefix not on the built-in search paths and then add the prefix to PKG_CONFIG_PATH and the library path to LD_LIBRARY_PATH so that CMake and GnuCash can find the updated versions.
 
+
<!--
 
=== Available Versions by Dependency and Distribution ===
 
=== Available Versions by Dependency and Distribution ===
  
Line 78: Line 78:
 
{| border="1" style="margin:1em 1em 1em 0;border:1px solid;border-collapse:collapse;background:#F9F9F9;text-align:center;"
 
{| border="1" style="margin:1em 1em 1em 0;border:1px solid;border-collapse:collapse;background:#F9F9F9;text-align:center;"
 
|- width=30 style="background:#D2D2D2;"
 
|- width=30 style="background:#D2D2D2;"
! Distribution !! aqbanking !! cairo !! gconf2 !! glib2 !! gtk+2 !! guile !! libart2 !! libglade2 !! gnomeprint !! gnomeui !! goffice !! libgsf1 !! gtkhtml3 !! libofx !! libxml2 !! pango !! swig
+
! Distribution !! aqbanking !! cairo !! glib2 !! gtk+3 !! guile !! WebKit !! libofx !! libxml2 !! pango !! swig
|- style="background-color:#F06C47;"
 
| width=50 | RHEL 5.* 2005-02-15 || 2.2.9 (FC7) || 1.4.4 (FC7) || 2.14.0 || 2.12.3 || 2.10.4 || 1.8.0 || 2.3.17 || 2.6.0 || 2.12.1 || 2.16.0 || ?? || 1.14.1 || ?? || 0.8.3 (FC7) || 2.6.26 || 1.14.9 || ??
 
|- style="background-color:#F06C47;"
 
| width=50 | RHEL 4.* 2005-02-15 || 2.2.9 || no || 2.8.1 || 2.4.7 || 2.4.13 || 1.6.4 || 2.3.16 || 2.4.0 || 2.8.0 || 2.8.0 || ?? || 1.10.1 || 3.3.2 ||  na || 2.6.16 || 1.6.0 || ??
 
|- style="background-color:#F06C47;"
 
| width=50 | CentOS 5 2007-12-02 || no || 1.2.4 || 2.14.0 || 2.12.3 || 2.10.4 || 1.8.0 || 2.3.17 || 2.12.5 || 2.12.1 || 2.16.0 || no || 1.14.1 || 3.12.0 ||  no || 2.6.26 || 1.14.9 || 1.3.29
 
|- style="background-color:#F06C47;"
 
| width=50 | CentOS 4 2007-12-16 || no || no || 2.8.1 || 2.4.7 || 2.4.13 || 1.6.4 || 2.3.16 || 2.4.0 || 2.8.0 || 2.8.0 || no || 1.10.1 || 3.3.2 ||  no || 2.6.16 || 1.6.0 || 1.3.21
 
|- style="background-color:#A0E75A;"
 
| width=50 | Fedora 14 2010–10–26 || 4.2.4 || 1.8.10 || 2.31.3 || 2.25.7 || 2.21.0 || 1.8.7 || 2.3.20 || 2.6.4 || 2.18.7 || 2.24.3 || 0.8.1 || 1.14.18 || 3.31.2 || 0.9.1 || 2.7.7 || 1.28.0 || 1.3.40
 
|- style="background-color:#A0E75A;"
 
| width=50 | Fedora 13 2010–05–25 || 4.2.4 || 1.8.10 || 2.28.1 || 2.24.1 || 2.20.1 || 1.8.7 || 2.3.20 || 2.6.4 || 2.18.7 || 2.24.3 || 0.8.1 || 1.14.17 || 3.30.1 || 0.9.1 || 2.7.7 || 1.28.0 || 1.3.40
 
|- style="background-color:#A0E75A;"
 
| width=50 | Fedora 12 2009–11–17 || 3.8.2 || 1.8.8 || 2.28.0 || 2.22.5 || 2.18.9 || 1.8.7 || 2.3.20 || 2.6.4 || 2.18.6 || 2.24.1 || 0.6.6 || 1.14.15 || 3.28.3 || 0.9.1 || 2.7.6 || 1.26.2 || 1.3.40
 
|- style="background-color:#A0E75A;"
 
| width=50 | Fedora 11 2009–06–09 || 3.8.2 || 1.8.8 || 2.26.0 || 2.20.5 || 2.16.6 || 1.8.6 || 2.3.20 || 2.6.4 || 2.18.6 || 2.24.1 || 0.6.6 || 1.14.11 || 3.26.3 || 0.9.1 || 2.7.6 || 1.24.5 || 1.3.40
 
 
|- style="background-color:#F06C47;"
 
|- style="background-color:#F06C47;"
| width=50 | Fedora 10 2008–11–25  || 3.7.2 || 1.8.0 || 2.24.0 || 2.18.4 || 2.14.7 || 1.8.5 || 2.3.20 || 2.6.3 || 2.18.5 || 2.24.0 || 0.6.6 || 1.14.10 || 3.24.5 || 0.9.0 || 2.7.6 || 1.22.3 || 1.3.39
 
 
|- style="background-color:#A0E75A;"
 
|- style="background-color:#A0E75A;"
| width=50 | SUSE 11.3 2010-07-15 || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx
+
| width=50 | Fedora 14 2010–10–26 || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx  
 +
|| width=50 | SUSE 11.3 2010-07-15 || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx  
 
|- style="background-color:#A0E75A;"
 
|- style="background-color:#A0E75A;"
| width=50 | SUSE 11.2 2009-11-12 || 4.0.0 || 1.8.8 || 2.28.0 || 2.22.1 || 2.18.1 || 1.8.6 || 2.3.20 || 2.6.4 || 2.18.6 || 2.24.2 || 0.7.13 || 1.14.15 || 3.28.0 || 0.9.1 || 2.7.3 || 1.26.0 || 1.3.36
+
| width=50 | SUSE 11.2 2009-11-12 || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx
|- style="background-color:#F06C47;"
 
| width=50 | SUSE 11.1 2008-12-18 || 2.3.3 || 1.8.0 || 2.24.0 || 2.18.2 || 2.14.4 || 1.8.5 || 2.3.20 || 2.6.3 || 2.18.5 || 2.24.0 || 0.7.2 || 1.14.9 || 3.24.1.1 || 0.9.0 || 2.7.1 || 1.22.1 || 1.3.36
 
|- style="background-color:#F06C47;"
 
| width=50 | SUSE 11.0 2008-06-19 || 2.3.3 || 1.4.14 || 2.22.0 || 2.16.3 || 2.12.9 || 1.8.4 || 2.3.20 || 2.6.2 || 2.18.4 || 2.22.1 || 0.6.2 || 1.14.8 || 3.18.1 || 0.9.0 || 2.6.32 || 1.20.1 || 1.3.35
 
|- style="background-color:#F06C47;"
 
| width=50 | SUSE 10.3 2007 Summer || 2.2.9 || 1.4.10 || 2.20.0 || 2.14.1 || 2.12.0 || 1.8.1 || 2.3.19 || 2.6.2 || 2.18.2 || 2.20.0 || 0.4.2 || 1.14.5 || 3.16.0 || 0.8.2 || 2.6.30 || 1.18.2 || 1.3.31
 
|- style="background-color:#F06C47;"
 
| width=50 | SUSE 10.2 2006-12-07 || 2.2.3 || 1.2.4 || 2.14.0 || 2.12.4 || 2.10.6 || 1.8.1 || 2.3.17 || 2.6.0 || 2.12.1 || 2.16.1 || 0.2.1 || 1.14.2 || 3.12.2 || 0.8.2 || 2.6.26 || 1.14.5 || 1.3.29
 
 
|- style="background-color:#A0E75A;"
 
|- style="background-color:#A0E75A;"
| width=50 | Mandriva 2010.0 2009-11-03 || 4.1.7 || 1.8.8 || 2.28.0 || 2.22.2 || 2.18.9 || 1.8.6 || 2.3.20 || 2.6.4 || 2.18.6 || 2.24.2 || 0.7.14 || 1.14.16 || 3.28.2 || 0.9.1 || 2.7.6 || 1.26.1 || 1.3.40
+
| width=50 | Mandriva 2010.0 2009-11-03 || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx  
|- style="background-color:#F06C47;"
 
| width=50 | Mandriva 2007 2007-01-03 || 2.2.1 || 1.2.4 || 2.14.0 || 2.12.3 || 2.10.3 || 1.6.8 || 2.3.17 || 2.6.0 || 2.12.1 || 2.16.0 || xx || 1.14.1 || 3.12.0 || 0.8.0 || 2.6.26 || 1.14.3 || xx
 
|- style="background-color:#F06C47;"
 
| width=50 | Mandriva 2006 2005-10-06 || 1.2.0 || 1.0.0 || 2.10.1 || 2.8.1 || 2.8.3 || 1.6.7 || 2.3.17 || 2.5.1 || 2.10.3 || 2.10.2 || xx || 1.12.2 || 3.2.5 3.6.2 || 0.7.0 || 2.6.21 || 1.10.0 || xx
 
|- style="background-color:#F06C47;"
 
| width=50 | Mandriva 2005 2005-05-14 || 1.0.7 || 0.3.0 || 2.8.1 || 2.6.3 || 2.6.4 || 1.6.7 || 2.3.17 || 2.4.2 || 2.8.2 || 2.8.2 || xx || 1.11.1 || 3.1.11 || 0.7.0 || 2.6.17 || 1.8.1 || xx
 
|- width=30 style="background:#D2D2D2;"
 
! Distribution !! aqbanking !! cairo !! gconf2 !! glib2 !! gtk+2 !! guile !! libart2 !! libglade2 !! gnomeprint !! gnomeui !! goffice !! libgsf1 !! gtkhtml3 !! libofx !! libxml2 !! pango !! swig
 
 
|- style="background-color:#87CEEB;"
 
|- style="background-color:#87CEEB;"
| width=50 | Debian 6.0 squeeze 2010-05-28 || 4.2.4 || 1.8.10 || 2.28.1 || 2.24.1 || 2.20.1 || 1.6.8 1.8.7 || 2.3.21 || 2.6.4 || 2.18.7 || 2.24.3 || 0.8.3 || 1.14.18 || 3.28.3 || 0.9.0 || 2.7.7 || 1.28.0 || 1.3.40
+
| width=50 | Debian 6.0 squeeze 2010-05-28 || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx
|- style="background-color:#F06C47;"
 
| width=50 | Debian 5.0 lenny 2009-2-14 || 3.2.6 || 1.6.4 || 2.22.0 || 2.16.6 || 2.12.12 || 1.6.8 1.8.5 || 2.3.20 || 2.6.2 || 2.18.5 || 2.20.1 || 0.6.3 || 1.14.8 || 3.18.3 || 0.9.0 || 2.6.32 || 1.20.5 || 1.3.36
 
|- style="background-color:#F06C47;"
 
| width=50 | Debian 4.0 etch 2007-04-08 || 2.2.3 || 1.2.4 || 2.16.1 || 2.12.4 || 2.8.20 || 1.6.8 1.8.1 || 2.3.17 || 2.6.0 || 2.12.1 || 2.14.1 || 0.2.1 || 1.14.3 || 3.12.1 || 0.8.2 || 2.6.27 || 1.14.8 || 1.3.29
 
|- style="background-color:#F06C47;"
 
| width=50 | Debian 3.1 sarge 2005-06-06 || na || na || 2.8.1 || 2.6.4 || 2.6.4 || 1.6.7 || 2.3.17 || 2.4.2 || 2.8.2 || 2.8.1 || na || 1.11.1 || 3.2.5 || 0.7.0 || 2.6.16 || 1.8.1 || 1.3.24
 
 
|- style="background-color:#A0E75A;"
 
|- style="background-color:#A0E75A;"
| width=50 | Ubuntu 10.04 2010-04-29 || 4.2.3 || 1.8.10 || 2.28.1 || 2.24.0 || 2.20.0 || 1.8.7 || 2.3.20 || 2.6.4 || 2.18.6 || 2.24.3 || 0.8.1 || 1.14.16 || 3.29.6 || 0.9.0 || 2.7.6 || 1.28.0 || 1.3.40
+
| width=50 | Ubuntu 10.04 2010-04-29 || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx
 
|- style="background-color:#A0E75A;"
 
|- style="background-color:#A0E75A;"
| width=50 | Ubuntu 9.10 2009-10-29 || 4.1.2 || 1.8.8 || 2.28.0 || 2.22.2 || 2.18.3 || 1.8.7 || 2.3.20 || 2.6.4 || 2.18.6 || 2.24.2 || 0.7.8 || 1.14.15 || 3.28.1 || 0.9.0 || 2.7.5 || 1.26.0 || 1.3.36
+
| width=50 | Ubuntu 9.10 2009-10-29 || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx
 
|- style="background-color:#A0E75A;"
 
|- style="background-color:#A0E75A;"
| width=50 | Ubuntu 9.04 2009-04-23 || 3.7.2 || 1.8.6 || 2.26.0 || 2.20.1 || 2.16.1 || 1.8.5 || 2.3.20 || 2.6.4 || 2.18.6 || 2.24.1 || 0.6.6 || 1.14.11 || 3.26.0 || 0.9.0 || 2.6.32 || 1.24.1 || 1.3.36
+
| width=50 | Gentoo 2010-05-29 || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx
|- style="background-color:#F06C47;"
+
| width=50 | Slackware 13.1 2010-05-29 || xx || xx || xx || xx || xx || xx || xx || xx || xx || xx
| width=50 | Ubuntu 8.10 2008-10-30 || 3.5.1 || 1.8.0 || 2.24.0 || 2.18.2 || 2.14.4 || 1.8.5 || 2.3.20 || 2.6.3 || 2.18.5 || 2.24.0 || 0.6.3 || 1.14.8 || 3.24.1 || 0.9.0 || 2.6.32 || 1.22.2 || 1.3.35
 
|- style="background-color:#F06C47;"
 
| width=50 | Ubuntu 8.04 (LTS) 2008-04-24 || 3.3.0 || 1.6.0 || 2.22.0 || 2.16.6 || 2.12.9 || 1.8.3 || 2.3.20 || 2.6.2 || 2.18.4 || 2.22.1 || 0.6.1 || 1.14.7 || 3.18.3 || 0.9.0 || 2.6.31 || 1.20.05 || 1.3.33
 
|- style="background-color:#F06C47;"
 
| width=50 | Ubuntu 5.10 2005-10-13 || 1.5.99 || 1.0.2 || 2.12.0 || 2.8.3 || 2.8.6 || 1.6.7 || 2.3.17 || 2.5.1 || 2.12.1 || 2.12.0 || ?? || 1.12.3 || 3.6.2/3.8.1 || 0.8.0 || 2.6.21 || 1.10.1 || ??
 
|- style="background-color:#F06C47;"
 
| width=50 | Ubuntu 5.04 2005-04-08 || ?? || 0.3.0 || 2.10.0 || 2.6.3 || 2.6.4 || 1.6.7 || 2.3.17 || 2.5.1 || 2.10.3 || 2.10.0 || ?? || 1.11.1 || ?? || na || 2.6.17 || 1.8.1 || ??
 
|- style="background-color:#A0E75A;"
 
| width=50 | Gentoo 2010-05-29 || 4.2.0 || 1.8.8 || 2.26.2 || 2.22.4 || 2.18.6 || 1.8.5 || 2.3.20 || 2.6.4 || 2.18.6 || 2.24.2 || 0.6.6 || 1.14.15 || 3.26.3 || 0.9.1 || 2.7.7 || 1.24.5 || 1.3.36
 
|-
 
| width=50 | Gentoo 2005.1 2005-08-08 || 1.0.8 || 0.4.0 || 2.10.0 || 2.6.5 || 2.6.8 || 1.6.7 || 2.3.17 || 2.5.1 || 2.10.3 || 2.10.0 || ?? || 1.12.1 || ?? || 0.7.0 || 2.6.19 || 1.8.1 || ??
 
|-
 
| width=50 | Gentoo 2005.0 2005-03-28 || 1.0.4 || 0.3.0 || 2.8.1 || 2.6.2 || ?? || 1.6.7 || 2.3.16 || 2.4.0 || 2.8.1 || 2.8.1 || ?? || 1.10.0 || ?? || ?? || 2.6.16 || 1.8.0 || ??
 
|- style="background-color:#A0E75A;"
 
| width=50 | Slackware 13.1 2010-05-29 || na || 1.8.8 || na || 2.22.5 || 2.18.9 || 1.8.7 || 2.3.20 || 2.6.4 || no || no || no || 1.14.16 || no || no || 2.7.6 || 1.26.2 || 1.3.38
 
 
|-
 
|-
| width=50 | Slackware 10.2 2005-09-14 || na || na || na || 2.6.6 || 2.6.10 || 1.6.7 || 2.3.17 || 2.4.2 || no || no || ?? || 1.12.1 || no || no || 2.6.22 || 1.8.2 || ??
+
| width=50 | FreeBSD 2010-05-29 ||
 
|-
 
|-
| width=50 | Slackware 10.1 2005-02-07 || na || na || 2.6.2 || 2.6.4 || 2.6.7 || 1.6.5 || 2.3.16 || 2.6.0 || 2.6.1 || 2.6.1 || ?? || 1.9.1 || no || no || 2.6.16 || 1.8.1 || ??
+
! Distribution !! aqbanking !! cairo !! glib2 !! gtk+3 !! guile !! WebKit !! libofx !! libxml2 !! pango !! swig
|- style="background-color:#A0E75A;"
 
| width=50 | FreeBSD 2010-05-29 || 4.2.4 || 1.8.10 || 2.28.1 || 2.24.1 || 2.20.1 || 1.8.6 || 2.3.21 || 2.6.4 || 2.18.7 || 2.24.3 || 0.8.4 || 1.14.18 || 3.30.1 || 0.9.1 || 2.7.7 || 1.28.0 || 1.3.39
 
|-
 
| width=50 | FreeBSD 5.4 2005-05-09 || no || 0.4.0 || 2.10.0 || 2.6.3 || 2.6.4 || 1.6.5 || 2.3.17 || 2.5.1 || 2.10.1 || 2.10.0 || ?? || 1.11.1 || 3.6.1 || 0.7.0 || 2.6.18 || 1.8.1 || ??
 
|- width=30 style="background:#D2D2D2;"
 
! Distribution !! aqbanking !! cairo !! gconf2 !! glib2 !! gtk+2 !! guile !! libart2 !! libglade2 !! gnomeprint !! gnomeui !! goffice !! libgsf1 !! gtkhtml3 !! libofx !! libxml2 !! pango !! swig
 
 
|}
 
|}
  
Line 175: Line 116:
  
 
openSUSE packages: http://packages.opensuse-community.org/
 
openSUSE packages: http://packages.opensuse-community.org/
 +
-->

Revision as of 19:56, 14 April 2018

General

This page is intended to capture various library build and runtime dependency information. The goal is to provide a more dynamic source than maint/README.dependencies/master/README.dependencies for tracking this replace data.

See Building for details on building Gnucash.

GnuCash Library Dependency Policy

GnuCash desires to only depend on library versions and packages that are practically available. Specifically, we choose to depend only on versions that have been in the major distributions for 6 months. This is motivated in part by the 1.6 release, which required a large set of relatively-recent dependencies. Specifically, as most user's (distributions) did not have the required versions packaged, it was exceedingly painful for end users to upgrade to the anticipated release, leading to a reputation that gnucash still has.

This document serves to keep track of the major distributions, the date of their major release[s], and the relevant library versions as part of that release (or an official package-upgrade path)

Libraries/Deps

Eventually we should transform this list in a table of the form GnuCash-Version|required-lib*?

  • required:
    • glib2 (>= 2.40.0, >=2.46.0 preferred)
    • gtk+3 (>= 3.14.0)
    • guile (>= 2.0.0)
    • libxml2 (>= 2.5.10)
    • libxslt
    • swig (>=b2.0.10) Only required to build from git.
    • webkit (>= 2.4.9) Windows and Mac require *exactly* 2.4.9, as they use the WebKit1 API
    • boost (>=1.53.0)
    • googletest (>=1.7.0) Build only, not required for binary packages.
  • optional:
    • aqbanking (>= 4.0.0) optional for online banking and import; also requires gwehywfar and ktoblzcheck
    • libdbi (>=0.8.3) for SQL backends,
      • don't forget to install your preferred database driver ! On Fedora for example you can choose between libdbi-dbd-mysql, libdbi-dbd-postgresql and libdbi-dbd-sqlite. On Debian the drivers are named libdbd-mysql, libdbd-postgresql and libdbd-sqlite3. Other distributions may use other variants of these names still.
    • libofx (>= 0.9.0)
    • python (>= 3.2.0) python bindings; headers required, not just binaries.


  • at runtime:
    • required:
      • a gsettings backend to store the gnucash global preferences in. This backend is platform dependent:
        linux: dconf
        osx/quarz: plists
        windows: registry
      Note that the osx and windows backends are built-in in gio for their respective platforms. On linux and similar systems, the dconf package should be installed.
    • suggested:
      • isocodes, (translation of currencies) since Gnucash r19131/2.3.13 [1]

What if my distro doesn't have a required dependency?

It happens. Sometimes we need functionality that some distros decline to provide. All of our dependencies are free software and so the sources are readily available for you to download and use. If you're not on the latest version of your distro you may not have the needed versions for every dependency.

For example, OpenSuSE is believed at the time of writing to not provide GoogleTest. That happens to be the simplest of all because GnuCash only needs the sources, which can be cloned from [Github]. Just put it somewhere convenient and add -DGTEST_ROOT=/path/to/googletest/googletest and -DGMOCK_ROOT=/path/to/googletest/googlemock to your CMake arguments when building GnuCash.

In other cases you may have a dependency but not at the required version. First look at the available repositories for your distro's package manager. For Debian based distros there's [GetDeb], for RPM based ones try [RPMFind]. Failing that you may have to download and build the dependency from source. If it's a system dependency as well, for example glib or gtk+, you'll want to install it into a prefix not on the built-in search paths and then add the prefix to PKG_CONFIG_PATH and the library path to LD_LIBRARY_PATH so that CMake and GnuCash can find the updated versions.