Tue Mar 24 13:23:46 2020 UTC ()
lang: Add neko. Based on work by cfkoch in wip.

Neko is a high-level dynamically typed programming language. It can be used
as an embedded scripting language. It has been designed to provide a common
runtime for several different languages. Learning and using Neko is very
easy. You can easily extend the language with C libraries. You can also
write generators from your own language to Neko and then use the Neko
Runtime to compile, run, and access existing libraries.


(nia)
diff -r1.551 -r1.552 pkgsrc/lang/Makefile
diff -r0 -r1.1 pkgsrc/lang/neko/DESCR
diff -r0 -r1.1 pkgsrc/lang/neko/Makefile
diff -r0 -r1.1 pkgsrc/lang/neko/PLIST
diff -r0 -r1.1 pkgsrc/lang/neko/buildlink3.mk
diff -r0 -r1.1 pkgsrc/lang/neko/distinfo
diff -r0 -r1.1 pkgsrc/lang/neko/options.mk
diff -r0 -r1.1 pkgsrc/lang/neko/patches/patch-CMakeLists.txt
diff -r0 -r1.1 pkgsrc/lang/neko/patches/patch-libs_std_sys.c

cvs diff -r1.551 -r1.552 pkgsrc/lang/Makefile (expand / switch to unified diff)

--- pkgsrc/lang/Makefile 2020/03/21 10:06:53 1.551
+++ pkgsrc/lang/Makefile 2020/03/24 13:23:46 1.552
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: Makefile,v 1.551 2020/03/21 10:06:53 bsiegert Exp $ 1# $NetBSD: Makefile,v 1.552 2020/03/24 13:23:46 nia Exp $
2# 2#
3 3
4COMMENT= Programming languages 4COMMENT= Programming languages
5 5
6SUBDIR+= Cg-compiler 6SUBDIR+= Cg-compiler
7SUBDIR+= LuaJIT 7SUBDIR+= LuaJIT
8SUBDIR+= LuaJIT2 8SUBDIR+= LuaJIT2
9SUBDIR+= R-sourcetools 9SUBDIR+= R-sourcetools
10SUBDIR+= STk 10SUBDIR+= STk
11SUBDIR+= a60 11SUBDIR+= a60
12SUBDIR+= abcl 12SUBDIR+= abcl
13SUBDIR+= adoptopenjdk11-bin 13SUBDIR+= adoptopenjdk11-bin
14SUBDIR+= algol68g 14SUBDIR+= algol68g
@@ -149,26 +149,27 @@ SUBDIR+= lua53 @@ -149,26 +149,27 @@ SUBDIR+= lua53
149SUBDIR+= lush 149SUBDIR+= lush
150SUBDIR+= maude 150SUBDIR+= maude
151SUBDIR+= mawk 151SUBDIR+= mawk
152SUBDIR+= mercury 152SUBDIR+= mercury
153SUBDIR+= micropython 153SUBDIR+= micropython
154SUBDIR+= minischeme 154SUBDIR+= minischeme
155SUBDIR+= mit-scheme-bin 155SUBDIR+= mit-scheme-bin
156SUBDIR+= mono 156SUBDIR+= mono
157SUBDIR+= mono-basic 157SUBDIR+= mono-basic
158SUBDIR+= mono6 158SUBDIR+= mono6
159SUBDIR+= moscow_ml 159SUBDIR+= moscow_ml
160SUBDIR+= mpd 160SUBDIR+= mpd
161SUBDIR+= nawk 161SUBDIR+= nawk
 162SUBDIR+= neko
162SUBDIR+= newlisp 163SUBDIR+= newlisp
163SUBDIR+= newsqueak 164SUBDIR+= newsqueak
164SUBDIR+= nhc98 165SUBDIR+= nhc98
165SUBDIR+= nim 166SUBDIR+= nim
166SUBDIR+= nodejs 167SUBDIR+= nodejs
167SUBDIR+= nodejs10 168SUBDIR+= nodejs10
168SUBDIR+= nodejs12 169SUBDIR+= nodejs12
169SUBDIR+= nodejs8 170SUBDIR+= nodejs8
170SUBDIR+= npm 171SUBDIR+= npm
171SUBDIR+= nqp 172SUBDIR+= nqp
172SUBDIR+= nuitka 173SUBDIR+= nuitka
173SUBDIR+= objc 174SUBDIR+= objc
174SUBDIR+= ocaml 175SUBDIR+= ocaml

