From a9d4dfb994e3f0f22d90e13f444bdbf83e619ca1 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 11 Jul 2011 20:12:02 +0000 Subject: [PATCH] gnucash: polished the expression, enabled OFX support, and documented the GConf setup procedure on NixOS svn path=/nixpkgs/trunk/; revision=27730 --- pkgs/applications/office/gnucash/default.nix | 48 ++++++++++++-------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix index 2234f07b0abe..e829265944e0 100644 --- a/pkgs/applications/office/gnucash/default.nix +++ b/pkgs/applications/office/gnucash/default.nix @@ -1,10 +1,29 @@ -{ fetchurl, stdenv, pkgconfig, libxml2, gconf, glib, gtk -, libbonoboui, libgnomeui, libgtkhtml, gtkhtml, libgnomeprint, goffice, enchant -, gettext, intltool, perl, guile, slibGuile, swig, isocodes, bzip2 -, makeWrapper }: +{ fetchurl, stdenv, pkgconfig, libxml2, gconf, glib, gtk, libgnomeui, libofx +, libgtkhtml, gtkhtml, libgnomeprint, goffice, enchant, gettext, libbonoboui +, intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper +}: -# TODO: Fix the gconf issue. The following posting might be the missing clue: -# . +/****************************************************************************** + * Note for NixOS users * + ****************************************************************************** + * + * GnuCash relies on the GConf daemon to store and retrieve its internal + * configuration. That daemon implements a Windows-like, system-wide registry, + * which is very hard to support on NixOS because the concept is inherently + * impure. To register GnuCash's configuration schemas with GConf, you have to + * add ${gnucash}/etc/gconf/gconf.xml.defaults to GConf's search path, i.e. by + * adding the line + * + * xml:readonly:$(HOME)/.nix-profile/etc/gconf/gconf.xml.defaults/ + * + * to ~/.gconf.path in your user's home directory. Furthermore, the line + * + * services.dbus.packages = [ pkgs.gnome.GConf ]; + * + * must be added to /etc/nixos/configuration.nix to make sure the DBus daemon + * knows about GConf and starts it automatically whenever a program (such as + * GnuCash) needs it. + */ let name = "gnucash-2.4.7"; @@ -18,19 +37,12 @@ stdenv.mkDerivation { }; buildInputs = [ - pkgconfig libxml2 gconf glib gtk - libgnomeui libgtkhtml gtkhtml libgnomeprint goffice enchant - gettext intltool perl guile slibGuile swig isocodes bzip2 makeWrapper + pkgconfig libxml2 gconf glib gtk libgnomeui libgtkhtml gtkhtml + libgnomeprint goffice enchant gettext intltool perl guile slibGuile + swig isocodes bzip2 makeWrapper libofx ]; - configureFlags = "CFLAGS=-O3 CXXFLAGS=-O3 --disable-dbi"; - /* More flags to figure out: - - --enable-gtkmm enable gtkmm gui - --enable-ofx compile with ofx support (needs LibOFX) - --enable-aqbanking compile with AqBanking support - --enable-python-bindings enable python bindings - */ + configureFlags = "CFLAGS=-O3 CXXFLAGS=-O3 --disable-dbi --enable-ofx"; postInstall = '' sed -i $out/bin/update-gnucash-gconf \ @@ -42,7 +54,7 @@ stdenv.mkDerivation { --prefix GUILE_LOAD_PATH ":" "$GUILE_LOAD_PATH" \ --prefix LD_LIBRARY_PATH ":" "${libgnomeui}/lib/libglade/2.0" \ --prefix LD_LIBRARY_PATH ":" "${libbonoboui}/lib/libglade/2.0" \ - --set GCONF_CONFIG_SOURCE 'xml::~/.gconf' \ + --set GCONF_CONFIG_SOURCE 'xml::~/.gconf' \ --prefix PATH ":" "${gconf}/bin" \ --suffix PATH ":" "$out/bin" done