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