Compare commits

...

1 Commits
epel9 ... i10ce

16
.gitignore vendored

@ -1,15 +1 @@
jack-1.9.5.tar.bz2
/jack-1.9.6.tar.bz2
/jack-1.9.7.tar.bz2
/jack-1.9.8.tgz
/jack-1.9.9.5.tar.bz2
/jack-1.9.10.tar.bz2
/jack2-1.9.12.tar.gz
/jack2-1.9.13.tar.gz
/jack2-1.9.14.tar.gz
/jack2-1.9.16.tar.gz
/jack2-1.9.17.tar.gz
/jack2-1.9.18.tar.gz
/jack2-1.9.19.tar.gz
/jack2-1.9.20.tar.gz
/jack2-1.9.21.tar.gz
SOURCES/jack2-1.9.22.tar.gz

@ -0,0 +1 @@
cb9ba61fe500cf3b5d4ba89365007df68fbe2515 SOURCES/jack2-1.9.22.tar.gz

@ -0,0 +1,144 @@
USING ALSA DIRECTLY
Switch to root account.
Install the required packages:
dnf install alsa-plugins-jack
Add yourself to the jackuser group.
usermod -a -G audio,jackuser "<your username>"
Now you will need to log out and log back in, or simply restart the system.
Start the jack daemon (the best parameters for your sound card may be different):
jackd -R -d alsa -d hw:0
This will start jack on the first sound card, at 48KHz sampling rate (can be
changed with the "-r" command line parameter), with a period of 1024 frames
(change with "-p", determines the latency) and with 2 interrupts per period
(change with -n). USB sound cards can benefit from running with "-n 3" or
"-n 4". All of these optional parameters should be specified after "-d alsa".
It is best to replace the card number with the card name as the numbering can
change from boot to boot if there is more than one sound card. The name of a
particular card can be found in the output of "cat /proc/asound/cards", for each
card it is the string between square brackets without the trailing blanks.
Note: Jack is a sound server and not a daemon - while it does work "in the
background" it is not something similar to unix daemons which are started at
boot time.
QJACKCTL
This application can be used to control the jack sound server with a graphical
interface. It can be started via
qjackctl -s
"-s" parameter makes the jack sound server start immediately.
When starting jack through qjackctl it is important to note that you should (at
least) change the "Interface" field in the "Setup" dialog to _not_ be "(default)"
which would point Jack to use Pulse Audio. The proper "Interface" is the direct
hw ALSA device (hw:0 for the first card, etc). Even best to use the name of the
card as stated above.
USING THE JACK DBUS INTERFACE
Control applications such as qjackctl can be configured to interact with the jack
sound server using D-Bus. This has the advantage of allowing jack to request the
release of the sound device from Pulseaudio (see below).
jackdbus is shipped in a separate package. To install this (as root) do:
dnf install jack-audio-connection-kit-dbus
and check "Enable D-Bus interface" in Setup -> Misc within Qjackctl
INTEGRATE JACK WITH PULSEAUDIO
Jack will ask Pulse Audio through D-Bus for ownership of the sound card. Pulse
Audio will grant it and Jack will have complete control of it. No conflicts and
no configuration necessary. In this case Pulse Audio will stop using the card
and if it is the only one, you will not have sound for system sounds, browser
media playback, etc (which is usually what you want). Otherwise it is possible
to load a Pulse Audio module that redirects PA to use Jack.
RUNNING JACK SERVER IN REALTIME MODE
NOTE: This chapter explains why you have done the above changes in more detail.
It is kept for informational purposes. The changes suggested below is done
automatically by your Jack installation and no manual modification of the
pam configuration should be necessary.
The JACK server jackd has the capability to run in a real-time mode
which greatly decreases the chance of audio glitches. The real-time mode
is enabled by passing the -R or --realtime option to jackd when starting
the server. It is only possible to run jackd in real-time mode as a
non-root user by modifying your PAM configuration, PAM stands for
Pluggable Authentication Modules and is the primary authentification
mechanism used on Fedora. The primary source of PAM documentation can be
found at the following at http://www.kernel.org/pub/linux/libs/pam/
The specific PAM configuration file that needs to be modified is
/etc/security/limits.conf and it controls the system resource limits. It
is important to understand that modifying the resource limits
configuration files can decrease the security of your system.
Documentation specific to the resource limits PAM module can be found at
http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/pam-6.html#ss6.12
Alternatively, one can create a new file
/etc/security/limits.d/<priority>-<name>.conf
that contains the resource limits for individual users and/or groups. The
jack-audio-connection-kit package that comes with Fedora contains the file
/etc/security/limits.d/99-jack.conf
that does this job for you.
The resource limits that need to be changed to allow jackd to run in
realtime mode are named rtprio and memlock. To increase the limits for a
specific user named fred you would add the following to
/etc/security/limits.conf
fred - rtprio 20
fred - memlock 50000
The value of rtprio can be set in the range 0 - 99 where any value
greater that 0 will allow the user to change the scheduling policy to
"real-time". By default the JACK server requires a minimum rtprio
setting of 20 but jackd will accept a command line parameter -P or
--realtime-priority which will change the minimum required value of
rtprio that is needed, but the default of 20 is nearly always
sufficient.
The appropriate value for memlock is dependent on the amount of memory
present in the system but a minimum value of 50000(50MB) and a maximum
value of half the available memory can be used as a rough guideline.
To verify that the resource limits have been modified you can use the
bash built-in ulimit command, for example:
$ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
max nice (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 8191
max locked memory (kbytes, -l) 50000
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
max rt priority (-r) 20
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 8191
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
file locks (-x) unlimited
Keep in mind that you may have to re-login before changes to limits.conf,
or additions to the limits.d/ directory to take effect.

@ -0,0 +1,7 @@
# Default limits for users of jack-audio-connection-kit
@@groupname@ - rtprio 70
@@groupname@ - memlock 4194304
@@pagroup@ - rtprio 20
@@pagroup@ - nice -20

@ -0,0 +1,20 @@
#!/usr/bin/pulseaudio -nF
load-module module-jack-sink
load-module module-jack-source
load-module module-native-protocol-unix
load-module module-volume-restore
load-module module-default-device-restore
load-module module-rescue-streams
load-module module-suspend-on-idle
.ifexists module-gconf.so
.nofail
load-module module-gconf
.fail
.endif
.ifexists module-x11-publish.so
.nofail
load-module module-x11-publish
.fail
.endif

@ -0,0 +1,26 @@
diff -rupN jack2-1.9.22.old/waflib/Context.py jack2-1.9.22/waflib/Context.py
--- jack2-1.9.22.old/waflib/Context.py 2023-02-02 06:04:10.000000000 -0500
+++ jack2-1.9.22/waflib/Context.py 2023-07-25 22:30:59.255028763 -0400
@@ -6,7 +6,9 @@
Classes and functions enabling the command system
"""
-import os, re, imp, sys
+import os, re, sys
+import importlib.util
+import importlib.machinery
from waflib import Utils, Errors, Logs
import waflib.Node
@@ -660,7 +662,10 @@ def load_module(path, encoding=None):
except KeyError:
pass
- module = imp.new_module(WSCRIPT_FILE)
+ loader = importlib.machinery.SourceFileLoader(WSCRIPT_FILE, WSCRIPT_FILE)
+ spec = importlib.util.spec_from_loader(loader.name, loader)
+ module = importlib.util.module_from_spec(spec)
+ loader.exec_module(module)
try:
code = Utils.readf(path, m='r', encoding=encoding)
except EnvironmentError:

@ -13,8 +13,8 @@
Summary: The Jack Audio Connection Kit
Name: jack-audio-connection-kit
Version: 1.9.21
Release: 1%{?dist}
Version: 1.9.22
Release: 6%{?dist}
# The entire source (~500 files) is a mixture of these three licenses
License: GPLv2 and GPLv2+ and LGPLv2+
URL: https://www.jackaudio.org
@ -22,6 +22,8 @@ Source0: https://github.com/jackaudio/jack2/archive/v%{version}/v%{version
Source1: %{name}-README.Fedora
Source2: %{name}-script.pa
Source3: %{name}-limits.conf
# Build with Python >= 3.12
Patch0: jack2-py312.patch
# Adjust default priority. RHBZ#795094
Patch1: jack-realtime-compat.patch
@ -43,15 +45,12 @@ BuildRequires: ncurses-devel
BuildRequires: opus-devel
BuildRequires: pkgconfig
BuildRequires: python3
BuildRequires: readline-devel
%if 0%{?fedora}
BuildRequires: zita-alsa-pcmi-devel
BuildRequires: zita-resampler-devel
%endif
Requires(pre): shadow-utils
Requires: pam
Obsoletes: %{name}-example-clients < 1.9.22
%description
JACK is a low-latency audio server, written primarily for the Linux operating
system. It can connect a number of different applications to an audio device, as
@ -105,11 +104,7 @@ python3 ./waf configure \
%endif
--alsa \
--clients 256 \
--ports-per-application=2048 \
%if 0%{?fedora}
--zalsa=yes \
%endif
--example-tools=yes
--ports-per-application=2048
python3 ./waf build %{?_smp_mflags} -v
@ -131,9 +126,6 @@ install -p -m644 %{SOURCE1} README.Fedora
# install pulseaudio script for jack (as documentation part)
install -p -m644 %{SOURCE2} jack.pa
# For compatibility with jack1
mv %{buildroot}%{_bindir}/jack_rec %{buildroot}%{_bindir}/jackrec
# Fix permissions of the modules
chmod 755 %{buildroot}%{_libdir}/jack/*.so %{buildroot}%{_libdir}/libjack*.so.*.*.*
@ -147,14 +139,12 @@ exit 0
%doc jack.pa
%license COPYING
%{_bindir}/jackd
%{_bindir}/jackrec
%{_libdir}/jack/
%{_libdir}/libjack.so.0*
%{_libdir}/libjacknet.so.0*
%{_libdir}/libjackserver.so.0*
%config(noreplace) %{_sysconfdir}/security/limits.d/*.conf
%{_mandir}/man1/jackrec.1*
%{_mandir}/man1/jackd*.1*
%files dbus
@ -170,74 +160,38 @@ exit 0
%{_libdir}/libjackserver.so
%{_libdir}/pkgconfig/jack.pc
%files example-clients
%license COPYING
%{_bindir}/alsa_in
%{_bindir}/alsa_out
%{_bindir}/jack_alias
%{_bindir}/jack_bufsize
%{_bindir}/jack_connect
%{_bindir}/jack_disconnect
%{_bindir}/jack_cpu_load
%{_bindir}/jack_evmon
%{_bindir}/jack_freewheel
# These are not ready yet
#{_bindir}/jack_impulse_grabber
%exclude %{_mandir}/man1/jack_impulse_grabber.1*
%{_bindir}/jack_latent_client
%{_bindir}/jack_load
%{_bindir}/jack_unload
%{_bindir}/jack_lsp
%{_bindir}/jack_metro
%{_bindir}/jack_midi_dump
%{_bindir}/jack_midi_latency_test
%{_bindir}/jack_midiseq
%{_bindir}/jack_midisine
%{_bindir}/jack_monitor_client
%{_bindir}/jack_net_master
%{_bindir}/jack_net_slave
%{_bindir}/jack_netsource
%{_bindir}/jack_property
%{_bindir}/jack_samplerate
%{_bindir}/jack_server_control
%{_bindir}/jack_session_notify
%{_bindir}/jack_showtime
%{_bindir}/jack_simple_client
%{_bindir}/jack_simple_session_client
%{_bindir}/jack_thru
%{_bindir}/jack_transport
%{_bindir}/jack_wait
%{_bindir}/jack_zombie
%{_mandir}/man1/alsa_*.1*
%{_mandir}/man1/jack_bufsize.1*
%{_mandir}/man1/jack_connect.1*
%{_mandir}/man1/jack_disconnect.1*
%{_mandir}/man1/jack_freewheel*.1*
%{_mandir}/man1/jack_load*.1*
%{_mandir}/man1/jack_unload*.1*
%{_mandir}/man1/jack_lsp.1*
%{_mandir}/man1/jack_metro.1*
%{_mandir}/man1/jack_monitor_client.1*
%{_mandir}/man1/jack_netsource.1*
%{_mandir}/man1/jack_property.1*
%{_mandir}/man1/jack_samplerate.1*
%{_mandir}/man1/jack_showtime.1*
%{_mandir}/man1/jack_simple_client.1*
%{_mandir}/man1/jack_transport.1*
%{_mandir}/man1/jack_wait.1*
# tests
%{_bindir}/jack_cpu
%{_bindir}/jack_iodelay
%{_bindir}/jack_multiple_metro
%{_bindir}/jack_simdtests
%{_bindir}/jack_test
%{_mandir}/man1/jack_iodelay.1*
%changelog
* Wed Dec 25 2024 Arkady L. Shane <tigro@msvsphere-os.ru> - 1.9.22-6
- Rebuilt for MSVSphere 10
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.22-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.22-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.22-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Tue Jul 25 2023 Orcan Ogetbil <oget[dot]fedora[at]gmail[dot]com> - 1.9.22-3
- Fix build against Python >= 3.12
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.22-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sun Feb 05 2023 Guido Aulisi <guido.aulisi@gmail.com> - 1.9.22-1
- Update to 1.9.22
- Obsolete example clients package
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.21-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Aug 12 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.9.21-3
- Fix FTBFS with python 3.11
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.21-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
%changelog
* Thu Apr 21 2022 Guido Aulisi <guido.aulisi@gmail.com> - 1.9.21-1
- Update to 1.9.21

@ -1 +0,0 @@
SHA512 (jack2-1.9.21.tar.gz) = 0e9ce581fca3c5d9ffb1de22b45cae6d94085c6f92ff3554892e25727baf66a2269f10d338d95d991e8380c4be5e0cc1e1453b9f878c7dc2e8a990f3bd458557
Loading…
Cancel
Save