[packages/minidlna] - run as minidlna user - systemd support - drop libdlna-devel BR (not used) - versioned sqlite3 BR

wiget wiget at pld-linux.org
Sun Nov 18 18:55:55 CET 2012


commit 8b8001ed8f19aa709734642505de888ad5e653ba
Author: Artur Frysiak <artur at frysiak.net>
Date:   Sun Nov 18 18:46:57 2012 +0100

    - run as minidlna user
    - systemd support
    - drop libdlna-devel BR (not used)
    - versioned sqlite3 BR

 config.patch      | 22 ++++++++++++++++++++++
 minidlna.init     |  4 ++--
 minidlna.service  | 13 +++++++++++++
 minidlna.spec     | 44 +++++++++++++++++++++++++++++++++++++-------
 minidlna.tmpfiles |  1 +
 5 files changed, 75 insertions(+), 9 deletions(-)
---
diff --git a/minidlna.spec b/minidlna.spec
index 44fe044..18b7419 100644
--- a/minidlna.spec
+++ b/minidlna.spec
@@ -1,24 +1,29 @@
+# TODO:
+# logrotate
+#
 Summary:	DLNA server software
 Summary(pl.UTF-8):	Oprogramowanie serwerowe DLNA
 Name:		minidlna
 Version:	1.0.25
-Release:	3
+Release:	4
 License:	GPL v2
 Group:		Networking/Daemons
 Source0:	http://downloads.sourceforge.net/minidlna/%{name}_%{version}_src.tar.gz
 # Source0-md5:	d966256baf2f9b068b9de871ab5dade5
 Source1:	%{name}.init
+Source2:	%{name}.service
+Source3:	%{name}.tmpfiles
 # https://gitorious.org/debian-pkg/minidlna/blobs/raw/master/debian/minidlna.1
 Source4:	%{name}.1
 # https://gitorious.org/debian-pkg/minidlna/blobs/raw/master/debian/minidlna.conf.5
 Source5:	%{name}.conf.5
 Patch0:		%{name}-ffmpeg10.patch
+Patch1:		config.patch
 URL:		http://sourceforge.net/projects/minidlna/
 # libavcodec libavformat libavutil
 BuildRequires:	ffmpeg-devel
 BuildRequires:	flac-devel
 BuildRequires:	gettext-devel
-BuildRequires:	libdlna-devel >= 0.2.1
 BuildRequires:	libexif-devel
 BuildRequires:	libid3tag-devel
 BuildRequires:	libjpeg-devel
@@ -26,7 +31,7 @@ BuildRequires:	libogg-devel
 BuildRequires:	libvorbis-devel
 BuildRequires:	rpmbuild(macros) >= 1.228
 BuildRequires:	sed >= 4.0
-BuildRequires:	sqlite3-devel
+BuildRequires:	sqlite3-devel >= 3.5.1
 Requires(post,preun):	/sbin/chkconfig
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -41,6 +46,7 @@ którego celem jest pełna zgodność z klientami DLNA/UPnP-AV.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %{__sed} -i -e 's#-g -O3#$(OPTFLAGS)#g' Makefile
 
@@ -54,7 +60,9 @@ sed -i 's/@$(CC)/$(CC)/' Makefile
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_mandir}/man{1,5}}
+install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_mandir}/man{1,5}} \
+	$RPM_BUILD_ROOT{%{systemdtmpfilesdir},%{systemdunitdir}} \
+	$RPM_BUILD_ROOT/var/{log,run,cache}/%{name}
 
 %{__make} -j1 install \
 	DESTDIR=$RPM_BUILD_ROOT
@@ -62,7 +70,9 @@ install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_mandir}/man{1,5}}
 %{__make} -j1 install-conf \
 	DESTDIR=$RPM_BUILD_ROOT
 
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+cp -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
 
 # Install man pages
 install %{SOURCE4} $RPM_BUILD_ROOT%{_mandir}/man1/
@@ -76,15 +86,30 @@ done
 
 %find_lang %{name}
 
+%pre
+%groupadd -g 284 minidlna
+%useradd -u 284 -r -d / -s /bin/false -g minidlna minidlna
+
 %post
 /sbin/chkconfig --add %{name}
