-
Notifications
You must be signed in to change notification settings - Fork 669
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
macdeployqt.py picks the wrong version of the dependencies if they're present in the $PATH #6154
Comments
I didn't look too much into the packaging code, for a quick fix, I removed the library detection code by letting it directly return I've tested it on some other MAC machines except my dev one. |
Thanks for pointing this out @ArthurChiao - indeed improving the packaging script is in the client's roadmap (see #5447), a replacement is very likely to happen in the near future. |
@SamuAlfageme nice! Drop me a message if i could be of any help. |
We no longer use the script. |
Expected behaviour
On
MAC OSX
, build the installer, install it, then start it successfully.More about the building process see my sharing in #5594 .
Actual behaviour
Build & install ok, but client crashed on starting.
Crash info from command line:
OS and software
Root Cause
I have two
libxml2.2.dylib
s in my system, each in/usr/lib
and/opt/local/lib
. The one in/usr/lib/
is old but in protected (restricted
) mode, I could not upgrade it. The new one is automatically installed as dependent libs bysudo port install qt5 qt5-webkit
.I could start the compiled client successfully (pre-packaging), which uses
/opt/local/lib/libxml2.2.dylib
, but the packaged one will crash, which uses/usr/lib/libxml2.2.dylib
.Looking into the packaging code, I found that in
macdeployqt.py
, the script checks all dependent libraries in/lib
and/usr/lib
see code here, if found, it will make the later installed client load the corresponding libarary from the path.So, i think here is the root cause: the script detects the lib exists in
/usr/lib
, then make the to-be-installed-client to load the lib from there, before verifiying that whether the version meets the client needs.The
libxml2.2.dylib
is not the only one suffers from this, but the first one to be loaded, which directly causes the client to crash.The text was updated successfully, but these errors were encountered: