Merge pull request #14545 from elitak/wraith

wraith: init at 1.4.6
This commit is contained in:
Arseniy Seroka 2016-04-09 09:39:13 +03:00
commit 7da3bba260
3 changed files with 96 additions and 0 deletions

View File

@ -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;
};
}

View File

@ -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);

View File

@ -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 { };