diff -up ./gazebo/gazebo_main.cc.wayland ./gazebo/gazebo_main.cc
--- ./gazebo/gazebo_main.cc.wayland 2019-03-28 20:58:31.000000000 -0400
+++ ./gazebo/gazebo_main.cc 2020-04-18 21:28:37.920694447 -0400
@@ -131,6 +131,25 @@ int main(int _argc, char **_argv)
return 0;
}
+ std::vector<std::string> newEnv;
+ char **environment = environ;
+
+ while(*environment != nullptr)
+ {
+ newEnv.push_back(*environment);
+ ++environment;
+ }
+ newEnv.push_back("QT_QPA_PLATFORM=xcb");
+
+ char** modifiedEnv = (char**)malloc(sizeof(char*) * newEnv.size() + 1);
+ modifiedEnv[newEnv.size()] = nullptr;
+
+ for(size_t ii = 0; ii < newEnv.size(); ++ii)
+ {
+ modifiedEnv[ii] = &newEnv[ii][0];
+ }
+
+
struct sigaction sigact;
sigact.sa_flags = 0;
sigact.sa_handler = sig_handler;
@@ -199,7 +218,7 @@ int main(int _argc, char **_argv)
{
// remove client from foreground process group
setpgid(0, 0);
- execvp(argvClient[0], argvClient);
+ execvpe(argvClient[0], argvClient, modifiedEnv);
}
}
else