From patchwork Wed Sep 16 23:29:58 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Packham X-Patchwork-Id: 518655 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ozlabs.org (Postfix) with ESMTP id 10D7E1401AF for ; Thu, 17 Sep 2015 09:30:28 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=MCbnzFUL; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 54CE5A47FB; Wed, 16 Sep 2015 23:30:28 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bxtMbZV3A2j5; Wed, 16 Sep 2015 23:30:27 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id 9CB07A4BA4; Wed, 16 Sep 2015 23:30:27 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 6ED711C1054 for ; Wed, 16 Sep 2015 23:30:26 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 6C5ECA4BA4 for ; Wed, 16 Sep 2015 23:30:26 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cQamTAuCklBK for ; Wed, 16 Sep 2015 23:30:25 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-pa0-f44.google.com (mail-pa0-f44.google.com [209.85.220.44]) by fraxinus.osuosl.org (Postfix) with ESMTPS id C8F8FA47FB for ; Wed, 16 Sep 2015 23:30:25 +0000 (UTC) Received: by padhy16 with SMTP id hy16so1772372pad.1 for ; Wed, 16 Sep 2015 16:30:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=dTENwbHeLLvoQv1lL3FiOg5GJGRNfobJB6hDNo7adrw=; b=MCbnzFULqruDHWufIvKW9zjeNtl4PuXFrw5sqeSUuApLEfwSo/tNIX1JCLXWFbVLSc 8Kgy9LOPRVvyJcmTEy174Lpa4vFH5vCFGWr1Rew0lWr6Z/OEE6OhV14bXbH0JgI3zfcx z8VpJrzGPEgFqFQVVWdNifLRsb6W8jAFlEg1+ZTXAVUt+nQ8W4DhoeC+2y+2a12xbSM8 WloHzQaW8QWDTEdVQkEL6il4lAD8hzYnzqV9ZhMYb0eBJCDKTrBidAdriSU66w//L5f7 yEoYyADySo6dLigGn3pQUq5Pds+jw0wAdyQnFMCgH4m/rAni1a0cKMLGJAeKdzz7g+/d TgYQ== X-Received: by 10.68.181.130 with SMTP id dw2mr63659344pbc.70.1442446225441; Wed, 16 Sep 2015 16:30:25 -0700 (PDT) Received: from chrisp-dl.ws.atlnz.lc (2-163-36-202-static.alliedtelesis.co.nz. [202.36.163.2]) by smtp.gmail.com with ESMTPSA id uy4sm250568pbc.69.2015.09.16.16.30.22 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 16 Sep 2015 16:30:24 -0700 (PDT) From: Chris Packham To: buildroot@buildroot.org Date: Thu, 17 Sep 2015 11:29:58 +1200 Message-Id: <1442446199-15963-2-git-send-email-judge.packham@gmail.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1442446199-15963-1-git-send-email-judge.packham@gmail.com> References: <1442446199-15963-1-git-send-email-judge.packham@gmail.com> Cc: thomas.petazzoni@free-electrons.com Subject: [Buildroot] [PATCH v4 1/2] micropython: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Micro Python is a lean and fast implementation of the Python 3 programming language that is optimised to run on a microcontroller. Signed-off-by: Chris Packham Reviewed-by: Vicente Olivert Riera Tested-by: Vicente Olivert Riera --- package/Config.in | 1 + package/micropython/0001-fix-version.patch | 22 ++++++++++++++++++++ package/micropython/Config.in | 12 +++++++++++ package/micropython/micropython.mk | 32 ++++++++++++++++++++++++++++++ 4 files changed, 67 insertions(+) create mode 100644 package/micropython/0001-fix-version.patch create mode 100644 package/micropython/Config.in create mode 100644 package/micropython/micropython.mk diff --git a/package/Config.in b/package/Config.in index fc35f12..94ac406 100644 --- a/package/Config.in +++ b/package/Config.in @@ -509,6 +509,7 @@ menu "Lua libraries/modules" endmenu endif source "package/lutok/Config.in" + source "package/micropython/Config.in" source "package/moarvm/Config.in" source "package/mono/Config.in" if BR2_PACKAGE_MONO diff --git a/package/micropython/0001-fix-version.patch b/package/micropython/0001-fix-version.patch new file mode 100644 index 0000000..1bf2992 --- /dev/null +++ b/package/micropython/0001-fix-version.patch @@ -0,0 +1,22 @@ +Always use the fallback behaviour for determining the version number + +When built from within buildroot the micropython build process detects +that it is inside a git repository and ends up using the buildroot +version number instead of the correct micropython version number. + +Signed-off-by: Chris Packham +--- +diff -Naur micropython-v1.4.5-old/py/makeversionhdr.py micropython-v1.4.5/py/makeversionhdr.py +--- micropython-v1.4.5-old/py/makeversionhdr.py 2015-08-12 00:42:30.000000000 +1200 ++++ micropython-v1.4.5/py/makeversionhdr.py 2015-09-16 10:21:06.698962836 +1200 +@@ -70,9 +70,7 @@ + + def make_version_header(filename): + # Get version info using git, with fallback to docs/conf.py +- info = get_version_info_from_git() +- if info is None: +- info = get_version_info_from_docs_conf() ++ info = get_version_info_from_docs_conf() + + git_tag, git_hash, ver = info + diff --git a/package/micropython/Config.in b/package/micropython/Config.in new file mode 100644 index 0000000..3ad38d6 --- /dev/null +++ b/package/micropython/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_MICROPYTHON + bool "micropython" + select BR2_PACKAGE_LIBFFI + depends on BR2_TOOLCHAIN_HAS_THREADS + help + Micro Python is a lean and fast implementation of the Python 3 + programming language that is optimised to run on a microcontroller. + + http://micropython.org + +comment "micropython needs a toolchain w/ thread" + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/micropython/micropython.mk b/package/micropython/micropython.mk new file mode 100644 index 0000000..2d7c924 --- /dev/null +++ b/package/micropython/micropython.mk @@ -0,0 +1,32 @@ +################################################################################ +# +# micropython +# +################################################################################ + +MICROPYTHON_VERSION = v1.4.5 +MICROPYTHON_SITE = $(call github,micropython,micropython,$(MICROPYTHON_VERSION)) +MICROPYTHON_LICENSE = MIT +MICROPYTHON_LICENSE_FILES = LICENSE +MICROPYTHON_DEPENDENCIES = host-pkgconf libffi + +# Use fallback implementation for exception handling on architectures that don't +# have explicit support. +ifeq ($(BR2_powerpc),y) +MICROPYTHON_CFLAGS = -DMICROPY_GCREGS_SETJMP=1 +endif + +define MICROPYTHON_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/unix \ + CROSS_COMPILE=$(TARGET_CROSS) \ + CFLAGS_EXTRA=$(MICROPYTHON_CFLAGS) +endef + +define MICROPYTHON_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/unix \ + DESTDIR=$(TARGET_DIR) \ + PREFIX=$(TARGET_DIR)/usr \ + install +endef + +$(eval $(generic-package))