3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/applications/office/kmymoney/default.nix

71 lines
2.3 KiB
Nix
Raw Normal View History

kmymoney: init at 5.0.1 I tried to use -DENABLE_SQLCIPHER and also passed the right directories to the Qt 5 source of the QSQLiteDriver but CMake then failed to run qt4_automoc, by which I'd imply that SQLCipher is not maintained anymore (after all KMyMoney using qgpgme as well, which doesn't require sources). Another odd thing is that CMake reports that the weboob plugin is disabled, but after inspecting it turns out that the reporting is just wrong. This is already fixed upstream but not yet released in KDE/kmymoney@8b086cf921879770971e9331f005339bfacdc84c. In addition of running the upstream test suite I have manually tested a few things in a VM by using the following Nix expression: (import <nixpkgs/nixos> { configuration = { pkgs, ... }: { environment.systemPackages = with pkgs; [ kmymoney aqbanking gwenhywfar libchipcard python2Packages.weboob kgpg ]; users.users.test.isNormalUser = true; virtualisation.diskSize = 4096; virtualisation.memorySize = 2048; services.xserver = { enable = true; inherit ((import <nixpkgs/nixos> {}).config.services.xserver) layout; displayManager.sddm.enable = true; displayManager.sddm.autoLogin.enable = true; displayManager.sddm.autoLogin.user = "test"; desktopManager.default = "plasma5"; desktopManager.plasma5.enable = true; }; }; }).vm The things I have tested in particular are: * Basic startup * Completing the wizard * Add some test transactions * GPG encryption * Generation of charts and reports * Rough check whether OFX integration lists supported financial institutions. * Small check of AqBanking implementation, whether accounts and users can be configured, but didn't test actual connectivity with a financial institution. * Check of Weboob integration with a test PayPal backend, however also just with a dummy account and without actually connecting to PayPal. One of the upstream tests "reports-chart-test" seems to fail even though generating charts and reports are working when testing manually. It also seems that this is the case on other distributions, for example Gentoo has disabled that test as well: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5169cec68fa6fd67841 Note that I didn't add myself as a maintainer because I'm not personally using KMyMoney but just packaged it for someone else. I hope this is useful for other people, so that maybe someday[TM] there will be a proper maintainer. Signed-off-by: aszlig <aszlig@nix.build> Cc: @ttuegel
2018-04-28 01:21:22 +01:00
{ stdenv, lib, fetchurl, doxygen, extra-cmake-modules, graphviz, kdoctools
, akonadi, alkimia, aqbanking, gmp, gwenhywfar, kactivities, karchive
, kcmutils, kcontacts, kdewebkit, kdiagram, kholidays, kidentitymanagement
, kitemmodels, libical, libofx, qgpgme
# Needed for running tests:
, qtbase, xvfb_run
# For weboob, which only supports Python 2.x:
, python2Packages
}:
stdenv.mkDerivation rec {
name = "kmymoney-${version}";
version = "5.0.1";
src = fetchurl {
url = "mirror://kde/stable/kmymoney/${version}/src/${name}.tar.xz";
sha256 = "1c9apnvc07y17pzy4vygry1dai5ass2z7j354lrcppa85b18yvnx";
};
# Hidden dependency that wasn't included in CMakeLists.txt:
NIX_CFLAGS_COMPILE = "-I${kitemmodels.dev}/include/KF5";
enableParallelBuilding = true;
nativeBuildInputs = [
doxygen extra-cmake-modules graphviz kdoctools python2Packages.wrapPython
];
buildInputs = [
akonadi alkimia aqbanking gmp gwenhywfar kactivities karchive kcmutils
kcontacts kdewebkit kdiagram kholidays kidentitymanagement kitemmodels
libical libofx qgpgme
# Put it into buildInputs so that CMake can find it, even though we patch
# it into the interface later.
python2Packages.weboob
];
weboobPythonPath = [ python2Packages.weboob ];
postInstall = ''
buildPythonPath "$weboobPythonPath"
patchPythonScript "$out/share/kmymoney/weboob/kmymoneyweboob.py"
# Within the embedded Python interpreter, sys.argv is unavailable, so let's
# assign it to a dummy value so that the assignment of sys.argv[0] injected
# by patchPythonScript doesn't fail:
sed -i -e '1i import sys; sys.argv = [""]' \
"$out/share/kmymoney/weboob/kmymoneyweboob.py"
'';
doInstallCheck = stdenv.hostPlatform == stdenv.buildPlatform;
installCheckPhase = let
pluginPath = "${qtbase.bin}/${qtbase.qtPluginPrefix}";
in lib.optionalString doInstallCheck ''
QT_PLUGIN_PATH=${lib.escapeShellArg pluginPath} CTEST_OUTPUT_ON_FAILURE=1 \
${xvfb_run}/bin/xvfb-run -s '-screen 0 1024x768x24' make test \
ARGS="-E '(reports-chart-test)'" # Test fails, so exclude it for now.
'';
meta = {
description = "Personal finance manager for KDE";
homepage = https://kmymoney.org/;
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;
};
}