nixpkgs/pkgs/applications/networking/instant-messengers/tkabber/default.nix

73 lines
1.9 KiB
Nix
Raw Normal View History

{ stdenv, fetchurl, tcl, tk, tcllib, tcltls, tclgpg
, bwidget, makeWrapper, x11
, withSitePlugins ? true
, theme ? null
}:
2012-06-04 19:28:40 +01:00
with stdenv.lib;
let
version = "1.0";
main = {
name = "tkabber";
sha256 = "49ee6e897dfe52ebac256531b54955e6b39223f606a9b8ad63a52475389db206";
};
plugins = {
name = "tkabber-plugins";
sha256 = "d61251dc664f0bfa8534e578096dede9a7bb7d4f2620489f8d2c43d36cd61ba9";
};
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}";
2012-06-04 19:28:40 +01:00
src = fetchurl {
url = "http://files.jabber.ru/tkabber/${name}.tar.xz";
inherit (attrs) sha256;
};
2012-06-04 19:28:40 +01:00
prePatch = ''
sed -e "s@/usr/local@$out@" -i Makefile
'';
} // removeAttrs attrs [ "name" "sha256" ]);
in mkTkabber (main // {
postPatch = ''
2012-06-04 19:28:40 +01:00
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"
2012-06-04 19:28:40 +01:00
sed -i '/^if.*load_default_xrdb/,/^}$/ {
s@option readfile \(\[fullpath [^]]*\]\)@option readfile "'"$themePath"'"@
2012-06-04 19:28:40 +01:00
}' 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
2012-06-04 19:28:40 +01:00
'';
buildInputs = [ tcl tk x11 makeWrapper ] ++ tclLibraries;
2012-06-04 19:28:40 +01:00
meta = {
homepage = "http://tkabber.jabber.ru/";
description = "A GUI XMPP (Jabber) client written in Tcl/Tk";
license = stdenv.lib.licenses.gpl2;
2012-06-04 19:28:40 +01:00
};
})