View Issue Details

IDProjectCategoryView StatusLast Update
0009958ardourotherpublic2025-07-27 20:17
Reporterrah Assigned Tox42  
PrioritynormalSeverityblockReproducibilityalways
Status resolvedResolutionfixed 
PlatformGNUOSLinuxOS Version(any)
Product Version8.12 
Summary0009958: JACK backend makes use of jack2-only function
DescriptionWhile compiling Ardour 8.12 against libjack-dev 1:0.126.0-2 in Debian I get the following error:

../Ardour-8.12.0/libs/backends/jack/jack_audiobackend.cc: In member function ‘virtual int ARDOUR::JACKAudioBackend::join_process_threads()’:
../Ardour-8.12.0/libs/backends/jack/jack_audiobackend.cc:831:21: error: ‘jack_client_stop_thread’ was not declared in this scope; did you mean ‘jack_client_create_thread’?
  831 |                 if (jack_client_stop_thread (_priv_jack, thread) != 0)
      |                     ^~~~~~~~~~~~~~~~~~~~~~~
      |                     jack_client_create_thread

Waf: Leaving directory `/usr/local/src/ardour/Ardour-8.12.0-build'


The jack_client_stop_thread function is present in jack2:

https://github.com/jackaudio/jack2/blob/43e1173e3060b2ebc9b6c54058464d5145afbf6e/common/jack/thread.h#L114

but not jack1:

https://github.com/jackaudio/headers/blob/2bfa5069718ca4f4dc091e0be845958f2d8a5ba8/thread.h

This is despite waf thinking libjack is OK:

Checking for 'jack' >= 0.121.0                       : yes 
Checking for JACK metadata API                       : ok 
Checking for jack_port_rename()                      : ok 


and despite the build page saying

"If you want JACK support, you must have a suitably new version of JACK installed. ... For JACK1, 0.121 or newer."
-- https://ardour.org/building_linux.html
Steps To ReproduceCompile Ardour on any system with jack1 development headers
Additional InformationI'm clearly not the only person to suffer from this issue:

https://www.reddit.com/r/Ardour/comments/1b5clpz/need_some_help_with_compiling_ardour/
TagsNo tags attached.

Activities

rah

2025-07-27 16:35

reporter   ~0029348

It seems that systemdeps.h is no longer jack2-only:

https://github.com/jackaudio/headers/blob/2bfa5069718ca4f4dc091e0be845958f2d8a5ba8/systemdeps.h

as assumed by

https://github.com/Ardour/ardour/commit/416ef936358074c1896223c6b66b8683058d1529

x42

2025-07-27 19:13

administrator   ~0029349

it is #ifdef'ed with (USING_JACK2_EXPANSION_OF_JACK_API) and also not relevant if you configure `--libjack=weak`, in which case the symbol is dynamically detected at runtime.

Also jack1 is end-of-life and no longer maintained.

x42

2025-07-27 20:16

administrator   ~0029350

After discussion with the current JACK maintainer, the solution here is to bump build-dependency to jack2 - 1.9.10 or later.

x42

2025-07-27 20:17

administrator   ~0029351

9.0-pre0-1432-g109c3edb42 bumps the build-dep to require jack2 headers.

Issue History

Date Modified Username Field Change
2025-07-27 16:21 rah New Issue
2025-07-27 16:35 rah Note Added: 0029348
2025-07-27 19:13 x42 Note Added: 0029349
2025-07-27 20:16 x42 Note Added: 0029350
2025-07-27 20:17 x42 Assigned To => x42
2025-07-27 20:17 x42 Status new => resolved
2025-07-27 20:17 x42 Resolution open => fixed
2025-07-27 20:17 x42 Note Added: 0029351