Accepting request 1246636 from home:ecsos

- Add Jamulus-version.patch to fix wrong version in about jamulus.
- Fix missing icon in desktop file.
  Drop manuel and old icon. Use icon from source instead.

OBS-URL: https://build.opensuse.org/request/show/1246636
OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/Jamulus?expand=0&rev=57
This commit is contained in:
Takashi Iwai 2025-02-19 10:00:09 +00:00 committed by Git OBS Bridge
commit 54682e7c5b
15 changed files with 1925 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

3
Jamulus-3.10.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:671ce57431da1ffa701824cf945910f66f31a0260d08944a7d94bf2c67641f0c
size 3907567

3
Jamulus-3.11.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:671ce57431da1ffa701824cf945910f66f31a0260d08944a7d94bf2c67641f0c
size 3907567

7
Jamulus-newrec.service Normal file
View File

@ -0,0 +1,7 @@
[Unit]
Description=Start a new recording on Jamulus server
Requisite=Jamulus-Server
[Service]
Type=oneshot
ExecStart=/bin/systemctl kill -s SIGUSR1 jamulus

29
Jamulus-private.service Normal file
View File

@ -0,0 +1,29 @@
[Unit]
Description=Jamulus-Server
After=network.target
[Service]
Type=simple
EnvironmentFile=-/etc/sysconfig/jamulus
User=jamulus
Group=nogroup
NoNewPrivileges=true
ProtectSystem=true
ProtectHome=true
Nice=-20
IOSchedulingClass=realtime
IOSchedulingPriority=0
#### Change this to set genre, location and other parameters.
#### See [Command-Line-Options](Command-Line-Options) ####
ExecStart=/usr/bin/Jamulus -s -n -o "${yourServername};${yourCity};[${yourCountryID}]"
Restart=on-failure
RestartSec=30
StandardOutput=journal
StandardError=inherit
SyslogIdentifier=jamulus
[Install]
WantedBy=multi-user.target

29
Jamulus-public.service Normal file
View File

@ -0,0 +1,29 @@
[Unit]
Description=Jamulus-Server
After=network.target
[Service]
Type=simple
EnvironmentFile=-/etc/sysconfig/jamulus
User=jamulus
Group=nogroup
NoNewPrivileges=true
ProtectSystem=true
ProtectHome=true
Nice=-20
IOSchedulingClass=realtime
IOSchedulingPriority=0
#### Change this to set genre, location and other parameters.
#### See [Command-Line-Options](Command-Line-Options) ####
ExecStart=/usr/bin/Jamulus -s -n -e ${DIRECTORYSERVER} -o "${yourServername};${yourCity};[${yourCountryID}]"
Restart=on-failure
RestartSec=30
StandardOutput=journal
StandardError=inherit
SyslogIdentifier=jamulus
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,7 @@
[Unit]
Description=Toggle recording state of Jamulus server
Requisite=Jamulus-Server
[Service]
Type=oneshot
ExecStart=/bin/systemctl kill -s SIGUSR2 jamulus

9
Jamulus-version.patch Normal file
View File

