Time Nick Message 13:39 MTDiscord Why can't we have nice things? (like c++20) 13:43 celeron55_ are we tracking the status of C++20 on our target platforms at the moment? 13:43 grorp merging #14472 in 15 min (thanks sfan5) 13:43 ShadowBot https://github.com/minetest/minetest/issues/14472 -- TouchScreenGUI dehardcoding refactor by grorp 13:43 sfan5 i don't think so 13:43 sfan5 merging #14546 in 15m after grorp's merge 13:43 ShadowBot https://github.com/minetest/minetest/issues/14546 -- Fix missing DLLs in Windows build by sfan5 13:46 celeron55_ i think there's starting to be a high chance it's supported on each platform 13:47 celeron55_ one good thing is that centos was finally discontinued. it tended to be worse than debian 13:48 celeron55_ do we consider g++ 12 to have enough c++20 support? 13:48 sfan5 i think we first have to define what we event want c++20 for 13:48 sfan5 spans? 13:49 celeron55_ @herowl which features would you like to use from c++20? 13:52 celeron55_ debian stable seems to have gcc 12 and glibc 6, if i'm not mistaken 13:52 sfan5 wasn't there once some PR that formalized the "which platforms do we support" thing? 13:52 celeron55_ span is in glibc 7, altough i'm 55% certain i'm looking this up wrong 13:53 sfan5 that should be libstdc++, not glibc 13:53 celeron55_ wait 13:53 celeron55_ this was the llvm one, yes 13:54 sfan5 [2023-06-11 21:23:56] anyway for estimating which compilers or libraries we can require I have suggested in the past to check the oldest still-supported Ubuntu, Debian and maybe Fedora 13:54 celeron55_ https://gcc.gnu.org/projects/cxx-status.html#cxx20 13:54 MTDiscord At this point I wanted to use https://en.cppreference.com/w/cpp/string/basic_string/ends_with 13:54 celeron55_ https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2020 13:55 sfan5 we have str_ends_with for that in util/string.h 13:57 celeron55_ ok so anyway debian stable is at 12 for g++ and libstdc++, which makes sense (i'm sure differing versions don't go well together...) 14:00 celeron55_ it's difficult to figure out the details (like ends_with) but it seems to me debian is probably good here 14:00 celeron55_ ubuntu 22.04 LTS is at 11, which might be too old 14:02 celeron55_ and what's worse, the older ubuntu 20.04 LTS has official support until 2025. it uses gcc 9 14:03 celeron55_ fedora has a tight release schedule, i don't think it will ever be the bottleneck for us 14:03 nrz celeron55_ better to target C++17 first which should be fine, C++20 is not widely implemented 14:04 nrz C++17 permit to remove nearly all our porting around filesys 14:05 celeron55_ not everything out of c++17 is supported by gcc 9, but most things are 14:05 celeron55_ it would probably be doable now 14:05 nrz gcc 9 is the one in debian 11 right ? 14:05 celeron55_ actually, gcc 9 does support everything in c++17, but the standard library doesn't have everything 14:06 celeron55_ i'm looking at debian bookworm which is the stable now 14:06 celeron55_ whatever the number for that is. debian doesn't really show the number anywhere 14:07 celeron55_ and this debian has gcc 12 14:07 celeron55_ it's not the bottleneck 14:07 celeron55_ ubuntu LTS is the bottleneck 14:07 nrz if the issue is glibc, we have another problem then ๐Ÿ˜„ 14:07 celeron55_ ubuntu LTS has gcc 9 14:10 celeron55_ anyway, i agree with nrz about c++17. support for it is ok now. just make sure our CI does a build on ubuntu 20.04 LTS as that's the worst target platform 14:13 celeron55_ and yes, let me rephrase that: the "Worst C++ Target Platform of 2024" prize goes to Ubntu 20.04 LTS. go ahead and give them an applause 14:13 celeron55_ +u 14:18 nrz it's LTS - 2 this month , 24.04 will replace 22.04 14:19 celeron55_ doesn't change the fact that it's still supported by ubuntu until 2025 14:20 nrz right ๐Ÿ™‚ 14:55 sfan5 we're already on c++17 :) 15:43 pgimeno is Debian LTS unsupported by Minetest? 15:44 pgimeno Debian LTS has GCC 8.3 15:47 pgimeno support ends in June though 15:48 sfan5 it probably works on there 15:49 nrz sfan5, oh amazing, missed it 16:11 sfan5 https://www.minetest.net/downloads/ it's funny how nobody ever updated the BSD instructions to tell people to *not* install MTG 16:15 MTDiscord PR welcome? ๐Ÿ˜ 16:17 sfan5 always 16:17 sfan5 https://github.com/minetest/minetest.github.io 16:51 rubenwardy Why is Ubuntu 24.04 still shipping with 5.6? Who do we complain to about this https://packages.ubuntu.com/search?keywords=minetest 16:52 sfan5 https://tracker.debian.org/pkg/minetest -> maintainer: Debian Games Team 16:52 rubenwardy oh right 16:53 rubenwardy 5.8.0 is still in unstable, is it likely to miss 24.04 then 16:53 sfan5 s/likely/guaranteed/ 16:53 rubenwardy so Minetest is going to be 3.5 years outdated by the time we get to the next lts :/ 16:54 rubenwardy this will really drag out any renaming attempts 16:54 ROllerozxa has debian debundled MTG from their base minetest 5.8.0 package? 16:55 rubenwardy yes 16:55 rubenwardy and disabled the update checker 16:57 rubenwardy https://gist.github.com/rubenwardy/eb481b51a5e0574e5219b6967752bdb0 16:58 ROllerozxa huh. I'm surprised they didn't keep MTG just to be petty 16:59 rubenwardy what I want from a distro is a stable base/os and up to date applications. Having stale applications, especially when they're networked, is quite annoying 16:59 rubenwardy I suppose a 'stable' distro and flatpak is the most feasible way to achieve tihs 17:00 MTDiscord rubenwardy: I implemented most of your comments in #14543 17:00 ShadowBot https://github.com/minetest/minetest/issues/14543 -- WIP: Add gameid aliases by nauta-turbidus 17:00 MTDiscord I have problems with the updater though 17:00 rubenwardy nice! 17:00 ROllerozxa actually I checked the file list of the version of minetest-data in debian sid (5.8.0+dfsg+~1.9.0mt13-1) and there's both devtest and MTG in here 17:00 rubenwardy eek 17:02 ROllerozxa > Install games directory manually, as upstream's make install no longer does it. 17:02 ROllerozxa Debianโ„ข 17:02 rubenwardy oh I thought minetest-data is deprecated? 17:02 ROllerozxa minetest-data is where the common data is stored used for both the client and server package 17:02 rubenwardy grr 17:04 sfan5 projects usually deal with this by rejecting bug reports from debian users, because their application could be patched in many surprising ways :) 17:07 MTDiscord rubenwardy: I am not really sure how updater should deal with a rename. Should it just go through the list of aliases and remove any game folders going by those names? What if somebody manually created a folder named like that? 17:07 rubenwardy You don't need to read the aliases, just look at package.path 17:07 rubenwardy It will point to the old name 17:08 rubenwardy What Debian should do is move MTG to its own package, and at most Recommend it 17:15 ROllerozxa yeah 17:16 ROllerozxa I mean they could package however many games for debian as they want, just like how they package a bunch of ancient mods 17:16 sfan5 there we go: #14556 <- feedback wanted 17:16 ShadowBot https://github.com/minetest/minetest/issues/14556 -- Formalize OS support policy by sfan5 17:18 sfan5 I just realized we should exclude debian oldoldstable because that doesn't work even now 17:31 MTDiscord Updating CMake to a newer version for development is very straightforward. 17:32 sfan5 I know you can download a binary from the cmake website, are you getting at that? 17:32 MTDiscord I think there's a script that updates it for you, but I have not personally used it since last summer I think, so I don't remember the details. 17:34 MTDiscord I think it would interfere with any installed system version, so it's only useful on a development-specific environment. 17:34 MTDiscord Depending on your workflow I suppose that would be frustrating to have to update. 17:35 MTDiscord Not on the same level as compiling a newer version of GCC though. 17:38 sfan5 my opinion on downloading cmake binaries: sure it works but I feel it's bad practice. a mere build system is not something I'd want to download separately 17:40 * v-rob wants C++20 modules and C++23 import std; but only MSVC supports them fully 17:41 v-rob It's a strange day, when Microsoft supports the standards before GCC or Clang do 18:19 sfan5 also could someone take a look at #14534? It's not complex but also not simple enough that I want to merge it with 1 approval 18:19 ShadowBot https://github.com/minetest/minetest/issues/14534 -- [no sq] Profiler improvement + an optimization by sfan5 18:28 MTDiscord OK, I can't figure out how do I check if it should be renamed? Because it looks like after a rename update installs to the old folder, right? 18:31 MTDiscord @rubenwardy 18:33 rubenwardy get the folder name and compare it with the package name (after normalising to remove _game) 18:42 MTDiscord rubenwardy: is there a function to rename a directory? 18:42 MTDiscord or do I copy and remove the original dir? 18:43 MTDiscord as I don't see a move function either... 18:44 rubenwardy delete the old dir 18:45 rubenwardy mt already deletes the old dir when updating 18:45 rubenwardy so the behaviour should be to delete the correct old dir and install to the correct new dir 18:49 MTDiscord rubenwardy: ok, how do I test it? I guess we don't have such cases in CDB? 18:51 rubenwardy In the fetch_pkgs function in contentdb.lua, you could modify `aliases` of a specific game 18:51 rubenwardy Say you when the package.name == mineclone2, you could add package.aliases = { "foobar" }. Then locally rename the mineclone2 folder to foobar 18:51 MTDiscord alright 18:52 rubenwardy * aliases = { "Wuzzy/foobar" } 18:53 rubenwardy you'll also need to reduce `release` in the game.conf so it detects an update 18:58 MTDiscord works 19:59 MTDiscord why not use os.rename if it's just a rename? copying & deleting seems unnecessarily wasteful 20:00 MTDiscord Well, it deletes the old directory when updating and writes it anew anyway 20:00 MTDiscord so I leveraged that 20:00 MTDiscord (no extra copies and deletes) 20:00 MTDiscord ah okay 20:01 MTDiscord Everything is at https://github.com/minetest/minetest/pull/14543 if you want to take a look