Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-32726: macOS installer and framework enhancements and changes for 3.7.0 #5448

Merged
merged 12 commits into from
Jan 30, 2018
194 changes: 74 additions & 120 deletions Mac/BuildScript/build-installer.py

Large diffs are not rendered by default.

40 changes: 0 additions & 40 deletions Mac/BuildScript/openssl_sdk_makedepend.patch

This file was deleted.

30 changes: 23 additions & 7 deletions Mac/BuildScript/resources/ReadMe.rtf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{\rtf1\ansi\ansicpg1252\cocoartf1504\cocoasubrtf830
{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf200
{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fmodern\fcharset0 CourierNewPSMT;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
Expand All @@ -10,21 +10,37 @@
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\partightenfactor0

\b \cf0 NOTE:
\b0 This is an early developer preview of the next feature release of Python 3. Many features are yet to be added and existing features may change substantially or be deleted prior to the feature code freeze.\
\b0 This is a beta preview of the next feature release of Python 3. Existing features may change or be deleted prior to the release code freeze.\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\cf0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0

\b \cf0 \ul \ulc0 Certificate verification and OpenSSL\
\b \cf0 \ul \ulc0 Which installer variant should I use? [CHANGED in 3.7.0b1]
\b0 \ulnone \
\
For Python.3.7, python.org currently provides two installer variants for download: one that installs a
\i 64-bit/32-bit Intel
\i0 Python capable of running on
\i macOS 10.6 (Snow Leopard)
\i0 or later; and one that installs a
\i 64-bit-only
\i0 Python capable of running on
\i macOS 10.9 (Mavericks)
\i0 or later. This ReadMe was installed with the
\i $MACOSX_DEPLOYMENT_TARGET
\i0 variant. Use the 10.6 variant if you are running on macOS 10.6 through 10.8 or if you want to produce standalone applications that can run on systems from 10.6. If you are running on macOS 10.9 or later and if you have no need for compatibility with older systems, use the 10.9 variant. The Pythons installed by these installers are built with private copies of some third-party libraries not included with or newer than those in macOS itself. The list of these libraries varies by installer variant and is included at the end of the License.rtf file.
\b \ul \
\
Certificate verification and OpenSSL \{UPDATED in 3.7.0b1]\

\b0 \ulnone \
This variant of Python 3.7 includes its own private copy of OpenSSL 1.0.2. The deprecated Apple-supplied OpenSSL libraries are no longer used. This means that the trust certificates in system and user keychains managed by the
This variant of Python 3.7 includes its own private copy of OpenSSL 1.1.0. The deprecated Apple-supplied OpenSSL libraries are no longer used. This means that the trust certificates in system and user keychains managed by the
\i Keychain Access
\i0 application and the
\i security
\i0 command line utility are no longer used as defaults by the Python
\f1 ssl
\f0 module. For this preview release, a sample command script is included in
\f0 module. For this beta release, a sample command script is included in
\f1 /Applications/Python 3.7
\f0 to install a curated bundle of default root certificates from the third-party
\f1 certifi
Expand All @@ -37,14 +53,14 @@ The bundled
\f0 included with this installer has its own default certificate store for verifying download connections.\
\

\b \ul Update your version of Tcl/Tk to use IDLE or other Tk applications
\b \ul Update your version of Tcl/Tk to use IDLE or other Tk applications [CHANGED in 3.7.0b1]
\b0 \ulnone \
\
To use IDLE or other programs that use the Tkinter graphical user interface toolkit, you need to install a newer third-party version of the
\i Tcl/Tk
\i0 frameworks. Visit {\field{\*\fldinst{HYPERLINK "https://www.python.org/download/mac/tcltk/"}}{\fldrslt https://www.python.org/download/mac/tcltk/}} for current information about supported and recommended versions of
\i Tcl/Tk
\i0 for this version of Python and of Mac OS X. For this developer preview, the installer is still linked with Tcl/Tk 8.5.\
\i0 for this version of Python and of Mac OS X. For 3.7.0b1, the 10.9 installer variant is linked with Tcl/Tk 8.6 which you must install separately. The 10.6 installer links /with Tcl/Tk 8.5 which you should also download and install.\

\b \ul \
Other changes\
Expand Down
8 changes: 6 additions & 2 deletions Mac/BuildScript/resources/Welcome.rtf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{\rtf1\ansi\ansicpg1252\cocoartf1504\cocoasubrtf830
{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf200
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
Expand All @@ -19,7 +19,11 @@
\

\b NOTE:
\b0 This is an early developer preview of the next feature release of Python 3. Many features are yet to be added and existing features may change substantially or be deleted prior to the feature code freeze.\
\b0 This is an beta preview of the next feature release of Python 3. New features may change substantially or be deleted prior to the final code freeze.\
\

\b NEW in 3.7.0b1:
\b0 two installer variants (10.9+ 64-bit-only, 10.6+ 64-/32-bit), Tcl/Tk 8.6 support in the 10.9+ variant, OpenSSL 1.1.0g, and more!\
\

\b IMPORTANT:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Provide an additional, more modern macOS installer variant that supports
macOS 10.9+ systems in 64-bit mode only. Upgrade the supplied third-party
libraries to OpenSSL 1.1.0g and to SQLite 3.22.0. The 10.9+ installer now
links with Tcl/Tk 8.6.
15 changes: 12 additions & 3 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -1489,7 +1489,8 @@ Optional Packages:
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-universal-archs=ARCH
select architectures for universal build ("32-bit",
"64-bit", "3-way", "intel", "intel-32", or "all")
"64-bit", "3-way", "intel", "intel-32", "intel-64",
or "all")
--with-framework-name=FRAMEWORK
specify an alternate name of the framework built
with --enable-framework
Expand Down Expand Up @@ -7224,6 +7225,11 @@ $as_echo "$CC" >&6; }
LIPO_32BIT_FLAGS=""
ARCH_RUN_32BIT=""
;;
intel-64)
UNIVERSAL_ARCH_FLAGS="-arch x86_64"
LIPO_32BIT_FLAGS=""
ARCH_RUN_32BIT="true"
;;
3-way)
UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch x86_64"
LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
Expand All @@ -7234,11 +7240,14 @@ $as_echo "$CC" >&6; }
;;
esac

CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
if test "${UNIVERSALSDK}" != "/"
then
CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
CPPFLAGS="-isysroot ${UNIVERSALSDK} ${CPPFLAGS}"
else
CFLAGS="${UNIVERSAL_ARCH_FLAGS} ${CFLAGS}"
LDFLAGS="${UNIVERSAL_ARCH_FLAGS} ${LDFLAGS}"
fi
fi

Expand Down
14 changes: 11 additions & 3 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ fi
AC_SUBST(LIPO_32BIT_FLAGS)
AC_MSG_CHECKING(for --with-universal-archs)
AC_ARG_WITH(universal-archs,
AS_HELP_STRING([--with-universal-archs=ARCH], [select architectures for universal build ("32-bit", "64-bit", "3-way", "intel", "intel-32", or "all")]),
AS_HELP_STRING([--with-universal-archs=ARCH], [select architectures for universal build ("32-bit", "64-bit", "3-way", "intel", "intel-32", "intel-64", or "all")]),
[
UNIVERSAL_ARCHS="$withval"
],
Expand Down Expand Up @@ -1768,6 +1768,11 @@ yes)
LIPO_32BIT_FLAGS=""
ARCH_RUN_32BIT=""
;;
intel-64)
UNIVERSAL_ARCH_FLAGS="-arch x86_64"
LIPO_32BIT_FLAGS=""
ARCH_RUN_32BIT="true"
;;
3-way)
UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch x86_64"
LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
Expand All @@ -1778,11 +1783,14 @@ yes)
;;
esac

CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
if test "${UNIVERSALSDK}" != "/"
then
CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
CPPFLAGS="-isysroot ${UNIVERSALSDK} ${CPPFLAGS}"
else
CFLAGS="${UNIVERSAL_ARCH_FLAGS} ${CFLAGS}"
LDFLAGS="${UNIVERSAL_ARCH_FLAGS} ${LDFLAGS}"
fi
fi

Expand Down