nixpkgs-suyu/pkgs/applications/networking/instant-messengers/tkabber/default.nix
2015-02-09 13:10:12 +03:00

72 lines
1.9 KiB
Nix

{ stdenv, fetchurl, tcl, tk, tcllib, tcltls, tclgpg
, bwidget, makeWrapper, x11
, withSitePlugins ? true
, theme ? null
}:
with stdenv.lib;
let
version = "1.1";
main = {
name = "tkabber";
sha256 = "1ip0mi2icqkjxiam4qj1qcynnz9ck1ggzcbcqyjj132hakd855a2";
};
plugins = {
name = "tkabber-plugins";
sha256 = "1dr12rh4vs1w1bga45k4ijgxs39801c1k4z3b892pn1dwv84il5y";
};
tclLibraries = [ bwidget tcllib tcltls tclgpg ];
getTclLibPath = p: "${p}/lib/${p.libPrefix}";
tclLibPaths = stdenv.lib.concatStringsSep " "
(map getTclLibPath tclLibraries);
mkTkabber = attrs: stdenv.mkDerivation (rec {
name = "${attrs.name}-${version}";
src = fetchurl {
url = "http://files.jabber.ru/tkabber/${name}.tar.xz";
inherit (attrs) sha256;
};
prePatch = ''
sed -e "s@/usr/local@$out@" -i Makefile
'';
} // removeAttrs attrs [ "name" "sha256" ]);
in mkTkabber (main // {
postPatch = ''
substituteInPlace login.tcl --replace \
"custom::defvar loginconf(sslcacertstore) \"\"" \
"custom::defvar loginconf(sslcacertstore) \$env(OPENSSL_X509_CERT_FILE)"
'' + optionalString (theme != null) ''
themePath="$out/share/doc/tkabber/examples/xrdb/${theme}.xrdb"
sed -i '/^if.*load_default_xrdb/,/^}$/ {
s@option readfile \(\[fullpath [^]]*\]\)@option readfile "'"$themePath"'"@
}' tkabber.tcl
'';
postInstall = ''
for prog in $out/bin/*; do
wrapProgram "$prog" \
--prefix PATH : "${tk}/bin" \
--set TCLLIBPATH '"${tclLibPaths}"' \
${optionalString withSitePlugins ''
--set TKABBER_SITE_PLUGINS '${mkTkabber plugins}/share/tkabber-plugins'
''}
done
'';
buildInputs = [ tcl tk x11 makeWrapper ] ++ tclLibraries;
meta = {
homepage = "http://tkabber.jabber.ru/";
description = "A GUI XMPP (Jabber) client written in Tcl/Tk";
license = stdenv.lib.licenses.gpl2;
};
})