Skip to content

Commit ac0080b

Browse files
committed
3.1.61.11pre
1 parent 391aec2 commit ac0080b

17 files changed

+364
-117
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
BUILDS: 3.12 3.13
2222
SDKROOT: /opt/python-wasm-sdk
2323
Py_GIL_DISABLED: false
24-
wasisdk: true
24+
wasisdk: false
2525
gosdk: false
2626
rustsdk: false
2727
nimsdk: false
@@ -57,16 +57,11 @@ jobs:
5757
chmod +x ./python-wasm-sdk.sh
5858
bash -c "./python-wasm-sdk.sh"
5959
60-
- name: Upload sdk to Github artifacts
61-
uses: actions/upload-artifact@v4
62-
with:
63-
path: /tmp/sdk
64-
6560
- name: Upload sdk to Github Releases
6661
if: github.event_name == 'release'
6762
uses: svenstaro/[email protected]
6863
with:
6964
repo_token: ${{ secrets.GITHUB_TOKEN }}
70-
file: /tmp/sdk/*
65+
file: /tmp/sdk/dist/*
7166
file_glob: true
7267
tag: ${{ github.ref }}

emsdk-cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ COMMON = arglist(
5858
-Wno-unused-function
5959
-Wno-invalid-noreturn
6060
-Wno-declaration-after-statement
61+
-Wno-invalid-noreturn
6162
""",
6263
os.environ.get("PYDK_CFLAGS", ""),
6364
)

python-wasi-sdk.sh

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
reset
33
export DOCKER=false
44
export PREBUILT=$(pwd)/prebuilt
5+
export SDKROOT=${SDKROOT:-/tmp/sdk}
6+
57
if [ $UID -ne 0 ]; then
68
echo "not UID 0, assuming no docker/proot"
79
else
@@ -10,8 +12,11 @@ else
1012
echo "UID 0, with alpine proot"
1113

1214
else
13-
echo "UID 0, assuming docker debian:stable"
14-
apt-get update && apt-get --yes install build-essential clang autoconf wget curl lz4 lsb-release zlib1g-dev libssl-dev git
15+
echo "UID 0, assuming docker debian:12"
16+
apt-get update && apt-get --yes install build-essential clang lsb-release zlib1g-dev lzma-dev libssl-dev \
17+
git wget curl lz4 xz-utils bison flex pkg-config autoconf m4 libtool make
18+
# prevent removing any wasi prebuilt patching from docker rc file
19+
touch $SDKROOT/dev
1520
export DOCKER=true
1621
fi
1722
fi
@@ -41,14 +46,16 @@ pause () {
4146
fi
4247
}
4348

49+
# sane default
50+
PLATFORM=linux
4451

4552
DISTRIB_RELEASE=${DISTRIB_RELEASE:-any}
4653

4754
# is it linux enough ?
4855
if [ -f /etc/lsb-release ]
4956
then
5057
. /etc/lsb-release
51-
export PLATFORM=linux
58+
PLATFORM=linux
5259
else
5360
# is it Debian
5461
if [ -f /etc/os-release ]
@@ -66,8 +73,8 @@ else
6673
fi
6774

6875
export DISTRIB="${DISTRIB_ID}-${DISTRIB_RELEASE}"
76+
export PLATFORM
6977

70-
export SDKROOT=${SDKROOT:-/tmp/sdk}
7178

7279
# default is behave like a CI
7380
export CI=${CI:-true}
@@ -306,14 +313,41 @@ END
306313
cd ${SDKROOT}
307314

308315
export TARGET=wasi
316+
export CPU=wasm32
309317

310318
mkdir -p src build ${SDKROOT}/devices/wasisdk ${SDKROOT}/prebuilt/wasisdk
311319
if [ -d $PREBUILT ]
312320
then
321+
pushd /
313322
# unpack wasi sdk (common)
314323
tar xf $PREBUILT/wasi-sdk-25.tar.xz
315-
# unpack wasi sdk ( binary )
316-
tar xf $PREBUILT/wasi-sdk-25.0-$(arch)-linux.tar.xz
324+
325+
if false
326+
then
327+
# unpack wasi sdk ( binary )
328+
tar xf $PREBUILT/wasi-sdk-25.0-$(arch)-linux.tar.xz
329+
else
330+
[ -d $SDKROOT/wasisdk/upstream ] || exit $LINENO
331+
# use stock release binaries from bin,lib folders
332+
if [ -d $SDKROOT/wasisdk/upstream/lib ]
333+
then
334+
echo "wasi sdk $(arch) support is installed"
335+
else
336+
pushd $SDKROOT/wasisdk
337+
if arch|grep -q aarch64
338+
then
339+
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-arm64-linux.tar.gz -O/tmp/sdk.tar.gz
340+
else
341+
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-x86_64-linux.tar.gz -O/tmp/sdk.tar.gz
342+
fi
343+
tar xfz /tmp/sdk.tar.gz && rm /tmp/sdk.tar.gz
344+
mv wasi-sdk-25.0-*/{bin,lib} upstream/
345+
346+
popd
347+
fi
348+
fi
349+
popd
350+
317351
else
318352
# do not source to protect env
319353
./scripts/cpython-build-wasisdk.sh
@@ -322,7 +356,6 @@ END
322356

