Merge pull request #9711 from anderspapitto/bitlbee

plugin support for bitlbee, and facebook plugin

Changed files
+75 -6
nixos
modules
services
networking
pkgs
applications
networking
instant-messengers
bitlbee
bitlbee-facebook
top-level
+15 -5
nixos/modules/services/networking/bitlbee.nix
···
''
[settings]
RunMode = Daemon
-
User = bitlbee
+
User = bitlbee
ConfigDir = ${cfg.configDir}
DaemonInterface = ${cfg.interface}
DaemonPort = ${toString cfg.portNumber}
AuthMode = ${cfg.authMode}
+
Plugindir = ${pkgs.bitlbee-plugins cfg.plugins}/lib/bitlbee
${lib.optionalString (cfg.hostName != "") "HostName = ${cfg.hostName}"}
${lib.optionalString (cfg.protocols != "") "Protocols = ${cfg.protocols}"}
${cfg.extraSettings}
···
Open -- Accept connections from anyone, use NickServ for user authentication.
Closed -- Require authorization (using the PASS command during login) before allowing the user to connect at all.
Registered -- Only allow registered users to use this server; this disables the register- and the account command until the user identifies himself.
-
'';
+
'';
};
hostName = mkOption {
···
'';
};
+
plugins = mkOption {
+
type = types.listOf types.package;
+
default = [];
+
example = literalExample "[ pkgs.bitlbee-facebook ]";
+
description = ''
+
The list of bitlbee plugins to install.
+
'';
+
};
+
configDir = mkOption {
default = "/var/lib/bitlbee";
type = types.path;
···
default = "";
description = ''
Will be inserted in the Settings section of the config file.
-
'';
+
'';
};
extraDefaults = mkOption {
default = "";
description = ''
Will be inserted in the Default section of the config file.
-
'';
+
'';
};
};
···
gid = config.ids.gids.bitlbee;
};
-
systemd.services.bitlbee =
+
systemd.services.bitlbee =
{ description = "BitlBee IRC to other chat networks gateway";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
+27
pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
···
+
{ fetchurl, fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkgconfig, glib, json_glib }:
+
+
with stdenv.lib;
+
stdenv.mkDerivation rec {
+
name = "bitlbee-facebook-2015-08-27";
+
+
src = fetchFromGitHub {
+
rev = "094a11b542e2cd8fac4f00fe01870ecd1cb4c062";
+
owner = "jgeboski";
+
repo = "bitlbee-facebook";
+
sha256 = "1dvbl1z6fl3wswvqbs82vkqlggk24dyi8w7cmm5jh1fmaznmwqrl";
+
};
+
+
buildInputs = [ bitlbee autoconf automake libtool pkgconfig glib json_glib ];
+
+
preConfigure = ''
+
export BITLBEE_PLUGINDIR=$out/lib/bitlbee
+
./autogen.sh
+
'';
+
+
meta = {
+
description = "The Facebook protocol plugin for bitlbee";
+
+
homepage = https://github.com/jgeboski/bitlbee-facebook;
+
license = licenses.gpl2Plus;
+
};
+
}
+10 -1
pkgs/applications/networking/instant-messengers/bitlbee/default.nix
···
-
{ fetchurl, stdenv, gnutls, glib, pkgconfig, check, libotr, python }:
+
{ fetchurl, fetchpatch, stdenv, gnutls, glib, pkgconfig, check, libotr, python }:
with stdenv.lib;
stdenv.mkDerivation rec {
···
buildInputs = [ gnutls glib pkgconfig libotr python ]
++ optional doCheck check;
+
patches = [(fetchpatch {
+
url = "https://github.com/bitlbee/bitlbee/commit/34d16d5b4b5265990125894572a90493284358cd.patch";
+
sha256 = "05in9kxabb6s2c1l4b9ry58ppfciwmwzrkaq33df2zv0pr3z7w33";
+
})];
+
configureFlags = [
"--gcov=1"
"--otr=1"
"--ssl=gnutls"
];
+
+
buildPhase = ''
+
make install-dev
+
'';
doCheck = true;
+20
pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix
···
+
{ stdenv, bitlbee }:
+
+
with stdenv.lib;
+
+
plugins:
+
+
stdenv.mkDerivation {
+
inherit bitlbee plugins;
+
name = "bitlbee-plugins";
+
buildInputs = [ bitlbee plugins ];
+
phases = [ "installPhase" ];
+
installPhase = ''
+
mkdir -p $out/lib/bitlbee
+
for plugin in $plugins; do
+
for thing in $(ls $plugin/lib/bitlbee); do
+
ln -s $plugin/lib/bitlbee/$thing $out/lib/bitlbee/
+
done
+
done
+
'';
+
}
+3
pkgs/top-level/all-packages.nix
···
bibletime = callPackage ../applications/misc/bibletime { };
bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { };
+
bitlbee-plugins = callPackage ../applications/networking/instant-messengers/bitlbee/plugins.nix { };
+
+
bitlbee-facebook = callPackage ../applications/networking/instant-messengers/bitlbee-facebook { };
bitmeter = callPackage ../applications/audio/bitmeter { };