diff --git a/MOVED b/MOVED --- a/MOVED +++ b/MOVED @@ -2313,7 +2313,6 @@ devel/py-jaraco||2023-08-21|Remove obsoleted port security/rubygem-openssl2|security/rubygem-openssl|2023-08-21|Remove obsoleted port. Use security/rubygem-openssl instead games/cataclysm-dda-tiles|games/cataclysm-dda@tiles|2023-08-22|Moved to a flavored version -devel/lua-language-server||2023-08-22|Has expired: Versions after 3.6.9 dump core (and do not compile) security/py-netbox-secretstore|security/py-netbox-secrets|2023-08-22|Has expired: No longer maintained by upstream, not compatible with NetBox 3.5, please migrate to security/py-netbox-secrets benchmarks/dbs||2023-08-22|Has expired: Broken on all supported releases for more than an year databases/virtuoso||2023-08-22|Has expired: Broken on all supported FreeBSD releases for more than an year diff --git a/devel/Makefile b/devel/Makefile --- a/devel/Makefile +++ b/devel/Makefile @@ -1623,6 +1623,7 @@ SUBDIR += lua-cjson SUBDIR += lua-cqueues SUBDIR += lua-gettext + SUBDIR += lua-language-server SUBDIR += lua-lgi SUBDIR += lua-libevent SUBDIR += lua-lpeg diff --git a/devel/lua-language-server/Makefile b/devel/lua-language-server/Makefile new file mode 100644 --- /dev/null +++ b/devel/lua-language-server/Makefile @@ -0,0 +1,90 @@ +PORTNAME= lua-language-server +DISTVERSION= 3.16.0 +CATEGORIES= devel + +MAINTAINER= dave@freedave.net +COMMENT= Lua development server and LSP client +WWW= https://luals.github.io + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= dos2unix lua:build ninja:make +DOS2UNIX_REGEX= .*\.(cpp|h|lua|md|obj) +USE_GITHUB= yes +GH_ACCOUNT= LuaLS + +# There are (presently) 2 places with subtrees directly: +# 3rd/ github.com/LuaLS/lua-language-server/tree/5f1226d/3rd +# meta/3rd github.com/LuaLS/lua-language-server/tree/5f1226d/meta/3rd +# But the 3rd/luamake, github.com/actboy168/luamake/tree/0e90778 brings in its own +# separate copy of bee (not necessarily the same as in `3rd/`) that has to be +# tracked down. +GH_TUPLE= cppcxy:EmmyLuaCodeStyle:8500f3a:emmyluacodestyle/3rd/EmmyLuaCodeStyle \ + actboy168:bee.lua:dd7853f:bee/3rd/bee.lua \ + actboy168:json.lua:aff2a3d:json/3rd/json.lua \ + love2d-community:love-api:8536392:love/3rd/love-api \ + bjornbytes:lovr-docs:e89c753:lovr/3rd/lovr-api \ + sqmedeiros:lpeglabel:912b0b9:lpeglabel/3rd/lpeglabel \ + actboy168:luamake:0e90778:luamake/3rd/luamake \ + LuaCATS:cocos4.0:c0b2259:cats_cocos40/meta/3rd/Cocos4.0 \ + LuaCATS:defold:05379b4:cats_defold/meta/3rd/Defold \ + LuaCATS:jass:80d85cb:cats_jass/meta/3rd/Jass \ + LuaCATS:openresty:3bec36f:cats_openresty/meta/3rd/OpenResty \ + LuaCATS:bee:c8ce19f:cats_bee/meta/3rd/bee \ + LuaCATS:busted:5ed85d0:cats_busted/meta/3rd/busted \ + LuaCATS:ffi-reflect:e9037ef:cats_ffi_reflect/meta/3rd/ffi-reflect \ + LuaCATS:luafilesystem:9b5cfc1:cats_lfs/meta/3rd/lfs \ + LuaCATS:love2d:98f7684:cats_love2d/meta/3rd/love2d \ + LuaCATS:lovr:3ba215f:cats_lovr/meta/3rd/lovr \ + LuaCATS:luaecs:21192fb:cats_luaecs/meta/3rd/luaecs \ + LuaCATS:luassert:d3528bb:cats_luassert/meta/3rd/luassert \ + LuaCATS:luv:3615eb1:cats_luv/meta/3rd/luv \ + LuaCATS:skynet:afa6717:cats_skynet/meta/3rd/skynet \ + actboy168:bee.lua:f242926:bee_luamake/3rd/luamake/bee.lua + +SUB_FILES= lua-language-server + +PLIST_FILES= bin/lua-language-server \ + ${DATADIR_REL}/bin/lua-language-server \ + ${DATADIR_REL}/bin/main.lua \ + ${DATADIR_REL}/debugger.lua \ + ${DATADIR_REL}/main.lua + +PORTDATA= locale meta script + +post-patch: + ${REINPLACE_CMD} -e 's|%LOCALBASE%|${LOCALBASE}|' ${WRKSRC}/3rd/bee.lua/compile/common.lua + ${REINPLACE_CMD} -e 's|%INOTIFY%|${_INOTIFY_}|' ${WRKSRC}/3rd/bee.lua/compile/common.lua + ${REINPLACE_CMD} -e 's|%LOCALBASE%|${LOCALBASE}|' ${WRKSRC}/3rd/luamake/compile/ninja/freebsd.ninja + ${REINPLACE_CMD} -e 's|%LINK_INOTIFY%|${_LINK_INOTIFY_}|' ${WRKSRC}/3rd/luamake/compile/ninja/freebsd.ninja + ${REINPLACE_CMD} -e 's|%WRKDIR%|${WRKDIR}|' ${WRKSRC}/3rd/luamake/bee.lua/test/test.lua + ${REINPLACE_CMD} -e 's|%WRKDIR%|${WRKDIR}|' ${WRKSRC}/3rd/bee.lua/test/test.lua + +# `luamake all` instead of `luamake rebuild` because there is a flaky test +do-build: + cd ${WRKSRC}/3rd/luamake && compile/build.sh + cd ${WRKSRC} && 3rd/luamake/luamake all + +do-install: + ${MKDIR} ${STAGEDIR}${DATADIR}/bin + ${INSTALL_SCRIPT} ${WRKDIR}/lua-language-server ${STAGEDIR}${PREFIX}/bin + ${INSTALL_PROGRAM} ${WRKSRC}/bin/lua-language-server ${STAGEDIR}${DATADIR}/bin + ${INSTALL_SCRIPT} ${WRKSRC}/bin/main.lua ${STAGEDIR}${DATADIR}/bin + ${INSTALL_DATA} ${WRKSRC}/debugger.lua ${STAGEDIR}${DATADIR} + ${INSTALL_DATA} ${WRKSRC}/main.lua ${STAGEDIR}${DATADIR} + cd ${WRKSRC} && ${COPYTREE_SHARE} "locale meta script" ${STAGEDIR}${DATADIR} + +# you may hit https://github.com/LuaLS/lua-language-server/issues/2896 +do-test: + cd ${WRKSRC} && 3rd/luamake/luamake unit-test + +.include + +.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1500050 +LIB_DEPENDS+= libinotify.so:devel/libinotify +_INOTIFY_= links = "inotify", +_LINK_INOTIFY_= -linotify +.endif + +.include diff --git a/devel/lua-language-server/distinfo b/devel/lua-language-server/distinfo new file mode 100644 --- /dev/null +++ b/devel/lua-language-server/distinfo @@ -0,0 +1,47 @@ +TIMESTAMP = 1765202287 +SHA256 (LuaLS-lua-language-server-3.16.0_GH0.tar.gz) = faf8c0be1f03b3800dc65663c90618b913ed750f5c25e2c4f8ff06557eba36f6 +SIZE (LuaLS-lua-language-server-3.16.0_GH0.tar.gz) = 3088066 +SHA256 (cppcxy-EmmyLuaCodeStyle-8500f3a_GH0.tar.gz) = 5f45f8d2f3e1a6f1807d5c38f81d38d5b50b382a8d7c3376ab7afd7000f1dcaf +SIZE (cppcxy-EmmyLuaCodeStyle-8500f3a_GH0.tar.gz) = 5421453 +SHA256 (actboy168-bee.lua-dd7853f_GH0.tar.gz) = 731219f3a5ad2787d88ef451e59230f4eb4327f4a688c8f11034190bb0a18ba7 +SIZE (actboy168-bee.lua-dd7853f_GH0.tar.gz) = 803217 +SHA256 (actboy168-json.lua-aff2a3d_GH0.tar.gz) = 41858762e3cb7bddcdc8cbff6c59977b629e956d889425bdadc3acd7de769b03 +SIZE (actboy168-json.lua-aff2a3d_GH0.tar.gz) = 27700 +SHA256 (love2d-community-love-api-8536392_GH0.tar.gz) = 0bda3c23baa680a6b60150f65df639c9f9b5e4ef2527ff972ec7de1de56be364 +SIZE (love2d-community-love-api-8536392_GH0.tar.gz) = 152808 +SHA256 (bjornbytes-lovr-docs-e89c753_GH0.tar.gz) = 42465ee079a768f31ba5574613c3a53210fdc65989f37e4d49359eb52a1d383d +SIZE (bjornbytes-lovr-docs-e89c753_GH0.tar.gz) = 18279747 +SHA256 (sqmedeiros-lpeglabel-912b0b9_GH0.tar.gz) = 8d16beb9a36bfb3d493f8e20055ad20bb7624df62d06b5994942a9e68a4e4f57 +SIZE (sqmedeiros-lpeglabel-912b0b9_GH0.tar.gz) = 83070 +SHA256 (actboy168-luamake-0e90778_GH0.tar.gz) = 8ade6e8918bfc24473d6f72296158e66345964b93d4d8b11f482da1c9302cafc +SIZE (actboy168-luamake-0e90778_GH0.tar.gz) = 78631 +SHA256 (LuaCATS-cocos4.0-c0b2259_GH0.tar.gz) = 45da7cd85527b3e4e52fc3c3cf08038672593663b4901a09c4a35af654dafd81 +SIZE (LuaCATS-cocos4.0-c0b2259_GH0.tar.gz) = 165304 +SHA256 (LuaCATS-defold-05379b4_GH0.tar.gz) = 001e23bcb8cd2bc1af5d0332bb12e239b92a5247d3a570307b86749fe067f75c +SIZE (LuaCATS-defold-05379b4_GH0.tar.gz) = 46403 +SHA256 (LuaCATS-jass-80d85cb_GH0.tar.gz) = 17e80904641d052d3312e3c231d078cd7c53779a924bb6300b91f0b4b44d0779 +SIZE (LuaCATS-jass-80d85cb_GH0.tar.gz) = 63050 +SHA256 (LuaCATS-openresty-3bec36f_GH0.tar.gz) = 9c45e9a1cd16bd33c9376aa0e23d94e0618640dcb565dc7b45e26f75cb8a5498 +SIZE (LuaCATS-openresty-3bec36f_GH0.tar.gz) = 82549 +SHA256 (LuaCATS-bee-c8ce19f_GH0.tar.gz) = aa581310c6548fa5d529aa2c1fbad9b46a1bddc6fa26f7d3496d387e96d39646 +SIZE (LuaCATS-bee-c8ce19f_GH0.tar.gz) = 4204 +SHA256 (LuaCATS-busted-5ed85d0_GH0.tar.gz) = 2a9d9a13d426bbf5e216ae838cf035ba49f56ec671881d1341ae9faa5e0ae337 +SIZE (LuaCATS-busted-5ed85d0_GH0.tar.gz) = 2039 +SHA256 (LuaCATS-ffi-reflect-e9037ef_GH0.tar.gz) = 1405e2ca00aa377ba5f1d9fc2a9ed82636b757f6578394eaf1ed50e37b20eb8e +SIZE (LuaCATS-ffi-reflect-e9037ef_GH0.tar.gz) = 915 +SHA256 (LuaCATS-luafilesystem-9b5cfc1_GH0.tar.gz) = f467e14eab854b813552dd864780568f0a484dc5ff156c0a12a003855e313749 +SIZE (LuaCATS-luafilesystem-9b5cfc1_GH0.tar.gz) = 2746 +SHA256 (LuaCATS-love2d-98f7684_GH0.tar.gz) = bbe26b636ab2ee525aeffc66b6988f978831daa1f345144077f7998daca476d6 +SIZE (LuaCATS-love2d-98f7684_GH0.tar.gz) = 94867 +SHA256 (LuaCATS-lovr-3ba215f_GH0.tar.gz) = 87085a21ca0aa15ba3415dc3438c929499a3506421bc411003a2556d7c8c5afe +SIZE (LuaCATS-lovr-3ba215f_GH0.tar.gz) = 81779 +SHA256 (LuaCATS-luaecs-21192fb_GH0.tar.gz) = feb213d219ebcb6f55818c2e524a086c9c014dbb2ae09c970611cbd53971b933 +SIZE (LuaCATS-luaecs-21192fb_GH0.tar.gz) = 3991 +SHA256 (LuaCATS-luassert-d3528bb_GH0.tar.gz) = 4766b14e56714448646152af9b2c18fcea5348333fd9c51de97d5d0a6d26b4b5 +SIZE (LuaCATS-luassert-d3528bb_GH0.tar.gz) = 7966 +SHA256 (LuaCATS-luv-3615eb1_GH0.tar.gz) = 3433e436a29010a2ea65a9c8fc08b71df5c2de203f88a104d53f593bb9e855e9 +SIZE (LuaCATS-luv-3615eb1_GH0.tar.gz) = 40896 +SHA256 (LuaCATS-skynet-afa6717_GH0.tar.gz) = 286e9df99c011973995618f61706e1aabcf6db2e20603d25cf20ad82f9c107be +SIZE (LuaCATS-skynet-afa6717_GH0.tar.gz) = 20066 +SHA256 (actboy168-bee.lua-f242926_GH0.tar.gz) = 740e6a6ebb8ae0d64c71feee54b56390c12be1e0e330c94c369b382048701553 +SIZE (actboy168-bee.lua-f242926_GH0.tar.gz) = 801985 diff --git a/devel/lua-language-server/files/lua-language-server.in b/devel/lua-language-server/files/lua-language-server.in new file mode 100644 --- /dev/null +++ b/devel/lua-language-server/files/lua-language-server.in @@ -0,0 +1,8 @@ +#!/bin/sh + +TMPPATH=$(/usr/bin/mktemp -d '/tmp/lua-language-server.XXXXXX' || exit 1) + +exec '%%DATADIR%%/bin/lua-language-server' \ + --logpath="${TMPPATH}/log" \ + --metapath="${TMPPATH}/meta" \ + "$@" diff --git a/devel/lua-language-server/files/patch-3rd_bee.lua_compile_common.lua b/devel/lua-language-server/files/patch-3rd_bee.lua_compile_common.lua new file mode 100644 --- /dev/null +++ b/devel/lua-language-server/files/patch-3rd_bee.lua_compile_common.lua @@ -0,0 +1,22 @@ +--- 3rd/bee.lua/compile/common.lua.orig 2025-12-03 14:18:20 UTC ++++ 3rd/bee.lua/compile/common.lua +@@ -207,7 +207,7 @@ lm:source_set "source_bee" { + } + }, + freebsd = { +- sysincludes = "/usr/local/include", ++ sysincludes = "%LOCALBASE%/include", + sources = need { + "bsd", + "posix", +@@ -291,8 +291,8 @@ lm:source_set "source_bee" { + ldflags = "-pthread" + }, + freebsd = { +- links = "inotify", +- linkdirs = "/usr/local/lib", ++ %INOTIFY% ++ linkdirs = "%LOCALBASE%/lib", + ldflags = "-pthread" + }, + openbsd = { diff --git a/devel/lua-language-server/files/patch-3rd_bee.lua_test_test.lua b/devel/lua-language-server/files/patch-3rd_bee.lua_test_test.lua new file mode 100644 --- /dev/null +++ b/devel/lua-language-server/files/patch-3rd_bee.lua_test_test.lua @@ -0,0 +1,11 @@ +--- 3rd/bee.lua/test/test.lua.orig 2025-12-02 15:52:43 UTC ++++ 3rd/bee.lua/test/test.lua +@@ -53,7 +53,7 @@ do + if lt.options.touch then + lt.options.touch = fs.absolute(lt.options.touch):string() + end +- local tmpdir = fs.temp_directory_path() / "test_bee" ++ local tmpdir = "%WRKDIR%" .. "/tmp/test_bee" + fs.create_directories(tmpdir) + fs.current_path(tmpdir) + end diff --git a/devel/lua-language-server/files/patch-3rd_luamake_bee.lua_test_test.lua b/devel/lua-language-server/files/patch-3rd_luamake_bee.lua_test_test.lua new file mode 100644 --- /dev/null +++ b/devel/lua-language-server/files/patch-3rd_luamake_bee.lua_test_test.lua @@ -0,0 +1,11 @@ +--- 3rd/luamake/bee.lua/test/test.lua.orig 2025-12-02 15:38:21 UTC ++++ 3rd/luamake/bee.lua/test/test.lua +@@ -53,7 +53,7 @@ do + if lt.options.touch then + lt.options.touch = fs.absolute(lt.options.touch):string() + end +- local tmpdir = fs.temp_directory_path() / "test_bee" ++ local tmpdir = "%WRKDIR%" .. "/tmp/test_bee" + fs.create_directories(tmpdir) + fs.current_path(tmpdir) + end diff --git a/devel/lua-language-server/files/patch-3rd_luamake_compile_ninja_freebsd.ninja b/devel/lua-language-server/files/patch-3rd_luamake_compile_ninja_freebsd.ninja new file mode 100644 --- /dev/null +++ b/devel/lua-language-server/files/patch-3rd_luamake_compile_ninja_freebsd.ninja @@ -0,0 +1,29 @@ +--- 3rd/luamake/compile/ninja/freebsd.ninja.orig 2025-10-29 08:38:58 UTC ++++ 3rd/luamake/compile/ninja/freebsd.ninja +@@ -30,7 +30,7 @@ rule cxx_source_bee_2 + rule cxx_source_bee_2 + command = $cc -MMD -MT $out -MF $out.d -std=c++17 -fno-rtti -O2 -Wall $ + -fvisibility=hidden -Ibee.lua -Ibee.lua/3rd/lua54 -isystem $ +- /usr/local/include -DNDEBUG -o $out -c $in ++ %LOCALBASE%/include -DNDEBUG -o $out -c $in + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -126,7 +126,7 @@ rule link_bootstrap + build $obj/source_bootstrap/main.obj: cxx_source_bootstrap $ + bee.lua/bootstrap/main.cpp + rule link_bootstrap +- command = $cc $in -o $out -Wl,-E -linotify -L/usr/local/lib -pthread -lm $ ++ command = $cc $in -o $out -Wl,-E %LINK_INOTIFY% -L%LOCALBASE%/lib -pthread -lm $ + -Wl,--push-state,-Bstatic -lstdc++ -Wl,--pop-state -Wl,-S,-x + description = Link Exe $out + rule copy +@@ -138,7 +138,7 @@ rule link_luamake + description = Run test. + pool = console + rule link_luamake +- command = $cc $in -o $out -linotify -L/usr/local/lib -pthread -lm $ ++ command = $cc $in -o $out %LINK_INOTIFY% -L%LOCALBASE%/lib -pthread -lm $ + -lstdc++ -Wl,-S,-x + description = Link Exe $out + rule build_luamake_test diff --git a/devel/lua-language-server/pkg-descr b/devel/lua-language-server/pkg-descr new file mode 100644 --- /dev/null +++ b/devel/lua-language-server/pkg-descr @@ -0,0 +1,16 @@ +The Sumneko Lua Language Server is a comprehensive Lua development +server. It functions as an LSP client, supporting: + +* Over 20 supported annotations for documenting your code +* Go to definition +* Dynamic type checking +* Find references +* Diagnostics/Warnings +* Syntax checking +* Element renaming +* Hover to view details on variables, functions, and more +* Autocompletion +* Support for libraries +* Code formatting +* Spell checking +* Custom plugins