SHA256
1
0
forked from pool/Jamulus
Jamulus/Jamulus.spec
Konstantin Voinov f5eeb2e629 Accepting request 897033 from home:kill_it:branches:multimedia:apps
- change central server to directory term
- Update to 3.8.0
 * The term "Central server" has been replaced with "Directory 
   server" (#1407, #1715, #1629).
   Note that the program will still accept the --centralserver 
   option for backward
   compatibility with existing system startup scripts, but its usage 
   is deprecated.
   (contributed by @pljones, @softins)
   
 * Mac: Generate build with Qt 5.15.2 for better compatibility with 
   Big Sur (#1687, #1768).
   We still build a legacy version with Qt 5.9.9 to support older 
   versions of macOS:
    * Users of 10.13 (High sierra) or newer should use the standard 
      build with Qt 5.15.2
    * Users of Yosemite, El Capitan or Sierra should use the legacy 
      build with Qt 5.9.9
      (contributed by @softins)
   
 * GUI: Settings window has been reorganized into tabs (#1415, 
   #1554, #1542, #1588):
    * User Profile window has been integrated into the settings 
      window.
    * Input Pan has been moved to the newly created Advanced tab 
      and removed from main window.
      (contributed by @dcorson-ticino-com, @pljones)
   
 * GUI: Moved the Ping and Delay stats from the Settings window to 
   the main window (#1762):
   This was partly to work around a Mac issue with updates to the 
   settings window (#1643)
   and is actually an improvement anyway, as the settings window 
   does not need to remain open.
   (contributed by @dcorson-ticino-com and @softins)
   
 * GUI: Added "About Qt" to the help menu to display version of Qt 
   (#1685, #1692).
   (contributed by @softins)
   
 * GUI: Corrected the operation of What's This in the settings 
   dialog (#1622, #1635).
   (contributed by @dcorson-ticino-com)
   
 * GUI: Improved the muted speaker icon display (#1691).
   (contributed by @henkdegroot)
   
 * Added new icons for Linux desktop use (#1672).
   (contributed by @jujudusud)
   
 * GUI: Corrected handling of custom directory server in the server, 
   to prevent
   unintended registration with a directory server (#1624, #1627).
   (contributed by @softins)
   
 *  GUI: Corrected alignment of Mute icon above fader (#811, #1312, 
   #1640).
   (contributed by @vimpostor)
   
 * GUI: Support for more than two mixer rows has been added (#1549, 
   #1560).
   (contributed by @pljones)
   
 * GUI: --clientname also works in dialog titles now (#1352, 1370).
   (contributed by @dcorson-ticino-com)
   
 * GUI: Translations have been updated
       Dutch, by @henkdegroot (#1562, #1623, #1714, #1557)
       French, by @jujudusud (#1648, #1708)
       German, by @rolamos (#1677, #1810)
       Italian, by @dzpex (#1620)
       Polish, by @SeeLook (#1619)
       Portuguese Brazilian, by @melcon (#1671, #1807)
       Portuguese European, by @Snayler (#1689)
       Slovak, by @jose1711 (#1647)
       Spanish, by @ignotus666 (#1621, #1730, #1808)
       Swedish, by @genesisproject2020 (#1664, #1696)
   
 * Network: Support for DSCP Quality of Service flags has been added 
   (#1310).
   This is supposed to lead to improved network performance.
   It is enabled by default.
   On Windows, this requires additional configuration in order to 
   work.
   Please see the Tips & Tricks page on the website for a setup 
   guide for Windows.
   (contributed by @DavidSavinkoff)
   
 * Client: Automatic channel fader adjustment simplifies mixer setup 
   by using the channel level meters (#1071).
   (contributed by @JohannesBrx)
   
 * Client: Basic audio feedback detection has been added (#1179).
   (contributed by @JohannesBrx)
   
 * Client: Support for input gain boost has been added (#1222, #1030)
   (contributed by @hoffie)
   
 * Client: Grouping support has been extended to allow for up to 
   eight groups (#1551).
   (contributed by @pljones)
   
 * Client: A hint regarding non-default Jack support has been added 
   (#1397, #1438).
   (contributed by @djfun)
   
 * Server: Support for Delay Panning has been added (#332, #567, 
   #1151, #1417, #1744):
   This feature can be enabled on servers using the new --delaypan 
   option.
   Enabling this feature will slightly increase server CPU usage.
   It can create a much more realistic spatial sound impression for 
   clients
   that are set to Stereo or Mono-in/Stereo-out mode.
   (contributed by @DetlefHennings, @Hk1020, @softins, @henkdegroot)
   
 * Server: Multi-threading performance has been improved (#960).
   (contributed by @menzels, @softins)
   
 * Server: Half-connected clients will no longer receive audio 
   (#1243, #1589):
   Note: This breaks compatibility with client versions before 3.3.0 
   (Feb 2013).
   If you update your server, ensure that all clients use 3.3.0 or 
   later as well.
   (contributed by @softins)
   
 * Server: HTML status file is now emptied on exit (#1423, #1427).
   (contributed by @hoffie, @drummer1154)
   
 * Server: An explicit bind address can now be specified (#141, 
   #1561).
   This can be done by the new --serverbindip option.
   (contributed by @buv)
   
 * Recorder: Compatibility with third-party tools such as Audacity 
   has been improved (#1384, #1424, #1437).
   Non-ASCII characters are now stripped out when creating filenames.
   (contributed by @softins, @gilgongo, @reinhardwh)
   
 * Recorder: Failures to start recording no longer result in crashes 
   (#1163, #1289, #1463).
   (contributed by @hoffie, @softins, @pljones)
   
 * Recorder: Logging has been improved (#1284, #1463).
   (contributed by @hoffie, @drummer1154)
   
 * Bug fix: The mute indicator is now also shown in mono mode (#1074).
   (contributed by @npostavs)
   
 * Bug fix: Channel mapping on Windows now only resets if the sound 
   card or the numbers of channels changed (#1347).
   (contributed by @ann0see)
   
 * Bug fix: Jamulus client should now close itself correctly if a 
   non-working device was selected (#872).
   (contributed by @npostavs)
   
 * Bug fix: Server no longer crashes while changing the recording 
   directory (#1501, #1573).
   (contributed by @henkdegroot, @hoffie, @softins)
   
 * Bug fix: Example systemd unit has been fixed to avoid crashing 
   when sending signals (#1515, #1518).
   (contributed by @softins, @helgeerbe, @gilgongo)
   
 * Bug fix: The Windows installer now correctly compiles in a path 
   with spaces (#864, #1319).
   (contributed by @henkdegroot)
   
 * Performance: Opus encoding/decoding now uses machine-specific 
   optimizations (#1105).
   (contributed by @npostavs)
   
 * Performance: Timer configuration for Windows servers has been 
   improved (#1536).
   (contributed by @npostavs)
   
 * iOS support is being worked on (#1450).
   (contributed by @jeroenvv)
   
 * Github autobuild for Mac now uses Xcode 11.7 and SDK 10.15 for 
   compatibility with Qt5 (#1655).
   (contributed by @softins)
   
 * Build: Creation of debug builds has been simplified (#1516).
   (contributed by @hoffie)
   
 * Internal: Constants for JACK usage have been renamed (#1429).
   (contributed by @djfun)
   
 * Internal: Legacy IP address variables have been cleaned up (#1400).
   (contributed by @wferi)
   
 * Internal: Added automatic code formatting with clang-format 
   (#901, #1127, #1751).
   (contributed by @passing)
   
 * Internal: New pull requests will now be checked for coding style 
   automatically (#1735).
   (contributed by @passing)
   
 * Internal: Windows deploy script has been aligned to autobuilds 
   (#1720).
   (contributed by @henkdegroot)

OBS-URL: https://build.opensuse.org/request/show/897033
OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/Jamulus?expand=0&rev=44
2021-06-03 01:37:46 +00:00

164 lines
5.7 KiB
RPMSpec

#
# spec file for package Jamulus
#
# Copyright (c) 2021 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_8_0
Name: Jamulus
Version: 3.8.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
Source1: %{name}_icon.png
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
BuildRequires: ImageMagick
BuildRequires: fdupes
BuildRequires: firewall-macros
BuildRequires: firewalld
BuildRequires: gcc-c++
BuildRequires: hicolor-icon-theme
BuildRequires: jack-devel
BuildRequires: pkgconfig
BuildRequires: pwdutils
BuildRequires: systemd-rpm-macros
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(Qt5Concurrent)
BuildRequires: pkgconfig(Qt5Network)
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(Qt5Xml)
BuildRequires: pkgconfig(opus)
Requires: jack
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 %{SOURCE1} .
install -m644 %{SOURCE90} .
%build
%qmake5 CONFIG+=opus_shared_lib CONFIG+=disable_version_check
%make_jobs
%install
install -D -m0755 Jamulus %{buildroot}%{_bindir}/%{name}
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 \
%{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/%{name}.png
done
install -Dm0644 %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{name}.png \
%{buildroot}%{_datadir}/pixmaps/%{name}.png
# 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' distributions/jamulus.desktop.in
sed -i -e 's|Icon=jamulus|Icon=Jamulus|g' distributions/jamulus.desktop.in
install -D -m 0644 distributions/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/%{name}.png
%{_datadir}/pixmaps/%{name}.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