Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package jack-example-tools for
openSUSE:Factory checked in at 2026-10-21 20:56:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/jack-example-tools (Old)
and /work/SRC/openSUSE:Factory/.jack-example-tools.new.2252680 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "jack-example-tools"
Wed Oct 21 20:56:22 2026 rev:2 rq:1386575 version:4
Changes:
--------
--- /work/SRC/openSUSE:Factory/jack-example-tools/jack-example-tools.changes
2022-03-11 11:44:36.330832309 +0100
+++
/work/SRC/openSUSE:Factory/.jack-example-tools.new.2252680/jack-example-tools.changes
2026-10-21 20:57:43.644586656 +0200
@@ -1,0 +2,13 @@
+Sat Oct 17 17:11:37 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to 4 (changes since 1):
+ * Version 2: fix crashes in midi_latency_test, fix alsa_in
+ resampling regression, fix midiseq usage string
+ * Version 3: export internal-client entry points, fix macOS
+ and Windows builds
+ * Version 4: fix manpage and comments, drop non-standard
+ alloca.h include
+- fix-readline-support-leap.patch: rebased onto 4
+- Spec cleanup via spec-cleaner
+
+-------------------------------------------------------------------
Old:
----
jack-example-tools-1.obscpio
New:
----
jack-example-tools-4.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ jack-example-tools.spec ++++++
--- /var/tmp/diff_new_pack.qP4Hde/_old 2026-10-21 20:57:44.490622121 +0200
+++ /var/tmp/diff_new_pack.qP4Hde/_new 2026-10-21 20:57:44.491622163 +0200
@@ -1,7 +1,7 @@
#
# spec file for package jack-example-tools
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,11 +17,10 @@
Name: jack-example-tools
-Version: 1
+Version: 4
Release: 0
Summary: Official examples and tools from the JACK project
-License: GPL-2.0
-Group: System/Sound Daemons
+License: GPL-2.0-only
URL: https://jackaudio.org/
Source0: %{name}-%{version}.tar.xz
Patch0: fix-readline-support-leap.patch
@@ -30,14 +29,15 @@
BuildRequires: jack
BuildRequires: meson
BuildRequires: pkgconfig
-BuildRequires: readline-devel
BuildRequires: pkgconfig(alsa)
+BuildRequires: pkgconfig(history)
BuildRequires: pkgconfig(jack) >= 1.9.20
BuildRequires: pkgconfig(opus)
+BuildRequires: pkgconfig(readline)
BuildRequires: pkgconfig(samplerate)
BuildRequires: pkgconfig(sndfile)
# In order to have a transparent transition to the splitted packages
-Provides: jack:/usr/bin/jack_connect
+Provides: jack:%{_bindir}/jack_connect
%description
JACK is system for handling real-time, low latency audio
@@ -51,7 +51,7 @@
and tools.
%prep
-%setup -q -n %{name}-%{version}
+%setup -q
%autopatch -p1
%build
@@ -71,4 +71,3 @@
%{_libdir}/jack/jack_internal_metro.so
%{_libdir}/jack/jack_intime.so
-
++++++ _service ++++++
--- /var/tmp/diff_new_pack.qP4Hde/_old 2026-10-21 20:57:44.519623336 +0200
+++ /var/tmp/diff_new_pack.qP4Hde/_new 2026-10-21 20:57:44.524623546 +0200
@@ -1,9 +1,9 @@
<?xml version="1.0"?>
<services>
- <service name="obs_scm" mode="disabled">
+ <service name="obs_scm" mode="manual">
<param name="scm">git</param>
<param
name="url">https://github.com/jackaudio/jack-example-tools.git</param>
- <param name="revision">refs/tags/1</param>
+ <param name="revision">refs/tags/4</param>
<param name="versionformat">@PARENT_TAG@</param>
<!-- <param name="revision">master</param>
<param name="versionformat">@PARENT_TAG@+git%cd.%h</param>
++++++ fix-readline-support-leap.patch ++++++
--- /var/tmp/diff_new_pack.qP4Hde/_old 2026-10-21 20:57:44.542624301 +0200
+++ /var/tmp/diff_new_pack.qP4Hde/_new 2026-10-21 20:57:44.546624468 +0200
@@ -1,14 +1,14 @@
From: Antonio Larrosa <[email protected]>
Subject: Fix readline support in SLE/Leap 15.4
-Index: jack-example-tools-1/meson.build
+Index: jack-example-tools-4/meson.build
===================================================================
---- jack-example-tools-1.orig/meson.build
-+++ jack-example-tools-1/meson.build
-@@ -75,7 +75,7 @@ lib_jacknet = cc.find_library('jacknet',
-
+--- jack-example-tools-4.orig/meson.build
++++ jack-example-tools-4/meson.build
+@@ -93,7 +93,7 @@
dep_alsa = dependency('alsa', version: '>=1.0.18', required: alsa_required)
dep_opus = dependency('opus', version: '>=0.9.0', required:
get_option('opus_support'))
+ header_opus_custom = cc.check_header('opus/opus_custom.h')
-dep_readline = dependency('readline', required:
get_option('readline_support'))
+dep_readline = cc.find_library('readline', required:
get_option('readline_support'))
dep_samplerate = dependency('samplerate', required: libsamplerate_required)
++++++ jack-example-tools-1.obscpio -> jack-example-tools-4.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/.cirrus.yml
new/jack-example-tools-4/.cirrus.yml
--- old/jack-example-tools-1/.cirrus.yml 2022-01-15 17:35:58.000000000
+0100
+++ new/jack-example-tools-4/.cirrus.yml 2023-02-02 12:26:35.000000000
+0100
@@ -2,24 +2,15 @@
freebsd_instance:
matrix:
- image_family: freebsd-12-3
- - image_family: freebsd-13-0
+ - image_family: freebsd-13-1
environment:
CFLAGS: -O2 -pipe -fPIC -fstack-protector-strong -fno-strict-aliasing
-I/usr/local/include
CPPFLAGS: -O2 -pipe -fPIC -fstack-protector-strong -fno-strict-aliasing
-I/usr/local/include
LDFLAGS: -lreadline -L/usr/local/lib -fstack-protector-strong
- # Install jack2 from source - replace by package once 1.9.20 is out.
jack2_dependencies_script:
- - pkg install -y pkgconf python3 libsndfile libsamplerate libsysinfo
readline alsa-lib dbus expat opus git
- jack2_source_script:
- - git clone --branch develop --depth 1
https://github.com/jackaudio/jack2.git /jack2
- jack2_config_script:
- - cd /jack2 && python3 ./waf configure --celt=no --sndfile=yes
--samplerate=yes --alsa=yes --dbus --classic --autostart=dbus --readline=yes
--opus=yes --example-tools=no --prefix /usr/local --pkgconfigdir
libdata/pkgconfig
- jack2_build_script:
- - cd /jack2 && python3 ./waf
- jack2_install_script:
- - cd /jack2 && python3 ./waf install
+ - pkg install -y jackit pkgconf python3 libsndfile libsamplerate
libsysinfo readline alsa-lib dbus expat opus git
prepare_script:
- mkdir /Install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/.github/workflows/build.yml
new/jack-example-tools-4/.github/workflows/build.yml
--- old/jack-example-tools-1/.github/workflows/build.yml 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/.github/workflows/build.yml 2023-02-02
12:26:35.000000000 +0100
@@ -8,20 +8,26 @@
pull_request:
branches: [main]
+env:
+ JACK2_VERSION: v1.9.21
+ PAWPAW_CACHE_VERSION: 1
+ PAWPAW_JACK2_NO_CUSTOM_PREFIX: 1
+ PAWPAW_SKIP_LTO: 1
+ PAWPAW_VERSION: 01d07086586818e427b2898d2d446d30b68f3139
+
jobs:
build_arch_linux_jack1:
runs-on: ubuntu-latest
container:
image: archlinux:latest
steps:
- - uses: actions/checkout@v2
- - name: Install dependencies
- run: pacman --noconfirm -Syu alsa-lib base-devel celt meson opus
readline libsamplerate libsndfile zita-alsa-pcmi zita-resampler
- - name: Install jack1
+ - uses: actions/checkout@v3
+ - name: Add pro-audio-legacy repository
run: |
- printf "[pro-audio]\nServer =
https://pkgbuild.com/~dvzrv/repos/pro-audio/\$arch\n" >> /etc/pacman.conf
+ printf "[pro-audio-legacy]\nServer =
https://pkgbuild.com/~dvzrv/repos/pro-audio-legacy/\$arch\n" >> /etc/pacman.conf
pacman -Syy
- pacman --noconfirm -S jack
+ - name: Install dependencies
+ run: pacman --noconfirm -Syu alsa-lib base-devel jack meson opus
readline libsamplerate libsndfile zita-alsa-pcmi zita-resampler
- name: Build jack-example-tools
run: meson build && ninja -C build
- name: Install jack-example-tools
@@ -31,12 +37,202 @@
container:
image: archlinux:latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
+ - name: Install dependencies
+ run: pacman --noconfirm -Syu alsa-lib base-devel jack2 meson opus
readline libsamplerate libsndfile zita-alsa-pcmi zita-resampler
+ - name: Build jack-example-tools
+ run: meson build && ninja -C build
+ - name: Install jack-example-tools
+ run: ninja -C build install
+ build_arch_linux_pipewire_jack:
+ runs-on: ubuntu-latest
+ container:
+ image: archlinux:latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Install dependencies
+ run: pacman --noconfirm -Syu alsa-lib base-devel meson opus
pipewire-jack readline libsamplerate libsndfile zita-alsa-pcmi zita-resampler
+ - name: Build jack-example-tools
+ run: meson build && ninja -C build
+ - name: Install jack-example-tools
+ run: ninja -C build install
+ build_alpine_linux:
+ runs-on: ubuntu-latest
+ container:
+ image: alpine:latest
+ steps:
+ - uses: actions/checkout@v3
- name: Install dependencies
- run: pacman --noconfirm -Syu alsa-lib base-devel celt meson opus
readline libsamplerate libsndfile zita-alsa-pcmi zita-resampler
- - name: Install jack2
- run: pacman --noconfirm -S jack2
+ run: apk add g++ meson pkgconf alsa-lib-dev jack-dev opus-dev
readline-dev libsamplerate-dev libsndfile-dev
- name: Build jack-example-tools
run: meson build && ninja -C build
- name: Install jack-example-tools
run: ninja -C build install
+ build_macos_latest:
+ runs-on: macos-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Install dependencies
+ run: brew install jack meson opus pkg-config readline
+ - name: Build jack-example-tools
+ run: meson build && ninja -C build
+ - name: Install jack-example-tools
+ run: ninja -C build install
+ build_pawpaw_macos_intel:
+ runs-on: macos-10.15
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up cache
+ uses: actions/cache@v3
+ with:
+ path: ~/PawPawBuilds
+ key: macos-intel-v${{ env.PAWPAW_CACHE_VERSION }}
+ - name: Set up dependencies
+ run: brew install cmake jq meson
+ - name: Bootstrap macOS intel
+ shell: bash
+ run: |
+ if [ ! -d PawPaw ]; then
+ git clone https://github.com/DISTRHO/PawPaw.git
+ git -C PawPaw checkout ${{ env.PAWPAW_VERSION}}
+ fi
+ ./PawPaw/bootstrap-jack2.sh macos && ./PawPaw/.cleanup.sh macos
+ - name: Build jack2
+ shell: bash
+ run: |
+ ./PawPaw/build-jack2.sh macos && ./PawPaw/.cleanup.sh macos
+ - name: Build jack-example-tools
+ shell: bash
+ run: |
+ pushd PawPaw && source local.env macos && popd
+ meson build --prefix ${PAWPAW_PREFIX} || cat
build/meson-logs/meson-log.txt
+ ninja -C build
+ - name: Install jack-example-tools
+ run: |
+ pushd PawPaw && source local.env macos && popd
+ ninja -C build install
+ build_pawpaw_macos_universal:
+ runs-on: macos-10.15
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up cache
+ uses: actions/cache@v3
+ with:
+ path: ~/PawPawBuilds
+ key: macos-universal-v${{ env.PAWPAW_CACHE_VERSION }}
+ - name: Set up dependencies
+ run: brew install cmake jq meson
+ - name: Fix up Xcode
+ run: |
+ sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*
+ sudo xcode-select -s /Applications/Xcode_12.3.app
+ - name: Bootstrap macOS intel
+ shell: bash
+ run: |
+ if [ ! -d PawPaw ]; then
+ git clone https://github.com/DISTRHO/PawPaw.git
+ git -C PawPaw checkout ${{ env.PAWPAW_VERSION}}
+ fi
+ ./PawPaw/bootstrap-jack2.sh macos-universal && ./PawPaw/.cleanup.sh
macos-universal
+ - name: Build jack2
+ shell: bash
+ run: |
+ ./PawPaw/build-jack2.sh macos-universal && ./PawPaw/.cleanup.sh
macos-universal
+ - name: Build jack-example-tools
+ shell: bash
+ run: |
+ pushd PawPaw && source local.env macos-universal && popd
+ meson build --prefix ${PAWPAW_PREFIX} || cat
build/meson-logs/meson-log.txt
+ ninja -C build
+ - name: Install jack-example-tools
+ run: |
+ pushd PawPaw && source local.env macos-universal && popd
+ ninja -C build install
+ build_pawpaw_win32:
+ runs-on: ubuntu-20.04
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up cache
+ uses: actions/cache@v3
+ with:
+ path: ~/PawPawBuilds
+ key: win32-v${{ env.PAWPAW_CACHE_VERSION }}
+ - name: Fix GitHub's mess
+ run: |
+ sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
+ sudo apt-get update -qq
+ sudo apt-get install -yqq --allow-downgrades libgd3/focal
libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
+ sudo apt-get purge -yqq libclang* libgbm* libllvm* libmono* moby*
mono* php* libgdiplus libpcre2-posix3 libzip4
+ - name: Set up dependencies
+ run: |
+ sudo dpkg --add-architecture i386
+ sudo apt-get update -qq
+ sudo apt-get install -y autopoint build-essential curl cmake jq llvm
meson mingw-w64 python3-pip \
+ binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64
wine-stable:i386
+ pip3 install 'meson>=0.58.0'
+ - name: Bootstrap win32 cross-compiled
+ shell: bash
+ run: |
+ if [ ! -d PawPaw ]; then
+ git clone https://github.com/DISTRHO/PawPaw.git
+ git -C PawPaw checkout ${{ env.PAWPAW_VERSION}}
+ fi
+ ./PawPaw/bootstrap-jack2.sh win32 && ./PawPaw/.cleanup.sh win32
+ - name: Build jack2
+ shell: bash
+ run: |
+ ./PawPaw/build-jack2.sh win32 && ./PawPaw/.cleanup.sh win32
+ - name: Build jack-example-tools
+ shell: bash
+ run: |
+ pushd PawPaw && source local.env win32 && popd
+ meson build --prefix ${PAWPAW_PREFIX} --cross-file
PawPaw/setup/meson/win32.ini || cat build/meson-logs/meson-log.txt
+ ninja -C build
+ - name: Install jack-example-tools
+ run: |
+ pushd PawPaw && source local.env win32 && popd
+ ninja -C build install
+ build_pawpaw_win64:
+ runs-on: ubuntu-20.04
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up cache
+ uses: actions/cache@v3
+ with:
+ path: ~/PawPawBuilds
+ key: win64-v${{ env.PAWPAW_CACHE_VERSION }}
+ - name: Fix GitHub's mess
+ run: |
+ sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
+ sudo apt-get update -qq
+ sudo apt-get install -yqq --allow-downgrades libgd3/focal
libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
+ sudo apt-get purge -yqq libclang* libgbm* libllvm* libmono* moby*
mono* php* libgdiplus libpcre2-posix3 libzip4
+ - name: Set up dependencies
+ run: |
+ sudo dpkg --add-architecture i386
+ sudo apt-get update -qq
+ sudo apt-get install -y autopoint build-essential curl cmake jq llvm
meson mingw-w64 python3-pip \
+ binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64
wine-stable
+ pip3 install 'meson>=0.58.0'
+ - name: Bootstrap win64 cross-compiled
+ shell: bash
+ run: |
+ if [ ! -d PawPaw ]; then
+ git clone https://github.com/DISTRHO/PawPaw.git
+ git -C PawPaw checkout ${{ env.PAWPAW_VERSION}}
+ fi
+ ./PawPaw/bootstrap-jack2.sh win64 && ./PawPaw/.cleanup.sh win64
+ - name: Build jack2
+ shell: bash
+ run: |
+ ./PawPaw/build-jack2.sh win64 && ./PawPaw/.cleanup.sh win64
+ - name: Build jack-example-tools
+ shell: bash
+ run: |
+ pushd PawPaw && source local.env win64 && popd
+ meson build --prefix ${PAWPAW_PREFIX} --cross-file
PawPaw/setup/meson/win64.ini || cat build/meson-logs/meson-log.txt
+ ninja -C build
+ - name: Install jack-example-tools
+ run: |
+ pushd PawPaw && source local.env win64 && popd
+ ninja -C build install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/CHANGELOG.md
new/jack-example-tools-4/CHANGELOG.md
--- old/jack-example-tools-1/CHANGELOG.md 2022-01-15 17:35:58.000000000
+0100
+++ new/jack-example-tools-4/CHANGELOG.md 2023-02-02 12:26:35.000000000
+0100
@@ -1,12 +1,24 @@
# Changelog
-## [Unreleased]
+## [4]
-### Added
+### Fixes
+- Fix a typo in `alsa_in` manpage
+- Fix source-code comments and manpage for `jack_simple_client`
+- Remove includes of non-standard `alloca.h` header
-### Changed
+## [3]
-### Deleted
+### Fixes
+- Ensure internal clients export their function entry points
+- Fix macOS and Windows builds
+
+## [2]
+
+### Fixes
+- Fix crashes in `midi_latency_test`
+- Fix regression in `alsa_in` that broke resampling (reverted code to known
good state)
+- Fix usage help string in `midiseq`
## [1]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/common/netjack_packet.c
new/jack-example-tools-4/common/netjack_packet.c
--- old/jack-example-tools-1/common/netjack_packet.c 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/common/netjack_packet.c 2023-02-02
12:26:35.000000000 +0100
@@ -39,7 +39,6 @@
#define _GNU_SOURCE
#endif
-#include <alloca.h>
#include <math.h>
#include <stdio.h>
#include <memory.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/example-clients/.gitignore
new/jack-example-tools-4/example-clients/.gitignore
--- old/jack-example-tools-1/example-clients/.gitignore 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/example-clients/.gitignore 1970-01-01
01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-.deps/
-.libs/
-Makefile
-Makefile.in
-capture_client.o
-impulse_grabber.o
-inprocess.la
-inprocess.lo
-intime.la
-intime.lo
-jack_impulse_grabber
-jack_latent_client
-jack_metro
-jack_midiseq
-jack_midisine
-jack_rec
-jack_server_control
-jack_showtime
-jack_simple_client
-jack_simple_session_client
-jack_transport_client
-latent_client.o
-metro.o
-midiseq.o
-midisine.o
-server_control.o
-showtime.o
-simple_client.o
-simple_session_client.o
-transport_client.o
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jack-example-tools-1/example-clients/impulse_grabber.c
new/jack-example-tools-4/example-clients/impulse_grabber.c
--- old/jack-example-tools-1/example-clients/impulse_grabber.c 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/example-clients/impulse_grabber.c 2023-02-02
12:26:35.000000000 +0100
@@ -203,11 +203,15 @@
/* install a signal handler to properly quits jack client */
#ifdef WIN32
+ signal(SIGINT, signal_handler);
+ signal(SIGABRT, signal_handler);
+ signal(SIGTERM, signal_handler);
+#else
signal(SIGQUIT, signal_handler);
- signal(SIGHUP, signal_handler);
-#endif
signal(SIGTERM, signal_handler);
+ signal(SIGHUP, signal_handler);
signal(SIGINT, signal_handler);
+#endif
/* Wait for grab to finish */
while (!grab_finished) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/example-clients/intime.c
new/jack-example-tools-4/example-clients/intime.c
--- old/jack-example-tools-1/example-clients/intime.c 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/example-clients/intime.c 2023-02-02
12:26:35.000000000 +0100
@@ -21,6 +21,7 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include <inttypes.h>
#include <stdio.h>
#include <string.h>
#include <jack/jack.h>
@@ -121,6 +122,7 @@
}
/* after internal client loaded */
+JACK_LIB_EXPORT
int
jack_initialize (jack_client_t *client, const char *load_init)
{
@@ -150,6 +152,7 @@
}
/* before unloading */
+JACK_LIB_EXPORT
void
jack_finish (void *arg)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/example-clients/meson.build
new/jack-example-tools-4/example-clients/meson.build
--- old/jack-example-tools-1/example-clients/meson.build 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/example-clients/meson.build 2023-02-02
12:26:35.000000000 +0100
@@ -106,18 +106,20 @@
)
endif
-if has_jackctl_server_create2
- c_args_jack_server_control = c_args_common + ['-D__JACK2__']
-else
- c_args_jack_server_control = c_args_common + ['-D__JACK1__']
+if host_machine.system() != 'windows'
+ if has_jackctl_server_create2
+ c_args_jack_server_control = c_args_common + ['-D__JACK2__']
+ else
+ c_args_jack_server_control = c_args_common + ['-D__JACK1__']
+ endif
+ exe_jack_server_control = executable(
+ 'jack_server_control',
+ c_args: c_args_jack_server_control,
+ sources: ['server_control.c'],
+ dependencies: [dep_jack, lib_jackserver],
+ install: true
+ )
endif
-exe_jack_server_control = executable(
- 'jack_server_control',
- c_args: c_args_jack_server_control,
- sources: ['server_control.c'],
- dependencies: [dep_jack, lib_jackserver],
- install: true
-)
exe_jack_showtime = executable(
'jack_showtime',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jack-example-tools-1/example-clients/midi_latency_test.c
new/jack-example-tools-4/example-clients/midi_latency_test.c
--- old/jack-example-tools-1/example-clients/midi_latency_test.c
2022-01-15 17:35:58.000000000 +0100
+++ new/jack-example-tools-4/example-clients/midi_latency_test.c
2023-02-02 12:26:35.000000000 +0100
@@ -163,7 +163,7 @@
semaphore = NULL;
}
#else
- semaphore = malloc(sizeof(semaphore_t));
+ semaphore = malloc(sizeof(sem_t));
if (semaphore != NULL) {
if (sem_init(semaphore, 0, 0)) {
free(semaphore);
@@ -652,8 +652,7 @@
break;
default:
{
- char *s = "'- '";
- s[2] = c;
+ char s[] = {'\'', '-', c, '\'', '\0'};
die(s, "invalid switch");
}
case -1:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/example-clients/midiseq.c
new/jack-example-tools-4/example-clients/midiseq.c
--- old/jack-example-tools-1/example-clients/midiseq.c 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/example-clients/midiseq.c 2023-02-02
12:26:35.000000000 +0100
@@ -45,7 +45,7 @@
fprintf(stderr, "usage: jack_midiseq name nsamp [startindex note nsamp]
...... [startindex note nsamp]\n");
fprintf(stderr, "eg: jack_midiseq Sequencer 24000 0 60 8000 12000 63
8000\n");
fprintf(stderr, "will play a 1/2 sec loop (if srate is 48khz) with a c4
note at the start of the loop\n");
- fprintf(stderr, "that lasts for 12000 samples, then a d4# that starts
at 1/4 sec that lasts for 800 samples\n");
+ fprintf(stderr, "that lasts for 8000 samples, then a d4# that starts at
1/4 sec that lasts for 8000 samples\n");
}
static int process(jack_nframes_t nframes, void *arg)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/example-clients/simple_client.c
new/jack-example-tools-4/example-clients/simple_client.c
--- old/jack-example-tools-1/example-clients/simple_client.c 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/example-clients/simple_client.c 2023-02-02
12:26:35.000000000 +0100
@@ -43,7 +43,8 @@
* special realtime thread once for each audio cycle.
*
* This client follows a simple rule: when the JACK transport is
- * running, copy the input port to the output. When it stops, exit.
+ * running, write nframes sine wave samples to the two outputs ports.
+ * When it stops, exit.
*/
int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jack-example-tools-1/example-clients/transport_client.c
new/jack-example-tools-4/example-clients/transport_client.c
--- old/jack-example-tools-1/example-clients/transport_client.c 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/example-clients/transport_client.c 2023-02-02
12:26:35.000000000 +0100
@@ -9,9 +9,12 @@
#include <stdio.h>
#include <errno.h>
-#include <unistd.h>
+#include <inttypes.h>
#include <stdlib.h>
#include <string.h>
+#ifndef WIN32
+#include <unistd.h>
+#endif
#include <jack/jack.h>
@@ -189,7 +192,11 @@
/* keep running until the transport stops */
while (client_state != Exit) {
+#ifdef WIN32
+ Sleep (1000);
+#else
sleep (1);
+#endif
}
jack_client_close (client);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/man/alsa_in.0
new/jack-example-tools-4/man/alsa_in.0
--- old/jack-example-tools-1/man/alsa_in.0 2022-01-15 17:35:58.000000000
+0100
+++ new/jack-example-tools-4/man/alsa_in.0 2023-02-02 12:26:35.000000000
+0100
@@ -67,7 +67,7 @@
.TP
\fB\-q \fI quality\fR
.br
-Set the quality of the resampler from 0 to 4. can significanly reduce cpu
usage.
+Set the quality of the resampler from 0 to 4. can significantly reduce cpu
usage.
.TP
\fB\-m \fI max_diff\fR
.br
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/man/jack_simple_client.0
new/jack-example-tools-4/man/jack_simple_client.0
--- old/jack-example-tools-1/man/jack_simple_client.0 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/man/jack_simple_client.0 2023-02-02
12:26:35.000000000 +0100
@@ -8,9 +8,9 @@
The client-name must be a yet unused client name.
.SH DESCRIPTION
.B jack_simple_client
-is an example client for the JACK Audio Connection Kit. It creates two
-ports (client-name:input and client-name:output) that pass the data
-unmodified.
+is an example client for the JACK Audio Connection Kit. It creates two output
+ports (client-name:output1 and client-name:output2) and plays a sine wave
+to these ports.
.SH EXAMPLE
jack_simple_client in_process_test
.SH AUTHOR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/meson.build
new/jack-example-tools-4/meson.build
--- old/jack-example-tools-1/meson.build 2022-01-15 17:35:58.000000000
+0100
+++ new/jack-example-tools-4/meson.build 2023-02-02 12:26:35.000000000
+0100
@@ -3,19 +3,22 @@
['c', 'cpp'],
meson_version: '>=0.58.0',
license: ['GPL2+'],
- version: '1',
+ version: '4',
)
os = build_machine.system()
cc = meson.get_compiler('c')
-lib_m = cc.find_library('m')
-lib_rt = cc.find_library('rt')
alsa_required = false
if get_option('alsa_in_out').enabled() or get_option('zalsa').enabled()
alsa_required = true
endif
+lib_rt_required = false
+if get_option('zalsa').enabled()
+ lib_rt_required = true
+endif
+
libsamplerate_required = false
if get_option('alsa_in_out').enabled() or
get_option('jack_netsource').enabled()
libsamplerate_required = true
@@ -62,23 +65,40 @@
client_name = "foo";
client = jack_client_open(client_name, JackNoStartServer, &status);
- intclient = jack_internal_client_handle (client, client_name, &status);
+ intclient = jack_internal_client_handle(client, client_name, &status);
}
'''
)
message('Provides jack2-style jack_internal_client_handle(): ' +
has_jack2_internal_client.to_string())
-lib_jackserver = cc.find_library('jackserver', required: true)
+if host_machine.system() == 'windows' and host_machine.cpu_family() == 'x86_64'
+ lib_jackserver_suffix = '64'
+else
+ lib_jackserver_suffix = ''
+endif
+
+# we must link to jackserver as shared library, which is hard if
`-Wl,-Bstatic` is used in `LDFLAGS`
+# do a little dance to support such builds here
+# FIXME find a way to do something like `if link_args.contains('-Bstatic')`
+if host_machine.system() == 'windows'
+ lib_jackserver = declare_dependency(link_args: ['-Wl,-Bshared',
'-ljackserver' + lib_jackserver_suffix, '-Wl,-Bstatic'])
+else
+ lib_jackserver = cc.find_library('jackserver' + lib_jackserver_suffix,
required: true)
+endif
+
has_jackctl_server_create2 = cc.has_function('jackctl_server_create2',
dependencies: lib_jackserver, prefix: '#include <jack/control.h>')
lib_jacknet = cc.find_library('jacknet', required: get_option('jack_net'))
dep_alsa = dependency('alsa', version: '>=1.0.18', required: alsa_required)
dep_opus = dependency('opus', version: '>=0.9.0', required:
get_option('opus_support'))
+header_opus_custom = cc.check_header('opus/opus_custom.h')
dep_readline = dependency('readline', required: get_option('readline_support'))
dep_samplerate = dependency('samplerate', required: libsamplerate_required)
dep_sndfile = dependency('sndfile', required: get_option('jack_rec'))
dep_threads = dependency('threads')
+lib_m = cc.find_library('m')
+lib_rt = cc.find_library('rt', required: lib_rt_required)
lib_zita_alsa_pcmi = cc.find_library('zita-alsa-pcmi', required:
get_option('zalsa'))
lib_zita_resampler = cc.find_library('zita-resampler', required:
get_option('zalsa'))
has_ppoll = cc.has_function('ppoll', prefix: '#define _GNU_SOURCE\n#include
<sys/poll.h>')
@@ -91,17 +111,19 @@
endif
build_jack_net = false
-if get_option('jack_net').enabled() or (get_option('jack_net').auto() and
lib_jacknet.found())
+# FIXME jacknet tools fail to build on windows
+if get_option('jack_net').enabled() or (get_option('jack_net').auto() and
lib_jacknet.found() and host_machine.system() != 'windows')
build_jack_net = true
endif
build_jack_netsource = false
-if get_option('jack_netsource').enabled() or
(get_option('jack_netsource').auto() and dep_samplerate.found())
+# FIXME jacknet tools fail to build on windows
+if get_option('jack_netsource').enabled() or
(get_option('jack_netsource').auto() and dep_samplerate.found() and
host_machine.system() != 'windows')
build_jack_netsource = true
endif
opus_support = false
-if get_option('opus_support').enabled() or (get_option('opus_support').auto()
and dep_opus.found())
+if get_option('opus_support').enabled() or (get_option('opus_support').auto()
and dep_opus.found() and header_opus_custom)
opus_support = true
endif
@@ -117,7 +139,7 @@
build_zalsa = false
if get_option('zalsa').enabled() or (
- get_option('zalsa').auto() and dep_alsa.found() and
lib_zita_alsa_pcmi.found() and lib_zita_resampler.found()
+ get_option('zalsa').auto() and dep_alsa.found() and lib_rt.found() and
lib_zita_alsa_pcmi.found() and lib_zita_resampler.found()
)
build_zalsa = true
endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/scripts/meson_create_symlink
new/jack-example-tools-4/scripts/meson_create_symlink
--- old/jack-example-tools-1/scripts/meson_create_symlink 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/scripts/meson_create_symlink 2023-02-02
12:26:35.000000000 +0100
@@ -8,4 +8,4 @@
set -eu
-ln -sv "$2" "$MESON_INSTALL_DESTDIR_PREFIX/$1/$3"
+ln -fsv "$2" "$MESON_INSTALL_DESTDIR_PREFIX/$1/$3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/tools/alsa_in.c
new/jack-example-tools-4/tools/alsa_in.c
--- old/jack-example-tools-1/tools/alsa_in.c 2022-01-15 17:35:58.000000000
+0100
+++ new/jack-example-tools-4/tools/alsa_in.c 2023-02-02 12:26:35.000000000
+0100
@@ -361,7 +361,7 @@
delay = snd_pcm_avail( alsa_handle );
- delay -= round( jack_frames_since_cycle_start( client ) *
static_resample_factor );
+ delay -= round( jack_frames_since_cycle_start( client ) /
static_resample_factor );
// Do it the hard way.
// this is for compensating xruns etc...
@@ -443,7 +443,7 @@
if( current_resample_factor > resample_upper_limit )
current_resample_factor = resample_upper_limit;
// Now Calculate how many samples we need.
- rlen = ceil( ((double)nframes) * current_resample_factor )+2;
+ rlen = ceil( ((double)nframes) / current_resample_factor )+2;
assert( rlen > 2 );
// Calculate resample_mean so we can init ourselves to saner values.
@@ -518,7 +518,7 @@
jack_latency_range_t range;
JSList *node;
- range.min = range.max = round(target_delay / static_resample_factor);
+ range.min = range.max = round(target_delay * static_resample_factor);
if (mode == JackCaptureLatency) {
for (node = capture_ports; node; node = jack_slist_next (node))
{
@@ -758,7 +758,7 @@
printf( "selected sample format: %s\n", formats[format].name );
- static_resample_factor = (double) sample_rate / (double)
jack_sample_rate;
+ static_resample_factor = (double) jack_sample_rate / (double)
sample_rate;
resample_lower_limit = static_resample_factor * 0.25;
resample_upper_limit = static_resample_factor * 4.0;
resample_mean = static_resample_factor;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/tools/alsa_out.c
new/jack-example-tools-4/tools/alsa_out.c
--- old/jack-example-tools-1/tools/alsa_out.c 2022-01-15 17:35:58.000000000
+0100
+++ new/jack-example-tools-4/tools/alsa_out.c 2023-02-02 12:26:35.000000000
+0100
@@ -4,7 +4,6 @@
* as they would be used by many applications.
*/
-#include <alloca.h>
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
@@ -754,7 +753,7 @@
if( !sample_rate )
sample_rate = jack_sample_rate;
- static_resample_factor = (double) sample_rate / (double)
jack_sample_rate;
+ static_resample_factor = (double) sample_rate / (double)
jack_sample_rate;
resample_lower_limit = static_resample_factor * 0.25;
resample_upper_limit = static_resample_factor * 4.0;
resample_mean = static_resample_factor;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/tools/load_test.c
new/jack-example-tools-4/tools/load_test.c
--- old/jack-example-tools-1/tools/load_test.c 2022-01-15 17:35:58.000000000
+0100
+++ new/jack-example-tools-4/tools/load_test.c 2023-02-02 12:26:35.000000000
+0100
@@ -100,10 +100,16 @@
client = jack_client_open( "load_test", JackNullOption, NULL );
+#ifdef WIN32
+ signal(SIGINT, signal_handler);
+ signal(SIGABRT, signal_handler);
+ signal(SIGTERM, signal_handler);
+#else
signal(SIGQUIT, signal_handler);
signal(SIGTERM, signal_handler);
signal(SIGHUP, signal_handler);
signal(SIGINT, signal_handler);
+#endif
jack_on_shutdown(client, jack_shutdown, 0);
@@ -111,7 +117,11 @@
jack_activate (client);
- sleep( -1 );
+ #ifdef WIN32
+ Sleep (INFINITE);
+ #else
+ sleep (-1);
+ #endif
exit (0);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/tools/meson.build
new/jack-example-tools-4/tools/meson.build
--- old/jack-example-tools-1/tools/meson.build 2022-01-15 17:35:58.000000000
+0100
+++ new/jack-example-tools-4/tools/meson.build 2023-02-02 12:26:35.000000000
+0100
@@ -80,13 +80,15 @@
if not has_jack1_internal_client and has_jack2_internal_client
c_args_jack_unload = c_args_common + ['-D__JACK2__']
endif
-exe_jack_unload = executable(
- 'jack_unload',
- c_args: c_args_jack_unload,
- sources: ['ipunload.c'],
- dependencies: [dep_jack],
- install: true
-)
+if has_jack1_internal_client or has_jack2_internal_client
+ exe_jack_unload = executable(
+ 'jack_unload',
+ c_args: c_args_jack_unload,
+ sources: ['ipunload.c'],
+ dependencies: [dep_jack],
+ install: true
+ )
+endif
exe_jack_unload = executable(
'jack_load_test',
@@ -154,14 +156,17 @@
install: true
)
-# dont install, jack session is deprecated
-exe_jack_session_notify = executable(
- 'jack_session_notify',
- sources: ['session_notify.c'],
- dependencies: [dep_jack],
- c_args: ['-Wno-deprecated-declarations'],
- install: false
-)
+# FIXME deal with alloca on windows
+if host_machine.system() != 'windows'
+ # dont install, jack session is deprecated
+ exe_jack_session_notify = executable(
+ 'jack_session_notify',
+ sources: ['session_notify.c'],
+ dependencies: [dep_jack],
+ c_args: ['-Wno-deprecated-declarations'],
+ install: false
+ )
+endif
jack_transport_c_args = c_args_common
jack_transport_deps = [dep_jack]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/tools/midi_dump.c
new/jack-example-tools-4/tools/midi_dump.c
--- old/jack-example-tools-1/tools/midi_dump.c 2022-01-15 17:35:58.000000000
+0100
+++ new/jack-example-tools-4/tools/midi_dump.c 2023-02-02 12:26:35.000000000
+0100
@@ -190,7 +190,13 @@
exit (EXIT_FAILURE);
}
-#ifndef WIN32
+#ifdef WIN32
+ signal(SIGINT, wearedone);
+ signal(SIGABRT, wearedone);
+ signal(SIGTERM, wearedone);
+#else
+ signal(SIGQUIT, wearedone);
+ signal(SIGTERM, wearedone);
signal(SIGHUP, wearedone);
signal(SIGINT, wearedone);
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/tools/session_notify.c
new/jack-example-tools-4/tools/session_notify.c
--- old/jack-example-tools-1/tools/session_notify.c 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/tools/session_notify.c 2023-02-02
12:26:35.000000000 +0100
@@ -19,7 +19,6 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <alloca.h>
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/tools/transport.c
new/jack-example-tools-4/tools/transport.c
--- old/jack-example-tools-1/tools/transport.c 2022-01-15 17:35:58.000000000
+0100
+++ new/jack-example-tools-4/tools/transport.c 2023-02-02 12:26:35.000000000
+0100
@@ -415,6 +415,7 @@
return s;
}
+#if HAVE_READLINE
static char *dupstr(char *s)
{
char *r = malloc(strlen(s) + 1);
@@ -447,6 +448,7 @@
return (char *) NULL; /* No names matched. */
}
+#endif
static void command_loop()
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/tools/tw.c
new/jack-example-tools-4/tools/tw.c
--- old/jack-example-tools-1/tools/tw.c 2022-01-15 17:35:58.000000000 +0100
+++ new/jack-example-tools-4/tools/tw.c 2023-02-02 12:26:35.000000000 +0100
@@ -6,10 +6,13 @@
#include <stdio.h>
#include <errno.h>
-#include <unistd.h>
+#include <inttypes.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
+#ifndef WIN32
+#include <unistd.h>
+#endif
#include <jack/jack.h>
@@ -248,15 +251,25 @@
jack_free (ports);
/* install a signal handler to properly quits jack client */
- signal(SIGQUIT, signal_handler);
+#ifdef WIN32
+ signal(SIGINT, signal_handler);
+ signal(SIGABRT, signal_handler);
+ signal(SIGTERM, signal_handler);
+#else
+ signal(SIGQUIT, signal_handler);
signal(SIGTERM, signal_handler);
signal(SIGHUP, signal_handler);
signal(SIGINT, signal_handler);
+#endif
/* keep running until the transport stops */
while (client_state != Exit) {
+ #ifdef WIN32
+ Sleep(1000);
+ #else
sleep (1);
+ #endif
}
jack_client_close (client);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/tools/zalsa/zita-a2j.cc
new/jack-example-tools-4/tools/zalsa/zita-a2j.cc
--- old/jack-example-tools-1/tools/zalsa/zita-a2j.cc 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/tools/zalsa/zita-a2j.cc 2023-02-02
12:26:35.000000000 +0100
@@ -390,13 +390,14 @@
extern "C" {
-int
-jack_initialize (jack_client_t* client, const char* load_init)
+JACK_LIB_EXPORT
+int jack_initialize (jack_client_t* client, const char* load_init)
{
zita_a2j *c = new zita_a2j();
return c->jack_initialize(client, load_init);
}
+JACK_LIB_EXPORT
void jack_finish (void* arg)
{
if (!arg) return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jack-example-tools-1/tools/zalsa/zita-j2a.cc
new/jack-example-tools-4/tools/zalsa/zita-j2a.cc
--- old/jack-example-tools-1/tools/zalsa/zita-j2a.cc 2022-01-15
17:35:58.000000000 +0100
+++ new/jack-example-tools-4/tools/zalsa/zita-j2a.cc 2023-02-02
12:26:35.000000000 +0100
@@ -389,13 +389,14 @@
extern "C" {
-int
-jack_initialize (jack_client_t* client, const char* load_init)
+JACK_LIB_EXPORT
+int jack_initialize (jack_client_t* client, const char* load_init)
{
zita_j2a *c = new zita_j2a();
return c->jack_initialize(client, load_init);
}
+JACK_LIB_EXPORT
void jack_finish (void* arg)
{
if (!arg) return;
++++++ jack-example-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.qP4Hde/_old 2026-10-21 20:57:44.713631469 +0200
+++ /var/tmp/diff_new_pack.qP4Hde/_new 2026-10-21 20:57:44.716631595 +0200
@@ -1,5 +1,5 @@
name: jack-example-tools
-version: 1
-mtime: 1642264558
-commit: b2d4f2f7c680db3582198a11d96bb09ee97042be
+version: 4
+mtime: 1675337195
+commit: 33de8b4285fa5054af1b37fe0496c110604ed564