Closed Geod24 closed 1 week ago
✅ PR OK, no changes in deprecations or warnings
Total deprecations: 0
Total warnings: 0
Build statistics:
statistics (-before, +after)
executable size=5242696 bin/dub
-rough build time=60s
+rough build time=61s
[INFO] Running /Users/runner/work/dub/dub/test/issue2377-dynLib-dep-extra-files.script.d...
Starting Performing "debug" build using dmd for x86_64.
Building dep2 ~master: building configuration [dynlib]
Linking dep2
Building dep1 ~master: building configuration [dynlib]
Linking dep1
Building parent ~master: building configuration [dynlib]
Linking parent
Starting Performing "debug" build using dmd for x86_64.
Building dep2 ~master: building configuration [library]
Building dep1 ~master: building configuration [library]
Building parent ~master: building configuration [dynlib_static]
Linking parent
Starting Performing "debug" build using dmd for x86_64.
Building dep2 ~master: building configuration [library]
Building dep1 ~master: building configuration [library]
Building parent ~master: building configuration [exe_static]
Linking parent
Starting Performing "debug" build using dmd for x86_64.
Up-to-date dep2 ~master: target for configuration [dynlib] is up to date.
Up-to-date dep1 ~master: target for configuration [dynlib] is up to date.
Building parent ~master: building configuration [exe_dynamic]
Linking parent
Finished To force a rebuild of up-to-date targets, run again with --force
dyld[9574]: Library not loaded: '@rpath/libdep1.dylib'
Referenced from: '/Users/runner/work/dub/dub/test/issue2377-dynLib-dep-extra-files/parent/output/exe_dynamic/parent'
Reason: tried: '/usr/local/lib/libdep1.dylib' (no such file), '/usr/lib/libdep1.dylib' (no such file)
object.Exception@test/issue2377-dynLib-dep-extra-files.script.d(110): command 'LD_LIBRARY_PATH=".:${LD_LIBRARY_PATH:-}" ./parent' failed
----------------
/Users/runner/hostedtoolcache/dc/dmd-2.109.0/x64/dmd2/osx/bin/../../src/phobos/std/exception.d:521 pure @safe noreturn std.exception.bailOut!(Exception).bailOut(immutable(char)[], ulong, scope const(char)[]) [0x10e4395fb]
/Users/runner/hostedtoolcache/dc/dmd-2.109.0/x64/dmd2/osx/bin/../../src/phobos/std/exception.d:442 pure @safe bool std.exception.enforce!().enforce!(bool).enforce(bool, lazy const(char)[], immutable(char)[], ulong) [0x10e439576]
/Users/runner/work/dub/dub/test/issue2377-dynLib-dep-extra-files.script.d:110 void issue2377_dynlib_dep_extra_files.script.run(immutable(char)[]) [0x10e438de7]
/Users/runner/work/dub/dub/test/issue2377-dynLib-dep-extra-files.script.d:81 _Dmain [0x10e438ae1]
Error Program exited with code 1
[ERROR] Script failure.
@jacob-carlborg : Any chance you could take a look ? I don't have a Macbook anymore so I haven't kept on top of things. I'm mostly concerned about whether there's a bugfix needed in Dub or the test just need to be adjusted ?
@Geod24 I can take a quick look, but I'm lazy. How do I run the tests?
This is what we do on POSIX: https://github.com/dlang/dub/blob/dd94e4854d5c2b640091651ea22d62844286ee6d/.github/workflows/main.yml#L100-L109
In particular, ./scripts/ci/ci.sh
.
@Geod24 I gave it a quick try, I can't easily get it to work. Probably because I have an Apple Silicon Mac. I'm not the only one with a Mac. Both @schveiguy and @thewilsonator are using Mac. At least the last time I met them. I'm sure there are others as well. Alternatively you can use this action [1] to get a shell into the runner and debug it from there.
Long story short: install_name_tool -add_rpath [@executable_path](http://twitter.com/executable_path) parent
Source: https://medium.com/@donblas/fun-with-rpath-otool-and-install-name-tool-e3e41ae86172
@Geod24 why not bump to macOS 13 while you're at it?
We test (and release) on the oldest available runner. My understanding is that you can run a macOS-12 binary on 13 but not the other way around unless you set the SDK version explicitly?
My understanding is that you can run a macOS-12 binary on 13 but not the other way around unless you set the SDK version explicitly?
Yes, that's correct. I would use the latest runner (latest for x86-64) and set the minimum deployment target. Then we're in control of which platforms we want to support. Also less often the runner version needs to be bumped. Set the MACOSX_DEPLOYMENT_TARGET
environment variable to the oldest version of macOS you want to support.
macOS-14 is out so we could probably bump to that. I'll give it a shot in the not-so-distant future - this was really just a band-aid as we were hit by macOS-11 brownout when trying to merge other MRs.
The macOS-14 runner is ARM64 only, unless GitHub added x86-64 recently.
we were hit by macOS-11 brownout
Yeah, I've learned the hard way that, if you can, stay on *-latest
and try not to depend on anything in the runner image.
macOS-11 is going away at the end of June.