@@ -19,7 +19,7 @@ BUILD_NUMBER=custom
19
19
# of a release cycle, as official binaries won't be published.
20
20
# PYTHON_MICRO_VERSION is the full version number, without any alpha/beta/rc suffix. (e.g., 3.10.0)
21
21
# PYTHON_VER is the major/minor version (e.g., 3.10)
22
- PYTHON_VERSION =3.14.0rc1
22
+ PYTHON_VERSION =3.14.0rc3
23
23
PYTHON_PKG_VERSION =$(PYTHON_VERSION )
24
24
PYTHON_MICRO_VERSION =$(shell echo $(PYTHON_VERSION ) | grep -Eo "\d+\.\d+\.\d+")
25
25
PYTHON_PKG_MICRO_VERSION =$(shell echo $(PYTHON_PKG_VERSION ) | grep -Eo "\d+\.\d+\.\d+")
@@ -32,6 +32,7 @@ LIBFFI_VERSION=3.4.7-2
32
32
MPDECIMAL_VERSION =4.0.0-2
33
33
OPENSSL_VERSION =3.0.16-2
34
34
XZ_VERSION =5.6.4-2
35
+ ZSTD_VERSION =1.5.7-1
35
36
36
37
# Supported OS
37
38
OS_LIST =macOS iOS tvOS watchOS visionOS
@@ -95,7 +96,7 @@ update-patch:
95
96
# call
96
97
if [ -z " $( PYTHON_REPO_DIR) " ]; then echo " \n\nPYTHON_REPO_DIR must be set to the root of your Python github checkout\n\n" ; fi
97
98
cd $(PYTHON_REPO_DIR ) && \
98
- git diff -D v$(PYTHON_VERSION ) $(PYTHON_VER ) -patched \
99
+ git diff --no-renames - D v$(PYTHON_VERSION ) $(PYTHON_VER ) -patched \
99
100
| PATH=" /usr/local/bin:/opt/homebrew/bin:$( PATH) " filterdiff \
100
101
-X $(PROJECT_DIR ) /patch/Python/diff.exclude -p 1 --clean \
101
102
> $(PROJECT_DIR ) /patch/Python/Python.patch
@@ -187,6 +188,26 @@ $$(XZ_LIB-$(target)): downloads/xz-$(XZ_VERSION)-$(target).tar.gz
187
188
# Ensure the target is marked as clean.
188
189
touch $$(XZ_LIB-$(target ) )
189
190
191
+ # ##########################################################################
192
+ # Target: zstd (ZStandard)
193
+ # ##########################################################################
194
+
195
+ ZSTD_INSTALL-$(target ) =$(PROJECT_DIR ) /install/$(os ) /$(target ) /zstd-$(XZ_VERSION )
196
+ ZSTD_LIB-$(target ) =$$(ZSTD_INSTALL-$(target ) ) /lib/liblzma.a
197
+
198
+ downloads/xz-$(ZSTD_VERSION ) -$(target ) .tar.gz:
199
+ @echo ">>> Download zstd for $(target ) "
200
+ mkdir -p downloads
201
+ curl $(CURL_FLAGS ) -o $$@ \
202
+ https://github.com/beeware/cpython-apple-source-deps/releases/download/XZ-$(ZSTD_VERSION ) /zstd-$(ZSTD_VERSION ) -$(target ) .tar.gz
203
+
204
+ $$(ZSTD_LIB-$(target ) ) : downloads/xz-$(ZSTD_VERSION ) -$(target ) .tar.gz
205
+ @echo ">>> Install zstd for $(target ) "
206
+ mkdir -p $$(ZSTD_INSTALL-$(target ) )
207
+ cd $$(ZSTD_INSTALL-$(target ) ) && tar zxvf $(PROJECT_DIR ) /downloads/xz-$(ZSTD_VERSION ) -$(target ) .tar.gz --exclude="*.dylib"
208
+ # Ensure the target is marked as clean.
209
+ touch $$(ZSTD_LIB-$(target ) )
210
+
190
211
# ##########################################################################
191
212
# Target: mpdecimal
192
213
# ##########################################################################
@@ -281,6 +302,7 @@ $$(PYTHON_SRCDIR-$(target))/configure: \
281
302
$$(MPDECIMAL_LIB-$(target ) ) \
282
303
$$(OPENSSL_SSL_LIB-$(target ) ) \
283
304
$$(XZ_LIB-$(target ) )
305
+ $$(ZSTD_LIB-$(target ) )
284
306
@echo " >>> Unpack and configure Python for $( target) "
285
307
mkdir -p $$(PYTHON_SRCDIR-$(target ) )
286
308
tar zxf downloads/Python-$(PYTHON_VERSION ) .tar.gz --strip-components 1 -C $$(PYTHON_SRCDIR-$(target ) )
@@ -305,6 +327,8 @@ $$(PYTHON_SRCDIR-$(target))/Makefile: \
305
327
LIBMPDEC_LIBS=" -L$$ (MPDECIMAL_INSTALL-$( target) )/lib -lmpdec" \
306
328
LIBFFI_CFLAGS=" -I$$ (LIBFFI_INSTALL-$( target) )/include" \
307
329
LIBFFI_LIBS=" -L$$ (LIBFFI_INSTALL-$( target) )/lib -lffi" \
330
+ LIBZSTD_CFLAGS ="-I$$(ZSTD_INSTALL-$(target ) ) /include" \
331
+ LIBZSTD_LIBS="-L$$(ZSTD_INSTALL-$(target ) ) /lib -lzstd" \
308
332
--host=$$(TARGET_TRIPLE-$(target ) ) \
309
333
--build=$(HOST_ARCH ) -apple-darwin \
310
334
--with-build-python=$(HOST_PYTHON ) \
@@ -674,9 +698,9 @@ $$(PYTHON_XCFRAMEWORK-$(os))/Info.plist: \
674
698
# Disable dSYM production (for now)
675
699
# $$(foreach sdk,$$(SDKS-$(os)),cp -r $$(PYTHON_INSTALL-$$(sdk))/Python.dSYM $$(PYTHON_XCFRAMEWORK-$(os))/$$(SDK_SLICE-$$(sdk)); )
676
700
677
- ifeq ($(filter $(os ) ,iOS visionOS) ,$(os ) )
701
+ ifeq ($(filter $(os ) ,iOS tvOS visionOS) ,$(os ) )
678
702
@echo ">>> Clone testbed project for $(os)"
679
- $(HOST_PYTHON) $$(PYTHON_SRCDIR-$$(firstword $$(SDK_TARGETS-$$(firstword $$(SDKS-$(os))))))/$(os) /testbed clone --framework $$(PYTHON_XCFRAMEWORK-$(os)) support/$(PYTHON_VER)/$(os)/testbed
703
+ $(HOST_PYTHON) $$(PYTHON_SRCDIR-$$(firstword $$(SDK_TARGETS-$$(firstword $$(SDKS-$(os))))))/Apple /testbed clone --platform $(os) --framework $$(PYTHON_XCFRAMEWORK-$(os)) support/$(PYTHON_VER)/$(os)/testbed
680
704
endif
681
705
682
706
@echo ">>> Create VERSIONS file for $(os)"
@@ -689,6 +713,7 @@ endif
689
713
echo "mpdecimal: $(MPDECIMAL_VERSION)" >> support/$(PYTHON_VER)/$(os)/VERSIONS
690
714
echo "OpenSSL: $(OPENSSL_VERSION)" >> support/$(PYTHON_VER)/$(os)/VERSIONS
691
715
echo "XZ: $(XZ_VERSION)" >> support/$(PYTHON_VER)/$(os)/VERSIONS
716
+ echo "Zstandard: $(ZSTD_VERSION)" >> support/$(PYTHON_VER)/$(os)/VERSIONS
692
717
693
718
dist/Python-$(PYTHON_VER ) -$(os ) -support.$(BUILD_NUMBER ) .tar.gz : \
694
719
$$(PYTHON_XCFRAMEWORK-$(os ) ) /Info.plist \
@@ -757,6 +782,7 @@ config:
757
782
@echo " MPDECIMAL_VERSION=$( MPDECIMAL_VERSION) "
758
783
@echo " OPENSSL_VERSION=$( OPENSSL_VERSION) "
759
784
@echo " XZ_VERSION=$( XZ_VERSION) "
785
+ @echo " ZSTD_VERSION=$( ZSTD_VERSION) "
760
786
761
787
# Expand cross-platform build and clean targets for each output product
762
788
clean : $(foreach os,$(OS_LIST ) ,clean-$(os ) )
0 commit comments