]> git.pld-linux.org Git - packages/minidlna.git/commitdiff
- run as minidlna user
authorArtur Frysiak <artur@frysiak.net>
Sun, 18 Nov 2012 17:46:57 +0000 (18:46 +0100)
committerArtur Frysiak <artur@frysiak.net>
Sun, 18 Nov 2012 17:55:15 +0000 (18:55 +0100)
- systemd support
- drop libdlna-devel BR (not used)
- versioned sqlite3 BR

config.patch [new file with mode: 0644]
minidlna.init
minidlna.service [new file with mode: 0644]
minidlna.spec
minidlna.tmpfiles [new file with mode: 0644]

diff --git a/config.patch b/config.patch
new file mode 100644 (file)
index 0000000..9431a01
--- /dev/null
@@ -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
index 53507f095f016b261236c681c08ffd9c72bc1a50..1904501da6b1aee33bd1852cf30a325b31ca4fe5 100644 (file)
@@ -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 (file)
index 0000000..28f7997
--- /dev/null
@@ -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
index 44fe0442a46a329d0b9d69c3ba4e33e40e295a16..18b74191ad0b4c6b1084dba779b540af443b5a04 100644 (file)
@@ -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/minidlna.tmpfiles b/minidlna.tmpfiles
new file mode 100644 (file)
index 0000000..1c5229b
--- /dev/null
@@ -0,0 +1 @@
+d /var/run/minidlna   755 minidlna minidlna
\ No newline at end of file
This page took 0.112492 seconds and 4 git commands to generate.