public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-python/pyldap/files/, dev-python/pyldap/
@ 2015-10-14 14:05 Justin Lecher
  0 siblings, 0 replies; only message in thread
From: Justin Lecher @ 2015-10-14 14:05 UTC (permalink / raw
  To: gentoo-commits

commit:     1009299d11d10c0610e698fa5b6dd8dad63d5acb
Author:     Justin Lecher <jlec <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 14 14:05:34 2015 +0000
Commit:     Justin Lecher <jlec <AT> gentoo <DOT> org>
CommitDate: Wed Oct 14 14:05:34 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1009299d

dev-python/pyldap: Backport patch for bytes/string conversion problem

Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=562854

Package-Manager: portage-2.2.23
Signed-off-by: Justin Lecher <jlec <AT> gentoo.org>

 .../pyldap-2.4.20-bytes_string-backport.patch      | 49 ++++++++++++++++++++++
 dev-python/pyldap/metadata.xml                     |  2 +-
 dev-python/pyldap/pyldap-2.4.20-r1.ebuild          |  2 +
 ...ap-2.4.20-r1.ebuild => pyldap-2.4.20-r2.ebuild} |  2 +
 4 files changed, 54 insertions(+), 1 deletion(-)

diff --git a/dev-python/pyldap/files/pyldap-2.4.20-bytes_string-backport.patch b/dev-python/pyldap/files/pyldap-2.4.20-bytes_string-backport.patch
new file mode 100644
index 0000000..ff4519b
--- /dev/null
+++ b/dev-python/pyldap/files/pyldap-2.4.20-bytes_string-backport.patch
@@ -0,0 +1,49 @@
+From 6e9e1902f33bff8ea179dc32ce4d2aa71b3335de Mon Sep 17 00:00:00 2001
+From: Petr Viktorin <pviktori@redhat.com>
+Date: Fri, 2 Oct 2015 14:06:12 +0200
+Subject: [PATCH] Fix sasl string/bytes mismatch
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The SASL mechanism and response are always bytes; encode them if necessary.
+
+Based on patch by Michael Šimáček: https://github.com/pyldap/pyldap/pull/20
+---
+ Lib/ldap/sasl.py | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/Lib/ldap/sasl.py b/Lib/ldap/sasl.py
+index 1158671..de38393 100644
+--- a/Lib/ldap/sasl.py
++++ b/Lib/ldap/sasl.py
+@@ -46,6 +46,8 @@ def __init__(self,cb_value_dict,mech):
+         SASL callback id's. The mech argument is a string that specifies
+         the SASL mechaninsm to be uesd."""
+         self.cb_value_dict = cb_value_dict or {}
++        if not isinstance(mech, bytes):
++            mech = mech.encode('utf-8')
+         self.mech = mech
+ 
+     def callback(self,cb_id,challenge,prompt,defresult):
+@@ -62,7 +64,10 @@ def callback(self,cb_id,challenge,prompt,defresult):
+         cb_value_dictionary. Note that the current callback interface is not very
+         useful for writing generic sasl GUIs, which would need to know all
+         the questions to ask, before the answers are returned to the sasl
+-        lib (in contrast to one question at a time)."""
++        lib (in contrast to one question at a time).
++
++        Unicode strings are always converted to bytes.
++        """
+ 
+         # The following print command might be useful for debugging
+         # new sasl mechanisms. So it is left here
+@@ -72,6 +77,8 @@ def callback(self,cb_id,challenge,prompt,defresult):
+             _trace_file.write("*** id=%d, challenge=%s, prompt=%s, defresult=%s\n-> %s\n" % (
+                 cb_id, challenge, prompt, repr(defresult), repr(self.cb_value_dict.get(cb_result))
+               ))
++        if not isinstance(cb_result, bytes):
++            cb_result = cb_result.encode('utf-8')
+         return cb_result
+ 
+ 

diff --git a/dev-python/pyldap/metadata.xml b/dev-python/pyldap/metadata.xml
index b491fc4..7a3d4a5 100644
--- a/dev-python/pyldap/metadata.xml
+++ b/dev-python/pyldap/metadata.xml
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
 	<herd>python</herd>

diff --git a/dev-python/pyldap/pyldap-2.4.20-r1.ebuild b/dev-python/pyldap/pyldap-2.4.20-r1.ebuild
index 55a781d..1ea0d22 100644
--- a/dev-python/pyldap/pyldap-2.4.20-r1.ebuild
+++ b/dev-python/pyldap/pyldap-2.4.20-r1.ebuild
@@ -31,6 +31,8 @@ DEPEND="${RDEPEND}
 	doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
 RDEPEND+=" !dev-python/python-ldap"
 
+PATCHES=( "${FILESDIR}"/${P}-bytes_string-backport.patch )
+
 python_prepare_all() {
 	sed -e "s:^library_dirs =.*:library_dirs = /usr/$(get_libdir) /usr/$(get_libdir)/sasl2:" \
 		-e "s:^include_dirs =.*:include_dirs = ${EPREFIX}/usr/include ${EPREFIX}/usr/include/sasl:" \

diff --git a/dev-python/pyldap/pyldap-2.4.20-r1.ebuild b/dev-python/pyldap/pyldap-2.4.20-r2.ebuild
similarity index 97%
copy from dev-python/pyldap/pyldap-2.4.20-r1.ebuild
copy to dev-python/pyldap/pyldap-2.4.20-r2.ebuild
index 55a781d..1ea0d22 100644
--- a/dev-python/pyldap/pyldap-2.4.20-r1.ebuild
+++ b/dev-python/pyldap/pyldap-2.4.20-r2.ebuild
@@ -31,6 +31,8 @@ DEPEND="${RDEPEND}
 	doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
 RDEPEND+=" !dev-python/python-ldap"
 
+PATCHES=( "${FILESDIR}"/${P}-bytes_string-backport.patch )
+
 python_prepare_all() {
 	sed -e "s:^library_dirs =.*:library_dirs = /usr/$(get_libdir) /usr/$(get_libdir)/sasl2:" \
 		-e "s:^include_dirs =.*:include_dirs = ${EPREFIX}/usr/include ${EPREFIX}/usr/include/sasl:" \


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-10-14 14:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-14 14:05 [gentoo-commits] repo/gentoo:master commit in: dev-python/pyldap/files/, dev-python/pyldap/ Justin Lecher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox