-
Notifications
You must be signed in to change notification settings - Fork 371
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
macOS dylib location/compatibility #640
Comments
What exactly is different? both use /usr/local prefix |
Ah I see, JackOSX indeed has put libjack in EDIT: I also see |
Right, that.. it is just a symlink to the jack dylib actually, so that it works as a framework. |
Okay, thanks. I was setting this on a machine without build environment set up yet and was using downloaded binary of JackTrip. I also naively tried to create a symlink from dylib in Is there any way new jack2 could provide binary compatibility with software compiled for "old" jackosx? |
The version set for the library is a bit meaningless. Cant you recompile jacktrip instead? Or ask for new binaries. |
Thank you for prompt responses. |
tbh, I would prefer to not have the framework stuff. It is something specific of macOS, and not really needed in the end. there is a native tool (install_name_tool) to change the path of dependencies for dylib files, so I guess that same tool can do it for versions. |
all right, thank you for the information! |
I've dug a bit more and while trying to build another software with jack/jackosx and I noticed that jack path found by cmake was indeed in
Does that mean that there's no way to link against jackosx but drop that dependency on the framework? |
Really seems best to link against the new jack2 package. the binary will keep working for the old installer because the lib-compat version is lower and /usr/local/lib/libjack.dylib is also present there, well if anyone cares about that anyway. with apple-sillicon (arm64) coming soon, new binaries are going to be needed anyway. |
one more piece of information:
So software built using that version will not load the dylib from the current jack2. Could this be remedied by increasing jack2 dylib's version? |
I was not aware jack1 did that. ok, good enough of a reason to bump the version in jack2 as well. Updated installer will appear in https://github.com/jackaudio/jack2-releases/releases in some minutes, please try it |
Thanks @falkTX |
errr, did not expect that, good to know. |
Yes, both the versions compiled against jack1 as well as jack2 1.9.16 work once I copy |
Re: dylib/framework issue. |
I am looking into this, but waf makes it complicated. |
Thanks! Edit: another major software that can use Jack directly on macOS is Ardour. Just checked and it does work with the new jack2. |
I think I have something that works in 0f2e3b2 |
Thanks, will test soon. |
It is not a header file, so it is not installed for use like that. A few recent projects have been using https://github.com/x42/weakjack/ which seems to work well. |
Thank you for pointers about this. Since you've pointed to two implementations, and I saw e.g. Ardour having its own, I gather there's no one preferred library/method to do weak linking, is that correct? |
|
Oh I missed that part. Indeed as seen in https://travis-ci.org/github/jackaudio/jack2-releases/jobs/736705699#L5729 there is no such symlink created. Apart from the symlink, does it work regarding version now? |
FYI triggered a new build which should fix the missing symlink, in theory |
The new build seems to work now, the symlink is there |
On a semi-unrelated note, I'm in the process of upgrading Homebrew's jack from v1 to v2. However, the 10.13 CI fails for a similar reason when it tries to test dependent packages (
I also find it odd that it doesn't fail on 10.14 or 10.15. |
@falkTX sorry, I think I checked a wrong build of my app (built against recent jack2). It seems that the lastest build still has compatibility version |
Then I dont quite get that logic. |
I really don't know, sorry. FWIW my understanding is similar to yours, but I really have no experience with this. I'm happy to run more tests if that helps. Here is output of app compiled for jack1:
and just to be sure:
EDIT: It is also possible that I'm doing something wrong... |
That may be the intended behaviour, but it currently is not the case. git checkout dc6c9959edb6c9807200aa7f1bbc894b59d74b64
./waf configure
./waf build --verbose
A dirty hack around this issue until it is resolved: export LDFLAGS="-Wl,-compatibility_version,1 -Wl,-current_version,1.9.16"
./waf configure
./waf build --verbose
./waf install
|
I seem to have encountered the same issue when trying to use jacktrip with the latest jack 2 installer on macOS. It looks like this: Does anyone know if there is any binary out there that would solve this problem? Some previous version that would solve it? Tried a few older releases of the Jack 2 installer for macOS, but the problem persisted. I am asking since neither me nor the users I am working with have knowledge on how to build Jack 2 locally. |
@andersvincent the solution for jacktrip is to use JackOSX instead of jack2 for the time being. Links are provided on CCRMA's jacktrip website(s). On Catalina you can't use jackpilot, but you still can use qjackctl provided with JackOSX, AFAIU. |
Has anyone figured out a good way to do this? |
ask the jacktrip maintainers to make a new release? or just build it yourself, since the project is opensource (correct?) |
Hi @falkTX. I've tried building jacktrip with jack installed using Xcode but haven't had any luck. Have you had success building jacktrip with jack installed, and if so, how did you go about it? |
@michaelcaterisano the latest release of jacktrip should be compatible with both current jack2 and the old jackosx. EDIT: I was referring to JackTrip version 1.3.0. It seems it's not yet posted to the github release page, but can be downloaded from https://ccrma.stanford.edu/software/jacktrip/osx/index.html |
@falkTX not sure if you want to keep this thread open - it is somewhat relevant until jack software on macOS stops being built against jackosx. That might only be PureData at the moment (though I haven't checked their status in the last month or so). |
Have the maintainers of PureData being notified? If yes, then I guess it is fine to close this one. |
Alright, lets stop here then. |
Hello,
I've used a recent jack2 installer to get jack2 on macOS Catalina.
I've noticed that the location of jack libraries is different from the ones in the old JackOSX package, and thus software compiled with jack support against JackOSX fails to start (JackTrip in this case).
Is compatibility with clients compiled against old jack on macOS something that is possible to achieve?
The text was updated successfully, but these errors were encountered: