From nobody Tue Sep 06 20:32:12 2022 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4MMcWJ6452z4bd0X; Tue, 6 Sep 2022 20:32:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4MMcWJ5fCGz3sDQ; Tue, 6 Sep 2022 20:32:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1662496332; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Mx3h/plLm+2UJVwkcGIua5vbX1I3ssufElqXiUuuzzg=; b=dEml1zk7tR3KI0zF5MR4yaDK8w7mDwwZxlVx7clP09cTOYQYWKmtMQpjouyyj/cUIj7AHF v/lzMgbtXca4duCt0GBzDGiF6ekpGfFqev25RGG3Emj0dpBgwPA797RVBhPpAiSAg2dRYF nI5GbYDFBeTZ+C4IFslHRPjug18OflxVI/2VNc0CXsA5B1/6lQIKz0wEZfFvHFNus+LAn6 G/mzue+k9+DqnAKq7pPvwYXAQ1B8yslZz3OcksepMrMG7fMHojdgMgrHPZWxx9TvkTuVbK gPu+x7ox3b/SkJv20s9maFCNy06Y9D+boDXka8mIkI0ak6eiVxjrMqOUUMKSiQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4MMcWJ4kzxzHrF; Tue, 6 Sep 2022 20:32:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 286KWCht020174; Tue, 6 Sep 2022 20:32:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 286KWCLW020173; Tue, 6 Sep 2022 20:32:12 GMT (envelope-from git) Date: Tue, 6 Sep 2022 20:32:12 GMT Message-Id: <202209062032.286KWCLW020173@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Adam Weinberger Subject: git: 2da176f88f7d - main - devel/lua-language-server: Add port List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: adamw X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2da176f88f7d944fbcd314284b65ebd19699bf58 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1662496332; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Mx3h/plLm+2UJVwkcGIua5vbX1I3ssufElqXiUuuzzg=; b=swd91pDB/9dJ+HGpT46/QTHIk98du0e7Q4/siVh78PmCySjl/nujmvMZ2XdnrHHRox0VS4 rClI705ySeA9bX1JwQ/8SrZjr2Gai2mPFgWCuIlDA9muYDR+60mRBFAzT7V+t4LIx7tv8q f0wjyNA0u+XsBfJIo5MI38Gvr7hQPFwFk4hCAWrnldupH5OoFVWpEgdRNhLPL5oTXPT2jV BOFz7SgCFxSS2YGxXMOXfdHRKg5xY/ot/jODRCiMJaXywGQBfzRJUc0xiL7DX5LzQAzP/s tmJ8ttdNT34BMbKxuNkFwCQuqmSTn8pok2wfyYEwv+xw9lNSpku5tom2Aw5tbQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1662496332; a=rsa-sha256; cv=none; b=XtBu10dAMO6PFaMw24Hm8uTvdXKpg/O741m8Ttk89Uh8bWSQG2wwSLMz9j2McNhDfjU9xE MS2IBoxGL6Xc85LTyFJWJZv8e9MkLbXiiRdN27RNuKZ0cclDtgxemkCPpELO8QS2CBo8/o 64VYz6fDK0YAgiFDvdapVHKCHVrJHsEU1J2rujHBuR7+RDiDotuzUiKgvq5dPxAz0WLIwO LVA8ZXmirbGzFX9Vz/ltp5yZmrNiTsVFaZ9zA979Cok5Ctg5xsK6HjW7+63eBIDZ2GnCJO Fdeub9SzFbEU+e5u1Cf4SodqazKAAU8DJaCGFsGxaoqH7kl7GoEYf3esqB1PMg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by adamw: URL: https://cgit.FreeBSD.org/ports/commit/?id=2da176f88f7d944fbcd314284b65ebd19699bf58 commit 2da176f88f7d944fbcd314284b65ebd19699bf58 Author: Adam Weinberger AuthorDate: 2022-09-06 20:21:17 +0000 Commit: Adam Weinberger CommitDate: 2022-09-06 20:32:08 +0000 devel/lua-language-server: Add port This was difficult to port largely because of luamake, which: 1) Is itself built by a ninja definition file precompiled just for FreeBSD which doesn't work on FreeBSD. 2) Has no documentation whatsoever. I'd love to get rid of the BINARY_ALIAS= gcc=cc hack, but I have literally no idea where luamake picks up its compiler from. Any advice on the above is very welcome! sumneko, luamake (and associated dep bee.lua) went out of their way to try to support FreeBSD, so it'd be nice to get it working right without heavy patching. 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 WWW: https://github.com/sumneko/lua-language-server --- devel/Makefile | 1 + devel/lua-language-server/Makefile | 53 +++++++++++++++++++++ devel/lua-language-server/distinfo | 15 ++++++ .../files/lua-language-server.in | 3 ++ .../files/patch-3rd_bee.lua_compile_common.lua | 30 ++++++++++++ .../patch-3rd_luamake_compile_ninja_freebsd.ninja | 54 ++++++++++++++++++++++ devel/lua-language-server/files/patch-make.lua | 10 ++++ devel/lua-language-server/pkg-descr | 18 ++++++++ 8 files changed, 184 insertions(+) diff --git a/devel/Makefile b/devel/Makefile index c462dc161ebd..9cf3e51c930c 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -1468,6 +1468,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 index 000000000000..4f922449e09b --- /dev/null +++ b/devel/lua-language-server/Makefile @@ -0,0 +1,53 @@ +PORTNAME= lua-language-server +DISTVERSION= 3.5.4 +CATEGORIES= devel + +MAINTAINER= adamw@FreeBSD.org +COMMENT= Sumneko Lua development server and LSP client + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +LIB_DEPENDS= libinotify.so:devel/libinotify + +USES= lua:build ninja:make +USE_GITHUB= yes +GH_ACCOUNT= sumneko +GH_TUPLE= actboy168:bee.lua:301ad60:bee/3rd/bee.lua \ + actboy168:luamake:db9d087:luamake/3rd/luamake \ + cppcxy:EmmyLuaCodeStyle:f389817:emmyluacodestyle/3rd/EmmyLuaCodeStyle \ + bjornbytes:lovr-docs:a6fc516:lovr/3rd/lovr-api \ + love2d-community:love-api:69e7e01:love/3rd/love-api \ + sqmedeiros:lpeglabel:b5d7638:lpeglabel/3rd/lpeglabel + +BINARY_ALIAS= gcc=${CC} +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-extract: + ${CP} -rp ${WRKSRC}/3rd/bee.lua ${WRKSRC}/3rd/luamake/3rd + +post-patch: + ${REINPLACE_CMD} -e 's|%%CC%%|${CC}|; s|%%LOCALBASE%%|${LOCALBASE}|' \ + ${WRKSRC}/3rd/luamake/compile/ninja/freebsd.ninja \ + ${WRKSRC}/3rd/bee.lua/compile/common.lua + +do-build: + ${DO_MAKE_BUILD} -C ${WRKSRC}/3rd/luamake -f compile/ninja/freebsd.ninja + cd ${WRKSRC} && ${MAKE_ENV} ./3rd/luamake/luamake -v + +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} + +.include diff --git a/devel/lua-language-server/distinfo b/devel/lua-language-server/distinfo new file mode 100644 index 000000000000..22de0ce8544a --- /dev/null +++ b/devel/lua-language-server/distinfo @@ -0,0 +1,15 @@ +TIMESTAMP = 1662484910 +SHA256 (sumneko-lua-language-server-3.5.4_GH0.tar.gz) = bf1fd783051724fac46028eef018abb14a741db1b07d49a7e50770cb1cbb67a2 +SIZE (sumneko-lua-language-server-3.5.4_GH0.tar.gz) = 3124118 +SHA256 (actboy168-bee.lua-301ad60_GH0.tar.gz) = 8c51b059426c4cf3c5a6db33cc11f0dca44881e762dc5de238219312fe81971a +SIZE (actboy168-bee.lua-301ad60_GH0.tar.gz) = 478403 +SHA256 (actboy168-luamake-db9d087_GH0.tar.gz) = e8b538decaabe2d16da7cd71ace9dc45d8f4f4924608981420a5040bf1217282 +SIZE (actboy168-luamake-db9d087_GH0.tar.gz) = 55438 +SHA256 (cppcxy-EmmyLuaCodeStyle-f389817_GH0.tar.gz) = fac6f0a7fbbd0848ab9482ac9bc3fe535d31f02dc89285c4ba8c0c89f727cdbe +SIZE (cppcxy-EmmyLuaCodeStyle-f389817_GH0.tar.gz) = 4242506 +SHA256 (bjornbytes-lovr-docs-a6fc516_GH0.tar.gz) = 80dcf5a071c2bdb0f41c1f4b203600180aa499085ce090c124f353e4bb8249f1 +SIZE (bjornbytes-lovr-docs-a6fc516_GH0.tar.gz) = 16640833 +SHA256 (love2d-community-love-api-69e7e01_GH0.tar.gz) = 35263a7cb16256407c23155df915e2e0bb2054679f61e86572967eb9afbb04b5 +SIZE (love2d-community-love-api-69e7e01_GH0.tar.gz) = 151635 +SHA256 (sqmedeiros-lpeglabel-b5d7638_GH0.tar.gz) = e2285dac6ad9a2ffca17f5f9ed2f9a57d753b58d41194fc53df35b257bb453d2 +SIZE (sqmedeiros-lpeglabel-b5d7638_GH0.tar.gz) = 82828 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 index 000000000000..72278b6066af --- /dev/null +++ b/devel/lua-language-server/files/lua-language-server.in @@ -0,0 +1,3 @@ +#!/bin/sh + +exec '%%DATADIR%%/bin/lua-language-server' "$@" 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 index 000000000000..a5a69b25e78f --- /dev/null +++ b/devel/lua-language-server/files/patch-3rd_bee.lua_compile_common.lua @@ -0,0 +1,30 @@ +--- 3rd/bee.lua/compile/common.lua.orig 2022-08-25 08:04:59 UTC ++++ 3rd/bee.lua/compile/common.lua +@@ -37,7 +37,7 @@ local function need(lst) + end + + lm:source_set "source_bee" { +- includes = ".", ++ includes = {"%%LOCALBASE%%/include", "."}, + sources = "bee/**/*.cpp", + windows = { + sources = need "win" +@@ -152,8 +152,9 @@ lm:lua_source "source_bee" { + sources = { + "!binding/lua_unicode.cpp", + }, ++ includes = "%%LOCALBASE%%/include", + links = "inotify", +- ldflags = "-pthread" ++ ldflags = {"-L%%LOCALBASE%%/lib", "-pthread"} + }, + } + +@@ -191,6 +192,6 @@ lm:source_set 'source_lua' { + flags = "/wd4267" + }, + gcc = { +- flags = "-Wno-maybe-uninitialized", ++ flags = "-Wno-uninitialized", + } + } 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 index 000000000000..087d98526e5f --- /dev/null +++ b/devel/lua-language-server/files/patch-3rd_luamake_compile_ninja_freebsd.ninja @@ -0,0 +1,54 @@ +--- 3rd/luamake/compile/ninja/freebsd.ninja.orig 2022-08-25 08:15:47 UTC ++++ 3rd/luamake/compile/ninja/freebsd.ninja +@@ -1,7 +1,7 @@ + builddir = build/freebsd + bin = $builddir/bin + obj = $builddir/obj +-cc = gcc ++cc = %%CC%% + luamake = luamake + rule c_source_bee + command = $cc -MMD -MT $out -MF $out.d -O2 -Wall -Werror $ +@@ -23,7 +23,7 @@ build $obj/source_bee/format.obj: cxx_source_bee $ + build $obj/source_bee/os.obj: cxx_source_bee 3rd/bee.lua/bee/nonstd/fmt/os.cc + rule cxx_source_bee_1 + command = $cc -MMD -MT $out -MF $out.d -std=c++17 -O2 -Wall -Werror $ +- -fvisibility=hidden -I3rd/bee.lua -DNDEBUG -o $out -c $in ++ -fvisibility=hidden -I3rd/bee.lua -I%%LOCALBASE%%/include -DNDEBUG -o $out -c $in + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -49,7 +49,7 @@ build $obj/source_bee/path_helper.obj: cxx_source_bee_ + rule cxx_source_bee_2 + command = $cc -MMD -MT $out -MF $out.d -std=c++17 -O2 -Wall -Werror $ + -fvisibility=hidden -I3rd/bee.lua/3rd/lua-seri -I3rd/bee.lua $ +- -Itools/lua54 -DBEE_STATIC -DNDEBUG -o $out -c $in ++ -Itools/lua54 -I%%LOCALBASE%%/include -DBEE_STATIC -DNDEBUG -o $out -c $in + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -79,7 +79,7 @@ build $obj/source_lua/utf8_crt.obj: c_source_lua $ + 3rd/bee.lua/3rd/lua/utf8_crt.c + rule c_source_lua_1 + command = $cc -MMD -MT $out -MF $out.d -O2 -Wall -Werror -DMAKE_LIB $ +- -DLUA_USE_LINUX -DNDEBUG -Wno-maybe-uninitialized -o $out -c $in ++ -DLUA_USE_LINUX -DNDEBUG -Wno-uninitialized -o $out -c $in + description = Compile C $out + deps = gcc + depfile = $out.d +@@ -96,8 +96,7 @@ build $obj/source_bootstrap/main.obj: cxx_source_boots + build $obj/source_bootstrap/progdir.obj: cxx_source_bootstrap $ + 3rd/bee.lua/bootstrap/progdir.cpp + rule link_luamake +- command = $cc $in -o $out -lm -Wl,-E -linotify -pthread -Wl,-Bstatic $ +- -lstdc++ -Wl,-Bdynamic -static-libgcc -s ++ command = $cc $in -o $out -lm -L%%LOCALBASE%%/lib -linotify -pthread -lstdc++ -s + description = Link Exe $out + build $bin/luamake: link_luamake $obj/source_bootstrap/main.obj $ + $obj/source_bootstrap/progdir.obj $obj/source_bee/lua-seri.obj $ +@@ -138,4 +137,4 @@ build luamake: copy | $bin/luamake + build copy_script: phony $bin/main.lua + build test: phony $obj/test.stamp + build copy_luamake: phony luamake +-default test copy_luamake ++default copy_luamake diff --git a/devel/lua-language-server/files/patch-make.lua b/devel/lua-language-server/files/patch-make.lua new file mode 100644 index 000000000000..d5a2d40ab0cb --- /dev/null +++ b/devel/lua-language-server/files/patch-make.lua @@ -0,0 +1,10 @@ +--- make.lua.orig 2022-09-06 18:48:12 UTC ++++ make.lua +@@ -96,6 +96,5 @@ lm:build 'unit-test' { + } + + lm:default { +- "bee-test", +- "unit-test", ++ "all" + } diff --git a/devel/lua-language-server/pkg-descr b/devel/lua-language-server/pkg-descr new file mode 100644 index 000000000000..deaad32cc7b6 --- /dev/null +++ b/devel/lua-language-server/pkg-descr @@ -0,0 +1,18 @@ +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 + +WWW: https://github.com/sumneko/lua-language-server