@@ -13,19 +13,24 @@ BUILD_NUMBER=custom
1313
1414# Version of packages that will be compiled by this meta-package
1515# PYTHON_VERSION is the full version number (e.g., 3.10.0b3)
16+ # PYTHON_PKG_VERSION is the version number with binary package releases to use
17+ # for macOS binaries. This will be less than PYTHON_VERSION towards the end
18+ # of a release cycle, as official binaries won't be published.
1619# PYTHON_MICRO_VERSION is the full version number, without any alpha/beta/rc suffix. (e.g., 3.10.0)
1720# PYTHON_VER is the major/minor version (e.g., 3.10)
1821PYTHON_VERSION =3.12.4
22+ PYTHON_PKG_VERSION =$(PYTHON_VERSION )
1923PYTHON_MICRO_VERSION =$(shell echo $(PYTHON_VERSION ) | grep -Eo "\d+\.\d+\.\d+")
24+ PYTHON_PKG_MICRO_VERSION =$(shell echo $(PYTHON_PKG_VERSION ) | grep -Eo "\d+\.\d+\.\d+")
2025PYTHON_VER =$(basename $(PYTHON_VERSION ) )
2126
2227# The binary releases of dependencies, published at:
2328# https://github.com/beeware/cpython-apple-source-deps/releases
2429BZIP2_VERSION =1.0.8-1
30+ LIBFFI_VERSION =3.4.6-1
2531MPDECIMAL_VERSION =4.0.0-1
2632OPENSSL_VERSION =3.0.14-1
2733XZ_VERSION =5.4.7-1
28- LIBFFI_VERSION =3.4.6-1
2934
3035# Supported OS
3136OS_LIST =macOS iOS tvOS watchOS
@@ -96,11 +101,11 @@ downloads/Python-$(PYTHON_VERSION).tar.gz:
96101 curl $(CURL_FLAGS ) -o $@ \
97102 https://www.python.org/ftp/python/$(PYTHON_MICRO_VERSION ) /Python-$(PYTHON_VERSION ) .tgz
98103
99- downloads/python-$(PYTHON_VERSION ) -macos11.pkg :
104+ downloads/python-$(PYTHON_PKG_VERSION ) -macos11.pkg :
100105 @echo " >>> Download macOS Python package"
101106 mkdir -p downloads
102107 curl $(CURL_FLAGS ) -o $@ \
103- https://www.python.org/ftp/python/$(PYTHON_MICRO_VERSION ) /python-$(PYTHON_VERSION ) -macos11.pkg
108+ https://www.python.org/ftp/python/$(PYTHON_PKG_MICRO_VERSION ) /python-$(PYTHON_PKG_VERSION ) -macos11.pkg
104109
105110# ##########################################################################
106111# Build for specified target (from $(TARGETS-*))
@@ -258,10 +263,10 @@ PYTHON_STDLIB-$(target)=$$(PYTHON_INSTALL-$(target))/lib/python$(PYTHON_VER)
258263$$(PYTHON_SRCDIR-$(target ) ) /configure : \
259264 downloads/Python-$(PYTHON_VERSION ) .tar.gz \
260265 $$(BZIP2_LIB-$(target ) ) \
261- $$(XZ_LIB-$(target ) ) \
262- $$(OPENSSL_SSL_LIB-$(target ) ) \
266+ $$(LIBFFI_LIB-$(target ) ) \
263267 $$(MPDECIMAL_LIB-$(target ) ) \
264- $$(LIBFFI_LIB-$(target ) )
268+ $$(OPENSSL_SSL_LIB-$(target ) ) \
269+ $$(XZ_LIB-$(target ) )
265270 @echo " >>> Unpack and configure Python for $( target) "
266271 mkdir -p $$(PYTHON_SRCDIR-$(target ) )
267272 tar zxf downloads/Python-$(PYTHON_VERSION ) .tar.gz --strip-components 1 -C $$(PYTHON_SRCDIR-$(target ) )
@@ -335,14 +340,14 @@ vars-$(target):
335340 @echo "SDK_ROOT-$(target ) : $$(SDK_ROOT-$(target ) ) "
336341 @echo "BZIP2_INSTALL-$(target ) : $$(BZIP2_INSTALL-$(target ) ) "
337342 @echo "BZIP2_LIB-$(target ) : $$(BZIP2_LIB-$(target ) ) "
338- @echo "XZ_INSTALL-$(target ) : $$(XZ_INSTALL-$(target ) ) "
339- @echo "XZ_LIB-$(target ) : $$(XZ_LIB-$(target ) ) "
340- @echo "OPENSSL_INSTALL-$(target ) : $$(OPENSSL_INSTALL-$(target ) ) "
341- @echo "OPENSSL_SSL_LIB-$(target ) : $$(OPENSSL_SSL_LIB-$(target ) ) "
342- @echo "MPDECIMAL_INSTALL-$(target ) : $$(MPDECIMAL_INSTALL-$(target ) ) "
343- @echo "MPDECIMAL_LIB-$(target ) : $$(MPDECIMAL_LIB-$(target ) ) "
344343 @echo "LIBFFI_INSTALL-$(target ) : $$(LIBFFI_INSTALL-$(target ) ) "
345344 @echo "LIBFFI_LIB-$(target ) : $$(LIBFFI_LIB-$(target ) ) "
345+ @echo "MPDECIMAL_INSTALL-$(target ) : $$(MPDECIMAL_INSTALL-$(target ) ) "
346+ @echo "MPDECIMAL_LIB-$(target ) : $$(MPDECIMAL_LIB-$(target ) ) "
347+ @echo "OPENSSL_INSTALL-$(target ) : $$(OPENSSL_INSTALL-$(target ) ) "
348+ @echo "OPENSSL_SSL_LIB-$(target ) : $$(OPENSSL_SSL_LIB-$(target ) ) "
349+ @echo "XZ_INSTALL-$(target ) : $$(XZ_INSTALL-$(target ) ) "
350+ @echo "XZ_LIB-$(target ) : $$(XZ_LIB-$(target ) ) "
346351 @echo "PYTHON_SRCDIR-$(target ) : $$(PYTHON_SRCDIR-$(target ) ) "
347352 @echo "PYTHON_INSTALL-$(target ) : $$(PYTHON_INSTALL-$(target ) ) "
348353 @echo "PYTHON_FRAMEWORK-$(target ) : $$(PYTHON_FRAMEWORK-$(target ) ) "
@@ -521,15 +526,15 @@ ifeq ($(os),macOS)
521526PYTHON_FRAMEWORK-$(os) =$$(PYTHON_INSTALL-$(sdk ) ) /Python.framework
522527
523528$$(PYTHON_XCFRAMEWORK-$(os ) ) /Info.plist : \
524- downloads/python-$(PYTHON_VERSION ) -macos11.pkg
529+ downloads/python-$(PYTHON_PKG_VERSION ) -macos11.pkg
525530 @echo " >>> Repackage macOS package as XCFramework"
526531
527532 # Unpack .pkg file. It turns out .pkg files are readable by tar... although
528533 # their internal format is a bit of a mess. From tar's perspective, the .pkg
529534 # is a tarball that contains additional tarballs; the inner tarball has the
530535 # "payload" that is the framework.
531536 mkdir -p build/macOS/macosx/python-$(PYTHON_VERSION)
532- tar zxf downloads/python-$(PYTHON_VERSION )-macos11.pkg -C build/macOS/macosx/python-$(PYTHON_VERSION)
537+ tar zxf downloads/python-$(PYTHON_PKG_VERSION )-macos11.pkg -C build/macOS/macosx/python-$(PYTHON_VERSION)
533538
534539 # Unpack payload inside .pkg file
535540 mkdir -p $$(PYTHON_FRAMEWORK-macosx)
@@ -594,10 +599,10 @@ $$(PYTHON_XCFRAMEWORK-$(os))/Info.plist: \
594599 echo "Build: $(BUILD_NUMBER)" >> support/$(PYTHON_VER)/$(os)/VERSIONS
595600 echo "Min $(os) version: $$(VERSION_MIN-$(os))" >> support/$(PYTHON_VER)/$(os)/VERSIONS
596601 echo "---------------------" >> support/$(PYTHON_VER)/$(os)/VERSIONS
597- echo "libFFI: $(LIBFFI_VERSION)" >> support/$(PYTHON_VER)/$(os)/VERSIONS
598602 echo "BZip2: $(BZIP2_VERSION)" >> support/$(PYTHON_VER)/$(os)/VERSIONS
599- echo "OpenSSL : $(OPENSSL_VERSION )" >> support/$(PYTHON_VER)/$(os)/VERSIONS
603+ echo "libFFI : $(LIBFFI_VERSION )" >> support/$(PYTHON_VER)/$(os)/VERSIONS
600604 echo "mpdecimal: $(MPDECIMAL_VERSION)" >> support/$(PYTHON_VER)/$(os)/VERSIONS
605+ echo "OpenSSL: $(OPENSSL_VERSION)" >> support/$(PYTHON_VER)/$(os)/VERSIONS
601606 echo "XZ: $(XZ_VERSION)" >> support/$(PYTHON_VER)/$(os)/VERSIONS
602607
603608dist/Python-$(PYTHON_VER ) -$(os ) -support.$(BUILD_NUMBER ) .tar.gz : \
0 commit comments