From b9a92045a1941e8bcc1b281da86984a5593b4cca Mon Sep 17 00:00:00 2001
From: Jeremy Bicha <jbicha@ubuntu.com>
Date: Tue, 19 Jul 2016 21:39:53 -0400
Subject: [PATCH] Add pymysql support (from Ubuntu)

Closes: #831836
---
 debian/control                           |  4 +--
 debian/patches/pymysql-replacement.patch | 59 ++++++++++++++++++++++++++++++++
 debian/patches/series                    |  1 +
 3 files changed, 62 insertions(+), 2 deletions(-)
 create mode 100644 debian/patches/pymysql-replacement.patch

diff --git a/debian/control b/debian/control
index 33421c9..de2bf11 100644
--- a/debian/control
+++ b/debian/control
@@ -60,9 +60,9 @@ Suggests:
  python-django-doc,
  python-flup,
  python-memcache,
- python-mysqldb,
  python-pil,
  python-psycopg2,
+ python-pymysql | python-mysqldb,
  python-sqlite,
  python-yaml
 Description: High-level Python web development framework (Python 2 version)
@@ -107,9 +107,9 @@ Suggests:
  python3-bcrypt,
  python3-flup,
  python3-memcache,
- python3-mysqldb,
  python3-pil,
  python3-psycopg2,
+ python3-pymysql | python3-mysqldb,
  python3-sqlite,
  python3-yaml
 Description: High-level Python web development framework (Python 3 version)
diff --git a/debian/patches/pymysql-replacement.patch b/debian/patches/pymysql-replacement.patch
new file mode 100644
index 0000000..92bc178
--- /dev/null
+++ b/debian/patches/pymysql-replacement.patch
@@ -0,0 +1,59 @@
+From: Corey Bryant <corey.bryant@canonical.com>
+Date: Mon, 24 Aug 2015 11:01:47 -0400
+Subject: Use pymysql as a drop-in replacement for MySQLdb.
+
+Bug: https://code.djangoproject.com/ticket/22391
+Bug-Debian: https://bugs.debian.org/831836
+---
+ django/contrib/gis/db/backends/mysql/introspection.py | 6 ++++++
+ django/db/backends/mysql/base.py                      | 6 ++++++
+ django/db/backends/mysql/schema.py                    | 5 +++++
+ 3 files changed, 17 insertions(+)
+
+diff --git a/django/contrib/gis/db/backends/mysql/introspection.py b/django/contrib/gis/db/backends/mysql/introspection.py
+index 364cdee..9b334e8 100644
+--- a/django/contrib/gis/db/backends/mysql/introspection.py
++++ b/django/contrib/gis/db/backends/mysql/introspection.py
+@@ -1,3 +1,9 @@
++try:
++    import pymysql
++    pymysql.install_as_MySQLdb()
++except ImportError:
++    pass
++
+ from MySQLdb.constants import FIELD_TYPE
+ 
+ from django.contrib.gis.gdal import OGRGeomType
+diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py
+index 03f3857..92a696d 100644
+--- a/django/db/backends/mysql/base.py
++++ b/django/db/backends/mysql/base.py
+@@ -22,6 +22,12 @@ from django.utils.functional import cached_property
+ from django.utils.safestring import SafeBytes, SafeText
+ 
+ try:
++    import pymysql
++    pymysql.install_as_MySQLdb()
++except ImportError:
++    pass
++
++try:
+     import MySQLdb as Database
+ except ImportError as e:
+     from django.core.exceptions import ImproperlyConfigured
+diff --git a/django/db/backends/mysql/schema.py b/django/db/backends/mysql/schema.py
+index ef4ccf5..c0f608f 100644
+--- a/django/db/backends/mysql/schema.py
++++ b/django/db/backends/mysql/schema.py
+@@ -1,6 +1,11 @@
+ from django.db.backends.base.schema import BaseDatabaseSchemaEditor
+ from django.db.models import NOT_PROVIDED
+ 
++try:
++    import pymysql
++    pymysql.install_as_MySQLdb()
++except ImportError:
++    pass
+ 
+ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor):
+ 
diff --git a/debian/patches/series b/debian/patches/series
index 4549594..0007def 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 02_disable-sources-in-sphinxdoc.diff
 06_use_debian_geoip_database_as_default.diff
 fix-25761-add-traceback-attribute.patch
+pymysql-replacement.patch
-- 
2.8.1