-%service %{name} restart
+%systemd_post %{name}.service
 
 %preun
 if [ "$1" = "0" ]; then
         %service -q %{name} stop
         /sbin/chkconfig --del %{name}
 fi
+%systemd_preun %{name}.service
+
+%postun
+if [ "$1" = "0" ]; then
+        %userremove minidlna
+        %groupremove minidlna
+fi
+%systemd_reload
+
+%triggerpostun -- %{name} < 1.0.25-3
+%systemd_trigger %{name}.service
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -93,7 +118,12 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %doc LICENCE.miniupnpd NEWS README TODO
 %attr(754,root,root) /etc/rc.d/init.d/minidlna
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/minidlna.conf
+%attr(640,root,minidlna) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/minidlna.conf
 %attr(755,root,root) %{_sbindir}/minidlna
+%{systemdtmpfilesdir}/%{name}.conf
+%{systemdunitdir}/%{name}.service
+%dir %attr(755,minidlna,minidlna) /var/run/%{name}
+%dir %attr(755,minidlna,minidlna) /var/cache/%{name}
+%dir %attr(755,minidlna,minidlna) /var/log/%{name}
 %{_mandir}/man1/*
 %{_mandir}/man5/*
diff --git a/config.patch b/config.patch
new file mode 100644
index 0000000..9431a01
--- /dev/null
+++ b/config.patch
@@ -0,0 +1,22 @@
+--- minidlna-1.0.25/minidlna.conf.wiget	2012-11-18 11:12:19.015994831 +0100
++++ minidlna-1.0.25/minidlna.conf	2012-11-18 11:19:02.359311611 +0100
+@@ -11,16 +11,16 @@ port=8200
+ #   + "A" for audio  (eg. media_dir=A,/home/jmaggard/Music)
+ #   + "V" for video  (eg. media_dir=V,/home/jmaggard/Videos)
+ #   + "P" for images (eg. media_dir=P,/home/jmaggard/Pictures)
+-media_dir=/opt
++#media_dir=/opt
+ 
+ # set this if you want to customize the name that shows up on your clients
+ #friendly_name=My DLNA Server
+ 
+ # set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache
+-#db_dir=/var/cache/minidlna
++db_dir=/var/cache/minidlna
+ 
+ # set this if you would like to specify the directory where you want MiniDLNA to store its log file
+-#log_dir=/var/log
++log_dir=/var/log/minidlna
+ 
+ # set this to change the verbosity of the information that is logged
+ # each section can use a different level: off, fatal, error, warn, info, or debug
diff --git a/minidlna.init b/minidlna.init
index 53507f0..1904501 100644
--- a/minidlna.init
+++ b/minidlna.init
@@ -33,7 +33,7 @@ fi
 # Get service config - may override defaults
 [ -f /etc/sysconfig/minidlna ] && . /etc/sysconfig/minidlna
 
-pidfile="/var/run/minidlna.pid"
+pidfile="/var/run/minidlna/minidlna.pid"
 
 
 start() {
@@ -44,7 +44,7 @@ start() {
 	fi
 
 	msg_starting "minidlna"
-	daemon /usr/sbin/minidlna 
+	daemon --user minidlna /usr/sbin/minidlna -P $pidfile -f /etc/minidlna.conf
 	RETVAL=$?
 	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/minidlna
 }
diff --git a/minidlna.service b/minidlna.service
new file mode 100644
index 0000000..28f7997
--- /dev/null
+++ b/minidlna.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=MiniDLNA is a DLNA/UPnP-AV server software
+After=syslog.target local-fs.target network.target
+
+[Service]
+Type=forking
+PIDFile=/var/run/minidlna/minidlna.pid
+ExecStart=/usr/sbin/minidlna -P /var/run/minidlna/minidlna.pid -f /etc/minidlna.conf
+User=minidlna
+Group=minidlna
+
+[Install]
+WantedBy=multi-user.target
diff --git a/minidlna.tmpfiles b/minidlna.tmpfiles
new file mode 100644
index 0000000..1c5229b
--- /dev/null
+++ b/minidlna.tmpfiles
@@ -0,0 +1 @@
+d /var/run/minidlna   755 minidlna minidlna
\ No newline at end of file
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/minidlna.git/commitdiff/8b8001ed8f19aa709734642505de888ad5e653ba



More information about the pld-cvs-commit mailing list