Minetest logo

IRC log for #minetest-dev, 2019-12-20

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:24 nephele joined #minetest-dev
00:56 Exe_Virus joined #minetest-dev
01:12 calcul0n joined #minetest-dev
01:17 ssieb joined #minetest-dev
01:55 Exe_Virus rubenwardy are you around to help? I am trying to get Cross Compilation working for Linux->Win64
01:56 Exe_Virus I'm having issues with mutex and threads not being detected as part of std. I suspect it is an issue with the standard headers not being loaded correctly but I'm unsure
02:06 nephele joined #minetest-dev
03:03 nephele joined #minetest-dev
03:13 fluxflux_ joined #minetest-dev
04:12 Exe_Virus sfan5
04:12 Exe_Virus are you here?
04:13 Exe_Virus I need help with cross Compiling Minetest on Lubuntu to Win64
04:36 Exe_Virus I'm having issues with compiling minetest source using Mingw-64. It looks like you are using a custom version on your automated builds from gitlab that you host on your site. Did you run into similar problems?
04:38 Thomas-S joined #minetest-dev
04:38 Thomas-S joined #minetest-dev
06:53 pgimeno_ joined #minetest-dev
07:37 pyrollo joined #minetest-dev
07:47 ensonic joined #minetest-dev
08:37 ShadowNinja joined #minetest-dev
09:14 erlehmann joined #minetest-dev
09:18 erlehmann joined #minetest-dev
10:40 df458 joined #minetest-dev
10:46 erlehmann_ joined #minetest-dev
10:55 erlehmann joined #minetest-dev
11:12 Fixer joined #minetest-dev
11:41 proller joined #minetest-dev
11:58 ANAND Trivial PR: #9224
11:58 ShadowBot https://github.com/minetest/minetest/issues/9224 -- /privs: Delimit output list of privs with commas by ClobberXD
12:05 proller joined #minetest-dev
12:14 sfan5 ~tell Exe_Virus installing and using the g++-mingw-w64 package on Ubuntu should usually be fine, if not you can also download and use the same custom mingw version I do
12:14 ShadowBot sfan5: O.K.
12:35 Wuzzy joined #minetest-dev
12:43 HDMI_STECKDOSE joined #minetest-dev
12:45 tomraceror joined #minetest-dev
12:55 proller joined #minetest-dev
13:03 tomraceror joined #minetest-dev
13:05 Beton joined #minetest-dev
13:06 HDMI_STECKDOSE joined #minetest-dev
13:10 pmp-p joined #minetest-dev
13:21 pmp-p joined #minetest-dev
13:54 Darcidride joined #minetest-dev
14:00 CrazyDave joined #minetest-dev
14:03 tomraceror joined #minetest-dev
14:03 proller joined #minetest-dev
14:06 Exe_Virus joined #minetest-dev
14:08 Exe_Virus Thank you sfan5, I looked further into it and the default mingw-w64 package is built for non-posix threads, I.e. Win32 threads are there and std:thread is turned off. I'll be trying out a posix compiled version today, so let's hope that solves the issue
14:09 sfan5 why does ubuntu do that? ?
14:19 Exe_Virus Probably because most programmers use win32 threads if they ar writing windows programs
14:19 Exe_Virus Not that I'm complaining :) I like posix
14:32 tomraceror joined #minetest-dev
14:41 pyrollo <Exe_Virus> I confirm, choosing posix compiler (i686-w64-mingw32-g++-posix and i686-w64-mingw32-gcc-posix) works well.
14:45 pyrollo I'm having a look at guiFormSpecMenu.cpp and wondering if code could be dispatched in different files.
14:45 pyrollo This file is source of conflicts.
14:45 pyrollo Maybe having a sort of elements registry (map?), and having all parse functions in cpp files related to their element
14:45 Exe_Virus conflicts like what?
14:46 pyrollo All PRs dealing with gui modify this file.
14:46 pyrollo And there are many PRs dealing with gui
14:47 Exe_Virus Okay, that makes sense. Sorry I'm not that informed yet about this engine (but learning really fast, haha)
14:51 pyrollo There is a couple of huge cpp files in code that would deserve to be split.
14:52 Exe_Virus That much is true. Perhaps submit a PR with a broken up version of guiformspecmenu.cpp?
14:52 pyrollo Yes, I'd like to discuss of it before, this is a big work
15:09 Foz joined #minetest-dev
15:11 Exe_Virus Pyrollo, submit an Issue in the github and more core devs can discuss about the subject then
15:12 pyrollo Good idea
15:17 Exe_Virus Hey I finally got compilation for Windows on Linux to run. It's a simple configuration setting you change, so that mingw uses posix rather than win32. One line of code, dang it.
15:18 Exe_Virus I should submit a PR for the readme.txt so others can compile without visual studio successfully
15:20 pyrollo I guess it depends on your distro. But yes, it would be better to have an advice about compiling with posix enabled
15:21 Exe_Virus Ubuntu 16.04.... So yeah I think we should have a quick reminder about it, considering it's one of the most populat
15:22 pyrollo Before a recent PR on buildbot, I was not able to use it on Ubuntu
15:23 pyrollo (debian is using i586-mingw32msvc* and ubuntu has i686-w64-mingw32* stuff)
15:23 Exe_Virus Ah yeah, I was wondering about that
15:40 Exe_Virus Hey, so I'm now compiling minetest and realizing that compile time is a real pain in the butt. Why does it want to rebuild every object, rather than just the ones we make changes to>
15:44 nephele joined #minetest-dev
15:44 pyrollo Are you using the buildbot ?
15:44 Exe_Virus yes
15:44 pyrollo You don't need to
15:45 Exe_Virus ? what should I use instead?
15:45 pyrollo I mean it fetches sources from git and does cmake and make
15:45 Exe_Virus right, so can I just do "make" once it's been run once?
15:45 pyrollo Once you have done it you cat just go into _build and issue a make -j 5
15:45 pyrollo yup
15:45 Exe_Virus what about rebuilding?
15:45 Exe_Virus i.e. will it try to recompile everything by default?
15:46 pyrollo no, if you use make
15:46 Exe_Virus sweet. So after this first compile, I'm golden. Thank you
15:46 pyrollo The thing with the buildbot is that it does everything from scratch to package
15:46 pyrollo You're welcome
15:46 Exe_Virus Maybe I should put a tutorial in Minetest wiki
15:46 Exe_Virus For noobs like me
15:46 pyrollo Actually you can do all that buildbot does
15:47 Exe_Virus I know that
15:47 pyrollo manually I mean
15:47 Exe_Virus right
15:47 Exe_Virus I guess I could make a giant one liner for users to do a windows cross compile....
15:47 pyrollo Good thing with it, it fetches needed dlls, saving hours of searching over the web
15:48 pyrollo If you like huge lines :D
15:48 Exe_Virus I don't, but copy-paste is super easy for users
15:48 pyrollo Oh yes.
15:48 Exe_Virus The tutorial would be 1) Get a VM or run Linux
15:48 pyrollo I find buildbot is sort of easy with some explanations
15:48 Exe_Virus 2) Run this one line of code
15:49 Exe_Virus 2.5)Wait forever
15:49 pyrollo :D
15:49 Exe_Virus 3) Use make from now on
15:49 Exe_Virus Minetest Cross Compilation in 3 easy steps :)
15:49 pyrollo Actually, I'm working under Linux and have to provide windows executables some tiles
15:49 pyrollo times
15:50 pyrollo So I dont have step 1
15:50 Exe_Virus very true. I should say 2 Easy steps ;)
15:50 pyrollo Yeah !
15:50 pyrollo Then ... wine ... another adventure
15:51 Exe_Virus This assumes they are running windows, otherwise why would anyone want to do cross compilation?
15:51 Exe_Virus Cross Compile, then use Wine? What's the benefit over running native?
15:51 pyrollo If you want to provide a client to someone that is not able to compile it
15:51 pyrollo But it's a special use case
15:52 Exe_Virus Ah, I see. They just get the .exe and have win preinstalled
15:52 pyrollo yes
15:52 Exe_Virus [facepalm]
15:52 Exe_Virus It wouldn't be a problem if someone updated minetest in the repos.....
15:53 Exe_Virus then everyone would just: apt-get install minetest
15:58 Exe_Virus I'm running into a second issue with LC_Messages. Something to do with Language translations. Any suggestions besides a clean rebuild?
16:14 pyrollo Nothing in mind. What is the exact message ?
16:14 Exe_Virus In L_Client.cpp LC_MESSAGE was undefined
16:14 Exe_Virus (Don't have exact message because I shutdown and restated the compile
16:15 Exe_Virus (in about 6 minutes, I'll be at the same point 46%)
16:21 Exe_Virus char *locale = setlocale(LC_MESSAGES, NULL);
16:22 Exe_Virus /home/exevirus/minetest-win/minetest/src/script/lua_api/l_client.cpp: In static member function ‘static int ModApiClient::l_get_language (lua_State*)’:/home/exevirus/minetest-win/minetest/src/script/lua_api/l_client.cpp:233:27: error: ‘LC_MESSAGES’ was not declared in this scope char *locale = setlocale(LC_MESSAGES, NULL);
16:23 Exe_Virus From this Line of code: https://github.com/minetest/minetest/blob/b5f5e00b29beeda591f74540f74ab7b5dc41a4bb/src/script/lua_api/l_client.cpp#L231
16:24 pyrollo What change have you made ?
16:24 Exe_Virus None as of yet
16:24 pyrollo Mmm
16:25 pyrollo I never had this
16:25 Exe_Virus LC_MESSAGES is a preprocessor define right?
16:25 pyrollo Looks like
16:25 Exe_Virus it's a getttext local environment variable
16:26 pyrollo You managed to compile using buidbot and try to use make then ?
16:26 pyrollo And got that message ?
16:26 Exe_Virus nope. Just straight up the first buildbot compile
16:26 Exe_Virus I think my system doesn't have LC_MESSAGES defined
16:26 Exe_Virus https://www.gnu.org/software/gettext/manual/html_node/Locale-Environment-Variables.html
16:32 Exe_Virus aha
16:32 Exe_Virus there is a command for it. locale
16:33 Exe_Virus But it shows LC_MESSAGE as set already..... hmmmmmm
16:33 Exe_Virus Can you run "locale" on your terminal and report back what LC_MESSAGES is set to pyrollo?
16:34 pyrollo Here is the result  :
16:34 pyrollo https://framabin.org/p/?87c4bec612b3325b#tA6lKUL3tEIyu8VextkgjMLXZL5QoYZ/IJ2JhZ+H/eM=
16:35 pyrollo (Actually French settings)
16:35 Exe_Virus makes sense
16:35 p_gimeno LC_MESSAGES defaults to LANG if defined I think
16:35 Exe_Virus okay, well ours look identical, except mine is en_US.utf-8
16:36 pyrollo That's funny, I did not even noticed that my compiled mintest was in french :D
16:37 Exe_Virus :D Now to figure out why mine is failing.... I could always just set my language to french :)
16:37 pyrollo Ahaha
16:39 jrmu left #minetest-dev
16:39 jrmu joined #minetest-dev
16:43 nephele joined #minetest-dev
16:48 HDMI_STECKDOSE joined #minetest-dev
16:48 tomraceror joined #minetest-dev
16:48 nobody joined #minetest-dev
16:52 nephele_ joined #minetest-dev
16:53 Exe_Virus Ha! I got a fix working I think. Changed LC_MESSAGES to LC_ALL, so far so good
16:53 Exe_Virus Though, that is an oddly specific change.
16:54 nephele_ joined #minetest-dev
17:07 Exe_Virus And, no Linking fails entirely
17:16 Exe_Virus pyrollo I am now having linking issues. I.e. It cannot find std::Thread again
17:21 Exe_Virus Oh Dang, found some info on the exact issues I'm seeing: https://github.com/meganz/mingw-std-threads
17:25 pyrollo I Dont remember having issues with linking. But you may need some extra Dlls due to mingw
17:25 Exe_Virus Oh, you aren't using mingw?
17:25 pyrollo libstdc++-6.dll, libgcc_s_sjlj-1.dll and libwinpthread-1.dll
17:26 Exe_Virus How would those help with linking stage?
17:26 Exe_Virus Are those for runtime?
17:26 pyrollo Yes I am but I did not had any link issues as far as I remember (but I have a poor memory)
17:26 pyrollo For runtime. They are in your mingw32 dirs
17:28 Exe_Virus Right, I get that
17:28 Exe_Virus now to figure out the issue with linking
17:37 ensonic joined #minetest-dev
17:39 Krock joined #minetest-dev
17:39 Exe_Virus Aha, My linker is using mthreads anyways.... gr.....
17:43 Foz joined #minetest-dev
17:45 Exe_Virus So.... to get this straight, Somehow in the cmake file, there is a step that uses mthreads by default and I need to figure out how this happens using the buildbot so others don't have this problem
18:00 Krock will merge #8616 and #9224 (both trivial) in 15 minutes
18:01 ShadowBot https://github.com/minetest/minetest/issues/8616 -- Fix the player information version_string return value by Lejo1
18:01 ShadowBot https://github.com/minetest/minetest/issues/9224 -- /privs: Delimit output list of privs with commas by ClobberXD
18:11 nephele joined #minetest-dev
18:15 Krock merging
18:40 nepugia joined #minetest-dev
19:54 Exe_Virus sfan5 do you run ubuntu or debian for your cross compilation? what version?
19:54 sfan5 neither
19:54 Exe_Virus linux mint?
19:54 sfan5 that's a debian derivative
19:54 Exe_Virus let me rephrase: what do you use for your cross compilation?
19:55 Exe_Virus I've gone far down the rabbit hole with ubuntu and have finally given up after linker issues deep in make
19:55 sfan5 arch linux but that's not relevant to the success you should be having
19:55 Exe_Virus It might be
19:55 sfan5 the travis builds run on ubuntu 14.04 (?) with the same setup I use on my machine
19:55 Exe_Virus the ones in buildbot?
19:56 sfan5 yes
19:56 sfan5 gitlab builds run on 16.04 and also use the buildbot
19:56 Exe_Virus hurm
19:57 Exe_Virus I just gave up on using 16.04....
19:57 Exe_Virus too many issues with mingw-w64 not wanting to use pthreads
19:57 Exe_Virus is there a special setting you use to ensure pthreads is used for cross compilation?
19:58 sfan5 the problem won't be which distro you are using but rather the toolchain (mingw)
19:58 sfan5 if I understand the pthread situation correctly then: either your mingw is compiled with pthreads and it will work automatically OR it isn't and you can't just "enable" the support either
19:58 paramat joined #minetest-dev
19:58 sfan5 have you tried using the same mingw toolchain as the buildbot?
19:58 Exe_Virus yes
19:59 Exe_Virus though I am uncertain which version
19:59 Exe_Virus basically mingw is packaged as both versions for 64 bit.
20:00 sfan5 wait that wasn't right
20:00 sfan5 have you tried using the same mingw toolchain as travis uses for the buildbot?
20:00 sfan5 because that isn't the one you find in ubuntu repositories
20:00 Exe_Virus yes. x86_64-mingw32-g++
20:00 Exe_Virus Oh wait
20:00 Exe_Virus where does travis get that toolchain?
20:00 Exe_Virus Your hosted site?
20:01 sfan5 https://github.com/minetest/minetest/blob/master/util/travis/before_install.sh#L19 yes
20:01 Exe_Virus Okay that makes more sense.
20:02 Exe_Virus I'm sorry to ask.... but could you make a pastebin or type here the order of execution for building with the buildbot settings?
20:02 Exe_Virus i.e 1) before_install.sh
20:02 Exe_Virus 2)buildwin64
20:02 Exe_Virus or something like that. I have lost about 18 hours now on this project......
20:03 sfan5 https://travis-ci.org/minetest/minetest/jobs/627834483 you can see what happens here
20:03 sfan5 yes, what you listed is roughly what happens
20:04 Exe_Virus I actually tried following the job line by line (did you know there's like 3000+ frickin lines....). But I obviously must have missed something
20:04 sfan5 travis sets some environment variables (which the script rely on) so that might've been it
20:05 Exe_Virus Like LC_Message?
20:06 sfan5 maybe but that's not related to the compiler error you got
20:06 Exe_Virus gotcha, okay. (I did get that error, but fixed it later by modifying the code)
20:08 paramat !tell erlehmann "6 pyramides centered on 0,0,0. in each pyramid only one axis of gravity works" yes that seems best. only 6 axis-aligned gravity directions, because the world is cube-based. this game does it https://www.youtube.com/watch?v=qPqezDSalB4
20:08 ShadowBot paramat: O.K.
20:18 df458 joined #minetest-dev
20:27 df458 joined #minetest-dev
21:02 Exe_Virus Hey Sfan5 thank you for the help. I understand now that it was purely toolchain issues. Someday, I expect we may want to upgrade past that version of mingw, however. What is the plan for that day?
21:04 sfan5 I pull a newer version of mingw, compile and upload it for travis
21:04 Exe_Virus any special flags for that compile?
21:04 sfan5 nothing out of the ordinary
21:05 sfan5 x86_64-w64-mingw32-gcc -v will tell you
21:05 Exe_Virus great, I blame Ubuntu Repos :)
21:05 Exe_Virus Thank you!
21:38 Miner_48er joined #minetest-dev
21:49 tomraceror joined #minetest-dev
22:08 paramat joined #minetest-dev
22:41 ANAND joined #minetest-dev

| Channels | #minetest-dev index | Today | | Google Search | Plaintext