svn commit: r362477 - in head: . libexec/flua tools/build

Ryan Moeller freqlabs at FreeBSD.org
Mon Jun 22 03:14:44 UTC 2020


Author: freqlabs
Date: Mon Jun 22 03:14:43 2020
New Revision: 362477
URL: https://svnweb.freebsd.org/changeset/base/362477

Log:
  flua: add ucl library
  
  libucl comes with a Lua library binding.  Build it into flua.
  
  This lets us parse/generate config files in the various formats supported by
  libucl with flua.  For example, the following script will detect the format of
  an object written to stdin as one of UCL config, JSON, or YAML and write it to
  stdout as pretty-printed JSON:
  
  local ucl = require('ucl')
  local parser = ucl.parser()
  parser:parse_string(io.read('*a'))
  local obj = parser:get_object()
  print(ucl.to_format(obj, 'json'))
  
  Reviewed by:	kevans, pstef
  Approved by:	mmacy (mentor)
  Relnotes:	yes
  Differential Revision:	https://reviews.freebsd.org/D25009

Modified:
  head/Makefile.inc1
  head/libexec/flua/Makefile
  head/libexec/flua/linit_flua.c
  head/tools/build/Makefile

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1	Mon Jun 22 01:31:08 2020	(r362476)
+++ head/Makefile.inc1	Mon Jun 22 03:14:43 2020	(r362477)
@@ -2112,8 +2112,8 @@ ${_bt}-lib/libdwarf: ${_bt_m4_depend}
 # 13.0-CURRENT cycle, thus needs to be built on -older releases and stable
 # branches.
 .if ${BOOTSTRAPPING} < 1300059
-${_bt}-libexec/flua: ${_bt}-lib/liblua
-_flua= lib/liblua libexec/flua
+${_bt}-libexec/flua: ${_bt}-lib/liblua ${_bt}-lib/libucl
+_flua= lib/liblua lib/libucl libexec/flua
 .endif
 
 # r245440 mtree -N support added

Modified: head/libexec/flua/Makefile
==============================================================================
--- head/libexec/flua/Makefile	Mon Jun 22 01:31:08 2020	(r362476)
+++ head/libexec/flua/Makefile	Mon Jun 22 03:14:43 2020	(r362477)
@@ -32,4 +32,10 @@ CFLAGS+=	-I${SRCTOP}/lib/libedit -I${SRCTOP}/contrib/l
 LIBADD+=	edit
 .endif
 
+UCLSRC?=	${SRCTOP}/contrib/libucl
+.PATH: ${UCLSRC}/lua
+SRCS+=	lua_ucl.c
+CFLAGS+=	-I${UCLSRC}/include -I${UCLSRC}/src -I${UCLSRC}/uthash
+LIBADD+=	ucl
+
 .include <bsd.prog.mk>

Modified: head/libexec/flua/linit_flua.c
==============================================================================
--- head/libexec/flua/linit_flua.c	Mon Jun 22 01:31:08 2020	(r362476)
+++ head/libexec/flua/linit_flua.c	Mon Jun 22 03:14:43 2020	(r362477)
@@ -36,6 +36,7 @@
 #include "lauxlib.h"
 #include "lfs.h"
 #include "lposix.h"
+#include "lua_ucl.h"
 
 /*
 ** these libs are loaded by lua.c and are readily available to any Lua
@@ -59,6 +60,7 @@ static const luaL_Reg loadedlibs[] = {
   {"lfs", luaopen_lfs},
   {"posix.sys.stat", luaopen_posix_sys_stat},
   {"posix.unistd", luaopen_posix_unistd},
+  {"ucl", luaopen_ucl},
   {NULL, NULL}
 };
 

Modified: head/tools/build/Makefile
==============================================================================
--- head/tools/build/Makefile	Mon Jun 22 01:31:08 2020	(r362476)
+++ head/tools/build/Makefile	Mon Jun 22 03:14:43 2020	(r362477)
@@ -149,6 +149,7 @@ INSTALLDIR_LIST= \
 	lib/casper \
 	lib/geom \
 	usr/include/casper \
+	usr/include/private/ucl \
 	usr/include/private/zstd \
 	usr/lib \
 	usr/libexec


More information about the svn-src-head mailing list