aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/applications/office/gnucash/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/office/gnucash/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/office/gnucash/default.nix110
1 files changed, 110 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/office/gnucash/default.nix b/nixpkgs/pkgs/applications/office/gnucash/default.nix
new file mode 100644
index 00000000000..85868803ec6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/gnucash/default.nix
@@ -0,0 +1,110 @@
+{ fetchurl, stdenv, pkgconfig, makeWrapper, cmake, gtest
+, boost, icu, libxml2, libxslt, gettext, swig, isocodes, gtk3, glibcLocales
+, webkitgtk, dconf, hicolor-icon-theme, libofx, aqbanking, gwenhywfar, libdbi
+, libdbiDrivers, guile, perl, perlPackages
+}:
+
+let
+
+ # Enable gnc-fq-* to run in command line.
+ perlWrapper = stdenv.mkDerivation {
+ name = perl.name + "-wrapper-for-gnucash";
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ perl ] ++ (with perlPackages; [ FinanceQuote DateManip ]);
+ phases = [ "installPhase" ];
+ installPhase = ''
+ mkdir -p $out/bin
+ for script in ${perl}/bin/*; do
+ makeWrapper $script $out''${script#${perl}} \
+ --prefix "PERL5LIB" ":" "$PERL5LIB"
+ done
+ '';
+ };
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "gnucash";
+ version = "3.7";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gnucash/${pname}-${version}.tar.bz2";
+ sha256 = "1d2qi3ny0bxa16ifh3465z1jgn1l0fmqk9dkph4ialw076gv13kb";
+ };
+
+ nativeBuildInputs = [ pkgconfig makeWrapper cmake gtest ];
+
+ buildInputs = [
+ boost icu libxml2 libxslt gettext swig isocodes gtk3 glibcLocales
+ webkitgtk dconf hicolor-icon-theme libofx aqbanking gwenhywfar libdbi
+ libdbiDrivers guile
+ perlWrapper perl
+ ] ++ (with perlPackages; [ FinanceQuote DateManip ]);
+
+ propagatedUserEnvPkgs = [ dconf ];
+
+ # glib-2.62 deprecations
+ NIX_CFLAGS_COMPILE = [ "-DGLIB_DISABLE_DEPRECATION_WARNINGS" ];
+
+ patches = [ ./cmake_check_symbol_exists.patch ];
+
+ postPatch = ''
+ patchShebangs .
+ '';
+
+ makeFlags = [ "GUILE_AUTO_COMPILE=0" ];
+
+ postInstall = ''
+ # Auto-updaters don't make sense in Nix.
+ rm $out/bin/gnc-fq-update
+
+ # Unnecessary in the release build.
+ rm $out/bin/gnucash-valgrind
+
+ wrapProgram "$out/bin/gnucash" \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${pname}-${version}" \
+ --prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \
+ --prefix PERL5LIB ":" "$PERL5LIB" \
+ --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules"
+ '';
+
+ # TODO: The following tests FAILED:
+ # 61 - test-gnc-timezone (Failed)
+ # 70 - test-load-c (Failed)
+ # 71 - test-modsysver (Failed)
+ # 72 - test-incompatdep (Failed)
+ # 73 - test-agedver (Failed)
+ # 77 - test-gnc-module-swigged-c (Failed)
+ # 78 - test-gnc-module-load-deps (Failed)
+ # 80 - test-gnc-module-scm-module (Failed)
+ # 81 - test-gnc-module-scm-multi (Failed)
+ preCheck = ''
+ export LD_LIBRARY_PATH=$PWD/lib:$PWD/lib/gnucash:$PWD/lib/gnucash/test:$LD_LIBRARY_PATH
+ export NIX_CFLAGS_LINK="-lgtest -lgtest_main"
+ '';
+ doCheck = false;
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Personal and small-business financial-accounting application";
+
+ longDescription = ''
+ GnuCash is personal and small-business financial-accounting software,
+ freely licensed under the GNU GPL and available for GNU/Linux, BSD,
+ Solaris, macOS and Microsoft Windows.
+
+ Designed to be easy to use, yet powerful and flexible, GnuCash allows
+ you to track bank accounts, stocks, income and expenses. As quick and
+ intuitive to use as a checkbook register, it is based on professional
+ accounting principles to ensure balanced books and accurate reports.
+ '';
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ homepage = http://www.gnucash.org/;
+
+ maintainers = [ stdenv.lib.maintainers.peti stdenv.lib.maintainers.domenkozar ];
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+ };
+}