diff mbox

libuci: Lua binding needs mmu and version 5.1

Message ID 1396708617-7364-1-git-send-email-yegorslists@googlemail.com
State Accepted
Headers show

Commit Message

Yegor Yefremov April 5, 2014, 2:36 p.m. UTC
The Lua binding option of libuci uses fork() so it needs the MMU.

Finally, libuci fails to build with Lua 5.2 because it uses functions
removed from this version. Fix it by activating the option only with
Lua 5.1.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
---
 package/libuci/libuci.mk | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

Comments

Thomas Petazzoni April 5, 2014, 5:08 p.m. UTC | #1
Dear Yegor Yefremov,

On Sat,  5 Apr 2014 16:36:57 +0200, Yegor Yefremov wrote:
> The Lua binding option of libuci uses fork() so it needs the MMU.
> 
> Finally, libuci fails to build with Lua 5.2 because it uses functions
> removed from this version. Fix it by activating the option only with
> Lua 5.1.
> 
> Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
> ---
>  package/libuci/libuci.mk | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)

I've applied your patch... but I'm not really happy because you clearly
tested the patch insufficiently:

> diff --git a/package/libuci/libuci.mk b/package/libuci/libuci.mk
> index 736b946..42e61ee 100644
> --- a/package/libuci/libuci.mk
> +++ b/package/libuci/libuci.mk
> @@ -10,10 +10,14 @@ LIBUCI_LICENSE = LGPLv2.1
>  LIBUCI_INSTALL_STAGING = YES
>  LIBUCI_DEPENDENCIES = libubox
>  
> -ifeq ($(BR2_PACKAGE_LUA),y)
> -	LIBUCI_DEPENDENCIES += lua
> +ifeq ($(BR2_USE_MMU),y) # fork()
> +ifeq ($(BR2_PACKAGE_LUA_5_1),y)
> +LIBUBOX_DEPENDENCIES += lua
> +LIBUBOX_CONF_OPT += -DLUAPATH=$(STAGING_DIR)/usr/lib/lua/5.1 \
> +	-DLUA_CFLAGS=-I$(STAGING_DIR)/usr/include
>  else
> -	LIBUCI_CONF_OPT += -DBUILD_LUA:BOOL=OFF
> +LIBUBOX_CONF_OPT += -DBUILD_LUA:BOOL=OFF

LIBUBOX_* variables in libuci.mk ? Surely this cannot work.

I've fixed that and applied, but it'd be nice if patches were minimally
tested before being submitted :-)

Thanks!

Thomas
Yegor Yefremov April 5, 2014, 5:49 p.m. UTC | #2
On Sat, Apr 5, 2014 at 7:08 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Dear Yegor Yefremov,
>
> On Sat,  5 Apr 2014 16:36:57 +0200, Yegor Yefremov wrote:
>> The Lua binding option of libuci uses fork() so it needs the MMU.
>>
>> Finally, libuci fails to build with Lua 5.2 because it uses functions
>> removed from this version. Fix it by activating the option only with
>> Lua 5.1.
>>
>> Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
>> ---
>>  package/libuci/libuci.mk | 10 +++++++---
>>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> I've applied your patch... but I'm not really happy because you clearly
> tested the patch insufficiently:
>
>> diff --git a/package/libuci/libuci.mk b/package/libuci/libuci.mk
>> index 736b946..42e61ee 100644
>> --- a/package/libuci/libuci.mk
>> +++ b/package/libuci/libuci.mk
>> @@ -10,10 +10,14 @@ LIBUCI_LICENSE = LGPLv2.1
>>  LIBUCI_INSTALL_STAGING = YES
>>  LIBUCI_DEPENDENCIES = libubox
>>
>> -ifeq ($(BR2_PACKAGE_LUA),y)
>> -     LIBUCI_DEPENDENCIES += lua
>> +ifeq ($(BR2_USE_MMU),y) # fork()
>> +ifeq ($(BR2_PACKAGE_LUA_5_1),y)
>> +LIBUBOX_DEPENDENCIES += lua
>> +LIBUBOX_CONF_OPT += -DLUAPATH=$(STAGING_DIR)/usr/lib/lua/5.1 \
>> +     -DLUA_CFLAGS=-I$(STAGING_DIR)/usr/include
>>  else
>> -     LIBUCI_CONF_OPT += -DBUILD_LUA:BOOL=OFF
>> +LIBUBOX_CONF_OPT += -DBUILD_LUA:BOOL=OFF
>
> LIBUBOX_* variables in libuci.mk ? Surely this cannot work.
>
> I've fixed that and applied, but it'd be nice if patches were minimally
> tested before being submitted :-)

OMG! My bad! I know now, why I send patches from work and not from home :-)

I even made a test, but it was a test with Lua enabled, so it didn't
produce any error  :-(

Yegor
Hadrien Boutteville April 6, 2014, 1:02 p.m. UTC | #3
Hello Yegor,

On Sat, 5 Apr 2014 16:36:57 +0200, Yegor Yefremov wrote:
> The Lua binding option of libuci uses fork() so it needs the MMU.

The Lua binding of libuci doesn't use fork() unlike the libubox one,
therefore the patches are not the same. You could simply check in its
source directory with:

$ ack -c --cc fork lua/
lua/uci.c:0

or

$ grep -c fork lua/uci.c
0

So it doesn't need the MMU and you can remove:

> +ifeq ($(BR2_USE_MMU),y) # fork()
>
> (...)
>
> +endif # MMU

However I agree with the other changes (corrected by Thomas), the Lua
binding of libuci suffers from the same dirty CMakeLists.txt than
libubox ;-).

Regards,

Hadrien
diff mbox

Patch

diff --git a/package/libuci/libuci.mk b/package/libuci/libuci.mk
index 736b946..42e61ee 100644
--- a/package/libuci/libuci.mk
+++ b/package/libuci/libuci.mk
@@ -10,10 +10,14 @@  LIBUCI_LICENSE = LGPLv2.1
 LIBUCI_INSTALL_STAGING = YES
 LIBUCI_DEPENDENCIES = libubox
 
-ifeq ($(BR2_PACKAGE_LUA),y)
-	LIBUCI_DEPENDENCIES += lua
+ifeq ($(BR2_USE_MMU),y) # fork()
+ifeq ($(BR2_PACKAGE_LUA_5_1),y)
+LIBUBOX_DEPENDENCIES += lua
+LIBUBOX_CONF_OPT += -DLUAPATH=$(STAGING_DIR)/usr/lib/lua/5.1 \
+	-DLUA_CFLAGS=-I$(STAGING_DIR)/usr/include
 else
-	LIBUCI_CONF_OPT += -DBUILD_LUA:BOOL=OFF
+LIBUBOX_CONF_OPT += -DBUILD_LUA:BOOL=OFF
 endif
+endif # MMU
 
 $(eval $(cmake-package))