commit:     08285c8c5a479dce78ca70dfac51828aee4c59e9
Author:     Mathis Winterer <mrmagic223325 <AT> fedora <DOT> email>
AuthorDate: Sun Jan  1 23:06:47 2023 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Sun Jan  1 23:06:47 2023 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=08285c8c

dev-util/lua-language-server: Stop prestripping binaries, Remove direct calls 
to gcc, patch build scripts to respect CFLAGS/CXXFLAGS/LDFLAGS

Closes: https://bugs.gentoo.org/889302
Closes: https://bugs.gentoo.org/889308
Closes: https://bugs.gentoo.org/889306
Closes: https://bugs.gentoo.org/889304
Signed-off-by: Mathis Winterer <mrmagic223325 <AT> fedora.email>

 .../lua-language-server/files/build.ninja.patch    | 142 +++++++++++++++++++++
 .../lua-language-server/files/linux.ninja.patch    |  94 ++++++++++++++
 .../lua-language-server-3.6.4.ebuild               |  35 ++++-
 3 files changed, 269 insertions(+), 2 deletions(-)

diff --git a/dev-util/lua-language-server/files/build.ninja.patch 
b/dev-util/lua-language-server/files/build.ninja.patch
new file mode 100644
index 000000000..49111813b
--- /dev/null
+++ b/dev-util/lua-language-server/files/build.ninja.patch
@@ -0,0 +1,142 @@
+--- a/build/build.ninja        2023-01-01 23:53:30.813718024 +0100
++++ b/build/build.ninja        2023-01-01 23:04:59.011627739 +0100
+@@ -2,7 +2,7 @@
+ builddir = build
+ bin = bin
+ obj = $builddir/obj
+-cc = x86_64-pc-linux-gnu-gcc
++cc = REPLACE_ME
+ luamake = $
+     
/var/tmp/portage/dev-util/lua-language-server-3.6.4/work/3rd/luamake/luamake
+ rule configure
+@@ -13,17 +13,17 @@
+     3rd/bee.lua/compile/config.lua 3rd/bee.lua/compile/common.lua $
+     make/code_format.lua
+ rule c_source_bee
+-  command = $cc -MMD -MT $out -MF $out.d -std=c11 -O2 -Wall -Werror $
+-    -fvisibility=hidden -I3rd/bee.lua/3rd/lua-seri -I$builddir/lua54 $
+-    -DNDEBUG -fPIC -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -std=c11 $
++    -I3rd/bee.lua/3rd/lua-seri -I$builddir/lua54 $
++    -DNDEBUG -o $out -c $in CFLAGS
+   description = Compile C   $out
+   deps = gcc
+   depfile = $out.d
+ build $obj/source_bee/lua-seri.obj: c_source_bee $
+     3rd/bee.lua/3rd/lua-seri/lua-seri.c
+ rule cxx_source_bee
+-  command = $cc -MMD -MT $out -MF $out.d -std=c++17 -O2 -Wall -Werror $
+-    -fvisibility=hidden -I3rd/bee.lua/bee/nonstd -DNDEBUG -fPIC -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -std=c++17 $
++    -I3rd/bee.lua/bee/nonstd -DNDEBUG -o $out -c $in CXXFLAGS
+   description = Compile C++ $out
+   deps = gcc
+   depfile = $out.d
+@@ -31,8 +31,8 @@
+     3rd/bee.lua/bee/nonstd/fmt/format.cc
+ 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 -fPIC -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -std=c++17 $
++    -I3rd/bee.lua -DNDEBUG -o $out -c $in CXXFLAGS
+   description = Compile C++ $out
+   deps = gcc
+   depfile = $out.d
+@@ -56,9 +56,9 @@
+ build $obj/source_bee/path_helper.obj: cxx_source_bee_1 $
+     3rd/bee.lua/bee/utility/path_helper.cpp
+ 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 $
+-    -I$builddir/lua54 -DBEE_STATIC -DNDEBUG -fPIC -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -std=c++17 $
++    -I3rd/bee.lua/3rd/lua-seri -I3rd/bee.lua $
++    -I$builddir/lua54 -DBEE_STATIC -DNDEBUG -o $out -c $in CXXFLAGS
+   description = Compile C++ $out
+   deps = gcc
+   depfile = $out.d
+@@ -79,26 +79,26 @@
+ build $obj/source_bee/lua_time.obj: cxx_source_bee_2 $
+     3rd/bee.lua/binding/lua_time.cpp
+ rule c_source_lua
+-  command = $cc -MMD -MT $out -MF $out.d -std=c11 -O2 -Wall -Werror $
+-    -fvisibility=hidden -DNDEBUG -fPIC -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -std=c11 $
++    -DNDEBUG -o $out -c $in CFLAGS
+   description = Compile C   $out
+   deps = gcc
+   depfile = $out.d
+ 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 -std=c11 -O2 -Wall -Werror $
+-    -DMAKE_LIB -DLUA_USE_LINUX -DNDEBUG -fPIC -Wno-maybe-uninitialized -o $
+-    $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -std=c11 $
++    -DMAKE_LIB -DLUA_USE_LINUX -DNDEBUG -o $
++    $out -c $in CFLAGS
+   description = Compile C   $out
+   deps = gcc
+   depfile = $out.d
+ build $obj/source_lua/linit.obj: c_source_lua_1 3rd/bee.lua/3rd/lua/linit.c
+ build $obj/source_lua/onelua.obj: c_source_lua_1 3rd/bee.lua/3rd/lua/onelua.c
+ rule cxx_source_bootstrap
+-  command = $cc -MMD -MT $out -MF $out.d -std=c++17 -O2 -Wall -Werror $
+-    -fvisibility=hidden -I3rd/bee.lua/3rd/lua -I3rd/bee.lua -DLUA_USE_LINUX $
+-    -DNDEBUG -fPIC -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -std=c++17 $
++    -I3rd/bee.lua/3rd/lua -I3rd/bee.lua -DLUA_USE_LINUX $
++    -DNDEBUG -o $out -c $in CXXFLAGS
+   description = Compile C++ $out
+   deps = gcc
+   depfile = $out.d
+@@ -108,7 +108,7 @@
+     3rd/bee.lua/bootstrap/progdir.cpp
+ rule link_bootstrap
+   command = $cc $in -o $out -lm -ldl -Wl,-E -lstdc++fs -pthread $
+-    -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -static-libgcc -s
++    -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -static-libgcc LDFLAGS
+   description = Link    Exe $out
+ build /bootstrap: link_bootstrap $obj/source_bootstrap/main.obj $
+     $obj/source_bootstrap/progdir.obj $obj/source_bee/lua-seri.obj $
+@@ -146,10 +146,10 @@
+     3rd/bee.lua/test/test_thread.lua 3rd/bee.lua/test/test_time.lua | $
+     /bootstrap copy_script
+ rule cxx_code_format
+-  command = $cc -MMD -MT $out -MF $out.d -std=c++17 -O2 -Wall $
+-    -fvisibility=hidden -I3rd/EmmyLuaCodeStyle/include $
++  command = $cc -MMD -MT $out -MF $out.d -std=c++17 $
++    -I3rd/EmmyLuaCodeStyle/include $
+     -I3rd/bee.lua/3rd/lua -I3rd/EmmyLuaCodeStyle/3rd/wildcards/include $
+-    -DNDEBUG -march=native -O2 -pipe -o $out -c $in
++    -DNDEBUG -o $out -c $in CXXFLAGS
+   description = Compile C++ $out
+   deps = gcc
+   depfile = $out.d
+@@ -274,9 +274,9 @@
+ build $obj/code_format/Utf8.obj: cxx_code_format $
+     3rd/EmmyLuaCodeStyle/Util/src/Utf8.cpp
+ rule c_lpeglabel
+-  command = $cc -MMD -MT $out -MF $out.d -std=c11 -O2 -Wall $
+-    -fvisibility=hidden -I3rd/bee.lua/3rd/lua -DMAXRECLEVEL=1000 -DNDEBUG $
+-    -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -std=c11 $
++    -I3rd/bee.lua/3rd/lua -DMAXRECLEVEL=1000 -DNDEBUG $
++    -o $out -c $in CFLAGS
+   description = Compile C   $out
+   deps = gcc
+   depfile = $out.d
+@@ -286,9 +286,9 @@
+ build $obj/lpeglabel/lpltree.obj: c_lpeglabel 3rd/lpeglabel/lpltree.c
+ 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/lua -DCODE_FORMAT $
+-    -DNDEBUG -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -std=c++17 $
++    -I3rd/bee.lua -I3rd/bee.lua/3rd/lua -DCODE_FORMAT $
++    -DNDEBUG -o $out -c $in CXXFLAGS
+   description = Compile C++ $out
+   deps = gcc
+   depfile = $out.d

