Here's a diff that will make pyvenv work. As the changelog entry describes, it:
* Undoes the removal of the ensurepip module. I think it's safe to allow this module to be installed because if a normal user were to run it outside of a venv, it would rightly traceback on a permission denied. This module is required by pyvenv, and I think it is not unreasonable that in a pyvenv virtual environment you would get the bundled pip and setuptools (which you can of course always --upgrade). * Updates various patches to make sure that the pyvenv blessed paths are available inside the virtual environment. Note that the definitive way of checking whether you're in a pyvenv virtual environment is: sys.prefix != sys.base_prefix * Refreshes the quilt patch stack. With my testing, these patches should allow a pyvenv created virtual environment to work sanely, and as close to the upstream from-source built Python's behavior as makes sense on Debian.
=== modified file 'debian/changelog' --- debian/changelog 2014-03-22 13:39:34 +0000 +++ debian/changelog 2014-04-04 21:11:58 +0000 @@ -1,3 +1,14 @@ +python3.4 (3.4.0-2) UNRELEASED; urgency=medium + + * Don't delete the ensurepip module since pyvenv requires it. + * d/p/distutils-install-layout.diff, d/p/site-locations.diff: Adjust the + "am I in a virtual environment" tests to include checking + sys.base_prefix != sys.prefix. This is the definitive such test for + pyvenv created virtual environments. + * d/patches: Refreshed. + + -- Barry Warsaw <ba...@debian.org> Thu, 03 Apr 2014 14:52:16 -0400 + python3.4 (3.4.0-1) unstable; urgency=medium * Python 3.4.0 release. === modified file 'debian/patches/avoid-rpath.diff' --- debian/patches/avoid-rpath.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/avoid-rpath.diff 2014-04-04 21:10:18 +0000 @@ -1,10 +1,8 @@ # DP: avoid runtime library path for some extension modules. -Index: b/setup.py -=================================================================== --- a/setup.py +++ b/setup.py -@@ -1026,6 +1026,15 @@ +@@ -1021,6 +1021,15 @@ print("bsddb lib dir:", dblib_dir, " inc dir:", db_incdir) db_incs = [db_incdir] dblibs = [dblib] @@ -20,7 +18,7 @@ else: if db_setup_debug: print("db: no appropriate library found") db_incs = None -@@ -1136,6 +1145,9 @@ +@@ -1131,6 +1140,9 @@ # can end up with a bad search path order. if sqlite_incdir not in self.compiler.include_dirs: include_dirs.append(sqlite_incdir) === modified file 'debian/patches/ctypes-arm.diff' --- debian/patches/ctypes-arm.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/ctypes-arm.diff 2014-04-04 21:10:01 +0000 @@ -1,8 +1,6 @@ -Index: b/Lib/ctypes/util.py -=================================================================== --- a/Lib/ctypes/util.py +++ b/Lib/ctypes/util.py -@@ -198,16 +198,27 @@ +@@ -201,16 +201,27 @@ def _findSoname_ldconfig(name): import struct === modified file 'debian/patches/deb-setup.diff' --- debian/patches/deb-setup.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/deb-setup.diff 2014-04-04 21:07:14 +0000 @@ -1,10 +1,8 @@ # DP: Don't include /usr/local/include and /usr/local/lib as gcc search paths -Index: b/setup.py -=================================================================== --- a/setup.py +++ b/setup.py -@@ -238,8 +238,10 @@ +@@ -240,8 +240,10 @@ # unfortunately, distutils doesn't let us provide separate C and C++ # compilers if compiler is not None: @@ -17,7 +15,7 @@ self.compiler.set_executables(**args) build_ext.build_extensions(self) -@@ -437,12 +439,7 @@ +@@ -441,12 +443,7 @@ os.unlink(tmpfile) def detect_modules(self): === modified file 'debian/patches/disable-sem-check.diff' --- debian/patches/disable-sem-check.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/disable-sem-check.diff 2014-04-04 21:09:55 +0000 @@ -1,10 +1,8 @@ # DP: Assume working semaphores, don't rely on running kernel for the check. -Index: b/configure.ac -=================================================================== --- a/configure.ac +++ b/configure.ac -@@ -3928,8 +3928,13 @@ +@@ -3941,8 +3941,13 @@ AC_MSG_RESULT($ac_cv_posix_semaphores_enabled) if test $ac_cv_posix_semaphores_enabled = no then @@ -20,7 +18,7 @@ fi # Multiprocessing check for broken sem_getvalue -@@ -3964,8 +3969,13 @@ +@@ -3977,8 +3982,13 @@ AC_MSG_RESULT($ac_cv_broken_sem_getvalue) if test $ac_cv_broken_sem_getvalue = yes then === modified file 'debian/patches/distutils-init.diff' --- debian/patches/distutils-init.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/distutils-init.diff 2014-04-04 21:10:28 +0000 @@ -1,10 +1,8 @@ # DP: Use _sysconfigdata.py in distutils to initialize distutils -Index: b/Lib/distutils/sysconfig.py -=================================================================== --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py -@@ -447,49 +447,11 @@ +@@ -453,49 +453,11 @@ def _init_posix(): """Initialize the module as appropriate for POSIX systems.""" === modified file 'debian/patches/distutils-install-layout.diff' --- debian/patches/distutils-install-layout.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/distutils-install-layout.diff 2014-04-04 18:02:17 +0000 @@ -2,8 +2,6 @@ # DP: - installs into $prefix/dist-packages instead of $prefix/site-packages. # DP: - doesn't encode the python version into the egg name. -Index: b/Lib/distutils/command/install_egg_info.py -=================================================================== --- a/Lib/distutils/command/install_egg_info.py +++ b/Lib/distutils/command/install_egg_info.py @@ -14,18 +14,38 @@ @@ -50,8 +48,6 @@ self.target = os.path.join(self.install_dir, basename) self.outputs = [self.target] -Index: b/Lib/distutils/command/install.py -=================================================================== --- a/Lib/distutils/command/install.py +++ b/Lib/distutils/command/install.py @@ -50,6 +50,20 @@ @@ -99,7 +95,7 @@ + # enable custom installation, known values: deb + self.install_layout = None -+ ++ self.compile = None self.optimize = None @@ -111,7 +107,7 @@ if self.prefix is None: if self.exec_prefix is not None: raise DistutilsOptionError( -@@ -440,7 +462,24 @@ +@@ -440,7 +462,26 @@ self.install_base = self.prefix self.install_platbase = self.exec_prefix @@ -124,10 +120,12 @@ + else: + raise DistutilsOptionError( + "unknown value for --install-layout") -+ elif (self.prefix_option and os.path.normpath(self.prefix) != '/usr/local') \ -+ or 'PYTHONUSERBASE' in os.environ \ -+ or 'VIRTUAL_ENV' in os.environ \ -+ or 'real_prefix' in sys.__dict__: ++ elif ((self.prefix_option and ++ os.path.normpath(self.prefix) != '/usr/local') ++ or sys.base_prefix != sys.prefix ++ or 'PYTHONUSERBASE' in os.environ ++ or 'VIRTUAL_ENV' in os.environ ++ or 'real_prefix' in sys.__dict__): + self.select_scheme("unix_prefix") + else: + if os.path.normpath(self.prefix) == '/usr/local': @@ -137,8 +135,6 @@ def finalize_other(self): """Finalizes options for non-posix platforms""" -Index: b/Lib/distutils/sysconfig.py -=================================================================== --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -134,6 +134,7 @@ @@ -149,17 +145,19 @@ if prefix is None: if standard_lib: prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX -@@ -145,6 +146,8 @@ +@@ -145,6 +146,12 @@ "lib", "python" + get_python_version()) if standard_lib: return libpython -+ elif is_default_prefix and 'PYTHONUSERBASE' not in os.environ and 'VIRTUAL_ENV' not in os.environ and 'real_prefix' not in sys.__dict__: ++ elif (is_default_prefix and ++ 'PYTHONUSERBASE' not in os.environ and ++ 'VIRTUAL_ENV' not in os.environ and ++ 'real_prefix' not in sys.__dict__ and ++ sys.prefix == sys.base_prefix): + return os.path.join(prefix, "lib", "python3", "dist-packages") else: return os.path.join(libpython, "site-packages") elif os.name == "nt": -Index: b/Lib/site.py -=================================================================== --- a/Lib/site.py +++ b/Lib/site.py @@ -288,6 +288,13 @@ @@ -176,11 +174,9 @@ return known_paths def getsitepackages(prefixes=None): -Index: b/Lib/test/test_site.py -=================================================================== --- a/Lib/test/test_site.py +++ b/Lib/test/test_site.py -@@ -244,12 +244,20 @@ +@@ -243,12 +243,20 @@ self.assertEqual(dirs[2], wanted) elif os.sep == '/': # OS X non-framwework builds, Linux, FreeBSD, etc @@ -205,8 +201,6 @@ else: # other platforms self.assertEqual(len(dirs), 2) -Index: b/Lib/distutils/tests/test_bdist_dumb.py -=================================================================== --- a/Lib/distutils/tests/test_bdist_dumb.py +++ b/Lib/distutils/tests/test_bdist_dumb.py @@ -85,7 +85,7 @@ @@ -218,8 +212,6 @@ if not sys.dont_write_bytecode: wanted.append('foo.%s.pyc' % sys.implementation.cache_tag) self.assertEqual(contents, sorted(wanted)) -Index: b/Lib/distutils/tests/test_install.py -=================================================================== --- a/Lib/distutils/tests/test_install.py +++ b/Lib/distutils/tests/test_install.py @@ -194,7 +194,7 @@ @@ -240,11 +232,9 @@ self.assertEqual(found, expected) def test_debug_mode(self): -Index: b/Lib/pydoc.py -=================================================================== --- a/Lib/pydoc.py +++ b/Lib/pydoc.py -@@ -383,6 +383,7 @@ +@@ -403,6 +403,7 @@ 'marshal', 'posix', 'signal', 'sys', '_thread', 'zipimport') or (file.startswith(basedir) and === modified file 'debian/patches/distutils-sysconfig.diff' --- debian/patches/distutils-sysconfig.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/distutils-sysconfig.diff 2014-04-04 21:09:11 +0000 @@ -2,11 +2,9 @@ # DP: the python build, when CFLAGS, CPPFLAGS, LDSHARED) are not set # DP: in the environment. -Index: b/Lib/distutils/sysconfig.py -=================================================================== --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py -@@ -187,9 +187,11 @@ +@@ -191,9 +191,11 @@ _osx_support.customize_compiler(_config_vars) _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True' @@ -20,7 +18,7 @@ if 'CC' in os.environ: newcc = os.environ['CC'] -@@ -210,13 +212,22 @@ +@@ -214,13 +216,22 @@ cpp = cc + " -E" # not always if 'LDFLAGS' in os.environ: ldshared = ldshared + ' ' + os.environ['LDFLAGS'] === modified file 'debian/patches/enable-fpectl.diff' --- debian/patches/enable-fpectl.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/enable-fpectl.diff 2014-04-04 21:09:43 +0000 @@ -1,10 +1,8 @@ # DP: Enable the build of the fpectl module. -Index: b/setup.py -=================================================================== --- a/setup.py +++ b/setup.py -@@ -1305,6 +1305,9 @@ +@@ -1301,6 +1301,9 @@ else: missing.append('_curses_panel') === modified file 'debian/patches/hurd-disable-nonworking-constants.diff' --- debian/patches/hurd-disable-nonworking-constants.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/hurd-disable-nonworking-constants.diff 2014-04-04 21:09:39 +0000 @@ -1,11 +1,9 @@ # DP: Comment out constant exposed on the API which are not implemented on # DP: GNU/Hurd. They would not work at runtime anyway. -Index: b/Modules/socketmodule.c -=================================================================== --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c -@@ -6199,9 +6199,11 @@ +@@ -6129,9 +6129,11 @@ #ifdef SO_OOBINLINE PyModule_AddIntMacro(m, SO_OOBINLINE); #endif @@ -17,11 +15,9 @@ #ifdef SO_SNDBUF PyModule_AddIntMacro(m, SO_SNDBUF); #endif -Index: b/Modules/posixmodule.c -=================================================================== --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c -@@ -11693,12 +11693,14 @@ +@@ -11724,12 +11724,14 @@ #ifdef O_LARGEFILE if (PyModule_AddIntMacro(m, O_LARGEFILE)) return -1; #endif === modified file 'debian/patches/kfreebsd-testsuite.diff' --- debian/patches/kfreebsd-testsuite.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/kfreebsd-testsuite.diff 2014-04-04 21:10:40 +0000 @@ -1,8 +1,6 @@ -Index: b/Lib/test/test_socket.py -=================================================================== --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py -@@ -870,7 +870,7 @@ +@@ -867,7 +867,7 @@ # Find one service that exists, then check all the related interfaces. # I've ordered this by protocols that have both a tcp and udp # protocol, at least for modern Linuxes. === modified file 'debian/patches/kfreebsd-xattrs.diff' --- debian/patches/kfreebsd-xattrs.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/kfreebsd-xattrs.diff 2014-04-04 21:10:33 +0000 @@ -1,10 +1,8 @@ # DP: Don't define USE_XATTRS on kfreebsd and the Hurd. -Index: b/Modules/posixmodule.c -=================================================================== --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c -@@ -97,7 +97,7 @@ +@@ -92,7 +92,7 @@ #undef HAVE_SCHED_SETAFFINITY #endif === modified file 'debian/patches/libffi-shared.diff' --- debian/patches/libffi-shared.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/libffi-shared.diff 2014-04-04 21:10:15 +0000 @@ -1,8 +1,6 @@ -Index: b/setup.py -=================================================================== --- a/setup.py +++ b/setup.py -@@ -1939,7 +1939,7 @@ +@@ -1935,7 +1935,7 @@ break ffi_lib = None if ffi_inc is not None: === modified file 'debian/patches/link-opt.diff' --- debian/patches/link-opt.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/link-opt.diff 2014-04-04 21:09:22 +0000 @@ -1,10 +1,8 @@ # DP: Call the linker with -O1 -Bsymbolic-functions -Index: b/configure.ac -=================================================================== --- a/configure.ac +++ b/configure.ac -@@ -2037,8 +2037,8 @@ +@@ -2050,8 +2050,8 @@ fi ;; Linux*|GNU*|QNX*) @@ -15,7 +13,7 @@ BSD/OS*/4*) LDSHARED="gcc -shared" LDCXXSHARED="g++ -shared";; -@@ -2136,7 +2136,7 @@ +@@ -2149,7 +2149,7 @@ LINKFORSHARED="-Wl,-E -Wl,+s";; # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";; BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";; === modified file 'debian/patches/lto-link-flags.diff' --- debian/patches/lto-link-flags.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/lto-link-flags.diff 2014-04-04 21:10:05 +0000 @@ -1,5 +1,3 @@ -Index: b/Makefile.pre.in -=================================================================== --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -128,7 +128,7 @@ @@ -11,7 +9,7 @@ LDCXXSHARED= @LDCXXSHARED@ DESTSHARED= $(BINLIBDEST)/lib-dynload -@@ -528,7 +528,7 @@ +@@ -533,7 +533,7 @@ # Build the interpreter $(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) === modified file 'debian/patches/multiarch-extname.diff' --- debian/patches/multiarch-extname.diff 2014-01-02 18:05:27 +0000 +++ debian/patches/multiarch-extname.diff 2014-04-04 18:03:21 +0000 @@ -1,5 +1,3 @@ -Index: b/Lib/distutils/dir_util.py -=================================================================== --- a/Lib/distutils/dir_util.py +++ b/Lib/distutils/dir_util.py @@ -96,6 +96,9 @@ @@ -32,8 +30,6 @@ if n.startswith('.nfs'): # skip NFS rename files -Index: b/Lib/distutils/command/install_lib.py -=================================================================== --- a/Lib/distutils/command/install_lib.py +++ b/Lib/distutils/command/install_lib.py @@ -56,6 +56,7 @@ @@ -61,8 +57,6 @@ outfiles = self.copy_tree(self.build_dir, self.install_dir) else: self.warn("'%s' does not exist -- no Python modules to install" % -Index: b/Lib/distutils/command/install.py -=================================================================== --- a/Lib/distutils/command/install.py +++ b/Lib/distutils/command/install.py @@ -207,6 +207,7 @@ @@ -70,7 +64,7 @@ # enable custom installation, known values: deb self.install_layout = None + self.multiarch = None - + self.compile = None self.optimize = None @@ -464,6 +465,8 @@ === modified file 'debian/patches/multiarch.diff' --- debian/patches/multiarch.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/multiarch.diff 2014-04-04 21:10:22 +0000 @@ -1,5 +1,3 @@ -Index: b/Lib/sysconfig.py -=================================================================== --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -339,6 +339,8 @@ @@ -24,8 +22,6 @@ # Always convert srcdir to an absolute path srcdir = _CONFIG_VARS.get('srcdir', _PROJECT_BASE) if os.name == 'posix': -Index: b/Lib/distutils/sysconfig.py -=================================================================== --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -111,6 +111,9 @@ @@ -38,7 +34,7 @@ return os.path.join(prefix, "include", python_dir) elif os.name == "nt": return os.path.join(prefix, "include") -@@ -271,6 +274,8 @@ +@@ -275,6 +278,8 @@ return os.path.join(_sys_home or project_base, "Makefile") lib_dir = get_python_lib(plat_specific=0, standard_lib=1) config_file = 'config-{}{}'.format(get_python_version(), build_flags) @@ -47,11 +43,9 @@ return os.path.join(lib_dir, config_file, 'Makefile') -Index: b/Makefile.pre.in -=================================================================== --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -716,6 +716,7 @@ +@@ -715,6 +715,7 @@ Python/dynload_shlib.o: $(srcdir)/Python/dynload_shlib.c Makefile $(CC) -c $(PY_CORE_CFLAGS) \ @@ -59,7 +53,7 @@ -DSOABI='"$(SOABI)"' \ -o $@ $(srcdir)/Python/dynload_shlib.c -@@ -727,6 +728,7 @@ +@@ -726,6 +727,7 @@ Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile $(CC) -c $(PY_CORE_CFLAGS) \ -DABIFLAGS='"$(ABIFLAGS)"' \ @@ -67,7 +61,7 @@ -o $@ $(srcdir)/Python/sysmodule.c $(IO_OBJS): $(IO_H) -@@ -1108,7 +1110,7 @@ +@@ -1107,7 +1109,7 @@ (cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python$(VERSION).1 python3.1) # Install the library @@ -100,8 +94,6 @@ libainstall: all python-config @for i in $(LIBDIR) $(LIBPL) $(LIBPC); \ -Index: b/Python/dynload_shlib.c -=================================================================== --- a/Python/dynload_shlib.c +++ b/Python/dynload_shlib.c @@ -36,6 +36,9 @@ @@ -114,8 +106,6 @@ "." SOABI ".so", ".abi" PYTHON_ABI_STRING ".so", ".so", -Index: b/Modules/Setup.dist -=================================================================== --- a/Modules/Setup.dist +++ b/Modules/Setup.dist @@ -91,7 +91,7 @@ @@ -127,11 +117,9 @@ EXTRAMACHDEPPATH= COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)$(MACHDEPPATH)$(EXTRAMACHDEPPATH) -Index: b/Python/sysmodule.c -=================================================================== --- a/Python/sysmodule.c +++ b/Python/sysmodule.c -@@ -1596,6 +1596,15 @@ +@@ -1595,6 +1595,15 @@ if (res < 0) goto error; @@ -147,8 +135,6 @@ /* dict ready */ ns = _PyNamespace_New(impl_info); -Index: b/configure.ac -=================================================================== --- a/configure.ac +++ b/configure.ac @@ -4109,7 +4109,7 @@ === modified file 'debian/patches/ncurses-configure.diff' --- debian/patches/ncurses-configure.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/ncurses-configure.diff 2014-04-04 21:10:25 +0000 @@ -1,10 +1,8 @@ # DP: Fix ncurses configure checks -Index: b/configure.ac -=================================================================== --- a/configure.ac +++ b/configure.ac -@@ -1533,11 +1533,9 @@ +@@ -1546,11 +1546,9 @@ # checks for header files AC_HEADER_STDC @@ -18,7 +16,7 @@ sched.h shadow.h signal.h stdint.h stropts.h termios.h \ unistd.h utime.h \ poll.h sys/devpoll.h sys/epoll.h sys/poll.h \ -@@ -1549,7 +1547,6 @@ +@@ -1562,7 +1560,6 @@ libutil.h sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \ bluetooth/bluetooth.h linux/tipc.h spawn.h util.h alloca.h endian.h \ sys/endian.h) @@ -26,7 +24,7 @@ AC_HEADER_DIRENT AC_HEADER_MAJOR -@@ -1569,14 +1566,6 @@ +@@ -1582,14 +1579,6 @@ #endif ]) @@ -41,7 +39,7 @@ # On Linux, netlink.h requires asm/types.h AC_CHECK_HEADERS(linux/netlink.h,,,[ #ifdef HAVE_ASM_TYPES_H -@@ -4388,8 +4377,19 @@ +@@ -4401,8 +4390,19 @@ [Define if you have struct stat.st_mtimensec]) fi === modified file 'debian/patches/no-zip-on-sys.path.diff' --- debian/patches/no-zip-on-sys.path.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/no-zip-on-sys.path.diff 2014-04-04 21:09:34 +0000 @@ -1,10 +1,8 @@ # DP: Do not add /usr/lib/pythonXY.zip on sys.path. -Index: b/Modules/getpath.c -=================================================================== --- a/Modules/getpath.c +++ b/Modules/getpath.c -@@ -474,7 +474,9 @@ +@@ -470,7 +470,9 @@ wchar_t *path = NULL; wchar_t *prog = Py_GetProgramName(); wchar_t argv0_path[MAXPATHLEN+1]; @@ -14,7 +12,7 @@ int pfound, efound; /* 1 if found; -1 if found build directory */ wchar_t *buf; size_t bufsz; -@@ -679,6 +681,7 @@ +@@ -675,6 +677,7 @@ else reduce(prefix); @@ -22,7 +20,7 @@ wcsncpy(zip_path, prefix, MAXPATHLEN); zip_path[MAXPATHLEN] = L'\0'; if (pfound > 0) { /* Use the reduced prefix returned by Py_GetPrefix() */ -@@ -691,6 +694,7 @@ +@@ -687,6 +690,7 @@ bufsz = wcslen(zip_path); /* Replace "00" with version */ zip_path[bufsz - 6] = VERSION[0]; zip_path[bufsz - 5] = VERSION[2]; @@ -30,7 +28,7 @@ efound = search_for_exec_prefix(argv0_path, home, _exec_prefix, lib_python); -@@ -736,7 +740,9 @@ +@@ -732,7 +736,9 @@ defpath = delim + 1; } @@ -40,7 +38,7 @@ bufsz += wcslen(exec_prefix) + 1; buf = (wchar_t *)PyMem_Malloc(bufsz * sizeof(wchar_t)); -@@ -753,9 +759,11 @@ +@@ -749,9 +755,11 @@ else buf[0] = '\0'; === modified file 'debian/patches/platform-lsbrelease.diff' --- debian/patches/platform-lsbrelease.diff 2014-01-02 18:05:27 +0000 +++ debian/patches/platform-lsbrelease.diff 2014-04-04 21:09:28 +0000 @@ -1,10 +1,8 @@ # DP: Use /etc/lsb-release to identify the platform. -Index: b/Lib/platform.py -=================================================================== --- a/Lib/platform.py +++ b/Lib/platform.py -@@ -261,7 +261,7 @@ +@@ -265,7 +265,7 @@ _supported_dists = ( 'SuSE', 'debian', 'fedora', 'redhat', 'centos', 'mandrake', 'mandriva', 'rocks', 'slackware', 'yellowdog', 'gentoo', @@ -13,7 +11,7 @@ def _parse_release_file(firstline): -@@ -290,6 +290,10 @@ +@@ -294,6 +294,10 @@ id = l[1] return '', version, id @@ -24,7 +22,7 @@ def linux_distribution(distname='', version='', id='', supported_dists=_supported_dists, -@@ -314,6 +318,25 @@ +@@ -318,6 +322,25 @@ args given as parameters. """ @@ -48,5 +46,5 @@ + pass + try: - etc = os.listdir('/etc') + etc = os.listdir(_UNIXCONFDIR) except OSError: === modified file 'debian/patches/site-locations.diff' --- debian/patches/site-locations.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/site-locations.diff 2014-04-04 21:08:44 +0000 @@ -1,7 +1,5 @@ # DP: Set site-packages/dist-packages -Index: b/Lib/site.py -=================================================================== --- a/Lib/site.py +++ b/Lib/site.py @@ -7,12 +7,18 @@ @@ -28,7 +26,7 @@ seen.add(prefix) if os.sep == '/': -+ if 'VIRTUAL_ENV' in os.environ: ++ if 'VIRTUAL_ENV' in os.environ or sys.base_prefix != sys.prefix: + sitepackages.append(os.path.join(prefix, "lib", + "python" + sys.version[:3], + "site-packages")) === modified file 'debian/patches/statvfs-f_flag-constants.diff' --- debian/patches/statvfs-f_flag-constants.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/statvfs-f_flag-constants.diff 2014-04-04 21:09:47 +0000 @@ -7,11 +7,9 @@ Modules/posixmodule.c | 37 +++++++++++++++++++++++++++++++++++++ 1 files changed, 37 insertions(+), 0 deletions(-) -Index: b/Modules/posixmodule.c -=================================================================== --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c -@@ -11924,6 +11924,43 @@ +@@ -11984,6 +11984,43 @@ if (PyModule_AddIntMacro(m, F_TEST)) return -1; #endif === modified file 'debian/patches/test-no-random-order.diff' --- debian/patches/test-no-random-order.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/test-no-random-order.diff 2014-04-04 21:10:37 +0000 @@ -2,9 +2,9 @@ --- a/Tools/scripts/run_tests.py +++ b/Tools/scripts/run_tests.py -@@ -33,7 +33,6 @@ - # Allow user-specified interpreter options to override our defaults. - args.extend(test.support.args_from_interpreter_flags()) +@@ -39,7 +39,6 @@ + args.extend(['-W', 'error::BytesWarning']) + args.extend(['-m', 'test', # Run the test suite - '-r', # Randomize test order '-w', # Re-run failed tests in verbose mode === modified file 'debian/patches/tkinter-import.diff' --- debian/patches/tkinter-import.diff 2013-12-25 21:56:04 +0000 +++ debian/patches/tkinter-import.diff 2014-04-04 21:09:16 +0000 @@ -2,9 +2,9 @@ --- a/Lib/tkinter/__init__.py +++ b/Lib/tkinter/__init__.py -@@ -37,7 +37,10 @@ - - import warnings +@@ -35,7 +35,10 @@ + # Attempt to configure Tcl/Tk without requiring PATH + from tkinter import _fix -import _tkinter # If this fails your Python may not be configured for Tk +try: === modified file 'debian/rules' --- debian/rules 2014-03-22 13:39:34 +0000 +++ debian/rules 2014-04-03 18:51:57 +0000 @@ -706,9 +706,6 @@ -find $(d)/usr/lib/python$(VER) -name '*_failed*.so' find $(d)/usr/lib/python$(VER) -name '*_failed*.so' | xargs -r rm -f - : # FIXME: don't ship ensurepip for now - rm -rf $(d)/usr/lib/python$(VER)/ensurepip - for i in $(d)/$(scriptdir)/lib-dynload/*.so; do \ b=$$(basename $$i .cpython-34m.so); \ d=$${b}.cpython-34m-$(DEB_HOST_MULTIARCH).so; \