File Added: pkgsrc/lang/neko/DESCR
Neko is a high-level dynamically typed programming language. It can be used
as an embedded scripting language. It has been designed to provide a common
runtime for several different languages. Learning and using Neko is very
easy. You can easily extend the language with C libraries. You can also
write generators from your own language to Neko and then use the Neko
Runtime to compile, run, and access existing libraries.

File Added: pkgsrc/lang/neko/Makefile
# $NetBSD: Makefile,v 1.1 2020/03/24 13:23:46 nia Exp $

DISTNAME=	neko-2.3.0
CATEGORIES=	lang
MASTER_SITES=	${MASTER_SITE_GITHUB:=HaxeFoundation/}
GITHUB_TAG=	v${PKGVERSION_NOREV:S/./-/g}

MAINTAINER=	cfkoch@edgebsd.org
HOMEPAGE=	https://nekovm.org/
COMMENT=	High-level dynamically typed programming language
LICENSE=	mit

USE_CMAKE=	yes
USE_TOOLS+=	pkg-config

.include "options.mk"
.include "../../devel/boehm-gc/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

File Added: pkgsrc/lang/neko/PLIST
@comment $NetBSD: PLIST,v 1.1 2020/03/24 13:23:46 nia Exp $
bin/neko
bin/nekoc
bin/nekoml
bin/nekotools
include/neko.h
include/neko_elf.h
include/neko_mod.h
include/neko_vm.h
lib/cmake/Neko/NekoConfig.cmake
lib/cmake/Neko/NekoConfigVersion.cmake
lib/cmake/Neko/NekoTargets-noconfig.cmake
lib/cmake/Neko/NekoTargets.cmake
lib/libneko.so
lib/libneko.so.2
lib/libneko.so.2.3.0
${PLIST.apache}lib/neko/mod_neko2.ndll
${PLIST.apache}lib/neko/mod_tora2.ndll
${PLIST.mysql}lib/neko/mysql.ndll
${PLIST.mysql}lib/neko/mysql5.ndll
lib/neko/nekoml.std
${PLIST.regexp}lib/neko/regexp.ndll
${PLIST.sqlite}lib/neko/sqlite.ndll
${PLIST.ssl}lib/neko/ssl.ndll
lib/neko/std.ndll
${PLIST.ui}lib/neko/ui.ndll
lib/neko/zlib.ndll

File Added: pkgsrc/lang/neko/buildlink3.mk
# $NetBSD: buildlink3.mk,v 1.1 2020/03/24 13:23:46 nia Exp $

BUILDLINK_TREE+=	neko

.if !defined(NEKO_BUILDLINK3_MK)
NEKO_BUILDLINK3_MK:=

BUILDLINK_API_DEPENDS.neko+=	neko>=2.3.0
BUILDLINK_PKGSRCDIR.neko?=	../../mywip/neko
.endif	# NEKO_BUILDLINK3_MK

BUILDLINK_TREE+=	-neko

File Added: pkgsrc/lang/neko/distinfo
$NetBSD: distinfo,v 1.1 2020/03/24 13:23:46 nia Exp $

SHA1 (neko-2.3.0.tar.gz) = 50dfc92c61361c7559023c69ce6308cbd02c2c58
RMD160 (neko-2.3.0.tar.gz) = b25103c19e167417ab9e307b1d921fd33953585e
SHA512 (neko-2.3.0.tar.gz) = fec51bed0c5500561635656c7456f3da0599aa6a47a25efe739b3c51f9cdded4a8824ed14ab67bab0905d9082cf6f06b3a76c868cb1b61d440957bcd9fd3f3d2
Size (neko-2.3.0.tar.gz) = 514044 bytes
SHA1 (patch-CMakeLists.txt) = 6092f61c14036285653c756cfc89bac13e2e31e8
SHA1 (patch-libs_std_sys.c) = a4fd0296d8716ced3e62b041ffa3caf44278bd73

