Skip to content
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

Jack2 library version in homebrew: libjack.0.dylib vs libjack.0.1.0.dylib #733

Closed
dyfer opened this issue Mar 12, 2021 · 4 comments
Closed
Labels

Comments

@dyfer
Copy link

dyfer commented Mar 12, 2021

Describe the bug

My apologies if this should be rather reported to homebrew.

It seems that software compiled against homebrew jack2 links against libjack.0.1.0.dylib, while software compiled against jack2 from the official installer links against libjack.0.dylib. The latter is more compatible and allows that software to also run with older jack (namely JackOSX distribution).

Is there a way to make libjack.0.dylib take precedence in the homebrew version?

Homebrew provides a slightly patched version of Jack 1.9.17, see #640 (comment) and https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/jack.rb#L31

This results in software built agains homebrew jack2 not running with the old JackOSX. #640 is about the issue "the other way around" (software built against JackOSX not running on Jack2).

@fanninpm do you have any ideas about this?

Environment

  • JACK Version: 1.9.17 (bulid), 1.9.11 (run)
  • Operating System: macOS
  • Installation: installer; homebrew

Steps To Reproduce

  1. Install Jack2 with homebrew or using the installer
  • brew install jack
  1. compile 3rd party software that uses jack
  2. move that software to another machine with JackOSX (1.9.11) installed
  3. run 3rd party software

If the 3rd party app is built agains Jack2 from the official installer - the application runs. If it's built against Jack2 from homebrew - it doesn't run with the older Jack.

Here's an output from otool on JackTrip compiled against Jack2 from homebrew and from the official installer:
Jack2 from homebrew:

$ otool -L jacktrip
jacktrip:
	/usr/local/opt/jack/lib/libjack.0.1.0.dylib (compatibility version 0.1.0, current version 1.9.17)

Jack2 from the installer:

$ otool -L jacktrip
jacktrip:
	/usr/local/opt/jack/lib/libjack.0.dylib (compatibility version 0.0.0, current version 0.1.0)

Expected vs. actual behavior

Expected: software built against homebrew Jack2 runs on older Jack (JackOSX).
Actual: software built against homebrew Jack2 doesn't run on older Jack (JackOSX)

@dyfer dyfer added the bug label Mar 12, 2021
@fanninpm
Copy link

Which version of macOS are you compiling with?

@dyfer
Copy link
Author

dyfer commented Mar 12, 2021

Which version of macOS are you compiling with?

10.15

@fanninpm
Copy link

Try forking the Homebrew core repository, editing the jack formula (removing the OS version constraints in the install block), and building jack2 from source.

@dyfer
Copy link
Author

dyfer commented Mar 12, 2021

Sorry, I must've had an older version of Jack2 installed (1.9.16?). The behavior is the same for homebrew Jack2, altered homebrew Jack2 (removed OS contraints) and current Jack 1.9.17 - all result in creating binaries linked with ...0.1.0.dylib. I'll open another issue to clarify. Sorry for the noise @fanninpm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants