diff --git a/config.xml b/config.xml new file mode 100644 index 0000000..f1ef462 --- /dev/null +++ b/config.xml @@ -0,0 +1,165 @@ + + + + + + + + + + Gerbera + uuid:ebc72883-bdd4-432e-be5f-87051d2d0091 + /etc/gerbera + /usr/share/gerbera/web + + 1800 + + + gerbera.db + + + + + upnp:class derivedfrom "object.item" and last_updated > "@last7" + + + upnp:class derivedfrom "object.item" and last_modified > "@last7" + + + + + 128 + 5 + yes + no + 8 + + + * + + video + + + + + + + /usr/share/gerbera/js/common.js + /usr/share/gerbera/js/playlists.js + + /usr/share/gerbera/js/import.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + audio/mpeg + no + yes + no + + + + + video/mpeg + yes + yes + yes + + + + + + + diff --git a/gerbera-1.9.1.tar.gz b/gerbera-1.9.1.tar.gz deleted file mode 100644 index b1507d1..0000000 --- a/gerbera-1.9.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5d323c6cb4150e3454b8c6e0012f41648441799ba44cb59436b124b54d3fc82b -size 3665530 diff --git a/gerbera-1.9.2.tar.gz b/gerbera-1.9.2.tar.gz new file mode 100644 index 0000000..f808fbb --- /dev/null +++ b/gerbera-1.9.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dee562cc5d22e8442e2fe1620b073bda612c80f9c4a8333311c647db06c1c4cd +size 3671452 diff --git a/gerbera.changes b/gerbera.changes index aba0961..ea093a5 100644 --- a/gerbera.changes +++ b/gerbera.changes @@ -1,3 +1,32 @@ +------------------------------------------------------------------- +Thu Oct 7 12:51:58 UTC 2021 - Paolo Stivanin + +- Update to 1.9.2: +* Titles of search results can be configured +* Containers in virtual layout can be defined as search result, so, + e.g. albums, located in several places are only found once +* Metadata, like artist, appearing multiple times are now stored + in that way and can be sent to UPnP clients as separate entries + as well or addressed in layout scripts. If you have a custom js + import script which updates metadata you have to modify it using + the new properties (see doc on scripting) +* DLNA profile can be configured using video and audio codec, + allow devices to pick supported streams +* DLNA profile can be set for transcoding + +------------------------------------------------------------------- +Tue Sep 21 12:33:17 UTC 2021 - Paolo Stivanin + +- Fix spec file +- Add config.xml +- Remove unneeded tmpfile + +------------------------------------------------------------------- +Tue Sep 21 09:51:10 UTC 2021 - Johannes Segitz + +- Added hardening to systemd service(s) (bsc#1181400). Added patch(es): + * harden_gerbera.service.patch + ------------------------------------------------------------------- Thu Sep 2 07:25:06 UTC 2021 - Paolo Stivanin diff --git a/gerbera.spec b/gerbera.spec index 3b78408..73ae7f8 100644 --- a/gerbera.spec +++ b/gerbera.spec @@ -17,15 +17,16 @@ Name: gerbera -Version: 1.9.1 +Version: 1.9.2 Release: 0 Summary: UPnP Media Server License: GPL-2.0-only Group: Productivity/Multimedia/Other URL: https://gerbera.io Source0: https://github.com/gerbera/gerbera/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz -Source3: gerbera.tmpfile.in -Source4: gerbera.sysusers.in +Source1: config.xml +Source2: gerbera.sysusers.in +Patch0: harden_gerbera.service.patch BuildRequires: cmake >= 3.13 BuildRequires: fdupes BuildRequires: file-devel @@ -67,22 +68,18 @@ media through a network and consume it on a variety of UPnP compatible devices. %prep -%autosetup +%autosetup -p1 # server test hardcodes alpha strings sed -i -e '/test_server/d' test/CMakeLists.txt - -for _file in %{SOURCE3} %{SOURCE4}; do - sed -e 's/@USER@/gerbera/' \ - -e 's/@GROUP@/gerbera/' \ - < $_file > ${_file##*/} -done +sed -i -e 's/@USER@/gerbera/' %{SOURCE2} +sed -i -e 's/@GROUP@/gerbera/' %{SOURCE2} %build -export CFLAGS="${CFLAGS} -fPIE" -export CXXFLAGS="${CXXFLAGS} -fPIE" -export LDFLAGS="${LDFLAGS} -pie" %cmake \ + -DWITH_JS=1 \ + -DWITH_TAGLIB=1 \ + -DWITH_MAGIC=1 \ -DWITH_AVCODEC=1 \ -DWITH_EXIF=0 \ -DWITH_EXIV2=1 \ @@ -91,6 +88,8 @@ export LDFLAGS="${LDFLAGS} -pie" -DCMAKE_C_COMPILER=gcc-10 \ %endif -DWITH_FFMPEGTHUMBNAILER=1 \ + -DWITH_INOTIFY=1 \ + -DWITH_SYSTEMD=1 \ -DWITH_TESTS=1 \ -Wno-dev %cmake_build @@ -98,13 +97,25 @@ export LDFLAGS="${LDFLAGS} -pie" %install %cmake_install +mkdir -p %{buildroot}%{_sysconfdir}/gerbera +touch %{buildroot}%{_sysconfdir}/gerbera/{gerbera.db,gerbera.html} +mkdir -p %{buildroot}%{_localstatedir}/log/gerbera +touch %{buildroot}%{_localstatedir}/log/%{name} +mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d +cat > %{buildroot}%{_sysconfdir}/logrotate.d/%{name} << 'EOF' +/var/log/gerbera/gerbera { +create 644 gerbera gerbera + monthly + compress + missingok +} +EOF + install -d %{buildroot}%{_sbindir} ln -s service %{buildroot}%{_sbindir}/rc%{name} -install -Dm 0644 %{name}.tmpfile.in %{buildroot}%{_tmpfilesdir}/%{name}.conf -install -Dm 0644 %{name}.sysusers.in %{buildroot}%{_sysusersdir}/%{name}.conf -install -d %{buildroot}%{_localstatedir}/lib/%{name} -touch %{buildroot}%{_localstatedir}/lib/%{name}/{config.xml,%{name}.db,%{name}.html} +install -p -D -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/gerbera/config.xml +install -p -D -m0644 %{SOURCE2} %{buildroot}%{_sysusersdir}/gerbera.conf %check %ctest @@ -118,7 +129,6 @@ useradd -r -g gerbera -d %{_sysconfdir}/gerbera -s /sbin/nologin \ %post %service_add_post %{name}.service -%tmpfiles_create %{_tmpfilesdir}/%{name}.conf %sysusers_create %{_sysusersdir}/%{name}.conf %preun @@ -130,16 +140,24 @@ useradd -r -g gerbera -d %{_sysconfdir}/gerbera -s /sbin/nologin \ %files %license LICENSE.md %doc AUTHORS CONTRIBUTING.md ChangeLog.md +%attr(-,gerbera,gerbera)%dir %{_sysconfdir}/%{name}/ +%attr(-,gerbera,gerbera)%config(noreplace) %{_sysconfdir}/%{name}/* +%attr(-,gerbera,gerbera) %{_localstatedir}/log/%{name} +%dir %{_sysconfdir}/logrotate.d +%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %{_bindir}/%{name} -%{_datadir}/%{name}/ -%{_unitdir}/%{name}.service %{_sbindir}/rc%{name} -%{_tmpfilesdir}/%{name}.conf -%{_sysusersdir}/%{name}.conf +%{_unitdir}/gerbera.service +%{_sysusersdir}/gerbera.conf %{_mandir}/man?/%{name}.?%{?ext_man} -%ghost %attr(-,gerbera,gerbera) %dir %{_localstatedir}/lib/%{name} -%ghost %attr(0660,gerbera,gerbera) %{_localstatedir}/lib/%{name}/config.xml -%ghost %attr(0750,gerbera,gerbera) %{_localstatedir}/lib/%{name}/%{name}.db -%ghost %attr(0660,gerbera,gerbera) %{_localstatedir}/lib/%{name}/%{name}.html +%{_datadir}/gerbera/mysql-upgrade.xml +%{_datadir}/gerbera/mysql.sql +%{_datadir}/gerbera/sqlite3-upgrade.xml +%{_datadir}/gerbera/sqlite3.sql +%dir %{_datadir}/gerbera +%dir %{_datadir}/gerbera/js +%dir %{_datadir}/gerbera/web +%{_datadir}/gerbera/js/* +%{_datadir}/gerbera/web/* %changelog diff --git a/gerbera.sysusers.in b/gerbera.sysusers.in index 783ecfe..cf5e1e2 100644 --- a/gerbera.sysusers.in +++ b/gerbera.sysusers.in @@ -1,2 +1,2 @@ u @USER@ - "Gerbera daemon user" /var/lib/gerbera -m @USER@ video +m @GROUP@ video diff --git a/gerbera.tmpfile.in b/gerbera.tmpfile.in deleted file mode 100644 index b499b42..0000000 --- a/gerbera.tmpfile.in +++ /dev/null @@ -1,3 +0,0 @@ -d /var/lib/gerbera 0755 @USER@ @GROUP@ - -d /var/log/gerbera 0755 @USER@ @GROUP@ - -d /run/gerbera 0750 @USER@ @GROUP@ - diff --git a/harden_gerbera.service.patch b/harden_gerbera.service.patch new file mode 100644 index 0000000..39041f2 --- /dev/null +++ b/harden_gerbera.service.patch @@ -0,0 +1,25 @@ +Index: gerbera-1.9.1/scripts/systemd/gerbera.service.cmake +=================================================================== +--- gerbera-1.9.1.orig/scripts/systemd/gerbera.service.cmake ++++ gerbera-1.9.1/scripts/systemd/gerbera.service.cmake +@@ -3,6 +3,20 @@ Description=${SYSTEMD_DESCRIPTION} + After=${SYSTEMD_AFTER_TARGET} + + [Service] ++# added automatically, for details please see ++# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort ++ProtectSystem=full ++ProtectHome=true ++PrivateDevices=true ++ProtectHostname=true ++ProtectClock=true ++ProtectKernelTunables=true ++ProtectKernelModules=true ++ProtectKernelLogs=true ++ProtectControlGroups=true ++RestrictRealtime=true ++ReadWritePaths=/usr/share/gerbera/ /etc/gerbera/ ++# end of automatic additions + Type=simple + User=gerbera + Group=gerbera