diff --git a/dev-util/lua-language-server/Manifest b/dev-util/lua-language-server/Manifest index fe64813c44..1b6b05f2e0 100644 --- a/dev-util/lua-language-server/Manifest +++ b/dev-util/lua-language-server/Manifest @@ -1,3 +1,4 @@ DIST lua-language-server-3.13.9.zip 31473676 BLAKE2B 79b338a52142c81cf2e6c3ebeecfd4b92a694d350cb0decc1ede12562324888802a402f1e2ef36de8008296c5f7d1cbd3a3ce0823f9a00897e036df3b566abff SHA512 ca4261257526306fab5075014974c9004370c4a42cc95dbe068a16e6c51cb39d035ac2080c2a6e40961a14f8453db2050ca8f10db1d94995ef9e1ef6749e498e DIST lua-language-server-3.14.0.zip 31506465 BLAKE2B f3f6b76714884fef880fc0eb1ee07fd46108441811713b1c9bbd7fea47ab6c3eaec98301fccbde76db4060466727a64ac7863f0744a3ba3a8553fb3c62a9396a SHA512 20a41352ae3071d6be1b643d6a7424ac54b0430df778f1ead00a22fecacd2c636dbd5b39b4fa8d81742ce19e602fca6a6eed33c77eb95e3d7dd1d32dc957be21 DIST lua-language-server-3.15.0.zip 31509845 BLAKE2B 1ee07166d37e30f9832aba43b45bfc40eb5bfe26e12a3e29be7b307191f72b786ce82e7b245c640c8f1ff7c2debcf8bcd32eecb8613bfef9337f947747300022 SHA512 b7b270b4439dc7154b4cd47d0ecf95d4d9251225abc527bb3f6a99157ff0784902088f3436dc455b083b7c090d97267221ed407720c85b2ac163c3666dabe72c +DIST lua-language-server-3.16.0.zip 31962898 BLAKE2B ab6a8dfe59f4856c1c0a1d56f953296515e4ca7242cce89c7a7c9898bdfaf5af9b5a214f054e6c3f85c653f6d7ca02bf0356ea5a9893b161fc25903bfe610afd SHA512 fa9c9020c8453c5ddd9a46388dd55ae5cd4e7787b0c1aa58c493b6135f7f2f1bc152976e0b260d44da12f7b95838cfb84026ad422a55319ef84fba258dcc414b diff --git a/dev-util/lua-language-server/files/3.16.0-build.ninja.patch b/dev-util/lua-language-server/files/3.16.0-build.ninja.patch new file mode 100644 index 0000000000..be6bc49d3c --- /dev/null +++ b/dev-util/lua-language-server/files/3.16.0-build.ninja.patch @@ -0,0 +1,102 @@ +--- a/build/build.ninja ++++ b/build/build.ninja +@@ -12,14 +12,14 @@ rule configure + rule c_source_lua + command = $cc -MMD -MT $out -MF $out.d -std=c11 -O2 -Wall $ + -I3rd/bee.lua/3rd/lua54 -DMAKE_LIB -DLUA_USE_LINUX -DNDEBUG -fPIC -o $ +- $out -c $in ++ $out -c $in CFLAGS + description = Compile C $out + deps = gcc + depfile = $out.d + build $obj/source_lua/onelua.obj: c_source_lua 3rd/bee.lua/3rd/lua54/onelua.c + rule cxx_source_bee + command = $cc -MMD -MT $out -MF $out.d -std=c++17 -fno-rtti -O2 -Wall $ +- -fvisibility=hidden -I3rd/bee.lua/3rd/lua54 -DNDEBUG -fPIC -o $out -c $in ++ -fvisibility=hidden -I3rd/bee.lua/3rd/lua54 -DNDEBUG -fPIC -o $out -c $in CXXFLAGS + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -27,7 +27,7 @@ build $obj/source_bee/lua-seri.obj: cxx_source_bee $ + 3rd/bee.lua/3rd/lua-seri/lua-seri.cpp + rule cxx_source_bee_1 + command = $cc -MMD -MT $out -MF $out.d -std=c++17 -fno-rtti -O2 -Wall $ +- -fvisibility=hidden -DNDEBUG -fPIC -o $out -c $in ++ -fvisibility=hidden -DNDEBUG -fPIC -o $out -c $in CXXFLAGS + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -36,7 +36,7 @@ build $obj/source_bee/format.obj: cxx_source_bee_1 $ + rule cxx_source_bee_2 + command = $cc -MMD -MT $out -MF $out.d -std=c++17 -fno-rtti -O2 -Wall $ + -fvisibility=hidden -I3rd/bee.lua -I3rd/bee.lua/3rd/lua54 -DNDEBUG $ +- -fPIC -o $out -c $in ++ -fPIC -o $out -c $in CXXFLAGS + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -90,7 +90,7 @@ build $obj/source_bee/version.obj: cxx_source_bee_2 $ + rule c_source_bee + command = $cc -MMD -MT $out -MF $out.d -std=c11 -O2 -Wall $ + -fvisibility=hidden -I3rd/bee.lua -I3rd/bee.lua/3rd/lua54 -DBEE_STATIC $ +- -DNDEBUG -fPIC -o $out -c $in ++ -DNDEBUG -fPIC -o $out -c $in CFLAGS + description = Compile C $out + deps = gcc + depfile = $out.d +@@ -134,7 +134,7 @@ build $obj/source_bee/lua_time.obj: cxx_source_bee_3 $ + rule cxx_source_bootstrap + command = $cc -MMD -MT $out -MF $out.d -std=c++17 -fno-rtti -O2 -Wall $ + -fvisibility=hidden -I3rd/bee.lua -I3rd/bee.lua/3rd/lua54 $ +- -DLUA_USE_LINUX -DNDEBUG -fPIC -o $out -c $in ++ -DLUA_USE_LINUX -DNDEBUG -fPIC -o $out -c $in CXXFLAGS + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -144,7 +144,7 @@ build $obj/source_bootstrap/main.obj: cxx_source_bootstrap $ + 3rd/bee.lua/bootstrap/main.cpp + rule link_bootstrap + command = $cc $in -o $out -Wl,-E -static-libgcc -lstdc++fs -lunwind -lbfd $ +- -pthread -lm -ldl -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -s ++ -pthread -lm -ldl -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -s LDFLAGS + description = Link Exe $out + rule copy + command = cp -fv $in$input $out 1>/dev/null +@@ -159,8 +159,8 @@ rule cxx_code_format + -fvisibility=hidden -I3rd/EmmyLuaCodeStyle/Util/include $ + -I3rd/EmmyLuaCodeStyle/CodeFormatCore/include $ + -I3rd/EmmyLuaCodeStyle/LuaParser/include -I3rd/bee.lua/3rd/lua54 $ +- -I3rd/EmmyLuaCodeStyle/3rd/wildcards/include -DNDEBUG -Wall -Werror -o $ +- $out -c $in ++ -I3rd/EmmyLuaCodeStyle/3rd/wildcards/include -DNDEBUG -Wall -o $ ++ $out -c $in CXXFLAGS + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -265,7 +265,7 @@ build $obj/code_format/Utf8.obj: cxx_code_format $ + rule c_lpeglabel + command = $cc -MMD -MT $out -MF $out.d -std=c11 -O2 -Wall $ + -fvisibility=hidden -I3rd/bee.lua/3rd/lua54 -DMAXRECLEVEL=1000 -DNDEBUG $ +- -o $out -c $in ++ -o $out -c $in CFLAGS + description = Compile C $out + deps = gcc + depfile = $out.d +@@ -277,7 +277,7 @@ build $obj/lpeglabel/lplvm.obj: c_lpeglabel 3rd/lpeglabel/lplvm.c + rule cxx_lua_language_server + command = $cc -MMD -MT $out -MF $out.d -std=c++17 -O2 -Wall $ + -fvisibility=hidden -I3rd/bee.lua -I3rd/bee.lua/3rd/lua54 -DCODE_FORMAT $ +- -DNDEBUG -o $out -c $in ++ -DNDEBUG -o $out -c $in CXXFLAGS + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -285,7 +285,7 @@ build $obj/lua-language-server/modules.obj: cxx_lua_language_server $ + make/modules.cpp + rule link_lua_language_server + command = $cc $in -o $out -rdynamic -lstdc++fs -lunwind -lbfd -pthread $ +- -lm -ldl -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -s ++ -lm -ldl -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic LDFLAGS + description = Link Exe $out + rule run_bee_test + command = $bin/lua-language-server $in diff --git a/dev-util/lua-language-server/files/3.16.0-linux.ninja.patch b/dev-util/lua-language-server/files/3.16.0-linux.ninja.patch new file mode 100644 index 0000000000..6aaaf8372e --- /dev/null +++ b/dev-util/lua-language-server/files/3.16.0-linux.ninja.patch @@ -0,0 +1,65 @@ +--- a/3rd/luamake/compile/ninja/linux.ninja ++++ b/3rd/luamake/compile/ninja/linux.ninja +@@ -2,20 +2,20 @@ ninja_required_version = 1.7 + builddir = build/linux + bin = $builddir/bin + obj = $builddir/obj +-cc = gcc +-ar = ar ++cc = REPLACE_ME ++ar = REPLACE_AR + luamake = luamake + rule c_source_lua + command = $cc -MMD -MT $out -MF $out.d -std=c11 -O2 -Wall $ + -Ibee.lua/3rd/lua54 -DMAKE_LIB -DLUA_USE_LINUX -DNDEBUG -fPIC -o $out $ + -c $in +- description = Compile C $out ++ description = Compile C $out CFLAGS + deps = gcc + depfile = $out.d + build $obj/source_lua/onelua.obj: c_source_lua bee.lua/3rd/lua54/onelua.c + rule cxx_source_bee + command = $cc -MMD -MT $out -MF $out.d -std=c++17 -fno-rtti -O2 -Wall $ +- -fvisibility=hidden -Ibee.lua/3rd/lua54 -DNDEBUG -fPIC -o $out -c $in ++ -fvisibility=hidden -Ibee.lua/3rd/lua54 -DNDEBUG -fPIC -o $out -c $in CXXFLAGS + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -23,7 +23,7 @@ build $obj/source_bee/lua-seri.obj: cxx_source_bee $ + bee.lua/3rd/lua-seri/lua-seri.cpp + rule cxx_source_bee_1 + command = $cc -MMD -MT $out -MF $out.d -std=c++17 -fno-rtti -O2 -Wall $ +- -fvisibility=hidden -DNDEBUG -fPIC -o $out -c $in ++ -fvisibility=hidden -DNDEBUG -fPIC -o $out -c $in CXXFLAGS + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -31,7 +31,7 @@ build $obj/source_bee/format.obj: cxx_source_bee_1 bee.lua/3rd/fmt/format.cc + 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 -DNDEBUG -fPIC -o $ +- $out -c $in ++ $out -c $in CXXFLAGS + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -125,7 +125,7 @@ rule cxx_source_bootstrap + command = $cc -MMD -MT $out -MF $out.d -std=c++17 -fno-rtti -O2 -Wall $ + -fvisibility=hidden -Ibee.lua -Ibee.lua/3rd/lua54 -DLUA_USE_LINUX $ + -DNDEBUG -fPIC -o $out -c $in +- description = Compile C++ $out ++ description = Compile C++ $out CXXFLAGS + deps = gcc + depfile = $out.d + build $obj/source_bootstrap/bootstrap_init.obj: cxx_source_bootstrap $ +@@ -133,8 +133,8 @@ build $obj/source_bootstrap/bootstrap_init.obj: cxx_source_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 -static-libgcc -lstdc++fs -lunwind -lbfd $ +- -pthread -lm -ldl -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -s ++ command = $cc $in -o $out -Wl,-E -static-libgcc -lunwind -lbfd $ ++ -pthread -lm -ldl -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic LDFLAGS + description = Link Exe $out + rule copy + command = cp -fv $in$input $out 1>/dev/null diff --git a/dev-util/lua-language-server/files/lua-language-server-3.16.0-ucontext_t.patch b/dev-util/lua-language-server/files/lua-language-server-3.16.0-ucontext_t.patch new file mode 100644 index 0000000000..60a0eb51e7 --- /dev/null +++ b/dev-util/lua-language-server/files/lua-language-server-3.16.0-ucontext_t.patch @@ -0,0 +1,30 @@ +--- a/3rd/bee.lua/bee/crash/unwind_linux.cpp ++++ b/3rd/bee.lua/bee/crash/unwind_linux.cpp +@@ -6,12 +6,8 @@ + namespace bee::crash { + void unwind(ucontext_t *ctx, uint16_t skip, unwind_callback func, void *ud) noexcept { + unw_cursor_t cursor; +-#if defined(__aarch64__) + unw_context_t *unw_ctx = (unw_context_t *)ctx; + unw_init_local(&cursor, unw_ctx); +-#else +- unw_init_local(&cursor, ctx); +-#endif + while (unw_step(&cursor) > 0) { + unw_word_t pc; + unw_get_reg(&cursor, UNW_REG_IP, &pc); +--- a/3rd/luamake/bee.lua/bee/crash/unwind_linux.cpp ++++ b/3rd/luamake/bee.lua/bee/crash/unwind_linux.cpp +@@ -6,12 +6,8 @@ + namespace bee::crash { + void unwind(ucontext_t *ctx, uint16_t skip, unwind_callback func, void *ud) noexcept { + unw_cursor_t cursor; +-#if defined(__aarch64__) + unw_context_t *unw_ctx = (unw_context_t *)ctx; + unw_init_local(&cursor, unw_ctx); +-#else +- unw_init_local(&cursor, ctx); +-#endif + while (unw_step(&cursor) > 0) { + unw_word_t pc; + unw_get_reg(&cursor, UNW_REG_IP, &pc); diff --git a/dev-util/lua-language-server/lua-language-server-3.16.0.ebuild b/dev-util/lua-language-server/lua-language-server-3.16.0.ebuild new file mode 100644 index 0000000000..c1940db5e3 --- /dev/null +++ b/dev-util/lua-language-server/lua-language-server-3.16.0.ebuild @@ -0,0 +1,85 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua{5-{1,3,4},jit} ) + +inherit ninja-utils toolchain-funcs lua-single prefix + +DESCRIPTION="Lua language server" +HOMEPAGE="https://github.com/LuaLS/lua-language-server" +SRC_URI="https://github.com/LuaLS/lua-language-server/releases/download/${PV}/${P}-submodules.zip -> ${P}.zip" +S="${WORKDIR}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="test" +REQUIRE_USE="${LUA_REQUIRED_USE}" + +DEPEND="${LUA_DEPS}" +RDEPEND="${DEPEND}" +BDEPEND=" + app-alternatives/ninja + app-arch/unzip +" +RESTRICT="!test? ( test )" + +src_prepare() { + # Remove hardcoded gcc references + sed -i "/lm.cxx/a lm.cc = '$(tc-getCC)'" \ + make.lua || die + sed -i "s/CC = gcc/ CC = ${tc-getCC}/" \ + 3rd/lpeglabel/makefile || die + # Shipped file doesn't respect CFLAGS/CXXFLAGS/LDFLAGS + eapply "${FILESDIR}/${PV}-linux.ninja.patch" + eapply "${FILESDIR}/${PN}-${PV}-ucontext_t.patch" + eapply_user + sed -i -e "s/^cc = REPLACE_ME/cc = $(tc-getCC)/" \ + -e "s/^ar = REPLACE_AR/ar = $(tc-getAR)/" \ + -e "s/CFLAGS/${CFLAGS}/" \ + -e "s/CXXFLAGS/${CXXFLAGS}/" \ + -e "s/LDFLAGS/${LDFLAGS}/" \ + 3rd/luamake/compile/ninja/linux.ninja || die + + prefixify_ro "${FILESDIR}/wrapper.sh" +} + +src_compile() { + eninja -C 3rd/luamake -f compile/ninja/linux.ninja "$(usex test "test" "luamake")" + use test && eninja -C 3rd/luamake -f compile/ninja/linux.ninja luamake + ./3rd/luamake/luamake init || die + + # Generated file doesn't respect CFLAGS/CXXFLAGS/LDFLAGS + sed -i -e "s/^cc =.*./cc = REPLACE_ME/" \ + -e "s/^ar =.*./ar = REPLACE_AR/" \ + build/build.ninja || die + + eapply "${FILESDIR}/${PV}-build.ninja.patch" + sed -i -e "s/REPLACE_ME/$(tc-getCC)/" \ + -e "s/REPLACE_AR/$(tc-getAR)/" \ + -e "s|LUAMAKE_PATH|${S}/3rd/luamake/luamake|" \ + -e "s/CFLAGS/${CFLAGS}/" \ + -e "s/CXXFLAGS/${CXXFLAGS}/" \ + -e "s/LDFLAGS/${LDFLAGS}/" \ + build/build.ninja || die + + use test && eninja -f build/build.ninja || eninja -f build/build.ninja all + rm -rf meta/198256b1 +} + +src_install() { + newbin "${T}/wrapper.sh" ${PN} + + into /opt/${PN} + dobin bin/${PN} + + insinto /opt/${PN}/bin + doins bin/main.lua + + insinto /opt/${PN} + doins -r debugger.lua main.lua locale meta script + + einstalldocs +}