summaryrefslogtreecommitdiff
path: root/lang/lua51
diff options
context:
space:
mode:
authordholland <dholland@pkgsrc.org>2013-10-30 06:18:09 +0000
committerdholland <dholland@pkgsrc.org>2013-10-30 06:18:09 +0000
commit75737aab7c1d8a7dfa60377ba3a2b441c7291eed (patch)
treea9c8d91a9a039b3bcdf7db23e51528c61b9b5c79 /lang/lua51
parent21eabb41879df6aca034c4dd4916cb9faaf345fd (diff)
downloadpkgsrc-75737aab7c1d8a7dfa60377ba3a2b441c7291eed.tar.gz
Reimport lang/lua as lang/lua52, and bring back the previous Lua 5.1
package as lang/lua51. I've adjusted the depends and switched the PKGNAMEs but these packages are otherwise unchanged. This means that you can't install both at once. There are preliminary patches for that (see tech-pkg) but they aren't quite ready yet. This also doesn't include agc's builtin.mk, although it should be possible to drop it into the lua51 package with only very minor modifications. I don't think the builtin packages will allow having one builtin.mk for both lua51 and lua52, but I'd be happy to be shown wrong about that. Add infrastructure support for Lua module packages (including multiversion support), application packages written in Lua, and a redirecting bl3.mk file for packages that just link Lua in. This is based on the Python infrastructure. The new variable LUA_VERSION_DEFAULT picks which Lua package you get by default; it is set to 52 so as to maintain the status quo. Packages can set LUA_VERSIONS_ACCEPTED and/or LUA_VERSIONS_INCOMPATIBLE. I have found (I think) most or all the packages that don't work with lua51 and will be marking those; I have not tracked down most of the ones that don't work with lua52 yet as I was originally intending to roll back to 5.1 as the default.
Diffstat (limited to 'lang/lua51')
-rw-r--r--lang/lua51/DESCR21
-rw-r--r--lang/lua51/Makefile81
-rw-r--r--lang/lua51/PLIST49
-rw-r--r--lang/lua51/buildlink3.mk15
-rw-r--r--lang/lua51/distinfo8
-rw-r--r--lang/lua51/patches/patch-aa53
-rw-r--r--lang/lua51/patches/patch-ab80
-rw-r--r--lang/lua51/patches/patch-ac26
-rw-r--r--lang/lua51/version.mk6
9 files changed, 339 insertions, 0 deletions
diff --git a/lang/lua51/DESCR b/lang/lua51/DESCR
new file mode 100644
index 00000000000..b3e57a165fe
--- /dev/null
+++ b/lang/lua51/DESCR
@@ -0,0 +1,21 @@
+Lua is a powerful, light-weight programming language designed for
+extending applications. Lua is also frequently used as a
+general-purpose, stand-alone language.
+
+Lua combines simple procedural syntax (similar to Pascal) with
+powerful data description constructs based on associative arrays and
+extensible semantics. Lua is dynamically typed, interpreted from
+bytecodes, and has automatic memory management, making it ideal for
+configuration, scripting, and rapid prototyping.
+
+Lua is a language engine that you can embed into your application.
+This means that, besides syntax and semantics, Lua has an API that
+allows the application to exchange data with Lua programs and also to
+extend Lua with C functions. In this sense, Lua can be regarded as a
+language framework for building domain-specific languages.
+
+Lua is implemented as a small library of C functions, written in ANSI
+C, and compiles unmodified in all known platforms. The implementation
+goals are simplicity, efficiency, portability, and low embedding cost.
+The result is a fast language engine with small footprint, making it
+ideal in embedded systems too.
diff --git a/lang/lua51/Makefile b/lang/lua51/Makefile
new file mode 100644
index 00000000000..1c5ef8e47f2
--- /dev/null
+++ b/lang/lua51/Makefile
@@ -0,0 +1,81 @@
+# $NetBSD: Makefile,v 1.1 2013/10/30 06:18:09 dholland Exp $
+
+DISTNAME= lua-${LUA_VERSION}
+PKGNAME= lua51-${LUA_VERSION}
+CATEGORIES= lang
+MASTER_SITES= http://www.lua.org/ftp/ \
+ http://www.tecgraf.puc-rio.br/lua/ftp/
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+HOMEPAGE= http://www.lua.org/
+COMMENT= Powerful light-weight language for extending applications
+LICENSE= mit
+
+.include "../../lang/lua51/version.mk"
+
+PKG_INSTALLATION_TYPES= overwrite pkgviews
+CONFLICTS+= lua-[0-9]*
+
+.include "../../mk/bsd.prefs.mk"
+
+USE_LIBTOOL= yes
+USE_TOOLS+= gmake
+MAKE_ENV+= DLLIB=${BUILDLINK_LDADD.dl:Q}
+MAKE_ENV+= INSTALL_DATA=${INSTALL_DATA:Q}
+CFLAGS+= -DLUA_ROOT=\"${PREFIX}/\"
+
+MAKE_FLAGS+= CC=cc
+
+DOCDIR= ${PREFIX}/share/doc/lua
+EGDIR= ${PREFIX}/share/examples/lua
+
+.if ${OPSYS} == "FreeBSD"
+BUILD_TARGET= freebsd
+.elif !empty(OPSYS:M*BSD*) || ${OPSYS} == "DragonFly"
+BUILD_TARGET= bsd
+.elif ${OPSYS} == "Linux"
+BUILD_TARGET= linux
+.elif ${OPSYS} == "Darwin"
+BUILD_TARGET= macosx
+.elif ${OPSYS} == "SunOS"
+BUILD_TARGET= solaris
+.elif ${OPSYS} == "AIX"
+BUILD_TARGET= aix
+.else
+BUILD_TARGET= generic
+.endif
+
+PKGCONFIG_OVERRIDE= ${WRKSRC}/etc/lua.pc
+
+INSTALLATION_DIRS+= lib/pkgconfig
+
+SUBST_CLASSES+= pc-prefix
+SUBST_FILES.pc-prefix+= ${WRKSRC}/etc/lua.pc
+SUBST_SED.pc-prefix+= -e "s,/usr/local,${PREFIX},"
+SUBST_STAGE.pc-prefix= post-build
+
+post-install:
+ ${INSTALL_DATA_DIR} ${DESTDIR}${DOCDIR}
+ set -e; \
+ cd ${WRKSRC}; for f in README COPYRIGHT HISTORY; do \
+ ${INSTALL_DATA} "$$f" ${DESTDIR}${DOCDIR}; \
+ done
+ set -e; \
+ cd ${WRKSRC}/doc; for f in *.html *.gif; do \
+ ${INSTALL_DATA} "$$f" ${DESTDIR}${DOCDIR}; \
+ done
+ ${INSTALL_DATA_DIR} ${DESTDIR}${EGDIR}
+ set -e; \
+ cd ${WRKSRC}/test; for f in README *.lua; do \
+ ${INSTALL_DATA} "$$f" ${DESTDIR}${EGDIR}; \
+ done
+ ${INSTALL_DATA_DIR} ${DESTDIR}${EGDIR}/etc
+ set -e; \
+ cd ${WRKSRC}/etc; for f in README *.c *.ico *.lua; do \
+ ${INSTALL_DATA} "$$f" ${DESTDIR}${EGDIR}/etc; \
+ done
+ ${INSTALL_DATA} ${WRKSRC}/etc/lua.pc ${DESTDIR}${PREFIX}/lib/pkgconfig
+
+.include "../../devel/readline/buildlink3.mk"
+.include "../../mk/dlopen.buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/lang/lua51/PLIST b/lang/lua51/PLIST
new file mode 100644
index 00000000000..94f42a2b4ed
--- /dev/null
+++ b/lang/lua51/PLIST
@@ -0,0 +1,49 @@
+@comment $NetBSD: PLIST,v 1.1 2013/10/30 06:18:09 dholland Exp $
+bin/lua
+bin/luac
+include/lauxlib.h
+include/lua.h
+include/lua.hpp
+include/luaconf.h
+include/lualib.h
+lib/liblua.la
+lib/pkgconfig/lua.pc
+man/man1/lua.1
+man/man1/luac.1
+share/doc/lua/COPYRIGHT
+share/doc/lua/HISTORY
+share/doc/lua/README
+share/doc/lua/contents.html
+share/doc/lua/logo.gif
+share/doc/lua/lua.html
+share/doc/lua/luac.html
+share/doc/lua/manual.html
+share/doc/lua/readme.html
+share/examples/lua/README
+share/examples/lua/bisect.lua
+share/examples/lua/cf.lua
+share/examples/lua/echo.lua
+share/examples/lua/env.lua
+share/examples/lua/etc/README
+share/examples/lua/etc/all.c
+share/examples/lua/etc/lua.ico
+share/examples/lua/etc/min.c
+share/examples/lua/etc/noparser.c
+share/examples/lua/etc/strict.lua
+share/examples/lua/factorial.lua
+share/examples/lua/fib.lua
+share/examples/lua/fibfor.lua
+share/examples/lua/globals.lua
+share/examples/lua/hello.lua
+share/examples/lua/life.lua
+share/examples/lua/luac.lua
+share/examples/lua/printf.lua
+share/examples/lua/readonly.lua
+share/examples/lua/sieve.lua
+share/examples/lua/sort.lua
+share/examples/lua/table.lua
+share/examples/lua/trace-calls.lua
+share/examples/lua/trace-globals.lua
+share/examples/lua/xd.lua
+@pkgdir share/lua/5.1
+@pkgdir lib/lua/5.1
diff --git a/lang/lua51/buildlink3.mk b/lang/lua51/buildlink3.mk
new file mode 100644
index 00000000000..404d620ce63
--- /dev/null
+++ b/lang/lua51/buildlink3.mk
@@ -0,0 +1,15 @@
+# $NetBSD: buildlink3.mk,v 1.1 2013/10/30 06:18:09 dholland Exp $
+
+BUILDLINK_TREE+= lua51
+
+.if !defined(LUA51_BUILDLINK3_MK)
+LUA51_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.lua51+= lua51>=5.1.1<5.2
+BUILDLINK_ABI_DEPENDS.lua51+= lua51>=5.1.4nb1<5.2
+BUILDLINK_PKGSRCDIR.lua51?= ../../lang/lua51
+
+.include "../../devel/readline/buildlink3.mk"
+.endif # LUA51_BUILDLINK3_MK
+
+BUILDLINK_TREE+= -lua51
diff --git a/lang/lua51/distinfo b/lang/lua51/distinfo
new file mode 100644
index 00000000000..c658de241f0
--- /dev/null
+++ b/lang/lua51/distinfo
@@ -0,0 +1,8 @@
+$NetBSD: distinfo,v 1.1 2013/10/30 06:18:09 dholland Exp $
+
+SHA1 (lua-5.1.5.tar.gz) = b3882111ad02ecc6b972f8c1241647905cb2e3fc
+RMD160 (lua-5.1.5.tar.gz) = b0c2234675335a8bf158a125b6778cf800c754a0
+Size (lua-5.1.5.tar.gz) = 221213 bytes
+SHA1 (patch-aa) = 25bcd22d3fc319c51356b7f976d0215eb04900db
+SHA1 (patch-ab) = 6f0964957112afbbc77648c86ae2a6ddd20c3389
+SHA1 (patch-ac) = bd2348dcb273de09ddc09da906c93de6cc209c5c
diff --git a/lang/lua51/patches/patch-aa b/lang/lua51/patches/patch-aa
new file mode 100644
index 00000000000..240e51a7662
--- /dev/null
+++ b/lang/lua51/patches/patch-aa
@@ -0,0 +1,53 @@
+$NetBSD: patch-aa,v 1.1 2013/10/30 06:18:10 dholland Exp $
+
+--- Makefile.orig 2008-08-12 01:40:48.000000000 +0100
++++ Makefile 2009-12-17 16:36:32.000000000 +0000
+@@ -9,11 +9,11 @@ PLAT= none
+
+ # Where to install. The installation starts in the src and doc directories,
+ # so take care if INSTALL_TOP is not an absolute path.
+-INSTALL_TOP= /usr/local
++INSTALL_TOP= ${PREFIX}
+ INSTALL_BIN= $(INSTALL_TOP)/bin
+ INSTALL_INC= $(INSTALL_TOP)/include
+ INSTALL_LIB= $(INSTALL_TOP)/lib
+-INSTALL_MAN= $(INSTALL_TOP)/man/man1
++INSTALL_MAN= $(INSTALL_TOP)/${PKGMANDIR}/man1
+ #
+ # You probably want to make INSTALL_LMOD and INSTALL_CMOD consistent with
+ # LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h (and also with etc/lua.pc).
+@@ -24,7 +24,7 @@ INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
+ # may have to run ranlib on the installed liblua.a (do "make ranlib").
+ INSTALL= install -p
+ INSTALL_EXEC= $(INSTALL) -m 0755
+-INSTALL_DATA= $(INSTALL) -m 0644
++#INSTALL_DATA= $(INSTALL) -m 0644
+ #
+ # If you don't have install you can use cp instead.
+ # INSTALL= cp -p
+@@ -43,7 +43,7 @@ PLATS= aix ansi bsd freebsd generic linu
+ # What to install.
+ TO_BIN= lua luac
+ TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp
+-TO_LIB= liblua.a
++TO_LIB= liblua.la
+ TO_MAN= lua.1 luac.1
+
+ # Lua version and release.
+@@ -59,11 +59,11 @@ test: dummy
+ src/lua test/hello.lua
+
+ install: dummy
+- cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
+- cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
+- cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
+- cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
+- cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
++ cd src && $(MKDIR) $(DESTDIR)$(INSTALL_BIN) $(DESTDIR)$(INSTALL_INC) $(DESTDIR)$(INSTALL_LIB) $(DESTDIR)$(INSTALL_MAN) $(DESTDIR)$(INSTALL_LMOD) $(DESTDIR)$(INSTALL_CMOD)
++ cd src && $(LIBTOOL) --tag=CC --mode=install $(BSD_INSTALL_PROGRAM) $(TO_BIN) $(DESTDIR)$(INSTALL_BIN)
++ cd src && $(INSTALL_DATA) $(TO_INC) $(DESTDIR)$(INSTALL_INC)
++ cd src && $(LIBTOOL) --tag=CC --mode=install $(BSD_INSTALL_LIB) $(TO_LIB) $(DESTDIR)$(INSTALL_LIB)
++ cd doc && $(INSTALL_DATA) $(TO_MAN) $(DESTDIR)$(INSTALL_MAN)
+
+ ranlib:
+ cd src && cd $(INSTALL_LIB) && $(RANLIB) $(TO_LIB)
diff --git a/lang/lua51/patches/patch-ab b/lang/lua51/patches/patch-ab
new file mode 100644
index 00000000000..320d7e6b283
--- /dev/null
+++ b/lang/lua51/patches/patch-ab
@@ -0,0 +1,80 @@
+$NetBSD: patch-ab,v 1.1 2013/10/30 06:18:10 dholland Exp $
+
+--- src/Makefile.orig 2012-02-13 20:41:22.000000000 +0000
++++ src/Makefile
+@@ -7,8 +7,8 @@
+ # Your platform. See PLATS for possible values.
+ PLAT= none
+
+-CC= gcc
+-CFLAGS= -O2 -Wall $(MYCFLAGS)
++CC?= gcc
++CFLAGS+= -Wall $(MYCFLAGS)
+ AR= ar rcu
+ RANLIB= ranlib
+ RM= rm -f
+@@ -18,22 +18,32 @@ MYCFLAGS=
+ MYLDFLAGS=
+ MYLIBS=
+
++.SUFFIXES: .lo
++.c.lo:
++ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(CFLAGS) -c $<
++LV= 5:1
++
+ # == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
+
+ PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+
+-LUA_A= liblua.a
+-CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
++LUA_XA= liblua.a
++LUA_A= liblua.la
++XCORE_O= lapi.o lcode.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
+-LIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \
++XLIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \
+ lstrlib.o loadlib.o linit.o
++CORE_O= $(XCORE_O:.o=.lo)
++LIB_O= $(XLIB_O:.o=.lo)
+
+ LUA_T= lua
+-LUA_O= lua.o
++LUA_XO= lua.o
++LUA_O= $(LUA_XO:.o=.lo)
+
+ LUAC_T= luac
+-LUAC_O= luac.o print.o
++LUAC_XO= luac.o print.o
++LUAC_O= $(LUAC_XO:.o=.lo)
+
+ ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
+ ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
+@@ -48,14 +58,13 @@ o: $(ALL_O)
+ a: $(ALL_A)
+
+ $(LUA_A): $(CORE_O) $(LIB_O)
+- $(AR) $@ $(CORE_O) $(LIB_O) # DLL needs all object files
+- $(RANLIB) $@
++ ${LIBTOOL} --tag=CC --mode=link ${CC} ${LDFLAGS} -o $@ ${CORE_O} ${LIB_O} -rpath ${PREFIX}/lib -version-info ${LV} ${LIBS}
+
+ $(LUA_T): $(LUA_O) $(LUA_A)
+- $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
++ ${LIBTOOL} --tag=CC --mode=link $(CC) -o $@ ${LDFLAGS} $(LUA_O) $(LUA_A) $(LIBS)
+
+ $(LUAC_T): $(LUAC_O) $(LUA_A)
+- $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
++ ${LIBTOOL} --tag=CC --mode=link $(CC) -static -o $@ ${LDFLAGS} $(LUAC_O) $(LUA_A) $(LIBS)
+
+ clean:
+ $(RM) $(ALL_T) $(ALL_O)
+@@ -87,7 +96,7 @@ ansi:
+ $(MAKE) all MYCFLAGS=-DLUA_ANSI
+
+ bsd:
+- $(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-Wl,-E"
++ $(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN -DLUA_USE_READLINE" MYLIBS="-Wl,-E -lreadline -lhistory"
+
+ freebsd:
+ $(MAKE) all MYCFLAGS="-DLUA_USE_LINUX" MYLIBS="-Wl,-E -lreadline"
diff --git a/lang/lua51/patches/patch-ac b/lang/lua51/patches/patch-ac
new file mode 100644
index 00000000000..ac51e09a473
--- /dev/null
+++ b/lang/lua51/patches/patch-ac
@@ -0,0 +1,26 @@
+$NetBSD: patch-ac,v 1.1 2013/10/30 06:18:10 dholland Exp $
+
+- allow LUA_ROOT to be set by the pkgsrc makefile
+- solaris fix for PR 43350
+
+--- src/luaconf.h.orig 2008-02-11 16:25:08.000000000 +0000
++++ src/luaconf.h
+@@ -94,7 +94,9 @@
+ ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
+
+ #else
++#ifndef LUA_ROOT
+ #define LUA_ROOT "/usr/local/"
++#endif
+ #define LUA_LDIR LUA_ROOT "share/lua/5.1/"
+ #define LUA_CDIR LUA_ROOT "lib/lua/5.1/"
+ #define LUA_PATH_DEFAULT \
+@@ -183,7 +185,7 @@
+ #define LUAI_DATA /* empty */
+
+ #elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \
+- defined(__ELF__)
++ defined(__ELF__) && !defined(__sun)
+ #define LUAI_FUNC __attribute__((visibility("hidden"))) extern
+ #define LUAI_DATA LUAI_FUNC
+
diff --git a/lang/lua51/version.mk b/lang/lua51/version.mk
new file mode 100644
index 00000000000..a7b44a95770
--- /dev/null
+++ b/lang/lua51/version.mk
@@ -0,0 +1,6 @@
+# $NetBSD: version.mk,v 1.1 2013/10/30 06:18:09 dholland Exp $
+
+LUA_VERSION= 5.1.5
+
+LUA_VERSION_MAJOR= ${LUA_VERSION:C/([0-9]+)\.([0-9]+)\.([0-9]+)/\1/}
+LUA_VERSION_MINOR= ${LUA_VERSION:C/([0-9]+)\.([0-9]+)\.([0-9]+)/\2/}