summary refs log tree commit diff
path: root/pkgs/applications/office/gnucash
diff options
context:
space:
mode:
authorPeter Simons <simons@cryp.to>2011-07-11 20:12:02 +0000
committerPeter Simons <simons@cryp.to>2011-07-11 20:12:02 +0000
commita9d4dfb994e3f0f22d90e13f444bdbf83e619ca1 (patch)
treecd56ae2295e1184cc16093c8998755c0cde34d0c /pkgs/applications/office/gnucash
parent2685bfc32bdc0908172d5790d5d49eed2878fa5a (diff)
downloadnixpkgs-a9d4dfb994e3f0f22d90e13f444bdbf83e619ca1.tar
nixpkgs-a9d4dfb994e3f0f22d90e13f444bdbf83e619ca1.tar.gz
nixpkgs-a9d4dfb994e3f0f22d90e13f444bdbf83e619ca1.tar.bz2
nixpkgs-a9d4dfb994e3f0f22d90e13f444bdbf83e619ca1.tar.lz
nixpkgs-a9d4dfb994e3f0f22d90e13f444bdbf83e619ca1.tar.xz
nixpkgs-a9d4dfb994e3f0f22d90e13f444bdbf83e619ca1.tar.zst
nixpkgs-a9d4dfb994e3f0f22d90e13f444bdbf83e619ca1.zip
gnucash: polished the expression, enabled OFX support, and documented the GConf setup procedure on NixOS
svn path=/nixpkgs/trunk/; revision=27730
Diffstat (limited to 'pkgs/applications/office/gnucash')
-rw-r--r--pkgs/applications/office/gnucash/default.nix48
1 files changed, 30 insertions, 18 deletions
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index 2234f07b0ab..e829265944e 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:
-# <http://osdir.com/ml/linux.distributions.nixos/2007-09/msg00003.html>.
+/******************************************************************************
+ *                            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