Fix issues with lua-5.2.1

Created a devel portion to the recipe
Fixed lookup of directories for lua root/modules
Fixed soname not being set in the lib
This commit is contained in:
Chris Roberts
2013-10-22 02:49:53 -06:00
parent 7d72477e7b
commit 6eea71fd10
3 changed files with 62 additions and 112 deletions

View File

@@ -21,18 +21,29 @@ BUILD_PREREQUIRES="
cmd:gcc
"
PROVIDES_devel="
lua_devel = $portVersion
devel:liblua = $portVersion compat = 5.2
"
REQUIRES_devel="
lua == $portVersion
"
PATCHES="lua-$portVersion.patchset"
BUILD()
{
make haiku
make haiku MYCFLAGS="-DLUA_ROOT='\"$prefix/\"' -DLUA_LDIR='\"$dataDir/lua/5.2/\"'"
}
INSTALL()
{
make install INSTALL_TOP="$prefix" INSTALL_MAN="$manDir" \
INSTALL_INC="$includeDir" INSTALL_LMOD="$dataDir/lua/$V"
INSTALL_INC="$includeDir" INSTALL_LMOD="$dataDir/lua/5.2"
prepareInstalledDevelLib liblua
packageEntries devel $developDir
}
LICENSE="MIT"
COPYRIGHT="1994-2012, Lua.org, PUC-Rio"

View File

