Page MenuHomeFreeBSD

D14709.id45576.diff
No OneTemporary

D14709.id45576.diff

Index: Makefile
===================================================================
--- Makefile
+++ Makefile
@@ -1,20 +1,17 @@
-# Created by: GreenDog <fiziologus@gmail.com>
-# $FreeBSD: head/lang/lua54/Makefile 454163 2017-11-14 06:28:06Z riggs $
+# $FreeBSD$
PORTNAME= lua
-PORTVERSION= 5.3.4
-PORTREVISION= 2
+DISTVERSION= 5.4.0-work2
CATEGORIES= lang
-MASTER_SITES= http://www.lua.org/ftp/
-PKGNAMESUFFIX= 53
+MASTER_SITES= https://www.lua.org/work/
+PKGNAMESUFFIX= 54
MAINTAINER= russ.haley@gmail.com
-COMMENT= Small, compilable scripting language providing easy access to C code
+COMMENT= Powerful, efficient, lightweight, embeddable scripting language
LICENSE= MIT
-USES= libedit
-LUA_VER= 5.3
+LUA_VER= 5.4
USE_LDCONFIG= yes
# Overriding __MAKE_CONF makes sure that we don't re-parse
@@ -24,57 +21,132 @@
# have its settings when we get here.
# See http://wiki.freebsd.org/MatthiasAndree/LuaLessonsLearnt
MAKE_ARGS= __MAKE_CONF=${NONEXISTENT}
-# liblua.so requires libm, so make sure it has an explicit dependency
-# so that applications need not second-guess lua's dependencies.
-CPPFLAGS+= -I${LOCALBASE}/include
-LDFLAGS+= -lm -pthread
+
BUILD_WRKSRC= ${WRKSRC}/src
-MAKE_ARGS+= MYCFLAGS="${CFLAGS} ${CPPFLAGS} -DLUA_USE_LINUX" \
+
+# Source, destination, and filenames to copy for the DOCS option
+# (automatically added to pkg-plist if DOCS is set)
+# We override DOCSDIR to get a per-version subdir.
+DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
+PORTDOCS= *.html *.css *.gif *.png
+BUILD_WRKDOC= ${WRKSRC}/doc
+
+LUA_PREFIX= ${PREFIX}
+
+# 2018-03-17: AG - These should match lua.mk, but we can't include that here
+LUA_CMD= lua${PKGNAMESUFFIX}
+LUAC_CMD= luac${PKGNAMESUFFIX}
+LUA_INCDIR= ${LUA_PREFIX}/include/lua${PKGNAMESUFFIX}
+LUA_LIBDIR= ${LUA_PREFIX}/lib
+
+LUA_LIB_STATIC= liblua-${LUA_VER}.a
+LUA_LIB_SHARED= liblua-${LUA_VER}.so
+LUA_PC_FILE= lua-${LUA_VER}.pc
+
+# using the "bsd" target rather than "freebsd" saves patching out the
+# assumption of using base libedit in order to make it configurable. "bsd"
+# is "generic" plus the POSIX and DLOPEN options, plus -Wl,-E at link time;
+# it doesn't set CC either, which makes it easier for us to control that too.
+ALL_TARGET=bsd
+
+# Options
+
+OPTIONS_DEFAULT= LIBEDIT_DL DOCS
+
+OPTIONS_GROUP= DOCSGRP DEBUGGRP
+OPTIONS_SINGLE= EDITGRP
+
+OPTIONS_GROUP_DOCSGRP= DOCS
+OPTIONS_GROUP_DEBUGGRP= ASSERT APICHECK
+
+OPTIONS_SINGLE_EDITGRP= EDITNONE LIBEDIT_DL LIBEDIT READLINE
+
+# Option descriptions
+
+DEBUGGRP_DESC= Debugging options
+ASSERT_DESC= Enable interpreter assertions
+APICHECK_DESC= Enable API checks
+
+DOCSGRP_DESC= Documentation options
+DOCS_DESC= Install language and API reference (HTML, ~400kB)
+
+EDITGRP_DESC= Interactive command-line editing
+EDITNONE_DESC= No command-line editing
+LIBEDIT_DL_DESC=Use dynamically loaded libedit (recommended)
+LIBEDIT_DESC= Use libedit (breaks lcurses)
+READLINE_DESC= Use GNU Readline (breaks lcurses)
+
+# Option implementations
+
+ASSERT_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-assert
+
+APICHECK_CPPFLAGS= -DLUA_USE_APICHECK
+
+# just to silence portlint
+EDITNONE_VARS= lua_dummy=1
+
+LIBEDIT_DL_USES= libedit
+LIBEDIT_DL_CPPFLAGS= -DLUA_USE_READLINE_DL
+LIBEDIT_DL_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-libedit-dl
+
+LIBEDIT_USES= libedit
+LIBEDIT_CPPFLAGS= -DLUA_USE_READLINE
+LIBEDIT_LIBS= -ledit
+
+READLINE_USES= readline
+READLINE_CPPFLAGS= -DLUA_USE_READLINE
+READLINE_LIBS= -lreadline
+
+# end of option vars
+
+CFLAGS+= -fPIC
+
+WITHOUT_NO_STRICT_ALIASING=yes
+
+MAKE_ARGS+= CC="${CC}" \
+ MYCFLAGS="${CPPFLAGS} ${CFLAGS}" \
MYLDFLAGS="${LDFLAGS}" \
- MYLIBS="-Wl,-E -L${LOCALBASE}/lib -ledit" \
- CC="${CC}" \
- LUA_T=lua53 \
- LUAC_T=luac53 \
- LUA_A=liblua-${LUA_VER}.a \
- LUA_SO=liblua-${LUA_VER}.so \
- LUA_SONAME=liblua-${LUA_VER}.so \
- TO_BIN="lua53 luac53" \
- TO_LIB="liblua-${LUA_VER}.a liblua-${LUA_VER}.so" \
+ MYLIBS="${LIBS}" \
+ LUA_T=${LUA_CMD} \
+ LUAC_T=${LUAC_CMD} \
+ LUA_A=${LUA_LIB_STATIC} \
+ LUA_SO=${LUA_LIB_SHARED} \
+ LUA_SONAME=${LUA_LIB_SHARED} \
+ TO_BIN="${LUA_CMD} ${LUAC_CMD}" \
+ TO_LIB="${LUA_LIB_SHARED} ${LUA_LIB_STATIC}" \
INSTALL_TOP=${STAGEDIR}${PREFIX} \
- INSTALL_INC=${STAGEDIR}${PREFIX}/include/lua53 \
+ INSTALL_INC=${STAGEDIR}${LUA_INCDIR} \
INSTALL_EXEC="${INSTALL_PROGRAM}"
-# Cope with the lack of support for Lua 5.2 in bsd.lua.mk. These
-# overrides, which are required below, should be removed once bsd.lua.mk
-# understands this lua version.
-LUA_PREFIX?= ${PREFIX}
-LUA_SUBDIR?= lua${PKGNAMESUFFIX}
-LUA_INCDIR?= ${LUA_PREFIX}/include/${LUA_SUBDIR}
-LUA_LIBDIR?= ${LUA_PREFIX}/lib
-
-SUB_FILES= lua-${LUA_VER}.pc
+SUB_FILES= ${LUA_PC_FILE}
SUB_LIST= version=${PORTVERSION} \
includedir=${LUA_INCDIR} \
libdir=${LUA_LIBDIR} \
soname=lua-${LUA_VER}
-CFLAGS+= -fPIC
-
post-patch:
- @${REINPLACE_CMD} -e 's,rand *(,random(,g' \
- ${WRKSRC}/src/lmathlib.c
- @${REINPLACE_CMD} -e "/LUA_ROOT/s|/usr/local|${LUA_PREFIX}| ; \
- s,readline/,editline/,g ; \
- /history\.h/d" \
- ${WRKSRC}/src/luaconf.h ${WRKSRC}/src/lua.c
+ @${REINPLACE_CMD} -e "/LUA_ROOT/s,/usr/local,${LUA_PREFIX}," \
+ ${WRKSRC}/src/luaconf.h
+
+post-patch-LIBEDIT-on:
+ @${REINPLACE_CMD} -e "s,readline/,editline/,g ; \
+ /history\.h/d" ${WRKSRC}/src/lua.c
+
+post-patch-LIBEDIT_DL-on:
+ @${REINPLACE_CMD} -e "/^#define.*LUA_READLINE_LIBPATH/s,/usr/local,${PREFIX}," \
+ ${WRKSRC}/src/lua.c
post-install:
- @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/liblua-${LUA_VER}.so
- @${MV} ${STAGEDIR}${PREFIX}/man/man1/lua.1 \
- ${STAGEDIR}${PREFIX}/man/man1/lua53.1
- @${MV} ${STAGEDIR}${PREFIX}/man/man1/luac.1 \
- ${STAGEDIR}${PREFIX}/man/man1/luac53.1
- ${INSTALL_DATA} ${WRKDIR}/lua-${LUA_VER}.pc \
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/${LUA_LIB_SHARED}
+ ${MV} ${STAGEDIR}${PREFIX}/man/man1/lua.1 \
+ ${STAGEDIR}${PREFIX}/man/man1/${LUA_CMD}.1
+ ${MV} ${STAGEDIR}${PREFIX}/man/man1/luac.1 \
+ ${STAGEDIR}${PREFIX}/man/man1/${LUAC_CMD}.1
+ ${INSTALL_DATA} ${WRKDIR}/${LUA_PC_FILE} \
${STAGEDIR}${PREFIX}/libdata/pkgconfig
+post-install-DOCS-on:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_MAN} ${BUILD_WRKDOC}/* ${STAGEDIR}${DOCSDIR}/.
+
.include <bsd.port.mk>
Index: distinfo
===================================================================
--- distinfo
+++ distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1489025786
-SHA256 (lua-5.3.4.tar.gz) = f681aa518233bc407e23acf0f5887c884f17436f000d453b2491a9f11a52400c
-SIZE (lua-5.3.4.tar.gz) = 303586
+TIMESTAMP = 1529352704
+SHA256 (lua-5.4.0-work2.tar.gz) = 68b7e8f1ff561b9a7e1c29de26ff99ac2a704773c0965a4fe1800b7657d5a057
+SIZE (lua-5.4.0-work2.tar.gz) = 325297
Index: files/extra-patch-assert
===================================================================
--- /dev/null
+++ files/extra-patch-assert
@@ -0,0 +1,11 @@
+--- src/lprefix.h.orig 2018-07-14 23:49:59.792621000 +0100
++++ src/lprefix.h 2018-07-14 23:50:20.856546000 +0100
+@@ -7,6 +7,8 @@
+ #ifndef lprefix_h
+ #define lprefix_h
+
++#include <assert.h>
++#define lua_assert(c_) assert(c_)
+
+ /*
+ ** Allows POSIX/XSI stuff
Index: files/extra-patch-libedit-dl
===================================================================
--- /dev/null
+++ files/extra-patch-libedit-dl
@@ -0,0 +1,58 @@
+--- src/lua.c.orig 2018-03-16 14:23:08 UTC
++++ src/lua.c
+@@ -379,7 +379,54 @@ static int handle_luainit (lua_State *L)
+ */
+ #if !defined(lua_readline) /* { */
+
+-#if defined(LUA_USE_READLINE) /* { */
++#if defined(LUA_USE_READLINE_DL)/* { */
++
++#include <dlfcn.h>
++
++#ifndef LUA_READLINE_LIBPATH
++#define LUA_READLINE_LIBPATH "/usr/local/lib/libedit.so"
++#endif
++
++typedef char *readline_functype(const char *);
++typedef int add_history_functype(const char *);
++
++static readline_functype *lua_readline_p = NULL;
++static add_history_functype *lua_saveline_p = NULL;
++
++static void lua_initreadline(lua_State *L)
++{
++ void *editlib = NULL;
++ union dl_func_hack {
++ void *ptr;
++ readline_functype *rlfunc;
++ add_history_functype *ahfunc;
++ char **rlnamevar;
++ int *icompvar;
++ } u;
++ (void) L;
++ if ((editlib = dlopen(LUA_READLINE_LIBPATH, RTLD_LAZY | RTLD_LOCAL))) {
++ u.ptr = dlsym(editlib, "readline");
++ lua_readline_p = u.rlfunc;
++ u.ptr = dlsym(editlib, "add_history");
++ lua_saveline_p = u.ahfunc;
++ if ((u.ptr = dlsym(editlib, "rl_readline_name")))
++ *u.rlnamevar = "lua";
++ if ((u.ptr = dlsym(editlib, "rl_inhibit_completion")))
++ *u.icompvar = 1;
++ }
++}
++
++#define lua_readline(L,b,p) \
++ ((void)L, \
++ (lua_readline_p) \
++ ? (((b)=lua_readline_p(p)) != NULL) \
++ : (fputs(p, stdout), fflush(stdout), fgets(b, LUA_MAXINPUT, stdin) != NULL))
++#define lua_saveline(L,line) \
++ do { (void)L; if (lua_saveline_p) lua_saveline_p(line); } while(0)
++#define lua_freeline(L,b) \
++ do { (void)L; if (lua_readline_p) free(b); } while(0)
++
++#elif defined(LUA_USE_READLINE) /* { */
+
+ #include <readline/readline.h>
+ #include <readline/history.h>
Index: files/lua-5.4.pc.in
===================================================================
--- files/lua-5.4.pc.in
+++ files/lua-5.4.pc.in
@@ -4,7 +4,7 @@
soname=%%soname%%
Name: Lua
-Description: An Extensible Extension Language
+Description: Powerful, efficient, lightweight, embeddable scripting language.
Version: ${version}
Libs: -L${libdir} -l${soname} -lm
Cflags: -I${includedir}
Index: files/patch-src_Makefile
===================================================================
--- files/patch-src_Makefile
+++ files/patch-src_Makefile
@@ -1,33 +1,21 @@
---- src/Makefile.orig 2015-01-05 16:04:52 UTC
+--- src/Makefile.orig 2018-04-07 20:16:26 UTC
+++ src/Makefile
-@@ -6,12 +6,12 @@
- # Your platform. See PLATS for possible values.
+@@ -7,11 +7,12 @@
PLAT= none
--CC= gcc -std=gnu99
--CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_2 $(SYSCFLAGS) $(MYCFLAGS)
-+CC?= gcc -std=gnu99
-+CFLAGS= -Wall -Wextra -DLUA_COMPAT_5_2 $(SYSCFLAGS) $(MYCFLAGS)
+ CC= gcc -std=gnu99
+-CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_3 $(SYSCFLAGS) $(MYCFLAGS)
++CFLAGS= -Wall -Wextra -DLUA_COMPAT_5_3 $(SYSCFLAGS) $(MYCFLAGS)
LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS)
LIBS= -lm $(SYSLIBS) $(MYLIBS)
++SOLIBS= -lm
-AR= ar rcu
+AR= ar
RANLIB= ranlib
RM= rm -f
-@@ -19,8 +19,8 @@ SYSCFLAGS=
- SYSLDFLAGS=
- SYSLIBS=
-
--MYCFLAGS=
--MYLDFLAGS=
-+MYCFLAGS?=
-+MYLDFLAGS?=
- MYLIBS=
- MYOBJS=
-
-@@ -38,12 +38,13 @@ BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
+@@ -35,12 +36,13 @@ BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
LUA_T= lua
LUA_O= lua.o
@@ -42,12 +30,12 @@
ALL_A= $(LUA_A)
# Targets start here.
-@@ -55,8 +56,11 @@ o: $(ALL_O)
+@@ -52,8 +54,11 @@ o: $(ALL_O)
a: $(ALL_A)
+$(LUA_SO): $(CORE_O) $(LIB_O)
-+ $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(MYLDFLAGS) -shared -Wl,-soname=$(LUA_SONAME) $?
++ $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(MYLDFLAGS) -shared -Wl,-soname=$(LUA_SONAME) $? $(SOLIBS)
+
$(LUA_A): $(BASE_O)
- $(AR) $@ $(BASE_O)
Index: lua54/files/patch-src__ldebug.c
===================================================================
--- lua54/files/patch-src__ldebug.c
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/ldebug.c.orig 2016-10-19 12:32:10 UTC
-+++ src/ldebug.c
-@@ -653,6 +653,7 @@ l_noret luaG_runerror (lua_State *L, const char *fmt,
- CallInfo *ci = L->ci;
- const char *msg;
- va_list argp;
-+ luaC_checkGC(L); /* error message uses memory */
- va_start(argp, fmt);
- msg = luaO_pushvfstring(L, fmt, argp); /* format message */
- va_end(argp);
Index: lua54/files/patch-src__lgc.c
===================================================================
--- lua54/files/patch-src__lgc.c
+++ /dev/null
@@ -1,13 +0,0 @@
---- src/lgc.c.orig 2016-12-22 13:08:50 UTC
-+++ src/lgc.c
-@@ -643,8 +643,9 @@ static void clearkeys (global_State *g, GCObject *l, G
- for (n = gnode(h, 0); n < limit; n++) {
- if (!ttisnil(gval(n)) && (iscleared(g, gkey(n)))) {
- setnilvalue(gval(n)); /* remove value ... */
-- removeentry(n); /* and remove entry from table */
- }
-+ if (ttisnil(gval(n))) /* is entry empty? */
-+ removeentry(n); /* remove entry from table */
- }
- }
- }
Index: lua54/files/patch-src__liolib.c
===================================================================
--- lua54/files/patch-src__liolib.c
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/liolib.c.orig 2015-04-03 18:41:57 UTC
-+++ src/liolib.c
-@@ -16,6 +16,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <unistd.h>
-
- #include "lua.h"
-
Index: lua54/files/patch-src__lparser.c
===================================================================
--- lua54/files/patch-src__lparser.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/lparser.c.orig 2016-08-01 19:51:24 UTC
-+++ src/lparser.c
-@@ -1392,7 +1392,7 @@ static void test_then_block (LexState *ls, int *escape
- luaK_goiffalse(ls->fs, &v); /* will jump to label if condition is true */
- enterblock(fs, &bl, 0); /* must enter block before 'goto' */
- gotostat(ls, v.t); /* handle goto/break */
-- skipnoopstat(ls); /* skip other no-op statements */
-+ while (testnext(ls, ';')) {} /* skip semicolons */
- if (block_follow(ls, 0)) { /* 'goto' is the entire block? */
- leaveblock(fs);
- return; /* and that is it */
Index: pkg-plist
===================================================================
--- pkg-plist
+++ pkg-plist
@@ -1,14 +1,14 @@
-bin/lua53
-bin/luac53
-include/lua53/lauxlib.h
-include/lua53/lua.h
-include/lua53/lua.hpp
-include/lua53/luaconf.h
-include/lua53/lualib.h
-lib/liblua-5.3.a
-lib/liblua-5.3.so
-libdata/pkgconfig/lua-5.3.pc
-man/man1/lua53.1.gz
-man/man1/luac53.1.gz
-@dir lib/lua/5.3
-@dir %%DATADIR%%/5.3
+bin/lua54
+bin/luac54
+include/lua54/lauxlib.h
+include/lua54/lua.h
+include/lua54/lua.hpp
+include/lua54/luaconf.h
+include/lua54/lualib.h
+lib/liblua-5.4.a
+lib/liblua-5.4.so
+libdata/pkgconfig/lua-5.4.pc
+man/man1/lua54.1.gz
+man/man1/luac54.1.gz
+@dir lib/lua/5.4
+@dir %%DATADIR%%/5.4

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 19, 6:08 PM (11 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
23935801
Default Alt Text
D14709.id45576.diff (13 KB)

Event Timeline