Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package Jamulus for openSUSE:Factory checked in at 2021-01-22 21:52:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/Jamulus (Old) and /work/SRC/openSUSE:Factory/.Jamulus.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "Jamulus" Fri Jan 22 21:52:14 2021 rev:15 rq:865960 version:3.6.2 Changes: -------- --- /work/SRC/openSUSE:Factory/Jamulus/Jamulus.changes 2020-12-14 18:09:01.183619326 +0100 +++ /work/SRC/openSUSE:Factory/.Jamulus.new.28504/Jamulus.changes 2021-01-22 21:52:39.141877021 +0100 @@ -1,0 +2,21 @@ +Fri Jan 22 12:01:43 UTC 2021 - Jan Engelhardt <[email protected]> + +- %pre needs to pull in "nogroup", too. + +------------------------------------------------------------------- +Fri Jan 22 02:08:02 UTC 2021 - Jan Engelhardt <[email protected]> + +- Do not ignore errors from useradd. +- Reduce scriptlet boilerplate generated by %service_*. +- Cease removing users at package deinstallation. + +------------------------------------------------------------------- +Thu Jan 14 10:49:11 UTC 2021 - ecsos <[email protected]> + +- Add services for headless public and private server. +- Add services for newRecording and ToggleRecording. +- Add sysconfig for service files. +- Add firewalld for private server. +- Add user jamulus for server services. + +------------------------------------------------------------------- New: ---- Jamulus-newrec.service Jamulus-private.service Jamulus-public.service Jamulus-togglerec.service Jamulus.firewalld Jamulus.sysconfig README.SUSE ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ Jamulus.spec ++++++ --- /var/tmp/diff_new_pack.OE34Uu/_old 2021-01-22 21:52:40.057878320 +0100 +++ /var/tmp/diff_new_pack.OE34Uu/_new 2021-01-22 21:52:40.073878343 +0100 @@ -1,7 +1,7 @@ # # spec file for package Jamulus # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # Copyright (c) 2014 Pascal Bleser <[email protected]> # # All modifications and additions to the file contributed by third parties @@ -17,6 +17,10 @@ # +%if ! %{defined _fillupdir} + %define _fillupdir %{_localstatedir}/adm/fillup-templates +%endif + %define tarball_version 3_6_2 Name: Jamulus @@ -27,12 +31,23 @@ URL: http://llcon.sourceforge.net/index.html Source0: https://github.com/corrados/jamulus/archive/r%{tarball_version}.tar.gz#/jamulus-r%{tarball_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) @@ -40,10 +55,14 @@ 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 @@ -54,6 +73,7 @@ %prep %autosetup -p1 -n jamulus-r%{tarball_version} install %{SOURCE1} . +install -m644 %{SOURCE90} . %build %qmake5 CONFIG+=opus_shared_lib CONFIG+=disable_version_check @@ -69,17 +89,76 @@ install -Dm0644 %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{name}.png \ %{buildroot}%{_datadir}/pixmaps/%{name}.png -%suse_update_desktop_file -c %{name} %{name} "Internet Jam Session Software" %{name} %{name} "AudioVideo;Audio;Mixer;Qt" -%suse_update_desktop_file -C "Jam Session" %{name} +# sysconfig +install -d -m0755 %{buildroot}%{_fillupdir} +install -D -m0644 %{SOURCE20} %{buildroot}%{_fillupdir}/sysconfig.jamulus + +# firewalld +install -D -m0644 %{SOURCE21} %{buildroot}%{_libexecdir}/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 +%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 +%config(noreplace) %{_libexecdir}/firewalld/services/jamulus.xml +%dir %{_libexecdir}/firewalld +%dir %{_libexecdir}/firewalld/services +# 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 ++++++ Jamulus-newrec.service ++++++ [Unit] Description=Start a new recording on Jamulus server Requisite=Jamulus-Server [Service] Type=oneshot ExecStart=/bin/systemctl kill -s SIGUSR1 jamulus ++++++ Jamulus-private.service ++++++ [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 ++++++ Jamulus-public.service ++++++ [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 ${CENTRALSERVER} -o "${yourServername};${yourCity};[${yourCountryID}]" Restart=on-failure RestartSec=30 StandardOutput=journal StandardError=inherit SyslogIdentifier=jamulus [Install] WantedBy=multi-user.target ++++++ Jamulus-togglerec.service ++++++ [Unit] Description=Toggle recording state of Jamulus server Requisite=Jamulus-Server [Service] Type=oneshot ExecStart=/bin/systemctl kill -s SIGUSR2 jamulus ++++++ Jamulus.firewalld ++++++ <?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> ++++++ Jamulus.sysconfig ++++++ # central server # select only one central server and port from 4 possible genres. ################################################################# # genre: Default ############ CENTRALSERVER="jamulusallgenres.fischvolk.de:22224" # genre: Rock #CENTRALSERVER="jamulusrock.fischvolk.de:22424" # genre: Jazz #CENTRALSERVER="jamulusjazz.fischvolk.de:22324" # genre: Klassik/Folklore/Chor #CENTRALSERVER="jamulusclassical.fischvolk.de:22524" # Your Server yourServername="" yourCity="" yourCountryID="" ++++++ README.SUSE ++++++ 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.
