Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Aug 2014 06:54:20 +0000 (UTC)
From:      Marcus von Appen <mva@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r363790 - in head/lang/python27: . files
Message-ID:  <201408020654.s726sK0m086096@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mva
Date: Sat Aug  2 06:54:20 2014
New Revision: 363790
URL: http://svnweb.freebsd.org/changeset/ports/363790
QAT: https://qat.redports.org/buildarchive/r363790/

Log:
  - Remove everything related to USE_PYTHON and bsd.python.mk. This is a
    preparatory step to convert bsd.python.mk into a USES file.
  - Remove the shared/static build separation, which is the source of many
    problems and even more hacks. Instead build only the shared version, which
    greatly simplifies the build.
  - Remove the FPECTL option to align the build with the clean "template" from
    lang/python34.
  - Remove support for GNU pthreads via the PTH option. It is a permanent
    troublemaker for ports using Python and pthread support.
  - Remove PORTDATA and EXAMPLES. Those will be made available via separate
    ports.
  - Add a new DEBUG option to enable debug builds as for lang/python34.
  - Remove bin/smtpd. Only Python2.7 wants to install it, but we'd like to keep
    it consistent with the other lang/pythonXX ports
  - Add CPE support.
  - Reactivate curses/ncurses support.
  - Use buildbottest in the regression-test: target.
  - Move pkg-message to the right place.
  
  Phabric:		D488
  Exp-run:	192242, 192244
  Reviewed by:	koobs
  With hat:	python@

Added:
  head/lang/python27/files/patch-Lib_distutils_command_build_scripts.py   (contents, props changed)
  head/lang/python27/pkg-message
     - copied unchanged from r363787, head/lang/python27/files/pkg-message
Deleted:
  head/lang/python27/files/pkg-message
Modified:
  head/lang/python27/Makefile
  head/lang/python27/files/extra-patch-setup.py
  head/lang/python27/files/patch-Makefile.pre.in
  head/lang/python27/files/patch-setup.py
  head/lang/python27/pkg-plist

Modified: head/lang/python27/Makefile
==============================================================================
--- head/lang/python27/Makefile	Sat Aug  2 06:40:00 2014	(r363789)
+++ head/lang/python27/Makefile	Sat Aug  2 06:54:20 2014	(r363790)
@@ -1,12 +1,12 @@
-# Created by: Hye-Shik Chang <perky@FreeBSD.org>
 # $FreeBSD$
 
 PORTNAME=	python27
 PORTVERSION=	2.7.8
+PORTREVISION=	1
 CATEGORIES=	lang python ipv6
 MASTER_SITES=	PYTHON
-MASTER_SITE_SUBDIR=	${PYTHON_MASTER_SITE_SUBDIR}
-DISTNAME=	${PYTHON_DISTNAME}
+MASTER_SITE_SUBDIR=	ftp/python/${PORTVERSION}
+DISTNAME=	Python-${PORTVERSION}
 DIST_SUBDIR=	python
 
 MAINTAINER=	python@FreeBSD.org
@@ -14,56 +14,39 @@ COMMENT=	Interpreted object-oriented pro
 
 LICENSE=	PSFL
 
-GNU_CONFIGURE=		yes
-CONFIGURE_SCRIPT=	../configure # must be relative
-CONFIGURE_ENV=		SVNVERSION="echo freebsd" ac_cv_opt_olimit_ok=no
-MAKE_ENV=		VPATH="${PYTHON_WRKSRC}"
-
-INSTALL_TARGET=	altinstall
-
-USES=		readline tar:xz cpe
+USES=		cpe ncurses pkgconfig readline tar:xz
 USE_LDCONFIG=	yes
-USE_PYTHON=	yes
+GNU_CONFIGURE=	yes
 
 CPE_VENDOR=	python
 CPE_PRODUCT=	${CPE_VENDOR}
 CPE_VERSION=	${PORTVERSION}
 
