nixpkgs/pkgs/applications/office/gnucash/2.6.nix

117 lines
3.9 KiB
Nix
Raw Normal View History

2017-11-28 23:47:06 +00:00
{ fetchurl, fetchpatch, stdenv, intltool, pkgconfig, file, makeWrapper
, libxml2, libxslt, perl, perlPackages, gconf, guile
, glib, gtk2, libofx, aqbanking, gwenhywfar, libgnomecanvas, goffice
, webkit, glibcLocales, gsettings-desktop-schemas, dconf
, gettext, swig, slibGuile, enchant, bzip2, isocodes, libdbi, libdbiDrivers
Merge staging-next into master (#44009) * substitute(): --subst-var was silently coercing to "" if the variable does not exist. * libffi: simplify using `checkInputs` * pythonPackges.hypothesis, pythonPackages.pytest: simpify dependency cycle fix * utillinux: 2.32 -> 2.32.1 https://lkml.org/lkml/2018/7/16/532 * busybox: 1.29.0 -> 1.29.1 * bind: 9.12.1-P2 -> 9.12.2 https://ftp.isc.org/isc/bind9/9.12.2/RELEASE-NOTES-bind-9.12.2.html * curl: 7.60.0 -> 7.61.0 * gvfs: make tests run, but disable * ilmbase: disable tests on i686. Spooky! * mdds: fix tests * git: disable checks as tests are run in installcheck * ruby: disable tests * libcommuni: disable checks as tests are run in installcheck * librdf: make tests run, but disable * neon, neon_0_29: make tests run, but disable * pciutils: 3.6.0 -> 3.6.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pciutils/versions. * mesa: more include fixes mostly from void-linux (thanks!) * npth: 1.5 -> 1.6 minor bump * boost167: Add lockfree next_prior patch * stdenv: cleanup darwin bootstrapping Also gets rid of the full python and some of it's dependencies in the stdenv build closure. * Revert "pciutils: use standardized equivalent for canonicalize_file_name" This reverts commit f8db20fb3ae382eba1ba2b160fe24739f43c0bd7. Patching should no longer be needed with 3.6.1. * binutils-wrapper: Try to avoid adding unnecessary -L flags (cherry picked from commit f3758258b8895508475caf83e92bfb236a27ceb9) Signed-off-by: Domen Kožar <domen@dev.si> * libffi: don't check on darwin libffi usages in stdenv broken darwin. We need to disable doCheck for that case. * "rm $out/share/icons/hicolor/icon-theme.cache" -> hicolor-icon-theme setup-hook * python.pkgs.pytest: setupHook to prevent creation of .pytest-cache folder, fixes #40273 When `py.test` was run with a folder as argument, it would not only search for tests in that folder, but also create a .pytest-cache folder. Not only is this state we don't want, but it was also causing collisions. * parity-ui: fix after merge * python.pkgs.pytest-flake8: disable test, fix build * Revert "meson: 0.46.1 -> 0.47.0" With meson 0.47.0 (or 0.47.1, or git) things are very wrong re:rpath handling resulting in at best missing libs but even corrupt binaries :(. When we run patchelf it masks the problem by removing obviously busted paths. Which is probably why this wasn't noticed immediately. Unfortunately the binary already has a long series of paths scribbled in a space intended for a much smaller string; in my testing it was something like lengths were 67 with 300+ written to it. I think we've reported the relevant issues upstream, but unfortunately it appears our patches are what introduces the overwrite/corruption (by no longer being correct in what they assume) This doesn't look so bad to fix but it's not something I can spend more time on at the moment. -- Interestingly the overwritten string data (because it is scribbled past the bounds) remains in the binary and is why we're suddenly seeing unexpected references in various builds -- notably this is is the reason we're seeing the "extra-utils" breakage that entirely crippled NixOS on master (and probably on staging before?). Fixes #43650. This reverts commit 305ac4dade5758c58e8ab1666ad0197fd305828d. (cherry picked from commit 273d68eff8f7b6cd4ebed3718e5078a0f43cb55d) Signed-off-by: Domen Kožar <domen@dev.si>
2018-07-24 15:04:48 +01:00
, pango, gdk_pixbuf, hicolor-icon-theme
}:
/*
Two cave-ats right now:
1. HTML reports are broken
2. You need to have dconf installed (GNOME3 should have it automatically,
otherwise put it in environment.systemPackages), for settings
*/
stdenv.mkDerivation rec {
name = "gnucash-2.6.18-1";
src = fetchurl {
url = "mirror://sourceforge/gnucash/${name}.tar.bz2";
sha256 = "1794qi7lkn1kbnhzk08wawacfcphbln3ngdl3q0qax5drv7hnwv8";
};
patches = [
(fetchpatch {
sha256 = "11nlf9j7jm1i37mfcmmnkplxr3nlf257fxd01095vd65i2rn1m8h";
name = "fix-brittle-test.patch";
url = "https://github.com/Gnucash/gnucash/commit/42ac55e03a1a84739f4a5b7a247c31d91c0adc4a.patch";
})
];
2017-11-28 23:47:06 +00:00
nativeBuildInputs = [ intltool pkgconfig file makeWrapper ];
buildInputs = [
# general
2017-11-28 23:47:06 +00:00
libxml2 libxslt glibcLocales gettext swig enchant
bzip2 isocodes
# glib, gtk...
Merge staging-next into master (#44009) * substitute(): --subst-var was silently coercing to "" if the variable does not exist. * libffi: simplify using `checkInputs` * pythonPackges.hypothesis, pythonPackages.pytest: simpify dependency cycle fix * utillinux: 2.32 -> 2.32.1 https://lkml.org/lkml/2018/7/16/532 * busybox: 1.29.0 -> 1.29.1 * bind: 9.12.1-P2 -> 9.12.2 https://ftp.isc.org/isc/bind9/9.12.2/RELEASE-NOTES-bind-9.12.2.html * curl: 7.60.0 -> 7.61.0 * gvfs: make tests run, but disable * ilmbase: disable tests on i686. Spooky! * mdds: fix tests * git: disable checks as tests are run in installcheck * ruby: disable tests * libcommuni: disable checks as tests are run in installcheck * librdf: make tests run, but disable * neon, neon_0_29: make tests run, but disable * pciutils: 3.6.0 -> 3.6.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pciutils/versions. * mesa: more include fixes mostly from void-linux (thanks!) * npth: 1.5 -> 1.6 minor bump * boost167: Add lockfree next_prior patch * stdenv: cleanup darwin bootstrapping Also gets rid of the full python and some of it's dependencies in the stdenv build closure. * Revert "pciutils: use standardized equivalent for canonicalize_file_name" This reverts commit f8db20fb3ae382eba1ba2b160fe24739f43c0bd7. Patching should no longer be needed with 3.6.1. * binutils-wrapper: Try to avoid adding unnecessary -L flags (cherry picked from commit f3758258b8895508475caf83e92bfb236a27ceb9) Signed-off-by: Domen Kožar <domen@dev.si> * libffi: don't check on darwin libffi usages in stdenv broken darwin. We need to disable doCheck for that case. * "rm $out/share/icons/hicolor/icon-theme.cache" -> hicolor-icon-theme setup-hook * python.pkgs.pytest: setupHook to prevent creation of .pytest-cache folder, fixes #40273 When `py.test` was run with a folder as argument, it would not only search for tests in that folder, but also create a .pytest-cache folder. Not only is this state we don't want, but it was also causing collisions. * parity-ui: fix after merge * python.pkgs.pytest-flake8: disable test, fix build * Revert "meson: 0.46.1 -> 0.47.0" With meson 0.47.0 (or 0.47.1, or git) things are very wrong re:rpath handling resulting in at best missing libs but even corrupt binaries :(. When we run patchelf it masks the problem by removing obviously busted paths. Which is probably why this wasn't noticed immediately. Unfortunately the binary already has a long series of paths scribbled in a space intended for a much smaller string; in my testing it was something like lengths were 67 with 300+ written to it. I think we've reported the relevant issues upstream, but unfortunately it appears our patches are what introduces the overwrite/corruption (by no longer being correct in what they assume) This doesn't look so bad to fix but it's not something I can spend more time on at the moment. -- Interestingly the overwritten string data (because it is scribbled past the bounds) remains in the binary and is why we're suddenly seeing unexpected references in various builds -- notably this is is the reason we're seeing the "extra-utils" breakage that entirely crippled NixOS on master (and probably on staging before?). Fixes #43650. This reverts commit 305ac4dade5758c58e8ab1666ad0197fd305828d. (cherry picked from commit 273d68eff8f7b6cd4ebed3718e5078a0f43cb55d) Signed-off-by: Domen Kožar <domen@dev.si>
2018-07-24 15:04:48 +01:00
glib gtk2 goffice webkit hicolor-icon-theme
# gnome...
dconf gconf libgnomecanvas gsettings-desktop-schemas
# financial
libofx aqbanking gwenhywfar
# perl
perl perlPackages.FinanceQuote perlPackages.DateManip
# guile
guile slibGuile
# database backends
libdbi libdbiDrivers
];
postPatch = ''
2017-11-28 23:47:06 +00:00
patchShebangs ./src
'';
configureFlags = [
"CFLAGS=-O3"
"CXXFLAGS=-O3"
"--enable-dbi"
"--with-dbi-dbd-dir=${libdbiDrivers}/lib/dbd/"
"--enable-ofx"
"--enable-aqbanking"
];
postInstall = ''
# Auto-updaters don't make sense in Nix.
rm $out/bin/gnc-fq-update
#sed -i $out/bin/update-gnucash-gconf \
# -e 's|--config-source=[^ ]* --install-schema-file|--makefile-install-rule|'
for prog in $(echo "$out/bin/"*)
do
# Don't wrap the gnc-fq-* scripts, since gnucash calls them as
# "perl <script>', i.e. they must be Perl scripts.
if [[ $prog =~ gnc-fq ]]; then continue; fi
wrapProgram "$prog" \
--set SCHEME_LIBRARY_PATH "$SCHEME_LIBRARY_PATH" \
--prefix GUILE_LOAD_PATH ":" "$GUILE_LOAD_PATH" \
--prefix PERL5LIB ":" "$PERL5LIB" \
--set GCONF_CONFIG_SOURCE 'xml::~/.gconf' \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${name}" \
--prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules" \
2016-08-22 23:06:51 +01:00
--prefix PATH ":" "$out/bin:${stdenv.lib.makeBinPath [ perl gconf ]}"
done
'';
# The following settings fix failures in the test suite. It's not required otherwise.
LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ guile glib gtk2 pango gdk_pixbuf ];
preCheck = "export GNC_DOT_DIR=$PWD/dot-gnucash";
doCheck = true;
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;
};
}