mixxxdj / buildserver

Tools for managing the Mixxx build server and build VMs.
12 stars 23 forks source link

macOS environment is not relocatable #44

Closed rryan closed 5 years ago

rryan commented 6 years ago

The dylibs and binaries produced by the macOS environment are not movable since their dependencies are encoded with absolute paths instead of relative paths. This means others cannot download the environment and use it, since the binaries (protoc, moc, etc.) won't work. The dylibs get fixed to be bundle-relative with install_name_tool by Mixxx's packaging process, so this is why it went unnoticed.

e.g.


otool -L environments/2.1-j00016-21856a6-osx10.7-x86_64-release/lib/libshout.dylib
environments/2.1-j00016-21856a6-osx10.7-x86_64-release/lib/libshout.dylib:
    /Users/mixxx/bs-2.1-mac/amd64/environment/2.1-j00016-21856a6-osx10.7-x86_64-release/lib/libshout.3.dylib (compatibility version 6.0.0, current version 6.0.0)
    /Users/mixxx/bs-2.1-mac/amd64/environment/2.1-j00016-21856a6-osx10.7-x86_64-release/lib/libvorbis.0.dylib (compatibility version 5.0.0, current version 5.8.0)
    /Users/mixxx/bs-2.1-mac/amd64/environment/2.1-j00016-21856a6-osx10.7-x86_64-release/lib/libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    /Users/mixxx/bs-2.1-mac/amd64/environment/2.1-j00016-21856a6-osx10.7-x86_64-release/lib/libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)