Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [pkg-luarocks infra V4 06/10] luarocks: new infrastructure
Date: Sun, 22 Dec 2013 18:31:53 +0100	[thread overview]
Message-ID: <20131222183153.4c2c90c8@skate> (raw)
In-Reply-To: <1384520859-3189-6-git-send-email-francois.perrad@gadz.org>

Dear Francois Perrad,

On Fri, 15 Nov 2013 14:07:35 +0100, Francois Perrad wrote:
> 
> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
> ---
>  Config.in               |    8 ++++++
>  Makefile                |    1 +
>  package/Makefile.in     |    1 +
>  package/pkg-luarocks.mk |   71 +++++++++++++++++++++++++++++++++++++++++++++++
>  4 files changed, 81 insertions(+)
>  create mode 100644 package/pkg-luarocks.mk
> 
> diff --git a/Config.in b/Config.in
> index d87e0f0..cb41c36 100644
> --- a/Config.in
> +++ b/Config.in
> @@ -207,6 +207,14 @@ config BR2_DEBIAN_MIRROR
>  
>  endif
>  
> +config BR2_LUAROCKS_MIRROR
> +	string "LuaRocks mirror"
> +	default "http://luarocks.org/repositories/rocks"
> +	help
> +	  LuaRocks repository.
> +
> +	  See http://luarocks.org
> +
>  endmenu
>  
>  config BR2_JLEVEL
> diff --git a/Makefile b/Makefile
> index c7a0a6d..0dde760 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -473,6 +473,7 @@ endif
>  ifeq ($(BR2_PACKAGE_PYTHON_PYC_ONLY),y)
>  	find $(TARGET_DIR)/usr/lib/ -name '*.py' -print0 | xargs -0 rm -f
>  endif
> +	rm -rf $(TARGET_DIR)/usr/lib/luarocks
>  	$(STRIP_FIND_CMD) | xargs $(STRIPCMD) 2>/dev/null || true
>  	if test -d $(TARGET_DIR)/lib/modules; then \
>  		find $(TARGET_DIR)/lib/modules -type f -name '*.ko' | \
> diff --git a/package/Makefile.in b/package/Makefile.in
> index 612f3c7..f7fd8f9 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -363,4 +363,5 @@ include package/pkg-utils.mk
>  include package/pkg-download.mk
>  include package/pkg-autotools.mk
>  include package/pkg-cmake.mk
> +include package/pkg-luarocks.mk
>  include package/pkg-generic.mk
> diff --git a/package/pkg-luarocks.mk b/package/pkg-luarocks.mk
> new file mode 100644
> index 0000000..2a20413
> --- /dev/null
> +++ b/package/pkg-luarocks.mk
> @@ -0,0 +1,71 @@
> +################################################################################
> +# LuaRocks package infrastructure
> +# see http://luarocks.org/
> +#
> +# This file implements an infrastructure that eases development of
> +# package .mk files for LuaRocks packages.
> +# LuaRocks supports various build.type : builtin, make, cmake.
> +# This luarocks infrastructure supports only the builtin mode,
> +# the make & cmake modes could be directly handled by generic & cmake infrastructure.
> +#
> +# See the Buildroot documentation for details on the usage of this
> +# infrastructure
> +#
> +# In terms of implementation, this LuaRocks infrastructure requires
> +# the .mk file to only specify metadata informations about the
> +# package: name, version, etc.
> +#
> +################################################################################
> +
> +LUAROCKS_RUN = $(HOST_DIR)/usr/bin/luarocks

This variable could probably be provided by
package/luarocks/luarocks.mk.

> +
> +################################################################################
> +# inner-luarocks-package -- defines how the configuration, compilation and
> +# installation of a LuaRocks package should be done, implements a few hooks to
> +# tune the build process and calls the generic package infrastructure to
> +# generate the necessary make targets
> +#
> +#  argument 1 is the lowercase package name
> +#  argument 2 is the uppercase package name, including an HOST_ prefix
> +#             for host packages
> +#  argument 3 is the uppercase package name, without the HOST_ prefix
> +#             for host packages
> +#  argument 4 is the package directory prefix
> +#  argument 5 is the type (target or host)
> +################################################################################
> +
> +define inner-luarocks-package
> +
> +$(2)_BUILD_OPT				?=
> +$(2)_SUBDIR				?= $(1)-$(shell echo "$($(3)_VERSION)" | sed -e "s/-[0-9]$$//")