diff --git a/dev-util/lua-language-server/files/linux.ninja.patch 
b/dev-util/lua-language-server/files/linux.ninja.patch
new file mode 100644
index 000000000..a9a853ed7
--- /dev/null
+++ b/dev-util/lua-language-server/files/linux.ninja.patch
@@ -0,0 +1,94 @@
+--- a/3rd/luamake/compile/ninja/linux.ninja    2022-11-29 13:53:05.000000000 
+0100
++++ b/3rd/luamake/compile/ninja/linux.ninja    2023-01-01 22:40:43.690777107 
+0100
+@@ -2,20 +2,20 @@
+ builddir = build/linux
+ bin = $builddir/bin
+ obj = $builddir/obj
+-cc = gcc
++cc = REPLACE_ME
+ luamake = luamake
+ rule c_source_bee
+-  command = $cc -MMD -MT $out -MF $out.d  -O2 -Wall -Werror $
+-    -fvisibility=hidden -I3rd/bee.lua/3rd/lua-seri -Itools/lua54 -DNDEBUG $
+-    -fPIC -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d $
++    -I3rd/bee.lua/3rd/lua-seri -Itools/lua54 -DNDEBUG $
++    -o $out -c $in CFLAGS
+   description = Compile C   $out
+   deps = gcc
+   depfile = $out.d
+ build $obj/source_bee/lua-seri.obj: c_source_bee $
+     3rd/bee.lua/3rd/lua-seri/lua-seri.c
+ rule cxx_source_bee
+-  command = $cc -MMD -MT $out -MF $out.d -std=c++17 -O2 -Wall -Werror $
+-    -fvisibility=hidden -I3rd/bee.lua/bee/nonstd -DNDEBUG -fPIC -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -std=c++17 $
++    -I3rd/bee.lua/bee/nonstd -DNDEBUG -o $out -c $in CXXFLAGS
+   description = Compile C++ $out
+   deps = gcc
+   depfile = $out.d
+@@ -23,8 +23,8 @@
+     3rd/bee.lua/bee/nonstd/fmt/format.cc
+ 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 -fPIC -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -std=c++17 $
++    -I3rd/bee.lua -DNDEBUG -o $out -c $in CXXFLAGS
+   description = Compile C++ $out
+   deps = gcc
+   depfile = $out.d
+@@ -48,9 +48,9 @@
+ build $obj/source_bee/path_helper.obj: cxx_source_bee_1 $
+     3rd/bee.lua/bee/utility/path_helper.cpp
+ 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 -fPIC -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -std=c++17 $
++    -I3rd/bee.lua/3rd/lua-seri -I3rd/bee.lua $
++    -Itools/lua54 -DBEE_STATIC -DNDEBUG -o $out -c $in CXXFLAGS
+   description = Compile C++ $out
+   deps = gcc
+   depfile = $out.d
+@@ -71,24 +71,24 @@
+ build $obj/source_bee/lua_time.obj: cxx_source_bee_2 $
+     3rd/bee.lua/binding/lua_time.cpp
+ rule c_source_lua
+-  command = $cc -MMD -MT $out -MF $out.d  -O2 -Wall -Werror $
+-    -fvisibility=hidden -DNDEBUG -fPIC -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d $
++    -DNDEBUG -o $out -c $in CFLAGS
+   description = Compile C   $out
+   deps = gcc
+   depfile = $out.d
+ 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 -fPIC -Wno-maybe-uninitialized -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -DMAKE_LIB $
++    -DLUA_USE_LINUX -DNDEBUG -o $out -c $in CFLAGS
+   description = Compile C   $out
+   deps = gcc
+   depfile = $out.d
+ build $obj/source_lua/onelua.obj: c_source_lua_1 3rd/bee.lua/3rd/lua/onelua.c
+ rule cxx_source_bootstrap
+-  command = $cc -MMD -MT $out -MF $out.d -std=c++17 -O2 -Wall -Werror $
+-    -fvisibility=hidden -I3rd/bee.lua/3rd/lua -I3rd/bee.lua -DLUA_USE_LINUX $
+-    -DNDEBUG -fPIC -o $out -c $in
++  command = $cc -MMD -MT $out -MF $out.d -std=c++17 $
++    -I3rd/bee.lua/3rd/lua -I3rd/bee.lua -DLUA_USE_LINUX $
++    -DNDEBUG -o $out -c $in CXXFLAGS
+   description = Compile C++ $out
+   deps = gcc
+   depfile = $out.d
+@@ -98,7 +98,7 @@
+     3rd/bee.lua/bootstrap/progdir.cpp
+ rule link_luamake
+   command = $cc $in -o $out -lm -ldl -Wl,-E -lstdc++fs -pthread $
+-    -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -static-libgcc -s
++    -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -static-libgcc LDFLAGS
+   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 $

diff --git a/dev-util/lua-language-server/lua-language-server-3.6.4.ebuild 
b/dev-util/lua-language-server/lua-language-server-3.6.4.ebuild
index bd99b8d38..f0cf3d9c3 100644
--- a/dev-util/lua-language-server/lua-language-server-3.6.4.ebuild
+++ b/dev-util/lua-language-server/lua-language-server-3.6.4.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-inherit ninja-utils
+inherit ninja-utils toolchain-funcs
 
 DESCRIPTION="Lua language server"
 HOMEPAGE="https://github.com/sumneko/lua-language-server";
@@ -18,14 +18,45 @@ BDPEND="
        ${NINJA_DEPEND}
        app-arch/unzip
        dev-util/ninja
-       sys-devel/gcc
 "
 RESTRICT="!test? ( test )"
+PATCHES=( "${FILESDIR}/linux.ninja.patch" )
+
+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
+       sed -i "s/flags = \"-Wall -Werror\"/flags =\"${CXXFLAGS}\"/" \
+               make/code_format.lua || die
+       # Patch
+       default
+       # Shipped file doesn't respect CFLAGS/CXXFLAGS
+       sed -i -e "s/^cc = REPLACE_ME/cc = $(tc-getCC)/" \
+               -e "s/CFLAGS/${CFLAGS}/" \
+               -e "s/CXXFLAGS/${CXXFLAGS}/" \
+               -e "s/LDFLAGS/${LDFLAGS}/" \
+               3rd/luamake/compile/ninja/linux.ninja || die
+}
 
 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
+
+       eapply "${FILESDIR}/build.ninja.patch"
+
+       sed -i "s/^cc = gcc/cc = $(tc-getCC)/" \
+               build/build.ninja || die
+
+       # Generated file doesn't respect CFLAGS/CXXFLAGS
+       sed -i -e "s/^cc = REPLACE_ME/cc = $(tc-getCC)/" \
+               -e "s/CFLAGS/${CFLAGS}/" \
+               -e "s/CXXFLAGS/${CXXFLAGS}/" \
+               -e "s/LDFLAGS/${LDFLAGS}/" \
+               build/build.ninja || die
+
        # Tests are broken
        eninja -f build/build.ninja all
 }

Reply via email to