SHA256
1
0
forked from pool/Jamulus
Jamulus/Jamulus.spec
Konstantin Voinov b615a39888 Accepting request 1117020 from home:ecsos
- Update to 3.10.0
  * Build: Mac: Keep the signing-related keychain unlocked (#2927).
    (contributed by @hoffie)
  * Build: Updated bundled Qt6 to version 6.5.1 (#3070).
    (contributed by @github-actions)
  * Docs: Added JSON-RPC server connection tips (#3101).
    (contributed by @mcfnord)
  * Translation: Added trebmuh to create-translation-issues.sh (#3147).
    (contributed by @jujudusud)
  * GUI: Fix some accelerator key conflicts, and fix ellipses in Norwegian (#3156).
    (contributed by @softins)
  * Client: (Refactor) Prevent multiplication result converting to larger type (#3164).
    (contributed by @softins)
  * Client: Added SRV-based virtual hosting support (#2930).
    (contributed by @hoffie)
  * Server: Improved --serverinfo argument validation (#2951).
    (contributed by @hoffie, @pljones)
  * Server: ISO country codes can now be supplied in upper or lower case (#2934).
    (contributed by @Rob-NY)
  * Server: Use native file selection dialog for recording directory and 
    persistence file to allow read and write access outside of the macOS sandbox (#3009).
    (contributed by @ann0see)
  * Server: Rename --directoryserver to --directoryaddress (and internal changes) (#3017).
    (contributed by @pljones)
  * Server: Save the HTML formatting in Server Welcome Message. (Applies to the GUI Server.)
    (#3058). (contributed by @pljones)
  * Windows: Windows 64bit releases use Qt 6.5.2 now. 
    Jamulus will from now on only support Windows 10 and above (#2300).
    (contributed by @hoffie)
  * Linux: Debian users can now use the official PPA to get automatic updates.
    See the Linux install page on jamulus.io for more information (#3013).
    (contributed by @ann0see)
  * Mac: The legacy build now uses the macOS 13.1 SDK which is unsupported by Qt 5.9.9.
    We still provide the legacy build, but from now on consider it as deprecated.
    You are advised to upgrade your OS (#3066).
    (contributed by @ann0see)
  * Mac: Enable dark-mode support on non legacy builds (#2833, #3008).
    (contributed by @ann0see)
  * Mac: Fixed building Jamulus via Xcode (#3076). 
    (contributed by @ann0see)
  * Android: Updated Oboe to version 1.7.0 (#3000).
    (contributed by @ann0see)
  * Android: Fixed a crash on session startup that occurs on many devices (#2905).
    (contributed by @danryu)
  * iOS: Build App with higher SDK version (#3073).
    (contributed by @ann0see)
  * GUI: Make checkboxes self-labelling (#2996).
    (contributed by @pljones)
  * RPC: Added new command line switch (--jsonrpcbindip) to specify the bind address
    for the RPC server (#2917). (contributed by @Rob-NY)
  * RPC: jamulusserver/getClients method expanded to include all elements
    of a user profile as well as the number of active client connections (#2918).
    (contributed by @Rob-NY)
  * RPC: Rename directoryServer to directory in jamulusserver/getServerProfile response (#3048).
    (contributed by @pljones)
  * Translations have been updated (#3158, #3155, #3119, #3150, #3113, #3059, #2921, #2923, #2998):
    (mainly translated on @weblate by multiple translators)
        Chinese, by @yangyangdaji, @cup113, @BLumia, @SoulGI, @MarongHappy, Kingo Bingo
        Dutch, by @henkdegroot, @jerone
        French, by @trebmuh, @jujudusud, @cosas
        German, by @ann0see, Ettore Atalan, Iva Hristova, Katja Flinzner
        Italian, by @dzpex, Gico2006, Massimo Pissarello
        Korean, by @MarongHappy
        Norwegian Bokmål, by @comradekingu, Wdt@.+_-
        Polish, by @gnu-ewm, @C10udburst
        Portuguese Brazilian, by @melcon, @gbonaspetti, @adoniasalmeida, Zer0-Zer0, @fnogcps
        Portuguese European, by @melcon
        Spanish, by @ignotus666, gallegonovato
        Swedish, by @Skarvinius
  * Translation: Document translation process shift to Weblate.
    Translators can from now one use Weblate for translations (#2880).
    (contributed by @ann0see)
  * Docs: Removed docs/RELATED-PROJECTS.md from repository.
    The up to date version is now on jamulus.io (#3091). 
    (contributed by @mcfnord)
  * Updated Opus to v1.4 (#3099)
    (contributed by @ann0see)
  * Build: Updated bundled Qt6 to version 6.5.2 (#3110).
    (contributed by @app/github-actions)
  * Build: Updated Windows Installer base (NSIS) to version 3.09 (#3097).
    (contributed by @app/github-actions)
  * Build: Updated build dependencies: maxim-lobanov/setup-xcode to 1.5.1 (#2936),
    DoozyX/clang-format-lint-action to 0.16 (#3053), dev-drprasad/delete-tag-and-release
    to 0885ecc4123e071dd1a8be04d3a0578f5390581c (#3027).
    (contributed by @app/dependabot)
  * Build: Enabled signing of macOS binary if a self signed certificate is given (#2944).
    (contributed by @ann0see)
  * Build: macOS now uses the 13.1 SDK for better compatibility with modern macOS versions (#3106)
    (contributed by @ann0see)
  * Build: Updated clang version to Ubuntu LTS version (#3020). 
    (contributed by @pljones)
  * Build: Updated bundled JACK (Windows-only) to version 1.9.22 (#3031).
    (contributed by @ann0see)
  * Autobuild: Hardened detection of QT 5 builds for macOS and iOS (#3057).
    (contributed by @ann0see)
  * Autobuild: Modernised/fixed some Python and added linting to CI (#3052).
    (contributed by @declension)
  * Refactor: use size_t for vector and array indexes that must not be negative (#2893).
    (contributed by @pljones)
  * Internal: Moved main branch from master to main. If you compile Jamulus from source,
    you will need to update your local repository.
    See discussion #2984 for more information. (#2840)
    (contributed by @pljones, @ann0see)
  * Internal: Clarified licensing terms for Autobuild scripts (#3077).
    (contributed by @ann0see)
  * Internal: Use native gh command for release management and uploading artefacts (#3075).
    (contributed by @ann0see)
  * Internal: Include HTML in strDirectoryTypeWT to make translation easier (#2894).
    (contributed by @pljones)
  * Internal: Renamed English translation file of windows installer to en_GB (#2929).
    (contributed by @ann0see)
  * Internal: Fix C++ build warnings regarding copy constructor and assignment functions (#2946).
    (contributed by @hoffie)
  * Internal: Reduced permissions in Autobuild for security hardening (#2953).
    (contributed by @ann0see)
  * Internal: The JACK build will now install directly from the
    JACK GitHub repository (#3003, #3014).
    (contributed by @ann0see)
  * Internal: Improved Qt Creator 5 compliance of Jamulus.pro (#3010).
    (contributed by @pljones)
  * Internal: Improved maintainability of Jamulus.pro by using global definitions (#3046).
    (contributed by @ann0see)

OBS-URL: https://build.opensuse.org/request/show/1117020
OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/Jamulus?expand=0&rev=53
2023-10-11 21:23:43 +00:00

165 lines
5.7 KiB
RPMSpec

#
# spec file for package Jamulus
#
# Copyright (c) 2023 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.10.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 >= 1.9.21
BuildRequires: pkgconfig
BuildRequires: pwdutils
BuildRequires: systemd-rpm-macros
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(Qt5Concurrent)
BuildRequires: pkgconfig(Qt5Multimedia)
BuildRequires: pkgconfig(Qt5Network)
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(Qt5Xml)
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 %{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' 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/%{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