Time Nick Message 01:32 MTDiscord does minetest.encode_png like the array or the raw string more? 01:33 MTDiscord Also if it's a raw string, how does one encode it? 02:01 Mantar welp, I confirmed that my segfault happens in luajit when forceloading, disabling luajit kept it from happening all afternoon, enabling it got me a crash right away. 02:03 Mantar now I guess I have to compile a new luajit with debug info, because this back trace is useless 02:05 Mantar clarification: I think it's when forceloading, but I know it's in luajit 02:13 Mantar nope, it's immediately after the force loading, when doing a minetest.serialize(). 11:59 MTDiscord Mantar: interesting. could you dump the data you're serializing via other means so that I can take a look? 13:10 sfan5 @jordan4ibanez string. if you pass an array it will be converted to a string before. 13:10 sfan5 basically you just throw the rgb values into string.char and build it like that 13:10 sfan5 (though don't forget to use the array + table.join trick for performance) 15:17 BluebirdGrey51 hello, can folks tell me if the webserver at http://arklegacy.duckdns.org port 80 is accessible? (note: HTTP, not HTTPS). I'm trying to debug a DNS problem players keep mentioning. People are still able to connect to the minetestserver (same address) and I can SSH into the machine, so I'm wondering if my router or ISP is blocking port 80. 15:18 MTDiscord works fine 15:18 ROllerozxa I can access your website from port 80 there 15:18 BluebirdGrey51 ok thanks 15:18 MTDiscord Is it because you're using port 80 and browsers are now trying to force HTTPS upgrade? 15:19 BluebirdGrey51 I have no idea about forced HTTPS 15:20 MTDiscord If you have an HTTP site but not an HTTPS site, then you really should have a fax number too. 15:20 ROllerozxa in firefox's "forced HTTPS" mode it will show you a warning if it doesn't support HTTPS and only HTTP, and allows you to continue to the HTTP site 15:20 MTDiscord https://cdn.discordapp.com/attachments/749727888659447960/1183428144645029888/image.png?ex=65884c58&is=6575d758&hm=902c9546080923e5b2f6b52e357f553dd94715fca150530ba11fecfeb5ca40b2& 15:21 MTDiscord Yeah, works okay if you hit the button (which of course 40% of users will do so blindly, while 60% of users will immediately complain that the "site is down" with no further detail) 15:21 ROllerozxa haha, yeah you're right about that though 15:21 ROllerozxa "scary warning? well, must be down then" 15:21 BluebirdGrey51 As the site doesn't accept login information I never bothered to get a certificate. HTTP has worked fine here for a long time, but recently I see users in chat talking to each other about how they have to add the IP address into their hosts file in order to connect. 15:22 MTDiscord Thanks sfan5, time to go crazy 15:23 sfan5 minetest doesn't care about SSL so that sounds like dns problems 15:28 MTDiscord Haha, I checked out DuckDNS, and in their FAQ: "Q: are you secure? A: our entire service is run over https with a valid 256bit signed ssl certificate." ... their certificate is an RSA 2048, which is equivalent to about 168 bits... 15:28 MTDiscord Saying that you're using a 256 bit certificate is basically one of the more succinct ways to tell people that you don't really understand TLS. 15:28 sfan5 they probably meant AES-256 or so 15:28 sfan5 (which is not a property of the certificate) 15:29 MTDiscord Right, they're probably using AES256, which is not a property of the certificate, and is basically pointless (it's about 40% slower than AES128 for the same security level). 15:30 MTDiscord AES256 only really exists because of Grover's Algorithm, but quantum computing isn't practical yet anyway, and then they reduced the rounds for AES256 compared to AES128, to try to compensate for that speed problem, but it makes 256's margins MUCH thinner, especially after some round reduction attacks were found like 5+ years ago or something. 15:31 MTDiscord Haha, also, the session I was using was actually doing AES128 GCM, so it seems like they actually ARE doing security competently, they're just talking about it wrong πŸ˜† 15:37 BluebirdGrey51 On another topic, I have a licensing question on the lapis lazuli mod. I posted here https://forum.minetest.net/viewtopic.php?t=12368 if anyone knows 15:40 MTDiscord Sounds like WTFPL is wrong then. 15:40 MTDiscord Some people put a LICENSE file into their repos that covers only SOME of the content, which is sloppy/misleading. 15:43 BluebirdGrey51 There's no LICENSE.txt. the license info in the repository's READMD.md appears well-written (to me) so its just that one line about "base code" that confuses me. 15:45 BluebirdGrey51 I don't see how "columns.lua" takes anything from the default stairs mod in Minetest, unless it is far back in history. 15:46 BluebirdGrey51 Given that the author put their textures (the hardest work) under WTFPL I would *almost* think that was their intention for the whole mod, and that they only used code from the stairs mod due to some necessity. But I'm not certain 15:49 MTDiscord It kinda matters what the author intended (in a "how would things work out in court" sense) but it also really doesn't matter (in a "how will the licensing chill downstream derivatives" sense). 15:50 MTDiscord If you want to use this for something serious (you don't really need to worry about licenses for purely personal uses, generally) then it might be worth looking at another fork. 15:50 MTDiscord The one on CDB at least seems to have passed the basic license audit. 15:54 BluebirdGrey51 I package the mod as part of musttest_game which is largely WFTPL/MIT/CC BY-SA/ZLIB or whatever; not sure how serious this counts as. Mostly I'm trying to get the licensing fixed in order that potential future downstreams don't have to deal with GPL-related problems. 15:56 MTDiscord Oh, yeah, you've already got copyleft in your textures from the sound of it, it'd be a shame to have your code infected too ... even though you already sound like you've got a fair amount of compound license chaos as it is πŸ˜… 15:57 MTDiscord If you're repackaging it as part of a derivative work, especially one that is not just a mod salad thrown together but actually has integration work done on it, then I'd count that as about as "serious" as it gets. 15:58 BluebirdGrey51 From my understanding most licenses are compatible with the spirit of MIT/CC BY-SA, and the LGPL at least doesn't "spread" like the GPL does. So atm it's only GPL that concerns me 16:00 MTDiscord Not sure what "the spirit of MIT/CC-BY-SA" is supposed to mean, because those licenses have 2 different spirits. One is a permissive and one is a copyleft. 16:01 MTDiscord The LGPL isn't a license that "doesn't spread", it's one that only spreads vertically but not horizontally. 16:02 BluebirdGrey51 If I understand you right, vertical spread is fine for my usecase 16:02 BluebirdGrey51 MIT is traditionally for code, CC-BY-SA is traditionally for art, but both are extremely permissive and neither spread. 16:03 MTDiscord You must be thinking of CC-BY, not CC-BY-SA, which is like the [L]GPL of the CC world. 16:03 MTDiscord The -SA part of CC-BY-SA is the vertical (at least) spread bit. 16:04 BluebirdGrey51 Not sure what you mean? A quick search says the main different is that SA means to give attribution, and license derivatives the same way (so vertically, which is fine) 16:05 BluebirdGrey51 Attribution should be given anyway in all cases, so it's not an issue 16:05 MTDiscord No, the SA has nothing to do with attribution, that's what the BY part is for. It'd be weird to see a pure CC-SA that doesn't require attribution (also I'm not sure if it would work legally?). 16:06 MTDiscord Anyway, if your licensing works for you then you should just say that, instead of "my licensing is XYZ and XYZ works for me" because if your licensing is NOT XYZ then you'll end up in an argument that has nothing to do with whether it works for you. 16:06 BluebirdGrey51 I'm looking at https://creativecommons.org/share-your-work/cclicenses/ So I'm wrong, BY is attribution. SA just means relicense with same terms. 16:08 MTDiscord Right. MIT/CC-BY are "same spirit" licenses. LGPL/CC-BY-SA are similarly "same spirit". MIT/CC-BY-SA are not quite. 16:08 MTDiscord In any event, it's pretty common to have looser code than asset licenses in this ecosystem anyway. 16:09 MTDiscord BY is indeed attribution, basically how you always say 'this is by < someone >' in normal sentence where you attribute it to said someone 16:09 MTDiscord SA is share-alike, hence relicense with the same terms 16:10 MTDiscord that's how I managed to remember them anyway 16:11 MTDiscord additionally, NC is non-commercial and ND is no-derivative 16:12 MTDiscord In any event, if they used GPL code, even if they don't give proper attribution or they get the license wrong, then it still GPL-infects the mod. If they use LGPL code, it still infects anything that includes it downstream. If they used LGPL code but say that it's GPL, then that might actually be sufficient to "upgrade" it to GPL, since IIRC it's common for GNU licenses to allow conversions in that direction, and this may include 16:12 MTDiscord "null derivatives." 16:13 MTDiscord So if you're trying to avoid a GPL infection I'd be cautious of that fork. 16:51 MTDiscord which function is table.join in lua? 16:55 calcul0n_ table.concat() i guess 17:43 BluebirdGrey51 So Minetest's node limit is 32k registered nodes. Do aliases eat into this limit? 17:44 BluebirdGrey51 By that I mean, if I have 32k nodes, and then I alias 1k of them, do I now have 31k nodes, or am I still at 32k? 17:44 MTDiscord no 17:45 MTDiscord It's the number of unique names that your world has ever had assigned an ID, right? 17:46 MTDiscord So if you replace a node definition with an alias later, you probably don't get that ID back. But if you put in an alias before the name was ever tied to an actual definition ... that's a good question. 17:46 MTDiscord if your aliasing something that existed before, that goes to the 32k pool of unknown ids 17:46 MTDiscord Oh, so that gets moved to the OTHER pool then? 17:46 MTDiscord yeah 17:47 MTDiscord you actually can break minetest if you have more than 32k of unknown ids 17:47 MTDiscord theres and issue for it 17:47 MTDiscord *an 17:47 MTDiscord https://github.com/minetest/minetest/issues/10916 17:48 MTDiscord How does ID:name mapping work anyway ... is it per mapblock? If you load a mapblock that was saved when the node WAS known but it is NOW unknown, does that mean those nodes will get assigned a different ID at save? 17:49 MTDiscord mapblocks have their own "palette" of IDs mapped to a nodestring. if a node in a mapblock is unknown, it will stay the same nodestring, it's not modified so it could come back if you e.g. reenabled a mod 17:50 MTDiscord side bar, the 32k limit wouldnt be much of an issue if something like judes pr got merged that allowed nodes to change textures/models 17:50 Desour the name_id mapping is global. and it is stored persistently in the map db per mapblock (only for the nodes that appear in the block though) 17:52 MTDiscord So there's a registered name/id mapping that I guess is defined by registrations and known at mod load time (but could change arbitrarily if mods are changed or loading/registration order changes) but then there's a separate pool that's only for runtime-learned mappings that miss the registered mapping lookup, and those have to be built up over time as mapblocks are loaded...? 17:53 ROllerozxa I believe there is both a global name-id mapping used in-memory (which is where the ID limit comes from) and a mapping for only nodes which exist in a mapblock, when it is saved to disk 17:54 MTDiscord I guess since MT still uses a content ID in memory and not just a name string for each node, you'd have to decode and map the mapblock stored ID to the shared global in-memory ID at load time, so even if each mapblock may have different sets of unknown nodes, you still need to allocate an ID globally to each one, you can't have per-mapblock mappings just for those... 17:54 MTDiscord this has been adopted: https://github.com/minetest/minetest/pull/13811 17:54 Desour AFAIK, unknown nodes use negative ids. not sure how it works for them though 17:54 Desour !title 17:54 MinetestBot No title found. 17:54 Desour #13811 17:54 ShadowBot https://github.com/minetest/minetest/issues/13811 -- Add node texture variants by sfence 17:56 BluebirdGrey51 Now there just needs to be a PR for node model/nodebox variants and we'll be all set. 18:01 BluebirdGrey51 So from the sound of it, it seems that aliasing a node doesn't recover its ID. This is necessary, obviously, for casual users who install and uninstall mods. I think however that for server operators, Minetest could really use a tool (perhaps a commandline switch built into the server) to scan a map and recover all unknown node IDs so they can be 18:01 BluebirdGrey51 reused. This would help the case where we need to migrate from a mod that registers many nodes, to an updated version that registers only a few nodes with many metadata variants. Otherwise those node IDs could never be recovered. 18:04 MTDiscord BluebirdGrey51: Are you sure that those node IDs are wasted "globally"? Wouldn't they just "wasted" per-mapblock? 18:05 MTDiscord nvm just read up on the history 18:06 BluebirdGrey51 I think only a core dev would know something that detailed. Digging around in various PRs/comments, people seem to have different ideas of how it works, and I don't know myself 18:06 MTDiscord IIRC there was some discussion on the discord side about a desire to have more options for compression migration, which would involve deserializing and reserializing mapblocks ... applying aliases and remappings and such could be done as part of a process like that. 18:06 MTDiscord I think the proper solution would probably be to bump the mapblock format, yeah. 18:11 MinetestBot 02[git] 04SmallJoker -> 03minetest/minetest: GUIFormspecMenu: Fix race condition between quit event and cleanup in… 13321bcf5 https://github.com/minetest/minetest/commit/321bcf5c4437e8ccc599be9004ad1590a6639c46 (152023-12-10T18:09:51Z) 18:11 Desour relevant: correctBlockNodeIds in mapblock.cpp 18:11 Desour it just generates new ids for unknown nodes 18:11 Desour and once the limit is reached, CONTENT_IGNORE is used as new id, and you'll get warnings 18:13 MinetestBot 02[git] 04srifqi -> 03minetest/minetest: Add sound volume when unfocused setting (#14083) 1355fafb7 https://github.com/minetest/minetest/commit/55fafb7d25fe5a127332e3e9f3e54e54ec1ec20c (152023-12-10T18:11:39Z) 18:13 MinetestBot 02[git] 04lhofhansl -> 03minetest/minetest: Avoid movement jitter (#13093) 13a98200b https://github.com/minetest/minetest/commit/a98200bb4c1edb2c982577fb01b30075665ab488 (152023-12-10T18:12:37Z) 20:38 Mantar luatic: that was one of the first things I checked, there was nothing different about the data, I save the same data all the time and only occasionally does it decide to segfault. 20:38 Mantar but it happens much more often if I have rspawn installed alongside my new spawn mod, presumably because they both do similar things. (the new spawn mod is intended to replace my crappy hacked-up rspawn that we were using on the server before) 21:50 MinetestBot 02[git] 04appgurueu -> 03minetest/minetest_game: Mapgen: Don't clear biomes, decorations and ores 130536755 https://github.com/minetest/minetest_game/commit/05367552d12729b3f7ac41f000b963059d65ddf4 (152023-12-10T21:49:51Z) 23:26 MTDiscord Does anyone know of a bug in MT or LuaJIT or something that would allow me to cause a sigsegv using mod code or a //lua command? I need to test my crash handler wrapper, specifically for segfault errors, but I really want to avoid going through the whole rigamarole of adding a segfault API to the Lua API...