[mgetty] mgetty: add systemd unit for mgetty and some spec cleanup

Michal Sekletar msekleta at fedoraproject.org
Fri Apr 19 12:16:34 UTC 2013


commit b64b9e294759ddd98610dbaa15b78718833d430c
Author: Michal Sekletar <msekleta at redhat.com>
Date:   Mon Apr 8 15:36:30 2013 +0200

    mgetty: add systemd unit for mgetty and some spec cleanup

 mgetty.spec     |   83 +++++++++++++++++++++++++++++--------------------------
 mgetty at .service |   24 ++++++++++++++++
 2 files changed, 68 insertions(+), 39 deletions(-)
---
diff --git a/mgetty.spec b/mgetty.spec
index 26ce672..5440152 100644
--- a/mgetty.spec
+++ b/mgetty.spec
@@ -17,6 +17,7 @@ Source3: logrotate.sendfax
 Source4: logrotate.vgetty
 Source5: logrotate.vm
 Source6: vgetty at .service
+Source7: mgetty at .service
 
 Patch0: mgetty-1.1.29-config.patch
 Patch1: mgetty-1.1.26-policy.patch
@@ -48,11 +49,10 @@ Patch27: mgetty-1.1.36-lockdev.patch
 
 License: GPLv2+
 Group: Applications/Communications
-Requires(post): /sbin/install-info
-Requires(preun): /sbin/install-info
-BuildRequires: libX11-devel, libXext-devel, texinfo-tex, texlive-dvips lockdev-devel
-Requires: coreutils
-Requires: /usr/sbin/sendmail
+BuildRequires: libX11-devel, libXext-devel, texinfo-tex, texlive-dvips, lockdev-devel, systemd
+Requires: coreutils, /sbin/sendmail
+Requires(post): /sbin/install-info, systemd
+Requires(preun): /sbin/install-info, systemd
 Conflicts: hylafax+
 URL: http://mgetty.greenie.net/
 
@@ -62,13 +62,13 @@ Requires: mgetty = %{version}
 Group: Applications/Communications
 Requires: coreutils
 Requires: netpbm-progs
-Requires(pre): /usr/sbin/useradd
+Requires(pre): /sbin/useradd
 
 %package voice
 Summary: A program for using your modem and mgetty as an answering machine
 Requires: mgetty = %{version}
-Requires(post): systemd-units
-Requires(postun): systemd-units
+Requires(post): systemd
+Requires(postun): systemd
 Group: Applications/Communications
 
 %package viewfax
@@ -148,79 +148,83 @@ make OPT="$RPM_OPT_FLAGS" CONFDIR=%{_sysconfdir}/mgetty+sendfax
 popd
 
 %install
-mkdir -p $RPM_BUILD_ROOT{%{_bindir},%{_infodir},%{_libdir}/mgetty+sendfax}
-mkdir -p $RPM_BUILD_ROOT{%{_mandir},%{_sbindir},/var/spool}
+mkdir -p %{buildroot}{%{_bindir},%{_infodir},%{_libdir}/mgetty+sendfax}
+mkdir -p %{buildroot}{%{_mandir},%{_sbindir},/var/spool}
 
