about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/networking/znc
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/znc')
-rw-r--r--nixpkgs/pkgs/applications/networking/znc/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/networking/znc/modules.nix198
2 files changed, 249 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/znc/default.nix b/nixpkgs/pkgs/applications/networking/znc/default.nix
new file mode 100644
index 000000000000..e5aec9117068
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/znc/default.nix
@@ -0,0 +1,51 @@
+{ lib, stdenv, fetchurl, openssl, pkg-config
+, withPerl ? false, perl
+, withPython ? false, python3
+, withTcl ? false, tcl
+, withCyrus ? true, cyrus_sasl
+, withUnicode ? true, icu
+, withZlib ? true, zlib
+, withIPv6 ? true
+, withDebug ? false
+}:
+
+with lib;
+
+stdenv.mkDerivation rec {
+  pname = "znc";
+  version = "1.8.2";
+
+  src = fetchurl {
+    url = "https://znc.in/releases/archive/${pname}-${version}.tar.gz";
+    sha256 = "03fyi0j44zcanj1rsdx93hkdskwfvhbywjiwd17f9q1a7yp8l8zz";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ]
+    ++ optional withPerl perl
+    ++ optional withPython python3
+    ++ optional withTcl tcl
+    ++ optional withCyrus cyrus_sasl
+    ++ optional withUnicode icu
+    ++ optional withZlib zlib;
+
+  configureFlags = [
+    (lib.enableFeature withPerl "perl")
+    (lib.enableFeature withPython "python")
+    (lib.enableFeature withTcl "tcl")
+    (lib.withFeatureAs withTcl "tcl" "${tcl}/lib")
+    (lib.enableFeature withCyrus "cyrus")
+  ] ++ optional (!withIPv6) [ "--disable-ipv6" ]
+    ++ optional withDebug [ "--enable-debug" ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Advanced IRC bouncer";
+    homepage = "https://wiki.znc.in/ZNC";
+    maintainers = with maintainers; [ schneefux lnl7 ];
+    license = licenses.asl20;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/znc/modules.nix b/nixpkgs/pkgs/applications/networking/znc/modules.nix
new file mode 100644
index 000000000000..a72618d935d4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/znc/modules.nix
@@ -0,0 +1,198 @@
+{ lib, stdenv, fetchFromGitHub, znc }:
+
+let
+  zncDerivation = a@{
+    name, src, module_name,
+    buildPhase ? "${znc}/bin/znc-buildmod ${module_name}.cpp",
+    installPhase ? "install -D ${module_name}.so $out/lib/znc/${module_name}.so", ...
+  } : stdenv.mkDerivation (a // {
+    inherit buildPhase;
+    inherit installPhase;
+
+    buildInputs = znc.buildInputs;
+
+    meta = a.meta // { platforms = lib.platforms.unix; };
+    passthru.module_name = module_name;
+  });
+
+in {
+
+  backlog = zncDerivation rec {
+    name = "znc-backlog-${version}";
+    version = "git-2017-06-13";
+    module_name = "backlog";
+
+    src = fetchFromGitHub {
+      owner = "FruitieX";
+      repo = "znc-backlog";
+      rev = "42e8f439808882d2dae60f2a161eabead14e4b0d";
+      sha256 = "1k7ifpqqzzf2j7w795q4mx1nvmics2higzjqr3mid3lp43sqg5s6";
+    };
+
+    meta = with lib; {
+      description = "Request backlog for IRC channels.";
+      homepage = "https://github.com/fruitiex/znc-backlog/";
+      license = licenses.asl20;
+      maintainers = with maintainers; [ infinisil ];
+    };
+  };
+
+  clientbuffer = zncDerivation rec {
+    name = "znc-clientbuffer-${version}";
+    version = "git-2020-04-24";
+    module_name = "clientbuffer";
+
+    src = fetchFromGitHub {
+      owner = "CyberShadow";
+      repo = "znc-clientbuffer";
+      rev = "2e32d508aa975c0a307d09575a0198f8c56c11fa";
+      sha256 = "1jaspnrbv3pzsnbysqygc8s8g3q07zx5nlrdpgwv9j8aryg0pcnh";
+    };
+
+    meta = with lib; {
+      description = "ZNC module for client specific buffers";
+      homepage = "https://github.com/CyberShadow/znc-clientbuffer";
+      license = licenses.asl20;
+      maintainers = with maintainers; [ hrdinka szlend ];
+    };
+  };
+
+  clientaway = zncDerivation rec {
+    name = "znc-clientaway-${version}";
+    version = "git-2017-04-28";
+    module_name = "clientaway";
+
+    src = fetchFromGitHub {
+      owner = "kylef";
+      repo = "znc-contrib";
+      rev = "f6724a4a3b16b050088adde0cbeed74f189e5044";
+      sha256 = "0ikd3dzjjlr0gs0ikqfk50msm6mij99ln2rjzqavh58iwzr7n5r8";
+    };
+
+    meta = with lib; {
+      description = "ZNC clientaway module";
+      homepage = "https://github.com/kylef/znc-contrib";
+      license = licenses.gpl2;
+      maintainers = with maintainers; [ kiwi ];
+    };
+  };
+
+  fish = zncDerivation rec {
+    name = "znc-fish-${version}";
+    version = "git-2017-06-26";
+    module_name = "fish";
+
+    src = fetchFromGitHub {
+      # this fork works with ZNC 1.7
+      owner = "oilslump";
+      repo = "znc-fish";
+      rev = "7d91467dbb195f7b591567911210523c6087662e";
+      sha256 = "1ky5xg17k5f393whrv5iv8zsmdvdyk2f7z5qdsmxcwy3pdxy6vsm";
+    };
+
+    meta = {
+      description = "ZNC FiSH module";
+      homepage = "https://github.com/dctrwatson/znc-fish";
+      maintainers = [ lib.maintainers.offline ];
+    };
+  };
+
+  ignore = zncDerivation rec {
+    name = "znc-ignore-${version}";
+    version = "git-2017-04-28";
+    module_name = "ignore";
+
+    src = fetchFromGitHub {
+      owner = "kylef";
+      repo = "znc-contrib";
+      rev = "f6724a4a3b16b050088adde0cbeed74f189e5044";
+      sha256 = "0ikd3dzjjlr0gs0ikqfk50msm6mij99ln2rjzqavh58iwzr7n5r8";
+    };
+
+    meta = with lib; {
+      description = "ZNC ignore module";
+      homepage = "https://github.com/kylef/znc-contrib";
+      license = licenses.gpl2;
+      maintainers = with maintainers; [ kiwi ];
+    };
+  };
+
+  palaver = zncDerivation rec {
+    name = "znc-palaver-${version}";
+    version = "2020-07-18";
+    module_name = "palaver";
+
+    src = fetchFromGitHub {
+      owner = "cocodelabs";
+      repo = "znc-palaver";
+      rev = "825cb6814d64006ca0f85fec23fa0a8a3a2d14ca";
+      sha256 = "zXWPIxhO5Z2L6f+Hf3vIpEh6V4kjUONWAaKexKLECc8=";
+    };
+
+    meta = with lib; {
+      description = "Palaver ZNC module";
+      homepage = "https://github.com/cocodelabs/znc-palaver";
+      license = licenses.mit;
+      maintainers = with maintainers; [ kiwi szlend ];
+    };
+  };
+
+  playback = zncDerivation rec {
+    name = "znc-playback-${version}";
+    version = "git-2015-08-04";
+    module_name = "playback";
+
+    src = fetchFromGitHub {
+      owner = "jpnurmi";
+      repo = "znc-playback";
+      rev = "8691abf75becc1f3d7b5bb5ad68dad17cd21863b";
+      sha256 = "0mgfajljy035051b2sx70i8xrb51zw9q2z64kf85zw1lynihzyh4";
+    };
+
+    meta = with lib; {
+      description = "An advanced playback module for ZNC";
+      homepage = "https://github.com/jpnurmi/znc-playback";
+      license = licenses.asl20;
+      maintainers = with maintainers; [ hrdinka ];
+    };
+  };
+
+  privmsg = zncDerivation rec {
+    name = "znc-privmsg-${version}";
+    version = "git-2015-02-22";
+    module_name = "privmsg";
+
+    src = fetchFromGitHub {
+      owner = "kylef";
+      repo = "znc-contrib";
+      rev = "9f1f98db56cbbea96d83e6628f657e0d62cd9517";
+      sha256 = "0n82z87gdxxragcaixjc80z8bw4bmfwbk0jrf9zs8kk42phlkkc2";
+    };
+
+    meta = {
+      description = "ZNC privmsg module";
+      homepage = "https://github.com/kylef/znc-contrib";
+    };
+  };
+
+  push = zncDerivation rec {
+    name = "znc-push-${version}";
+    version = "git-2016-10-12";
+    module_name = "push";
+
+    src = fetchFromGitHub {
+      owner = "jreese";
+      repo = "znc-push";
+      rev = "cf08b9e0f483f03c28d72dd78df932cbef141f10";
+      sha256 = "0xpwjw8csyrg736g1jc1n8d6804x6kbdkrvldzhk9ldj4iwqz7ay";
+    };
+
+    meta = {
+      description = "Push notification service module for ZNC";
+      homepage = "https://github.com/jreese/znc-push";
+      license = lib.licenses.mit;
+      maintainers = with lib.maintainers; [ offline schneefux ];
+    };
+  };
+
+}