From 3fc397461ae2edbb40b249d1f08fc2e92427c6f8 Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri, 23 Nov 2007 13:09:22 +0000
Subject: [PATCH] * Work around an impurity in APR: don't detect the epoll()
 system   call, because then an Apache built on a 2.6 kernel won't work   on
 2.4 kernel.  In fact Apache will get into a loop segfaulting.

svn path=/nixpkgs/trunk/; revision=9780
---
 pkgs/servers/http/apache-httpd/default.nix | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/pkgs/servers/http/apache-httpd/default.nix b/pkgs/servers/http/apache-httpd/default.nix
index 2f33b4d497f3..92a442728d8a 100644
--- a/pkgs/servers/http/apache-httpd/default.nix
+++ b/pkgs/servers/http/apache-httpd/default.nix
@@ -21,6 +21,13 @@ stdenv.mkDerivation {
   openssl = if sslSupport then openssl else null;
   db4 = if db4Support then db4 else null;
 
+  # For now, disable detection of epoll to ensure that Apache still
+  # runs on Linux 2.4 kernels.  Once we've dropped support for 2.4 in
+  # Nixpkgs, this can go.  In general, it's a problem that APR
+  # detects characteristics of the build system's kernel to decide
+  # what to use at runtime, since it's impure.
+  apr_cv_epoll = "no";
+  
   meta = {
     description = "Apache HTTPD, the world's most popular web server";
   };