From patchwork Mon Apr 14 22:09:48 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Martin X-Patchwork-Id: 339097 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from silver.osuosl.org (silver.osuosl.org [140.211.166.136]) by ozlabs.org (Postfix) with ESMTP id 5EEA414008B for ; Tue, 15 Apr 2014 08:10:11 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 1576031D5D; Mon, 14 Apr 2014 22:10:10 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2N0HQ-EWcNqE; Mon, 14 Apr 2014 22:10:07 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id E6FE931C40; Mon, 14 Apr 2014 22:10:06 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (silver.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 288331C2439 for ; Mon, 14 Apr 2014 22:10:03 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 1D0C931D58 for ; Mon, 14 Apr 2014 22:10:03 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Q+-rMrRCQd8V for ; Mon, 14 Apr 2014 22:10:00 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wi0-f177.google.com (mail-wi0-f177.google.com [209.85.212.177]) by silver.osuosl.org (Postfix) with ESMTPS id 4E7EB31A28 for ; Mon, 14 Apr 2014 22:10:00 +0000 (UTC) Received: by mail-wi0-f177.google.com with SMTP id cc10so4773681wib.4 for ; Mon, 14 Apr 2014 15:09:58 -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=XUlWvnk7cmO1E70swk85m0caaXHsgC2Y5SAEhNo+jNQ=; b=O6UUoDdfjpxlw1jQ3ZRSH7zu24bWkgMu7tWZp56aJVP1yJXOjpZLl2mlfYXI+S0+hi /3T1KAcvcyAdqj1VRQuFsSO1Cs/inH/JaJYXD3vOCKeHKQ5LWairutnPeaVPr7d+iZbC /rv5xI3Q1gSJUP7OombfHva45MQJniyQnkL8c91wFrAoIVgeG9h8gMqsqnhScETazscL LSXNSRks+90HOhYqSDU2KjIoo7W3K4dpzMs7KpHJBONXkmyUo8B++LupjPI8upoyKzCR +Yu18MyE0CAX+sPWu04LGSUbwBrOCpsa1b1uzMJU8c9DGgb7dMIV989jvtRcZ2ouKqvg GWoA== X-Received: by 10.180.95.4 with SMTP id dg4mr11379070wib.9.1397513398789; Mon, 14 Apr 2014 15:09:58 -0700 (PDT) Received: from localhost.localdomain (ivr94-4-82-229-165-48.fbx.proxad.net. [82.229.165.48]) by mx.google.com with ESMTPSA id hm5sm26832234wjc.17.2014.04.14.15.09.57 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 14 Apr 2014 15:09:58 -0700 (PDT) From: Samuel Martin To: buildroot@buildroot.net Date: Tue, 15 Apr 2014 00:09:48 +0200 Message-Id: <1397513389-16252-2-git-send-email-s.martin49@gmail.com> X-Mailer: git-send-email 1.9.2 In-Reply-To: <1397513389-16252-1-git-send-email-s.martin49@gmail.com> References: <1397513389-16252-1-git-send-email-s.martin49@gmail.com> Subject: [Buildroot] [PATCH v2 2/3] nodejs: force python interpreter X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 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-bounces@busybox.net nodejs build system is based on python, and it does not support python3. This patch makes sure python2 is used for the build. Note that, setting PYTHON=... at configure time or in the make environment is not enough to override all the hard-coded python call, so we have to sed some python scripts to avoid being screwed. Signed-off-by: Samuel Martin --- changes v1 -> v2: - rebase --- package/nodejs/nodejs.mk | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/package/nodejs/nodejs.mk b/package/nodejs/nodejs.mk index 46b3056..b5973b5 100644 --- a/package/nodejs/nodejs.mk +++ b/package/nodejs/nodejs.mk @@ -17,6 +17,10 @@ ifeq ($(BR2_PACKAGE_OPENSSL),y) NODEJS_DEPENDENCIES += openssl endif +# nodejs build system is based on python, but only support python-2.6 or +# python-2.7. So, we have to enforce PYTHON interpreter to be python2. +# However, few build scripts hard-code 'python' as the interpreter to be +# invoked; so we have to manually fix them. define HOST_NODEJS_CONFIGURE_CMDS # Build with the static, built-in OpenSSL which is supplied as part of # the nodejs source distribution. This is needed on the host because @@ -24,20 +28,23 @@ define HOST_NODEJS_CONFIGURE_CMDS # buildroot. (cd $(@D); \ $(HOST_CONFIGURE_OPTS) \ - ./configure \ + PYTHON=$(HOST_DIR)/usr/bin/python2 \ + $(HOST_DIR)/usr/bin/python2 ./configure \ --prefix=$(HOST_DIR)/usr \ --without-snapshot \ --without-dtrace \ --without-etw \ ) + $(SED) "s@'python',@'$(HOST_DIR)/usr/bin/python2',@" \ + $(@D)/deps/v8/tools/gyp/v8.gyp endef define HOST_NODEJS_BUILD_CMDS - $(HOST_MAKE_ENV) $(MAKE) -C $(@D) + $(HOST_MAKE_ENV) PYTHON=$(HOST_DIR)/usr/bin/python2 $(MAKE) -C $(@D) endef define HOST_NODEJS_INSTALL_CMDS - $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install + $(HOST_MAKE_ENV) PYTHON=$(HOST_DIR)/usr/bin/python2 $(MAKE) -C $(@D) install endef ifeq ($(BR2_i386),y) @@ -62,7 +69,8 @@ define NODEJS_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_CONFIGURE_OPTS) \ LD="$(TARGET_CXX)" \ - ./configure \ + PYTHON=$(HOST_DIR)/usr/bin/python2 \ + $(HOST_DIR)/usr/bin/python2 ./configure \ --prefix=/usr \ --without-snapshot \ $(if $(BR2_PACKAGE_OPENSSL),--shared-openssl,--without-ssl) \ @@ -73,10 +81,13 @@ define NODEJS_CONFIGURE_CMDS $(if $(NODEJS_ARM_FP),--with-arm-float-abi=$(NODEJS_ARM_FP)) \ --dest-os=linux \ ) + $(SED) "s@'python',@'$(HOST_DIR)/usr/bin/python2',@" \ + $(@D)/deps/v8/tools/gyp/v8.gyp endef define NODEJS_BUILD_CMDS - $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ + $(TARGET_MAKE_ENV) PYTHON=$(HOST_DIR)/usr/bin/python2 \ + $(MAKE) -C $(@D) \ $(TARGET_CONFIGURE_OPTS) \ LD="$(TARGET_CXX)" endef @@ -110,7 +121,8 @@ endef endif define NODEJS_INSTALL_TARGET_CMDS - $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install \ + $(TARGET_MAKE_ENV) PYTHON=$(HOST_DIR)/usr/bin/python2 \ + $(MAKE) -C $(@D) install \ DESTDIR=$(TARGET_DIR) \ $(TARGET_CONFIGURE_OPTS) \ LD="$(TARGET_CXX)"