Merge pull request #27057 from Nadrieril/bitlbee-libpurple

bitlbee service: Add option to load libpurple plugins into bitlbee
This commit is contained in:
Jörg Thalheim 2017-07-17 18:07:43 +01:00 committed by GitHub
commit 04c944cdb4
2 changed files with 35 additions and 8 deletions

View file

@ -7,6 +7,10 @@ let
cfg = config.services.bitlbee;
bitlbeeUid = config.ids.uids.bitlbee;
bitlbeePkg = if cfg.libpurple_plugins == []
then pkgs.bitlbee
else pkgs.bitlbee.override { enableLibPurple = true; };
bitlbeeConfig = pkgs.writeText "bitlbee.conf"
''
[settings]
@ -25,6 +29,12 @@ let
${cfg.extraDefaults}
'';
purple_plugin_path =
lib.concatMapStringsSep ":"
(plugin: "${plugin}/lib/pidgin/")
cfg.libpurple_plugins
;
in
{
@ -90,6 +100,15 @@ in
'';
};
libpurple_plugins = mkOption {
type = types.listOf types.package;
default = [];
example = literalExample "[ pkgs.purple-matrix ]";
description = ''
The list of libpurple plugins to install.
'';
};
configDir = mkOption {
default = "/var/lib/bitlbee";
type = types.path;
@ -144,14 +163,16 @@ in
};
systemd.services.bitlbee =
{ description = "BitlBee IRC to other chat networks gateway";
{
environment.PURPLE_PLUGIN_PATH = purple_plugin_path;
description = "BitlBee IRC to other chat networks gateway";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig.User = "bitlbee";
serviceConfig.ExecStart = "${pkgs.bitlbee}/sbin/bitlbee -F -n -c ${bitlbeeConfig}";
serviceConfig.ExecStart = "${bitlbeePkg}/sbin/bitlbee -F -n -c ${bitlbeeConfig}";
};
environment.systemPackages = [ pkgs.bitlbee ];
environment.systemPackages = [ bitlbeePkg ];
};

View file

@ -1,4 +1,5 @@
{ fetchurl, fetchpatch, stdenv, gnutls, glib, pkgconfig, check, libotr, python }:
{ fetchurl, fetchpatch, stdenv, gnutls, glib, pkgconfig, check, libotr, python,
enableLibPurple ? false, pidgin ? null }:
with stdenv.lib;
stdenv.mkDerivation rec {
@ -11,20 +12,25 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ] ++ optional doCheck check;
buildInputs = [ gnutls glib libotr python ];
buildInputs = [ gnutls glib libotr python ]
++ optional enableLibPurple pidgin;
preConfigure = optionalString enableLibPurple
"export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${pidgin}/lib/pkgconfig";
configureFlags = [
"--gcov=1"
"--otr=1"
"--ssl=gnutls"
"--pidfile=/var/lib/bitlbee/bitlbee.pid"
];
]
++ optional enableLibPurple "--purple=1";
buildPhase = ''
buildPhase = optionalString (!enableLibPurple) ''
make install-dev
'';
doCheck = true;
doCheck = !enableLibPurple; # Checks fail with libpurple for some reason
meta = {
description = "IRC instant messaging gateway";