-%define instflags CFLAGS="$RPM_OPT_FLAGS -Wall -DAUTO_PPP" prefix=$RPM_BUILD_ROOT%{_prefix} spool=$RPM_BUILD_ROOT%{_var}/spool BINDIR=$RPM_BUILD_ROOT%{_bindir} SBINDIR=$RPM_BUILD_ROOT%{_sbindir} LIBDIR=$RPM_BUILD_ROOT%{_libdir}/mgetty+sendfax HELPDIR=$RPM_BUILD_ROOT%{_libdir}/mgetty+sendfax CONFDIR=$RPM_BUILD_ROOT%{_sysconfdir}/mgetty+sendfax MANDIR=$RPM_BUILD_ROOT%{_mandir} MAN1DIR=$RPM_BUILD_ROOT%{_mandir}/man1 MAN4DIR=$RPM_BUILD_ROOT%{_mandir}/man4 MAN5DIR=$RPM_BUILD_ROOT%{_mandir}/man5 MAN8DIR=$RPM_BUILD_ROOT%{_mandir}/man8 INFODIR=$RPM_BUILD_ROOT%{_infodir} ECHO='echo -e' INSTALL=%{__install}
+%define instflags CFLAGS="$RPM_OPT_FLAGS -Wall -DAUTO_PPP" prefix=%{buildroot}%{_prefix} spool=%{buildroot}%{_var}/spool BINDIR=%{buildroot}%{_bindir} SBINDIR=%{buildroot}%{_sbindir} LIBDIR=%{buildroot}%{_libdir}/mgetty+sendfax HELPDIR=%{buildroot}%{_libdir}/mgetty+sendfax CONFDIR=%{buildroot}%{_sysconfdir}/mgetty+sendfax MANDIR=%{buildroot}%{_mandir} MAN1DIR=%{buildroot}%{_mandir}/man1 MAN4DIR=%{buildroot}%{_mandir}/man4 MAN5DIR=%{buildroot}%{_mandir}/man5 MAN8DIR=%{buildroot}%{_mandir}/man8 INFODIR=%{buildroot}%{_infodir} ECHO='echo -e' INSTALL=%{__install}
 
 make install %instflags
 # the non-standard executable permissions are used due to security
-install -m700 callback/callback $RPM_BUILD_ROOT%{_sbindir}
+install -m700 callback/callback %{buildroot}%{_sbindir}
 # helper tests internally usage of suid - this is an intention
-install -m4711 callback/ct $RPM_BUILD_ROOT%{_bindir}
+install -m4711 callback/ct %{buildroot}%{_bindir}
 
 # this conflicts with efax
-mv $RPM_BUILD_ROOT%{_mandir}/man1/fax.1 $RPM_BUILD_ROOT%{_mandir}/man1/mgetty_fax.1
+mv %{buildroot}%{_mandir}/man1/fax.1 %{buildroot}%{_mandir}/man1/mgetty_fax.1
 
 # tools
 make -C tools install %instflags
 
 # voice mail extensions
-mkdir -p $RPM_BUILD_ROOT%{_var}/spool/voice/{messages,incoming}
+mkdir -p %{buildroot}%{_var}/spool/voice/{messages,incoming}
 make -C voice install %instflags
 # the non-standard permissions are used due to security
-install -m 600 -c voice/voice.conf-dist $RPM_BUILD_ROOT%{_sysconfdir}/mgetty+sendfax/voice.conf
+install -m 600 -c voice/voice.conf-dist %{buildroot}%{_sysconfdir}/mgetty+sendfax/voice.conf
 
 # don't ship documentation that is executable...
 find samples -type f -exec chmod 644 {} \;
 
-make -C frontends/X11/viewfax install %instflags MANDIR=$RPM_BUILD_ROOT%{_mandir}/man1
+make -C frontends/X11/viewfax install %instflags MANDIR=%{buildroot}%{_mandir}/man1
 
 # install logrotate control files
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
+mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
 
 # install unit file template for vgetty
-mkdir -p $RPM_BUILD_ROOT%{_unitdir}
+mkdir -p %{buildroot}%{_unitdir}
 
-install -m 0644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/mgetty
-install -m 0644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/sendfax
-install -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/vgetty
-install -m 0644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/vm
-install -m 0644 %{SOURCE6} $RPM_BUILD_ROOT%{_unitdir}/
+install -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/mgetty
+install -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/logrotate.d/sendfax
+install -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/logrotate.d/vgetty
+install -m 0644 %{SOURCE5} %{buildroot}%{_sysconfdir}/logrotate.d/vm
+install -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/
+install -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/
 
-# remove file droppings from $RPM_BUILD_ROOT
-rm -f $RPM_BUILD_ROOT%{_bindir}/cutbl
+# remove file droppings from buildroot
+rm -f %{buildroot}%{_bindir}/cutbl
 
 # remove file conflict with netpbm:
