Merge pull request #27057 from Nadrieril/bitlbee-libpurple
bitlbee service: Add option to load libpurple plugins into bitlbee
This commit is contained in:
commit
04c944cdb4
@ -7,6 +7,10 @@ let
|
|||||||
cfg = config.services.bitlbee;
|
cfg = config.services.bitlbee;
|
||||||
bitlbeeUid = config.ids.uids.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"
|
bitlbeeConfig = pkgs.writeText "bitlbee.conf"
|
||||||
''
|
''
|
||||||
[settings]
|
[settings]
|
||||||
@ -25,6 +29,12 @@ let
|
|||||||
${cfg.extraDefaults}
|
${cfg.extraDefaults}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
purple_plugin_path =
|
||||||
|
lib.concatMapStringsSep ":"
|
||||||
|
(plugin: "${plugin}/lib/pidgin/")
|
||||||
|
cfg.libpurple_plugins
|
||||||
|
;
|
||||||
|
|
||||||
in
|
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 {
|
configDir = mkOption {
|
||||||
default = "/var/lib/bitlbee";
|
default = "/var/lib/bitlbee";
|
||||||
type = types.path;
|
type = types.path;
|
||||||
@ -144,14 +163,16 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.bitlbee =
|
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" ];
|
after = [ "network.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
serviceConfig.User = "bitlbee";
|
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 ];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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;
|
with stdenv.lib;
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -11,20 +12,25 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ] ++ optional doCheck check;
|
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 = [
|
configureFlags = [
|
||||||
"--gcov=1"
|
"--gcov=1"
|
||||||
"--otr=1"
|
"--otr=1"
|
||||||
"--ssl=gnutls"
|
"--ssl=gnutls"
|
||||||
"--pidfile=/var/lib/bitlbee/bitlbee.pid"
|
"--pidfile=/var/lib/bitlbee/bitlbee.pid"
|
||||||
];
|
]
|
||||||
|
++ optional enableLibPurple "--purple=1";
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = optionalString (!enableLibPurple) ''
|
||||||
make install-dev
|
make install-dev
|
||||||
'';
|
'';
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = !enableLibPurple; # Checks fail with libpurple for some reason
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "IRC instant messaging gateway";
|
description = "IRC instant messaging gateway";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user