aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/05_upstream_devendorize.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/05_upstream_devendorize.patch')
-rw-r--r--debian/patches/05_upstream_devendorize.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/debian/patches/05_upstream_devendorize.patch b/debian/patches/05_upstream_devendorize.patch
new file mode 100644
index 0000000..2a4a9d5
--- /dev/null
+++ b/debian/patches/05_upstream_devendorize.patch
@@ -0,0 +1,50 @@
+From b7fc3a1250cb13ed3b55010ccc33f2681f0ffa4a Mon Sep 17 00:00:00 2001
+From: Markus Unterwaditzer <markus@unterwaditzer.net>
+Date: Fri, 24 Apr 2015 12:05:18 +0200
+Subject: [PATCH 1/2] Import aliases for Debian
+
+Alternative to #2375
+---
+ requests/packages/__init__.py | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+--- a/requests/packages/__init__.py
++++ b/requests/packages/__init__.py
+@@ -1,3 +1,36 @@
++'''
++Debian and other distributions "unbundle" requests' vendored dependencies, and
++rewrite all imports to use the global versions of ``urllib3`` and ``chardet``.
++The problem with this is that not only requests itself imports those
++dependencies, but third-party code outside of the distros' control too.
++
++In reaction to these problems, the distro maintainers replaced
++``requests.packages`` with a magical "stub module" that imports the correct
++modules. The implementations were varying in quality and all had severe
++problems. For example, a symlink (or hardlink) that links the correct modules
++into place introduces problems regarding object identity, since you now have
++two modules in `sys.modules` with the same API, but different identities::
++
++ requests.packages.urllib3 is not urllib3
++
++With version ``2.5.2``, requests started to maintain its own stub, so that
++distro-specific breakage would be reduced to a minimum, even though the whole
++issue is not requests' fault in the first place. See
++https://github.com/kennethreitz/requests/pull/2375 for the corresponding pull
++request.
++'''
++
+ from __future__ import absolute_import
++import sys
++
++try:
++ from . import urllib3
++except ImportError:
++ import urllib3
++ sys.modules['%s.urllib3' % __name__] = urllib3
+
+-from . import urllib3
++try:
++ from . import chardet
++except ImportError:
++ import chardet
++ sys.modules['%s.chardet' % __name__] = chardet