diff options
| author | Michael Vogt <michael.vogt@ubuntu.com> | 2012-10-23 12:41:37 +0200 |
|---|---|---|
| committer | Michael Vogt <michael.vogt@ubuntu.com> | 2012-10-23 12:41:37 +0200 |
| commit | b485b22c8d4caf3e22c65a4b426137d68b8404af (patch) | |
| tree | f5fd0ac1890e7e127ad59ec06c76d14dde3f1e1c | |
| parent | 9f4b8cb3fbf1be70aa22811aad3880306b77058b (diff) | |
| parent | 6bd628c370b05b80b59552e4bbc970928aca91a1 (diff) | |
| download | python-apt-b485b22c8d4caf3e22c65a4b426137d68b8404af.tar.gz | |
merged from the mvo branch
| -rw-r--r-- | apt/auth.py | 3 | ||||
| -rw-r--r-- | debian/changelog | 1 | ||||
| -rw-r--r-- | python/generic.h | 4 |
3 files changed, 7 insertions, 1 deletions
diff --git a/apt/auth.py b/apt/auth.py index eff13b1a..c1b8da2a 100644 --- a/apt/auth.py +++ b/apt/auth.py @@ -78,7 +78,8 @@ def _call_apt_key_script(*args, **kwargs): stderr=subprocess.PIPE) content = kwargs.get("stdin", None) - if isinstance(content, unicode): + # py2 needs this encoded, py3.3 will crash if it is + if isinstance(content, unicode) and sys.version_info[:2] < (3, 3): content = content.encode("utf-8") output, stderr = proc.communicate(content) diff --git a/debian/changelog b/debian/changelog index 8a7e3392..7fba9286 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,7 @@ python-apt (0.8.8.1~exp1) UNRELEASED; urgency=low * python/cache.cc: - add "Codename" to PackageFile object * add dep8 style autopkgtest support + * build fixes for python3.3 [ Jason Conti ] * lp:~jconti/python-apt/closeable-cache: diff --git a/python/generic.h b/python/generic.h index f9680ca5..914456e2 100644 --- a/python/generic.h +++ b/python/generic.h @@ -80,10 +80,14 @@ typedef int Py_ssize_t; static inline const char *PyUnicode_AsString(PyObject *op) { // Convert to bytes object, using the default encoding. +#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 3 + return PyUnicode_AsUTF8(op); +#else // Use Python-internal API, there is no other way to do this // without a memory leak. PyObject *bytes = _PyUnicode_AsDefaultEncodedString(op, 0); return bytes ? PyBytes_AS_STRING(bytes) : 0; +#endif } // Convert any type of string based object to a const char. |
