All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/middleclass: new package
@ 2016-06-06 13:04 Marcin Niestroj
  2016-06-07 11:25 ` Thomas Petazzoni
  0 siblings, 1 reply; 4+ messages in thread
From: Marcin Niestroj @ 2016-06-06 13:04 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
---
 package/Config.in                    |  1 +
 package/middleclass/Config.in        |  9 +++++++++
 package/middleclass/middleclass.hash |  2 ++
 package/middleclass/middleclass.mk   | 18 ++++++++++++++++++
 4 files changed, 30 insertions(+)
 create mode 100644 package/middleclass/Config.in
 create mode 100644 package/middleclass/middleclass.hash
 create mode 100644 package/middleclass/middleclass.mk

diff --git a/package/Config.in b/package/Config.in
index 9f6e0d9..b48948e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -544,6 +544,7 @@ menu "Lua libraries/modules"
 	source "package/luv/Config.in"
 	source "package/luvi/Config.in"
 	source "package/lzlib/Config.in"
+	source "package/middleclass/Config.in"
 	source "package/orbit/Config.in"
 	source "package/rings/Config.in"
 	source "package/turbolua/Config.in"
diff --git a/package/middleclass/Config.in b/package/middleclass/Config.in
new file mode 100644
index 0000000..712064a
--- /dev/null
+++ b/package/middleclass/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_MIDDLECLASS
+	bool "middleclass"
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
+	help
+	  middleclass is a simple OOP library for Lua. It has
+	  inheritance, metamethods (operators), class variables
+	  and weak mixin support.
+
+	  https://github.com/kikito/middleclass
diff --git a/package/middleclass/middleclass.hash b/package/middleclass/middleclass.hash
new file mode 100644
index 0000000..3fc794a
--- /dev/null
+++ b/package/middleclass/middleclass.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256	fc7f3e79a77d4733fd80b2e310f7f34092bdb5888549f304a24efd624c56482e  middleclass-v4.0.0.tar.gz
diff --git a/package/middleclass/middleclass.mk b/package/middleclass/middleclass.mk
new file mode 100644
index 0000000..3e21452
--- /dev/null
+++ b/package/middleclass/middleclass.mk
@@ -0,0 +1,18 @@
+################################################################################
+#
+# middleclass
+#
+################################################################################
+
+MIDDLECLASS_VERSION = v4.0.0
+MIDDLECLASS_SITE = $(call github,kikito,middleclass,$(MIDDLECLASS_VERSION))
+MIDDLECLASS_DEPENDENCIES = luainterpreter
+MIDDLECLASS_LICENSE = MIT
+MIDDLECLASS_LICENSE_FILES = MIT-LICENSE.txt
+
+define MIDDLECLASS_INSTALL_TARGET_CMDS
+	$(INSTALL) -m 0644 -D $(@D)/middleclass.lua \
+		$(TARGET_DIR)/usr/share/lua/$(LUAINTERPRETER_ABIVER)/middleclass.lua
+endef
+
+$(eval $(generic-package))
-- 
2.8.3

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] package/middleclass: new package
  2016-06-06 13:04 [Buildroot] [PATCH] package/middleclass: new package Marcin Niestroj
@ 2016-06-07 11:25 ` Thomas Petazzoni
  2016-06-07 11:57   ` Marcin Niestroj
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Petazzoni @ 2016-06-07 11:25 UTC (permalink / raw)
  To: buildroot

Hello,

On Mon,  6 Jun 2016 15:04:09 +0200, Marcin Niestroj wrote:
> Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>

Thanks for this contribution! However I have a few comments, see below.

> diff --git a/package/middleclass/Config.in b/package/middleclass/Config.in
> new file mode 100644
> index 0000000..712064a
> --- /dev/null
> +++ b/package/middleclass/Config.in
> @@ -0,0 +1,9 @@
> +config BR2_PACKAGE_MIDDLECLASS
> +	bool "middleclass"
> +	depends on BR2_PACKAGE_HAS_LUAINTERPRETER

This dependency is not necessary, since you're already including
package/middleclass/Config.in within the following condition:

if BR2_PACKAGE_HAS_LUAINTERPRETER && !BR2_STATIC_LIBS

> diff --git a/package/middleclass/middleclass.mk b/package/middleclass/middleclass.mk
> new file mode 100644
> index 0000000..3e21452
> --- /dev/null
> +++ b/package/middleclass/middleclass.mk
> @@ -0,0 +1,18 @@
> +################################################################################
> +#
> +# middleclass
> +#
> +################################################################################
> +
> +MIDDLECLASS_VERSION = v4.0.0
> +MIDDLECLASS_SITE = $(call github,kikito,middleclass,$(MIDDLECLASS_VERSION))
> +MIDDLECLASS_DEPENDENCIES = luainterpreter
> +MIDDLECLASS_LICENSE = MIT
> +MIDDLECLASS_LICENSE_FILES = MIT-LICENSE.txt
> +
> +define MIDDLECLASS_INSTALL_TARGET_CMDS
> +	$(INSTALL) -m 0644 -D $(@D)/middleclass.lua \
> +		$(TARGET_DIR)/usr/share/lua/$(LUAINTERPRETER_ABIVER)/middleclass.lua
> +endef
> +
> +$(eval $(generic-package))

Could you use the luarocks package infrastructure instead? The
middleclass package is available in luarocks, and it greatly simplifies
the Lua packages. See the luaexpat package for an example. The
Buildroot manual also has extensive documentation about the luarocks
package infrastructure.

Thanks a lot!

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] package/middleclass: new package
  2016-06-07 11:25 ` Thomas Petazzoni
@ 2016-06-07 11:57   ` Marcin Niestroj
  2016-06-07 12:26     ` Thomas Petazzoni
  0 siblings, 1 reply; 4+ messages in thread
