Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KDE: Add KMyMoney #39647

Merged
merged 5 commits into from May 5, 2018
Merged

KDE: Add KMyMoney #39647

merged 5 commits into from May 5, 2018

Conversation

aszlig
Copy link
Member

@aszlig aszlig commented Apr 28, 2018

This adds KMyMoney, a finance manager for KDE plus a few required dependencies.

I ran the upstream test suite as well as the following manual tests:

  • 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.

I also added @7c6f434c to the reviewers, because he's the maintainer of mpir where I had to enable C++ support (see 6134887 for details).

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™ there will be a proper maintainer.

This is needed by Alkimia which I'm going to package soon as part of
KMyMoney.

I enabled this by default, because it doesn't increase the closure size
a whole lot (only around 150 KiB):

$ nix-store -q --size /nix/store/...old...-mpir-3.0.0
1223248
$ nix-store -q --size /nix/store/...new...-mpir-3.0.0
1377136

Introducing an option for enabling/disabling this is not worth it,
because it doesn't conflict with anything and the size increase is the
only drawback and we can still make it configurable if we want someday.

Signed-off-by: aszlig <aszlig@nix.build>
Cc: @7c6f434c
This is one of the requirements of KMyMoney and packaging is quite
straightforward with no unexpected traps.

Signed-off-by: aszlig <aszlig@nix.build>
Cc: @ttuegel
This is used by KMyMoney and also the reason why I needed to add C++
support to MPIR in the parent commit.

The reason why I didn't add myself as a maintainer is because I'm not
personally using KMyMoney and thus Alkimia.

Signed-off-by: aszlig <aszlig@nix.build>
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@8b086cf.

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
@GrahamcOfBorg
Copy link

No attempt on x86_64-darwin (full log)

The following builds were skipped because they don't evaluate on x86_64-darwin: kmymoney, mpir

Partial log (click to expand)


a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.


@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: kmymoney, mpir

Partial log (click to expand)

      Start 37: kmymoney-kmymoneyutils-test
37/37 Test #37: kmymoney-kmymoneyutils-test ......................   Passed    0.05 sec

100% tests passed, 0 tests failed out of 37

Total Test time (real) = 108.49 sec
postPatchMkspecs
postPatchMkspecs
/nix/store/g6bi304qx5bmpk0am13p6yylv1rgrgm1-kmymoney-5.0.1
/nix/store/7wwrbw3r5qi27ib6acm2x9hwg6xkwi7m-mpir-3.0.0

@7c6f434c
Copy link
Member

  1. As for MPIR — seems fine, as far as I remember it is for eventual use in Sage, size doesn't matter that much.

  2. Maybe copy-paste the upstream «Alkimia is the infrastructure for common storage and business logic that will be used by all financial applications in KDE. The target is to share financial related information over application bounderies. » as longDescription for Alkimia? The current description makes me want to look up the homepage to find out what it actually is (then I do, and despair).

  3. We need to do something about the notion of maintenance, in the that the initial definition are people who can be asked because they know what is going on in the expression, and then everyone has different interpretations.

@7c6f434c wrote in [1]:

   Maybe copy-paste the upstream "Alkimia is the infrastructure for
   common storage and business logic that will be used by all financial
   applications in KDE. The target is to share financial related
   information over application bounderies." as longDescription for
   Alkimia? The current description makes me want to look up the
   homepage to find out what it actually is (then I do, and despair).

[1]: NixOS#39647 (comment)

Signed-off-by: aszlig <aszlig@nix.build>
@aszlig
Copy link
Member Author

aszlig commented Apr 28, 2018

@7c6f434c: Point 2 fixed. As for point 3: To me, meta.maintainers means I will watch this package and continuously make improvements and updates - after all there is git shortlog to see who's made the most changes. So I'd guess we don't have a general consensus on that, right?

Quoting maintainers in https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes:

A list of names and e-mail addresses of the maintainers of this Nix expression. If you would like to be a maintainer of a package, you may want to add yourself to nixpkgs/lib/maintainers.nix and write something like [ stdenv.lib.maintainers.alice stdenv.lib.maintainers.bob ].

