[cups] Migrate cups-lpd from xinetd to systemd socket activatable service (#884641)

Jiří Popelka jpopelka at fedoraproject.org
Wed Dec 19 16:45:47 UTC 2012


commit 5d256621a401bb7c7cd8c0e56450864ba3a85c2b
Author: Jiri Popelka <jpopelka at redhat.com>
Date:   Wed Dec 19 17:41:00 2012 +0100

    Migrate cups-lpd from xinetd to systemd socket activatable service (#884641)

 cups-lpd.socket   |    9 +++++++++
 cups-lpd at .service |    8 ++++++++
 cups.spec         |   48 ++++++++++++++++++++++++++++++++----------------
 3 files changed, 49 insertions(+), 16 deletions(-)
---
diff --git a/cups-lpd.socket b/cups-lpd.socket
new file mode 100644
index 0000000..b098052
--- /dev/null
+++ b/cups-lpd.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=CUPS-LPD Server Socket
+
+[Socket]
+ListenStream=515
+Accept=yes
+
+[Install]
+WantedBy=sockets.target
diff --git a/cups-lpd at .service b/cups-lpd at .service
new file mode 100644
index 0000000..23b59c1
--- /dev/null
+++ b/cups-lpd at .service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Allow legacy LPD clients to communicate with CUPS
+Documentation=man:cups-lpd(8)
+
+[Service]
+ExecStart=-/usr/lib/cups/daemon/cups-lpd
+StandardInput=socket
+User=lp
diff --git a/cups.spec b/cups.spec
index 23149c2..d225631 100644
--- a/cups.spec
+++ b/cups.spec
@@ -10,14 +10,16 @@
 Summary: Common Unix Printing System
 Name: cups
 Version: 1.6.1
-Release: 16%{?dist}
+Release: 17%{?dist}
 License: GPLv2
 Group: System Environment/Daemons
 Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2
 # Pixmap for desktop file
 Source2: cupsprinter.png
-# xinetd config file for cups-lpd service
-Source5: cups-lpd
+# socket unit for cups-lpd service
+Source3: cups-lpd.socket
+# cups-lpd service unit configuration
+Source4: cups-lpd at .service
 # Logrotate configuration
 Source6: cups.logrotate
 # Backend for NCP protocol
@@ -150,7 +152,6 @@ Summary: Common Unix Printing System - lpd emulation
 Group: System Environment/Daemons
 Requires: %{name} = %{epoch}:%{version}-%{release}
 Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
-Requires: xinetd
 
 %package ipptool
 Summary: Common Unix Printing System - tool for performing IPP requests
@@ -271,9 +272,6 @@ sed -i -r -e '/\spstops$/ { s/66/65/ }' conf/mime.convs.in
 
 sed -i -e '1iMaxLogSize 0' conf/cupsd.conf.in
 
-cp %{SOURCE5} cups-lpd.real
-perl -pi -e "s,\@LIBDIR\@,%{_libdir},g" cups-lpd.real
-
 # Let's look at the compilation command lines.
 perl -pi -e "s,^.SILENT:,," Makedefs.in
 
@@ -300,6 +298,7 @@ export CFLAGS="$RPM_OPT_FLAGS -fstack-protector-all -DLDAP_DEPRECATED=1"
 	--enable-avahi \
 	--enable-threads --enable-gnutls \
 	--enable-webif \
+	--with-xinetd=no \
 	localedir=%{_datadir}/locale
 
 # If we got this far, all prerequisite libraries must be here.
@@ -331,12 +330,13 @@ mv lpc.8 lpc-cups.8
 popd
 %endif
 
-mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps $RPM_BUILD_ROOT%{_sysconfdir}/X11/sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/X11/applnk/System $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily
-install -c -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/pixmaps
-install -c -m 644 cups-lpd.real $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/cups-lpd
-install -c -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/cups
-install -c -m 755 %{SOURCE7} $RPM_BUILD_ROOT%{cups_serverbin}/backend/ncp
-install -c -m 755 %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/cups
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps $RPM_BUILD_ROOT%{_sysconfdir}/X11/sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/X11/applnk/System $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily
+install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/pixmaps
+install -p -m 644 %{SOURCE3} %{buildroot}%{_unitdir}
+install -p -m 644 %{SOURCE4} %{buildroot}%{_unitdir}
+install -p -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/cups
+install -p -m 755 %{SOURCE7} $RPM_BUILD_ROOT%{cups_serverbin}/backend/ncp
+install -p -m 755 %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/cups
 
 # Ship an rpm macro for where to put driver executables.
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rpm/
@@ -455,6 +455,10 @@ done
 
 exit 0
 
+%post lpd
+%systemd_post cups-lpd.socket
+exit 0
+
 %post libs -p /sbin/ldconfig
 
 %postun libs -p /sbin/ldconfig
@@ -470,10 +474,17 @@ fi
 
 exit 0
 
+%preun lpd
+%systemd_preun cups-lpd.socket
+exit 0
+
 %postun
 %systemd_postun_with_restart %{name}.service
 exit 0
 
+%postun lpd
+%systemd_postun_with_restart cups-lpd.socket
+exit 0
 
 %triggerun -- %{name} < 1:1.5.0-22
 # This package is allowed to autostart; however, the upgrade trigger
@@ -566,6 +577,8 @@ rm -f %{cups_serverbin}/backend/smb
 # ipptool subpackage
 %exclude %{_mandir}/man1/ipptool.1.gz
 %exclude %{_mandir}/man5/ipptoolfile.5.gz
+# lpd subpackage
+%exclude %{_mandir}/man8/cups-lpd.8.gz
 %{_sbindir}/*
 %dir %{_datadir}/cups/templates
 %{_datadir}/cups/templates/*.tmpl
@@ -612,10 +625,10 @@ rm -f %{cups_serverbin}/backend/smb
 %{_sysconfdir}/rpm/macros.cups
 
 %files lpd
-%config(noreplace) %{_sysconfdir}/xinetd.d/cups-lpd
-%dir %{cups_serverbin}
-%dir %{cups_serverbin}/daemon
+%{_unitdir}/cups-lpd.socket
+%{_unitdir}/cups-lpd at .service
 %{cups_serverbin}/daemon/cups-lpd
+%{_mandir}/man8/cups-lpd.8.gz
 
 %files ipptool
 %{_bindir}/ipptool
@@ -625,6 +638,9 @@ rm -f %{cups_serverbin}/backend/smb
 %{_mandir}/man5/ipptoolfile.5.gz
 
 %changelog
+* Wed Dec 19 2012 Jiri Popelka <jpopelka at redhat.com> 1:1.6.1-17
+- Migrate cups-lpd from xinetd to systemd socket activatable service (#884641)
+
 * Thu Dec  6 2012 Tim Waugh <twaugh at redhat.com> 1:1.6.1-16
 - Additional fix relating to CVE-2012-5519 to avoid misleading error
   message about actions to take to enable file device URIs.


More information about the scm-commits mailing list