@ -0,0 +1,9 @@
diff -Pdpru jamulus-r3_10_0.orig/Jamulus.pro jamulus-r3_10_0/Jamulus.pro
--- jamulus-r3_10_0.orig/Jamulus.pro 2023-09-03 22:17:25.000000000 +0200
+++ jamulus-r3_10_0/Jamulus.pro 2025-02-15 13:31:10.033528111 +0100
@@ -1,4 +1,4 @@
-VERSION = 3.10.0
+VERSION = 3.11.0
# use target name which does not use a capital letter at the beginning
contains(CONFIG, "noupcasename") {

1594
Jamulus.changes Normal file

File diff suppressed because it is too large Load Diff

7
Jamulus.firewalld Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Jamulus (Private-Server)</short>
<description>Only need for running a Jamulus Private-Server. Not needed for running a Public-Server.</description>
<port protocol="udp" port="22124"/>
</service>

170
Jamulus.spec Normal file
View File

@ -0,0 +1,170 @@
#
# spec file for package Jamulus
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2014 Pascal Bleser <pascal.bleser@opensuse.org>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%if ! %{defined _fillupdir}
%define _fillupdir %{_localstatedir}/adm/fillup-templates
%endif
%define tarball_version 3_10_0
Name: Jamulus
Version: 3.11.0
Release: 0
Summary: Low-latency internet connection tool for real-time jam sessions
License: GPL-2.0-or-later
Group: Productivity/Multimedia/Other
URL: https://jamulus.io/
Source0: https://github.com/jamulussoftware/jamulus/archive/r%{tarball_version}/%{name}-%{version}.tar.gz
Source10: %{name}-public.service
Source11: %{name}-private.service
Source12: %{name}-newrec.service
Source13: %{name}-togglerec.service
Source20: %{name}.sysconfig
Source21: %{name}.firewalld
Source90: README.SUSE
Patch1: %{name}-version.patch
BuildRequires: ImageMagick
BuildRequires: fdupes
BuildRequires: firewall-macros
BuildRequires: firewalld
BuildRequires: gcc-c++
BuildRequires: hicolor-icon-theme
BuildRequires: jack-devel >= 1.9.21
BuildRequires: pkgconfig
BuildRequires: pwdutils
BuildRequires: systemd-rpm-macros
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(Qt6Concurrent) >= 6.6.3
BuildRequires: pkgconfig(Qt6Multimedia)
BuildRequires: pkgconfig(Qt6Network)
BuildRequires: pkgconfig(Qt6Widgets)
BuildRequires: pkgconfig(Qt6Xml)
BuildRequires: pkgconfig(opus)
Requires: jack >= 1.9.21
Requires(pre): shadow
Requires(pre): %fillup_prereq
Requires(pre): group(nogroup)
Provides: llcon = %{version}
Obsoletes: llcon < %{version}
Provides: jamulus = %{version}
Obsoletes: jamulus < %{version}
%{?systemd_requires}
%description
The Jamulus software enables musicians to perform real-time jam sessions over
the internet. There is one server running the Jamulus server software which
collects the audio data from each Jamulus client software, mixes the audio data
and sends the mix back to each client.
%prep
%autosetup -p1 -n jamulus-r%{tarball_version}
install -m644 %{SOURCE90} .
%build
%qmake6 CONFIG+=opus_shared_lib CONFIG+=disable_version_check
%make_jobs
%install
install -D -m0755 Jamulus %{buildroot}%{_bindir}/%{name}
# icons
for s in 16 22 32 48 64 72 96 128 192; do
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps
#convert -strip -resize ${s}x${s} %{name}_icon.png \
convert -strip -resize ${s}x${s} src/res/io.jamulus.jamulus.png \
%{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/io.jamulus.jamulus.png
done
install -Dm0644 %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/io.jamulus.jamulus.png \
%{buildroot}%{_datadir}/pixmaps/io.jamulus.jamulus.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/
install -Dm0644 src/res/io.jamulus.*.svg \
%{buildroot}%{_datadir}/icons/hicolor/scalable/apps/
# sysconfig
install -d -m0755 %{buildroot}%{_fillupdir}
install -D -m0644 %{SOURCE20} %{buildroot}%{_fillupdir}/sysconfig.jamulus
# firewalld
install -D -m0644 %{SOURCE21} %{buildroot}%{_prefix}/lib/firewalld/services/jamulus.xml
# systemd/services
install -D -m0644 %{SOURCE10} %{buildroot}%{_unitdir}/jamulus-public.service
install -d -m0755 %{buildroot}%{_sbindir}
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcjamulus-public
install -D -m0644 %{SOURCE11} %{buildroot}%{_unitdir}/jamulus-private.service
install -d -m0755 %{buildroot}%{_sbindir}
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcjamulus-private
install -D -m0644 %{SOURCE12} %{buildroot}%{_unitdir}/jamulus-newrec.service
install -d -m0755 %{buildroot}%{_sbindir}
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcjamulus-newrec
install -D -m0644 %{SOURCE13} %{buildroot}%{_unitdir}/jamulus-togglerec.service
install -d -m0755 %{buildroot}%{_sbindir}
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcjamulus-togglerec
# desktop file
sed -i -e 's|$$TARGET|Jamulus|g' linux/jamulus.desktop.in
sed -i -e 's|Icon=jamulus|Icon=Jamulus|g' linux/jamulus.desktop.in
install -D -m 0644 linux/jamulus.desktop.in %{buildroot}%{_datadir}/applications/%{name}.desktop
%suse_update_desktop_file %{name}
%fdupes %{buildroot}%{_datadir}
%pre
%service_add_pre jamulus-public.service jamulus-private.service jamulus-newrec.service jamulus-togglerec.service
getent passwd jamulus >/dev/null || \
useradd -r -g nogroup -d /var/lib/empty -s /bin/false \
-c "Jamulus Server" jamulus
%post
%service_add_post jamulus-public.service jamulus-private.service jamulus-newrec.service jamulus-togglerec.service
%{fillup_only -n jamulus}
%firewalld_reload
%preun
%service_del_preun jamulus-public.service jamulus-private.service jamulus-newrec.service jamulus-togglerec.service
%postun
%service_del_postun jamulus-public.service jamulus-private.service jamulus-newrec.service jamulus-togglerec.service
%files
%doc README.md ChangeLog README.SUSE
%license COPYING
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/io.jamulus.*.png
%{_datadir}/icons/hicolor/scalable/apps/io.jamulus.*.svg
%{_datadir}/pixmaps/io.jamulus.*.png
# sysconfig
%{_fillupdir}/sysconfig.jamulus
# firewalld
%{_prefix}/lib/firewalld/services/jamulus.xml
# systemd/services
%{_unitdir}/jamulus-public.service
%{_sbindir}/rcjamulus-public
%{_unitdir}/jamulus-private.service
%{_sbindir}/rcjamulus-private
%{_unitdir}/jamulus-newrec.service
%{_sbindir}/rcjamulus-newrec
%{_unitdir}/jamulus-togglerec.service
%{_sbindir}/rcjamulus-togglerec
%changelog

16
Jamulus.sysconfig Normal file
View File

@ -0,0 +1,16 @@
# Directory(central) server
# select only one directory server and port from 4 possible genres.
#################################################################
# genre: Default
############
DIRECTORYSERVER="jamulusallgenres.fischvolk.de:22224"
# genre: Rock
#DIRECTORYSERVER="jamulusrock.fischvolk.de:22424"
# genre: Jazz
#DIRECTORYSERVER="jamulusjazz.fischvolk.de:22324"
# genre: Klassik/Folklore/Chor
#DIRECTORYSERVER="jamulusclassical.fischvolk.de:22524"
# Your Server
yourServername=""
yourCity=""
yourCountryID=""

3
Jamulus_icon.png Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:06e6476e5768b2e41aed0ba4c961e9e55d1314763e04d2503ab69a662cb36255
size 29700

24
README.SUSE Normal file
View File

@ -0,0 +1,24 @@
You can run Jamulus as a client, as well as a headless public or private server.
There are two service files for starting in headless mode.
Additional two service files for switching recording and for start new recording.
Launching a headless public server
==================================
1. Change the settings in /etc/sysconfig/jamulus
2. Then start the server with:
systemctl start jamulus-public.service
or
systemctl start jamulus-private.service
For a private server, you must enable port forwarding in your router
and open UDP port: 22124 in your firewall.
Connecting to your private server
=================================
To connect locally to your private server, you must use localhost as the server in the GUI.