summaryrefslogtreecommitdiff
path: root/www/mod_python35/files/patch-mod_python35
diff options
context:
space:
mode:
authorOlli Hauer <ohauer@FreeBSD.org>2016-03-15 14:02:09 +0000
committerOlli Hauer <ohauer@FreeBSD.org>2016-03-15 14:02:09 +0000
commit8bb65ab90613bfbfa831b74c9c29a095054111ae (patch)
tree7e328f7c2a5736c30eb623bc957d8a9d98d0549f /www/mod_python35/files/patch-mod_python35
parentnet-mgmt/zabbix24 -> zabbix3 (diff)
- update patch to reflect latest commit on github
(there is no new release sinc 2013 ...) - do not alter httpd.conf, install a dedicated module file PR: 204793 Submitted by: SBB
Notes
Notes: svn path=/head/; revision=411163
Diffstat (limited to 'www/mod_python35/files/patch-mod_python35')
-rw-r--r--www/mod_python35/files/patch-mod_python35221
1 files changed, 148 insertions, 73 deletions
diff --git a/www/mod_python35/files/patch-mod_python35 b/www/mod_python35/files/patch-mod_python35
index 2abf9723a34d..afa3a6f61158 100644
--- a/www/mod_python35/files/patch-mod_python35
+++ b/www/mod_python35/files/patch-mod_python35
@@ -1,7 +1,6 @@
-diff -nru ./Doc/Makefile.in ./Doc/Makefile.in
---- ./Doc/Makefile.in 2013-11-12 04:21:34.000000000 +0100
-+++ ./Doc/Makefile.in 2014-04-15 17:27:39.000000000 +0200
-@@ -16,7 +16,7 @@
+--- Doc/Makefile.in.orig 2013-11-12 03:21:34 UTC
++++ Doc/Makefile.in
+@@ -16,7 +16,7 @@ ALLSPHINXOPTS = -b $(BUILDER) -d build/d
$(SPHINXOPTS) . build/$(BUILDER) $(SOURCES)
.PHONY: help checkout update build html htmlhelp latex text changes linkcheck \
@@ -10,7 +9,7 @@ diff -nru ./Doc/Makefile.in ./Doc/Makefile.in
autobuild-dev autobuild-stable
help:
-@@ -102,8 +102,6 @@
+@@ -102,8 +102,6 @@ coverage: build
htmlview: html
$(PYTHON) -c "import webbrowser; webbrowser.open('build/html/index.html')"
@@ -19,9 +18,18 @@ diff -nru ./Doc/Makefile.in ./Doc/Makefile.in
clean:
-rm -rf build/*
-rm -rf tools/sphinx
-diff -nru ./Doc/changes.rst ./Doc/changes.rst
---- ./Doc/changes.rst 2013-11-12 04:21:34.000000000 +0100
-+++ ./Doc/changes.rst 2014-04-15 17:27:39.000000000 +0200
+@@ -111,6 +109,9 @@ clean:
+ -rm -rf tools/jinja2
+ -rm -rf tools/docutils
+
++distclean: clean
++ rm -f Makefile
++
+ dist:
+ rm -rf dist
+ mkdir -p dist
+--- Doc/changes.rst.orig 2013-11-12 03:21:34 UTC
++++ Doc/changes.rst
@@ -5,22 +5,6 @@
Changes
*******
@@ -45,19 +53,17 @@ diff -nru ./Doc/changes.rst ./Doc/changes.rst
.. _changes_from_3_3_1:
Changes from version 3.3.1
-diff -nru ./NEWS ./NEWS
---- ./NEWS 2013-11-12 04:21:34.000000000 +0100
-+++ ./NEWS 2014-04-15 17:27:39.000000000 +0200
+--- NEWS.orig 2013-11-12 03:21:34 UTC
++++ NEWS
@@ -1,3 +1,5 @@
+Nov 13 2013 - 3.5.0 released
+
Oct 22 2013 - 3.4.1 released
Jan 29 2007 - 3.3.1 is being tagged
-diff -nru ./configure ./configure
---- ./configure 2013-11-12 04:21:34.000000000 +0100
-+++ ./configure 2014-04-15 17:27:39.000000000 +0200
-@@ -3340,11 +3340,7 @@
+--- configure.orig 2013-11-12 03:21:34 UTC
++++ configure
+@@ -3340,11 +3340,7 @@ PyMAJVERSION=`$PYTHON_BIN -c 'import sys
PyMINVERSION=`$PYTHON_BIN -c 'import sys; print(sys.version.split(".")[1])'`
{ $as_echo "$as_me:$LINENO: result: $PyVERSION" >&5
$as_echo "$PyVERSION" >&6; }
@@ -70,7 +76,7 @@ diff -nru ./configure ./configure
# make sure Python version is >= 2.6 for 2 and >= 3.3 for 3
if test "$PyMAJVERSION" -lt "2"; then
{ { $as_echo "$as_me:$LINENO: error: This version of mod_python only works with Python major version 2 or higher. The one you have seems to be $PyVERSION." >&5
-@@ -3395,8 +3391,7 @@
+@@ -3395,8 +3391,7 @@ if test "${PYTHONFRAMEWORKDIR}" = "no-fr
LDFLAGS="${LDFLAGS1} ${LDFLAGS2}"
if test "$PyMAJVERSION" -eq "3"; then
@@ -80,10 +86,9 @@ diff -nru ./configure ./configure
else
LDLIBS1="-lpython${PyVERSION}"
fi
-diff -nru ./configure.in ./configure.in
---- ./configure.in 2013-11-12 04:21:34.000000000 +0100
-+++ ./configure.in 2014-04-15 17:27:39.000000000 +0200
-@@ -171,9 +171,7 @@
+--- configure.in.orig 2013-11-12 03:21:34 UTC
++++ configure.in
+@@ -171,9 +171,7 @@ PyVERSION=`$PYTHON_BIN -c ['import sys;
PyMAJVERSION=`$PYTHON_BIN -c ['import sys; print(sys.version[:1])'`]
PyMINVERSION=`$PYTHON_BIN -c ['import sys; print(sys.version.split(".")[1])'`]
AC_MSG_RESULT($PyVERSION)
@@ -94,7 +99,7 @@ diff -nru ./configure.in ./configure.in
# make sure Python version is >= 2.6 for 2 and >= 3.3 for 3
if test "$PyMAJVERSION" -lt "2"; then
AC_MSG_ERROR([This version of mod_python only works with Python major version 2 or higher. The one you have seems to be $PyVERSION.])
-@@ -218,8 +216,7 @@
+@@ -218,8 +216,7 @@ if test "${PYTHONFRAMEWORKDIR}" = "no-fr
LDFLAGS="${LDFLAGS1} ${LDFLAGS2}"
if test "$PyMAJVERSION" -eq "3"; then
@@ -104,7 +109,7 @@ diff -nru ./configure.in ./configure.in
else
LDLIBS1="-lpython${PyVERSION}"
fi
-@@ -326,9 +323,9 @@
+@@ -326,9 +323,9 @@ if test "$LEX" && test -x "$LEX"; then
AC_MSG_CHECKING(flex version)
FlexVERSION=`$LEX --version | sed 's/version//g' | awk '/flex/ {print $2}'`
@@ -117,10 +122,9 @@ diff -nru ./configure.in ./configure.in
if test "$Flex_MAJOR" -eq "2" && test "$Flex_MINOR" -eq "5" && test "$Flex_PATCH" -ge "31"; then
AC_MSG_RESULT([$FlexVERSION. Good])
-diff -nru ./dist/version.sh ./dist/version.sh
---- ./dist/version.sh 2013-11-12 04:21:34.000000000 +0100
-+++ ./dist/version.sh 2014-04-15 17:27:39.000000000 +0200
-@@ -5,6 +5,17 @@
+--- dist/version.sh.orig 2013-11-12 03:21:34 UTC
++++ dist/version.sh
+@@ -5,6 +5,17 @@ MPV_PATH="`dirname $0`/../src/include/mp
MAJ=`awk '/MP_VERSION_MAJOR/ {print $3}' $MPV_PATH`
MIN=`awk '/MP_VERSION_MINOR/ {print $3}' $MPV_PATH`
PCH=`awk '/MP_VERSION_PATCH/ {print $3}' $MPV_PATH`
@@ -140,11 +144,9 @@ diff -nru ./dist/version.sh ./dist/version.sh
+fi
+
+echo $MAJ.$MIN.$PCH$GIT
-Only in ./: doc-html
-diff -nru ./lib/python/mod_python/Cookie.py ./lib/python/mod_python/Cookie.py
---- ./lib/python/mod_python/Cookie.py 2013-11-12 04:21:34.000000000 +0100
-+++ ./lib/python/mod_python/Cookie.py 2014-04-15 17:27:39.000000000 +0200
-@@ -59,7 +59,7 @@
+--- lib/python/mod_python/Cookie.py.orig 2013-11-12 03:21:34 UTC
++++ lib/python/mod_python/Cookie.py
+@@ -59,7 +59,7 @@ class metaCookie(type):
_valid_attr = (
"version", "path", "domain", "secure",
@@ -153,9 +155,36 @@ diff -nru ./lib/python/mod_python/Cookie.py ./lib/python/mod_python/Cookie.py
# RFC 2965
"commentURL", "discard", "port",
# Microsoft Extension
-diff -nru ./scripts/mod_python.in ./scripts/mod_python.in
---- ./scripts/mod_python.in 2013-11-12 04:21:34.000000000 +0100
-+++ ./scripts/mod_python.in 2014-04-15 17:27:39.000000000 +0200
+--- lib/python/mod_python/util.py.orig 2013-11-12 03:21:34 UTC
++++ lib/python/mod_python/util.py
+@@ -156,7 +156,7 @@ else:
+ disp_options = None
+
+ def __new__(self, value):
+- return bytes.__new__(self, value)
++ return bytes.__new__(self, value, "utf8")
+
+ def __init__(self, value):
+ self.value = value
+--- scripts/Makefile.in.orig 2013-11-12 03:21:34 UTC
++++ scripts/Makefile.in
+@@ -17,7 +17,7 @@
+ #
+
+ INSTALL=@INSTALL@
+-BINDIR=@prefix@/bin
++BINDIR=`dirname @PYTHON_BIN@`
+
+ clean:
+ rm -rf *~
+@@ -26,4 +26,5 @@ distclean: clean
+ rm -f Makefile
+
+ install:
++ $(INSTALL) -m 0755 -d $(DESTDIR)$(BINDIR)
+ $(INSTALL) -m 0755 mod_python $(DESTDIR)$(BINDIR)/mod_python
+--- scripts/mod_python.in.orig 2013-11-12 03:21:34 UTC
++++ scripts/mod_python.in
@@ -26,7 +26,7 @@
import sys
import os
@@ -165,7 +194,7 @@ diff -nru ./scripts/mod_python.in ./scripts/mod_python.in
import mod_python
from mod_python import httpdconf
-@@ -64,7 +64,7 @@
+@@ -64,7 +64,7 @@ def cmd_genconfig():
if len(args) != 1:
parser.error("Must specify <src>")
@@ -174,19 +203,9 @@ diff -nru ./scripts/mod_python.in ./scripts/mod_python.in
def cmd_create():
-@@ -105,7 +105,7 @@
-
- version = "\n"
- version += "mod_python: %s\n" % mod_python.mp_version
-- version += " %s\n\n" % repr(os.path.join(mod_python.version.LIBEXECDIR, "mod_python.so"))
-+ version += " %s\n\n" % repr(s.path.join(mod_python.version.LIBEXECDIR, "mod_python.so"))
- version += "python: %s\n" % ''.join(sys.version.splitlines())
- version += " %s\n\n" % repr(mod_python.version.PYTHON_BIN)
- version += "httpd: %s\n" % mod_python.version.HTTPD_VERSION
-diff -nru ./src/Makefile.in ./src/Makefile.in
---- ./src/Makefile.in 2013-11-12 04:21:34.000000000 +0100
-+++ ./src/Makefile.in 2014-04-15 17:27:39.000000000 +0200
-@@ -50,7 +50,7 @@
+--- src/Makefile.in.orig 2013-11-12 03:21:34 UTC
++++ src/Makefile.in
+@@ -50,11 +50,11 @@ psp_parser.c: psp_parser.l
dso: mod_python.so
@@ -195,7 +214,12 @@ diff -nru ./src/Makefile.in ./src/Makefile.in
@echo
@echo 'Building mod_python.so.'
@echo
-@@ -64,21 +64,17 @@
+- $(APXS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) -c $(SRCS) $(LDFLAGS) $(LDLIBS) @SOLARIS_HACKS@
++ $(APXS) $(INCLUDES) $(CPPFLAGS) $(APXSFLAGS) $(CFLAGS) -c $(SRCS) $(LDFLAGS) $(LDLIBS) @SOLARIS_HACKS@
+ @rm -f mod_python.so
+ @ln -s .libs/mod_python.so mod_python.so
+ clean:
+@@ -64,21 +64,17 @@ distclean: clean
rm -f Makefile .depend
version.c:
@@ -221,10 +245,36 @@ diff -nru ./src/Makefile.in ./src/Makefile.in
# SOLARIS_HACKS above
_eprintf.o:
ar -x `gcc -print-libgcc-file-name` _eprintf.o
-diff -nru ./src/include/mod_python.h ./src/include/mod_python.h
---- ./src/include/mod_python.h 2013-11-12 04:21:34.000000000 +0100
-+++ ./src/include/mod_python.h 2014-04-15 17:27:39.000000000 +0200
-@@ -156,7 +156,6 @@
+--- src/_apachemodule.c.orig 2013-11-12 03:21:34 UTC
++++ src/_apachemodule.c
+@@ -213,9 +213,11 @@ static PyObject *parse_qs(PyObject *self
+ cval = PyBytes_AS_STRING(val);
+
+ if (unicode) {
++ // The query string is supposed to be a valid UTF8 string
++ // https://url.spec.whatwg.org/#percent-encoded-bytes
+ PyObject *list, *ukey, *uval;
+- ukey = PyUnicode_DecodeLatin1(ckey, strlen(ckey), NULL);
+- uval = PyUnicode_DecodeLatin1(ckey, strlen(cval), NULL);
++ ukey = PyUnicode_DecodeUTF8(ckey, strlen(ckey), NULL);
++ uval = PyUnicode_DecodeUTF8(ckey, strlen(cval), NULL);
+ list = PyDict_GetItem(dict, ukey);
+ if (list) {
+ PyList_Append(list, uval);
+@@ -371,8 +373,8 @@ static PyObject *parse_qsl(PyObject *sel
+ PyObject *listitem = NULL;
+ if (unicode) {
+ PyObject *ukey, *uval;
+- ukey = PyUnicode_DecodeLatin1(ckey, strlen(ckey), NULL);
+- uval = PyUnicode_DecodeLatin1(cval, strlen(cval), NULL);
++ ukey = PyUnicode_DecodeUTF8(ckey, strlen(ckey), NULL);
++ uval = PyUnicode_DecodeUTF8(cval, strlen(cval), NULL);
+ listitem = Py_BuildValue("(O,O)", ukey, uval);
+ Py_DECREF(ukey);
+ Py_DECREF(uval);
+--- src/include/mod_python.h.orig 2013-11-12 03:21:34 UTC
++++ src/include/mod_python.h
+@@ -156,7 +156,6 @@ extern module AP_MODULE_DECLARE_DATA pyt
#define MUTEX_DIR "/tmp"
/* version stuff */
@@ -232,7 +282,7 @@ diff -nru ./src/include/mod_python.h ./src/include/mod_python.h
extern const int mp_version_major;
extern const int mp_version_minor;
extern const int mp_version_patch;
-@@ -267,7 +266,7 @@
+@@ -267,7 +266,7 @@ APR_DECLARE_OPTIONAL_FN(PyObject *, mp_g
if (PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 3 && \
PyUnicode_KIND(obj) == PyUnicode_1BYTE_KIND) { \
if (obj_is_borrowed) Py_INCREF(obj); /* so DECREF ok */ \
@@ -241,7 +291,7 @@ diff -nru ./src/include/mod_python.h ./src/include/mod_python.h
} else { \
PyObject *latin = PyUnicode_AsLatin1String(obj); \
if (latin) { \
-@@ -292,11 +291,11 @@
+@@ -292,11 +291,11 @@ static inline PyObject *MpObject_ReprAsB
PyObject *result;
PyObject *ucode = PyObject_Repr(o);
/* we can do this because repr() should never have non-ascii characters XXX (really?) */
@@ -256,10 +306,9 @@ diff -nru ./src/include/mod_python.h ./src/include/mod_python.h
Py_DECREF(ucode);
return result;
}
-diff -nru ./src/include/mod_python.h.in ./src/include/mod_python.h.in
---- ./src/include/mod_python.h.in 2013-11-12 04:21:34.000000000 +0100
-+++ ./src/include/mod_python.h.in 2014-04-15 17:27:39.000000000 +0200
-@@ -156,7 +156,6 @@
+--- src/include/mod_python.h.in.orig 2013-11-12 03:21:34 UTC
++++ src/include/mod_python.h.in
+@@ -156,7 +156,6 @@ extern module AP_MODULE_DECLARE_DATA pyt
#define MUTEX_DIR "@MUTEX_DIR@"
/* version stuff */
@@ -267,7 +316,7 @@ diff -nru ./src/include/mod_python.h.in ./src/include/mod_python.h.in
extern const int mp_version_major;
extern const int mp_version_minor;
extern const int mp_version_patch;
-@@ -267,7 +266,7 @@
+@@ -267,7 +266,7 @@ APR_DECLARE_OPTIONAL_FN(PyObject *, mp_g
if (PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 3 && \
PyUnicode_KIND(obj) == PyUnicode_1BYTE_KIND) { \
if (obj_is_borrowed) Py_INCREF(obj); /* so DECREF ok */ \
@@ -276,7 +325,7 @@ diff -nru ./src/include/mod_python.h.in ./src/include/mod_python.h.in
} else { \
PyObject *latin = PyUnicode_AsLatin1String(obj); \
if (latin) { \
-@@ -292,11 +291,11 @@
+@@ -292,11 +291,11 @@ static inline PyObject *MpObject_ReprAsB
PyObject *result;
PyObject *ucode = PyObject_Repr(o);
/* we can do this because repr() should never have non-ascii characters XXX (really?) */
@@ -291,19 +340,17 @@ diff -nru ./src/include/mod_python.h.in ./src/include/mod_python.h.in
Py_DECREF(ucode);
return result;
}
-diff -nru ./src/include/mp_version.h ./src/include/mp_version.h
---- ./src/include/mp_version.h 2013-11-12 04:21:34.000000000 +0100
-+++ ./src/include/mp_version.h 2014-04-15 17:27:39.000000000 +0200
+--- src/include/mp_version.h.orig 2013-11-12 03:21:34 UTC
++++ src/include/mp_version.h
@@ -10,5 +10,3 @@
#define MP_VERSION_MINOR 5
#define MP_VERSION_PATCH 0
-#define STR(x) #x
-#define MP_VERSION_STRING(maj, min, p) STR(maj) "." STR(min) "." STR(p)
-diff -nru ./src/mod_python.c ./src/mod_python.c
---- ./src/mod_python.c 2013-11-12 04:21:34.000000000 +0100
-+++ ./src/mod_python.c 2014-04-15 17:27:39.000000000 +0200
-@@ -748,10 +748,10 @@
+--- src/mod_python.c.orig 2013-11-12 03:21:34 UTC
++++ src/mod_python.c
+@@ -748,10 +748,10 @@ static int python_init(apr_pool_t *p, ap
py_compile_version, py_dynamic_version);
ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
"python_init: Python executable found '%s'.",
@@ -316,7 +363,27 @@ diff -nru ./src/mod_python.c ./src/mod_python.c
}
/* Python version */
-@@ -1795,7 +1795,7 @@
+@@ -772,8 +772,18 @@ static int python_init(apr_pool_t *p, ap
+ {
+ initialized = 1;
+
+- /* initialze the interpreter */
++ /* disable user site directories */
++ Py_NoUserSiteDirectory = 1;
++
++ /* Initialze the main interpreter. We do not want site.py to
++ * be imported because as of Python 2.7.9 it would cause a
++ * circular dependency related to _locale which breaks
++ * graceful restart so we set Py_NoSiteFlag to 1 just for this
++ * one time. (https://github.com/grisha/mod_python/issues/46)
++ */
++ Py_NoSiteFlag = 1;
+ Py_Initialize();
++ Py_NoSiteFlag = 0;
+
+ #ifdef WITH_THREAD
+ /* create and acquire the interpreter lock */
+@@ -1795,7 +1805,7 @@ static apr_status_t python_filter(int is
}
/* are we in transparent mode? transparent mode is on after an error,
@@ -325,10 +392,18 @@ diff -nru ./src/mod_python.c ./src/mod_python.c
if (ctx->transparent) {
if (is_input)
return ap_get_brigade(f->next, bb, mode, block, readbytes);
-diff -nru ./src/requestobject.c ./src/requestobject.c
---- ./src/requestobject.c 2013-11-12 04:21:34.000000000 +0100
-+++ ./src/requestobject.c 2014-04-15 17:27:39.000000000 +0200
-@@ -1967,6 +1967,10 @@
+@@ -2646,7 +2656,7 @@ static void PythonChildInitHandler(apr_p
+ * problems as well. Thus disable cleanup of Python when
+ * child processes are being shutdown. (MODPYTHON-109)
+ *
+- apr_pool_cleanup_register(p, NULL, python_finalize, apr_pool_cleanup_null);
++ * apr_pool_cleanup_register(p, NULL, python_finalize, apr_pool_cleanup_null);
+ */
+
+ /*
+--- src/requestobject.c.orig 2013-11-12 03:21:34 UTC
++++ src/requestobject.c
+@@ -1967,6 +1967,10 @@ static int setreq_recmbr(requestobject *
return 0;
}
else if (strcmp(name, "args") == 0) {