@@ -1,91 +0,0 @@
diff -ru lua-5.2.1/Makefile lua-5.2.1.patched/Makefile
--- lua-5.2.1/Makefile 2012-05-17 16:05:54.032768000 +0200
+++ lua-5.2.1.patched/Makefile 2012-08-12 16:50:24.994574336 +0200
@@ -36,12 +36,12 @@
# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE =======
# Convenience platforms targets.
-PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+PLATS= aix ansi bsd freebsd generic haiku linux macosx mingw posix solaris
# What to install.
TO_BIN= lua luac
TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
-TO_LIB= liblua.a
+TO_LIB= liblua.a liblua.so
TO_MAN= lua.1 luac.1
# Lua version and release.
diff -ru lua-5.2.1/src/luaconf.h lua-5.2.1.patched/src/luaconf.h
--- lua-5.2.1/src/luaconf.h 2012-05-11 16:14:42.025690112 +0200
+++ lua-5.2.1.patched/src/luaconf.h 2012-08-12 16:56:30.385875968 +0200
@@ -40,6 +40,13 @@
+#if defined(LUA_USE_HAIKU)
+#define LUA_USE_MKSTEMP
+#define LUA_USE_ISATTY
+#define LUA_USE_POPEN
+#define LUA_USE_DLOPEN
+#endif
+
#if defined(LUA_USE_LINUX)
#define LUA_USE_POSIX
#define LUA_USE_DLOPEN /* needs an extra library: -ldl */
@@ -100,7 +107,11 @@
#else /* }{ */
#define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "/"
+#if defined(LUA_USE_HAIKU)
+#define LUA_ROOT "/boot/common/"
+#else
#define LUA_ROOT "/usr/local/"
+#endif
#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR
#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR
#define LUA_PATH_DEFAULT \
diff -ru lua-5.2.1/src/Makefile lua-5.2.1.patched/src/Makefile
--- lua-5.2.1/src/Makefile 2012-03-09 17:32:16.029884416 +0100
+++ lua-5.2.1.patched/src/Makefile 2012-08-12 16:52:43.662437888 +0200
@@ -26,9 +26,10 @@
# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE =======
-PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+PLATS= aix ansi bsd freebsd generic haiku linux macosx mingw posix solaris
LUA_A= liblua.a
+LUA_SO= liblua.so
CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \
lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \
ltm.o lundump.o lvm.o lzio.o
@@ -43,7 +44,7 @@
LUAC_O= luac.o
ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
+ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)
ALL_A= $(LUA_A)
# Targets start here.
@@ -65,6 +66,9 @@
$(LUAC_T): $(LUAC_O) $(LUA_A)
$(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
+$(LUA_SO): $(CORE_O) $(LIB_O)
+ $(CC) -o $@ -shared -fPIC $(LDFLAGS) $? $(LIBS)
+
clean:
$(RM) $(ALL_T) $(ALL_O)
@@ -102,6 +106,9 @@
generic: $(ALL)
+haiku:
+ $(MAKE) all MUCFLAGS=-DLUA_USE_HAIKU LIBS=
+
linux:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses"

View File

@@ -1,4 +1,4 @@
From 4130bdecfcb78e60b64a8ade8689aa02158eda46 Mon Sep 17 00:00:00 2001
From a2fa4f5ec85201d7aa2721594a66d9171c0e6dd1 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Sun, 6 Oct 2013 10:13:45 +0200
Subject: Import existing patch.
@@ -24,7 +24,7 @@ index bd9515f..22d3a62 100644
# Lua version and release.
diff --git a/src/Makefile b/src/Makefile
index 8c9ee67..2f7065c 100644
index 8c9ee67..507632b 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -26,9 +26,10 @@ MYOBJS=
@@ -63,13 +63,13 @@ index 8c9ee67..2f7065c 100644
generic: $(ALL)
+haiku:
+ $(MAKE) all MUCFLAGS=-DLUA_USE_HAIKU LIBS=
+ $(MAKE) all SYSCFLAGS="-DLUA_USE_HAIKU" LIBS=
+
linux:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses"
diff --git a/src/luaconf.h b/src/luaconf.h
index e4335df..cef74a7 100644
index e4335df..107b864 100644
--- a/src/luaconf.h
+++ b/src/luaconf.h
@@ -40,6 +40,13 @@
@@ -86,23 +86,11 @@ index e4335df..cef74a7 100644
#if defined(LUA_USE_LINUX)
#define LUA_USE_POSIX
#define LUA_USE_DLOPEN /* needs an extra library: -ldl */
@@ -100,7 +107,11 @@
#else /* }{ */
#define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "/"
+#if defined(LUA_USE_HAIKU)
+#define LUA_ROOT "/boot/common/"
+#else
#define LUA_ROOT "/usr/local/"
+#endif
#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR
#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR
#define LUA_PATH_DEFAULT \
--
1.8.3.4
From 5fbc99c965898e393a34cff6bfb14b29dc77426b Mon Sep 17 00:00:00 2001
From ccb35be40296d43903e01fdd01d2e53cd017b615 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Sun, 6 Oct 2013 10:25:23 +0200
Subject: Set the library soname
@@ -110,7 +98,7 @@ Subject: Set the library soname
* prepareInstalledDevelLib will fail if there is no soname.
diff --git a/src/Makefile b/src/Makefile
index 2f7065c..b279d4b 100644
index 507632b..dd3c36b 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -67,7 +67,7 @@ $(LUAC_T): $(LUAC_O) $(LUA_A)
@@ -118,10 +106,52 @@ index 2f7065c..b279d4b 100644
$(LUA_SO): $(CORE_O) $(LIB_O)
- $(CC) -o $@ -shared -fPIC $(LDFLAGS) $? $(LIBS)
+ $(CC) -o $@ -shared -fPIC -Wl,-soname=liblua.so.$V $(LDFLAGS) $? $(LIBS)
+ $(CC) -o $@ -shared -fPIC -Wl,-soname=liblua.so.$(V) $(LDFLAGS) $? $(LIBS)
clean:
$(RM) $(ALL_T) $(ALL_O)
--
1.8.3.4
From a367a186c5058f68c758f0ff6fc45f3033a5ae97 Mon Sep 17 00:00:00 2001
From: Chris Roberts <cpr420@gmail.com>
Date: Tue, 22 Oct 2013 02:42:32 -0600
Subject: =?UTF-8?q?Allow=20passing=20LUA=5FROOT=20and=20LUA=5FLDIR=20on=20?=
=?UTF-8?q?the=20command=20line=0APass=20V=20(version)=20onto=20src/Makefi?=
=?UTF-8?q?le?=
diff --git a/Makefile b/Makefile
index 22d3a62..729ede5 100644
--- a/Makefile
+++ b/Makefile
@@ -52,7 +52,7 @@ R= $V.1
all: $(PLAT)
$(PLATS) clean:
- cd src && $(MAKE) $@
+ cd src && $(MAKE) V=$(V) $@
test: dummy
src/lua -v
diff --git a/src/luaconf.h b/src/luaconf.h
index 107b864..2418ef6 100644
--- a/src/luaconf.h
+++ b/src/luaconf.h
@@ -107,8 +107,12 @@
#else /* }{ */
#define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "/"
+#ifndef LUA_ROOT
#define LUA_ROOT "/usr/local/"
+#endif
+#ifndef LUA_LDIR
#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR
+#endif
#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR
#define LUA_PATH_DEFAULT \
LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \
--
1.8.3.4