--- /dev/null 2014-11-18 03:33:07.000000000 +0000 +++ build/pkgs/python/fbsd-patch-src_issue21166 2014-11-18 03:37:12.000000000 +0000 @@ -0,0 +1,74 @@ +# HG changeset patch +# User Ned Deily +# Date 1408739459 25200 +# Node ID edb6b282469ea0e8f819d0310afb2937b59dd6b9 +# Parent 727fd4ead3fd854e900ed89362714ad1f7434e5a +Issue #21166: Prevent possible segfaults and other random failures of +python --generate-posix-vars in pybuilddir.txt build target by ensuring +that pybuilddir.txt is always regenerated when configure is run and +that the newly built skeleton python does not inadvertently import +modules from previously installed instances. + +diff --git a/Makefile.pre.in b/Makefile.pre.in +--- src/Makefile.pre.in ++++ src/Makefile.pre.in +@@ -447,8 +447,18 @@ platform: $(BUILDPYTHON) pybuilddir.txt + # Create build directory and generate the sysconfig build-time data there. + # pybuilddir.txt contains the name of the build dir and is used for + # sys.path fixup -- see Modules/getpath.c. ++# Since this step runs before shared modules are built, try to avoid bootstrap ++# problems by creating a dummy pybuildstr.txt just to allow interpreter ++# initialization to succeed. It will be overwritten by generate-posix-vars ++# or removed in case of failure. + pybuilddir.txt: $(BUILDPYTHON) +- $(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars ++ @echo "none" > ./pybuilddir.txt ++ $(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars ;\ ++ if test $$? -ne 0 ; then \ ++ echo "generate-posix-vars failed" ; \ ++ rm -f ./pybuilddir.txt ; \ ++ exit 1 ; \ ++ fi + + # Build the shared modules + # Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for +diff --git a/Misc/NEWS b/Misc/NEWS +--- src/Misc/NEWS ++++ src/Misc/NEWS +@@ -120,6 +120,9 @@ Build + - Issue #15759: "make suspicious", "make linkcheck" and "make doctest" in Doc/ + now display special message when and only when there are failures. + ++- Issue #21166: Prevent possible segfaults and other random failures of ++ python --generate-posix-vars in pybuilddir.txt build target. ++ + Windows + ------- + +diff --git a/configure b/configure +--- src/configure ++++ src/configure +@@ -2857,6 +2857,9 @@ case $host_os in *\ *) host_os=`echo "$h + + + ++# pybuilddir.txt will be created by --generate-posix-vars in the Makefile ++rm -f pybuilddir.txt ++ + if test "$cross_compiling" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for python interpreter for cross build" >&5 + $as_echo_n "checking for python interpreter for cross build... " >&6; } +diff --git a/configure.ac b/configure.ac +--- src/configure.ac ++++ src/configure.ac +@@ -16,6 +16,9 @@ AC_CANONICAL_HOST + AC_SUBST(build) + AC_SUBST(host) + ++# pybuilddir.txt will be created by --generate-posix-vars in the Makefile ++rm -f pybuilddir.txt ++ + if test "$cross_compiling" = yes; then + AC_MSG_CHECKING([for python interpreter for cross build]) + if test -z "$PYTHON_FOR_BUILD"; then +