From 827d2b180e6b3db89c0b2492d10a6ff8cdca31a8 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 6 Sep 2006 15:48:35 +0000 Subject: * mod_python 3.2.10. Removed the patch to get it to work with Apache 2.2. svn path=/nixpkgs/trunk/; revision=6473 --- .../http/apache-modules/mod_python/default.nix | 8 +- .../apache-modules/mod_python/jg-20060204-1.patch | 265 --------------------- 2 files changed, 4 insertions(+), 269 deletions(-) delete mode 100644 pkgs/servers/http/apache-modules/mod_python/jg-20060204-1.patch (limited to 'pkgs/servers/http/apache-modules') diff --git a/pkgs/servers/http/apache-modules/mod_python/default.nix b/pkgs/servers/http/apache-modules/mod_python/default.nix index 09a5135dd97b..16d247fe8dc6 100644 --- a/pkgs/servers/http/apache-modules/mod_python/default.nix +++ b/pkgs/servers/http/apache-modules/mod_python/default.nix @@ -1,16 +1,16 @@ {stdenv, fetchurl, apacheHttpd, python}: stdenv.mkDerivation { - name = "mod_python-3.2.8"; + name = "mod_python-3.2.10"; builder = ./builder.sh; src = fetchurl { - url = http://apache.nedmirror.nl/httpd/modpython/mod_python-3.2.8.tgz; - md5 = "d03452979a6a334f73cc2b95b39db331"; + url = http://apache.surfnet.nl/httpd/modpython/mod_python-3.2.10.tgz; + md5 = "cc6439f546a6e70cfff7ca51b8c62541"; }; - patches = [./install.patch ./jg-20060204-1.patch]; + patches = [./install.patch]; inherit apacheHttpd; buildInputs = [apacheHttpd python]; diff --git a/pkgs/servers/http/apache-modules/mod_python/jg-20060204-1.patch b/pkgs/servers/http/apache-modules/mod_python/jg-20060204-1.patch deleted file mode 100644 index cf3c65e9407a..000000000000 --- a/pkgs/servers/http/apache-modules/mod_python/jg-20060204-1.patch +++ /dev/null @@ -1,265 +0,0 @@ -diff -rc mod_python-3.2.8-orig/src/connobject.c mod_python-3.2.8/src/connobject.c -*** mod_python-3.2.8-orig/src/connobject.c 2006-02-02 22:30:55.000000000 +0100 ---- mod_python-3.2.8/src/connobject.c 2006-02-28 11:18:01.000000000 +0100 -*************** -*** 319,332 **** - { - PyObject *addrobj = makeipaddr(addr); - PyObject *ret = NULL; - if (addrobj) { - apr_port_t port; -! if(apr_sockaddr_port_get(&port, addr)==APR_SUCCESS) { -! ret = Py_BuildValue("Oi", addrobj, port ); -! } -! else { -! PyErr_SetString(PyExc_SystemError,"apr_sockaddr_port_get failure"); -! } - Py_DECREF(addrobj); - } - return ret; ---- 319,332 ---- - { - PyObject *addrobj = makeipaddr(addr); - PyObject *ret = NULL; -+ -+ /* apr_sockaddr_port_get was deprecated and removed in apr 1.x -+ * Access the port directly instead -+ */ - if (addrobj) { - apr_port_t port; -! port = addr->port; -! ret = Py_BuildValue("Oi", addrobj, port ); - Py_DECREF(addrobj); - } - return ret; -diff -rc mod_python-3.2.8-orig/src/include/mod_python.h.in mod_python-3.2.8/src/include/mod_python.h.in -*** mod_python-3.2.8-orig/src/include/mod_python.h.in 2005-09-19 19:51:03.000000000 +0200 ---- mod_python-3.2.8/src/include/mod_python.h.in 2006-02-28 11:18:01.000000000 +0100 -*************** -*** 179,184 **** ---- 179,219 ---- - - #endif /* !Mp_MOD_PYTHON_H */ - -+ #ifndef APR_STATUS_IS_SUCCESS -+ /* APR_STATUS_IS_SUCCESS is defined in apr_errno.h for apr versions < 1.x. -+ * It was dropped in the current apr version 1.x, which causes a problem -+ * for mod_python connobject.c and filterobject.c in Apache 2.2. -+ * Occurrences of APR_STATUS_IS_SUCCESS in mod_python should be replaced -+ * with something like: -+ * if (s != APR_SUCCESS) -+ * //error handling code -+ * -+ * Their is some uncertainty if the APR_OS_START_SYSERR part of -+ * the test is significant in Win32 (it likely is not), but to be safe -+ * APR_STATUS_IS_SUCCESS is reproduced here for use with Apache 2.2. -+ * The APR_STATUS_IS_SUCCESS should be considered as deprecated. -+ */ -+ -+ #if defined(OS2) && !defined(DOXYGEN) -+ #define APR_STATUS_IS_SUCCESS(s) ((s) == APR_SUCCESS \ -+ || (s) == APR_OS_START_SYSERR + NO_ERROR) -+ -+ #elif defined(WIN32) && !defined(DOXYGEN) /* !defined(OS2) */ -+ #define APR_STATUS_IS_SUCCESS(s) ((s) == APR_SUCCESS \ -+ || (s) == APR_OS_START_SYSERR + ERROR_SUCCESS) -+ -+ #elif defined(NETWARE) && !defined(DOXYGEN) /* !defined(OS2) && !defined(WIN32) */ -+ #define APR_STATUS_IS_SUCCESS(s) ((s) == APR_SUCCESS) -+ -+ #else /* !defined(NETWARE) && !defined(OS2) && !defined(WIN32) */ -+ -+ /** no error */ -+ #define APR_STATUS_IS_SUCCESS(s) ((s) == APR_SUCCESS) -+ #endif -+ -+ #endif /* !APR_STATUS_IS_SUCCESS */ -+ -+ - /* - # makes emacs go into C mode - ### Local Variables: -diff -rc mod_python-3.2.8-orig/test/httpdconf.py mod_python-3.2.8/test/httpdconf.py -*** mod_python-3.2.8-orig/test/httpdconf.py 2005-09-13 22:35:57.000000000 +0200 ---- mod_python-3.2.8/test/httpdconf.py 2006-02-28 11:18:01.000000000 +0100 -*************** -*** 37,44 **** - class Container: - - def __init__(self, *args): -! self.args = args - self.indent = 0 - - def __str__(self): - ---- 37,47 ---- - class Container: - - def __init__(self, *args): -! self.args = list(args) - self.indent = 0 -+ -+ def append(self, value): -+ self.args.append(value) - - def __str__(self): - -*************** -*** 80,85 **** ---- 83,98 ---- - def __init__(self, val): - Directive.__init__(self, self.__class__.__name__, val) - -+ class AuthBasicAuthoritative(Directive): -+ # New in Apache 2.2 -+ def __init__(self, val): -+ Directive.__init__(self, self.__class__.__name__, val) -+ -+ class AuthBasicProvider(Directive): -+ # New in Apache 2.2 -+ def __init__(self, val): -+ Directive.__init__(self, self.__class__.__name__, val) -+ - class AuthType(Directive): - def __init__(self, val): - Directive.__init__(self, self.__class__.__name__, val) -*************** -*** 112,117 **** ---- 125,134 ---- - def __init__(self, dir, *args): - ContainerTag.__init__(self, self.__class__.__name__, dir, args) - -+ class KeepAliveTimeout(Directive): -+ def __init__(self, val): -+ Directive.__init__(self, self.__class__.__name__, val) -+ - class Listen(Directive): - def __init__(self, val): - Directive.__init__(self, self.__class__.__name__, val) -diff -rc mod_python-3.2.8-orig/test/test.py mod_python-3.2.8/test/test.py -*** mod_python-3.2.8-orig/test/test.py 2006-02-19 20:51:17.000000000 +0100 ---- mod_python-3.2.8/test/test.py 2006-02-28 11:18:01.000000000 +0100 -*************** -*** 220,225 **** ---- 220,251 ---- - s = '"%s"' % s - return s - -+ def get_apache_version(): -+ -+ print "Checking Apache version...." -+ httpd = quoteIfSpace(HTTPD) -+ cmd = '%s -v' % (httpd) -+ (stdin,stdout) = os.popen2(cmd) -+ -+ version_str = None -+ for line in stdout: -+ if line.startswith('Server version'): -+ version_str = line.strip() -+ break -+ -+ if version_str: -+ version_str = version_str.split('/')[1] -+ major,minor,patch = version_str.split('.',3) -+ version = '%s.%s' % (major,minor) -+ else: -+ -+ print "Can't determine Apache version. Assuming 2.0" -+ version = '2.0' -+ print version -+ return version -+ -+ APACHE_VERSION = get_apache_version() -+ - class HttpdCtrl: - # a mixin providing ways to control httpd - -*************** -*** 289,302 **** - Listen(PORT), - PythonOption('PythonOptionTest sample_value'), - DocumentRoot(DOCUMENT_ROOT), -! LoadModule("python_module %s" % quoteIfSpace(MOD_PYTHON_SO)), -! IfModule("!mod_auth.c", - LoadModule("auth_module %s" % - quoteIfSpace(os.path.join(modpath, "mod_auth.so"))))) - - f = open(CONFIG, "w") - f.write(str(s)) -- f.write("\n# --APPENDED-- \n\n"+append) - f.close() - - def startHttpd(self,extra=''): ---- 315,340 ---- - Listen(PORT), - PythonOption('PythonOptionTest sample_value'), - DocumentRoot(DOCUMENT_ROOT), -! LoadModule("python_module %s" % quoteIfSpace(MOD_PYTHON_SO))) -! -! if APACHE_VERSION == '2.2': -! # mod_auth has been split into mod_auth_basic and some other modules -! s.append(IfModule("!mod_auth_basic.c", -! LoadModule("auth_basic_module %s" % -! quoteIfSpace(os.path.join(modpath, "mod_auth_basic.so"))))) -! -! # Default KeepAliveTimeout is 5 for apache 2.2, but 15 in apache 2.0 -! # Explicitly set the value so it's the same as 2.0 -! s.append(KeepAliveTimeout("15")) -! else: -! s.append(IfModule("!mod_auth.c", - LoadModule("auth_module %s" % - quoteIfSpace(os.path.join(modpath, "mod_auth.so"))))) - -+ s.append("\n# --APPENDED-- \n\n"+append) -+ - f = open(CONFIG, "w") - f.write(str(s)) - f.close() - - def startHttpd(self,extra=''): -*************** -*** 595,601 **** - - def test_req_requires_conf(self): - -! c = VirtualHost("*", - ServerName("test_req_requires"), - DocumentRoot(DOCUMENT_ROOT), - Directory(DOCUMENT_ROOT, ---- 633,658 ---- - - def test_req_requires_conf(self): - -! if APACHE_VERSION == '2.2': -! # Apache 2.2 needs AuthBasicAuthoritative Off -! # This is necessary when combining mod_auth_basic with third-party -! # modules that are not configured with the AuthBasicProvider -! # directive. -! c = VirtualHost("*", -! ServerName("test_req_requires"), -! DocumentRoot(DOCUMENT_ROOT), -! Directory(DOCUMENT_ROOT, -! SetHandler("mod_python"), -! AuthName("blah"), -! AuthType("basic"), -! Require("valid-user"), -! AuthBasicAuthoritative("Off"), -! PythonAuthenHandler("tests::req_requires"), -! PythonDebug("On"))) -! -! else: -! # This configuration is suitable for Apache 2.0 -! c = VirtualHost("*", - ServerName("test_req_requires"), - DocumentRoot(DOCUMENT_ROOT), - Directory(DOCUMENT_ROOT, -*************** -*** 605,610 **** ---- 662,668 ---- - Require("valid-user"), - PythonAuthenHandler("tests::req_requires"), - PythonDebug("On"))) -+ - return str(c) - - def test_req_requires(self): -- cgit 1.4.1