include $(TOPDIR)/rules.mk
PKG_NAME:=micropython
-PKG_VERSION:=1.9.4
-PKG_RELEASE:=2
+PKG_VERSION:=1.17
+PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/micropython/micropython/releases/download/v$(PKG_VERSION)
-PKG_HASH:=0db042011bffcbd65362b67eb3cca87eaefa9f2a55b747fa75e922c706b8ce1a
+PKG_HASH:=e322f915cee784de0f8614779cdb88fce175956975b3864e2d1898a53638a2f7
-PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_PARALLEL:=1
+include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
-define Package/micropython
+define Package/micropython/default
SUBMENU:=Python
SECTION:=lang
CATEGORY:=Languages
- TITLE:=Micro Python
+ TITLE:=MicroPython
URL:=https://micropython.org
DEPENDS:=+libffi
+ PROVIDES:=micropython
endef
-define Package/micropython/description
- This package contains Micro Python, a lean and fast implementation of the Python 3.4 programming language
- that is optimised to run on a microcontroller (and low power computers).
+define Package/micropython-mbedtls
+$(call Package/micropython/default)
+ TITLE+= (mbedtls)
+ DEPENDS+= +libmbedtls
+ VARIANT:=mbedtls
+ DEFAULT_VARIANT:=1
endef
+define Package/micropython-nossl
+$(call Package/micropython/default)
+ TITLE+= (nossl)
+ VARIANT:=nossl
+endef
+
+define Package/micropython/default/description
+ MicroPython is a lean and efficient implementation of the Python 3
+ programming language that includes a small subset of the Python
+ standard library and is optimised to run on microcontrollers and in
+ constrained environments.
+endef
+
+define Package/micropython-mbedtls/description
+$(call Package/micropython/default/description)
-MAKE_FLAGS += -C $(PKG_BUILD_DIR)/ports/unix FROZEN_MPY_DIR=
+ This version uses the Mbed TLS library.
+endef
+
+define Package/micropython-nossl/description
+$(call Package/micropython/default/description)
+
+ This version is built without TLS and upip.
+endef
+
+MAKE_FLAGS += BUILD_VERBOSE=1
+
+ifneq ($(CONFIG_DEBUG),)
+ MAKE_FLAGS += DEBUG=1
+endif
+
+ifeq ($(BUILD_VARIANT),mbedtls)
+ MAKE_FLAGS += MICROPY_SSL_AXTLS=0 MICROPY_SSL_MBEDTLS=1
+endif
+
+ifeq ($(BUILD_VARIANT),nossl)
+ MAKE_FLAGS += MICROPY_PY_USSL=0 FROZEN_MANIFEST=
+endif
+
+MAKE_PATH = ports/unix
define Build/Compile
- $(call Build/Compile/Default,axtls)
+ +$(HOST_MAKE_VARS) \
+ $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/mpy-cross \
+ $(HOST_MAKE_FLAGS) BUILD_VERBOSE=1
$(call Build/Compile/Default)
-
endef
-define Package/micropython/install
+define Package/micropython/default/install
$(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/ports/unix/micropython $(1)/usr/bin/micropython
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/ports/unix/micropython $(1)/usr/bin/
endef
-$(eval $(call BuildPackage,micropython))
+Package/micropython-mbedtls/install = $(Package/micropython/default/install)
+Package/micropython-nossl/install = $(Package/micropython/default/install)
+
+$(eval $(call BuildPackage,micropython-mbedtls))
+$(eval $(call BuildPackage,micropython-nossl))
--- /dev/null
+--- a/mpy-cross/Makefile
++++ b/mpy-cross/Makefile
+@@ -19,7 +19,7 @@ INC += -I$(TOP)
+ # compiler settings
+ CWARN = -Wall -Werror
+ CWARN += -Wextra -Wno-unused-parameter -Wpointer-arith
+-CFLAGS = $(INC) $(CWARN) -std=gnu99 $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA)
++CFLAGS += $(INC) $(CWARN) -std=gnu99 $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA)
+ CFLAGS += -fdata-sections -ffunction-sections -fno-asynchronous-unwind-tables
+
+ # Debugging/Optimization
+@@ -42,7 +42,7 @@ else
+ # Use gcc syntax for map file
+ LDFLAGS_ARCH = -Wl,-Map=$@.map,--cref -Wl,--gc-sections
+ endif
+-LDFLAGS = $(LDFLAGS_MOD) $(LDFLAGS_ARCH) -lm $(LDFLAGS_EXTRA)
++LDFLAGS += $(LDFLAGS_MOD) $(LDFLAGS_ARCH) -lm $(LDFLAGS_EXTRA)
+
+ # source files
+ SRC_C = \
--- /dev/null
+From 9717338f1917fa5db63fe7c9758639417ab06f61 Mon Sep 17 00:00:00 2001
+From: yangfl <yangfl@users.noreply.github.com>
+Date: Mon, 4 Jan 2021 23:09:41 +0800
+Subject: [PATCH 06/10] extmod: Use system mbedtls
+
+---
+ extmod/extmod.mk | 77 ++----------------------------------------------
+ 1 file changed, 2 insertions(+), 75 deletions(-)
+
+--- a/extmod/extmod.mk
++++ b/extmod/extmod.mk
+@@ -66,81 +66,8 @@ SRC_MOD += $(addprefix $(AXTLS_DIR)/,\
+ crypto/sha1.c \
+ )
+ else ifeq ($(MICROPY_SSL_MBEDTLS),1)
+-MBEDTLS_DIR = lib/mbedtls
+-CFLAGS_MOD += -DMICROPY_SSL_MBEDTLS=1 -I$(TOP)/$(MBEDTLS_DIR)/include
+-SRC_MOD += $(addprefix $(MBEDTLS_DIR)/library/,\
+- aes.c \
+- aesni.c \
+- arc4.c \
+- asn1parse.c \
+- asn1write.c \
+- base64.c \
+- bignum.c \
+- blowfish.c \
+- camellia.c \
+- ccm.c \
+- certs.c \
+- chacha20.c \
+- chachapoly.c \
+- cipher.c \
+- cipher_wrap.c \
+- cmac.c \
+- ctr_drbg.c \
+- debug.c \
+- des.c \
+- dhm.c \
+- ecdh.c \
+- ecdsa.c \
+- ecjpake.c \
+- ecp.c \
+- ecp_curves.c \
+- entropy.c \
+- entropy_poll.c \
+- error.c \
+- gcm.c \
+- havege.c \
+- hmac_drbg.c \
+- md2.c \
+- md4.c \
+- md5.c \
+- md.c \
+- md_wrap.c \
+- oid.c \
+- padlock.c \
+- pem.c \
+- pk.c \
+- pkcs11.c \
+- pkcs12.c \
+- pkcs5.c \
+- pkparse.c \
+- pk_wrap.c \
+- pkwrite.c \
+- platform.c \
+- platform_util.c \
+- poly1305.c \
+- ripemd160.c \
+- rsa.c \
+- rsa_internal.c \
+- sha1.c \
+- sha256.c \
+- sha512.c \
+- ssl_cache.c \
+- ssl_ciphersuites.c \
+- ssl_cli.c \
+- ssl_cookie.c \
+- ssl_srv.c \
+- ssl_ticket.c \
+- ssl_tls.c \
+- timing.c \
+- x509.c \
+- x509_create.c \
+- x509_crl.c \
+- x509_crt.c \
+- x509_csr.c \
+- x509write_crt.c \
+- x509write_csr.c \
+- xtea.c \
+- )
++CFLAGS_MOD += -DMICROPY_SSL_MBEDTLS=1
++LDFLAGS_MOD += -lmbedx509 -lmbedtls -lmbedcrypto
+ endif
+ endif
+