-rm -f $RPM_BUILD_ROOT%{_bindir}/g3topbm
+rm -f %{buildroot}%{_bindir}/g3topbm
 
 %post
+if [ $1 -eq 1 ]; then
+    systemctl daemon-reload >/dev/null 2>&1 || :
+fi
+
 if [ -f %{_infodir}/mgetty.inf* ]; then
-	install-info %{_infodir}/mgetty.info.gz %{_infodir}/dir --entry="* mgetty: (mgetty).		Package to handle faxes, voicemail and more." || :
+    install-info %{_infodir}/mgetty.info.gz %{_infodir}/dir \
+    --entry="* mgetty: (mgetty). Package to handle faxes, voicemail and more." || :
 fi
 
 %preun
 if [ -f %{_infodir}/mgetty.inf* ]; then
-	install-info --delete %{_infodir}/mgetty.info.gz %{_infodir}/dir --entry="* mgetty: (mgetty).		Package to handle faxes, voicemail and more." || :
+    install-info --delete %{_infodir}/mgetty.info.gz %{_infodir}/dir \
+    --entry="* mgetty: (mgetty). Package to handle faxes, voicemail and more." || :
 fi
 
+%postun
+%systemd_postun
+
 %pre sendfax
 getent group fax >/dev/null || groupadd -g %SENDFAX_UID -r fax
-getent passwd fax >/dev/null || \
-  useradd -r -u %SENDFAX_UID -g fax -d /var/spool/fax -s /sbin/nologin -c "mgetty fax spool user" fax
-exit 0
+getent passwd fax >/dev/null || useradd -r -u %SENDFAX_UID -g fax -d /var/spool/fax -s /sbin/nologin -c "mgetty fax spool user" fax
 
 %post voice
 if [ $1 -eq 1 ]; then
-	systemctl daemon-reload >/dev/null 2>&1 || :
+    systemctl daemon-reload >/dev/null 2>&1 || :
 fi
 
 %postun voice
-%if 0%{?fedora} > 17
-	%systemd_postun
-%else
-	systemctl daemon-reload >/dev/null 2>&1 || :
-%endif
+%systemd_postun
 
 %files
 %defattr(-,root,root)
@@ -241,6 +245,7 @@ fi
 %config(noreplace) %{_sysconfdir}/mgetty+sendfax/mgetty.config
 %config(noreplace) %{_sysconfdir}/mgetty+sendfax/dialin.config
 %config(noreplace) %{_sysconfdir}/logrotate.d/mgetty
+%{_unitdir}/mgetty at .service
 
 %files sendfax
 %defattr(-,root,root)
@@ -290,7 +295,6 @@ fi
 %dir %{_var}/spool/voice
 %dir %{_var}/spool/voice/incoming
 %dir %{_var}/spool/voice/messages
-%{_unitdir}/vgetty at .service
 %{_sbindir}/vgetty
 %{_bindir}/vm
 %{_bindir}/pvfamp
@@ -349,6 +353,7 @@ fi
 # logrotate file name uses only sub-package name
 %config(noreplace) %{_sysconfdir}/logrotate.d/vgetty
 %config(noreplace) %{_sysconfdir}/logrotate.d/vm
+%{_unitdir}/vgetty at .service
 
 %files viewfax
 %defattr(-,root,root)
diff --git a/mgetty at .service b/mgetty at .service
new file mode 100644
index 0000000..e0312f1
--- /dev/null
+++ b/mgetty at .service
@@ -0,0 +1,24 @@
+[Unit]
+Description=mgetty on /dev/%I
+Documentation=man:mgetty(8)
+BindsTo=dev-%i.device
+After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service
+After=rc-local.service
+Before=getty.target
+IgnoreOnIsolate=yes
+
+[Service]
+ExecStart=-/sbin/mgetty /dev/%I
+Type=idle
+Restart=always
+RestartSec=0
+UtmpIdentifier=%I
+TTYPath=/dev/%I
+KillMode=process
+IgnoreSIGPIPE=no
+
+[Install]
+WantedBy=getty at .target
+
+
+


More information about the scm-commits mailing list