+# TODO
+# - pcscd & pcscd-lite-libs need to be exactly same version installed otherwise
+# client will flood daemon so much that daemon is not usable (max 200
+# connections reached, etc)
#
# Conditional build:
-%bcond_without hal # use libusb instead of HAL
+%bcond_without udev # use libusb instead of libudev
Summary: PCSC Framework for Linux
Summary(pl.UTF-8): Środowisko PCSC dla Linuksa
Name: pcsc-lite
-Version: 1.6.4
-Release: 2
+Version: 1.8.8
+Release: 1
License: BSD
Group: Daemons
-#Source0Download: http://alioth.debian.org/project/showfiles.php?group_id=30105
-Source0: http://alioth.debian.org/frs/download.php/3337/%{name}-%{version}.tar.bz2
-# Source0-md5: d2106e881803784fe2f27922d2d73bc0
+# Source0Download: https://alioth.debian.org/frs/?group_id=30105
+Source0: https://alioth.debian.org/frs/download.php/file/3862/%{name}-%{version}.tar.bz2
+# Source0-md5: 069dc875a2ae2d85a2ebceac73252c0a
Source1: %{name}-pcscd.init
Source2: %{name}-pcscd.sysconfig
+Source3: pcscd.upstart
+Source4: %{name}.tmpfiles
Patch0: %{name}-fhs.patch
Patch1: %{name}-any.patch
+Patch2: debuglog-pid.patch
+Patch3: configure-expand.patch
URL: http://www.linuxnet.com/middle.html
-BuildRequires: autoconf >= 2.58
+BuildRequires: autoconf >= 2.59
BuildRequires: automake >= 1:1.8
BuildRequires: flex
-%{?with_hal:BuildRequires: hal-devel}
-BuildRequires: libtool >= 1.4.2-9
-%{!?with_hal:BuildRequires: libusb-devel >= 1.0}
+%{?with_apidocs:BuildRequires: graphviz}
+BuildRequires: libtool >= 2:2.0
+%{!?with_udev:BuildRequires: libusb-devel >= 1.0}
BuildRequires: pkgconfig
-BuildRequires: rpmbuild(macros) >= 1.268
-BuildRequires: texlive-format-pdflatex
-BuildRequires: texlive-latex-ae
-BuildRequires: texlive-latex-bibtex
-BuildRequires: texlive-xetex
+BuildRequires: rpmbuild(macros) >= 1.647
+%{?with_udev:BuildRequires: udev-devel}
Requires(post,preun): /sbin/chkconfig
-Requires(pre): fileutils
-Requires: rc-scripts
+Requires(pretrans): fileutils
+Requires: rc-scripts >= 0.4.3.0
+Requires: systemd-units >= 38
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define usbdropdir /usr/%{_lib}/pcsc/drivers
%description static -l pl.UTF-8
Statyczne biblioteki PC/SC Lite.
+%package apidocs
+Summary: PC/SC Lite API documentation
+Summary(pl.UTF-8): Dokumentacja API biblioteki PC/SC Lite
+Group: Documentation
+
+%description apidocs
+API and internal documentation for PC/SC Lite library.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API biblioteki PC/SC Lite.
+
%prep
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
%build
%{__libtoolize}
%{__autoconf}
%{__autoheader}
%{__automake}
+# auto power down unreliable yet
+CPPFLAGS="%{rpmcppflags} -DDISABLE_ON_DEMAND_POWER_ON"
%configure \
- %{!?with_hal:--disable-libhal} \
- --enable-runpid=/var/run/pcscd.pid \
+ %{!?with_udev:--disable-libudev} \
+ --disable-silent-rules \
+ --enable-ipcdir=/var/run/pcscd \
--enable-static \
--enable-usbdropdir=%{usbdropdir}
%{__make}
-# temporary?
-%{__make} -C doc ifdhandler-3.pdf
+%if %{with apidocs}
+doxygen doc/doxygen.conf
+rm -f doc/api/*.{map,md5}
+%endif
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT%{usbdropdir} \
- $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
- $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+ $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,init} \
+ $RPM_BUILD_ROOT%{_sysconfdir}/reader.conf.d \
+ $RPM_BUILD_ROOT/var/run/pcscd \
+ $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
+ $RPM_BUILD_ROOT/usr/lib/tmpfiles.d
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/pcscd
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/pcscd
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
-install doc/example/*.c $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/pcscd
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/pcscd
+cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/init/pcscd.conf
+install %{SOURCE4} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
-rm -rf $RPM_BUILD_ROOT%{_prefix}/doc
+cp -p doc/example/*.c $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
%clean
rm -rf $RPM_BUILD_ROOT
%pretrans
# upgrade from pcsc-lite < 1.2.9-0.beta7
-if [ -f /etc/reader.conf -a ! -f /etc/reader.conf.d/reader.conf ]; then
- install -d -m755 /etc/reader.conf.d
- cp -af /etc/reader.conf /etc/reader.conf.d/reader.conf
+if [ -f /etc/reader.conf -a ! -f %{_sysconfdir}/reader.conf.d/reader.conf ]; then
+ install -d -m755 %{_sysconfdir}/reader.conf.d
+ cp -af /etc/reader.conf %{_sysconfdir}/reader.conf.d/reader.conf
fi
%post
/sbin/chkconfig --add pcscd
%service pcscd restart "PC/SC smart card daemon"
+%systemd_post pcscd.service pcscd.socket
%preun
if [ "$1" = "0" ]; then
%service pcscd stop
/sbin/chkconfig --del pcscd
fi
+%systemd_preun pcscd.service pcscd.socket
+
+%postun
+%systemd_reload
+
+%triggerpostun -- pcsc-lite < 1.8.3-1
+%systemd_trigger pcscd.service pcscd.socket
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%files
%defattr(644,root,root,755)
%doc AUTHORS COPYING ChangeLog* DRIVERS HELP NEWS README SECURITY TODO doc/README.DAEMON
+%attr(755,root,root) %{_bindir}/pcsc-spy
%attr(755,root,root) %{_sbindir}/pcscd
%dir %{_libdir}/pcsc
%dir %{_libdir}/pcsc/drivers
%dir %{_sysconfdir}/reader.conf.d
%attr(754,root,root) /etc/rc.d/init.d/pcscd
+%config(noreplace) %verify(not md5 mtime size) /etc/init/pcscd.conf
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/pcscd
+%{_mandir}/man1/pcsc-spy.1*
%{_mandir}/man5/reader.conf.5*
%{_mandir}/man8/pcscd.8*
+%dir /var/run/pcscd
+%{systemdunitdir}/pcscd.service
+%{systemdunitdir}/pcscd.socket
+/usr/lib/tmpfiles.d/%{name}.conf
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libpcsclite.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libpcsclite.so.1
+%attr(755,root,root) %{_libdir}/libpcscspy.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libpcscspy.so.0
%files devel
%defattr(644,root,root,755)
-%doc doc/ifdhandler-3.pdf
%attr(755,root,root) %{_libdir}/libpcsclite.so
+%attr(755,root,root) %{_libdir}/libpcscspy.so
%{_libdir}/libpcsclite.la
+%{_libdir}/libpcscspy.la
%{_includedir}/PCSC
%{_pkgconfigdir}/libpcsclite.pc
%{_examplesdir}/%{name}-%{version}
%files static
%defattr(644,root,root,755)
%{_libdir}/libpcsclite.a
+%{_libdir}/libpcscspy.a
+
+%if %{with apidocs}
+%files apidocs
+%defattr(644,root,root,755)
+%doc doc/api/*
+%endif