diff --git a/pcsc-lite.changes b/pcsc-lite.changes index 50dade7..ba8c32c 100644 --- a/pcsc-lite.changes +++ b/pcsc-lite.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +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 + ------------------------------------------------------------------- Wed Sep 24 14:20:37 UTC 2014 - wr@rosenauer.org diff --git a/pcsc-lite.spec b/pcsc-lite.spec index d95ecc6..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 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