aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffery To <jeffery.to@gmail.com>2023-10-15 22:16:44 +0800
committerRosen Penev <rosenp@gmail.com>2023-11-01 15:57:40 -0700
commitdb9202ccc52a3ef360cd1918db9376a5cfa4b25f (patch)
treec104b3fb258221a8b9d44c5bb8970312730c4792
parentdc52f47abbbba839fd89c84f4aacb74abd88757f (diff)
micropython: Update to 1.21.0, refresh/redo patches
Removed 050-py-stackctrl-fix-gcc-13.patch as it has been merged in the new version. This also: * Add STRIP= (empty value) to skip micropython's stripping step, letting the OpenWrt build system control stripping. * Add a workaround for "variable might be clobbered" warning leading to build error on riscv64 (https://github.com/micropython/micropython/issues/12838). * Change Build/InstallDev to install host tools into an unversioned directory, and update micropython-lib to use the unversioned path. There is no need to keep available multiple versions of the host tools. * Add a test.sh script for the packages feed CI. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
-rw-r--r--lang/python/micropython-lib/Makefile3
-rw-r--r--lang/python/micropython/Makefile26
-rw-r--r--lang/python/micropython/patches/030-target-no-darwin.patch4
-rw-r--r--lang/python/micropython/patches/040-extmod-use-external-mbedtls.patch5
-rw-r--r--lang/python/micropython/patches/050-py-stackctrl-fix-gcc-13.patch31
-rw-r--r--lang/python/micropython/src/ports/unix/variants/standard/manifest-nossl.py2
-rw-r--r--lang/python/micropython/test.sh6
7 files changed, 29 insertions, 48 deletions
diff --git a/lang/python/micropython-lib/Makefile b/lang/python/micropython-lib/Makefile
index 490e6e2e7..095b89010 100644
--- a/lang/python/micropython-lib/Makefile
+++ b/lang/python/micropython-lib/Makefile
@@ -24,7 +24,6 @@ PKG_BUILD_DEPENDS:=python3/host
PKG_BUILD_PARALLEL:=1
# keep in sync with micropython
-MP_VERSION:=1.20.0
MP_MPY_FILE_VERSION:=6
include $(INCLUDE_DIR)/package.mk
@@ -88,7 +87,7 @@ This contains source files for packages specific to the MicroPython Unix
port.
endef
-MP_INSTALLDEV_PATH:=$(STAGING_DIR)/host/lib/micropython-$(MP_VERSION)
+MP_INSTALLDEV_PATH:=$(STAGING_DIR)/host/lib/micropython
define MicroPythonLib/Compile
cd "$(PKG_BUILD_DIR)" && python3 tools/build.py \
diff --git a/lang/python/micropython/Makefile b/lang/python/micropython/Makefile
index 6e129c15d..17b0bdd0c 100644
--- a/lang/python/micropython/Makefile
+++ b/lang/python/micropython/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=micropython
-PKG_VERSION:=1.20.0
+PKG_VERSION:=1.21.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/micropython/micropython/releases/download/v$(PKG_VERSION)
-PKG_HASH:=098ef8e40abdc62551b5460d0ffe9489074240c0cb5589ca3c3a425551beb9bf
+PKG_HASH:=abd2152613559d3f44728668346e78be9d93458133a03b700baf222c322fd4d5
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_LICENSE:=MIT
@@ -70,14 +70,20 @@ $(call Package/micropython/Default/description)
This version is built without TLS and mip.
endef
-MAKE_FLAGS += BUILD_VERBOSE=1
+MAKE_FLAGS += BUILD_VERBOSE=1 STRIP=
ifneq ($(CONFIG_DEBUG),)
MAKE_FLAGS += DEBUG=1
endif
ifeq ($(BUILD_VARIANT),nossl)
- MAKE_FLAGS += MICROPY_PY_USSL=0 FROZEN_MANIFEST=variants/standard/manifest-nossl.py
+ MAKE_FLAGS += MICROPY_PY_SSL=0 FROZEN_MANIFEST=variants/standard/manifest-nossl.py
+endif
+
+# Work around "variable might be clobbered" warning leading to build error
+# https://github.com/micropython/micropython/issues/12838
+ifeq ($(ARCH),riscv64)
+ MAKE_FLAGS += CFLAGS_EXTRA=-Wno-error=clobbered
endif
MAKE_PATH = ports/unix
@@ -89,20 +95,20 @@ define Build/Configure
endef
define Build/InstallDev
- $(INSTALL_DIR) $(2)/lib/micropython-$(PKG_VERSION)/mpy-cross
+ $(INSTALL_DIR) $(2)/lib/micropython/mpy-cross
$(CP) \
$(PKG_BUILD_DIR)/mpy-cross/mpy_cross \
- $(2)/lib/micropython-$(PKG_VERSION)/mpy-cross/
+ $(2)/lib/micropython/mpy-cross/
- $(INSTALL_DIR) $(2)/lib/micropython-$(PKG_VERSION)/mpy-cross/build
+ $(INSTALL_DIR) $(2)/lib/micropython/mpy-cross/build
$(INSTALL_BIN) \
$(PKG_BUILD_DIR)/mpy-cross/build/mpy-cross \
- $(2)/lib/micropython-$(PKG_VERSION)/mpy-cross/build/
+ $(2)/lib/micropython/mpy-cross/build/
- $(INSTALL_DIR) $(2)/lib/micropython-$(PKG_VERSION)/tools
+ $(INSTALL_DIR) $(2)/lib/micropython/tools
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/tools/manifestfile.py \
- $(2)/lib/micropython-$(PKG_VERSION)/tools/
+ $(2)/lib/micropython/tools/
endef
define Package/micropython/Default/install
diff --git a/lang/python/micropython/patches/030-target-no-darwin.patch b/lang/python/micropython/patches/030-target-no-darwin.patch
index a847e96b4..9dc4c59bc 100644
--- a/lang/python/micropython/patches/030-target-no-darwin.patch
+++ b/lang/python/micropython/patches/030-target-no-darwin.patch
@@ -1,7 +1,7 @@
--- a/ports/unix/Makefile
+++ b/ports/unix/Makefile
-@@ -31,7 +31,7 @@ QSTR_DEFS = qstrdefsport.h
- QSTR_GLOBAL_DEPENDENCIES = $(VARIANT_DIR)/mpconfigvariant.h
+@@ -31,7 +31,7 @@ QSTR_DEFS += qstrdefsport.h
+ QSTR_GLOBAL_DEPENDENCIES += $(VARIANT_DIR)/mpconfigvariant.h
# OS name, for simple autoconfig
-UNAME_S := $(shell uname -s)
diff --git a/lang/python/micropython/patches/040-extmod-use-external-mbedtls.patch b/lang/python/micropython/patches/040-extmod-use-external-mbedtls.patch
index dccd5ba51..3399412e4 100644
--- a/lang/python/micropython/patches/040-extmod-use-external-mbedtls.patch
+++ b/lang/python/micropython/patches/040-extmod-use-external-mbedtls.patch
@@ -9,7 +9,7 @@ Subject: [PATCH 06/10] extmod: Use system mbedtls
--- a/extmod/extmod.mk
+++ b/extmod/extmod.mk
-@@ -131,84 +131,8 @@ SRC_THIRDPARTY_C += $(addprefix $(AXTLS_
+@@ -131,85 +131,8 @@ SRC_THIRDPARTY_C += $(addprefix $(AXTLS_
crypto/sha1.c \
)
else ifeq ($(MICROPY_SSL_MBEDTLS),1)
@@ -54,7 +54,6 @@ Subject: [PATCH 06/10] extmod: Use system mbedtls
- md4.c \
- md5.c \
- md.c \
-- md_wrap.c \
- oid.c \
- padlock.c \
- pem.c \
@@ -79,9 +78,11 @@ Subject: [PATCH 06/10] extmod: Use system mbedtls
- ssl_cli.c \
- ssl_cookie.c \
- ssl_srv.c \
+- ssl_msg.c \
- ssl_ticket.c \
- ssl_tls.c \
- timing.c \
+- constant_time.c \
- x509.c \
- x509_create.c \
- x509_crl.c \
diff --git a/lang/python/micropython/patches/050-py-stackctrl-fix-gcc-13.patch b/lang/python/micropython/patches/050-py-stackctrl-fix-gcc-13.patch
deleted file mode 100644
index 8cd7df66e..000000000
--- a/lang/python/micropython/patches/050-py-stackctrl-fix-gcc-13.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From f1c6cb7725960487195daa5c5c196fd8d3563811 Mon Sep 17 00:00:00 2001
-From: Damien George <damien@micropython.org>
-Date: Wed, 3 May 2023 15:23:24 +1000
-Subject: [PATCH] py/stackctrl: Add gcc pragmas to ignore dangling-pointer
- warning.
-
-This warning became apparent in gcc 13.
-
-Signed-off-by: Damien George <damien@micropython.org>
----
- py/stackctrl.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
---- a/py/stackctrl.c
-+++ b/py/stackctrl.c
-@@ -28,8 +28,15 @@
- #include "py/stackctrl.h"
-
- void mp_stack_ctrl_init(void) {
-+ #if __GNUC__ >= 13
-+ #pragma GCC diagnostic push
-+ #pragma GCC diagnostic ignored "-Wdangling-pointer"
-+ #endif
- volatile int stack_dummy;
- MP_STATE_THREAD(stack_top) = (char *)&stack_dummy;
-+ #if __GNUC__ >= 13
-+ #pragma GCC diagnostic pop
-+ #endif
- }
-
- void mp_stack_set_top(void *top) {
diff --git a/lang/python/micropython/src/ports/unix/variants/standard/manifest-nossl.py b/lang/python/micropython/src/ports/unix/variants/standard/manifest-nossl.py
index 21f53bddd..ee2b4620d 100644
--- a/lang/python/micropython/src/ports/unix/variants/standard/manifest-nossl.py
+++ b/lang/python/micropython/src/ports/unix/variants/standard/manifest-nossl.py
@@ -1 +1 @@
-include("$(MPY_DIR)/extmod/uasyncio")
+include("$(MPY_DIR)/extmod/asyncio")
diff --git a/lang/python/micropython/test.sh b/lang/python/micropython/test.sh
new file mode 100644
index 000000000..82cf2ecd0
--- /dev/null
+++ b/lang/python/micropython/test.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+nl="
+"
+
+micropython -c "import sys${nl}print(sys.version)" | grep -F " MicroPython v${PKG_VERSION} "