323357
> ${SDKROOT}/wasm32-${TARGET}-shell.sh
324358

325-
CPU=wasm32
326359
CPU=$CPU TARGET=$TARGET PYDK_PYTHON_HOST_PLATFORM=${CPU}-${TARGET} \
327360
PYDK_SYSCONFIG_PLATFORM=${CPU}-${TARGET} \
328361
PREFIX=${SDKROOT}/devices/${TARGET}sdk/usr \
@@ -341,7 +374,7 @@ parse_git_branch() {
341374
export PS1="[PyDK:${TARGET}] \[\e[32m\]\w \[\e[91m\]\$(parse_git_branch)\[\e[00m\]\$ "
342375
343376
END
344-
chmod +x ${SDKROOT}/python3-${TARGET} ${SDKROOT}/wasm32-${TARGET}-shell.sh
377+
chmod +x ${SDKROOT}/python3-${TARGET} ${SDKROOT}/${CPU}-${TARGET}-shell.sh
345378

346379
fi
347380

python-wasm-sdk.sh

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
reset
33
export DOCKER=false
44
export PREBUILT=$(pwd)/prebuilt
5+
export SDKROOT=${SDKROOT:-/tmp/sdk}
6+
57
if [ $UID -ne 0 ]; then
68
echo "not UID 0, assuming no docker/proot"
79
else
@@ -10,8 +12,11 @@ else
1012
echo "UID 0, with alpine proot"
1113

1214
else
13-
echo "UID 0, assuming docker debian:stable"
14-
apt-get update && apt-get --yes install build-essential clang autoconf wget curl lz4 lsb-release zlib1g-dev libssl-dev git
15+
echo "UID 0, assuming docker debian:12"
16+
apt-get update && apt-get --yes install build-essential clang lsb-release zlib1g-dev lzma-dev libssl-dev \
17+
git wget curl lz4 xz-utils bison flex pkg-config autoconf m4 libtool make
18+
# prevent removing any wasi prebuilt patching from docker rc file
19+
touch $SDKROOT/dev
1520
export DOCKER=true
1621
fi
1722
fi
@@ -41,14 +46,16 @@ pause () {
4146
fi
4247
}
4348

49+
# sane default
50+
PLATFORM=linux
4451

4552
DISTRIB_RELEASE=${DISTRIB_RELEASE:-any}
4653

4754
# is it linux enough ?
4855
if [ -f /etc/lsb-release ]
4956
then
5057
. /etc/lsb-release
51-
export PLATFORM=linux
58+
PLATFORM=linux
5259
else
5360
# is it Debian
5461
if [ -f /etc/os-release ]
@@ -66,8 +73,8 @@ else
6673
fi
6774

6875
export DISTRIB="${DISTRIB_ID}-${DISTRIB_RELEASE}"
76+
export PLATFORM
6977

70-
export SDKROOT=${SDKROOT:-/tmp/sdk}
7178

7279
# default is behave like a CI
7380
export CI=${CI:-true}
@@ -306,14 +313,41 @@ END
306313
cd ${SDKROOT}
307314

308315
export TARGET=wasi
316+
export CPU=wasm32
309317

310318
mkdir -p src build ${SDKROOT}/devices/wasisdk ${SDKROOT}/prebuilt/wasisdk
311319
if [ -d $PREBUILT ]
312320
then
321+
pushd /
313322
# unpack wasi sdk (common)
314323
tar xf $PREBUILT/wasi-sdk-25.tar.xz
315-
# unpack wasi sdk ( binary )
316-
tar xf $PREBUILT/wasi-sdk-25.0-$(arch)-linux.tar.xz
324+
325+
if false
326+
then
327+
# unpack wasi sdk ( binary )
328+
tar xf $PREBUILT/wasi-sdk-25.0-$(arch)-linux.tar.xz
329+
else
330+
[ -d $SDKROOT/wasisdk/upstream ] || exit $LINENO
331+
# use stock release binaries from bin,lib folders
332+
if [ -d $SDKROOT/wasisdk/upstream/lib ]
333+
then
334+
echo "wasi sdk $(arch) support is installed"
335+
else
336+
pushd $SDKROOT/wasisdk
337+
if arch|grep -q aarch64
338+
then
339+
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-arm64-linux.tar.gz -O/tmp/sdk.tar.gz
340+
else
341+
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-x86_64-linux.tar.gz -O/tmp/sdk.tar.gz
342+
fi
343+
tar xfz /tmp/sdk.tar.gz && rm /tmp/sdk.tar.gz
344+
mv wasi-sdk-25.0-*/{bin,lib} upstream/
345+
346+
popd
347+
fi
348+
fi
349+
popd
350+
317351
else
318352
# do not source to protect env
319353
./scripts/cpython-build-wasisdk.sh
@@ -322,7 +356,6 @@ END
322356

323357
> ${SDKROOT}/wasm32-${TARGET}-shell.sh
324358

325-
CPU=wasm32
326359
CPU=$CPU TARGET=$TARGET PYDK_PYTHON_HOST_PLATFORM=${CPU}-${TARGET} \
327360
PYDK_SYSCONFIG_PLATFORM=${CPU}-${TARGET} \
328361
PREFIX=${SDKROOT}/devices/${TARGET}sdk/usr \
@@ -341,7 +374,7 @@ parse_git_branch() {
341374
export PS1="[PyDK:${TARGET}] \[\e[32m\]\w \[\e[91m\]\$(parse_git_branch)\[\e[00m\]\$ "
342375
343376
END
344-
chmod +x ${SDKROOT}/python3-${TARGET} ${SDKROOT}/wasm32-${TARGET}-shell.sh
377+
chmod +x ${SDKROOT}/python3-${TARGET} ${SDKROOT}/${CPU}-${TARGET}-shell.sh
345378

346379
fi
347380

scripts/cpython-build-emsdk.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,17 @@ else
4848
echo "
4949
using local sources
5050
"
51+
pushd src/libffi
52+
./autogen.sh
53+
popd
54+
5155
else
5256
pushd src 2>&1 >/dev/null
5357
# breaks with 3.1.46
5458
#git clone https://github.com/pmp-p/libffi-emscripten.git libffi
5559

5660
# breaks with 3.1.46
5761
#git clone --no-tags --depth 1 --single-branch --branch master https://github.com/libffi/libffi
58-
#pushd libffi
59-
./autogen.sh
60-
#popd
6162
wget https://github.com/libffi/libffi/releases/download/v3.4.8/libffi-3.4.8.tar.gz
6263
tar xvfz libffi-3.4.8.tar.gz && rm libffi-3.4.8.tar.gz
6364
mv libffi-*.*.* libffi
@@ -389,9 +390,8 @@ else
389390
. emsdk/emsdk_env.sh
390391
popd
391392
export PATH=$SDKROOT/${TARGET}/upstream/emscripten:$SDKROOT/${TARGET}/upstream/emscripten/system/bin:\$PATH
392-
# export PKG_CONFIG_SYSROOT_DIR="${SDKROOT}/devices/emsdk"
393393
export PKG_CONFIG_LIBDIR="${SDKROOT}/emsdk/upstream/emscripten/system/lib/pkgconfig"
394-
export PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig:${HOST_PREFIX}/lib/pkgconfig"
394+
export PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig:${SDKROOT}/emsdk/upstream/emscripten/cache/sysroot/lib/pkgconfig:${HOST_PREFIX}/lib/pkgconfig"
395395
export NODE=\$(find \$EMSDK|grep /bin/node\$)
396396
fi
397397

scripts/cpython-fetch.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,10 @@ then
103103
fi
104104

105105
pushd cpython${PYBUILD}
106+
107+
# gh-135621: Remove dependency on curses from PyREPL #136758
108+
wget --no-check-certificate https://pmp-p.ddns.net/py/patches/3.13/136758.diff
109+
patch -p1 < 136758.diff
106110
patch -p1 <<END
107111
--- Python-3.13.0rc3/Objects/moduleobject.c 2024-10-01 04:03:08.000000000 +0200
108112
+++ Python-3.13.0rc3.wasm/Objects/moduleobject.c 2024-10-02 13:16:33.030387509 +0200

0 commit comments

Comments
 (0)