-PYTHON_VERSION=		python2.7
-PYTHON_NO_DEPENDS=	yes
-
-WRKSRC=		${PYTHON_WRKSRC}/portbld.static
-SHARED_WRKSRC=	${PYTHON_WRKSRC}/portbld.shared
-PATCH_WRKSRC=	${PYTHON_WRKSRC}
-
-PLIST=		${WRKDIR}/PLIST
-PLIST_TEMPLATE?=${PKGDIR}/pkg-plist
-PLIST_SUB=	PYVER=${PYTHON_VERSION:S/python//} \
-		PYMAJOR=${PYTHON_MAJOR_VER} \
-		PYVER_WITHPAT=${PORTVERSION:S/.c/c/} \
-		PORTVERSION=${PORTVERSION}
-EXAMPLESDIR=	${PREFIX}/share/examples/${PYTHON_VERSION}
-DATADIR=	${PREFIX}/share/${PYTHON_VERSION}
-
-BIN_SCRIPTS=	2to3 idle pydoc smtpd.py
-BIN_FILES=	python python-shared python-config python-shared-config \
-		${BIN_SCRIPTS}
-BINLINKS_SUB_TMPL=	-e 's,smtpd,smtpd%%VERSION%%,' \
-			-e 's,2to3,2to3-%%VERSION%%,' \
-			-e 's,(idle|pydoc|python-shared|python),\1%%VERSION%%,'
-BINLINKS_SUB_PYTHON_VER=	${BINLINKS_SUB_TMPL:S/%%VERSION%%/${PYTHON_VER}/g}
+CONFIGURE_ARGS+=	--enable-shared
+CONFIGURE_ENV+=		OPT=""							# Null out OPT to respect user CFLAGS and remove optimizations
 
-OPTIONS_DEFINE=		EXAMPLES FPECTL IPV6 NLS PTH PYMALLOC SEM THREADS
-OPTIONS_DEFAULT=	IPV6 PYMALLOC SEM THREADS UCS4
+INSTALL_TARGET=		altinstall						# Don't want cloberring of unprefixed files
+SHAREMODE=		644							# Match upstream INSTALL_DATA=644, so we can STRIP shared libraries
+MAKE_ARGS+=		INSTALL_SHARED="${INSTALL_LIB}"				# Override read-only for libraries, so we can STRIP them
+MAKE_ARGS+=		LIBPC="${PREFIX}/libdata/pkgconfig"			# Until pathfix gets support for files other than Makefile.in
+
+PLIST_SUB=		ABI=${ABIFLAGS} \
+			PORTVERSION=${PORTVERSION} \
+			OSMAJOR=${OSVERSION:C/([0-9]*)[0-9]{5}/\1/}		# For plat-freebsd* in pkg-plist. http://bugs.python.org/issue19554
 
+OPTIONS_DEFINE=		DEBUG IPV6 NLS PYMALLOC SEM THREADS
+OPTIONS_DEFAULT=	IPV6 NLS PYMALLOC SEM THREADS UCS4
 OPTIONS_SINGLE=		UNICODE
 OPTIONS_SINGLE_UNICODE=	UCS2 UCS4
 
-NLS_DESC=	Enable Gettext support for the locale module
+OPTIONS_SUB=		yes
+
+NLS_DESC=	Enable gettext support for the locale module
 UCS2_DESC=	Enable UCS2 Unicode Strings
 UCS4_DESC=	Enable UCS4 Unicode Strings
+PYMALLOC_DESC=	Enable specialized mallocs
 
-FPECTL_CONFIGURE_ON=	--with-fpectl
+DEBUG_CONFIGURE_WITH=	pydebug
 IPV6_CONFIGURE_ENABLE=	ipv6
 
 # Use CPPFLAGS over CFLAGS due to -I ordering, causing elementtree and pyexpat
@@ -79,32 +62,15 @@ PYMALLOC_CONFIGURE_WITH=	pymalloc
 SEM_CONFIGURE_ENV=	ac_cv_posix_semaphores_enabled=yes
 SEM_CONFIGURE_ENV_OFF=	ac_cv_posix_semaphores_enabled=no
 
+THREADS_CONFIGURE_WITH=	threads
+THREADS_CFLAGS=		${PTHREAD_CFLAGS}
+THREADS_LDFLAGS=	${PTHREAD_LIBS}
+
 UCS2_CONFIGURE_ON=	--enable-unicode=ucs2
 UCS4_CONFIGURE_ON=	--enable-unicode=ucs4
 
 .include <bsd.port.options.mk>
 
-.if ${PORT_OPTIONS:MTHREADS}
-PLIST_SUB+=	THREADS=""
-.if ${PORT_OPTIONS:MPTH}
-CONFIGURE_ARGS+=	--with-pth --with-system-ffi
-CONFIGURE_ENV+=		ac_cv_pthread=no
-LIB_DEPENDS+=		libpth.so:${PORTSDIR}/devel/pth \
-			libffi.so:${PORTSDIR}/devel/libffi
-_PTH_CPPFLAGS=		"-I${LOCALBASE}/include/pth"
-_PTH_LDFLAGS=		"-L${LOCALBASE}/lib/pth"
-CPPFLAGS:=		${_PTH_CPPFLAGS} ${CPPFLAGS}
-LDFLAGS+=		${_PTH_LDFLAGS}
-.else
-CONFIGURE_ARGS+=	--with-threads
-CFLAGS+=		${PTHREAD_CFLAGS}
-LDFLAGS+=		${PTHREAD_LIBS}
-.endif
-.else
-PLIST_SUB+=	THREADS="@comment "
-CONFIGURE_ARGS+=	--without-threads
-.endif
-
 .if ${ARCH} == i386
 PLIST_SUB+=	X86_ONLY=""
 .else
@@ -125,124 +91,28 @@ CFLAGS+=	-DPYTHON_DEFAULT_RECURSION_LIMI
 # See http://bugs.freebsd.org/115940
 .if !exists(/usr/bin/ypcat) || defined(WITHOUT_NIS) # the world with NO_NIS
 PLIST_SUB+=	NO_NIS="@comment "
-WITHOUT_NIS?=	detected
 .else
 PLIST_SUB+=	NO_NIS=""
 .endif
 
-CONFIGURE_ENV+=	OPT="${_PTH_CPPFLAGS}"
-
-post-extract:
-# The distribution tarball for python 2.7 has permission bits for 'others'
-# set to 0. Later during install, we copy Tools and Demo to the installed
-# prefix, so set them right here.
-	${CHMOD} -R og=u-w ${PYTHON_WRKSRC}/Tools ${PYTHON_WRKSRC}/Demo
-
-pre-patch:
-	${MKDIR} ${WRKSRC} ${SHARED_WRKSRC}/Modules
-	${LN} ${PATCH_WRKSRC}/Lib/smtpd.py ${PATCH_WRKSRC}/Tools/scripts/
-.for script in ${BIN_SCRIPTS}
-	${SED} -e '1s,^.*$$,#!${PREFIX}/bin/${PYTHON_VERSION},' \
-		${PATCH_WRKSRC}/Tools/scripts/${script} \
-		> ${WRKDIR}/`${ECHO_CMD} ${script} | ${SED} -E ${BINLINKS_SUB_PYTHON_VER}`
-.endfor
-	${REINPLACE_CMD} -e \
+post-patch:
+	@${REINPLACE_CMD} -e \
 		's,/usr/doc/python-docs-,${PREFIX}/share/doc/python,g' \
 		${PATCH_WRKSRC}/Lib/pydoc.py
-	${REINPLACE_CMD} -e \
-		's|^\( *prefixes = .*\)\]$$|\1, "${LOCALBASE}"]|g' \
-		${PATCH_WRKSRC}/Lib/site.py
-	${REINPLACE_CMD} -e \
-		's|^	\(..ASDLGEN.*\)$$|	${TRUE}|g; \
-		s|[(]LIBDIR[)]/pkgconfig|(prefix)/libdata/pkgconfig|g' \
-		${PATCH_WRKSRC}/Makefile.pre.in
-
-	${REINPLACE_CMD} -e \
-		's|*\(..INSTALL_SCRIPT.*\)python-config$$|#port \1|' \
-		${PATCH_WRKSRC}/Makefile.pre.in
-
-	${SED} -e 's|^#!.*|#!${PREFIX}/bin/${PYTHON_VERSION}|' \
-		-e 's|libs = getvar|libs = getvar("LDFLAGS").split() + getvar|' \
-		${PATCH_WRKSRC}/Misc/python-config.in > ${WRKDIR}/${PYTHON_VERSION}-config
-	${SED} -e 's|^#!.*|#!${PREFIX}/bin/${PYTHON_VERSION:S/thon/thon-shared/}|' \
-		-e 's|libs = getvar|libs = getvar("LDFLAGS").split() + getvar|' \
-		${PATCH_WRKSRC}/Misc/python-config.in > ${WRKDIR}/${PYTHON_VERSION:S/thon/thon-shared/}-config
-
-.if ${PORT_OPTIONS:MFPECTL} && ${ARCH} == i386
-	${MKDIR} ${WRKSRC}/Modules
-	${ECHO} "fpectl fpectlmodule.c" >> ${WRKSRC}/Modules/Setup.dist
-.endif
-
-post-patch:
 .if ${PORT_OPTIONS:MSEM}
+	@# do not use SEM_EXTRA_PATCHES here, since patch-setup.py overlaps with this one
 	@cd ${WRKSRC} && ${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-setup.py
 .endif
-.if defined(WITHOUT_NIS)
-	${REINPLACE_CMD} -e \
-	    's/disabled_module_list =[^]]*/&, "nis"/' \
-		${PATCH_WRKSRC}/setup.py
-.endif
-
-post-configure:
-	${TAR} -C ${WRKSRC} -cf - . | ${TAR} -C ${SHARED_WRKSRC} -xf -
-	${LN} -sf ${PYTHON_WRKSRC}/Lib ${WRKSRC}/Lib
-	${SED} -e 's,^\(LDLIBRARY=\).*$$,\1libpython$$(VERSION).so,' \
-		-e 's,^\(BLDLIBRARY=\).*$$,\1-L. -lpython$$(VERSION),' \
-		-e 's,^\(CFLAGSFORSHARED=\).*$$,\1$$(CCSHARED),' \
-		-e 's,^\(Makefile Modules/config.c:.*\)Makefile.pre,\1,' \
-		-e 's,^\(.(BUILDPYTHON)\: .*\).(LIBRARY),\1,' \
-		-e 's,^\(.(BUILDPYTHON):.*\).(LIBRARY),\1,' \
-		${WRKSRC}/Makefile > ${SHARED_WRKSRC}/Makefile
-
-pre-build:
-	cd ${SHARED_WRKSRC}; \
-	${SETENV} ${MAKE_ENV} ${MAKE} lib${PYTHON_VERSION}.so python; \
-	${LN} -f lib${PYTHON_VERSION}.so lib${PYTHON_VERSION}.so.1; \
-	${LN} -f python ${PYTHON_VERSION:S/thon/thon-shared/}
-
-pre-install:
-	${CAT} ${PLIST_TEMPLATE} | ${AWK} '{ print $$0; } \
-	/LIBDIR.*\.py$$/ && \
-	!/\/bad|tests\/data/ \
-	{ print $$0 "o"; print $$0 "c"; }'      > ${PLIST}
-
-	@# if openssl 0.9.8 is detected, _sha{256,512} module won't be installed
-	([ -f ${WRKSRC}/.without_own_sha ] && \
-		${GREP} -v 'lib-dynload/_sha' ${PLIST} > ${PLIST}.tmp && \
-		${CAT} ${PLIST}.tmp > ${PLIST}) || ${TRUE}
+
+.if !exists(/usr/bin/ypcat) || defined(WITHOUT_NIS)
+	@${REINPLACE_CMD} -e 's/disabled_module_list =[^]]*/&, "nis"/' \
+		${WRKSRC}/setup.py
+.endif
 
 post-install:
-	@# install config providers
-	${INSTALL_SCRIPT} ${WRKDIR}/${PYTHON_VERSION}-config \
-		${STAGEDIR}${PREFIX}/bin
-	${INSTALL_SCRIPT} ${WRKDIR}/${PYTHON_VERSION:S/thon/thon-shared/}-config \
-		${STAGEDIR}${PREFIX}/bin
-
-	@# shared version of executable and library
-	${INSTALL_PROGRAM} ${SHARED_WRKSRC}/lib${PYTHON_VERSION}.so.1 \
-		${STAGEDIR}${PREFIX}/lib
-	(cd ${STAGEDIR}${PREFIX}/lib; ${LN} -sf lib${PYTHON_VERSION}.so.1 \
-		lib${PYTHON_VERSION}.so)
-	(cd ${STAGEDIR}${PREFIX}/lib/${PYTHON_VERSION}/config; \
-		${LN} -sf ../../lib${PYTHON_VERSION}.so)
-	${INSTALL_PROGRAM} \
-		${SHARED_WRKSRC}/${PYTHON_VERSION:S/thon/thon-shared/} \
-		${STAGEDIR}${PREFIX}/bin
-
-	@# additional files installing by ports
-.for script in ${BIN_SCRIPTS}
-	${INSTALL_SCRIPT} ${WRKDIR}/`${ECHO_CMD} ${script} | ${SED} -E ${BINLINKS_SUB_PYTHON_VER}` \
-		${STAGEDIR}${PREFIX}/bin
-.endfor
-	${INSTALL_MAN} ${PYTHON_WRKSRC}/Misc/python.man \
-		${STAGEDIR}${MAN1PREFIX}/man/man1/${PYTHON_VERSION}.1
-
-	@${MKDIR} ${STAGEDIR}${DATADIR}
-	@(cd ${PYTHON_WRKSRC}; ${TAR} -cf - Tools | (cd ${STAGEDIR}${DATADIR}; ${TAR} --no-same-owner -xf -))
-
-	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
-	@(cd ${PYTHON_WRKSRC}/Demo; ${TAR} -cf - * | \
-		(cd ${STAGEDIR}${EXAMPLESDIR}; ${TAR} --no-same-owner -xf -))
+	for i in ${STAGEDIR}${PREFIX}/lib/python2.7/lib-dynload/*.so; do \
+		${STRIP_CMD} $$i; done						# Strip shared extensions
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libpython2.7.so.1			# Strip shared library
 
 regression-test: build
 	@cd ${WRKSRC} && ${MAKE} TESTOPTS=-j${MAKE_JOBS_NUMBER} buildbottest

Modified: head/lang/python27/files/extra-patch-setup.py
==============================================================================
--- head/lang/python27/files/extra-patch-setup.py	Sat Aug  2 06:40:00 2014	(r363789)
+++ head/lang/python27/files/extra-patch-setup.py	Sat Aug  2 06:54:20 2014	(r363790)
@@ -1,6 +1,9 @@
+# Description: SEM option patch. If SEM is enabled, enable the build properly
+# Not upstreamed
+
 --- setup.py.orig	2013-04-07 11:07:43.000000000 +0400
 +++ setup.py	2013-04-07 11:16:36.000000000 +0400
-@@ -1544,10 +1544,22 @@
+@@ -1551,10 +1551,22 @@
              macros = dict()
              libraries = []
  

Added: head/lang/python27/files/patch-Lib_distutils_command_build_scripts.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/python27/files/patch-Lib_distutils_command_build_scripts.py	Sat Aug  2 06:54:20 2014	(r363790)
@@ -0,0 +1,17 @@
+# Description: A non-invasive partial backport of the Python3 distutils behaviour.
+# This allows Python's scripts to be properly suffixed (similar to Python 3.x) on
+# installation.
+# Submitted by: mva
+
+--- Lib/distutils/command/build_scripts.py.orig	2014-07-26 11:52:20.000000000 +0200
++++ Lib/distutils/command/build_scripts.py	2014-07-26 11:52:56.000000000 +0200
+@@ -126,6 +126,9 @@
+                                  file, oldmode, newmode)
+                         os.chmod(file, newmode)
+ 
++        # XXX should we modify self.outfiles?
++        return outfiles
++
+     # copy_scripts ()
+ 
+ # class build_scripts

Modified: head/lang/python27/files/patch-Makefile.pre.in
==============================================================================
--- head/lang/python27/files/patch-Makefile.pre.in	Sat Aug  2 06:40:00 2014	(r363789)
+++ head/lang/python27/files/patch-Makefile.pre.in	Sat Aug  2 06:54:20 2014	(r363790)
@@ -1,6 +1,5 @@
-# Description: Fix out-of-tree build as a result of upstream #15819
-# Submitted by: rm (r318353)
-# Issue ID: http://bugs.python.org/issue15819#msg203348
+# Description: Link scripts in the same way Python3 does
+# Submitted by: mva
 
 # Description: Run pycompile only once
 # Submitted by: antoine (r350207)
@@ -10,21 +9,22 @@
 # Submitted by: antoine@ (r350207)
 # TODO: Upstream
 
---- ./Makefile.pre.in.orig	2013-11-10 07:36:41.000000000 +0000
-+++ ./Makefile.pre.in	2014-04-04 09:16:00.000000000 +0000
-@@ -285,9 +285,9 @@
+--- Makefile.pre.in.orig	2014-06-30 04:05:39.000000000 +0200
++++ Makefile.pre.in	2014-07-26 11:09:46.000000000 +0200
+@@ -868,6 +868,12 @@
+	(cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python2.pc)
+	-rm -f $(DESTDIR)$(LIBPC)/python.pc
+	(cd $(DESTDIR)$(LIBPC); $(LN) -s python2.pc python.pc)
++	-rm -f $(DESTDIR)$(BINDIR)/idle
++	(cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle2)
++	-rm -f $(DESTDIR)$(BINDIR)/pydoc
++	(cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc2)
++	-rm -f $(DESTDIR)$(BINDIR)/2to3
++	(cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
  
- ##########################################################################
- # AST
--AST_H_DIR=	Include
-+AST_H_DIR=	$(srcdir)/Include
- AST_H=		$(AST_H_DIR)/Python-ast.h
--AST_C_DIR=	Python
-+AST_C_DIR=	$(srcdir)/Python
- AST_C=		$(AST_C_DIR)/Python-ast.c
- AST_ASDL=	$(srcdir)/Parser/Python.asdl
- 
-@@ -1006,12 +1006,12 @@
+ # Install the interpreter with $(VERSION) affixed
+ # This goes into $(exec_prefix)
+@@ -1010,12 +1016,12 @@
  			$(DESTDIR)$(LIBDEST)/distutils/tests ; \
  	fi
  	PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
@@ -39,7 +39,7 @@
  		-d $(LIBDEST) -f \
  		-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
  		$(DESTDIR)$(LIBDEST)
-@@ -1089,8 +1089,8 @@
+@@ -1093,8 +1099,8 @@
  			if test "$(SO)" = .dll; then \
  				$(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
  			else \

Modified: head/lang/python27/files/patch-setup.py
==============================================================================
--- head/lang/python27/files/patch-setup.py	Sat Aug  2 06:40:00 2014	(r363789)
+++ head/lang/python27/files/patch-setup.py	Sat Aug  2 06:54:20 2014	(r363790)
@@ -1,6 +1,21 @@
---- ./setup.py.orig	2014-07-04 18:02:21.711919294 +1000
-+++ ./setup.py	2014-07-04 18:11:14.642091269 +1000
-@@ -33,7 +33,7 @@
+# Description: Partial script installation backport from Python3
+# Submitted by: mva
+
+# Description: Some modules are installed via other ports
+
+# Description: ossaudiodev detection fix backport
+
+--- setup.py.orig	2014-06-30 04:05:48.000000000 +0200
++++ setup.py	2014-07-26 14:51:29.000000000 +0200
+@@ -15,6 +15,7 @@
+ from distutils.command.build_ext import build_ext
+ from distutils.command.install import install
+ from distutils.command.install_lib import install_lib
++from distutils.command.build_scripts import build_scripts
+ from distutils.spawn import find_executable
+ 
+ cross_compiling = "_PYTHON_HOST_PLATFORM" in os.environ
+@@ -33,7 +34,7 @@
  COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS"))
  
  # This global variable is used to hold the list of modules to be disabled.
@@ -9,16 +24,7 @@
  
  def add_dir_to_list(dirlist, dir):
      """Add the directory 'dir' to the list 'dirlist' (at the front) if
-@@ -867,6 +867,8 @@
-             # OpenSSL doesn't do these until 0.9.8 so we'll bring our own hash
-             exts.append( Extension('_sha256', ['sha256module.c']) )
-             exts.append( Extension('_sha512', ['sha512module.c']) )
-+        else:
-+            open('.without_own_sha', 'w')
- 
-         # Modules that provide persistent dictionary-like semantics.  You will
-         # probably want to arrange for at least one of them to be available on
-@@ -1212,7 +1214,7 @@
+@@ -1212,7 +1213,7 @@
                  sysroot = macosx_sdk_root()
                  f = os.path.join(sysroot, f[1:])
  
@@ -27,7 +33,7 @@
              data = open(f).read()
              m = re.search(r"#s*define\s+HASHVERSION\s+2\s*", data)
              if m is not None:
-@@ -1551,7 +1553,7 @@
+@@ -1551,7 +1552,7 @@
              macros = dict()
              libraries = []
  
@@ -36,7 +42,7 @@
              # FreeBSD's P1003.1b semaphore support is very experimental
              # and has many known problems. (as of June 2008)
              macros = dict()
-@@ -1602,9 +1604,10 @@
+@@ -1602,9 +1603,10 @@
          else:
              missing.append('linuxaudiodev')
  
@@ -50,14 +56,47 @@
              exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
          else:
              missing.append('ossaudiodev')
-@@ -2228,9 +2231,7 @@
-           ext_modules=[Extension('_struct', ['_struct.c'])],
+@@ -2176,6 +2178,22 @@
+     def is_chmod_supported(self):
+         return hasattr(os, 'chmod')
+ 
++class PyBuildScripts(build_scripts):
++    def copy_scripts(self):
++        outfiles = build_scripts.copy_scripts(self)
++        fullversion = '{0[0]}.{0[1]}'.format(sys.version_info)
++        newoutfiles = []
++        for filename in outfiles:
++            if filename.endswith('2to3'):
++                newfilename = filename + '-' + fullversion
++            else:
++                newfilename = filename + fullversion
++            log.info('renaming {} to {}'.format(filename, newfilename))
++            os.rename(filename, newfilename)
++            newoutfiles.append(newfilename)
++        return newoutfiles
++
++
+ SUMMARY = """
+ Python is an interpreted, interactive, object-oriented programming
+ language. It is often compared to Tcl, Perl, Scheme or Java.
+@@ -2221,7 +2239,9 @@
+           platforms = ["Many"],
+ 
+           # Build info
+-          cmdclass = {'build_ext':PyBuildExt, 'install':PyBuildInstall,
++          cmdclass = {'build_ext':PyBuildExt,
++                      'build_scripts':PyBuildScripts,
++                      'install':PyBuildInstall,
+                       'install_lib':PyBuildInstallLib},
+           # The struct module is defined here, because build_ext won't be
+           # called unless there's at least one extension module defined.
+@@ -2229,8 +2249,7 @@
  
            # Scripts to install
--          scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle',
+           scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle',
 -                     'Tools/scripts/2to3',
 -                     'Lib/smtpd.py']
-+          scripts = []
++                     'Tools/scripts/2to3']
          )
  
  # --install-platlib

Copied: head/lang/python27/pkg-message (from r363787, head/lang/python27/files/pkg-message)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/python27/pkg-message	Sat Aug  2 06:54:20 2014	(r363790, copy of r363787, head/lang/python27/files/pkg-message)
@@ -0,0 +1,11 @@
+=====================================================================
+
+Note that some standard Python modules are provided as separate ports
+as they require additional dependencies. They are available as:
+
+bsddb           databases/py-bsddb
+gdbm            databases/py-gdbm
+sqlite3         databases/py-sqlite3
+tkinter         x11-toolkits/py-tkinter
+
+=====================================================================

Modified: head/lang/python27/pkg-plist
==============================================================================
--- head/lang/python27/pkg-plist	Sat Aug  2 06:40:00 2014	(r363789)
+++ head/lang/python27/pkg-plist	Sat Aug  2 06:54:20 2014	(r363790)
@@ -1,2480 +1,4549 @@
 libdata/pkgconfig/python-2.7.pc
-bin/2to3-%%PYVER%%
-bin/idle%%PYVER%%
-bin/pydoc%%PYVER%%
-bin/python%%PYVER%%
-bin/python%%PYVER%%-config
-bin/python-shared%%PYVER%%
-bin/python-shared%%PYVER%%-config
-bin/smtpd%%PYVER%%.py
-%%PYTHON_INCLUDEDIR%%/Python-ast.h
-%%PYTHON_INCLUDEDIR%%/Python.h
-%%PYTHON_INCLUDEDIR%%/abstract.h
-%%PYTHON_INCLUDEDIR%%/asdl.h
-%%PYTHON_INCLUDEDIR%%/ast.h
-%%PYTHON_INCLUDEDIR%%/bitset.h
-%%PYTHON_INCLUDEDIR%%/boolobject.h
-%%PYTHON_INCLUDEDIR%%/bufferobject.h
-%%PYTHON_INCLUDEDIR%%/bytearrayobject.h
-%%PYTHON_INCLUDEDIR%%/bytes_methods.h
-%%PYTHON_INCLUDEDIR%%/bytesobject.h
-%%PYTHON_INCLUDEDIR%%/cStringIO.h
-%%PYTHON_INCLUDEDIR%%/cellobject.h
-%%PYTHON_INCLUDEDIR%%/ceval.h
-%%PYTHON_INCLUDEDIR%%/classobject.h
-%%PYTHON_INCLUDEDIR%%/cobject.h
-%%PYTHON_INCLUDEDIR%%/code.h
-%%PYTHON_INCLUDEDIR%%/codecs.h
-%%PYTHON_INCLUDEDIR%%/compile.h
-%%PYTHON_INCLUDEDIR%%/complexobject.h
-%%PYTHON_INCLUDEDIR%%/datetime.h
-%%PYTHON_INCLUDEDIR%%/descrobject.h
-%%PYTHON_INCLUDEDIR%%/dictobject.h
-%%PYTHON_INCLUDEDIR%%/dtoa.h
-%%PYTHON_INCLUDEDIR%%/enumobject.h
-%%PYTHON_INCLUDEDIR%%/errcode.h
-%%PYTHON_INCLUDEDIR%%/eval.h
-%%PYTHON_INCLUDEDIR%%/fileobject.h
-%%PYTHON_INCLUDEDIR%%/floatobject.h
-%%PYTHON_INCLUDEDIR%%/frameobject.h
-%%PYTHON_INCLUDEDIR%%/funcobject.h
-%%PYTHON_INCLUDEDIR%%/genobject.h
-%%PYTHON_INCLUDEDIR%%/graminit.h
-%%PYTHON_INCLUDEDIR%%/grammar.h
-%%PYTHON_INCLUDEDIR%%/import.h
-%%PYTHON_INCLUDEDIR%%/intobject.h
-%%PYTHON_INCLUDEDIR%%/intrcheck.h
-%%PYTHON_INCLUDEDIR%%/iterobject.h
-%%PYTHON_INCLUDEDIR%%/listobject.h
-%%PYTHON_INCLUDEDIR%%/longintrepr.h
-%%PYTHON_INCLUDEDIR%%/longobject.h
-%%PYTHON_INCLUDEDIR%%/marshal.h
-%%PYTHON_INCLUDEDIR%%/memoryobject.h
-%%PYTHON_INCLUDEDIR%%/metagrammar.h
-%%PYTHON_INCLUDEDIR%%/methodobject.h
-%%PYTHON_INCLUDEDIR%%/modsupport.h
-%%PYTHON_INCLUDEDIR%%/moduleobject.h
-%%PYTHON_INCLUDEDIR%%/node.h
-%%PYTHON_INCLUDEDIR%%/object.h
-%%PYTHON_INCLUDEDIR%%/objimpl.h
-%%PYTHON_INCLUDEDIR%%/opcode.h
-%%PYTHON_INCLUDEDIR%%/osdefs.h
-%%PYTHON_INCLUDEDIR%%/parsetok.h
-%%PYTHON_INCLUDEDIR%%/patchlevel.h
-%%PYTHON_INCLUDEDIR%%/pgen.h
-%%PYTHON_INCLUDEDIR%%/pgenheaders.h
-%%PYTHON_INCLUDEDIR%%/py_curses.h
-%%PYTHON_INCLUDEDIR%%/pyarena.h
-%%PYTHON_INCLUDEDIR%%/pycapsule.h
-%%PYTHON_INCLUDEDIR%%/pyconfig.h
-%%PYTHON_INCLUDEDIR%%/pyctype.h
-%%PYTHON_INCLUDEDIR%%/pydebug.h
-%%PYTHON_INCLUDEDIR%%/pyerrors.h
-%%PYTHON_INCLUDEDIR%%/pyexpat.h
-%%PYTHON_INCLUDEDIR%%/pyfpe.h
-%%PYTHON_INCLUDEDIR%%/pygetopt.h
-%%PYTHON_INCLUDEDIR%%/pymacconfig.h
-%%PYTHON_INCLUDEDIR%%/pymactoolbox.h
-%%PYTHON_INCLUDEDIR%%/pymath.h
-%%PYTHON_INCLUDEDIR%%/pymem.h
-%%PYTHON_INCLUDEDIR%%/pyport.h
-%%PYTHON_INCLUDEDIR%%/pystate.h
-%%PYTHON_INCLUDEDIR%%/pystrcmp.h
-%%PYTHON_INCLUDEDIR%%/pystrtod.h
-%%PYTHON_INCLUDEDIR%%/pythonrun.h
-%%PYTHON_INCLUDEDIR%%/pythread.h
-%%PYTHON_INCLUDEDIR%%/rangeobject.h
-%%PYTHON_INCLUDEDIR%%/setobject.h
-%%PYTHON_INCLUDEDIR%%/sliceobject.h
-%%PYTHON_INCLUDEDIR%%/stringobject.h
-%%PYTHON_INCLUDEDIR%%/structmember.h
-%%PYTHON_INCLUDEDIR%%/structseq.h
-%%PYTHON_INCLUDEDIR%%/symtable.h
-%%PYTHON_INCLUDEDIR%%/sysmodule.h
-%%PYTHON_INCLUDEDIR%%/timefuncs.h
-%%PYTHON_INCLUDEDIR%%/token.h
-%%PYTHON_INCLUDEDIR%%/traceback.h
-%%PYTHON_INCLUDEDIR%%/tupleobject.h
-%%PYTHON_INCLUDEDIR%%/ucnhash.h
-%%PYTHON_INCLUDEDIR%%/unicodeobject.h
-%%PYTHON_INCLUDEDIR%%/warnings.h
-%%PYTHON_INCLUDEDIR%%/weakrefobject.h
-lib/lib%%PYTHON_VERSION%%.so
-lib/lib%%PYTHON_VERSION%%.so.1
-%%PYTHON_LIBDIR%%/BaseHTTPServer.py
-%%PYTHON_LIBDIR%%/Bastion.py
-%%PYTHON_LIBDIR%%/CGIHTTPServer.py
-%%PYTHON_LIBDIR%%/ConfigParser.py
-%%PYTHON_LIBDIR%%/Cookie.py
-%%PYTHON_LIBDIR%%/DocXMLRPCServer.py
-%%PYTHON_LIBDIR%%/HTMLParser.py
-%%PYTHON_LIBDIR%%/LICENSE.txt
-%%PYTHON_LIBDIR%%/MimeWriter.py
-%%PYTHON_LIBDIR%%/Queue.py
-%%PYTHON_LIBDIR%%/SimpleHTTPServer.py
-%%PYTHON_LIBDIR%%/SimpleXMLRPCServer.py
-%%PYTHON_LIBDIR%%/SocketServer.py
-%%PYTHON_LIBDIR%%/StringIO.py
-%%PYTHON_LIBDIR%%/UserDict.py
-%%PYTHON_LIBDIR%%/UserList.py
-%%PYTHON_LIBDIR%%/UserString.py
-%%PYTHON_LIBDIR%%/_LWPCookieJar.py
-%%PYTHON_LIBDIR%%/_MozillaCookieJar.py
-%%PYTHON_LIBDIR%%/__future__.py
-%%PYTHON_LIBDIR%%/__phello__.foo.py
-%%PYTHON_LIBDIR%%/_abcoll.py
-%%PYTHON_LIBDIR%%/_osx_support.py
-%%PYTHON_LIBDIR%%/_pyio.py
-%%PYTHON_LIBDIR%%/_strptime.py
-%%PYTHON_LIBDIR%%/_sysconfigdata.py
-%%PYTHON_LIBDIR%%/_threading_local.py
-%%PYTHON_LIBDIR%%/_weakrefset.py
-%%PYTHON_LIBDIR%%/abc.py
-%%PYTHON_LIBDIR%%/aifc.py
-%%PYTHON_LIBDIR%%/antigravity.py
-%%PYTHON_LIBDIR%%/anydbm.py
-%%PYTHON_LIBDIR%%/argparse.py
-%%PYTHON_LIBDIR%%/ast.py
-%%PYTHON_LIBDIR%%/asynchat.py
-%%PYTHON_LIBDIR%%/asyncore.py
-%%PYTHON_LIBDIR%%/atexit.py
-%%PYTHON_LIBDIR%%/audiodev.py
-%%PYTHON_LIBDIR%%/base64.py
-%%PYTHON_LIBDIR%%/bdb.py
-%%PYTHON_LIBDIR%%/binhex.py
-%%PYTHON_LIBDIR%%/bisect.py
-%%PYTHON_LIBDIR%%/bsddb/__init__.py
-%%PYTHON_LIBDIR%%/bsddb/db.py
-%%PYTHON_LIBDIR%%/bsddb/dbobj.py
-%%PYTHON_LIBDIR%%/bsddb/dbrecio.py
-%%PYTHON_LIBDIR%%/bsddb/dbshelve.py
-%%PYTHON_LIBDIR%%/bsddb/dbtables.py
-%%PYTHON_LIBDIR%%/bsddb/dbutils.py
-%%PYTHON_LIBDIR%%/bsddb/test/__init__.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_all.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_associate.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_basics.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_compare.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_compat.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_cursor_pget_bug.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_db.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_dbenv.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_dbobj.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_dbshelve.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_dbtables.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_distributed_transactions.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_early_close.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_fileid.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_get_none.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_join.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_lock.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_misc.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_pickle.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_queue.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_recno.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_replication.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_sequence.py
-%%PYTHON_LIBDIR%%/bsddb/test/test_thread.py
-%%PYTHON_LIBDIR%%/cProfile.py
-%%PYTHON_LIBDIR%%/calendar.py
-%%PYTHON_LIBDIR%%/cgi.py
-%%PYTHON_LIBDIR%%/cgitb.py
-%%PYTHON_LIBDIR%%/chunk.py
-%%PYTHON_LIBDIR%%/cmd.py
-%%PYTHON_LIBDIR%%/code.py
-%%PYTHON_LIBDIR%%/codecs.py
-%%PYTHON_LIBDIR%%/codeop.py
-%%PYTHON_LIBDIR%%/collections.py
-%%PYTHON_LIBDIR%%/colorsys.py
-%%PYTHON_LIBDIR%%/commands.py
-%%PYTHON_LIBDIR%%/compileall.py
-%%PYTHON_LIBDIR%%/compiler/__init__.py
-%%PYTHON_LIBDIR%%/compiler/ast.py
-%%PYTHON_LIBDIR%%/compiler/consts.py
-%%PYTHON_LIBDIR%%/compiler/future.py
-%%PYTHON_LIBDIR%%/compiler/misc.py
-%%PYTHON_LIBDIR%%/compiler/pyassem.py
-%%PYTHON_LIBDIR%%/compiler/pycodegen.py
-%%PYTHON_LIBDIR%%/compiler/symbols.py
-%%PYTHON_LIBDIR%%/compiler/syntax.py
-%%PYTHON_LIBDIR%%/compiler/transformer.py
-%%PYTHON_LIBDIR%%/compiler/visitor.py
-%%PYTHON_LIBDIR%%/config/Makefile
-%%PYTHON_LIBDIR%%/config/Setup
-%%PYTHON_LIBDIR%%/config/Setup.config
-%%PYTHON_LIBDIR%%/config/Setup.local
-%%PYTHON_LIBDIR%%/config/config.c
-%%PYTHON_LIBDIR%%/config/config.c.in
-%%PYTHON_LIBDIR%%/config/install-sh
-%%PYTHON_LIBDIR%%/config/lib%%PYTHON_VERSION%%.a
-%%PYTHON_LIBDIR%%/config/lib%%PYTHON_VERSION%%.so
-%%PYTHON_LIBDIR%%/config/makesetup
-%%PYTHON_LIBDIR%%/config/python.o
-%%PYTHON_LIBDIR%%/contextlib.py
-%%PYTHON_LIBDIR%%/cookielib.py
-%%PYTHON_LIBDIR%%/copy.py
-%%PYTHON_LIBDIR%%/copy_reg.py
-%%PYTHON_LIBDIR%%/csv.py
-%%PYTHON_LIBDIR%%/ctypes/__init__.py
-%%PYTHON_LIBDIR%%/ctypes/_endian.py
-%%PYTHON_LIBDIR%%/ctypes/macholib/README.ctypes
-%%PYTHON_LIBDIR%%/ctypes/macholib/__init__.py
-%%PYTHON_LIBDIR%%/ctypes/macholib/dyld.py
-%%PYTHON_LIBDIR%%/ctypes/macholib/dylib.py
-%%PYTHON_LIBDIR%%/ctypes/macholib/fetch_macholib
-%%PYTHON_LIBDIR%%/ctypes/macholib/fetch_macholib.bat
-%%PYTHON_LIBDIR%%/ctypes/macholib/framework.py
-%%PYTHON_LIBDIR%%/ctypes/test/__init__.py
-%%PYTHON_LIBDIR%%/ctypes/test/runtests.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_anon.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_array_in_pointer.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_arrays.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_as_parameter.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_bitfields.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_buffers.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_byteswap.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_callbacks.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_cast.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_cfuncs.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_checkretval.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_delattr.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_errno.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_find.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_frombuffer.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_funcptr.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_functions.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_incomplete.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_init.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_internals.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_keeprefs.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_libc.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_loading.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_macholib.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_memfunctions.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_numbers.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_objects.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_parameters.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_pep3118.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_pickling.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_pointers.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_prototypes.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_python_api.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_random_things.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_refcounts.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_repr.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_returnfuncptrs.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_simplesubclasses.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_sizes.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_slicing.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_stringptr.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_strings.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_struct_fields.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_structures.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_unaligned_structures.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_unicode.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_values.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_varsize_struct.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_win32.py
-%%PYTHON_LIBDIR%%/ctypes/test/test_wintypes.py
-%%PYTHON_LIBDIR%%/ctypes/util.py
-%%PYTHON_LIBDIR%%/ctypes/wintypes.py
-%%PYTHON_LIBDIR%%/curses/__init__.py
-%%PYTHON_LIBDIR%%/curses/ascii.py
-%%PYTHON_LIBDIR%%/curses/has_key.py
-%%PYTHON_LIBDIR%%/curses/panel.py
-%%PYTHON_LIBDIR%%/curses/textpad.py
-%%PYTHON_LIBDIR%%/curses/wrapper.py
-%%PYTHON_LIBDIR%%/dbhash.py
-%%PYTHON_LIBDIR%%/decimal.py
-%%PYTHON_LIBDIR%%/difflib.py
-%%PYTHON_LIBDIR%%/dircache.py
-%%PYTHON_LIBDIR%%/dis.py
-%%PYTHON_LIBDIR%%/distutils/README
-%%PYTHON_LIBDIR%%/distutils/__init__.py
-%%PYTHON_LIBDIR%%/distutils/archive_util.py
-%%PYTHON_LIBDIR%%/distutils/bcppcompiler.py
-%%PYTHON_LIBDIR%%/distutils/ccompiler.py
-%%PYTHON_LIBDIR%%/distutils/cmd.py
-%%PYTHON_LIBDIR%%/distutils/command/__init__.py
-%%PYTHON_LIBDIR%%/distutils/command/bdist.py
-%%PYTHON_LIBDIR%%/distutils/command/bdist_dumb.py
-%%PYTHON_LIBDIR%%/distutils/command/bdist_msi.py
-%%PYTHON_LIBDIR%%/distutils/command/bdist_rpm.py
-%%PYTHON_LIBDIR%%/distutils/command/bdist_wininst.py
-%%PYTHON_LIBDIR%%/distutils/command/build.py
-%%PYTHON_LIBDIR%%/distutils/command/build_clib.py
-%%PYTHON_LIBDIR%%/distutils/command/build_ext.py
-%%PYTHON_LIBDIR%%/distutils/command/build_py.py
-%%PYTHON_LIBDIR%%/distutils/command/build_scripts.py
-%%PYTHON_LIBDIR%%/distutils/command/check.py
-%%PYTHON_LIBDIR%%/distutils/command/clean.py
-%%PYTHON_LIBDIR%%/distutils/command/command_template
-%%PYTHON_LIBDIR%%/distutils/command/config.py
-%%PYTHON_LIBDIR%%/distutils/command/install.py
-%%PYTHON_LIBDIR%%/distutils/command/install_data.py
-%%PYTHON_LIBDIR%%/distutils/command/install_egg_info.py
-%%PYTHON_LIBDIR%%/distutils/command/install_headers.py
-%%PYTHON_LIBDIR%%/distutils/command/install_lib.py
-%%PYTHON_LIBDIR%%/distutils/command/install_scripts.py
-%%PYTHON_LIBDIR%%/distutils/command/register.py
-%%PYTHON_LIBDIR%%/distutils/command/sdist.py
-%%PYTHON_LIBDIR%%/distutils/command/upload.py
-%%PYTHON_LIBDIR%%/distutils/command/wininst-6.0.exe
-%%PYTHON_LIBDIR%%/distutils/command/wininst-7.1.exe
-%%PYTHON_LIBDIR%%/distutils/command/wininst-8.0.exe
-%%PYTHON_LIBDIR%%/distutils/command/wininst-9.0-amd64.exe
-%%PYTHON_LIBDIR%%/distutils/command/wininst-9.0.exe
-%%PYTHON_LIBDIR%%/distutils/config.py
-%%PYTHON_LIBDIR%%/distutils/core.py
-%%PYTHON_LIBDIR%%/distutils/cygwinccompiler.py
-%%PYTHON_LIBDIR%%/distutils/debug.py
-%%PYTHON_LIBDIR%%/distutils/dep_util.py
-%%PYTHON_LIBDIR%%/distutils/dir_util.py
-%%PYTHON_LIBDIR%%/distutils/dist.py
-%%PYTHON_LIBDIR%%/distutils/emxccompiler.py
-%%PYTHON_LIBDIR%%/distutils/errors.py
-%%PYTHON_LIBDIR%%/distutils/extension.py
-%%PYTHON_LIBDIR%%/distutils/fancy_getopt.py
-%%PYTHON_LIBDIR%%/distutils/file_util.py
-%%PYTHON_LIBDIR%%/distutils/filelist.py
-%%PYTHON_LIBDIR%%/distutils/log.py
-%%PYTHON_LIBDIR%%/distutils/msvc9compiler.py
-%%PYTHON_LIBDIR%%/distutils/msvccompiler.py
-%%PYTHON_LIBDIR%%/distutils/spawn.py
-%%PYTHON_LIBDIR%%/distutils/sysconfig.py
-%%PYTHON_LIBDIR%%/distutils/tests/Setup.sample
-%%PYTHON_LIBDIR%%/distutils/tests/__init__.py
-%%PYTHON_LIBDIR%%/distutils/tests/setuptools_build_ext.py
-%%PYTHON_LIBDIR%%/distutils/tests/setuptools_extension.py
-%%PYTHON_LIBDIR%%/distutils/tests/support.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_archive_util.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_bdist.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_bdist_dumb.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_bdist_msi.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_bdist_rpm.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_build.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_build_clib.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_build_ext.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_build_py.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_build_scripts.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_bdist_wininst.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_ccompiler.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_check.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_clean.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_cmd.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_config.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_config_cmd.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_core.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_dep_util.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_dir_util.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_file_util.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_filelist.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_dist.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_install.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_install_data.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_install_headers.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_install_lib.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_install_scripts.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_msvc9compiler.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_spawn.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_sysconfig.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_sdist.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_register.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_text_file.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_upload.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_unixccompiler.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_util.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_versionpredicate.py
-%%PYTHON_LIBDIR%%/distutils/tests/test_version.py
-%%PYTHON_LIBDIR%%/distutils/tests/xxmodule.c
-%%PYTHON_LIBDIR%%/distutils/text_file.py
-%%PYTHON_LIBDIR%%/distutils/unixccompiler.py
-%%PYTHON_LIBDIR%%/distutils/util.py
-%%PYTHON_LIBDIR%%/distutils/version.py
-%%PYTHON_LIBDIR%%/distutils/versionpredicate.py
-%%PYTHON_LIBDIR%%/doctest.py
-%%PYTHON_LIBDIR%%/dumbdbm.py
-%%PYTHON_LIBDIR%%/dummy_thread.py
-%%PYTHON_LIBDIR%%/dummy_threading.py
-%%PYTHON_LIBDIR%%/email/__init__.py
-%%PYTHON_LIBDIR%%/email/_parseaddr.py
-%%PYTHON_LIBDIR%%/email/base64mime.py
-%%PYTHON_LIBDIR%%/email/charset.py
-%%PYTHON_LIBDIR%%/email/encoders.py
-%%PYTHON_LIBDIR%%/email/errors.py
-%%PYTHON_LIBDIR%%/email/feedparser.py
-%%PYTHON_LIBDIR%%/email/generator.py
-%%PYTHON_LIBDIR%%/email/header.py
-%%PYTHON_LIBDIR%%/email/iterators.py
-%%PYTHON_LIBDIR%%/email/message.py
-%%PYTHON_LIBDIR%%/email/mime/__init__.py
-%%PYTHON_LIBDIR%%/email/mime/application.py
-%%PYTHON_LIBDIR%%/email/mime/audio.py
-%%PYTHON_LIBDIR%%/email/mime/base.py
-%%PYTHON_LIBDIR%%/email/mime/image.py
-%%PYTHON_LIBDIR%%/email/mime/message.py
-%%PYTHON_LIBDIR%%/email/mime/multipart.py
-%%PYTHON_LIBDIR%%/email/mime/nonmultipart.py
-%%PYTHON_LIBDIR%%/email/mime/text.py
-%%PYTHON_LIBDIR%%/email/parser.py
-%%PYTHON_LIBDIR%%/email/quoprimime.py
-%%PYTHON_LIBDIR%%/email/test/__init__.py
-%%PYTHON_LIBDIR%%/email/test/data/PyBanner048.gif
-%%PYTHON_LIBDIR%%/email/test/data/audiotest.au
-%%PYTHON_LIBDIR%%/email/test/data/msg_01.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_02.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_03.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_04.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_05.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_06.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_07.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_08.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_09.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_10.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_11.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_12.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_12a.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_13.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_14.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_15.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_16.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_17.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_18.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_19.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_20.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_21.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_22.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_23.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_24.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_25.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_26.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_27.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_28.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_29.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_30.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_31.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_32.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_33.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_34.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_35.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_36.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_37.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_38.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_39.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_40.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_41.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_42.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_43.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_44.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_45.txt
-%%PYTHON_LIBDIR%%/email/test/data/msg_46.txt
-%%PYTHON_LIBDIR%%/email/test/test_email.py
-%%PYTHON_LIBDIR%%/email/test/test_email_codecs.py
-%%PYTHON_LIBDIR%%/email/test/test_email_codecs_renamed.py
-%%PYTHON_LIBDIR%%/email/test/test_email_renamed.py
-%%PYTHON_LIBDIR%%/email/test/test_email_torture.py
-%%PYTHON_LIBDIR%%/email/utils.py
-%%PYTHON_LIBDIR%%/encodings/__init__.py
-%%PYTHON_LIBDIR%%/encodings/aliases.py
-%%PYTHON_LIBDIR%%/encodings/ascii.py
-%%PYTHON_LIBDIR%%/encodings/base64_codec.py
-%%PYTHON_LIBDIR%%/encodings/big5.py
-%%PYTHON_LIBDIR%%/encodings/big5hkscs.py
-%%PYTHON_LIBDIR%%/encodings/bz2_codec.py
-%%PYTHON_LIBDIR%%/encodings/charmap.py
-%%PYTHON_LIBDIR%%/encodings/cp037.py
-%%PYTHON_LIBDIR%%/encodings/cp1006.py
-%%PYTHON_LIBDIR%%/encodings/cp1026.py
-%%PYTHON_LIBDIR%%/encodings/cp1140.py
-%%PYTHON_LIBDIR%%/encodings/cp1250.py
-%%PYTHON_LIBDIR%%/encodings/cp1251.py
-%%PYTHON_LIBDIR%%/encodings/cp1252.py
-%%PYTHON_LIBDIR%%/encodings/cp1253.py
-%%PYTHON_LIBDIR%%/encodings/cp1254.py
-%%PYTHON_LIBDIR%%/encodings/cp1255.py
-%%PYTHON_LIBDIR%%/encodings/cp1256.py
-%%PYTHON_LIBDIR%%/encodings/cp1257.py
-%%PYTHON_LIBDIR%%/encodings/cp1258.py
-%%PYTHON_LIBDIR%%/encodings/cp424.py
-%%PYTHON_LIBDIR%%/encodings/cp437.py
-%%PYTHON_LIBDIR%%/encodings/cp500.py
-%%PYTHON_LIBDIR%%/encodings/cp720.py
-%%PYTHON_LIBDIR%%/encodings/cp737.py
-%%PYTHON_LIBDIR%%/encodings/cp775.py
-%%PYTHON_LIBDIR%%/encodings/cp850.py
-%%PYTHON_LIBDIR%%/encodings/cp852.py
-%%PYTHON_LIBDIR%%/encodings/cp855.py
-%%PYTHON_LIBDIR%%/encodings/cp856.py
-%%PYTHON_LIBDIR%%/encodings/cp857.py
-%%PYTHON_LIBDIR%%/encodings/cp858.py
-%%PYTHON_LIBDIR%%/encodings/cp860.py
-%%PYTHON_LIBDIR%%/encodings/cp861.py

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201408020654.s726sK0m086096>