summaryrefslogtreecommitdiff
path: root/www/mod_python35/files/patch-mod_python35
diff options
context:
space:
mode:
authorRene Ladan <rene@FreeBSD.org>2020-09-19 13:01:00 +0000
committerRene Ladan <rene@FreeBSD.org>2020-09-19 13:01:00 +0000
commitb2e5755eb8260645c1601d3b2f26c3298ff0e858 (patch)
tree28d1874e1dbd4cb62d6fbf7efe56d0063931b0ab /www/mod_python35/files/patch-mod_python35
parentdevel/chromium-gn: extend life to 2020-12-31 as it is a slave port of www/chr... (diff)
Remove expired ports:
2020-09-15 audio/abraca: Uses deprecated version of python 2020-09-15 audio/ardour5: Uses deprecated version of python 2020-09-15 audio/cplay: Uses deprecated version of python 2020-09-15 audio/cpp-xmms2: Uses deprecated version of python 2020-09-15 audio/p5-xmms2: Uses deprecated version of python 2020-09-15 biology/haplohseq: Uses deprecated version of python 2020-09-15 biology/tophat: Uses deprecated version of python 2020-09-15 chinese/ibus-array: Uses deprecated version of python 2020-09-15 comms/congruity: Uses deprecated version of python 2020-09-15 comms/libbtbb: Uses deprecated version of python 2020-09-15 comms/quisk: Uses deprecated version of python 2020-09-15 databases/mtools-mongodb: Uses deprecated version of python 2020-09-15 databases/mydbf2mysql: Uses deprecated version of python 2020-09-15 databases/ntdb: Uses deprecated version of python 2020-09-15 databases/pgloader: Uses deprecated version of python 2020-09-15 databases/pgtune: Uses deprecated version of python 2020-09-15 databases/postgresql-libpqxx3: Uses deprecated version of python 2020-09-15 databases/postgresql-libpqxx4: Uses deprecated version of python 2020-09-15 databases/py-sqlite3dbm: Uses deprecated version of python 2020-09-15 databases/pydbx: Uses deprecated version of python 2020-09-15 databases/pyspatialite: Uses deprecated version of python 2020-09-15 deskutils/ljcharm: Uses deprecated version of python 2020-09-15 deskutils/mat: Uses deprecated version of python 2020-09-15 devel/aap: Uses deprecated version of python 2020-09-15 devel/apr2: Uses deprecated version of python 2020-09-15 devel/bbfreeze-loader: Uses deprecated version of python 2020-09-15 devel/bicyclerepair: Uses deprecated version of python 2020-09-15 devel/bzrtools: Uses deprecated version of python 2020-09-15 devel/codeville: Uses deprecated version of python 2020-09-15 devel/cvs2svn: Uses deprecated version of python 2020-09-15 devel/cx_Freeze: Uses deprecated version of python 2020-09-15 devel/euca2ools: Uses deprecated version of python 2020-09-15 devel/evolution-gconf-tools: Uses deprecated version of python 2020-09-15 devel/git-bzr-ng: Uses deprecated version of python 2020-09-15 devel/git-cvs: Uses deprecated version of python 2020-09-15 devel/git-remote-hg: Uses deprecated version of python 2020-09-15 devel/grumpy: Uses deprecated version of python 2020-09-15 devel/hg-git: Uses deprecated version of python 2020-09-15 devel/libnxt: Uses deprecated version of python 2020-09-15 devel/libredblack: Uses deprecated version of python 2020-09-15 devel/llvm-cheri: Uses deprecated version of python 2020-09-15 devel/phpsh: Uses deprecated version of python 2020-09-15 devel/py-backports.shutil_which: Uses deprecated version of python 2020-09-15 devel/py-notify: Uses deprecated version of python 2020-09-15 devel/py-pybloomfiltermmap: Uses deprecated version of python 2020-09-15 devel/py-qserve: Uses deprecated version of python 2020-09-15 devel/py-subvertpy: Uses deprecated version of python 2020-09-15 devel/py_static_check: Uses deprecated version of python 2020-09-15 devel/pyst: Uses deprecated version of python 2020-09-15 devel/runsnakerun: Uses deprecated version of python 2020-09-15 devel/tailor: Uses deprecated version of python 2020-09-15 devel/uatraits: Uses deprecated version of python 2020-09-15 dns/nsec3walker: Uses deprecated version of python 2020-09-15 dns/sshfp: Uses deprecated version of python 2020-09-15 editors/medit: Uses deprecated version of python 2020-09-15 emulators/dynagen: Uses deprecated version of python 2020-09-15 emulators/wxmupen64plus: Uses deprecated version of python 2020-09-15 games/diameter: Uses deprecated version of python 2020-09-15 games/kiki: Uses deprecated version of python 2020-09-15 games/lightyears: Uses deprecated version of python 2020-09-15 games/outerspace: Uses deprecated version of python 2020-09-15 games/pachi-game-engine: Uses deprecated version of python 2020-09-15 graphics/caffe: Uses deprecated version of python 2020-09-15 graphics/cloudcompare: Uses deprecated version of python 2020-09-15 graphics/kudu: Uses deprecated version of python 2020-09-15 graphics/pecomato: Uses deprecated version of python 2020-09-15 graphics/py-editobj: Uses deprecated version of python 2020-09-15 graphics/py-mayavi: Uses deprecated version of python 2020-09-15 graphics/pymorph: Uses deprecated version of python 2020-09-15 graphics/tilecache: Uses deprecated version of python 2020-09-15 graphics/uniconvertor: Uses deprecated version of python 2020-09-15 japanese/mailman: Uses deprecated version of python 2020-09-15 java/eclipse-pydev: Uses deprecated version of python 2020-09-15 lang/cdent: Uses deprecated version of python 2020-09-15 lang/julia06: Uses deprecated version of python 2020-09-15 lang/julia07: Uses deprecated version of python 2020-09-15 lang/julia11: Uses deprecated version of python 2020-09-15 lang/tinypy: Uses deprecated version of python 2020-09-15 mail/cleanup-maildir: Uses deprecated version of python 2020-09-15 mail/courier-pythonfilter: Uses deprecated version of python 2020-09-15 mail/getmail: Uses deprecated version of python 2020-09-15 mail/muttils: Uses deprecated version of python 2020-09-15 mail/nohtml: Uses deprecated version of python 2020-09-15 mail/offlineimap: Uses deprecated version of python 2020-09-15 mail/openemm2015: Uses deprecated version of python 2020-09-15 math/blitz++: Uses deprecated version of python 2020-09-15 math/openfst: Uses deprecated version of python 2020-09-15 math/py-fpconst: Uses deprecated version of python 2020-09-15 misc/hb: Uses deprecated version of python 2020-09-15 misc/mtail: Uses deprecated version of python 2020-09-15 misc/wotsap: Uses deprecated version of python 2020-09-15 multimedia/freevo: Uses deprecated version of python 2020-09-15 multimedia/quodlibet: Uses deprecated version of python 2020-09-15 multimedia/tovid: Uses deprecated version of python 2020-09-15 net/ceph13: Uses deprecated version of python 2020-09-15 net/cloud-init-azure: Uses deprecated version of python 2020-09-15 net/exabgp: Uses deprecated version of python 2020-09-15 net/exaddos: Uses deprecated version of python 2020-09-15 net/fb: Uses deprecated version of python 2020-09-15 net/flent: Uses deprecated version of python 2020-09-15 net/flowgrep: Uses deprecated version of python 2020-09-15 net/googlecl: Uses deprecated version of python 2020-09-15 net/mininet: Uses deprecated version of python 2020-09-15 net/nfs-ganesha: Uses deprecated version of python 2020-09-15 net/opensips: Uses deprecated version of python 2020-09-15 net/py-python-ntlm: Uses deprecated version of python 2020-09-15 net/splatd: Uses deprecated version of python 2020-09-15 net-im/centerim-devel: Uses deprecated version of python 2020-09-15 net-im/fugu: Uses deprecated version of python 2020-09-15 net-im/proxy65: Uses deprecated version of python 2020-09-15 net-mgmt/crmsh: Uses deprecated version of python 2020-09-15 net-mgmt/librenms-agent: Uses deprecated version of python 2020-09-15 net-p2p/couchpotato: Uses deprecated version of python 2020-09-15 news/rawdog: Uses deprecated version of python 2020-09-15 ports-mgmt/portell: Uses deprecated version of python 2020-09-15 print/biblio-py: Uses deprecated version of python 2020-09-15 science/brian: Uses deprecated version of python 2020-09-15 science/paraview: Uses deprecated version of python 2020-09-15 security/arm: Uses deprecated version of python 2020-09-15 security/ismtp: Uses deprecated version of python 2020-09-15 security/py-halberd: Uses deprecated version of python 2020-09-15 security/switzerland: Uses deprecated version of python 2020-09-15 security/tsshbatch: Uses deprecated version of python 2020-09-15 shells/lshell: Uses deprecated version of python 2020-09-15 sysutils/abck: Uses deprecated version of python 2020-09-15 sysutils/condor: Uses deprecated version of python 2020-09-15 sysutils/farbot: Uses deprecated version of python 2020-09-15 sysutils/fusefs-wikipediafs: Uses deprecated version of python 2020-09-15 sysutils/heartbeat: Uses deprecated version of python 2020-09-15 sysutils/isomd5sum: Uses deprecated version of python 2020-09-15 sysutils/py-stdiff: Uses deprecated version of python 2020-09-15 sysutils/tren: Uses deprecated version of python 2020-09-15 textproc/doclifter: Uses deprecated version of python 2020-09-15 textproc/ibus-el: Uses deprecated version of python 2020-09-15 textproc/p5-WWW-Google-SiteMap: Deprecated upstream, see textproc/p5-Search-Sitemap 2020-09-15 textproc/plover: Uses deprecated version of python 2020-09-15 textproc/py-esmre: Uses deprecated version of python 2020-09-15 textproc/py-libxslt: Uses deprecated version of python 2020-09-15 textproc/py-pdfminer: Uses deprecated version of python 2020-09-15 textproc/translate-toolkit: Uses deprecated version of python 2020-09-15 www/bluefish: Uses deprecated version of python 2020-09-15 www/calendarserver: Uses deprecated version of python 2020-09-15 www/geeknote: Uses deprecated version of python 2020-09-15 www/go-appengine-sdk: Uses deprecated version of python 2020-09-15 www/google-appengine: Uses deprecated version of python 2020-09-15 www/libhpack: Uses deprecated version of python 2020-09-15 www/mkapachepw: Uses deprecated version of python 2020-09-15 www/mod_pagespeed: Uses deprecated version of python 2020-09-15 www/mod_python35: Uses deprecated version of python 2020-09-15 www/py-qp: Uses deprecated version of python 2020-09-15 www/py-url: Uses deprecated version of python 2020-09-15 www/pyblosxom: Uses deprecated version of python 2020-09-15 www/pyjamas: Uses deprecated version of python 2020-09-15 www/roundup: Uses deprecated version of python 2020-09-15 www/varnish-libvmod-awsrest: Uses deprecated version of python 2020-09-15 www/waccess: Uses deprecated version of python 2020-09-15 www/wadcomblog: Uses deprecated version of python 2020-09-15 www/webcheck: Uses deprecated version of python 2020-09-15 www/woof: Uses deprecated version of python 2020-09-15 x11-drivers/xf86-video-qxl: uses deprecated version of python 2020-09-15 x11-fm/twander: Uses deprecated version of python 2020-09-15 x11-wm/compizconfig-python: Uses deprecated version of python 2020-09-15 x11-wm/fvwm-crystal: Uses deprecated version of python
Notes
Notes: svn path=/head/; revision=548980
Diffstat (limited to 'www/mod_python35/files/patch-mod_python35')
-rw-r--r--www/mod_python35/files/patch-mod_python35416
1 files changed, 0 insertions, 416 deletions
diff --git a/www/mod_python35/files/patch-mod_python35 b/www/mod_python35/files/patch-mod_python35
deleted file mode 100644
index afa3a6f61158..000000000000
--- a/www/mod_python35/files/patch-mod_python35
+++ /dev/null
@@ -1,416 +0,0 @@
---- 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 \
-- suspicious coverage htmlview distclean clean dist check serve \
-+ suspicious coverage htmlview clean dist check serve \
- autobuild-dev autobuild-stable
-
- help:
-@@ -102,8 +102,6 @@ coverage: build
- htmlview: html
- $(PYTHON) -c "import webbrowser; webbrowser.open('build/html/index.html')"
-
--distclean: clean
--
- clean:
- -rm -rf build/*
- -rm -rf tools/sphinx
-@@ -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
- *******
-
--.. _changes_from_3_4_1:
--
--Changes from version 3.4.1
--==========================
--
--New Features
--------------
--
--* Support for Python 3.3
--
--Improvements
--------------
--
--* Simpler, faster and up-to-date with latest Python code for creating/maintaining interpreter and thread state.
--* A much faster WSGI implementation (start_response now implemented in C)
--
- .. _changes_from_3_3_1:
-
- Changes from version 3.3.1
---- 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
---- 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; }
--if test -z "$PyMAJVERSION"; then
-- { { $as_echo "$as_me:$LINENO: error: Unable to get Python version - is your Python working?" >&5
--$as_echo "$as_me: error: Unable to get Python version - is your Python working?" >&2;}
-- { (exit 1); exit 1; }; }
--fi
-+
- # 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 @@ if test "${PYTHONFRAMEWORKDIR}" = "no-fr
- LDFLAGS="${LDFLAGS1} ${LDFLAGS2}"
-
- if test "$PyMAJVERSION" -eq "3"; then
-- PyLDVERSION=`$PYTHON_BIN -c 'from distutils import sysconfig; print(sysconfig.get_config_var("LDVERSION"))'`
-- LDLIBS1="-lpython${PyLDVERSION}"
-+ LDLIBS1="-lpython${PyMAJVERSION}"
- else
- LDLIBS1="-lpython${PyVERSION}"
- fi
---- 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)
--if test -z "$PyMAJVERSION"; then
-- AC_MSG_ERROR([Unable to get Python version - is your Python working?])
--fi
-+
- # 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 @@ if test "${PYTHONFRAMEWORKDIR}" = "no-fr
- LDFLAGS="${LDFLAGS1} ${LDFLAGS2}"
-
- if test "$PyMAJVERSION" -eq "3"; then
-- PyLDVERSION=`$PYTHON_BIN -c ['from distutils import sysconfig; print(sysconfig.get_config_var("LDVERSION"))'`]
-- LDLIBS1="-lpython${PyLDVERSION}"
-+ LDLIBS1="-lpython${PyMAJVERSION}"
- else
- LDLIBS1="-lpython${PyVERSION}"
- fi
-@@ -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}'`
-- Flex_MAJOR=`echo $FlexVERSION| awk -F . '{print $1}'`
-- Flex_MINOR=`echo $FlexVERSION| awk -F . '{print $2}'`
-- Flex_PATCH=`echo $FlexVERSION| awk -F . '{print $3}'`
-+ Flex_MAJOR=`echo $FlexVERSION| awk -F. '{print $1}'`
-+ Flex_MINOR=`echo $FlexVERSION| awk -F. '{print $2}'`
-+ Flex_PATCH=`echo $FlexVERSION| awk -F. '{print $3}'`
-
- if test "$Flex_MAJOR" -eq "2" && test "$Flex_MINOR" -eq "5" && test "$Flex_PATCH" -ge "31"; then
- AC_MSG_RESULT([$FlexVERSION. Good])
---- 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`
--GIT=`git describe --always`
-
--echo $MAJ.$MIN.$PCH-$GIT
-+# if git exists in path
-+if type git >/dev/null 2>&1; then
-+ # and we are in a checkout
-+ if git rev-parse 2>/dev/null; then
-+ # but not on a tag (which means this is a release)
-+ if test -z "`git log 'HEAD^!' --format=%d 2>/dev/null | grep 'tag: '`"; then
-+ # append git revision hash to version
-+ GIT="-`git describe --always`"
-+ fi
-+ fi
-+fi
-+
-+echo $MAJ.$MIN.$PCH$GIT
---- 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",
-- "comment", "max_age",
-+ "comment", "expires", "max_age",
- # RFC 2965
- "commentURL", "discard", "port",
- # Microsoft Extension
---- 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
- import platform
--import io
-+import StringIO
- import mod_python
- from mod_python import httpdconf
-
-@@ -64,7 +64,7 @@ def cmd_genconfig():
- if len(args) != 1:
- parser.error("Must specify <src>")
-
-- exec(compile(open(args[0]).read(), args[0], 'exec'))
-+ execfile(args[0])
-
- def cmd_create():
-
---- 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
-
--mod_python.so: $(SRCS) @SOLARIS_HACKS@
-+mod_python.so: $(SRCS) @SOLARIS_HACKS@
- @echo
- @echo 'Building mod_python.so.'
- @echo
-- $(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:
-- @MP_GIT_SHA=$$(git describe --always); \
-- echo > version.c ; \
-+ @echo > version.c ; \
- echo "/* THIS FILE IS AUTO-GENERATED BY Makefile */" >> version.c ; \
- echo "#include \"mp_version.h\"" >> version.c ; \
-- echo "const char * const mp_git_sha = \"$${MP_GIT_SHA}\";" >> version.c ; \
- echo "const int mp_version_major = MP_VERSION_MAJOR;" >> version.c ; \
- echo "const int mp_version_minor = MP_VERSION_MINOR;" >> version.c ; \
- echo "const int mp_version_patch = MP_VERSION_PATCH;" >> version.c ; \
-- echo "const char * const mp_version_string = MP_VERSION_STRING(MP_VERSION_MAJOR,MP_VERSION_MINOR,MP_VERSION_PATCH) \"-$${MP_GIT_SHA}\";" >> version.c ; \
-- echo "const char * const mp_version_component = \"mod_python/\" MP_VERSION_STRING(MP_VERSION_MAJOR,MP_VERSION_MINOR,MP_VERSION_PATCH) \"-$${MP_GIT_SHA}\";" >> version.c
--
--# echo "const char * const mp_version_component = \"mod_python/\" #MP_VERSION_MAJOR \".\" #MP_VERSION_MINOR \".\" #MP_VERSION_PATCH \"-$${MP_GIT_SHA}\";" >> version.c
-+ echo "const char * const mp_version_string = \"`../dist/version.sh`\";" >> version.c ; \
-+ echo "const char * const mp_version_component = \"mod_python/\" \"`../dist/version.sh`\";" >> version.c
-
- # this is a hack to help avoid a gcc/solaris problem
--# python uses assert() which needs _eprintf(). See
-+# python uses assert() which needs _eprintf(). See
- # SOLARIS_HACKS above
- _eprintf.o:
- ar -x `gcc -print-libgcc-file-name` _eprintf.o
---- 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 */
--extern const char * const mp_git_sha;
- extern const int mp_version_major;
- extern const int mp_version_minor;
- extern const int mp_version_patch;
-@@ -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 */ \
-- str = (char *)PyUnicode_1BYTE_DATA(obj); \
-+ str = PyUnicode_1BYTE_DATA(obj); \
- } else { \
- PyObject *latin = PyUnicode_AsLatin1String(obj); \
- if (latin) { \
-@@ -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?) */
-- char *c = (char *)PyUnicode_1BYTE_DATA(ucode);
-+ char *c = PyUnicode_1BYTE_DATA(ucode);
- if (c[0] == 'b')
-- result = PyBytes_FromStringAndSize((char *)PyUnicode_1BYTE_DATA(ucode)+1, PyUnicode_GET_LENGTH(ucode)-1);
-+ result = PyBytes_FromStringAndSize(PyUnicode_1BYTE_DATA(ucode)+1, PyUnicode_GET_LENGTH(ucode)-1);
- else
-- result = PyBytes_FromStringAndSize((char *)PyUnicode_1BYTE_DATA(ucode), PyUnicode_GET_LENGTH(ucode));
-+ result = PyBytes_FromStringAndSize(PyUnicode_1BYTE_DATA(ucode), PyUnicode_GET_LENGTH(ucode));
- Py_DECREF(ucode);
- return result;
- }
---- 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 */
--extern const char * const mp_git_sha;
- extern const int mp_version_major;
- extern const int mp_version_minor;
- extern const int mp_version_patch;
-@@ -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 */ \
-- str = (char *)PyUnicode_1BYTE_DATA(obj); \
-+ str = PyUnicode_1BYTE_DATA(obj); \
- } else { \
- PyObject *latin = PyUnicode_AsLatin1String(obj); \
- if (latin) { \
-@@ -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?) */
-- char *c = (char *)PyUnicode_1BYTE_DATA(ucode);
-+ char *c = PyUnicode_1BYTE_DATA(ucode);
- if (c[0] == 'b')
-- result = PyBytes_FromStringAndSize((char *)PyUnicode_1BYTE_DATA(ucode)+1, PyUnicode_GET_LENGTH(ucode)-1);
-+ result = PyBytes_FromStringAndSize(PyUnicode_1BYTE_DATA(ucode)+1, PyUnicode_GET_LENGTH(ucode)-1);
- else
-- result = PyBytes_FromStringAndSize((char *)PyUnicode_1BYTE_DATA(ucode), PyUnicode_GET_LENGTH(ucode));
-+ result = PyBytes_FromStringAndSize(PyUnicode_1BYTE_DATA(ucode), PyUnicode_GET_LENGTH(ucode));
- Py_DECREF(ucode);
- return result;
- }
---- 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)
---- 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'.",
-- (char *)Py_GetProgramFullPath());
-+ Py_GetProgramFullPath());
- ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
- "python_init: Python path being used '%s'.",
-- (char *)Py_GetPath());
-+ Py_GetPath());
- }
-
- /* Python version */
-@@ -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,
-- so a fitler can spit out an error without causing infinite loop */
-+ so a filter can spit out an error without causing infinite loop */
- if (ctx->transparent) {
- if (is_input)
- return ap_get_brigade(f->next, bb, mode, block, readbytes);
-@@ -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) {
-+ if (val == Py_None) {
-+ self->request_rec->args = 0;
-+ return 0;
-+ }
- MP_ANYSTR_AS_STR(v, val, 1);
- if (!v) {
- Py_DECREF(val); /* MP_ANYSTR_AS_STR */