about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/http/myserver
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/http/myserver')
-rw-r--r--nixpkgs/pkgs/servers/http/myserver/default.nix52
-rw-r--r--nixpkgs/pkgs/servers/http/myserver/disable-dns-lookup-in-chroot.patch12
2 files changed, 64 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/http/myserver/default.nix b/nixpkgs/pkgs/servers/http/myserver/default.nix
new file mode 100644
index 000000000000..b18e1ea162f0
--- /dev/null
+++ b/nixpkgs/pkgs/servers/http/myserver/default.nix
@@ -0,0 +1,52 @@
+{ lib, fetchurl, stdenv, libgcrypt, libevent, libidn, gnutls
+, libxml2, zlib, guile, texinfo, cppunit, killall }:
+
+let version = "0.11"; in
+
+stdenv.mkDerivation rec {
+  name = "myserver-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnu/myserver/${version}/${name}.tar.xz";
+    sha256 = "02y3vv4hxpy5h710y79s8ipzshhc370gbz1wm85x0lnq5nqxj2ax";
+  };
+
+  patches =
+    [ ./disable-dns-lookup-in-chroot.patch ];
+
+  buildInputs = [
+    libgcrypt libevent libidn gnutls libxml2 zlib guile texinfo
+  ];
+
+  checkInputs = [ cppunit ];
+
+  makeFlags = [ "V=1" ];
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  # On GNU/Linux the `test_suite' process sometimes stays around, so
+  # forcefully terminate it.
+  postCheck = "${killall}/bin/killall test_suite || true";
+
+  meta = {
+    description = "GNU MyServer, a powerful and easy to configure web server";
+
+    longDescription = ''
+      GNU MyServer is a powerful and easy to configure web server.  Its
+      multi-threaded architecture makes it extremely scalable and usable in
+      large scale sites as well as in small networks, it has a lot of
+      built-in features.  Share your files in minutes!
+    '';
+
+    homepage = https://www.gnu.org/software/myserver/;
+
+    license = lib.licenses.gpl3Plus;
+
+    # libevent fails to build on Cygwin and Guile has troubles on Darwin.
+    platforms = lib.platforms.gnu ++ lib.platforms.linux;
+
+    broken = true; # needs patch for gets()
+  };
+}
diff --git a/nixpkgs/pkgs/servers/http/myserver/disable-dns-lookup-in-chroot.patch b/nixpkgs/pkgs/servers/http/myserver/disable-dns-lookup-in-chroot.patch
new file mode 100644
index 000000000000..31b24915c4da
--- /dev/null
+++ b/nixpkgs/pkgs/servers/http/myserver/disable-dns-lookup-in-chroot.patch
@@ -0,0 +1,12 @@
+Disable this test because it attempts to do a DNS lookup, which fails
+in a chroot.
+
+--- myserver-0.10/tests/test_socket.cpp	2010-10-19 00:12:59.000000000 +0200
++++ myserver-0.10/tests/test_socket.cpp	2010-10-19 00:13:07.000000000 +0200
+@@ -56,7 +56,6 @@ class TestSocket : public CppUnit::TestF
+ 
+   CPPUNIT_TEST (testGethostname);
+   CPPUNIT_TEST (testRecv);
+-  CPPUNIT_TEST (testGetLocalIPsList);
+ 
+   CPPUNIT_TEST_SUITE_END ();