diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/office/gnucash/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/office/gnucash/default.nix | 110 |
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; + }; +} |