TrenchBroom v2020.1 on Fedora 32 Workstation Edition
Compilation succeeds and produces a working binary.
Install distribution dependencies, then fetch sources and try to compile:
$ git clone sources
$ git submodule update --init --recursive
$ git checkout tags/v2020.1 -b qt-build
$ mkdir build && cd build
$ cmake ..
$ make -j25
[ 98%] Built target dump-shortcuts
[ 99%] Generating gen-manual/index.html
[WARNING] Duplicate identifier 'keyboard_shortcuts' at line 1112 column 1
[ 99%] Generating gen-manual/default.css, gen-manual/shortcuts_helper.js
[ 99%] Generating gen-manual/shortcuts.js
make[2]: *** [app/CMakeFiles/TrenchBroom.dir/build.make:103: app/gen-manual/shortcuts.js] Illegal instruction (core dumped)
make[2]: *** Deleting file 'app/gen-manual/shortcuts.js'
make[1]: *** [CMakeFiles/Makefile2:1804: app/CMakeFiles/TrenchBroom.dir/all] Error 2
make: *** [Makefile:172: all] Error 2
I'm probably doing something wrong or missing something. This is a pretty clean Fedora install I only did few weeks ago. However I'm unable to figure this one out. It's probably about lack of specific build flags or maybe there is something weird with dump-shortcuts or something.
I tried to Google this issue, but all I saw was stuff about nodejs crashing due to some CPU instruction not being present in certain very old AMD CPUs. However I have AMD R9 3900X so that shouldn't be the issue. Also I didn't have any trouble compiling Trenchbroom's older releases on AMD FX-8320 last summer.
Edit: Added the missing checkout I did. I think it was in this order. I'm starting to suspect that this is where it went wrong and I received wrong submodule commit and then dump-shortcuts used it and something blew up even if the compiling of dump-shortcuts went alright.
Edit 2: Well, nope. I did get different commit of vecmath (7902d5f5603e86f38b60b418302823a6276c1594) but even after make clean and then trying again with make -j25 it still fails the same way.
$ git clone sources
$ git submodule update --init --recursive
$ git checkout tags/v2020.1 -b qt-build
$ mkdir build && cd build
$ cmake ..
$ make -j25
That looks odd to me. It definitely not(?) following the Build.md or maybe the use of checkout tags is just confusing me :-p
Try compiling current master from git like this with the commands I use based on the Build.md:
git clone --recursive https://github.com/kduske/TrenchBroom.git
cd TrenchBroom
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --target TrenchBroom
You will also get the added benefit of all the updates and fixes since version 2020.1 was released.
Could you post logs with make VERBOSE=1?
Could you post logs with
make VERBOSE=1?
Sure. I'll cut to the relevant part but if you want the full build log, I can deliver that too. The problem is that dump-shortcuts compiles just fine but it gets killed in action. If you want to see the core dump file I can provide that as well. I haven't installed almost any debuginfo packages, so the gdb output might not be as complete as you might hope.
Here's the make's verbose output:
[ 97%] Built target common-benchmark
make -f dump-shortcuts/CMakeFiles/dump-shortcuts.dir/build.make dump-shortcuts/CMakeFiles/dump-shortcuts.dir/depend
make[2]: Entering directory '/home/antti/Git/TrenchBroom-Qt/build'
cd /home/antti/Git/TrenchBroom-Qt/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/antti/Git/TrenchBroom-Qt /home/antti/Git/TrenchBroom-Qt/dump-shortcuts /home/antti/Git/TrenchBroom-Qt/build /home/antti/Git/TrenchBroom-Qt/build/dump-shortcuts /home/antti/Git/TrenchBroom-Qt/build/dump-shortcuts/CMakeFiles/dump-shortcuts.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/antti/Git/TrenchBroom-Qt/build'
make -f dump-shortcuts/CMakeFiles/dump-shortcuts.dir/build.make dump-shortcuts/CMakeFiles/dump-shortcuts.dir/build
make[2]: Entering directory '/home/antti/Git/TrenchBroom-Qt/build'
make[2]: Nothing to be done for 'dump-shortcuts/CMakeFiles/dump-shortcuts.dir/build'.
make[2]: Leaving directory '/home/antti/Git/TrenchBroom-Qt/build'
[ 98%] Built target dump-shortcuts
make -f app/CMakeFiles/TrenchBroom.dir/build.make app/CMakeFiles/TrenchBroom.dir/depend
make[2]: Entering directory '/home/antti/Git/TrenchBroom-Qt/build'
[ 99%] Generating gen-manual/index.html
cd /home/antti/Git/TrenchBroom-Qt/build/app && /usr/bin/pandoc --standalone --toc --toc-depth=2 --template /home/antti/Git/TrenchBroom-Qt/app/resources/documentation/manual/template.html --from=markdown --to=html5 -o /home/antti/Git/TrenchBroom-Qt/build/app/gen-manual/index.html.tmp /home/antti/Git/TrenchBroom-Qt/app/resources/documentation/manual/index.md
cd /home/antti/Git/TrenchBroom-Qt/build/app && /usr/bin/cmake -DINPUT="/home/antti/Git/TrenchBroom-Qt/build/app/gen-manual/index.html.tmp" -DOUTPUT="/home/antti/Git/TrenchBroom-Qt/build/app/gen-manual/index.html.tmp" -P /home/antti/Git/TrenchBroom-Qt/build/app/AddVersionToManual.cmake
cd /home/antti/Git/TrenchBroom-Qt/build/app && /usr/bin/cmake -DINPUT="/home/antti/Git/TrenchBroom-Qt/build/app/gen-manual/index.html.tmp" -DOUTPUT="/home/antti/Git/TrenchBroom-Qt/build/app/gen-manual/index.html.tmp" -P /home/antti/Git/TrenchBroom-Qt/app/cmake/TransformKeyboardShortcuts.cmake
cd /home/antti/Git/TrenchBroom-Qt/build/app && /usr/bin/cmake -E copy /home/antti/Git/TrenchBroom-Qt/build/app/gen-manual/index.html.tmp /home/antti/Git/TrenchBroom-Qt/build/app/gen-manual/index.html
cd /home/antti/Git/TrenchBroom-Qt/build/app && /usr/bin/cmake -E remove /home/antti/Git/TrenchBroom-Qt/build/app/gen-manual/index.html.tmp
[ 99%] Generating gen-manual/default.css, gen-manual/shortcuts_helper.js
cd /home/antti/Git/TrenchBroom-Qt/app/resources/documentation/manual && /usr/bin/cmake -E copy_if_different default.css shortcuts_helper.js /home/antti/Git/TrenchBroom-Qt/build/app/gen-manual
[ 99%] Generating gen-manual/shortcuts.js
cd /home/antti/Git/TrenchBroom-Qt/build/app && ../dump-shortcuts/dump-shortcuts /home/antti/Git/TrenchBroom-Qt/build/app/gen-manual/shortcuts.js
make[2]: *** [app/CMakeFiles/TrenchBroom.dir/build.make:103: app/gen-manual/shortcuts.js] Illegal instruction (core dumped)
make[2]: *** Deleting file 'app/gen-manual/shortcuts.js'
make[2]: Leaving directory '/home/antti/Git/TrenchBroom-Qt/build'
make[1]: *** [CMakeFiles/Makefile2:1804: app/CMakeFiles/TrenchBroom.dir/all] Error 2
make[1]: Leaving directory '/home/antti/Git/TrenchBroom-Qt/build'
make: *** [Makefile:172: all] Error 2
Here's the backtrace from gdb:
(gdb) bt
#0 0x000000000089a156 in std::__copy_move<false, true, std::random_access_iterator_tag>::__copy_m<TrenchBroom::PreferenceBase*>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**) (__result=0x2593000, __last=0x7ffc214f8c28, __first=0x7ffc214f8920) at /usr/include/c++/10/bits/stl_algobase.h:560
#1 std::__copy_move_a2<false, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**)
(__result=0x2593000, __last=0x7ffc214f8c28, __first=0x7ffc214f8920) at /usr/include/c++/10/bits/stl_algobase.h:472
#2 std::__copy_move_a1<false, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**)
(__result=0x2593000, __last=0x7ffc214f8c28, __first=0x7ffc214f8920) at /usr/include/c++/10/bits/stl_algobase.h:506
#3 std::__copy_move_a<false, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**)
(__result=0x2593000, __last=0x7ffc214f8c28, __first=0x7ffc214f8920) at /usr/include/c++/10/bits/stl_algobase.h:513
#4 std::copy<TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**)
(__result=0x2593000, __last=0x7ffc214f8c28, __first=0x7ffc214f8920) at /usr/include/c++/10/bits/stl_algobase.h:569
#5 std::__uninitialized_copy<true>::__uninit_copy<TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**) (__result=0x2593000, __last=0x7ffc214f8c28, __first=0x7ffc214f8920) at /usr/include/c++/10/bits/stl_uninitialized.h:109
#6 std::uninitialized_copy<TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**)
(__result=0x2593000, __last=0x7ffc214f8c28, __first=0x7ffc214f8920) at /usr/include/c++/10/bits/stl_uninitialized.h:150
#7 std::__uninitialized_copy_a<TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**, TrenchBroom::PreferenceBase*>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**, std::allocator<TrenchBroom::PreferenceBase*>&) (__result=0x2593000, __last=0x7ffc214f8c28, __first=0x7ffc214f8920) at /usr/include/c++/10/bits/stl_uninitialized.h:325
#8 std::vector<TrenchBroom::PreferenceBase*, std::allocator<TrenchBroom::PreferenceBase*> >::_M_range_initialize<TrenchBroom::PreferenceBase* const*>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, std::forward_iterator_tag) (__last=0x7ffc214f8c28, __first=0x7ffc214f8920, this=0xaf7d60 <TrenchBroom::Preferences::staticPreferences()::list>) at /usr/include/c++/10/bits/stl_vector.h:1585
#9 std::vector<TrenchBroom::PreferenceBase*, std::allocator<TrenchBroom::PreferenceBase*> >::vector(std::initializer_list<TrenchBroom::PreferenceBase*>, std::allocator<TrenchBroom::PreferenceBase*> const&)
(__a=..., __l=..., this=0xaf7d60 <TrenchBroom::Preferences::staticPreferences()::list>) at /usr/include/c++/10/bits/stl_vector.h:629
#10 TrenchBroom::Preferences::staticPreferences() () at /home/antti/Git/TrenchBroom-Qt/common/src/Preferences.cpp:293
#11 0x00000000008945bc in TrenchBroom::PreferenceManager::invalidatePreferences() (this=this@entry=0xaf5c60 <TrenchBroom::PreferenceManager::instance()::prefs>)
at /home/antti/Git/TrenchBroom-Qt/common/src/PreferenceManager.cpp:397
#12 0x0000000000897163 in TrenchBroom::PreferenceManager::loadCacheFromDisk() (this=0xaf5c60 <TrenchBroom::PreferenceManager::instance()::prefs>)
at /home/antti/Git/TrenchBroom-Qt/common/src/PreferenceManager.cpp:384
#13 0x0000000000897bfc in TrenchBroom::PreferenceManager::PreferenceManager() (this=0xaf5c60 <TrenchBroom::PreferenceManager::instance()::prefs>)
at /home/antti/Git/TrenchBroom-Qt/common/src/PreferenceManager.cpp:265
#14 0x0000000000897d4c in TrenchBroom::PreferenceManager::instance() () at /home/antti/Git/TrenchBroom-Qt/common/src/PreferenceManager.cpp:278
#15 0x00000000006954fa in TrenchBroom::View::Action::keySequence() const (this=0x25f0730) at /home/antti/Git/TrenchBroom-Qt/common/src/View/Actions.cpp:111
#16 0x00000000004aef29 in TrenchBroom::View::PrintMenuVisitor::visit(TrenchBroom::View::MenuActionItem const&) (this=<optimized out>, item=...) at /home/antti/Git/TrenchBroom-Qt/dump-shortcuts/src/Main.cpp:65
#17 0x0000000000693fa8 in TrenchBroom::View::Menu::visitEntries(TrenchBroom::View::MenuVisitor&) const (this=this@entry=0x2647ea0, visitor=...) at /usr/include/c++/10/bits/unique_ptr.h:420
#18 0x00000000004aea39 in TrenchBroom::View::PrintMenuVisitor::visit(TrenchBroom::View::Menu const&) (this=0x7ffc214f90e0, menu=...) at /home/antti/Git/TrenchBroom-Qt/dump-shortcuts/src/Main.cpp:109
#19 0x0000000000694009 in TrenchBroom::View::Menu::accept(TrenchBroom::View::MenuVisitor&) const (visitor=..., this=<optimized out>) at /home/antti/Git/TrenchBroom-Qt/common/src/View/Actions.cpp:202
#20 TrenchBroom::View::ActionManager::visitMainMenu(TrenchBroom::View::MenuVisitor&) const (this=this@entry=0xaf5400 <TrenchBroom::View::ActionManager::instance()::instance>, visitor=...)
at /home/antti/Git/TrenchBroom-Qt/common/src/View/Actions.cpp:293
#21 0x00000000004a14ea in TrenchBroom::View::printMenuShortcuts (out=...) at /home/antti/Git/TrenchBroom-Qt/dump-shortcuts/src/Main.cpp:126
#22 main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/antti/Git/TrenchBroom-Qt/dump-shortcuts/src/Main.cpp:213
So what I suggested didn't work either?
Thanks, I've never seen a crash here so will fire up a fedora 32 install and see if I can reproduce... there are a lot of static initializers involved in the preferences system so it's possible we're doing something illegal.
I ran this modified version of your commands on a fresh Fedora 32 install (in Virtualbox) and it builds successfully, no segfault in dump-shortcuts.
git clone https://github.com/kduske/TrenchBroom && cd TrenchBroom
git submodule update --init --recursive
git checkout tags/v2020.1 -b qt-build
mkdir build && cd build
cmake ..
make -j25
(This is not a correct build procedure, you need to run git submodule update --init --recursive after switching branches, but it still compiles anyway.)
Not sure what to suggest next.
I guess, make sure you can compile and run other C++ software. The CPU/motherboard might not support Fedora 32.
Does the precompiled 2020.1 binary from here work? https://github.com/kduske/TrenchBroom/releases/tag/v2020.1
Hi, sorry, I didn't have time yesterday to reply so I would have appreciated if this issue had stayed open little longer. But I understand that with as many issues you get you want to be able to close them as fast as possible. At the moment I cannot test the suggestions because I'm not at home but I'll get to home maybe in 6 to 8 hours. I will then test these suggestions.
That looks odd to me. It definitely not(?) following the Build.md or maybe the use of checkout tags is just confusing me :-p
True, I didn't read the Build.md since I didn't know it existed. I did what I usually do and that is essentially the same thing. I'll try once I get home at least just to see if it makes any difference.
You will also get the added benefit of all the updates and fixes since version 2020.1 was released.
I'd rather get the stable upstream release and not potentially unstable one. That's a benefit in my opinion. Besides the point is to be able to compile the numbered stable releases on my own system.
So what I suggested didn't work either?
Sorry but I didn't try since it's essentially the same thing I already did. But I'll test once I get home. Albeit I doubt it will change anything.
I ran this modified version of your commands on a fresh Fedora 32 install (in Virtualbox) and it builds successfully, no segfault in dump-shortcuts.
Ok, I'll test it in a virtual machine to see if that makes any difference.
(This is not a correct build procedure, you need to run
git submodule update --init --recursiveafter switching branches, but it still compiles anyway.)
Oh, yes, that's true. I wrote them in wrong order by accident but I did fix it afterwards and that didn't change the outcome. I mentioned this in an edit I did.
I guess, make sure you can compile and run other C++ software. The CPU/motherboard might not support Fedora 32.
I can compile other major Qt/C++ projects without issues on my system. If anything there could be some flag or optimisation which throws this off due to newer C++ libraries which ship with Fedora 32. However that's hard to say for certain right now. You said that you were able to compile it so there shouldn't be any issues here either. But I'll do a fresh git clone and follow your instructions and see what happens later today. And I'll try to compile it in virtual machine in Fedora and other distributions if it still fails.
Does the precompiled 2020.1 binary from here work? https://github.com/kduske/TrenchBroom/releases/tag/v2020.1
Yes, the binary works magnificently well but that isn't the point. I'm trying to get Flatpak of Qt based Trenchbroom built here. I should be able to get compiling 2020.1 on just my own machine without using the Flatpak's build/development environment working before anything else. After that I can start making the necessary changes to TrenchBroom's Flatpak recipe and move it to on top of Qt/KDE platform Runtime and SDK.
Not sure what to suggest next.
I understand. But let me try these things and get back to you guys later.
Edit: I probably should explain that -j flag for GNU Make means "number of jobs" and since I have a CPU with 24 threads I can parallelize the building of TB very efficiently like this. People recommend CPU thread count plus one as the "jobs" number.
Edit 2: I do the checkout of tag because the packaged tar.gz releases understandably don't contain the .git directory but also lack the required sub-modules so those are effectively borked and not easy to build unless I'm missing something. I haven't been able to get proper sleep these past few weeks so maybe I'm doing something wrong.
Sure, I can leave it open until we run out of ideas.
FWIW I tested with a hardware install of Fedora 32, with all updates installed, on my ryzen 2700x system yesterday, but again had no issue.
Also I added the list of dependencies to dnf install to the Build.md, in case it saves time for testing in a vm :)
https://github.com/kduske/TrenchBroom/blob/master/Build.md#project-dependencies-1
I'm trying to get Flatpak of Qt based Trenchbroom built here.
Ah cool :)
Hello,
I'm home now and did some testing. First of all I tried your Build.md with new clone into empty directory but the result was the same as the other day.
I also ran your dependencies list to see if anything was missing. Turns out I didn't have ninja-build, so I installed that package but CMake still wanted to use GNU Make. I added -GNinja to use Ninja but the compilation again failed into the same issue where it compiled dump-shortcuts but when it tries to generate the document pages dump-shortcuts gets killed by an error.
Then I installed KVM and Virt-Manager and got Fedora 32 Workstation 8 thread virtual machine off the ground. Without installing any updates, just the dependencies you've listed and in addition C development tools group as well as RPM development tools group using dnf group install I went and did the following...
git clone --recursive --branch v2020.1 --depth 1 https://github.com/kduske/TrenchBroom.git TrenchBroom-Qt
cd TrenchBroom-Qt
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -GNinja
cmake --build . --target TrenchBroom --parallel 9
and it did successfully compiled TrenchBroom! :+1:
I was able to run cpack -G RPM as well and got a working release RPM. I installed it into the virtual machine and it works or at least I was able to see the "Welcome to TrenchBroom". I need to copy it out of the VM to see if it is an actual working Release binary. I also tried running it with GNU Make and that also successfully compiled the project.
I checked the /proc/cpuinfo and VM thinks that I have AMD Epyc Processor (with IBPB) while my actual system correctly reports that I have AMD Ryzen 9 3900X. I'm running updates now to see if anything will change when I do them.
Edit: I installed the updates and compiled again in VM and it still succeeds in compilation. However the binaries it produces are bad. Inside the VM I can get into the Welcome to TB window but if I try to create a new map for either Quake 1 and DK, TB will crash.
Cool!
Btw since it's crashing on a static const std::vector constructor, here's a simple test program to try:
#include <string>
#include <vector>
#include <cstdio>
int main(int argc, char **argv){
static const std::vector<std::string> test { "a", "b", "c" };
for (const auto& str : test) {
printf("%s\n", str.c_str());
}
return 0;
}
g++ -std=c++17 -o test test.cpp && ./test
should work fine..
Also lastly I found TB only works on Fedora if I launch the X11 version of Gnome, in Wayland, the welcome screen works but it crashes when the map window opens. I did a quick search and it sounds like GLEW + wayland can have issues.
Ok, I'll try that. Just a moment.
Since I made the guess that my problems on the host system are caused by some library or something I tried using LLVM/Clang since I have that installed as well which uses different set of stuff. So I did:
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
And tried compiling with the same set of commands as above but with --parallel 25 and it worked and successfully built TrenchBroom! :tada:
I was also able to use CPack to generate RPM out of it. However it has almost same if not the exactly same issue as in VM where I can get to the "Welcome to the TrenchBroom" window but as soon as I create a new map and 3D view is supposed to initialise the program crashes and produces a core dump. :facepalm:
Edit: Yes, your vector container test works as intended and prints a, b and c on newlines into terminal.
Edit 2: Thanks for tell me to try X11. I'm in Wayland at the moment.
Edit 3: Oh wow, the Trenchbroom launched perfectly fine the editor view in VM as soon as I switched it to use X11. I'll logout and login on my host machine to see if it's also the issue here.
Edit 4: On host machine I was already using X11 and the binary I built using LLVM/Clang crashes in both X11 and Wayland Gnome. I need to compile the debug version using Clang but here's the initial stack trace from Xorg Gnome:
Stack trace of thread 33545:
#0 0x000000000061abdd _ZN2vmmlIfLm4ELm4ELm4EEENS_3matIT_XT0_EXT2_EEERKNS1_IS2_XT0_EXT1_EEERKNS1_IS2_XT1_EXT2_EEE (trenchbroom + 0x21abdd)
#1 0x00000000006187c8 _ZNK11TrenchBroom8Renderer6Camera9unprojectEfff (trenchbroom + 0x2187c8)
#2 0x0000000000618745 _ZNK11TrenchBroom8Renderer6Camera7pickRayEii (trenchbroom + 0x218745)
#3 0x000000000079a2dc _ZThn216_NK11TrenchBroom4View9MapView3D16doGetPickRequestEii (trenchbroom + 0x39a2dc)
#4 0x0000000000814eb7 _ZN11TrenchBroom4View16ToolBoxConnector16updatePickResultEv (trenchbroom + 0x414eb7)
#5 0x000000000079f0c3 _ZN11TrenchBroom4View11MapViewBase29createActionsAndUpdatePickingEv (trenchbroom + 0x39f0c3)
#6 0x000000000079943a _ZN11TrenchBroom4View9MapView3DC2ESt8weak_ptrINS0_11MapDocumentEERNS0_14MapViewToolBoxERNS_8Renderer11MapRendererERNS0_16GLContextManagerEPNS_6LoggerE (trenchbroom + 0x39943a)
#7 0x00000000006eed3f _ZN11TrenchBroom4View14CyclingMapView9createGuiERNS0_14MapViewToolBoxERNS_8Renderer11MapRendererERNS0_16GLContextManagerENS1_4ViewE (trenchbroom + 0x2eed3f)
#8 0x00000000006eec0f _ZN11TrenchBroom4View14CyclingMapViewC2ESt8weak_ptrINS0_11MapDocumentEERNS0_14MapViewToolBoxERNS_8Renderer11MapRendererERNS0_16GLContextManagerENS1_4ViewEPNS_6LoggerEP7QWidget (trenchbroom + 0x2eec0f)
#9 0x000000000080399a _ZN11TrenchBroom4View26SwitchableMapViewContainer15switchToMapViewENS0_13MapViewLayoutE (trenchbroom + 0x40399a)
#10 0x00000000008034fc _ZN11TrenchBroom4View26SwitchableMapViewContainerC1EPNS_6LoggerESt8weak_ptrINS0_11MapDocumentEERNS0_16GLContextManagerEP7QWidget (trenchbroom + 0x4034fc)
#11 0x0000000000784615 _ZN11TrenchBroom4View8MapFrame9createGuiEv (trenchbroom + 0x384615)
#12 0x0000000000784043 _ZN11TrenchBroom4View8MapFrameC1EPNS0_12FrameManagerESt10shared_ptrINS0_11MapDocumentEE (trenchbroom + 0x384043)
#13 0x0000000000737257 _ZN11TrenchBroom4View12FrameManager11createFrameESt10shared_ptrINS0_11MapDocumentEE (trenchbroom + 0x337257)
#14 0x0000000000736eb4 _ZN11TrenchBroom4View12FrameManager18createOrReuseFrameEv (trenchbroom + 0x336eb4)
#15 0x000000000085fdef _ZN11TrenchBroom4View14TrenchBroomApp11newDocumentEv (trenchbroom + 0x45fdef)
#16 0x000000000084cb51 _ZN11TrenchBroom4View13WelcomeWindow17createNewDocumentEv (trenchbroom + 0x44cb51)
#17 0x00007f2115a1af76 _Z10doActivateILb0EEvP7QObjectiPPv (libQt5Core.so.5 + 0x289f76)
#18 0x00007f2116477fd6 _ZN15QAbstractButton7clickedEb (libQt5Widgets.so.5 + 0x260fd6)
#19 0x00007f211647899e _ZN22QAbstractButtonPrivate11emitClickedEv (libQt5Widgets.so.5 + 0x26199e)
#20 0x00007f211647a253 _ZN22QAbstractButtonPrivate5clickEv (libQt5Widgets.so.5 + 0x263253)
#21 0x00007f211647a435 _ZN15QAbstractButton17mouseReleaseEventEP11QMouseEvent (libQt5Widgets.so.5 + 0x263435)
#22 0x00007f21163ca36e _ZN7QWidget5eventEP6QEvent (libQt5Widgets.so.5 + 0x1b336e)
#23 0x00007f2116389063 _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt5Widgets.so.5 + 0x172063)
#24 0x00007f211638e891 _ZN12QApplication6notifyEP7QObjectP6QEvent (libQt5Widgets.so.5 + 0x177891)
#25 0x0000000000861060 _ZN11TrenchBroom4View14TrenchBroomApp6notifyEP7QObjectP6QEvent (trenchbroom + 0x461060)
#26 0x00007f21159ebfc0 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt5Core.so.5 + 0x25afc0)
#27 0x00007f211638d78a _ZN19QApplicationPrivate14sendMouseEventEP7QWidgetP11QMouseEventS1_S1_PS1_R8QPointerIS0_Ebb (libQt5Widgets.so.5 + 0x17678a)
#28 0x00007f21163e2f82 _ZN13QWidgetWindow16handleMouseEventEP11QMouseEvent (libQt5Widgets.so.5 + 0x1cbf82)
#29 0x00007f21163e5dde _ZN13QWidgetWindow5eventEP6QEvent (libQt5Widgets.so.5 + 0x1cedde)
#30 0x00007f2116389063 _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt5Widgets.so.5 + 0x172063)
#31 0x0000000000861060 _ZN11TrenchBroom4View14TrenchBroomApp6notifyEP7QObjectP6QEvent (trenchbroom + 0x461060)
#32 0x00007f21159ebfc0 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt5Core.so.5 + 0x25afc0)
#33 0x00007f2115dd016b _ZN22QGuiApplicationPrivate17processMouseEventEPN29QWindowSystemInterfacePrivate10MouseEventE (libQt5Gui.so.5 + 0x12416b)
#34 0x00007f2115db215b _ZN22QWindowSystemInterface22sendWindowSystemEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Gui.so.5 + 0x10615b)
#35 0x00007f2105141c9e _ZL17xcbSourceDispatchP8_GSourcePFiPvES1_ (libQt5XcbQpa.so.5 + 0x65c9e)
#36 0x00007f21140747af g_main_context_dispatch (libglib-2.0.so.0 + 0x527af)
#37 0x00007f2114074b38 g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0x52b38)
#38 0x00007f2114074c03 g_main_context_iteration (libglib-2.0.so.0 + 0x52c03)
#39 0x00007f2115a37b73 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2a6b73)
#40 0x00007f21159ea91b _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x25991b)
#41 0x00007f21159f25a6 _ZN16QCoreApplication4execEv (libQt5Core.so.5 + 0x2615a6)
#42 0x00000000008617f3 main (trenchbroom + 0x4617f3)
#43 0x00007f211529d042 __libc_start_main (libc.so.6 + 0x27042)
#44 0x00000000004642ae _start (trenchbroom + 0x642ae)
By the way, you guys might find it interesting that Clang throws a lot of warnings... Maybe these will be useful for something:
[42/519] Building CXX object common/CMakeFiles/common.dir/src/View/EntityAttributeTable.cpp.o
../common/src/View/EntityAttributeTable.cpp:39:48: warning: bitwise operation between different enumeration types ('Qt::Key' and 'Qt::Modifier') [-Wenum-enum-conversion]
return QKeySequence(Qt::Key_Return | Qt::CTRL).toString(QKeySequence::NativeText);
~~~~~~~~~~~~~~ ^ ~~~~~~~~
1 warning generated.
[392/519] Building CXX object common/CMakeFiles/common.dir/src/View/MultiCompletionLineEdit.cpp.o
../common/src/View/MultiCompletionLineEdit.cpp:44:17: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
+ Qt::Key_Space), this);
^ ~~~~~~~~~~~~~
1 warning generated.
[403/519] Building CXX object common/CMakeFiles/common.dir/src/View/PreferenceDialog.cpp.o
../common/src/View/PreferenceDialog.cpp:106:97: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
connect(m_buttonBox->button(QDialogButtonBox::Apply), &QPushButton::clicked, this, [this]() {
^~~~
1 warning generated.
[508/519] Building CXX object common/CMakeFiles/common.dir/src/View/Actions.cpp.o
../common/src/View/Actions.cpp:376:89: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::AnyView | ActionContext::ClipTool, QKeySequence(Qt::CTRL + Qt::Key_Return),
~~~~~~~~ ^ ~~~~~~~~~~~~~~
../common/src/View/Actions.cpp:436:94: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::AnyView | ActionContext::NodeSelection, QKeySequence(Qt::CTRL + Qt::Key_Up),
~~~~~~~~ ^ ~~~~~~~~~~
../common/src/View/Actions.cpp:443:94: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::AnyView | ActionContext::NodeSelection, QKeySequence(Qt::CTRL + Qt::Key_Down),
~~~~~~~~ ^ ~~~~~~~~~~~~
../common/src/View/Actions.cpp:449:94: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::AnyView | ActionContext::NodeSelection, QKeySequence(Qt::CTRL + Qt::Key_Left),
~~~~~~~~ ^ ~~~~~~~~~~~~
../common/src/View/Actions.cpp:455:94: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::AnyView | ActionContext::NodeSelection, QKeySequence(Qt::CTRL + Qt::Key_Right),
~~~~~~~~ ^ ~~~~~~~~~~~~~
../common/src/View/Actions.cpp:462:94: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::AnyView | ActionContext::NodeSelection, QKeySequence(Qt::CTRL + Qt::Key_PageUp),
~~~~~~~~ ^ ~~~~~~~~~~~~~~
../common/src/View/Actions.cpp:469:94: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::AnyView | ActionContext::NodeSelection, QKeySequence(Qt::CTRL + Qt::Key_PageDown),
~~~~~~~~ ^ ~~~~~~~~~~~~~~~~
../common/src/View/Actions.cpp:478:121: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::AnyView | ActionContext::NodeSelection | ActionContext::RotateTool, QKeySequence(Qt::ALT + Qt::Key_Up),
~~~~~~~ ^ ~~~~~~~~~~
../common/src/View/Actions.cpp:484:121: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::AnyView | ActionContext::NodeSelection | ActionContext::RotateTool, QKeySequence(Qt::ALT + Qt::Key_Down),
~~~~~~~ ^ ~~~~~~~~~~~~
../common/src/View/Actions.cpp:490:121: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::AnyView | ActionContext::NodeSelection | ActionContext::RotateTool, QKeySequence(Qt::ALT + Qt::Key_Left),
~~~~~~~ ^ ~~~~~~~~~~~~
../common/src/View/Actions.cpp:496:121: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::AnyView | ActionContext::NodeSelection | ActionContext::RotateTool, QKeySequence(Qt::ALT + Qt::Key_Right),
~~~~~~~ ^ ~~~~~~~~~~~~~
../common/src/View/Actions.cpp:502:121: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::AnyView | ActionContext::NodeSelection | ActionContext::RotateTool, QKeySequence(Qt::ALT + Qt::Key_PageUp),
~~~~~~~ ^ ~~~~~~~~~~~~~~
../common/src/View/Actions.cpp:508:121: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::AnyView | ActionContext::NodeSelection | ActionContext::RotateTool, QKeySequence(Qt::ALT + Qt::Key_PageDown),
~~~~~~~ ^ ~~~~~~~~~~~~~~~~
../common/src/View/Actions.cpp:522:94: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::View3D | ActionContext::FaceSelection, QKeySequence(Qt::SHIFT + Qt::Key_Up),
~~~~~~~~~ ^ ~~~~~~~~~~
../common/src/View/Actions.cpp:528:93: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::View3D | ActionContext::FaceSelection, QKeySequence(Qt::CTRL + Qt::Key_Up),
~~~~~~~~ ^ ~~~~~~~~~~
../common/src/View/Actions.cpp:540:94: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::View3D | ActionContext::FaceSelection, QKeySequence(Qt::SHIFT + Qt::Key_Down),
~~~~~~~~~ ^ ~~~~~~~~~~~~
../common/src/View/Actions.cpp:546:93: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::View3D | ActionContext::FaceSelection, QKeySequence(Qt::CTRL + Qt::Key_Down),
~~~~~~~~ ^ ~~~~~~~~~~~~
../common/src/View/Actions.cpp:558:94: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::View3D | ActionContext::FaceSelection, QKeySequence(Qt::SHIFT + Qt::Key_Left),
~~~~~~~~~ ^ ~~~~~~~~~~~~
../common/src/View/Actions.cpp:564:93: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::View3D | ActionContext::FaceSelection, QKeySequence(Qt::CTRL + Qt::Key_Left),
~~~~~~~~ ^ ~~~~~~~~~~~~
../common/src/View/Actions.cpp:576:94: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::View3D | ActionContext::FaceSelection, QKeySequence(Qt::SHIFT + Qt::Key_Right),
~~~~~~~~~ ^ ~~~~~~~~~~~~~
../common/src/View/Actions.cpp:582:93: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::View3D | ActionContext::FaceSelection, QKeySequence(Qt::CTRL + Qt::Key_Right),
~~~~~~~~ ^ ~~~~~~~~~~~~~
../common/src/View/Actions.cpp:594:94: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::View3D | ActionContext::FaceSelection, QKeySequence(Qt::SHIFT + Qt::Key_PageUp),
~~~~~~~~~ ^ ~~~~~~~~~~~~~~
../common/src/View/Actions.cpp:600:93: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::View3D | ActionContext::FaceSelection, QKeySequence(Qt::CTRL + Qt::Key_PageUp),
~~~~~~~~ ^ ~~~~~~~~~~~~~~
../common/src/View/Actions.cpp:612:94: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::View3D | ActionContext::FaceSelection, QKeySequence(Qt::SHIFT + Qt::Key_PageDown),
~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~
../common/src/View/Actions.cpp:618:93: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::View3D | ActionContext::FaceSelection, QKeySequence(Qt::CTRL + Qt::Key_PageDown),
~~~~~~~~ ^ ~~~~~~~~~~~~~~~~
../common/src/View/Actions.cpp:632:68: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::NodeSelection, QKeySequence(Qt::ALT + Qt::Key_S),
~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:696:118: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
ActionContext::View3D | ActionContext::AnyTool | ActionContext::AnySelection, QKeySequence(Qt::SHIFT + Qt::Key_Escape),
~~~~~~~~~ ^ ~~~~~~~~~~~~~~
../common/src/View/Actions.cpp:826:123: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
editMenu.addItem(createMenuAction(IO::Path("Menu/Edit/Repeat"), QObject::tr("Repeat Last Commands"), Qt::CTRL + Qt::Key_R,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:867:115: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
editMenu.addItem(createMenuAction(IO::Path("Menu/Edit/Duplicate"), QObject::tr("Duplicate"), Qt::CTRL + Qt::Key_D,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:896:127: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
editMenu.addItem(createMenuAction(IO::Path("Menu/Edit/Select Siblings"), QObject::tr("Select Siblings"), Qt::CTRL + Qt::Key_B,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:903:127: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
editMenu.addItem(createMenuAction(IO::Path("Menu/Edit/Select Touching"), QObject::tr("Select Touching"), Qt::CTRL + Qt::Key_T,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:910:123: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
editMenu.addItem(createMenuAction(IO::Path("Menu/Edit/Select Inside"), QObject::tr("Select Inside"), Qt::CTRL + Qt::Key_E,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:950:140: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
createAction(IO::Path("Menu/Edit/Group"), QObject::tr("Group Selected Objects"), ActionContext::Any, QKeySequence(Qt::CTRL + Qt::Key_G),
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:967:198: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
createAction(IO::Path("Controls/Map view/Flip objects horizontally"), QObject::tr("Flip Horizontally"), ActionContext::AnyView | ActionContext::NodeSelection, QKeySequence(Qt::CTRL + Qt::Key_F),
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:1073:151: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
toolMenu.addItem(createMenuAction(IO::Path("Controls/Map view/Deactivate current tool"), QObject::tr("Deactivate Current Tool"), Qt::CTRL + Qt::Key_Escape,
~~~~~~~~ ^ ~~~~~~~~~~~~~~
../common/src/View/Actions.cpp:1086:124: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
csgMenu.addItem(createMenuAction(IO::Path("Menu/Edit/CSG/Convex Merge"), QObject::tr("Convex Merge"), Qt::CTRL + Qt::Key_J,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:1093:116: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
csgMenu.addItem(createMenuAction(IO::Path("Menu/Edit/CSG/Subtract"), QObject::tr("Subtract"), Qt::CTRL + Qt::Key_K,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:1107:118: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
csgMenu.addItem(createMenuAction(IO::Path("Menu/Edit/CSG/Intersect"), QObject::tr("Intersect"), Qt::CTRL + Qt::Key_L,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:1176:125: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
gridMenu.addItem(createMenuAction(IO::Path("Menu/View/Grid/Snap to Grid"), QObject::tr("Snap to Grid"), Qt::ALT + Qt::Key_0,
~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:1337:149: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
cameraMenu.addItem(createMenuAction(IO::Path("Menu/View/Camera/Focus on Selection"), QObject::tr("Focus Camera on Selection"), Qt::CTRL + Qt::Key_U,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:1353:121: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
viewMenu.addItem(createMenuAction(IO::Path("Menu/View/Isolate"), QObject::tr("Isolate Selection"), Qt::CTRL + Qt::Key_I,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:1375:138: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
viewMenu.addItem(createMenuAction(IO::Path("Menu/View/Switch to Map Inspector"), QObject::tr("Show Map Inspector"), Qt::CTRL + Qt::Key_1,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:1382:144: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
viewMenu.addItem(createMenuAction(IO::Path("Menu/View/Switch to Entity Inspector"), QObject::tr("Show Entity Inspector"), Qt::CTRL + Qt::Key_2,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:1389:140: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
viewMenu.addItem(createMenuAction(IO::Path("Menu/View/Switch to Face Inspector"), QObject::tr("Show Face Inspector"), Qt::CTRL + Qt::Key_3,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:1407:131: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
viewMenu.addItem(createMenuAction(IO::Path("Menu/View/Toggle Info Panel"), QObject::tr("Toggle Info Panel"), Qt::CTRL + Qt::Key_4,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:1417:129: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
viewMenu.addItem(createMenuAction(IO::Path("Menu/View/Toggle Inspector"), QObject::tr("Toggle Inspector"), Qt::CTRL + Qt::Key_5,
~~~~~~~~ ^ ~~~~~~~~~
../common/src/View/Actions.cpp:1432:26: warning: arithmetic between different enumeration types ('Qt::Modifier' and 'Qt::Key') [-Wenum-enum-conversion]
Qt::CTRL + Qt::Key_Space,
~~~~~~~~ ^ ~~~~~~~~~~~~~
47 warnings generated.
[516/519] Generating gen-manual/index.html
[WARNING] Duplicate identifier 'keyboard_shortcuts' at line 1112 column 1
[519/519] Linking CXX executable app/trenchbroom
Debug build produces slightly different stack trace:
Stack trace of thread 37465:
#0 0x0000000000613b1e _ZN2vmmlIfLm4ELm4ELm4EEENS_3matIT_XT0_EXT2_EEERKNS1_IS2_XT0_EXT1_EEERKNS1_IS2_XT1_EXT2_EEE (trenchbroom + 0x213b1e)
#1 0x0000000000638cd3 _ZNK11TrenchBroom8Renderer17PerspectiveCamera18doValidateMatricesERN2vm3matIfLm4ELm4EEES5_ (trenchbroom + 0x238cd3)
#2 0x00000000006113e8 _ZNK11TrenchBroom8Renderer6Camera9unprojectEfff (trenchbroom + 0x2113e8)
#3 0x0000000000611375 _ZNK11TrenchBroom8Renderer6Camera7pickRayEii (trenchbroom + 0x211375)
#4 0x00000000007847dc _ZThn216_NK11TrenchBroom4View9MapView3D16doGetPickRequestEii (trenchbroom + 0x3847dc)
#5 0x00000000007fdcf7 _ZN11TrenchBroom4View16ToolBoxConnector16updatePickResultEv (trenchbroom + 0x3fdcf7)
#6 0x0000000000789713 _ZN11TrenchBroom4View11MapViewBase29createActionsAndUpdatePickingEv (trenchbroom + 0x389713)
#7 0x00000000007839c2 _ZN11TrenchBroom4View9MapView3DC2ESt8weak_ptrINS0_11MapDocumentEERNS0_14MapViewToolBoxERNS_8Renderer11MapRendererERNS0_>
#8 0x00000000006dcfbf _ZN11TrenchBroom4View14CyclingMapView9createGuiERNS0_14MapViewToolBoxERNS_8Renderer11MapRendererERNS0_16GLContextManage>
#9 0x00000000006dce8f _ZN11TrenchBroom4View14CyclingMapViewC2ESt8weak_ptrINS0_11MapDocumentEERNS0_14MapViewToolBoxERNS_8Renderer11MapRenderer>
#10 0x00000000007ec66a _ZN11TrenchBroom4View26SwitchableMapViewContainer15switchToMapViewENS0_13MapViewLayoutE (trenchbroom + 0x3ec66a)
#11 0x00000000007ec23b _ZN11TrenchBroom4View26SwitchableMapViewContainerC1EPNS_6LoggerESt8weak_ptrINS0_11MapDocumentEERNS0_16GLContextManagerE>
#12 0x000000000076ff15 _ZN11TrenchBroom4View8MapFrame9createGuiEv (trenchbroom + 0x36ff15)
#13 0x000000000076f8f3 _ZN11TrenchBroom4View8MapFrameC1EPNS0_12FrameManagerESt10shared_ptrINS0_11MapDocumentEE (trenchbroom + 0x36f8f3)
#14 0x000000000072347a _ZN11TrenchBroom4View12FrameManager11createFrameESt10shared_ptrINS0_11MapDocumentEE (trenchbroom + 0x32347a)
#15 0x0000000000723085 _ZN11TrenchBroom4View12FrameManager18createOrReuseFrameEv (trenchbroom + 0x323085)
#16 0x0000000000841a39 _ZN11TrenchBroom4View14TrenchBroomApp12openDocumentERKNS_2IO4PathE (trenchbroom + 0x441a39)
#17 0x0000000000832b8a _ZN11TrenchBroom4View13WelcomeWindow12openDocumentERKNS_2IO4PathE (trenchbroom + 0x432b8a)
#18 0x00007f3e582e3f76 _Z10doActivateILb0EEvP7QObjectiPPv (libQt5Core.so.5 + 0x289f76)
#19 0x0000000000469d72 _ZN11TrenchBroom4View21RecentDocumentListBox18loadRecentDocumentERKNS_2IO4PathE (trenchbroom + 0x69d72)
#20 0x00007f3e582e3f76 _Z10doActivateILb0EEvP7QObjectiPPv (libQt5Core.so.5 + 0x289f76)
#21 0x0000000000465f7f _ZN11TrenchBroom4View26ControlListBoxItemRenderer13doubleClickedEm (trenchbroom + 0x65f7f)
#22 0x00007f3e58c93cd1 _ZN7QWidget5eventEP6QEvent (libQt5Widgets.so.5 + 0x1b3cd1)
#23 0x00007f3e58c52063 _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt5Widgets.so.5 + 0x172063)
#24 0x00007f3e58c57891 _ZN12QApplication6notifyEP7QObjectP6QEvent (libQt5Widgets.so.5 + 0x177891)
#25 0x00000000008464e0 _ZN11TrenchBroom4View14TrenchBroomApp6notifyEP7QObjectP6QEvent (trenchbroom + 0x4464e0)
#26 0x00007f3e582b4fc0 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt5Core.so.5 + 0x25afc0)
#27 0x00007f3e58c5678a _ZN19QApplicationPrivate14sendMouseEventEP7QWidgetP11QMouseEventS1_S1_PS1_R8QPointerIS0_Ebb (libQt5Widgets.so.5 + 0x176>
#28 0x00007f3e58cabf82 _ZN13QWidgetWindow16handleMouseEventEP11QMouseEvent (libQt5Widgets.so.5 + 0x1cbf82)
#29 0x00007f3e58caedde _ZN13QWidgetWindow5eventEP6QEvent (libQt5Widgets.so.5 + 0x1cedde)
#30 0x00007f3e58c52063 _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt5Widgets.so.5 + 0x172063)
#31 0x00000000008464e0 _ZN11TrenchBroom4View14TrenchBroomApp6notifyEP7QObjectP6QEvent (trenchbroom + 0x4464e0)
#32 0x00007f3e582b4fc0 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt5Core.so.5 + 0x25afc0)
#33 0x00007f3e58699142 _ZN22QGuiApplicationPrivate17processMouseEventEPN29QWindowSystemInterfacePrivate10MouseEventE (libQt5Gui.so.5 + 0x12414>
#34 0x00007f3e5867b15b _ZN22QWindowSystemInterface22sendWindowSystemEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Gui.so.5 + 0x1061>
#35 0x00007f3e47a0ac9e _ZL17xcbSourceDispatchP8_GSourcePFiPvES1_ (libQt5XcbQpa.so.5 + 0x65c9e)
#36 0x00007f3e5693d7af g_main_context_dispatch (libglib-2.0.so.0 + 0x527af)
#37 0x00007f3e5693db38 g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0x52b38)
#38 0x00007f3e5693dc03 g_main_context_iteration (libglib-2.0.so.0 + 0x52c03)
#39 0x00007f3e58300b73 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2a6b73)
#40 0x00007f3e582b391b _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x25991b)
#41 0x00007f3e582bb5a6 _ZN16QCoreApplication4execEv (libQt5Core.so.5 + 0x2615a6)
#42 0x0000000000846bf3 main (trenchbroom + 0x446bf3)
#43 0x00007f3e57b66042 __libc_start_main (libc.so.6 + 0x27042)
#44 0x0000000000463a1e _start (trenchbroom + 0x63a1e)
Edit 5: I realise stack traces aren't terribly useful, so here's a proper back trace as well for this Clang built Trenchbroom crash:
libpng warning: iCCP: known incorrect sRGB profile
Thread 1 "trenchbroom" received signal SIGILL, Illegal instruction.
0x0000000000613b1e in vm::operator*<float, 4ul, 4ul, 4ul> (lhs=..., rhs=...) at ../lib/vecmath/include/vecmath/mat.h:516
516 result[c][r] += lhs[i][r] * rhs[c][i];
(gdb) bt
#0 0x0000000000613b1e in vm::operator*<float, 4ul, 4ul, 4ul>(vm::mat<float, 4ul, 4ul> const&, vm::mat<float, 4ul, 4ul> const&) (lhs=..., rhs=...)
at ../lib/vecmath/include/vecmath/mat.h:516
#1 0x0000000000638cd3 in TrenchBroom::Renderer::PerspectiveCamera::doValidateMatrices(vm::mat<float, 4ul, 4ul>&, vm::mat<float, 4ul, 4ul>&) const
(this=0x1550ed0, projectionMatrix=..., viewMatrix=...) at ../common/src/Renderer/PerspectiveCamera.cpp:101
#2 0x00000000006113e8 in TrenchBroom::Renderer::Camera::validateMatrices() const (this=0x1550ed0) at ../common/src/Renderer/Camera.cpp:400
#3 TrenchBroom::Renderer::Camera::unproject(float, float, float) const (this=0x1550ed0, x=1552, y=841, depth=0.5) at ../common/src/Renderer/Camera.cpp:209
#4 0x0000000000611375 in TrenchBroom::Renderer::Camera::pickRay(int, int) const (this=<optimized out>, x=-14056, y=841)
at ../common/src/Renderer/Camera.cpp:160
#5 0x00000000007847dc in non-virtual thunk to TrenchBroom::View::MapView3D::doGetPickRequest(int, int) const () at ../common/src/View/MapView3D.cpp:188
#6 0x00000000007fdcf7 in TrenchBroom::View::ToolBoxConnector::updatePickResult() (this=0x154fdc8) at ../common/src/View/ToolBoxConnector.cpp:56
#7 0x0000000000789713 in TrenchBroom::View::MapViewBase::createActionsAndUpdatePicking() (this=<optimized out>) at ../common/src/View/MapViewBase.cpp:199
#8 0x00000000007839c2 in TrenchBroom::View::MapView3D::MapView3D(std::weak_ptr<TrenchBroom::View::MapDocument>, TrenchBroom::View::MapViewToolBox&, TrenchBroom::Renderer::MapRenderer&, TrenchBroom::View::GLContextManager&, TrenchBroom::Logger*) (this=0x154fcf0, document=..., toolBox=
..., renderer=..., contextManager=..., logger=<optimized out>) at ../common/src/View/MapView3D.cpp:85
#9 0x00000000006dcfbf in TrenchBroom::View::CyclingMapView::createGui(TrenchBroom::View::MapViewToolBox&, TrenchBroom::Renderer::MapRenderer&, TrenchBroom::View::GLContextManager&, TrenchBroom::View::CyclingMapView::View)
(this=0x154fa00, toolBox=..., mapRenderer=..., contextManager=..., views=TrenchBroom::View::CyclingMapView::View_ALL)
at ../common/src/View/CyclingMapView.cpp:52
#10 0x00000000006dce8f in TrenchBroom::View::CyclingMapView::CyclingMapView(std::weak_ptr<TrenchBroom::View::MapDocument>, TrenchBroom::View::MapViewToolBox&, TrenchBroom::Renderer::MapRenderer&, TrenchBroom::View::GLContextManager&, TrenchBroom::View::CyclingMapView::View, TrenchBroom::Logger*, QWidget*)
(this=<optimized out>, document=
std::weak_ptr<TrenchBroom::View::MapDocument> (empty) = {...}, toolBox=..., mapRenderer=..., contextManager=..., views=TrenchBroom::View::CyclingMapView::View_ALL, logger=0x1406fd0, parent=0x0) at ../common/src/View/CyclingMapView.cpp:47
#11 0x00000000007ec66a in TrenchBroom::View::SwitchableMapViewContainer::switchToMapView(TrenchBroom::View::MapViewLayout)
(this=0x138f220, viewId=<optimized out>) at ../common/src/View/SwitchableMapViewContainer.cpp:93
#12 0x00000000007ec23b in TrenchBroom::View::SwitchableMapViewContainer::SwitchableMapViewContainer(TrenchBroom::Logger*, std::weak_ptr<TrenchBroom::View::MapDocument>, TrenchBroom::View::GLContextManager&, QWidget*) (this=0x138f220, logger=<optimized out>, document=..., contextManager=..., parent=<optimized out>)
at ../common/src/View/SwitchableMapViewContainer.cpp:58
#13 0x000000000076ff15 in TrenchBroom::View::MapFrame::createGui() (this=0x139b150) at ../common/src/View/MapFrame.cpp:305
#14 0x000000000076f8f3 in TrenchBroom::View::MapFrame::MapFrame(TrenchBroom::View::FrameManager*, std::shared_ptr<TrenchBroom::View::MapDocument>)
(this=0x139b150, frameManager=<optimized out>, document=...) at ../common/src/View/MapFrame.cpp:131
#15 0x000000000072347a in TrenchBroom::View::FrameManager::createFrame(std::shared_ptr<TrenchBroom::View::MapDocument>) (this=0x10da7d0, document=...)
at ../common/src/View/FrameManager.cpp:106
#16 0x0000000000723085 in TrenchBroom::View::FrameManager::createOrReuseFrame() (this=0x10da7d0) at ../common/src/View/FrameManager.cpp:100
#17 0x000000000084537f in TrenchBroom::View::TrenchBroomApp::newDocument() (this=0x7fffffffdd60) at ../common/src/TrenchBroomApp.cpp:547
#18 0x0000000000833071 in TrenchBroom::View::WelcomeWindow::createNewDocument() (this=0x1217bf0) at ../common/src/View/WelcomeWindow.cpp:114
#19 0x00007ffff6eaff76 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#20 0x00007ffff790cfd6 in QAbstractButton::clicked(bool) () at /lib64/libQt5Widgets.so.5
#21 0x00007ffff790d99e in QAbstractButtonPrivate::emitClicked() () at /lib64/libQt5Widgets.so.5
#22 0x00007ffff790f253 in QAbstractButtonPrivate::click() () at /lib64/libQt5Widgets.so.5
#23 0x00007ffff790f435 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /lib64/libQt5Widgets.so.5
#24 0x00007ffff785f36e in QWidget::event(QEvent*) () at /lib64/libQt5Widgets.so.5
#25 0x00007ffff781e063 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#26 0x00007ffff7823891 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#27 0x00000000008464e0 in TrenchBroom::View::TrenchBroomApp::notify(QObject*, QEvent*) (this=0x7fffffffc958, receiver=0x7fffffffc8d8, event=0x7fffffffc918)
at ../common/src/TrenchBroomApp.cpp:611
#28 0x00007ffff6e80fc0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#29 0x00007ffff782278a in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) ()
at /lib64/libQt5Widgets.so.5
#30 0x00007ffff7877f82 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at /lib64/libQt5Widgets.so.5
#31 0x00007ffff787adde in QWidgetWindow::event(QEvent*) () at /lib64/libQt5Widgets.so.5
#32 0x00007ffff781e063 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#33 0x00000000008464e0 in TrenchBroom::View::TrenchBroomApp::notify(QObject*, QEvent*) (this=0x7fffffffc958, receiver=0x7fffffffc8d8, event=0x7fffffffc918)
at ../common/src/TrenchBroomApp.cpp:611
#34 0x00007ffff6e80fc0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#35 0x00007ffff726516b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib64/libQt5Gui.so.5
#36 0x00007ffff724715b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Gui.so.5
#37 0x00007fffe65d6c9e in xcbSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5XcbQpa.so.5
#38 0x00007ffff55097af in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#39 0x00007ffff5509b38 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#40 0x00007ffff5509c03 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#41 0x00007ffff6eccb73 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#42 0x00007ffff6e7f91b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#43 0x00007ffff6e875a6 in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#44 0x0000000000846bf3 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ../app/src/Main.cpp:61
Edit 6: Well, the TrenchBroom v2020.1 Release I compiled inside a KVM virtual machine works in my host Fedora 32 system perfectly fine as far as I can see. :partying_face:
But why on earth the GCC fails me in host machine and why the Clang fails me at when trying to run the damn thing? I'm starting to be too sleepy for today and have to catch some sleep. I'll get back to this tomorrow or the day after tomorrow at latest.
Hi, I haven't had time to look further into this. It might take a week or so before I get back to this since my vacation is starting today. Sorry!
Well, I've reformatted my Intel CPU laptop with Ubuntu 20.04 to just try something different and while it's true that compiling Trenchbroom v2020.1 works and I can create a functional dpkg package... when attempting to compile v2020.1 inside a Flatpak environment things fail on Ubuntu with dump-shortcuts dumping core.
But there is a twist to that. It's probably due QT_QPA_PLATFORM plugin unable to load on Ubuntu since it's complaining about that just before crash. I am not very familiar with packaging Qt programs into Flatpaks so it might be my ineptitude at this point. But as far as I understand this shouldn't be an issue yet it is.
when attempting to compile v2020.1 inside a Flatpak environment things fail on Ubuntu with dump-shortcuts dumping core.
What is the stack trace this time? Can you run Qt applications (with a UI) in this environment? dump-shortcuts creates a QApplication so it's GUI application (maybe this should be a QCoreApplication instead). It's possible by being a QApplication it needs to connect to an X server or whatever the window system is.
Quote from https://doc.qt.io/qt-5/qkeysequence.html
Warning: A QApplication instance must have been constructed before a QKeySequence is created; otherwise, your application may crash.
What is the stack trace this time? Can you run Qt applications (with a UI) in this environment?
dump-shortcutscreates a QApplication so it's GUI application (maybe this should be a QCoreApplication instead). It's possible by being a QApplication it needs to connect to an X server or whatever the window system is.
I'm at unfamiliar territory. I don't know how to take stack trace out of Flatpak development environment as of now because it's sandboxed and non-connected. The dump that comes out of it is just blank as far as I can see. But I'm going to assume it's due it being unable to access X. (I guess it's because there is no portal to X.)
Why is dump-shortcuts a QApplication when it's text-only console program? Does it use X for anything useful even? It definitely should be a QCoreApplication if it is terminal-only and doesn't make use of QWidgets. But I have some doubt that would solve my problem which is that while inside Flatpak environment, the thing is unable to load Q_QPA_PLATFORM plugin. But it might be that it is unable to do so because the xcb plugin it wants expects X and that causes the process to melt. However if the QKeySequence you guys use wants QApplication then this of course cannot be tested out even.
Also sorry for delayed response. I'm busy with some other issues still.
Why is dump-shortcuts a QApplication when it's text-only console program?
See my previous comment.
dump-shortcuts is run via xvfb-run on Linux, maybe it's missing something in the environment?
dump-shortcuts is run via
xvfb-runon Linux, maybe it's missing something in the environment?
Well, neither Fedora or Ubuntu install xvfb by default. So that's something because I'm getting a different error message now on both systems having installed it.
Fedora (without Flatpak environment):
antti î‚° î‚ master î‚° ~/Git/TrenchBroom-Qt/build î‚° cmake --build . --target TrenchBroom --parallel 25
[4/521] Building C object lib/miniz/CMakeFiles/miniz.dir/src/miniz.c.o
../lib/miniz/src/miniz.c:3031:9: note: ‘#pragma message: Using fopen, ftello, fseeko, stat() etc. path for file I/O - this path may not support large files.’
3031 | #pragma message("Using fopen, ftello, fseeko, stat() etc. path for file I/O - this path may not support large files.")
| ^~~~~~~
[517/521] Generating gen-manual/index.html
[WARNING] Duplicate identifier 'keyboard_shortcuts' at line 1112 column 1
[518/521] Generating gen-manual/shortcuts.js
FAILED: app/gen-manual/shortcuts.js
cd /home/antti/Git/TrenchBroom-Qt/build/app && /usr/bin/xvfb-run -a /home/antti/Git/TrenchBroom-Qt/build/dump-shortcuts/dump-shortcuts /home/antti/Git/TrenchBroom-Qt/build/app/gen-manual/shortcuts.js
/usr/bin/xvfb-run: line 181: 86211 Illegal instruction (core dumped) DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1
ninja: build stopped: subcommand failed.
Backtrace from Fedora:
(gdb) bt
#0 0x00000000008b0726 in std::__copy_move<false, true, std::random_access_iterator_tag>::__copy_m<TrenchBroom::PreferenceBase*>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**) (__result=0x2deb6f0, __last=0x7fffc4b4c1f8, __first=0x7fffc4b4bef0)
at /usr/include/c++/10/bits/stl_algobase.h:560
#1 std::__copy_move_a2<false, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**) (__result=0x2deb6f0, __last=0x7fffc4b4c1f8, __first=0x7fffc4b4bef0)
at /usr/include/c++/10/bits/stl_algobase.h:472
#2 std::__copy_move_a1<false, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**) (__result=0x2deb6f0, __last=0x7fffc4b4c1f8, __first=0x7fffc4b4bef0)
at /usr/include/c++/10/bits/stl_algobase.h:506
#3 std::__copy_move_a<false, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**) (__result=0x2deb6f0, __last=0x7fffc4b4c1f8, __first=0x7fffc4b4bef0) at /usr/include/c++/10/bits/stl_algobase.h:513
#4 std::copy<TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**) (__result=0x2deb6f0, __last=0x7fffc4b4c1f8, __first=0x7fffc4b4bef0) at /usr/include/c++/10/bits/stl_algobase.h:569
#5 std::__uninitialized_copy<true>::__uninit_copy<TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**) (__result=0x2deb6f0, __last=0x7fffc4b4c1f8, __first=0x7fffc4b4bef0)
at /usr/include/c++/10/bits/stl_uninitialized.h:109
#6 std::uninitialized_copy<TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**) (__result=0x2deb6f0, __last=0x7fffc4b4c1f8, __first=0x7fffc4b4bef0)
at /usr/include/c++/10/bits/stl_uninitialized.h:150
#7 std::__uninitialized_copy_a<TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**, TrenchBroom::PreferenceBase*>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase**, std::allocator<TrenchBroom::PreferenceBase*>&)
(__result=0x2deb6f0, __last=0x7fffc4b4c1f8, __first=0x7fffc4b4bef0) at /usr/include/c++/10/bits/stl_uninitialized.h:325
#8 std::vector<TrenchBroom::PreferenceBase*, std::allocator<TrenchBroom::PreferenceBase*> >::_M_range_initialize<TrenchBroom::PreferenceBase* const*>(TrenchBroom::PreferenceBase* const*, TrenchBroom::PreferenceBase* const*, std::forward_iterator_tag)
(__last=0x7fffc4b4c1f8, __first=0x7fffc4b4bef0, this=0xb10020 <TrenchBroom::Preferences::staticPreferences()::list>)
at /usr/include/c++/10/bits/stl_vector.h:1585
#9 std::vector<TrenchBroom::PreferenceBase*, std::allocator<TrenchBroom::PreferenceBase*> >::vector(std::initializer_list<TrenchBroom::PreferenceBase*>, std::allocator<TrenchBroom::PreferenceBase*> const&) (__a=..., __l=..., this=0xb10020 <TrenchBroom::Preferences::staticPreferences()::list>)
at /usr/include/c++/10/bits/stl_vector.h:629
#10 TrenchBroom::Preferences::staticPreferences() () at ../common/src/Preferences.cpp:294
#11 0x00000000008aabec in TrenchBroom::PreferenceManager::invalidatePreferences()
(this=this@entry=0xb0dec0 <TrenchBroom::PreferenceManager::instance()::prefs>) at ../common/src/PreferenceManager.cpp:397
#12 0x00000000008ad793 in TrenchBroom::PreferenceManager::loadCacheFromDisk() (this=0xb0dec0 <TrenchBroom::PreferenceManager::instance()::prefs>)
at ../common/src/PreferenceManager.cpp:384
#13 0x00000000008ae22c in TrenchBroom::PreferenceManager::PreferenceManager() (this=0xb0dec0 <TrenchBroom::PreferenceManager::instance()::prefs>)
at ../common/src/PreferenceManager.cpp:265
#14 0x00000000008ae37c in TrenchBroom::PreferenceManager::instance() () at ../common/src/PreferenceManager.cpp:278
#15 0x00000000006a09aa in TrenchBroom::View::Action::keySequence() const (this=0x2d78ca0) at ../common/src/View/Actions.cpp:111
#16 0x00000000008b8ad9 in TrenchBroom::View::PrintMenuVisitor::visit(TrenchBroom::View::MenuActionItem const&) (this=<optimized out>, item=...)
at ../dump-shortcuts/src/Main.cpp:65
#17 0x000000000069f458 in TrenchBroom::View::Menu::visitEntries(TrenchBroom::View::MenuVisitor&) const (this=this@entry=0x2d1e380, visitor=...)
at /usr/include/c++/10/bits/unique_ptr.h:420
#18 0x00000000008b8689 in TrenchBroom::View::PrintMenuVisitor::visit(TrenchBroom::View::Menu const&) (this=0x7fffc4b4c6b0, menu=...)
at ../dump-shortcuts/src/Main.cpp:109
#19 0x000000000069f4b9 in TrenchBroom::View::Menu::accept(TrenchBroom::View::MenuVisitor&) const (visitor=..., this=<optimized out>)
at ../common/src/View/Actions.cpp:202
#20 TrenchBroom::View::ActionManager::visitMainMenu(TrenchBroom::View::MenuVisitor&) const
(this=this@entry=0xb0d660 <TrenchBroom::View::ActionManager::instance()::instance>, visitor=...) at ../common/src/View/Actions.cpp:293
#21 0x00000000004b0bea in TrenchBroom::View::printMenuShortcuts (out=...) at ../dump-shortcuts/src/Main.cpp:126
#22 main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ../dump-shortcuts/src/Main.cpp:213
On Ubuntu it's now complaining of not being able to load xcb Qt platform plugin as a result of not being able to connect to display i.e. it's not seeing X at all. It offers me a list of alternative plugins to try out.
Ubuntu (within the Flatpak build environment):
[ 98%] Linking CXX executable common-test
cd /run/build/trenchbroom/_flatpak_build/common/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/common-test.dir/link.txt --verbose=1
ccache /run/ccache/bin/c++ -Werror -g -L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed CMakeFiles/common-test.dir/src/Assets/AssetUtilsTest.cpp.o CMakeFiles/common-test.dir/src/Assets/EntityDefinitionTestUtils.cpp.o CMakeFiles/common-test.dir/src/EL/ELTest.cpp.o CMakeFiles/common-test.dir/src/EL/ExpressionTest.cpp.o CMakeFiles/common-test.dir/src/EL/InterpolatorTest.cpp.o CMakeFiles/common-test.dir/src/IO/AseParserTest.cpp.o CMakeFiles/common-test.dir/src/IO/CompilationConfigParserTest.cpp.o CMakeFiles/common-test.dir/src/IO/DefParserTest.cpp.o CMakeFiles/common-test.dir/src/IO/DiskFileSystemTest.cpp.o CMakeFiles/common-test.dir/src/IO/DkPakFileSystemTest.cpp.o CMakeFiles/common-test.dir/src/IO/ELParserTest.cpp.o CMakeFiles/common-test.dir/src/IO/EntParserTest.cpp.o CMakeFiles/common-test.dir/src/IO/EntityModelTest.cpp.o CMakeFiles/common-test.dir/src/IO/FgdParserTest.cpp.o CMakeFiles/common-test.dir/src/IO/FreeImageTextureReaderTest.cpp.o CMakeFiles/common-test.dir/src/IO/GameConfigParserTest.cpp.o CMakeFiles/common-test.dir/src/IO/IdMipTextureReaderTest.cpp.o CMakeFiles/common-test.dir/src/IO/IdPakFileSystemTest.cpp.o CMakeFiles/common-test.dir/src/IO/M8TextureReaderTest.cpp.o CMakeFiles/common-test.dir/src/IO/Md3ParserTest.cpp.o CMakeFiles/common-test.dir/src/IO/MdlParserTest.cpp.o CMakeFiles/common-test.dir/src/IO/NodeWriterTest.cpp.o CMakeFiles/common-test.dir/src/IO/ObjParserTest.cpp.o CMakeFiles/common-test.dir/src/IO/PathTest.cpp.o CMakeFiles/common-test.dir/src/IO/Quake3ShaderFileSystemTest.cpp.o CMakeFiles/common-test.dir/src/IO/Quake3ShaderParserTest.cpp.o CMakeFiles/common-test.dir/src/IO/ReaderTest.cpp.o CMakeFiles/common-test.dir/src/IO/ResourceUtilsTest.cpp.o CMakeFiles/common-test.dir/src/IO/TestEnvironment.cpp.o CMakeFiles/common-test.dir/src/IO/TestParserStatus.cpp.o CMakeFiles/common-test.dir/src/IO/TextureLoaderTest.cpp.o CMakeFiles/common-test.dir/src/IO/TokenizerTest.cpp.o CMakeFiles/common-test.dir/src/IO/WadFileSystemTest.cpp.o CMakeFiles/common-test.dir/src/IO/WalTextureReaderTest.cpp.o CMakeFiles/common-test.dir/src/IO/WorldReaderTest.cpp.o CMakeFiles/common-test.dir/src/IO/ZipFileSystemTest.cpp.o CMakeFiles/common-test.dir/src/Model/AttributableIndexTest.cpp.o CMakeFiles/common-test.dir/src/Model/AttributableLinkTest.cpp.o CMakeFiles/common-test.dir/src/Model/BrushBuilderTest.cpp.o CMakeFiles/common-test.dir/src/Model/BrushFaceTest.cpp.o CMakeFiles/common-test.dir/src/Model/BrushTest.cpp.o CMakeFiles/common-test.dir/src/Model/EditorContextTest.cpp.o CMakeFiles/common-test.dir/src/Model/EntityTest.cpp.o CMakeFiles/common-test.dir/src/Model/GameTest.cpp.o CMakeFiles/common-test.dir/src/Model/NodeTest.cpp.o CMakeFiles/common-test.dir/src/Model/PlanePointFinderTest.cpp.o CMakeFiles/common-test.dir/src/Model/PolyhedronTest.cpp.o CMakeFiles/common-test.dir/src/Model/PortalFileTest.cpp.o CMakeFiles/common-test.dir/src/Model/TaggingTest.cpp.o CMakeFiles/common-test.dir/src/Model/TestGame.cpp.o CMakeFiles/common-test.dir/src/Model/TexCoordSystemTest.cpp.o CMakeFiles/common-test.dir/src/Renderer/AllocationTrackerTest.cpp.o CMakeFiles/common-test.dir/src/Renderer/CameraTest.cpp.o CMakeFiles/common-test.dir/src/Renderer/VertexTest.cpp.o CMakeFiles/common-test.dir/src/View/AutosaverTest.cpp.o CMakeFiles/common-test.dir/src/View/ChangeBrushFaceAttributesTest.cpp.o CMakeFiles/common-test.dir/src/View/ClipToolControllerTest.cpp.o CMakeFiles/common-test.dir/src/View/CommandProcessorTest.cpp.o CMakeFiles/common-test.dir/src/View/CompilationRunToolTaskRunnerTest.cpp.o CMakeFiles/common-test.dir/src/View/GridTest.cpp.o CMakeFiles/common-test.dir/src/View/GroupNodesTest.cpp.o CMakeFiles/common-test.dir/src/View/InputEventTest.cpp.o CMakeFiles/common-test.dir/src/View/KeyboardShortcutTest.cpp.o CMakeFiles/common-test.dir/src/View/MapDocumentTest.cpp.o CMakeFiles/common-test.dir/src/View/MoveToolControllerTest.cpp.o CMakeFiles/common-test.dir/src/View/RemoveNodesTest.cpp.o CMakeFiles/common-test.dir/src/View/ReparentNodesTest.cpp.o CMakeFiles/common-test.dir/src/View/ScaleObjectsToolTest.cpp.o CMakeFiles/common-test.dir/src/View/SelectionCommandTest.cpp.o CMakeFiles/common-test.dir/src/View/SelectionTest.cpp.o CMakeFiles/common-test.dir/src/View/SnapBrushVerticesTest.cpp.o CMakeFiles/common-test.dir/src/View/SnapshotTest.cpp.o CMakeFiles/common-test.dir/src/View/TagManagementTest.cpp.o CMakeFiles/common-test.dir/src/View/TextOutputAdapterTest.cpp.o CMakeFiles/common-test.dir/src/AABBTreeStressTest.cpp.o CMakeFiles/common-test.dir/src/AABBTreeTest.cpp.o CMakeFiles/common-test.dir/src/EnsureTest.cpp.o CMakeFiles/common-test.dir/src/NotifierTest.cpp.o CMakeFiles/common-test.dir/src/PreferencesTest.cpp.o CMakeFiles/common-test.dir/src/RunAllTests.cpp.o CMakeFiles/common-test.dir/src/StackWalkerTest.cpp.o CMakeFiles/common-test.dir/src/TestLogger.cpp.o CMakeFiles/common-test.dir/src/TestUtils.cpp.o ../CMakeFiles/common.dir/src/Assets/AttributeDefinition.cpp.o ../CMakeFiles/common.dir/src/Assets/ColorRange.cpp.o ../CMakeFiles/common.dir/src/Assets/EntityDefinition.cpp.o ../CMakeFiles/common.dir/src/Assets/EntityDefinitionFileSpec.cpp.o ../CMakeFiles/common.dir/src/Assets/EntityDefinitionGroup.cpp.o ../CMakeFiles/common.dir/src/Assets/EntityDefinitionManager.cpp.o ../CMakeFiles/common.dir/src/Assets/EntityModel.cpp.o ../CMakeFiles/common.dir/src/Assets/EntityModelManager.cpp.o ../CMakeFiles/common.dir/src/Assets/ModelDefinition.cpp.o ../CMakeFiles/common.dir/src/Assets/Palette.cpp.o ../CMakeFiles/common.dir/src/Assets/Quake3Shader.cpp.o ../CMakeFiles/common.dir/src/Assets/Texture.cpp.o ../CMakeFiles/common.dir/src/Assets/TextureBuffer.cpp.o ../CMakeFiles/common.dir/src/Assets/TextureCollection.cpp.o ../CMakeFiles/common.dir/src/Assets/TextureManager.cpp.o ../CMakeFiles/common.dir/src/EL/ELExceptions.cpp.o ../CMakeFiles/common.dir/src/EL/EvaluationContext.cpp.o ../CMakeFiles/common.dir/src/EL/Expression.cpp.o ../CMakeFiles/common.dir/src/EL/Interpolator.cpp.o ../CMakeFiles/common.dir/src/EL/Types.cpp.o ../CMakeFiles/common.dir/src/EL/Value.cpp.o ../CMakeFiles/common.dir/src/EL/VariableStore.cpp.o ../CMakeFiles/common.dir/src/IO/AseParser.cpp.o ../CMakeFiles/common.dir/src/IO/BrushFaceReader.cpp.o ../CMakeFiles/common.dir/src/IO/Bsp29Parser.cpp.o ../CMakeFiles/common.dir/src/IO/CompilationConfigParser.cpp.o ../CMakeFiles/common.dir/src/IO/CompilationConfigWriter.cpp.o ../CMakeFiles/common.dir/src/IO/ConfigParserBase.cpp.o ../CMakeFiles/common.dir/src/IO/DefParser.cpp.o ../CMakeFiles/common.dir/src/IO/DiskFileSystem.cpp.o ../CMakeFiles/common.dir/src/IO/DiskIO.cpp.o ../CMakeFiles/common.dir/src/IO/DkmParser.cpp.o ../CMakeFiles/common.dir/src/IO/DkPakFileSystem.cpp.o ../CMakeFiles/common.dir/src/IO/ELParser.cpp.o ../CMakeFiles/common.dir/src/IO/EntityDefinitionClassInfo.cpp.o ../CMakeFiles/common.dir/src/IO/EntityDefinitionLoader.cpp.o ../CMakeFiles/common.dir/src/IO/EntityDefinitionParser.cpp.o ../CMakeFiles/common.dir/src/IO/EntityModelLoader.cpp.o ../CMakeFiles/common.dir/src/IO/EntityModelParser.cpp.o ../CMakeFiles/common.dir/src/IO/EntParser.cpp.o ../CMakeFiles/common.dir/src/IO/FgdParser.cpp.o ../CMakeFiles/common.dir/src/IO/File.cpp.o ../CMakeFiles/common.dir/src/IO/FileMatcher.cpp.o ../CMakeFiles/common.dir/src/IO/FileSystem.cpp.o ../CMakeFiles/common.dir/src/IO/FreeImageTextureReader.cpp.o ../CMakeFiles/common.dir/src/IO/GameConfigParser.cpp.o ../CMakeFiles/common.dir/src/IO/GameEngineConfigParser.cpp.o ../CMakeFiles/common.dir/src/IO/GameEngineConfigWriter.cpp.o ../CMakeFiles/common.dir/src/IO/HlMipTextureReader.cpp.o ../CMakeFiles/common.dir/src/IO/IdMipTextureReader.cpp.o ../CMakeFiles/common.dir/src/IO/IdPakFileSystem.cpp.o ../CMakeFiles/common.dir/src/IO/ImageFileSystem.cpp.o ../CMakeFiles/common.dir/src/IO/ImageLoader.cpp.o ../CMakeFiles/common.dir/src/IO/ImageLoaderImpl.cpp.o ../CMakeFiles/common.dir/src/IO/IOUtils.cpp.o ../CMakeFiles/common.dir/src/IO/LegacyModelDefinitionParser.cpp.o ../CMakeFiles/common.dir/src/IO/M8TextureReader.cpp.o ../CMakeFiles/common.dir/src/IO/MapFileSerializer.cpp.o ../CMakeFiles/common.dir/src/IO/MapParser.cpp.o ../CMakeFiles/common.dir/src/IO/MapReader.cpp.o ../CMakeFiles/common.dir/src/IO/MapStreamSerializer.cpp.o ../CMakeFiles/common.dir/src/IO/Md2Parser.cpp.o ../CMakeFiles/common.dir/src/IO/Md3Parser.cpp.o ../CMakeFiles/common.dir/src/IO/MdlParser.cpp.o ../CMakeFiles/common.dir/src/IO/MdxParser.cpp.o ../CMakeFiles/common.dir/src/IO/MipTextureReader.cpp.o ../CMakeFiles/common.dir/src/IO/NodeReader.cpp.o ../CMakeFiles/common.dir/src/IO/NodeSerializer.cpp.o ../CMakeFiles/common.dir/src/IO/NodeWriter.cpp.o ../CMakeFiles/common.dir/src/IO/ObjParser.cpp.o ../CMakeFiles/common.dir/src/IO/ObjSerializer.cpp.o ../CMakeFiles/common.dir/src/IO/ParserStatus.cpp.o ../CMakeFiles/common.dir/src/IO/Path.cpp.o ../CMakeFiles/common.dir/src/IO/PathQt.cpp.o ../CMakeFiles/common.dir/src/IO/Quake3ShaderFileSystem.cpp.o ../CMakeFiles/common.dir/src/IO/Quake3ShaderParser.cpp.o ../CMakeFiles/common.dir/src/IO/Quake3ShaderTextureReader.cpp.o ../CMakeFiles/common.dir/src/IO/Reader.cpp.o ../CMakeFiles/common.dir/src/IO/ResourceUtils.cpp.o ../CMakeFiles/common.dir/src/IO/SimpleParserStatus.cpp.o ../CMakeFiles/common.dir/src/IO/SkinLoader.cpp.o ../CMakeFiles/common.dir/src/IO/StandardMapParser.cpp.o ../CMakeFiles/common.dir/src/IO/SystemPaths.cpp.o ../CMakeFiles/common.dir/src/IO/TextureCollectionLoader.cpp.o ../CMakeFiles/common.dir/src/IO/TextureLoader.cpp.o ../CMakeFiles/common.dir/src/IO/TextureReader.cpp.o ../CMakeFiles/common.dir/src/IO/Tokenizer.cpp.o ../CMakeFiles/common.dir/src/IO/WadFileSystem.cpp.o ../CMakeFiles/common.dir/src/IO/WalTextureReader.cpp.o ../CMakeFiles/common.dir/src/IO/WorldReader.cpp.o ../CMakeFiles/common.dir/src/IO/ZipFileSystem.cpp.o ../CMakeFiles/common.dir/src/Model/AssortNodesVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/AttributableNode.cpp.o ../CMakeFiles/common.dir/src/Model/AttributableNodeIndex.cpp.o ../CMakeFiles/common.dir/src/Model/AttributableNodeVariableStore.cpp.o ../CMakeFiles/common.dir/src/Model/AttributeNameWithDoubleQuotationMarksIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/AttributeValueWithDoubleQuotationMarksIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/BoundsContainsNodeVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/BoundsIntersectsNodeVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/Brush.cpp.o ../CMakeFiles/common.dir/src/Model/BrushBuilder.cpp.o ../CMakeFiles/common.dir/src/Model/BrushFace.cpp.o ../CMakeFiles/common.dir/src/Model/BrushFaceAttributes.cpp.o ../CMakeFiles/common.dir/src/Model/BrushFacePredicates.cpp.o ../CMakeFiles/common.dir/src/Model/BrushFaceReference.cpp.o ../CMakeFiles/common.dir/src/Model/BrushFaceSnapshot.cpp.o ../CMakeFiles/common.dir/src/Model/BrushSnapshot.cpp.o ../CMakeFiles/common.dir/src/Model/ChangeBrushFaceAttributesRequest.cpp.o ../CMakeFiles/common.dir/src/Model/CollectAttributableNodesVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/CollectMatchingNodesVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/CollectNodesWithDescendantSelectionCountVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/CollectRecursivelySelectedNodesVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/CollectSelectableBrushFacesVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/CollectSelectableNodesWithFilePositionVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/CompareHits.cpp.o ../CMakeFiles/common.dir/src/Model/CompilationConfig.cpp.o ../CMakeFiles/common.dir/src/Model/CompilationProfile.cpp.o ../CMakeFiles/common.dir/src/Model/CompilationTask.cpp.o ../CMakeFiles/common.dir/src/Model/ComputeNodeBoundsVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/EditorContext.cpp.o ../CMakeFiles/common.dir/src/Model/EmptyAttributeNameIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/EmptyAttributeValueIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/EmptyBrushEntityIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/EmptyGroupIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/Entity.cpp.o ../CMakeFiles/common.dir/src/Model/EntityAttributes.cpp.o ../CMakeFiles/common.dir/src/Model/EntityAttributeSnapshot.cpp.o ../CMakeFiles/common.dir/src/Model/EntityAttributesVariableStore.cpp.o ../CMakeFiles/common.dir/src/Model/EntityColor.cpp.o ../CMakeFiles/common.dir/src/Model/EntityRotationPolicy.cpp.o ../CMakeFiles/common.dir/src/Model/EntitySnapshot.cpp.o ../CMakeFiles/common.dir/src/Model/FindContainerVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/FindGroupVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/FindLayerVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/Game.cpp.o ../CMakeFiles/common.dir/src/Model/GameConfig.cpp.o ../CMakeFiles/common.dir/src/Model/GameEngineConfig.cpp.o ../CMakeFiles/common.dir/src/Model/GameEngineProfile.cpp.o ../CMakeFiles/common.dir/src/Model/GameFactory.cpp.o ../CMakeFiles/common.dir/src/Model/GameFileSystem.cpp.o ../CMakeFiles/common.dir/src/Model/GameImpl.cpp.o ../CMakeFiles/common.dir/src/Model/Group.cpp.o ../CMakeFiles/common.dir/src/Model/GroupSnapshot.cpp.o ../CMakeFiles/common.dir/src/Model/Hit.cpp.o ../CMakeFiles/common.dir/src/Model/HitAdapter.cpp.o ../CMakeFiles/common.dir/src/Model/HitFilter.cpp.o ../CMakeFiles/common.dir/src/Model/HitQuery.cpp.o ../CMakeFiles/common.dir/src/Model/HitType.cpp.o ../CMakeFiles/common.dir/src/Model/InvalidTextureScaleIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/Issue.cpp.o ../CMakeFiles/common.dir/src/Model/IssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/IssueGeneratorRegistry.cpp.o ../CMakeFiles/common.dir/src/Model/IssueQuickFix.cpp.o ../CMakeFiles/common.dir/src/Model/Layer.cpp.o ../CMakeFiles/common.dir/src/Model/LinkSourceIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/LinkTargetIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/LongAttributeNameIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/LongAttributeValueIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/MapFacade.cpp.o ../CMakeFiles/common.dir/src/Model/MapFormat.cpp.o ../CMakeFiles/common.dir/src/Model/MatchNodesByVisibility.cpp.o ../CMakeFiles/common.dir/src/Model/MatchSelectableNodes.cpp.o ../CMakeFiles/common.dir/src/Model/MergeNodesIntoWorldVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/MissingClassnameIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/MissingDefinitionIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/MissingModIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/MixedBrushContentsIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/ModelFactory.cpp.o ../CMakeFiles/common.dir/src/Model/ModelFactoryImpl.cpp.o ../CMakeFiles/common.dir/src/Model/ModelUtils.cpp.o ../CMakeFiles/common.dir/src/Model/Node.cpp.o ../CMakeFiles/common.dir/src/Model/NodeCollection.cpp.o ../CMakeFiles/common.dir/src/Model/NodePredicates.cpp.o ../CMakeFiles/common.dir/src/Model/NodeSnapshot.cpp.o ../CMakeFiles/common.dir/src/Model/NodeVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/NonIntegerPlanePointsIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/NonIntegerVerticesIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/Object.cpp.o ../CMakeFiles/common.dir/src/Model/ParallelTexCoordSystem.cpp.o ../CMakeFiles/common.dir/src/Model/ParaxialTexCoordSystem.cpp.o ../CMakeFiles/common.dir/src/Model/PickResult.cpp.o ../CMakeFiles/common.dir/src/Model/PlanePointFinder.cpp.o ../CMakeFiles/common.dir/src/Model/PointEntityWithBrushesIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/Model/PointFile.cpp.o ../CMakeFiles/common.dir/src/Model/Polyhedron_Instantiation.cpp.o ../CMakeFiles/common.dir/src/Model/PortalFile.cpp.o ../CMakeFiles/common.dir/src/Model/PushSelection.cpp.o ../CMakeFiles/common.dir/src/Model/RemoveEntityAttributesQuickFix.cpp.o ../CMakeFiles/common.dir/src/Model/Snapshot.cpp.o ../CMakeFiles/common.dir/src/Model/Tag.cpp.o ../CMakeFiles/common.dir/src/Model/TagAttribute.cpp.o ../CMakeFiles/common.dir/src/Model/TagManager.cpp.o ../CMakeFiles/common.dir/src/Model/TagMatcher.cpp.o ../CMakeFiles/common.dir/src/Model/TagVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/TakeSnapshotVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/TexCoordSystem.cpp.o ../CMakeFiles/common.dir/src/Model/TransformEntityAttributesQuickFix.cpp.o ../CMakeFiles/common.dir/src/Model/TransformObjectVisitor.cpp.o ../CMakeFiles/common.dir/src/Model/World.cpp.o ../CMakeFiles/common.dir/src/Model/WorldBoundsIssueGenerator.cpp.o ../CMakeFiles/common.dir/src/RecoverableExceptions.cpp.o ../CMakeFiles/common.dir/src/Renderer/ActiveShader.cpp.o ../CMakeFiles/common.dir/src/Renderer/AllocationTracker.cpp.o ../CMakeFiles/common.dir/src/Renderer/AttrString.cpp.o ../CMakeFiles/common.dir/src/Renderer/BoundsGuideRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/BrushRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/BrushRendererArrays.cpp.o ../CMakeFiles/common.dir/src/Renderer/BrushRendererBrushCache.cpp.o ../CMakeFiles/common.dir/src/Renderer/Camera.cpp.o ../CMakeFiles/common.dir/src/Renderer/Circle.cpp.o ../CMakeFiles/common.dir/src/Renderer/Compass.cpp.o ../CMakeFiles/common.dir/src/Renderer/Compass2D.cpp.o ../CMakeFiles/common.dir/src/Renderer/Compass3D.cpp.o ../CMakeFiles/common.dir/src/Renderer/EdgeRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/EntityLinkRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/EntityModelRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/EntityRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/FaceRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/FontDescriptor.cpp.o ../CMakeFiles/common.dir/src/Renderer/FontFactory.cpp.o ../CMakeFiles/common.dir/src/Renderer/FontGlyph.cpp.o ../CMakeFiles/common.dir/src/Renderer/FontGlyphBuilder.cpp.o ../CMakeFiles/common.dir/src/Renderer/FontManager.cpp.o ../CMakeFiles/common.dir/src/Renderer/FontTexture.cpp.o ../CMakeFiles/common.dir/src/Renderer/FreeTypeFontFactory.cpp.o ../CMakeFiles/common.dir/src/Renderer/GL.cpp.o ../CMakeFiles/common.dir/src/Renderer/GridRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/GroupRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/IndexRangeMap.cpp.o ../CMakeFiles/common.dir/src/Renderer/IndexRangeRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/MapRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/ObjectRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/OrthographicCamera.cpp.o ../CMakeFiles/common.dir/src/Renderer/PerspectiveCamera.cpp.o ../CMakeFiles/common.dir/src/Renderer/PointGuideRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/PointHandleRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/PrimType.cpp.o ../CMakeFiles/common.dir/src/Renderer/PrimitiveRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/Renderable.cpp.o ../CMakeFiles/common.dir/src/Renderer/RenderBatch.cpp.o ../CMakeFiles/common.dir/src/Renderer/RenderContext.cpp.o ../CMakeFiles/common.dir/src/Renderer/RenderService.cpp.o ../CMakeFiles/common.dir/src/Renderer/RenderUtils.cpp.o ../CMakeFiles/common.dir/src/Renderer/SelectionBoundsRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/Shader.cpp.o ../CMakeFiles/common.dir/src/Renderer/ShaderConfig.cpp.o ../CMakeFiles/common.dir/src/Renderer/ShaderManager.cpp.o ../CMakeFiles/common.dir/src/Renderer/ShaderProgram.cpp.o ../CMakeFiles/common.dir/src/Renderer/Shaders.cpp.o ../CMakeFiles/common.dir/src/Renderer/Sphere.cpp.o ../CMakeFiles/common.dir/src/Renderer/SpikeGuideRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/TextAnchor.cpp.o ../CMakeFiles/common.dir/src/Renderer/TextRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/TexturedIndexRangeMap.cpp.o ../CMakeFiles/common.dir/src/Renderer/TexturedIndexRangeRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/TextureFont.cpp.o ../CMakeFiles/common.dir/src/Renderer/Transformation.cpp.o ../CMakeFiles/common.dir/src/Renderer/TriangleRenderer.cpp.o ../CMakeFiles/common.dir/src/Renderer/VboManager.cpp.o ../CMakeFiles/common.dir/src/Renderer/Vbo.cpp.o ../CMakeFiles/common.dir/src/Renderer/VertexArray.cpp.o ../CMakeFiles/common.dir/src/View/AboutDialog.cpp.o ../CMakeFiles/common.dir/src/View/ActionContext.cpp.o ../CMakeFiles/common.dir/src/View/Actions.cpp.o ../CMakeFiles/common.dir/src/View/AddBrushVerticesCommand.cpp.o ../CMakeFiles/common.dir/src/View/AddRemoveNodesCommand.cpp.o ../CMakeFiles/common.dir/src/View/Animation.cpp.o ../CMakeFiles/common.dir/src/View/AppInfoPanel.cpp.o ../CMakeFiles/common.dir/src/View/Autosaver.cpp.o ../CMakeFiles/common.dir/src/View/BorderLine.cpp.o ../CMakeFiles/common.dir/src/View/BorderPanel.cpp.o ../CMakeFiles/common.dir/src/View/CachingLogger.cpp.o ../CMakeFiles/common.dir/src/View/CameraAnimation.cpp.o ../CMakeFiles/common.dir/src/View/CameraLinkHelper.cpp.o ../CMakeFiles/common.dir/src/View/CameraTool2D.cpp.o ../CMakeFiles/common.dir/src/View/CameraTool3D.cpp.o ../CMakeFiles/common.dir/src/View/CellView.cpp.o ../CMakeFiles/common.dir/src/View/ChangeBrushFaceAttributesCommand.cpp.o ../CMakeFiles/common.dir/src/View/ChangeEntityAttributesCommand.cpp.o ../CMakeFiles/common.dir/src/View/ChoosePathTypeDialog.cpp.o ../CMakeFiles/common.dir/src/View/ClipTool.cpp.o ../CMakeFiles/common.dir/src/View/ClipToolController.cpp.o ../CMakeFiles/common.dir/src/View/CollapsibleTitledPanel.cpp.o ../CMakeFiles/common.dir/src/View/ColorButton.cpp.o ../CMakeFiles/common.dir/src/View/ColorTable.cpp.o ../CMakeFiles/common.dir/src/View/Command.cpp.o ../CMakeFiles/common.dir/src/View/CommandProcessor.cpp.o ../CMakeFiles/common.dir/src/View/CompilationContext.cpp.o ../CMakeFiles/common.dir/src/View/CompilationDialog.cpp.o ../CMakeFiles/common.dir/src/View/CompilationProfileEditor.cpp.o ../CMakeFiles/common.dir/src/View/CompilationProfileListBox.cpp.o ../CMakeFiles/common.dir/src/View/CompilationProfileManager.cpp.o ../CMakeFiles/common.dir/src/View/CompilationRun.cpp.o ../CMakeFiles/common.dir/src/View/CompilationRunner.cpp.o ../CMakeFiles/common.dir/src/View/CompilationTaskListBox.cpp.o ../CMakeFiles/common.dir/src/View/CompilationVariables.cpp.o ../CMakeFiles/common.dir/src/View/Console.cpp.o ../CMakeFiles/common.dir/src/View/ContainerBar.cpp.o ../CMakeFiles/common.dir/src/View/ControlListBox.cpp.o ../CMakeFiles/common.dir/src/View/ConvertEntityColorCommand.cpp.o ../CMakeFiles/common.dir/src/View/CopyTexCoordSystemFromFaceCommand.cpp.o ../CMakeFiles/common.dir/src/View/CrashDialog.cpp.o ../CMakeFiles/common.dir/src/View/CreateBrushToolBase.cpp.o ../CMakeFiles/common.dir/src/View/CreateComplexBrushTool.cpp.o ../CMakeFiles/common.dir/src/View/CreateComplexBrushToolController3D.cpp.o ../CMakeFiles/common.dir/src/View/CreateEntityTool.cpp.o ../CMakeFiles/common.dir/src/View/CreateEntityToolController.cpp.o ../CMakeFiles/common.dir/src/View/CreateSimpleBrushTool.cpp.o ../CMakeFiles/common.dir/src/View/CreateSimpleBrushToolController2D.cpp.o ../CMakeFiles/common.dir/src/View/CreateSimpleBrushToolController3D.cpp.o ../CMakeFiles/common.dir/src/View/CurrentGameIndicator.cpp.o ../CMakeFiles/common.dir/src/View/CurrentGroupCommand.cpp.o ../CMakeFiles/common.dir/src/View/CyclingMapView.cpp.o ../CMakeFiles/common.dir/src/View/DirectoryTextureCollectionEditor.cpp.o ../CMakeFiles/common.dir/src/View/DocumentCommand.cpp.o ../CMakeFiles/common.dir/src/View/DuplicateNodesCommand.cpp.o ../CMakeFiles/common.dir/src/View/EdgeTool.cpp.o ../CMakeFiles/common.dir/src/View/EdgeToolController.cpp.o ../CMakeFiles/common.dir/src/View/ElidedLabel.cpp.o ../CMakeFiles/common.dir/src/View/EnableDisableTagCallback.cpp.o ../CMakeFiles/common.dir/src/View/EntityAttributeEditor.cpp.o ../CMakeFiles/common.dir/src/View/EntityAttributeGrid.cpp.o ../CMakeFiles/common.dir/src/View/EntityAttributeItemDelegate.cpp.o ../CMakeFiles/common.dir/src/View/EntityAttributeModel.cpp.o ../CMakeFiles/common.dir/src/View/EntityAttributeTable.cpp.o ../CMakeFiles/common.dir/src/View/EntityBrowser.cpp.o ../CMakeFiles/common.dir/src/View/EntityBrowserView.cpp.o ../CMakeFiles/common.dir/src/View/EntityDefinitionFileChooser.cpp.o ../CMakeFiles/common.dir/src/View/EntityDefinitionFileCommand.cpp.o ../CMakeFiles/common.dir/src/View/EntityInspector.cpp.o ../CMakeFiles/common.dir/src/View/FaceAttribsEditor.cpp.o ../CMakeFiles/common.dir/src/View/FaceInspector.cpp.o ../CMakeFiles/common.dir/src/View/FaceTool.cpp.o ../CMakeFiles/common.dir/src/View/FaceToolController.cpp.o ../CMakeFiles/common.dir/src/View/FileTextureCollectionEditor.cpp.o ../CMakeFiles/common.dir/src/View/FindPlanePointsCommand.cpp.o ../CMakeFiles/common.dir/src/View/FlagsEditor.cpp.o ../CMakeFiles/common.dir/src/View/FlagsPopupEditor.cpp.o ../CMakeFiles/common.dir/src/View/FlashSelectionAnimation.cpp.o ../CMakeFiles/common.dir/src/View/FlyModeHelper.cpp.o ../CMakeFiles/common.dir/src/View/FormWithSectionsLayout.cpp.o ../CMakeFiles/common.dir/src/View/FourPaneMapView.cpp.o ../CMakeFiles/common.dir/src/View/FrameManager.cpp.o ../CMakeFiles/common.dir/src/View/GameDialog.cpp.o ../CMakeFiles/common.dir/src/View/GameEngineDialog.cpp.o ../CMakeFiles/common.dir/src/View/GameEngineProfileEditor.cpp.o ../CMakeFiles/common.dir/src/View/GameEngineProfileListBox.cpp.o ../CMakeFiles/common.dir/src/View/GameEngineProfileManager.cpp.o ../CMakeFiles/common.dir/src/View/GameListBox.cpp.o ../CMakeFiles/common.dir/src/View/GamesPreferencePane.cpp.o ../CMakeFiles/common.dir/src/View/GetVersion.cpp.o ../CMakeFiles/common.dir/src/View/GLContextManager.cpp.o ../CMakeFiles/common.dir/src/View/Grid.cpp.o ../CMakeFiles/common.dir/src/View/ImageListBox.cpp.o ../CMakeFiles/common.dir/src/View/InfoPanel.cpp.o ../CMakeFiles/common.dir/src/View/InputEvent.cpp.o ../CMakeFiles/common.dir/src/View/InputState.cpp.o ../CMakeFiles/common.dir/src/View/Inspector.cpp.o ../CMakeFiles/common.dir/src/View/IssueBrowser.cpp.o ../CMakeFiles/common.dir/src/View/IssueBrowserView.cpp.o ../CMakeFiles/common.dir/src/View/KeyboardPreferencePane.cpp.o ../CMakeFiles/common.dir/src/View/KeyboardShortcut.cpp.o ../CMakeFiles/common.dir/src/View/KeyboardShortcutItemDelegate.cpp.o ../CMakeFiles/common.dir/src/View/KeyboardShortcutModel.cpp.o ../CMakeFiles/common.dir/src/View/KeySequenceEdit.cpp.o ../CMakeFiles/common.dir/src/View/Lasso.cpp.o ../CMakeFiles/common.dir/src/View/LaunchGameEngineDialog.cpp.o ../CMakeFiles/common.dir/src/View/LayerEditor.cpp.o ../CMakeFiles/common.dir/src/View/LayerListBox.cpp.o ../CMakeFiles/common.dir/src/View/LimitedKeySequenceEdit.cpp.o ../CMakeFiles/common.dir/src/View/MainMenuBuilder.cpp.o ../CMakeFiles/common.dir/src/View/MapDocument.cpp.o ../CMakeFiles/common.dir/src/View/MapDocumentCommandFacade.cpp.o ../CMakeFiles/common.dir/src/View/MapFrame.cpp.o ../CMakeFiles/common.dir/src/View/MapInspector.cpp.o ../CMakeFiles/common.dir/src/View/MapView.cpp.o ../CMakeFiles/common.dir/src/View/MapView2D.cpp.o ../CMakeFiles/common.dir/src/View/MapView3D.cpp.o ../CMakeFiles/common.dir/src/View/MapViewActivationTracker.cpp.o ../CMakeFiles/common.dir/src/View/MapViewBar.cpp.o ../CMakeFiles/common.dir/src/View/MapViewBase.cpp.o ../CMakeFiles/common.dir/src/View/MapViewConfig.cpp.o ../CMakeFiles/common.dir/src/View/MapViewContainer.cpp.o ../CMakeFiles/common.dir/src/View/MapViewToolBox.cpp.o ../CMakeFiles/common.dir/src/View/ModEditor.cpp.o ../CMakeFiles/common.dir/src/View/MousePreferencePane.cpp.o ../CMakeFiles/common.dir/src/View/MoveBrushEdgesCommand.cpp.o ../CMakeFiles/common.dir/src/View/MoveBrushFacesCommand.cpp.o ../CMakeFiles/common.dir/src/View/MoveBrushVerticesCommand.cpp.o ../CMakeFiles/common.dir/src/View/MoveObjectsTool.cpp.o ../CMakeFiles/common.dir/src/View/MoveObjectsToolController.cpp.o ../CMakeFiles/common.dir/src/View/MoveObjectsToolPage.cpp.o ../CMakeFiles/common.dir/src/View/MoveTexturesCommand.cpp.o ../CMakeFiles/common.dir/src/View/MultiCompletionLineEdit.cpp.o ../CMakeFiles/common.dir/src/View/MultiMapView.cpp.o ../CMakeFiles/common.dir/src/View/OnePaneMapView.cpp.o ../CMakeFiles/common.dir/src/View/PickRequest.cpp.o ../CMakeFiles/common.dir/src/View/PopupButton.cpp.o ../CMakeFiles/common.dir/src/View/PopupWindow.cpp.o ../CMakeFiles/common.dir/src/View/PreferenceDialog.cpp.o ../CMakeFiles/common.dir/src/View/PreferencePane.cpp.o ../CMakeFiles/common.dir/src/View/RecentDocumentListBox.cpp.o ../CMakeFiles/common.dir/src/View/RecentDocuments.cpp.o ../CMakeFiles/common.dir/src/View/RemoveBrushEdgesCommand.cpp.o ../CMakeFiles/common.dir/src/View/RemoveBrushElementsCommand.cpp.o ../CMakeFiles/common.dir/src/View/RemoveBrushFacesCommand.cpp.o ../CMakeFiles/common.dir/src/View/RemoveBrushVerticesCommand.cpp.o ../CMakeFiles/common.dir/src/View/RenameGroupsCommand.cpp.o ../CMakeFiles/common.dir/src/View/RenderView.cpp.o ../CMakeFiles/common.dir/src/View/ReparentNodesCommand.cpp.o ../CMakeFiles/common.dir/src/View/ReplaceTextureDialog.cpp.o ../CMakeFiles/common.dir/src/View/ResizeBrushesCommand.cpp.o ../CMakeFiles/common.dir/src/View/ResizeBrushesTool.cpp.o ../CMakeFiles/common.dir/src/View/ResizeBrushesToolController.cpp.o ../CMakeFiles/common.dir/src/View/RotateObjectsHandle.cpp.o ../CMakeFiles/common.dir/src/View/RotateObjectsTool.cpp.o ../CMakeFiles/common.dir/src/View/RotateObjectsToolController.cpp.o ../CMakeFiles/common.dir/src/View/RotateObjectsToolPage.cpp.o ../CMakeFiles/common.dir/src/View/RotateTexturesCommand.cpp.o ../CMakeFiles/common.dir/src/View/ScaleObjectsTool.cpp.o ../CMakeFiles/common.dir/src/View/ScaleObjectsToolController.cpp.o ../CMakeFiles/common.dir/src/View/ScaleObjectsToolPage.cpp.o ../CMakeFiles/common.dir/src/View/Selection.cpp.o ../CMakeFiles/common.dir/src/View/SelectionCommand.cpp.o ../CMakeFiles/common.dir/src/View/SelectionTool.cpp.o ../CMakeFiles/common.dir/src/View/SetBrushFaceAttributesTool.cpp.o ../CMakeFiles/common.dir/src/View/SetLockStateCommand.cpp.o ../CMakeFiles/common.dir/src/View/SetModsCommand.cpp.o ../CMakeFiles/common.dir/src/View/SetTextureCollectionsCommand.cpp.o ../CMakeFiles/common.dir/src/View/SetVisibilityCommand.cpp.o ../CMakeFiles/common.dir/src/View/ShearObjectsTool.cpp.o ../CMakeFiles/common.dir/src/View/ShearObjectsToolController.cpp.o ../CMakeFiles/common.dir/src/View/ShearTexturesCommand.cpp.o ../CMakeFiles/common.dir/src/View/SliderWithLabel.cpp.o ../CMakeFiles/common.dir/src/View/SmartAttributeEditor.cpp.o ../CMakeFiles/common.dir/src/View/SmartAttributeEditorManager.cpp.o ../CMakeFiles/common.dir/src/View/SmartAttributeEditorMatcher.cpp.o ../CMakeFiles/common.dir/src/View/SmartChoiceEditor.cpp.o ../CMakeFiles/common.dir/src/View/SmartChoiceEditorMatcher.cpp.o ../CMakeFiles/common.dir/src/View/SmartColorEditor.cpp.o ../CMakeFiles/common.dir/src/View/SmartDefaultAttributeEditor.cpp.o ../CMakeFiles/common.dir/src/View/SmartSpawnflagsEditor.cpp.o ../CMakeFiles/common.dir/src/View/SnapBrushVerticesCommand.cpp.o ../CMakeFiles/common.dir/src/View/SnapshotCommand.cpp.o ../CMakeFiles/common.dir/src/View/SpinControl.cpp.o ../CMakeFiles/common.dir/src/View/Splitter.cpp.o ../CMakeFiles/common.dir/src/View/SwitchableMapViewContainer.cpp.o ../CMakeFiles/common.dir/src/View/TabBar.cpp.o ../CMakeFiles/common.dir/src/View/TabBook.cpp.o ../CMakeFiles/common.dir/src/View/TextOutputAdapter.cpp.o ../CMakeFiles/common.dir/src/View/TextureBrowser.cpp.o ../CMakeFiles/common.dir/src/View/TextureBrowserView.cpp.o ../CMakeFiles/common.dir/src/View/TextureCollectionEditor.cpp.o ../CMakeFiles/common.dir/src/View/ThreePaneMapView.cpp.o ../CMakeFiles/common.dir/src/View/TitleBar.cpp.o ../CMakeFiles/common.dir/src/View/TitledPanel.cpp.o ../CMakeFiles/common.dir/src/View/Tool.cpp.o ../CMakeFiles/common.dir/src/View/ToolBox.cpp.o ../CMakeFiles/common.dir/src/View/ToolBoxConnector.cpp.o ../CMakeFiles/common.dir/src/View/ToolChain.cpp.o ../CMakeFiles/common.dir/src/View/ToolController.cpp.o ../CMakeFiles/common.dir/src/View/TransformObjectsCommand.cpp.o ../CMakeFiles/common.dir/src/View/TwoPaneMapView.cpp.o ../CMakeFiles/common.dir/src/View/UndoableCommand.cpp.o ../CMakeFiles/common.dir/src/View/UpdateEntitySpawnflagCommand.cpp.o ../CMakeFiles/common.dir/src/View/UVCameraTool.cpp.o ../CMakeFiles/common.dir/src/View/UVEditor.cpp.o ../CMakeFiles/common.dir/src/View/UVOffsetTool.cpp.o ../CMakeFiles/common.dir/src/View/UVOriginTool.cpp.o ../CMakeFiles/common.dir/src/View/UVRotateTool.cpp.o ../CMakeFiles/common.dir/src/View/UVScaleTool.cpp.o ../CMakeFiles/common.dir/src/View/UVShearTool.cpp.o ../CMakeFiles/common.dir/src/View/UVView.cpp.o ../CMakeFiles/common.dir/src/View/UVViewHelper.cpp.o ../CMakeFiles/common.dir/src/View/VariableStoreModel.cpp.o ../CMakeFiles/common.dir/src/View/VertexCommand.cpp.o ../CMakeFiles/common.dir/src/View/VertexHandleManager.cpp.o ../CMakeFiles/common.dir/src/View/VertexTool.cpp.o ../CMakeFiles/common.dir/src/View/VertexToolController.cpp.o ../CMakeFiles/common.dir/src/View/ViewConstants.cpp.o ../CMakeFiles/common.dir/src/View/ViewEditor.cpp.o ../CMakeFiles/common.dir/src/View/ViewEffectsService.cpp.o ../CMakeFiles/common.dir/src/View/ViewPreferencePane.cpp.o ../CMakeFiles/common.dir/src/View/ViewUtils.cpp.o ../CMakeFiles/common.dir/src/View/WelcomeWindow.cpp.o ../CMakeFiles/common.dir/src/View/QtUtils.cpp.o ../CMakeFiles/common.dir/src/Color.cpp.o ../CMakeFiles/common.dir/src/Ensure.cpp.o ../CMakeFiles/common.dir/src/FileLogger.cpp.o ../CMakeFiles/common.dir/src/Exceptions.cpp.o ../CMakeFiles/common.dir/src/Logger.cpp.o ../CMakeFiles/common.dir/src/PreferenceManager.cpp.o ../CMakeFiles/common.dir/src/Preference.cpp.o ../CMakeFiles/common.dir/src/Preferences.cpp.o ../CMakeFiles/common.dir/src/TrenchBroomApp.cpp.o ../CMakeFiles/common.dir/src/TrenchBroomStackWalker.cpp.o ../CMakeFiles/common.dir/common_autogen/mocs_compilation.cpp.o -o common-test ../../lib/tinyxml2/libtinyxml2.a ../../lib/glew/libglew.a ../../lib/miniz/libminiz.a /app/lib/libfreeimage.so /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-gnu/libOpenGL.so /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.7 /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.12.7 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12.7
make[2]: Leaving directory '/run/build/trenchbroom/_flatpak_build'
[ 98%] Built target dump-shortcuts
make -f app/CMakeFiles/TrenchBroom.dir/build.make app/CMakeFiles/TrenchBroom.dir/depend
make[2]: Entering directory '/run/build/trenchbroom/_flatpak_build'
[ 98%] Generating gen-manual/images
[ 98%] Generating gen-manual
cd /run/build/trenchbroom/_flatpak_build/app && /usr/bin/cmake -E make_directory /run/build/trenchbroom/_flatpak_build/app/gen-manual/images
cd /run/build/trenchbroom/_flatpak_build/app && /usr/bin/cmake -E make_directory /run/build/trenchbroom/_flatpak_build/app/gen-manual
[ 99%] Generating gen-manual/index.html
cd /run/build/trenchbroom/_flatpak_build/app && /app/bin/pandoc --standalone --toc --toc-depth=2 --template /run/build/trenchbroom/app/resources/documentation/manual/template.html --from=markdown --to=html5 -o /run/build/trenchbroom/_flatpak_build/app/gen-manual/index.html.tmp /run/build/trenchbroom/app/resources/documentation/manual/index.md
[ 99%] Generating gen-manual/default.css, gen-manual/shortcuts_helper.js
cd /run/build/trenchbroom/app/resources/documentation/manual && /usr/bin/cmake -E copy_if_different default.css shortcuts_helper.js /run/build/trenchbroom/_flatpak_build/app/gen-manual
[ 99%] Generating gen-manual/shortcuts.js
cd /run/build/trenchbroom/_flatpak_build/app && ../dump-shortcuts/dump-shortcuts /run/build/trenchbroom/_flatpak_build/app/gen-manual/shortcuts.js
qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.
cd /run/build/trenchbroom/_flatpak_build/common/benchmark && /usr/bin/cmake -E remove_directory /run/build/trenchbroom/_flatpak_build/common/benchmark/fixture
cd /run/build/trenchbroom/_flatpak_build/common/benchmark && /usr/bin/cmake -E copy_directory /run/build/trenchbroom/common/benchmark/fixture /run/build/trenchbroom/_flatpak_build/common/benchmark/fixture/benchmark
make[2]: *** [app/CMakeFiles/TrenchBroom.dir/build.make:83: app/gen-manual/shortcuts.js] Aborted (core dumped)
make[2]: *** Deleting file 'app/gen-manual/shortcuts.js'
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/run/build/trenchbroom/_flatpak_build'
[ 99%] Built target common-benchmark
cd /run/build/trenchbroom/_flatpak_build/app && /usr/bin/cmake -DINPUT="/run/build/trenchbroom/_flatpak_build/app/gen-manual/index.html.tmp" -DOUTPUT="/run/build/trenchbroom/_flatpak_build/app/gen-manual/index.html.tmp" -P /run/build/trenchbroom/_flatpak_build/app/AddVersionToManual.cmake
cd /run/build/trenchbroom/_flatpak_build/app && /usr/bin/cmake -DINPUT="/run/build/trenchbroom/_flatpak_build/app/gen-manual/index.html.tmp" -DOUTPUT="/run/build/trenchbroom/_flatpak_build/app/gen-manual/index.html.tmp" -P /run/build/trenchbroom/app/cmake/TransformKeyboardShortcuts.cmake
cd /run/build/trenchbroom/_flatpak_build/app && /usr/bin/cmake -E copy /run/build/trenchbroom/_flatpak_build/app/gen-manual/index.html.tmp /run/build/trenchbroom/_flatpak_build/app/gen-manual/index.html
cd /run/build/trenchbroom/_flatpak_build/app && /usr/bin/cmake -E remove /run/build/trenchbroom/_flatpak_build/app/gen-manual/index.html.tmp
make[2]: Leaving directory '/run/build/trenchbroom/_flatpak_build'
make[1]: *** [CMakeFiles/Makefile2:2035: app/CMakeFiles/TrenchBroom.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
cd /run/build/trenchbroom/_flatpak_build/common/test && /usr/bin/cmake -E remove_directory /run/build/trenchbroom/_flatpak_build/common/test/fixture
cd /run/build/trenchbroom/_flatpak_build/common/test && /usr/bin/cmake -E copy_directory /run/build/trenchbroom/common/test/fixture /run/build/trenchbroom/_flatpak_build/common/test/fixture/test
cd /run/build/trenchbroom/_flatpak_build/common/test && /usr/bin/cmake -E copy_directory /run/build/trenchbroom/app/resources/games /run/build/trenchbroom/_flatpak_build/common/test/fixture/games
cd /run/build/trenchbroom/_flatpak_build/common/test && /usr/bin/cmake -E copy_directory /run/build/trenchbroom/app/resources/games-testing /run/build/trenchbroom/_flatpak_build/common/test/fixture/games
make[2]: Leaving directory '/run/build/trenchbroom/_flatpak_build'
[ 99%] Built target common-test
make[1]: Leaving directory '/run/build/trenchbroom/_flatpak_build'
make: *** [Makefile:152: all] Error 2
Error: module trenchbroom: Child process exited with code 2
There's no backtrace for Ubuntu.
Ok, the Fedora one could be a static initialization problem. @ericwa Is it possible that the individual preferences in Preferences.h which are being put into a static vector in PreferenceManager::staticPreferences() might not yet be initialized at this point? They are extern, and I'm not sure when they would be initialized. Maybe making them static functions like some of the other preferences would be better?
Is it possible that the individual preferences in Preferences.h which are being put into a static vector in PreferenceManager::staticPreferences() might not yet be initialized at this point?
Shouldn't be possible; staticPreferences() isn't meant to be called from a from within a static initializer and I'm not seeing that. The stack trace shows that we're entering the std::vector<PreferenceBase*> constructor on this stack trace, which starts in main(), so at this point all static initializers have run already, and the fact that the vector constructor is running suggests this is the first call to staticPreferences() - which is what we want.
For the flatpak setup, this seems to be the important bit
qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.
Can you link to your current manifest so I can try it?
Is this any use as a reference? https://docs.flatpak.org/en/latest/qt.html
For the fedora problem, (this is the AMD R9 3900X, correct?) it would be useful to see the full verbose build log - I'd like to see the flags passed to gcc. I still have Fedora 32 on my system (AMD 2700X) so it'd be useful to compare.
Also the output of gcc -v and gcc -dumpmachine might be useful.
Can you link to your current manifest so I can try it?
Of course. This is the one from my Fedora machine. It isn't the latest one and doesn't have various experiments I've tried in order to solve this but it should build v2020.1 just fine.
https://gist.github.com/Sinihopea/058957ebed1916abb865316224e51edb
Is this any use as a reference? https://docs.flatpak.org/en/latest/qt.html
Yes but it's better to use the KDE's documentation. Following Flatpak's own Qt example will get you nowhere with a project like Trenchbroom.
https://community.kde.org/Guidelines_and_HOWTOs/Flatpak
For the fedora problem, (this is the AMD R9 3900X, correct?) it would be useful to see the full verbose build log - I'd like to see the flags passed to
gcc. I still have Fedora 32 on my system (AMD 2700X) so it'd be useful to compare.Also the output of
gcc -vandgcc -dumpmachinemight be useful.
Correct, Fedora machine uses Ryzen 9 3900X. I'll get those logs for you tomorrow. Meanwhile here's the other stuff...
gcc -v:
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/10/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.2.1 20200723 (Red Hat 10.2.1-1) (GCC)
gcc -dumpmachine:
cat /proc/cpuinfo:
processor : 0
vendor_id : AuthenticAMD
cpu family : 23
model : 113
model name : AMD Ryzen 9 3900X 12-Core Processor
stepping : 0
microcode : 0x8701021
cpu MHz : 2199.740
cache size : 512 KB
physical id : 0
siblings : 24
core id : 0
cpu cores : 12
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 16
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate sme ssbd mba sev ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip rdpid overflow_recov succor smca
bugs : sysret_ss_attrs spectre_v1 spectre_v2 spec_store_bypass
bogomips : 7600.13
TLB size : 3072 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 43 bits physical, 48 bits virtual
power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14]
Build.log attached:
build.tar.gz
This stuff didn't go down the pipe...
/home/antti/Git/TrenchBroom-Qt/lib/miniz/src/miniz.c:3031:9: note: ‘#pragma message: Using fopen, ftello, fseeko, stat() etc. path for file I/O - this path may not support large files.’
3031 | #pragma message("Using fopen, ftello, fseeko, stat() etc. path for file I/O - this path may not support large files.")
| ^~~~~~~
[WARNING] Duplicate identifier 'keyboard_shortcuts' at line 1112 column 1
/usr/bin/xvfb-run: line 181: 17601 Illegal instruction (core dumped) DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1
gmake[3]: *** [app/CMakeFiles/TrenchBroom.dir/build.make:107: app/gen-manual/shortcuts.js] Error 132
gmake[3]: *** Deleting file 'app/gen-manual/shortcuts.js'
gmake[2]: *** [CMakeFiles/Makefile2:1825: app/CMakeFiles/TrenchBroom.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:1833: app/CMakeFiles/TrenchBroom.dir/rule] Error 2
gmake: *** [Makefile:807: TrenchBroom] Error 2
I've updated the BIOS of this motherboard and I'm trying again now. Have you discovered anything relevant @ericwa from the flatpak file I submitted? Or have you had time to look into this even?
[ 98%] Generating gen-manual/shortcuts.js
cd /home/antti/Git/TrenchBroom-Qt/build/app && /usr/bin/xvfb-run -a /home/antti/Git/TrenchBroom-Qt/build/dump-shortcuts/dump-shortcuts /home/antti/Git/TrenchBroom-Qt/build/app/gen-manual/shortcuts.js
/usr/bin/xvfb-run: line 181: 8193 Illegal instruction (core dumped) DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1
gmake[3]: *** [app/CMakeFiles/TrenchBroom.dir/build.make:107: app/gen-manual/shortcuts.js] Error 132
gmake[3]: *** Deleting file 'app/gen-manual/shortcuts.js'
Right now it seems that it's xvfb-run which might be the problem. Or maybe not... I don't know. Core still gets generated by the dump-shortcuts....
Core was generated by `/home/antti/Git/TrenchBroom-Qt/build/dump-shortcuts/dump-shortcuts
I'm in X11 not in Wayland in Fedora. I'll probably switch distribution in near future to something slightly more stable if this is a Fedora issue.
Edit:
Running this:
cd /home/antti/Git/TrenchBroom/build/app && /usr/bin/xvfb-run -a /home/antti/Git/TrenchBroom/build/dump-shortcuts/dump-shortcuts /home/antti/Git/TrenchBroom/build/app/gen-manual/shortcuts.js
causes this: /usr/bin/xvfb-run: line 181: 17563 Illegal instruction (core dumped) DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1
Might be wrong. Just running:
cd /home/antti/Git/TrenchBroom/build/app && /home/antti/Git/TrenchBroom/build/dump-shortcuts/dump-shortcuts /home/antti/Git/TrenchBroom/build/app/gen-manual/shortcuts.js
causes: cuts /home/antti/Git/TrenchBroom/build/app/gen-manual/shortcuts.js
Illegal instruction (core dumped)
As I mentioned in the flathub issue, let's please share the flatpak instructions somewhere so we can all test it. The gist @Sinihopea has shared is incomplete and missing crucial information, so it's really hard to reproduce and figure out what's going on (The glu library source path is incorrect, and the flatpak stops building because it can't find pandoc)
So to summarize, there are 2 really unrelated issues discussed here:
dump-shortcuts crashing inside Qt code. This is a QApplication, so the build environment you run it in needs to be able run GUI apps. Please ensure you can launch other Qt apps inside this environment, a calculator etc.As I mentioned in the flathub issue, let's please share the flatpak instructions somewhere so we can all test it. The gist @Sinihopea has shared is incomplete and missing crucial information, so it's really hard to reproduce and figure out what's going on (The
glulibrary source path is incorrect, and the flatpak stops building because it can't findpandoc)
Sure. And it isn't incomplete and the path isn't incorrect for the glu. You need to pull the git submodules like in any other Flatpak packages which are using them. So basically it means that to build it you get:
https://github.com/flathub/shared-modules
This already comes in Trenchbroom Flatpak repository. All you need to do before attempting to build is IIRC to get the shared-modules directory as instructed on their page like e.g. git submodule update --remote --merge.
This is/was required because of the glu, gtk+ and wxwidgets. I'm not sure if the Qt version still requires glu. But it might be otherwise I would have removed it some months ago when I was attempting to build the 2020.1 to get it released. I think it did succeed building on my Thinkpad T430 but then it had some other issue I ran into.
And about the Pandoc... It probably fails because I fucked up and it doesn't create install directory before attempting to unpack pre-built Pandoc binary. I was in a rush and sleep deprived when I uploaded the Flatpak JSON receipe. Sorry! I'll get my gist updated ASP so that you'll be able to try building it. I'll try to get my Qt branch for others to try as well like you suggested in the Qt port ticket which I replied to as well.
Also like I wrote in the issue ticket in Flatpak-Trenchbroom page, it (probably) isn't possible to build the Pandoc in Flatpak environment. Pandoc has been written in Haskell and to be able to actually build it requires bootstrapping Haskell compiler and all the required components. I looked at the other more popular Flatpak projects which utilise Pandoc and none of them do it because of practical reasons. This is the reason why Trenchbroom Flatpak is 64-bit only also. I'd love to ship it for arm64, aarch64, x86 and x86_64. Also I'm admittedly not familiar with Flatpak enough to know if it's possible to write Flatpak receipe where module's download source is switched based on arch. I'm open for suggestions if you have any.
At least there apparently is a CMake option in Trenchbroom which prevents it from attempting to compile documentation so maybe we don't need Pandoc in future. At least I hope so because shipping more platforms is in my opinion more important than shipping with documentation which people are able to read from online sources if necessary.
Edit: Ok, I've updated the gist.
https://gist.github.com/Sinihopea/058957ebed1916abb865316224e51edb
You have few different options when it comes to attempting to build the TB Flatpak recipe. But I'd suggest that you clone the current TB Flatpak repo, place the gist version into it, do the git submodule thing as instructed on the Flatpak shared-components page and then attempt building the Flatpak the usual way with e.g. flatpak-builder --ccache --force-clean --repo=repo app com.kristianduske.TrenchBroom.json and it should attempt to compile it.
You could also do it from scratch by creating empty directory, placing the recipe there, then performing a new init of shared-components, update the JSON Flatpak recipe with whatever is the version of GLU they now ship, then copy the required files (appinfo.xml and freeimage.patch) and then attempt building it.
So to summarize, there are 2 really unrelated issues discussed here:
1. I'm blaming the AMD R9 3900X issues on hardware/OS/BIOS, as I've been unable to reproduce on the same Fedora version on my AMD 2700X. 2. `dump-shortcuts` crashing inside Qt code. This is a QApplication, so the build environment you run it in needs to be able run GUI apps. Please ensure you can launch other Qt apps inside this environment, a calculator etc.
I agree. This is pretty much the situation and there are two problems. And I should to add that...
Building inside Fedora VM using Fedora host on this machine does produce working Trenchbroom binary which then can be copied to host machine and everything works as intended. I hope this suggests that there isn't a hardware problem but a software issue with Fedora as an OS or my current configuration. It's just that VM cannot be used to build the Flatpak itself because of the second issue.
Like I wrote in my previous message into this topic. I don't think I know enough about Flatpak. But it could be that Flatpak doesn't allow X connections outside its build environment due to security concerns just like it doesn't allow internet connectivity from its build environment. There might be some option to open portal so it can do it. But at least now I don't know how. I've tried looking at other Flatpak build recipes for guidance but haven't noticed anything which would help here.
Is it not possible for a flatpak build script to depend on pandoc being installed on the host system's package manager (e.g. fedora)?
We don't use glu. (TB does require GLEW; we provide our own copy via a git submodule)
Is it not possible for a flatpak build script to depend on pandoc being installed on the host system's package manager (e.g. fedora)?
No. All build dependencies have to be provided by the Flatpak build environment as far as I understand it. This is because of the sandboxing in Flatpak. There are portals however which are open into the host system. That way e.g. GCC is visible in the build environment. But I don't know exactly how it all works but it is very limited by design. The rest is provided by the Flatpak runtimes which in-generally contain collections of software, mostly shared libraries, required for running Flatpak packaged programs. And also SDKs which are required for building programs to be packaged in Flatpak format.
We don't use glu. (TB does require GLEW; we provide our own copy via a git submodule)
Ok, good to know. I'll get rid of the shared-components if it doesn't require it any longer. It did require it at some point because building TB did fail when you guys were using WXWidgets if the GLU wasn't there.
Edit: Ok, the X not being there is starting to become clearer... These are the default restrictions for the Flatpaks in-general (and presumably also for the build environment)...
No access to any host files except the runtime, the app and ~/.var/app/$APPID. Only the last of these is writable.
No access to the network.
No access to any device nodes (apart from /dev/null, etc).
No access to processes outside the sandbox.
Limited syscalls. For instance, apps can’t use nonstandard network socket types or ptrace other processes.
Limited access to the session D-Bus instance - an app can only own its own name on the bus.
No access to host services like X, system D-Bus, or PulseAudio.
Source: https://flatpak-testing.readthedocs.io/en/latest/working-with-the-sandbox.html
OH SHIT. I probably figured it out on my Ubuntu machine by setting QT_QPA_PLATFORM=offscreen for the Flatpak build environment.
Ok, I've managed to successfully build a flatpak of TB-Qt 2020.1 release on my Intel-based Thinkpad T430 running latest Ubuntu LTS 20.04 distribution. It still requires some clean up and adjustments before I'll push it but it seems to be working as intended after 15 minutes of testing.
I managed to create a Daikatana level and a Quake level and save them. Haven't attempted building or running on Fedora yet because it's getting late. But I suspect that the issues with my AMD-based workstation still persist. However I'll try tomorrow to see if anything has changed on that front.
Edit: Such a massive relief that this is moving now forward.
Building 2020.2 also succeeded on my Thinkpad after making necessary changes to the JSON recipe. I'll push it out by tomorrow evening and then hope that flathub system will accept it without issues and push the updated package to everyone. (I hope it won't start a shitstorm that the freedesktop runtime has now changed to kde plasma runtime.) I'll head to bed now.
OK, it sounds like everything was resolved?
Most helpful comment
Building 2020.2 also succeeded on my Thinkpad after making necessary changes to the JSON recipe. I'll push it out by tomorrow evening and then hope that flathub system will accept it without issues and push the updated package to everyone. (I hope it won't start a shitstorm that the freedesktop runtime has now changed to kde plasma runtime.) I'll head to bed now.