To me this sounds like more than just writing the initial expression and maybe fixing build errors.

@GrahamcOfBorg
Copy link

Failure on aarch64-linux (full log)

Attempted: kmymoney, mpir

Partial log (click to expand)

[4734/17529] CXX obj/third_party/icu/bundled_icui18n/visibledigits.o
[4735/17529] CXX obj/third_party/icu/bundled_icui18n/regexcmp.o
[4736/17529] CXX obj/services/catalog/lib/catalog.o
[4737/17529] CXX obj/third_party/icu/bundled_icuuc/ucnvscsu.o
[4738/17529] CXX obj/third_party/icu/bundled_icuuc/unames.o
building of '/nix/store/iq5c59ld0j6zff4vs7a72dri54h2vidb-qtwebengine-5.10.1.drv' timed out after 3600 seconds
cannot build derivation '/nix/store/yl4r9978d9pb5bgwfqydb8s9k8jj7052-python2.7-PyQt-5.10.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/7c2cyxv43cvl4272dm365vqgn15mvq9k-python2.7-weboob-1.3.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/0fsw05f97d1wj6km6fba68xswbg1ag5z-kmymoney-5.0.1.drv': 1 dependencies couldn't be built
�[31;1merror:�[0m build of '/nix/store/0fsw05f97d1wj6km6fba68xswbg1ag5z-kmymoney-5.0.1.drv' failed

@GrahamcOfBorg
Copy link

No attempt on x86_64-darwin (full log)

The following builds were skipped because they don't evaluate on x86_64-darwin: kmymoney, mpir

Partial log (click to expand)


a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.


@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: kmymoney, mpir

Partial log (click to expand)

/nix/store/g6bi304qx5bmpk0am13p6yylv1rgrgm1-kmymoney-5.0.1
/nix/store/7wwrbw3r5qi27ib6acm2x9hwg6xkwi7m-mpir-3.0.0

@7c6f434c
Copy link
Member

Well, it doesn't define what it does say. The initial mailing list discussion ended with a rather minimal approach, and no consensus to make an explicit changed has since been reached…

@GrahamcOfBorg
Copy link

Failure on aarch64-linux (full log)

Attempted: kmymoney, mpir

Partial log (click to expand)

[4622/17529] CXX obj/third_party/icu/bundled_icui18n/repattrn.o
[4623/17529] CXX obj/third_party/icu/bundled_icui18n/sharedbreakiterator.o
[4624/17529] CXX obj/third_party/icu/bundled_icui18n/collationtailoring.o
[4625/17529] CXX obj/third_party/icu/bundled_icui18n/standardplural.o
[4626/17529] CXX obj/third_party/icu/bundled_icui18n/search.o
building of '/nix/store/iq5c59ld0j6zff4vs7a72dri54h2vidb-qtwebengine-5.10.1.drv' timed out after 3600 seconds
cannot build derivation '/nix/store/yl4r9978d9pb5bgwfqydb8s9k8jj7052-python2.7-PyQt-5.10.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/7c2cyxv43cvl4272dm365vqgn15mvq9k-python2.7-weboob-1.3.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/0fsw05f97d1wj6km6fba68xswbg1ag5z-kmymoney-5.0.1.drv': 1 dependencies couldn't be built
�[31;1merror:�[0m build of '/nix/store/0fsw05f97d1wj6km6fba68xswbg1ag5z-kmymoney-5.0.1.drv' failed

@aszlig aszlig removed the request for review from globin April 29, 2018 11:33
@aszlig aszlig merged commit 9e88342 into NixOS:master May 5, 2018
aszlig added a commit that referenced this pull request May 5, 2018
This adds KMyMoney, a finance manager for KDE plus a few required
dependencies.

I ran the upstream test suite as well as the following manual tests:

  * 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.

On top of that, the application already is being used by the person
requesting me to package this, so I'd guess it works well enough.

I'm merging this without the review from @ttuegel because it only adds
packages and doesn't change anything fundamental about the KDE
ecosystem.

The only change here is to add C++ support to "mpir", where the
maintainer (@7c6f434c) has approved the change.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants