3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/development/libraries/aqbanking/gwenhywfar.nix
aszlig 3dba79e689
gwenhywfar: Support Gtk 2, Gtk 3 and Qt 5 GUIs
So far we used only the defaults, which are gtk2 and qt5. However
nowadays most applications have already switched to Qt 5 and Gtk 3, so
let's aim for that instead.

The reason Gtk 2 is still there is because GnuCash in nixpkgs is using
the Gtk 2 interface, so we can drop it as soon as a newer GnuCash has
landed in nixpkgs.

Right now the only package that depends on this is GnuCash (and
aqbanking of course), so I've tested this by not only building
gwenhywfar and aqbanking but also GnuCash. I did however not test
whether HBCI functionality works, only whether GnuCash starts up.

Signed-off-by: aszlig <aszlig@nix.build>
Cc: @goibhniu, @peti, @domenkozar
2018-04-27 18:34:59 +02:00

63 lines
1.9 KiB
Nix

{ stdenv, fetchurl, gnutls, gtk2, gtk3, libgcrypt, pkgconfig, gettext, which, qt5
, pluginSearchPaths ? [
"/run/current-system/sw/lib/gwenhywfar/plugins"
".nix-profile/lib/gwenhywfar/plugins"
]
}:
let
inherit ((import ./sources.nix).gwenhywfar) sha256 releaseId version;
in stdenv.mkDerivation rec {
name = "gwenhywfar-${version}";
inherit version;
src = let
qstring = "package=01&release=${releaseId}&file=02";
mkURLs = map (base: "${base}/sites/download/download.php?${qstring}");
in fetchurl {
name = "${name}.tar.gz";
urls = mkURLs [ "http://www.aquamaniac.de" "http://www2.aquamaniac.de" ];
inherit sha256;
};
preConfigure = ''
configureFlagsArray+=("--with-guis=gtk2 gtk3 qt5")
'';
postPatch = let
isRelative = path: builtins.substring 0 1 path != "/";
mkSearchPath = path: ''
p; g; s,\<PLUGINDIR\>,"${path}",g;
'' + stdenv.lib.optionalString (isRelative path) ''
s/AddPath(\(.*\));/AddRelPath(\1, GWEN_PathManager_RelModeHome);/g
'';
in ''
sed -i -e '/GWEN_PathManager_DefinePath.*GWEN_PM_PLUGINDIR/,/^#endif/ {
/^#if/,/^#endif/ {
H; /^#endif/ {
${stdenv.lib.concatMapStrings mkSearchPath pluginSearchPaths}
}
}
}' src/gwenhywfar.c
# Strip off the effective SO version from the path so that for example
# "lib/gwenhywfar/plugins/60" becomes just "lib/gwenhywfar/plugins".
sed -i -e '/^gwenhywfar_plugindir=/s,/\''${GWENHYWFAR_SO_EFFECTIVE},,' \
configure
'';
nativeBuildInputs = [ pkgconfig gettext which ];
buildInputs = [ gtk2 gtk3 qt5.qtbase gnutls libgcrypt ];
meta = with stdenv.lib; {
description = "OS abstraction functions used by aqbanking and related tools";
homepage = http://www2.aquamaniac.de/sites/download/packages.php?package=01&showall=1;
license = licenses.lgpl21;
maintainers = with maintainers; [ goibhniu ];
platforms = platforms.linux;
};
}