From patchwork Sun Mar 22 08:07:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Francois Perrad X-Patchwork-Id: 1259604 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=busybox.net (client-ip=140.211.166.133; helo=hemlock.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=cJCj1Z42; dkim-atps=neutral Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48lVVk08xLz9sPJ for ; Sun, 22 Mar 2020 19:07:42 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 77223888B9; Sun, 22 Mar 2020 08:07:39 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id argp70PvHl5D; Sun, 22 Mar 2020 08:07:38 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 9512F888D3; Sun, 22 Mar 2020 08:07:38 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id D2D721BF95F for ; Sun, 22 Mar 2020 08:07:33 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id CF5CA8772E for ; Sun, 22 Mar 2020 08:07:33 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id h-ykDuzST8bk for ; Sun, 22 Mar 2020 08:07:30 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) by whitealder.osuosl.org (Postfix) with ESMTPS id 6C469876FB for ; Sun, 22 Mar 2020 08:07:30 +0000 (UTC) Received: by mail-wm1-f51.google.com with SMTP id l20so10892476wmi.3 for ; Sun, 22 Mar 2020 01:07:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QsJutlvF44rVrU0EPaK0w71Wf967/GRnjd0ZSOOIGWw=; b=cJCj1Z42ZCdF8kSaHZidCKwqIQCA0rlhd0Y+6mzpfuRcZh6kuqYBR3j+qddx3pmfdu aAn5aHtHKTUPgSafMSVLKAitgT9fDkojouUPVpCCRZpfMYmgQhs6Q+Bld6FHVTmjJBRz Mf7Xbmlk8h0Faf+Vre+N9rnYcUaM71YVbgIoweS3uMJZYYCdbzJq7J528y8bG1tRUGPH Iotj/KDBtNYat6k7D6efgGhLNpDGsSlBeGEmuboK+9w0j4pzGDANJPCq1S58Ro0FzqSS RUFgAS/UuWuw9h4Y0KXdHdePi5NvXAlh1Nn37pakg+gYgGAWfncPAtWzrXr7z+ab9w97 8LMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QsJutlvF44rVrU0EPaK0w71Wf967/GRnjd0ZSOOIGWw=; b=WbuoWSy7apjvI+mk/vf3MUUh/KhSgUskL8ORDc+wefWdQKNcL61sXfC4+7viRW/h4u BuFsvTkOCVLLWs43D7ACPNjFwNN841dibsYu8Fo4Cpd8Qk9+doLy2zjmEtVzMqhqyT7X nXRim7ww8E9zZnlVEXSOWyoUMU3PUvIBN8vKoK/Jk8jXe0cjAFYOKW7czjXDO7TxCcbm 8aRNEHq5lOoEF6Q5Evt5p4vusR/qg6HN0jckLB70wLXGQite2KrR+4r6AMuX6ebsWV1G HovfzMhSsaNsQERw6A23mTC1eUJLTycixGv+bndkFHOTOkcahxWOcmFXElkBRFGk879D zttQ== X-Gm-Message-State: ANhLgQ1AQkuoN8MkRJJbBKU/GCBc4R4AQ9NDa4PXuSZrIrxuq/U5NPcb YEx+imHjjO0w6iQC/3fgaKyjf3e9 X-Google-Smtp-Source: ADFU+vvqUx2AoByyyG2jVd6YDMc4KzHNhGneCEhkEaby8xgpgDAmmp6LItXjUNpn/oe3tWszOav+qA== X-Received: by 2002:a1c:df07:: with SMTP id w7mr19564749wmg.7.1584864448461; Sun, 22 Mar 2020 01:07:28 -0700 (PDT) Received: from vb-19.10 (254.7.19.109.rev.sfr.net. [109.19.7.254]) by smtp.gmail.com with ESMTPSA id m19sm6459550wml.48.2020.03.22.01.07.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Mar 2020 01:07:28 -0700 (PDT) From: Francois Perrad X-Google-Original-From: Francois Perrad To: buildroot@busybox.net Date: Sun, 22 Mar 2020 09:07:04 +0100 Message-Id: <20200322080706.19806-3-francois.perrad@gadz.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200322080706.19806-1-francois.perrad@gadz.org> References: <20200322080706.19806-1-francois.perrad@gadz.org> MIME-Version: 1.0 Subject: [Buildroot] [pkg-luarocks v2 3/5] pkg-luarocks: add support of host-luarocks-package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Signed-off-by: Francois Perrad --- docs/manual/adding-packages-luarocks.txt | 4 +- package/luarocks/luarocks-br-host-config.lua | 3 + package/luarocks/luarocks.mk | 10 ++- package/pkg-luarocks.mk | 68 +++++++++++++++++--- 4 files changed, 70 insertions(+), 15 deletions(-) create mode 100644 package/luarocks/luarocks-br-host-config.lua diff --git a/docs/manual/adding-packages-luarocks.txt b/docs/manual/adding-packages-luarocks.txt index df97cdd50..70f48fc02 100644 --- a/docs/manual/adding-packages-luarocks.txt +++ b/docs/manual/adding-packages-luarocks.txt @@ -73,9 +73,7 @@ infrastructures in Buildroot, respectively. The main macro of the LuaRocks package infrastructure is +luarocks-package+: like +generic-package+ it works by defining a number of variables providing -metadata information about the package, and then calling +luarocks-package+. It -is worth mentioning that building LuaRocks packages for the host is not -supported, so the macro +host-luarocks-package+ is not implemented. +metadata information about the package, and then calling +luarocks-package+. Just like the generic infrastructure, the LuaRocks infrastructure works by defining a number of variables before calling the +luarocks-package+ diff --git a/package/luarocks/luarocks-br-host-config.lua b/package/luarocks/luarocks-br-host-config.lua new file mode 100644 index 000000000..631959545 --- /dev/null +++ b/package/luarocks/luarocks-br-host-config.lua @@ -0,0 +1,3 @@ +-- BR host compilation +local function getenv (name) return os_getenv(name) or '' end +external_deps_dirs = { getenv('HOST_DIR') } diff --git a/package/luarocks/luarocks.mk b/package/luarocks/luarocks.mk index 17360048c..b95172047 100644 --- a/package/luarocks/luarocks.mk +++ b/package/luarocks/luarocks.mk @@ -12,7 +12,9 @@ LUAROCKS_LICENSE_FILES = COPYING HOST_LUAROCKS_DEPENDENCIES = host-luainterpreter LUAROCKS_CONFIG_DIR = $(HOST_DIR)/etc -LUAROCKS_CONFIG_FILE = $(LUAROCKS_CONFIG_DIR)/luarocks/config-$(LUAINTERPRETER_ABIVER).lua +LUAROCKS_CONFIG_FILE_DEFAULT = $(LUAROCKS_CONFIG_DIR)/luarocks/config-$(LUAINTERPRETER_ABIVER).lua +LUAROCKS_CONFIG_FILE = $(LUAROCKS_CONFIG_DIR)/luarocks/config.lua +HOST_LUAROCKS_CONFIG_FILE = $(LUAROCKS_CONFIG_DIR)/luarocks/host-config.lua define LUAROCKS_ADDON_EXTRACT mkdir $(@D)/src/luarocks/cmd/external @@ -30,9 +32,13 @@ define HOST_LUAROCKS_CONFIGURE_CMDS endef define HOST_LUAROCKS_INSTALL_CMDS - rm -f $(LUAROCKS_CONFIG_FILE) + rm -f $(LUAROCKS_CONFIG_FILE_DEFAULT) $(MAKE1) -C $(@D) install + cp $(LUAROCKS_CONFIG_FILE_DEFAULT) $(LUAROCKS_CONFIG_FILE) cat $(HOST_LUAROCKS_PKGDIR)/luarocks-br-config.lua >> $(LUAROCKS_CONFIG_FILE) + cp $(LUAROCKS_CONFIG_FILE_DEFAULT) $(HOST_LUAROCKS_CONFIG_FILE) + cat $(HOST_LUAROCKS_PKGDIR)/luarocks-br-host-config.lua >> $(HOST_LUAROCKS_CONFIG_FILE) + rm -f $(LUAROCKS_CONFIG_FILE_DEFAULT) endef $(eval $(host-generic-package)) diff --git a/package/pkg-luarocks.mk b/package/pkg-luarocks.mk index 23906f4a8..603c0851b 100644 --- a/package/pkg-luarocks.mk +++ b/package/pkg-luarocks.mk @@ -19,8 +19,10 @@ LUAROCKS_RUN_CMD = $(HOST_DIR)/bin/luarocks LUAROCKS_CFLAGS = $(TARGET_CFLAGS) -fPIC +HOST_LUAROCKS_CFLAGS = $(HOST_CFLAGS) -fPIC ifeq ($(BR2_PACKAGE_LUA_5_3),y) LUAROCKS_CFLAGS += -DLUA_COMPAT_5_2 +HOST_LUAROCKS_CFLAGS += -DLUA_COMPAT_5_2 endif ################################################################################ @@ -39,16 +41,50 @@ endif define inner-luarocks-package -$(2)_BUILD_OPTS ?= -$(2)_NAME_UPSTREAM ?= $(1) -$(2)_SUBDIR ?= $$($(2)_NAME_UPSTREAM)-$$(shell echo "$$($(2)_VERSION)" | sed -e "s/-[0-9]$$$$//") -$(2)_ROCKSPEC ?= $$(call LOWERCASE,$$($(2)_NAME_UPSTREAM))-$$($(2)_VERSION).rockspec -$(2)_SOURCE ?= $$(call LOWERCASE,$$($(2)_NAME_UPSTREAM))-$$($(2)_VERSION).src.rock -$(2)_SITE ?= $$(call qstrip,$$(BR2_LUAROCKS_MIRROR)) +ifndef $(2)_NAME_UPSTREAM + ifdef $(3)_NAME_UPSTREAM + $(2)_NAME_UPSTREAM = $($(3)_NAME_UPSTREAM) + else + $(2)_NAME_UPSTREAM ?= $(1) + endif +endif + +ifndef $(2)_SUBDIR + ifdef $(3)_SUBDIR + $(2)_SUBDIR = $($(3)_SUBDIR) + else + $(2)_SUBDIR ?= $$($(3)_NAME_UPSTREAM)-$$(shell echo "$$($(3)_VERSION)" | sed -e "s/-[0-9]$$$$//") + endif +endif + +ifndef $(2)_ROCKSPEC + ifdef $(3)_ROCKSPEC + $(2)_ROCKSPEC = $($(3)_ROCKSPEC) + else + $(2)_ROCKSPEC ?= $$(call LOWERCASE,$$($(3)_NAME_UPSTREAM))-$$($(3)_VERSION).rockspec + endif +endif + +ifndef $(2)_SOURCE + ifdef $(3)_SOURCE + $(2)_SOURCE = $($(3)_SOURCE) + else + $(2)_SOURCE ?= $$(call LOWERCASE,$$($(3)_NAME_UPSTREAM))-$$($(3)_VERSION).src.rock + endif +endif + +ifndef $(2)_SITE + ifdef $(3)_SITE + $(2)_SITE = $($(3)_SITE) + else + $(2)_SITE ?= $$(call qstrip,$$(BR2_LUAROCKS_MIRROR)) + endif +endif -# Since we do not support host-luarocks-package, we know this is -# a target package, and can just add the required dependencies -$(2)_DEPENDENCIES += luainterpreter +ifeq ($(4),target) +$(2)_DEPENDENCIES += luainterpreter +endif +# host-luarocks implies host-luainterpreter $(2)_EXTRACT_DEPENDENCIES += host-luarocks # @@ -70,6 +106,7 @@ endif ifndef $(2)_INSTALL_TARGET_CMDS define $(2)_INSTALL_TARGET_CMDS cd $$($(2)_SRCDIR) && \ + LUAROCKS_CONFIG=$$(LUAROCKS_CONFIG_FILE) \ $$(LUAROCKS_RUN_CMD) make --keep --deps-mode none \ --tree "$$(TARGET_DIR)/usr" \ LUA_INCDIR="$$(STAGING_DIR)/usr/include" \ @@ -82,6 +119,17 @@ define $(2)_INSTALL_TARGET_CMDS endef endif +ifndef $(2)_INSTALL_CMDS +define $(2)_INSTALL_CMDS + cd $$($(2)_SRCDIR) && \ + LUAROCKS_CONFIG=$$(HOST_LUAROCKS_CONFIG_FILE) \ + $$(LUAROCKS_RUN_CMD) make --keep --deps-mode none \ + CFLAGS="$$(HOST_LUAROCKS_CFLAGS)" \ + LIBFLAG="-shared $$(HOST_LDFLAGS)" \ + $$($(2)_BUILD_OPTS) $$($(2)_ROCKSPEC) +endef +endif + # Call the generic package infrastructure to generate the necessary # make targets $(call inner-generic-package,$(1),$(2),$(3),$(4)) @@ -99,4 +147,4 @@ endef ################################################################################ luarocks-package = $(call inner-luarocks-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target) -# host-luarocks-package not supported +host-luarocks-package = $(call inner-luarocks-package,host-$(pkgname),$(call UPPERCASE,host-$(pkgname)),$(call UPPERCASE,$(pkgname)),host)