prepare for httpd 2.4.x
This commit is contained in:
parent
cd44df7f05
commit
c7d01a6e56
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
mod_wsgi-3.2.tar.gz
|
||||
/mod_wsgi-3.3.tar.gz
|
||||
/mod_wsgi-?.?
|
||||
|
||||
192
mod_wsgi-3.3-httpd24.patch
Normal file
192
mod_wsgi-3.3-httpd24.patch
Normal file
@ -0,0 +1,192 @@
|
||||
|
||||
http://code.google.com/p/modwsgi/source/detail?r=8906fb52b6b23455320c848216f6120c979e57f5
|
||||
http://code.google.com/p/modwsgi/source/detail?r=25deb4b94536c96d63505b2a6d4dfb5be1b38195
|
||||
|
||||
diff -r 21f4dac5959a -r 8906fb52b6b2 mod_wsgi/mod_wsgi.c
|
||||
--- mod_wsgi-3.3/mod_wsgi.c.httpd24
|
||||
+++ mod_wsgi-3.3/mod_wsgi.c
|
||||
@@ -193,6 +193,9 @@ static PyTypeObject Auth_Type;
|
||||
#endif
|
||||
#if AP_MODULE_MAGIC_AT_LEAST(20060110,0)
|
||||
#define MOD_WSGI_WITH_AUTHZ_PROVIDER 1
|
||||
+#if AP_MODULE_MAGIC_AT_LEAST(20100919,0)
|
||||
+#define MOD_WSGI_WITH_AUTHZ_PROVIDER_PARSED 1
|
||||
+#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -5637,7 +5640,7 @@ static void wsgi_python_version(void)
|
||||
}
|
||||
}
|
||||
|
||||
-static apr_status_t wsgi_python_term()
|
||||
+static apr_status_t wsgi_python_term(void)
|
||||
{
|
||||
PyInterpreterState *interp = NULL;
|
||||
PyThreadState *tstate = NULL;
|
||||
@@ -7851,6 +7854,7 @@ static const char *wsgi_set_auth_group_s
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+#if !defined(MOD_WSGI_WITH_AUTHN_PROVIDER)
|
||||
static const char *wsgi_set_user_authoritative(cmd_parms *cmd, void *mconfig,
|
||||
const char *f)
|
||||
{
|
||||
@@ -7866,6 +7870,7 @@ static const char *wsgi_set_user_authori
|
||||
|
||||
return NULL;
|
||||
}
|
||||
+#endif
|
||||
|
||||
static const char *wsgi_set_group_authoritative(cmd_parms *cmd, void *mconfig,
|
||||
const char *f)
|
||||
@@ -10092,6 +10097,17 @@ static void wsgi_process_socket(apr_pool
|
||||
}
|
||||
apr_sockaddr_ip_get(&c->local_ip, c->local_addr);
|
||||
|
||||
+#if AP_MODULE_MAGIC_AT_LEAST(20111130,0)
|
||||
+ if ((rv = apr_socket_addr_get(&c->client_addr, APR_REMOTE, sock))
|
||||
+ != APR_SUCCESS) {
|
||||
+ ap_log_error(APLOG_MARK, APLOG_INFO, rv, wsgi_server,
|
||||
+ "mod_wsgi (pid=%d): Failed call "
|
||||
+ "apr_socket_addr_get(APR_REMOTE).", getpid());
|
||||
+ apr_socket_close(sock);
|
||||
+ return;
|
||||
+ }
|
||||
+ apr_sockaddr_ip_get(&c->client_ip, c->client_addr);
|
||||
+#else
|
||||
if ((rv = apr_socket_addr_get(&c->remote_addr, APR_REMOTE, sock))
|
||||
!= APR_SUCCESS) {
|
||||
ap_log_error(APLOG_MARK, WSGI_LOG_INFO(rv), wsgi_server,
|
||||
@@ -10101,6 +10117,7 @@ static void wsgi_process_socket(apr_pool
|
||||
return;
|
||||
}
|
||||
apr_sockaddr_ip_get(&c->remote_ip, c->remote_addr);
|
||||
+#endif
|
||||
|
||||
c->base_server = daemon->group->server;
|
||||
|
||||
@@ -10183,7 +10200,7 @@ static apr_status_t wsgi_worker_acquire(
|
||||
}
|
||||
}
|
||||
|
||||
-static apr_status_t wsgi_worker_release()
|
||||
+static apr_status_t wsgi_worker_release(void)
|
||||
{
|
||||
WSGIThreadStack *stack = wsgi_worker_stack;
|
||||
|
||||
@@ -10232,7 +10249,7 @@ static apr_status_t wsgi_worker_release(
|
||||
}
|
||||
}
|
||||
|
||||
-static apr_status_t wsgi_worker_shutdown()
|
||||
+static apr_status_t wsgi_worker_shutdown(void)
|
||||
{
|
||||
int i;
|
||||
apr_status_t rv;
|
||||
@@ -12739,8 +12756,13 @@ static int wsgi_hook_daemon_handler(conn
|
||||
* file for the host.
|
||||
*/
|
||||
|
||||
+#if AP_MODULE_MAGIC_AT_LEAST(20111130,0)
|
||||
+ r->connection->client_ip = (char *)apr_table_get(r->subprocess_env,
|
||||
+ "REMOTE_ADDR");
|
||||
+#else
|
||||
r->connection->remote_ip = (char *)apr_table_get(r->subprocess_env,
|
||||
"REMOTE_ADDR");
|
||||
+#endif
|
||||
|
||||
key = apr_psprintf(p, "%s|%s",
|
||||
apr_table_get(r->subprocess_env,
|
||||
@@ -13259,6 +13281,18 @@ static PyObject *Auth_environ(AuthObject
|
||||
Py_DECREF(object);
|
||||
}
|
||||
|
||||
+#if AP_MODULE_MAGIC_AT_LEAST(20111130,0)
|
||||
+ if (r->useragent_ip) {
|
||||
+ value = r->useragent_ip;
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ object = PyUnicode_DecodeLatin1(value, strlen(value), NULL);
|
||||
+#else
|
||||
+ object = PyString_FromString(value);
|
||||
+#endif
|
||||
+ PyDict_SetItemString(vars, "REMOTE_ADDR", object);
|
||||
+ Py_DECREF(object);
|
||||
+ }
|
||||
+#else
|
||||
if (c->remote_ip) {
|
||||
value = c->remote_ip;
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
@@ -13269,6 +13303,7 @@ static PyObject *Auth_environ(AuthObject
|
||||
PyDict_SetItemString(vars, "REMOTE_ADDR", object);
|
||||
Py_DECREF(object);
|
||||
}
|
||||
+#endif
|
||||
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
value = ap_document_root(r);
|
||||
@@ -13292,6 +13327,17 @@ static PyObject *Auth_environ(AuthObject
|
||||
Py_DECREF(object);
|
||||
}
|
||||
|
||||
+#if AP_MODULE_MAGIC_AT_LEAST(20111130,0)
|
||||
+ rport = c->client_addr->port;
|
||||
+ value = apr_itoa(r->pool, rport);
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ object = PyUnicode_DecodeLatin1(value, strlen(value), NULL);
|
||||
+#else
|
||||
+ object = PyString_FromString(value);
|
||||
+#endif
|
||||
+ PyDict_SetItemString(vars, "REMOTE_PORT", object);
|
||||
+ Py_DECREF(object);
|
||||
+#else
|
||||
rport = c->remote_addr->port;
|
||||
value = apr_itoa(r->pool, rport);
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
@@ -13301,6 +13347,7 @@ static PyObject *Auth_environ(AuthObject
|
||||
#endif
|
||||
PyDict_SetItemString(vars, "REMOTE_PORT", object);
|
||||
Py_DECREF(object);
|
||||
+#endif
|
||||
|
||||
value = r->protocol;
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
@@ -14391,8 +14438,13 @@ static int wsgi_hook_access_checker(requ
|
||||
host = ap_get_remote_host(r->connection, r->per_dir_config,
|
||||
REMOTE_HOST, NULL);
|
||||
|
||||
+#if AP_MODULE_MAGIC_AT_LEAST(20111130,0)
|
||||
+ if (!host)
|
||||
+ host = r->useragent_ip;
|
||||
+#else
|
||||
if (!host)
|
||||
host = r->connection->remote_ip;
|
||||
+#endif
|
||||
|
||||
allow = wsgi_allow_access(r, config, host);
|
||||
|
||||
@@ -14645,8 +14697,14 @@ static int wsgi_hook_check_user_id(reque
|
||||
|
||||
#if defined(MOD_WSGI_WITH_AUTHZ_PROVIDER)
|
||||
|
||||
+#if MOD_WSGI_WITH_AUTHZ_PROVIDER_PARSED
|
||||
+static authz_status wsgi_check_authorization(request_rec *r,
|
||||
+ const char *require_args,
|
||||
+ const void *parsed_require_line)
|
||||
+#else
|
||||
static authz_status wsgi_check_authorization(request_rec *r,
|
||||
const char *require_args)
|
||||
+#endif
|
||||
{
|
||||
WSGIRequestConfig *config;
|
||||
|
||||
@@ -14695,6 +14753,9 @@ static authz_status wsgi_check_authoriza
|
||||
static const authz_provider wsgi_authz_provider =
|
||||
{
|
||||
&wsgi_check_authorization,
|
||||
+#if MOD_WSGI_WITH_AUTHZ_PROVIDER_PARSED
|
||||
+ NULL,
|
||||
+#endif
|
||||
};
|
||||
|
||||
#else
|
||||
@ -1,6 +1,10 @@
|
||||
|
||||
%{!?_httpd_apxs: %{expand: %%global _httpd_apxs %%{_sbindir}/apxs}}
|
||||
%{!?_httpd_mmn: %{expand: %%global _httpd_mmn %%(cat %{_includedir}/httpd/.mmn || echo missing-httpd-devel)}}
|
||||
|
||||
Name: mod_wsgi
|
||||
Version: 3.3
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Summary: A WSGI interface for Python web applications in Apache
|
||||
|
||||
Group: System Environment/Libraries
|
||||
@ -8,10 +12,12 @@ License: ASL 2.0
|
||||
URL: http://modwsgi.org
|
||||
Source0: http://modwsgi.googlecode.com/files/%{name}-%{version}.tar.gz
|
||||
Source1: wsgi.conf
|
||||
Patch0: mod_wsgi-3.3-httpd24.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
BuildRequires: httpd-devel
|
||||
BuildRequires: python-devel
|
||||
Requires: httpd-mmn = %{_httpd_mmn}
|
||||
|
||||
%description
|
||||
The mod_wsgi adapter is an Apache module that provides a WSGI compliant
|
||||
@ -23,10 +29,10 @@ existing WSGI adapters for mod_python or CGI.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%patch0 -p1 -b .httpd24
|
||||
|
||||
%build
|
||||
%configure --enable-shared
|
||||
%configure --enable-shared --with-apxs=%{_httpd_apxs}
|
||||
make LDFLAGS="-L%{_libdir}" %{?_smp_mflags}
|
||||
|
||||
|
||||
@ -50,6 +56,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Mar 13 2012 Joe Orton <jorton@redhat.com> - 3.3-3
|
||||
- prepare for httpd 2.4.x
|
||||
|
||||
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user