File Added: pkgsrc/lang/neko/options.mk
# $NetBSD: options.mk,v 1.1 2020/03/24 13:23:46 nia Exp $

PKG_OPTIONS_VAR=	PKG_OPTIONS.neko

PKG_SUPPORTED_OPTIONS=	apache mysql pcre sqlite ssl gtk2
PKG_SUGGESTED_OPTIONS=	apache mysql pcre sqlite ssl

.include "../../mk/bsd.options.mk"

PLIST_VARS+=	apache
.if !empty(PKG_OPTIONS:Mapache)
CMAKE_ARGS+=	-DWITH_APACHE=ON
.include "../../www/apache24/buildlink3.mk"
PLIST.apache=	yes
.else
CMAKE_ARGS+=	-DWITH_APACHE=OFF
.endif

PLIST_VARS+=	mysql
.if !empty(PKG_OPTIONS:Mmysql)
CMAKE_ARGS+=	-DWITH_MYSQL=ON
.include "../../mk/mysql.buildlink3.mk"
PLIST.mysql=	yes
.else
CMAKE_ARGS+=	-DWITH_MYSQL=OFF
.endif

PLIST_VARS+=	regexp
.if !empty(PKG_OPTIONS:Mpcre)
CMAKE_ARGS+=	-DWITH_REGEXP=ON
.include "../../devel/pcre/buildlink3.mk"
PLIST.regexp=	yes
.else
CMAKE_ARGS+=	-DWITH_REGEXP=OFF
.endif

PLIST_VARS+=	sqlite
.if !empty(PKG_OPTIONS:Msqlite)
CMAKE_ARGS+=	-DWITH_SQLITE=ON
.include "../../databases/sqlite3/buildlink3.mk"
PLIST.sqlite=	yes
.else
CMAKE_ARGS+=	-DWITH_SQLITE=OFF
.endif

PLIST_VARS+=	ssl
.if !empty(PKG_OPTIONS:Mssl)
CMAKE_ARGS+=	-DWITH_SSL=ON
.include "../../security/mbedtls/buildlink3.mk"
PLIST.ssl=	yes
.else
CMAKE_ARGS+=	-DWITH_SSL=OFF
.endif

PLIST_VARS+=	ui
.if !empty(PKG_OPTIONS:Mgtk2)
CMAKE_ARGS+=	-DWITH_UI=ON
.include "../../x11/gtk2/buildlink3.mk"
PLIST.ui=	yes
.else
CMAKE_ARGS+=	-DWITH_UI=OFF
.endif

File Added: pkgsrc/lang/neko/patches/patch-CMakeLists.txt
$NetBSD: patch-CMakeLists.txt,v 1.1 2020/03/24 13:23:46 nia Exp $

Specify additional systems which do not use libdl.

--- CMakeLists.txt.orig	2018-12-22 14:27:53.412791761 -0800
+++ CMakeLists.txt	2018-12-22 14:28:10.004843917 -0800
@@ -360,7 +360,7 @@
 target_link_libraries(nekovm libneko)
 
 if(UNIX)
-	if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+	if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "NetBSD")
 		set(DL_LIB "dl")
 	endif()
 	find_package(Threads)

File Added: pkgsrc/lang/neko/patches/patch-libs_std_sys.c
$NetBSD: patch-libs_std_sys.c,v 1.1 2020/03/24 13:23:46 nia Exp $

Workaround no uselocale on netbsd. (there's setlocale, though)

--- libs/std/sys.c.orig	2017-12-19 06:38:08.000000000 +0000
+++ libs/std/sys.c
@@ -133,7 +133,7 @@ static value sys_sleep( value f ) {
 	<doc>Set the locale for LC_TIME, returns true on success</doc>
 **/
 static value set_time_locale( value l ) {
-#ifdef NEKO_POSIX
+#if defined(NEKO_POSIX) && !defined(__NetBSD__)
 	locale_t lc, old;
 	val_check(l,string);
 	lc = newlocale(LC_TIME_MASK,val_string(l),NULL);