From: Marcin Niestroj @ 2016-06-07 11:57 UTC (permalink / raw)
  To: buildroot

Hi,

On 07.06.2016 13:25, Thomas Petazzoni wrote:
> Hello,
>
> On Mon,  6 Jun 2016 15:04:09 +0200, Marcin Niestroj wrote:
>> Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
>
> Thanks for this contribution! However I have a few comments, see below.
>
>> diff --git a/package/middleclass/Config.in b/package/middleclass/Config.in
>> new file mode 100644
>> index 0000000..712064a
>> --- /dev/null
>> +++ b/package/middleclass/Config.in
>> @@ -0,0 +1,9 @@
>> +config BR2_PACKAGE_MIDDLECLASS
>> +	bool "middleclass"
>> +	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
>
> This dependency is not necessary, since you're already including
> package/middleclass/Config.in within the following condition:
>
> if BR2_PACKAGE_HAS_LUAINTERPRETER && !BR2_STATIC_LIBS

Thanks for pointing it. I used some other package as reference, so I 
missed that.

>
>> diff --git a/package/middleclass/middleclass.mk b/package/middleclass/middleclass.mk
>> new file mode 100644
>> index 0000000..3e21452
>> --- /dev/null
>> +++ b/package/middleclass/middleclass.mk
>> @@ -0,0 +1,18 @@
>> +################################################################################
>> +#
>> +# middleclass
>> +#
>> +################################################################################
>> +
>> +MIDDLECLASS_VERSION = v4.0.0
>> +MIDDLECLASS_SITE = $(call github,kikito,middleclass,$(MIDDLECLASS_VERSION))
>> +MIDDLECLASS_DEPENDENCIES = luainterpreter
>> +MIDDLECLASS_LICENSE = MIT
>> +MIDDLECLASS_LICENSE_FILES = MIT-LICENSE.txt
>> +
>> +define MIDDLECLASS_INSTALL_TARGET_CMDS
>> +	$(INSTALL) -m 0644 -D $(@D)/middleclass.lua \
>> +		$(TARGET_DIR)/usr/share/lua/$(LUAINTERPRETER_ABIVER)/middleclass.lua
>> +endef
>> +
>> +$(eval $(generic-package))
>
> Could you use the luarocks package infrastructure instead? The
> middleclass package is available in luarocks, and it greatly simplifies
> the Lua packages. See the luaexpat package for an example. The
> Buildroot manual also has extensive documentation about the luarocks
> package infrastructure.

I tried to use luarocks for that package. However I encountered two
issues with that approach:

1) middleclass is not consistent with it's version. In most places it
is 4.0.0. However in rockspec [1] it defines it's version as 4.0-0. I
guess it should be 4.0.0-0 instead. This inconsistency needs some
tweaks in Buildroot package makefile.

2) When middleclass is installed with luarocks on my host, it downloads
*.rockspec directly instead of *.src.rock. I think that Buildroot is
not supporting that case, but please correct me if I am wrong. It was 
not straightforward to make it work for me.

Above issues made me unable to add support for middleclass using
luarocks in a reasonable time. It was much simpler with current
approach.

[1] 
https://github.com/kikito/middleclass/blob/master/rockspecs/middleclass-4.0-0.rockspec

>
> Thanks a lot!
>
> Thomas
>

-- 
Marcin Niestroj

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] package/middleclass: new package
  2016-06-07 11:57   ` Marcin Niestroj
@ 2016-06-07 12:26     ` Thomas Petazzoni
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2016-06-07 12:26 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 7 Jun 2016 13:57:20 +0200, Marcin Niestroj wrote:

> > if BR2_PACKAGE_HAS_LUAINTERPRETER && !BR2_STATIC_LIBS  
> 
> Thanks for pointing it. I used some other package as reference, so I 
> missed that.

Other packages might be wrong, do not hesitate to send patches to fix
them if you find such issues.

> > Could you use the luarocks package infrastructure instead? The
> > middleclass package is available in luarocks, and it greatly simplifies
> > the Lua packages. See the luaexpat package for an example. The
> > Buildroot manual also has extensive documentation about the luarocks
> > package infrastructure.  
> 
> I tried to use luarocks for that package. However I encountered two
> issues with that approach:

OK. Fran?ois Perrad, who wrote the luarocks package infrastructure, is
in Cc of the discussion. Hopefully he can participate to the discussion
and give some feedback.

> 1) middleclass is not consistent with it's version. In most places it
> is 4.0.0. However in rockspec [1] it defines it's version as 4.0-0. I
> guess it should be 4.0.0-0 instead. This inconsistency needs some
> tweaks in Buildroot package makefile.

Hm, I'm not sure here, Fran?ois can comment I guess.

> 
> 2) When middleclass is installed with luarocks on my host, it downloads
> *.rockspec directly instead of *.src.rock. I think that Buildroot is
> not supporting that case, but please correct me if I am wrong. It was 
> not straightforward to make it work for me.

Hum, Buildroot does download the .src.rock, since the luarocks package
infrastructure defines:

$(2)_SOURCE             ?= $(1)-$$($(3)_VERSION).src.rock

> Above issues made me unable to add support for middleclass using
> luarocks in a reasonable time. It was much simpler with current
> approach.

Right, but not the most appropriate approach. If the package is on
luarocks.org, it should work with our infrastructure. Let's see what
Fran?ois can say about this.

Thanks!

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-06-07 12:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-06 13:04 [Buildroot] [PATCH] package/middleclass: new package Marcin Niestroj
2016-06-07 11:25 ` Thomas Petazzoni
2016-06-07 11:57   ` Marcin Niestroj
2016-06-07 12:26     ` Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.