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

jack 1.9.21 #99640

Closed
wants to merge 1 commit into from
Closed

jack 1.9.21 #99640

wants to merge 1 commit into from

Conversation

HaHeho
Copy link
Contributor

@HaHeho HaHeho commented Apr 19, 2022

Created with brew bump-formula-pr.

@BrewTestBot BrewTestBot added the bump-formula-pr PR was created using `brew bump-formula-pr` label Apr 19, 2022
@HaHeho
Copy link
Contributor Author

HaHeho commented Apr 19, 2022

This update is quite important since the versions before 1.19.21 had some breaking incompatibility with MacOS 11 and MacOS 12 (see e.g. jackaudio/jack2#841).

I have no experience with homebrew formulas. Therefore, I don't really know how to fix this.
@chenrui333 @nandahkrishna do you have an idea? (tagging you since both of you participated in the last attempt to bump #93194)

Currently the test fails on

  ==> Testing jack
  ==> /opt/homebrew/Cellar/jack/1.9.21/bin/jack_wait --wait --timeout 10
  Error: test failed
  Failed to execute: /opt/homebrew/Cellar/jack/1.9.21/bin/jack_wait

Is this maybe related to the move of the "jack example tools" into their own repository?

@nandahkrishna
Copy link
Member

Is this maybe related to the move of the "jack example tools" into their own repository?

It seems like jack_wait may have moved to that repository. I can take a look at this and attempt a fix in a while.

@falkTX
Copy link

falkTX commented Apr 19, 2022

You can use --example-tools to get the old behaviour back, but be advised these tools are only included for this release, they will be removed in the next one.
See https://jackaudio.org/news/2022/01/15/jack1-v01260-and-jack2-v1920-releases.html for more details

@nandahkrishna nandahkrishna added the CI-no-fail-fast Continue CI tests despite failing GitHub Actions matrix builds. label Apr 20, 2022
@nandahkrishna
Copy link
Member

nandahkrishna commented Apr 20, 2022

@falkTX I'm facing an issue when building the extra tools locally. On macOS, the internal clients aren't built (Build internal zita-a2j/j2a client : no) so I'm seeing this error:

../tools/meson.build:83:0: ERROR: Unknown variable "c_args_jack_unload".

Would you happen to know how to fix this? Hopefully, the CI logs should also be available soon.

@falkTX
Copy link

falkTX commented Apr 20, 2022

meson version too old? there should be another error before that one I suppose.
@dvzrv might know more, he is the one that setup most of the meson related stuff

@dvzrv
Copy link

dvzrv commented Apr 20, 2022

@falkTX I'm facing an issue when building the extra tools locally. On macOS, the internal clients aren't built (Build internal zita-a2j/j2a client : no) so I'm seeing this error:

../tools/meson.build:83:0: ERROR: Unknown variable "c_args_jack_unload".

Would you happen to know how to fix this? Hopefully, the CI logs should also be available soon.

@nandahkrishna what is your local jack version and how do you build the jack-example-tools project using meson?
Your issue is in this section of the build script: https://github.com/jackaudio/jack-example-tools/blob/0a23b230a635db7570c4a41eb1b559e34eaee2e2/tools/meson.build#L77-L89
It relies on the detection done here: https://github.com/jackaudio/jack-example-tools/blob/0a23b230a635db7570c4a41eb1b559e34eaee2e2/meson.build#L32-L69 (both seem to result to false)

Please test whether those code snippets for detection contained in the tests compile for you. They have not been tested on macOS, since (at least I) lack a machine to test on (see also jackaudio/jack-example-tools#11).
The snippets rely on an (unconfigured) call to compiler.compile(), which may need further locations for headers etc.
If brew provides a default location for pkgconfig integration or headers/libs that we can use, please let me know, then we may add this for the detection of jack1/jack2.

If jack itself is not detected (which I do not believe is the problem here, as you would not get as far as compiling jack_unload), you may need to provide further locations to the pkgconfig integration, depending on where your jack is installed, using the PKG_CONFIG_PATH variable, e.g.:

export PKG_CONFIG_PATH="/my/install/location/of/jack2/lib/pkgconfig:$PKG_CONFIG_PATH"
meson build
ninja -C build

Formula/jack.rb Outdated Show resolved Hide resolved
@dvzrv
Copy link

dvzrv commented Apr 20, 2022

FWIW, on a Macbook Pro with Big Sur, that I could use for a while I was able to compile jack-example-tools with:

PKG_CONFIG_PATH=/usr/local/Cellar/opus/1.3.1/lib/pkgconfig:/usr/local/Cellar/readline/8.1.2/lib/pkgconfig/ meson build -Dopus_support=disabled
ninja -C build

after fixing the lib_rt dependency stuff (will create a PR for it),

after installing (using brew)

@dvzrv
Copy link

dvzrv commented Apr 20, 2022

FYI: This should be fixed with jackaudio/jack-example-tools#72 and a subsequent release.

@HaHeho
Copy link
Contributor Author

HaHeho commented Apr 20, 2022

FYI: This should be fixed with jackaudio/jack-example-tools#72 and a subsequent release.

Nice. What does that mean for this particular PR?

@dvzrv
Copy link

dvzrv commented Apr 20, 2022

FYI: This should be fixed with jackaudio/jack-example-tools#72 and a subsequent release.

Nice. What does that mean for this particular PR?

I am not sure. IMHO it would be better to have jack-example-tools be installable as a separate package (as it makes building against jack probably easier, but that assumption is based on my non-existent knowledge about the brew build stuff...).
In general the mentioned PR should allow you to cherry-pick commits to apply to the project to be able to build it without issue though.

@HaHeho
Copy link
Contributor Author

HaHeho commented Apr 20, 2022

I am not sure. IMHO it would be better to have jack-example-tools be installable as a separate package (as it makes building against jack probably easier, but that assumption is based on my non-existent knowledge about the brew build stuff...). In general the mentioned PR should allow you to cherry-pick commits to apply to the project to be able to build it without issue though.

From what I understood, the jack-example-tools should be an independent extension to a Jack installation. Ideally, this would work similarly inside the brew ecosystem i.e., jack-example-tools would exist as an independent formula. But I don't know if there is really a need for that (if so, someone could set it up).

For now, the jack-example-tools are included in Jack 1.9.12, but this will be the last release to do so, right? So is it unreasonable to exclude jack-example-tools from building and testing as part of the brew process entirely also in this release already?
If someone explicitly wants them, they will need a different way to get them in the future anyways?

@dvzrv
Copy link

dvzrv commented Apr 20, 2022

I am not sure. IMHO it would be better to have jack-example-tools be installable as a separate package (as it makes building against jack probably easier, but that assumption is based on my non-existent knowledge about the brew build stuff...). In general the mentioned PR should allow you to cherry-pick commits to apply to the project to be able to build it without issue though.

From what I understood, the jack-example-tools should be an independent extension to a Jack installation. Ideally, this would work similarly inside the brew ecosystem i.e., jack-example-tools would exist as an independent formula. But I don't know if there is really a need for that (if so, someone could set it up).

Ideally, yes. Especially on Linux we now have three implementations of the JACK API (jack1, jack2 and pipewire-jack - see https://wiki.archlinux.org/title/JACK_Audio_Connection_Kit#Comparison_of_JACK_implementations for a comparison), which led to the decision to split out the jack-example-tools (many setups rely on them and this way people are still able to more or less easily switch between different JACK implementations without too many conflicting files etc.).
If many (or any) people on macOS rely on the libraries and executables provided by jack-example-tools: I don't know.
Either way, I believe it is good to provide them (bundled with jack or as a separate formula).

For now, the jack-example-tools are included in Jack 1.9.21, but this will be the last release to do so, right? So is it unreasonable to exclude jack-example-tools from building and testing as part of the brew process entirely also in this release already? If someone explicitly wants them, they will need a different way to get them in the future anyways?

jack2 1.9.21 is the last release where the tools can still be built (the build option is off by default though). After this release (so soonish) they will be removed from the code base and future development will only be done in the context of jack-example-tools.

I guess the inclusion of jack-example-tools (or as a separate formula) should be done rather sooner than later, so it is valid to think about it now.

@github-actions
Copy link
Contributor

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. To keep this pull request open, add a help wanted or in progress label.

@github-actions github-actions bot added the stale No recent activity label Apr 23, 2022
@nandahkrishna
Copy link
Member

nandahkrishna commented Apr 23, 2022

Given the discussion above (and the issues when building jack-example-tools within the jack formula), I think it should be okay to create a separate jack-example-tools formula. Here's some documentation on how to create a new formula: https://docs.brew.sh/Formula-Cookbook.

You don't need to create a separate PR for the new formula, we can just add it in a separate commit here (unless you'd like it to be in a separate PR).

@nandahkrishna nandahkrishna added in progress Stale bot should stay away and removed stale No recent activity labels Apr 23, 2022
@nandahkrishna
Copy link
Member

I've modified the jack formula to remove jack-example-tools and related tests. It should now be okay to add the new formula (here or in a new PR).

Co-authored-by: HaHeho <hannes.helmholz@chalmers.se>
@nandahkrishna
Copy link
Member

I'll open a separate PR for the jack-example-tools. Thanks everyone!

@BrewTestBot
Copy link
Member

🤖 A scheduled task has triggered a merge.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bump-formula-pr PR was created using `brew bump-formula-pr` CI-no-fail-fast Continue CI tests despite failing GitHub Actions matrix builds. outdated PR was locked due to age
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants