Re: [Interest] QDesktopServices::openUrl() without inheriting environment?
On 23/10/2020 18:50, Olivier B. wrote: An application needs custom library search path to use it's own versions of external libraries. You should look into doing that at link-time, not runtime. With a qmake project, you should be able to add: QMAKE_RPATHDIR += lib in the project file. Make sure it's a relative directory. In this example, the runtime loader will look for a "lib" directory in the same directory as the executable and prefer libraries that exist there. This uses the linker's $ORIGIN feature to do this. This means you don't have to set LD_LIBRARY_PATH prior to starting your application and thus external processes launched through QDesktopServices::openUrl() will not use your bundled libs. You can also something like "../lib" instead, if your application's directory structure uses the traditional "bin" and "lib" layout. The important thing is whatever you specify is a relative path. ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
Re: [Interest] QDesktopServices::openUrl() without inheriting environment?
On Friday, 23 October 2020 08:50:07 PDT Olivier B. wrote: > Is there a way to still use the mechanism to find the application to use > from system settings, but launch the command with the default system > environment, not the one inherited from the application's process > (something like calling the command with env -i) ? No, there's no such code in Qt and it's not likely we'll ever have it. Second, you can't clean the environment. At the very least you need the DISPLAY and XAUTHORITY variables, possibly all of the XDG_* ones too. You're far more likely to be able to remove the variables you don't want / need from the application's own environment using unsetenv(3). -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel DPG Cloud Engineering ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] QDesktopServices::openUrl() without inheriting environment?
An application needs custom library search path to use it's own versions of external libraries. But because of this, when opening files in external applications using QDesktopServices::openUrl(), the system applications (browser) registered for the file type will first try to use the application's version of the libraries, instead of the system ones the browser is supposed to depend on. FreeType dependency in particular, seems to make executables that depend on libfreetype.so.6, name which has been used at least between version 2.6 and 2.9. The newer ones having additional new symbols. The application, here, uses a 2.7 Freetype, but the browser needs at least FreeType 2.9, so launching the browser from the application fails because the newer Freetype symbols are not found. Is there a way to still use the mechanism to find the application to use from system settings, but launch the command with the default system environment, not the one inherited from the application's process (something like calling the command with env -i) ? ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest