diff options
Diffstat (limited to 'pkgs/applications/networking')
-rw-r--r-- | pkgs/applications/networking/irc/wraith/default.nix | 46 | ||||
-rw-r--r-- | pkgs/applications/networking/irc/wraith/dlopen.patch | 48 |
2 files changed, 94 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); |