Can we avoid this subdir for all packages?

> +$(2)_ROCKSPEC				?= $(1)-$($(3)_VERSION).rockspec
> +$(2)_SOURCE				?= $(1)-$($(3)_VERSION).src.rock
> +$(2)_SITE				?= $(call qstrip,$(BR2_LUAROCKS_MIRROR))
> +
> +#
> +# Extract step
> +#
> +$(2)_EXTRACT_CMDS ?= \
> +	cd $$($(2)_DIR)/.. && $(LUAROCKS_RUN) unpack $(DL_DIR)/$$($(2)_SOURCE)
> +
> +# $(2)_DEPENDENCIES are handled for configure step (too late)
> +$(1)-extract: host-luarocks

Ok, I see the problem. However I believe I'd still like to see
host-luarocks added to $(2)_DEPENDENCIES so that the dependency graph
is correct, and "make source" / "make external-deps" properly show
luarocks.

> +#
> +# Build/install step.
> +#
> +$(2)_INSTALL_TARGET_CMDS ?= \
> +	cd $$($(2)_SRCDIR) && $(LUAROCKS_RUN) build --minimal $$($(2)_ROCKSPEC) $$($(2)_BUILD_OPT)

Maybe the extract and install target steps could be written using a
define ... endef block instead, for better readability?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

  reply	other threads:[~2013-12-22 17:31 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-15 13:07 [Buildroot] [pkg-luarocks infra V4 01/10] luainterpreter: create virtual package Francois Perrad
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 02/10] luajit: allow to build Lua extensions without lua Francois Perrad
2013-12-22 17:23   ` Thomas Petazzoni
2014-01-07 14:11     ` François Perrad
2014-01-10  2:34       ` Thomas Petazzoni
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 03/10] lua: remove a too invasive patch Francois Perrad
2013-12-22 17:24   ` Thomas Petazzoni
2013-12-22 17:30     ` Yann E. MORIN
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 04/10] lua*: restore version in module paths Francois Perrad
2013-12-22 17:26   ` Thomas Petazzoni
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 05/10] luarocks: new package Francois Perrad
2013-12-22 17:28   ` Thomas Petazzoni
2013-12-22 20:45     ` Yann E. MORIN
2013-12-23  7:56     ` François Perrad
2013-12-23  8:21       ` Thomas Petazzoni
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 06/10] luarocks: new infrastructure Francois Perrad
2013-12-22 17:31   ` Thomas Petazzoni [this message]
2013-12-22 20:47     ` Yann E. MORIN
2013-12-23  8:20     ` François Perrad
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 07/10] lua-cjson: restore official name Francois Perrad
2013-12-22 17:32   ` Thomas Petazzoni
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 08/10] luasql-sqlite3: renamed like with LuaRocks Francois Perrad
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 09/10] lua*: refactor with luarocks infrastructure Francois Perrad
2013-12-22 17:34   ` Thomas Petazzoni
2013-11-15 13:07 ` [Buildroot] [pkg-luarocks infra V4 10/10] manual: adding packages luarocks Francois Perrad
2013-12-22 17:40   ` Thomas Petazzoni
2013-12-22 20:51     ` Yann E. MORIN
2013-12-22 20:02   ` Yann E. MORIN
2013-12-22 20:52     ` Yann E. MORIN
2013-12-22 17:22 ` [Buildroot] [pkg-luarocks infra V4 01/10] luainterpreter: create virtual package Thomas Petazzoni
2013-12-22 20:44   ` Yann E. MORIN
2013-12-22 17:37 ` Yann E. MORIN
2013-12-22 20:56   ` Yann E. MORIN

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20131222183153.4c2c90c8@skate \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox