Time Nick Message 01:03 LoneWolfHT Is there something stopping the win32 and win64 irrlicht builds from being uploaded as artifacts? 01:03 LoneWolfHT I'm looking into a GIthub action for compiling Minetest installers 01:05 LoneWolfHT *Minetest Windows Installers 02:04 LoneWolfHT I guess MT needs the /lib/ and /include/ dirs 02:05 LoneWolfHT I can make a PR that zips those two dirs in the same folder and puts them up as an artifact 02:18 LoneWolfHT This is what I have hacked together for the Minetest Installer action so far. I'm taking a break until tomorrow, input on it might save me a lot of googling time https://github.com/LoneWolfHT/minetest/runs/2274514807 02:18 LoneWolfHT Just trying to get it to compile atm, will go with a better more informed approach once I achieve that goal 07:56 rubenwardy The original pr for GitHub actions made a Windows installer 10:27 MTDiscord Building Minetest with Irrlicht isn't all that hard 12:16 MTDiscord I am under the impression that node meta is quite broken 12:17 MTDiscord reportMetadataChange usually operates with m_meta = NULL, meaning that probably always is_private_change = false 12:18 MTDiscord As already known, empty meta isn't deleted (I was trying to fix that) and returned by find_nodes_with_meta 12:18 MTDiscord And, meta doesn't appear to be sent immediately. When setting infotext and deleting it right after, it took another mapblock change (such as digging a block) to update. 12:22 MTDiscord See #11170 12:22 ShadowBot https://github.com/minetest/minetest/issues/11170 -- Attempt at fixing handling of node meta data by appgurueu 13:52 sfan5 if you find that reportMetadataChange is called wrongly I'd investigate that first 14:20 LoneWolfHT rubenwardy: Yeah, I'm just trying to get this to work with mtirrlicht now 15:39 sfan5 LoneWolfHT: I don't think you can link to the library built with mingw when the final build is msvc 15:39 sfan5 also the separate builds for irrlicht and then donwnloading the artifact is ... weird 15:40 sfan5 the normal mingw builds are already uploaded by gitlab-ci, but if you want an installer you run into a problem since that stuff only works on windows 15:50 LoneWolfHT Hmmm, I forgot I was trying the mingw method because compiling with msvc was giving me errors 15:51 LoneWolfHT Will run the msvc errors by here if I can't solve them this time around 15:52 sfan5 worked for me in VS2019 16:14 LoneWolfHT Probably me incorrectly configuring it then 16:15 LoneWolfHT I think it's completely working this time around, no issues other than me not setting the build dir correctly 16:21 sfan5 any suggestions for when exactly 5.4.1 should happen? in a few days? this weekend? 16:22 rubenwardy I'm not available before thie weekend 16:22 rubenwardy but the Android can be released late, or nerzhul could do that 16:38 nerzhul_ me ? yep i can but never released android since a long time 16:39 nerzhul_ sfan5 i think it depend on release team availability 16:39 nerzhul_ 5.4.1 is 5.4.0 with backports, right ? 16:58 * LoneWolfHT uploaded an image: (11KiB) < https://matrix.org/_matrix/media/r0/download/matrix.org/bEObfxToMZbFyZJSsZpxZjWX/image.png > 16:58 LoneWolfHT I'm stumped here, no such file anywhere AFAIK 16:59 LoneWolfHT https://github.com/LoneWolfHT/minetest/runs/2280196896 17:09 rubenwardy why does it say Win32-gcc? Shouldn't you build IrrlichtMt with MSVC? 17:53 sfan5 it always says Win32-gcc 17:53 sfan5 nerzhul_: yes 17:54 sfan5 LoneWolfHT: why do you think there should be an obj? 17:55 LoneWolfHT It seems to be trying to link one 17:56 sfan5 https://0x0.st/-cva.png these are the irrlichtmt build artifacts 17:56 sfan5 the .lib is what you give as IRRLICHT_LIBRARY to cmake 17:58 LoneWolfHT Yeah I passed that: -DIRRLICHT_LIBRARY=lib/irrlichtmt/lib/Win32-gcc/Release/IrrlichtMt.lib 17:58 sfan5 judging from the output you must have written .obj 17:59 * LoneWolfHT uploaded an image: (23KiB) < https://matrix.org/_matrix/media/r0/download/matrix.org/rgqHMBRSBrxLKdyclbwOZQbh/image.png > 17:59 LoneWolfHT My dir is right too afaik 18:01 sfan5 try with an absolute path 18:26 sfan5 requesting reviews: #11133, #11152 and I guess #11159 is pretty simple too 18:26 ShadowBot https://github.com/minetest/minetest/issues/11133 -- Isolate library tables between sandbox and insecure env by sfan5 18:26 ShadowBot https://github.com/minetest/minetest/issues/11152 -- Fix server favorites not saving when client/serverlist/ doesn't exist already by sfan5 18:26 ShadowBot https://github.com/minetest/minetest/issues/11159 -- Fix rotation for falling mesh degrotate nodes by Wuzzy2 18:32 LoneWolfHT absolute paths worked 18:36 LoneWolfHT Time to test 19:03 pgimeno sfan5: about 11133, that's a step in the right direction, but not the whole story 19:03 sfan5 yes I know, we've talked about it 19:04 pgimeno debug.getmetatable and debug.setmetatable should probably be removed from the secure environment too, and for that, debug should probably be copied as well 19:05 pgimeno er... never mind, it would just need to be removed from the whitelist 19:06 pgimeno I'll take a closer look later 19:07 sfan5 it doesn't fix what we talked about once, but fixing that while accomodating existing usecases is essentially impossible 19:07 pgimeno is it? well, it's an incompatible change, but currently it's plainly a security hole 19:08 rubenwardy you can just use setmetatable and getmetatable 19:08 pgimeno and there aren't a lot of mods affected, just those who fiddle with the string metatable (I only know of luacontroller) 19:09 pgimeno rubenwardy: yes, you don't really need debug.setmetatable and debug.getmetatable in most applications (except Luacontroller) 19:09 sfan5 breaking those without a replacement is kind of an issue 19:10 pgimeno the replacement is making the luacontroller need an insecure environment 19:11 sfan5 ok true 19:17 LoneWolfHT The installer isn't packing IrrlichtMt.dll, or I did something wrong 19:17 sfan5 set IRRLICHT_DLL? 19:18 pgimeno previous discussion about metatables here, for reference: https://irc.minetest.net/minetest-dev/2020-06-01#i_5696585 19:18 sfan5 you can set it to a ; delimited list btw, it probably needs to inlude the libpng and libjpeg dll too 20:17 * LoneWolfHT uploaded an image: (3KiB) < https://matrix.org/_matrix/media/r0/download/matrix.org/yAtmHRHhiuypRzpHsvhpQELR/image.png > 20:17 LoneWolfHT -DIRRLICHT_DLL=D:\a\minetest\minetest\lib\irrlichtmt\lib\Win32-gcc\Release\IrrlichtMt.dll 20:18 LoneWolfHT Unless you mean I should set it in the cmake files 20:26 LoneWolfHT (Now that I reread that, no, I shouldn't set it in the cmake files) 20:32 LoneWolfHT I'll go learn Cmake instead of hacking my way around 20:56 Taoki Is there any good, logical reason why Minetest suddenly decided to require its own fork of irrlicht? Just noticed this now while testing a Git compile and it did surprise me. 20:57 Taoki I'd be happy if at least this meant better graphics / shaders are implemented. I'm assuming that's not the case though. 20:58 Taoki I'll have to redo the entire build setup someday considering this change. I cloned the new irrlicht repo for the time being. 21:00 pgimeno it's a necessary step for fixing stuff in irrlicht; check https://github.com/minetest/irrlicht/commits for what it has been done to it as of now 21:05 Taoki I see. I take it vanilla Irrlicht hasn't been as actively developed any more? 21:05 rubenwardy Taoki: it's required to fix bugs that we haven't been able to for a long time 21:05 rubenwardy Yeah, upstream Irrlicht is pretty dead 21:05 Taoki I see. That's sad. It makes sense then. 21:05 Taoki rubenwardy: Any chance we might see some graphical improvements this way? Possibly even performance. 21:06 pgimeno not exactly dead, but I'm not sure there's a 1.9 in sight 21:07 pgimeno latest commit is from march 19 21:07 Pexin "graphical improvements" often mean requiring more powerful hardware. one strength of MT right now is it runs on practically anything. 21:08 Pexin everything's still gonna be made out of cubes anyway :] 21:11 Taoki Pexin: True. Thinking of optional new features which don't need to be enabled if not supported (or are too slow). 21:12 pgimeno extending the coordinate range beyond 32K would be possible now (a lot of work, but possible) 21:13 MTDiscord eye candy is nice, however it is also nice to have the option to turn it off 21:17 appguru pgimeno: hash_node_position doesn't really allow it 21:19 pgimeno well, it can be doubled, doubles have 52 bits and that hash uses 48, so 1 bit per coordinate is possible 21:20 MTDiscord Yes 21:20 pgimeno and it can actually be tricked into using 21 bits per component 21:21 appguru if we start abusing the exponent... 21:21 pgimeno that's 1M in every direction 21:21 pgimeno I've done similar things, it works 21:23 pgimeno http://www.formauri.es/personal/pgimeno/pastes/objectkey.cc 21:25 pgimeno in lua it would involve some fiddling with ldexp 21:35 LoneWolfHT Is this check not needed since vcpkg no longer handles Irrlicht or am I missing something? https://github.com/LoneWolfHT/minetest/blob/76ee9784aa51536de75ffab68c84ca04b1cabb18/cmake/Modules/FindIrrlicht.cmake#L38-L42 22:23 MTDiscord I can help with CMake questions. I'm trying to work on it everywhere I can to get more experience. 22:25 MTDiscord I don't think you're missing anything there. 22:27 pgimeno sfan5: suggestions on #11333: copy_table -> shallow_copy_table; whitelist2 -> whitelist_tables; string metatables -> string metatable 22:27 ShadowBot pgimeno: Error: That URL raised 22:27 pgimeno oops #11133 22:27 ShadowBot https://github.com/minetest/minetest/issues/11133 -- Isolate library tables between sandbox and insecure env by sfan5 22:27 LoneWolfHT Yep that was the problem, now to add the jpeg dll... 22:28 Pexin "I've seen the future! O_O And we're still not done yet!" 22:28 pgimeno sfan5: looks fine to me but I haven't checked the stack positions 22:29 MTDiscord I was going to PR improvements to the find scripts but I didn't get much interest. 22:30 appguru Now that I think of it, proper mod security might actually be possible 22:30 appguru Just protect: 1. setfenv/getfenv, 2. minetest, 3. minetest.request_insecure_environment 22:31 appguru And make the insecure environment contain "secured" copies of everything 22:31 appguru So you could just do setfenv(1, insecure_env) and then comfortably operate in your insecure environment 22:32 pgimeno and avoid using the string metatable in the insecure env. 22:37 pgimeno sandboxing lua code is a minefield, it's too easy to miss a case and leave a security hole 22:37 MTDiscord True for plenty of scripting languages 22:41 pgimeno sfan5: setting getmetatable("").__metatable = false and keeping the metatable of string would allow using the string metatable in an insecure mod 22:44 pgimeno basically, keep the string table as a copy but the metatable of strings as the original, and protected from direct access via __metatable 22:45 pgimeno (it still needs banning debug.get/setmetatable in the secure env)