summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorArseniy Seroka <jagajaga@users.noreply.github.com>2016-04-09 09:39:13 +0300
committerArseniy Seroka <jagajaga@users.noreply.github.com>2016-04-09 09:39:13 +0300
commit7da3bba260a32a2375aeade12fcea14df67db4c0 (patch)
tree0a9019cda5d3a159bd28fd10c1cb8b0aafb0d6f9 /pkgs
parent569cb205dec5f06935f1962fe3fe4ae291d86836 (diff)
parent8fe327a4322baa8279f09eb3a87ffd92dbdc8a18 (diff)
Merge pull request #14545 from elitak/wraith
wraith: init at 1.4.6
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/networking/irc/wraith/default.nix46
-rw-r--r--pkgs/applications/networking/irc/wraith/dlopen.patch48
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 96 insertions, 0 deletions
diff --git a/pkgs/applications/networking/irc/wraith/default.nix b/pkgs/applications/networking/irc/wraith/default.nix
new file mode 100644
index 0000000000000..f36bbc0006418
--- /dev/null
+++ b/pkgs/applications/networking/irc/wraith/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, openssl }:
+
+with stdenv;
+with stdenv.lib;
+
+mkDerivation rec {
+  name = "wraith-${version}";
+  version = "1.4.6";
+  src = fetchurl {
+    url = "mirror://sourceforge/wraithbotpack/wraith-v${version}.tar.gz";
+    sha256 = "0vb2hbjmwh040f5yhxvwcfxvgxa0q9zdy9vvddydn8zn782d7wl8";
+  };
+  buildInputs = [ openssl ];
+  patches = [ ./dlopen.patch ];
+  postPatch = ''
+    substituteInPlace src/libssl.cc    --subst-var-by openssl ${openssl}
+    substituteInPlace src/libcrypto.cc --subst-var-by openssl ${openssl}
+  '';
+  configureFlags = "--with-openssl=${openssl}";
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -a wraith $out/bin/wraith
+    ln -s wraith $out/bin/hub
+  '';
+
+  meta = {
+    description = "An IRC channel management bot written purely in C/C++";
+    longDescription = ''
+      Wraith is an IRC channel management bot written purely in C/C++. It has
+      been in development since late 2003. It is based on Eggdrop 1.6.12 but has
+      since evolved into something much different at its core. TCL and loadable
+      modules are currently not supported.
+
+      Maintainer's Notes:
+      Copy the binary out of the store before running it with the -C option to
+      configure it. See https://github.com/wraith/wraith/wiki/GettingStarted .
+
+      The binary will not run when moved onto non-NixOS systems; use patchelf
+      to fix its runtime dependenices.
+    '';
+    homepage = http://wraith.botpack.net/;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ elitak ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/irc/wraith/dlopen.patch b/pkgs/applications/networking/irc/wraith/dlopen.patch
new file mode 100644
index 0000000000000..bfc854ef9e9c3
--- /dev/null
+++ b/pkgs/applications/networking/irc/wraith/dlopen.patch
@@ -0,0 +1,48 @@
+diff --git a/src/libcrypto.cc b/src/libcrypto.cc
+index 0339258..68746c8 100644
+--- a/src/libcrypto.cc
++++ b/src/libcrypto.cc
+@@ -95,17 +95,9 @@ int load_libcrypto() {
+   }
+ 
+   sdprintf("Loading libcrypto");
++  dlerror(); // Clear Errors
++  libcrypto_handle = dlopen("@openssl@/lib/libcrypto.so", RTLD_LAZY|RTLD_GLOBAL);
+ 
+-  bd::Array<bd::String> libs_list(bd::String("libcrypto.so." SHLIB_VERSION_NUMBER " libcrypto.so libcrypto.so.0.9.8 libcrypto.so.7 libcrypto.so.6").split(' '));
+-
+-  for (size_t i = 0; i < libs_list.length(); ++i) {
+-    dlerror(); // Clear Errors
+-    libcrypto_handle = dlopen(bd::String(libs_list[i]).c_str(), RTLD_LAZY|RTLD_GLOBAL);
+-    if (libcrypto_handle) {
+-      sdprintf("Found libcrypto: %s", bd::String(libs_list[i]).c_str());
+-      break;
+-    }
+-  }
+   if (!libcrypto_handle) {
+     fprintf(stderr, STR("Unable to find libcrypto\n"));
+     return(1);
+diff --git a/src/libssl.cc b/src/libssl.cc
+index b432c7b..8940998 100644
+--- a/src/libssl.cc
++++ b/src/libssl.cc
+@@ -68,17 +68,9 @@ int load_libssl() {
+   }
+ 
+   sdprintf("Loading libssl");
++  dlerror(); // Clear Errors
++  libssl_handle = dlopen("@openssl@/lib/libssl.so", RTLD_LAZY);
+ 
+-  bd::Array<bd::String> libs_list(bd::String("libssl.so." SHLIB_VERSION_NUMBER " libssl.so libssl.so.0.9.8 libssl.so.7 libssl.so.6").split(' '));
+-
+-  for (size_t i = 0; i < libs_list.length(); ++i) {
+-    dlerror(); // Clear Errors
+-    libssl_handle = dlopen(bd::String(libs_list[i]).c_str(), RTLD_LAZY);
+-    if (libssl_handle) {
+-      sdprintf("Found libssl: %s", bd::String(libs_list[i]).c_str());
+-      break;
+-    }
+-  }
+   if (!libssl_handle) {
+     fprintf(stderr, STR("Unable to find libssl\n"));
+     return(1);
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a5c5f812880e0..ba80b99b9dfe6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -16396,6 +16396,8 @@ in
 
   wmutils-core = callPackage ../tools/X11/wmutils-core { };
 
+  wraith = callPackage ../applications/networking/irc/wraith { };
+
   wxmupen64plus = callPackage ../misc/emulators/wxmupen64plus { };
 
   x2x = callPackage ../tools/X11/x2x { };