From 8ef0047c376f311c41f0eff670463606e2fa6adbb13f071b763aa5111cc51aab Mon Sep 17 00:00:00 2001 From: Wolfgang Rosenauer Date: Thu, 30 Oct 2014 21:06:20 +0000 Subject: [PATCH] Accepting request 259049 from home:sbrabec:branches:security:chipcard - Fix systemd integration and socket activation (boo#900115): * fix quoting in systemd-service.patch * add missing systemd service preset - Drop obsolete upgrade protection in %pre. OBS-URL: https://build.opensuse.org/request/show/259049 OBS-URL: https://build.opensuse.org/package/show/security:chipcard/pcsc-lite?expand=0&rev=106 --- pcsc-lite.changes | 10 +++++++++- pcsc-lite.spec | 25 +++++++++++++------------ systemd-service.patch | 2 +- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/pcsc-lite.changes b/pcsc-lite.changes index 8097a39..ba8c32c 100644 --- a/pcsc-lite.changes +++ b/pcsc-lite.changes @@ -1,7 +1,15 @@ +------------------------------------------------------------------- +Thu Oct 30 20:54:55 CET 2014 - sbrabec@suse.cz + +- Fix systemd integration and socket activation (boo#900115): + * fix quoting in systemd-service.patch + * add missing systemd service preset +- Drop obsolete upgrade protection in %pre. + ------------------------------------------------------------------- Wed Oct 29 21:00:59 UTC 2014 - wr@rosenauer.org -- fixed sysconfig fillup +- fixed sysconfig fillup ------------------------------------------------------------------- Wed Sep 24 14:20:37 UTC 2014 - wr@rosenauer.org diff --git a/pcsc-lite.spec b/pcsc-lite.spec index 91322c1..46cd5f6 100644 --- a/pcsc-lite.spec +++ b/pcsc-lite.spec @@ -173,35 +173,35 @@ mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates cp %{name}.sysconfig $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.pcscd mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name} cp -a AUTHORS ChangeLog ChangeLog.svn COPYING DRIVERS HELP NEWS README README.SUSE SECURITY TODO $RPM_BUILD_ROOT%{_docdir}/%{name} +# Use socket activated pcscd by default. +mkdir -p $RPM_BUILD_ROOT/usr/lib/systemd/system-preset +echo -e 'enable pcscd.socket\nenable pcscd.service' >$RPM_BUILD_ROOT/usr/lib/systemd/system-preset/50-pcscd.preset %clean rm -rf $RPM_BUILD_ROOT %pre getent group %{GROUP} >/dev/null || groupadd -r %{GROUP} -if getent passwd %{USER} >/dev/null ; then - # There was a bad login shell up to openSUSE 12.2 (bnc#796242), never in SLE. Fix it. - usermod -s /usr/sbin/nologin %{USER} -else - useradd -r -g %{GROUP} -s /usr/sbin/nologin -c "Smart Card Reader" -d /var/run/pcscd %{USER} -fi +getent passwd %{USER} >/dev/null || useradd -r -g %{GROUP} -s /usr/sbin/nologin -c "Smart Card Reader" -d /var/run/pcscd %{USER} %if %suse_version > 1140 %service_add_pre pcscd.service pcscd.socket +# trick: service existed before, but it had no preset before 13.2 and in SLE12. Force %%service_add_post to run preset. +if [ $1 -gt 1 ] ; then + if ! test -f /usr/lib/systemd/system-preset/50-pcscd.preset ; then + echo -n "" >/run/rpm-%{name}-update-pcscd.socket-new-in-upgrade + echo -n "" >/run/rpm-%{name}-update-pcscd.service-new-in-upgrade + fi +fi %endif -exit 0 %post %if %suse_version > 1140 %service_add_post pcscd.service pcscd.socket -/bin/systemctl disable pcscd.service || : -/bin/systemctl enable pcscd.socket || : -/bin/systemctl try-restart pcscd.service || : -/bin/systemctl restart pcscd.socket || : %endif %if %suse_version < 1310 %fillup_and_insserv -y -n pcscd pcscd %else -%fillup_only -n pcscd pcscd +%fillup_only -n pcscd %endif %preun @@ -259,6 +259,7 @@ fi %if %suse_version < 1310 %{_initrddir}/pcscd %endif +/usr/lib/systemd/system-preset/50-pcscd.preset /var/adm/fillup-templates/sysconfig.pcscd # libpcsclite.so should stay in the main package (#732911). Third party packages may need it for dlopen(). %{_libdir}/libpcsclite.so diff --git a/systemd-service.patch b/systemd-service.patch index 24ce82e..230e1ae 100644 --- a/systemd-service.patch +++ b/systemd-service.patch @@ -7,7 +7,7 @@ index 7934050..ddbdcc4 100644 [Service] -ExecStart=@sbindir_exp@/pcscd --foreground --auto-exit -+Environment=PCSCD_OPTIONS="" ++Environment="PCSCD_OPTIONS=" +EnvironmentFile=-/etc/sysconfig/pcscd +ExecStart=@sbindir_exp@/pcscd --foreground --auto-exit $PCSCD_OPTIONS ExecReload=@sbindir_exp@/pcscd --hotplug