# RPM specfile for the trousers project on Fedora

%define name		trousers
%define version		0.3.1
%define release		1

Name:			%{name}
Summary:		Implementation of the TCG's Software Stack v1.2 Specification
Version:		%{version}
Release:		%{release}%{?dist}
License:		CPL
Group:			System Environment/Libraries
Source0:		http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
Url:			http://www.sf.net/projects/trousers
BuildRoot:		%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires:		libtool, gtk2-devel, openssl-devel
Requires(pre):		shadow-utils
Requires(post):		/sbin/ldconfig
Requires(post):		/sbin/chkconfig
Requires(postun):	/sbin/ldconfig
Requires(postun):	/sbin/service
Requires(preun):	/sbin/chkconfig
Requires(preun):	/sbin/service

%description
TrouSerS is an implementation of the Trusted Computing Group's Software Stack
(TSS) specification. You can use TrouSerS to write applications that make use
of your TPM hardware. TPM hardware can create, store and use RSA keys
securely (without ever being exposed in memory), verify a platform's software
state using cryptographic hashes and more.

%package	static
Summary:	TrouSerS TCG Device Driver Library
Group:		Development/Libraries

%description	static
The TCG Device Driver Library (TDDL) used by the TrouSerS tcsd as the interface to
the TPM's device driver. For more information about writing applications to
the TDDL interface, see the latest TSS spec at
https://www.trustedcomputinggroup.org/specs/TSS.

%package	devel
Summary:	TrouSerS header files and documentation
Group:		Development/Libraries
Requires:	%{name} = %{version}-%{release}

%description	devel
Header files and man pages for use in creating Trusted Computing enabled
applications.

%pre
getent group tss >/dev/null || groupadd -r tss
getent passwd tss >/dev/null || \
useradd -r -g tss -d /dev/null -s /sbin/nologin \
        -c "Account used by the trousers package to sandbox the tcsd daemon" tss
exit 0

%prep
%setup -q

%build
%configure
make %{?_smp_mflags}

#
# $1 is the number of entries in the RPM database for the package after the step is
# executed. So in the post step, if $1 is 1, then this is the first time we've been
# installed. If its 2, we're upgrading.
#
%post
/sbin/ldconfig
if [ $1 = 1 ]; then
	/sbin/chkconfig --add tcsd
	if [ $? == 0 ]; then
		/sbin/chkconfig --level 35 tcsd on
	fi
fi

%post devel -p /sbin/ldconfig

%install
mkdir -p ${RPM_BUILD_ROOT}
mkdir -p ${RPM_BUILD_ROOT}/%{_initrddir}
cp -p dist/fedora/fedora.initrd.tcsd ${RPM_BUILD_ROOT}/%{_initrddir}/tcsd
make install DESTDIR=${RPM_BUILD_ROOT}
rm -f ${RPM_BUILD_ROOT}/%{_libdir}/libtspi.la

%preun
if [ $1 = 0 ]; then
	/sbin/service tcsd stop &> /dev/null
	/sbin/chkconfig --del tcsd
fi

%postun
/sbin/ldconfig
if [ $1 -gt 1 ]; then
	/sbin/service tcsd condrestart &>/dev/null
fi

%postun devel -p /sbin/ldconfig

%files
%doc README AUTHORS LICENSE
%defattr(-, root, root, -)
%attr(755, tss, tss) %{_sbindir}/tcsd
%{_libdir}/libtspi.so.?
%{_libdir}/libtspi.so.?.?.?
%config(noreplace) %attr(600, tss, tss) %{_sysconfdir}/tcsd.conf
%attr(644, root, root) %{_mandir}/man5/*
%attr(644, root, root) %{_mandir}/man8/*
%{_initrddir}/tcsd

# The files to be used by developers, 'trousers-devel'
%files		devel
%defattr(-, root, root, -)
%attr(755, root, root) %{_libdir}/libtspi.so
%{_includedir}/tss/*.h
%{_includedir}/trousers/*.h
%{_mandir}/man3/Tspi_*

# The only static library shipped by trousers, the TDDL
%files		static
%{_libdir}/libtddl.a

%changelog
* Wed Nov 28 2007 Kent Yoder <kyoder@users.sf.net> - 0.3.1-1
- Updated specfile for RHBZ#323441 comment #13

* Mon Nov 12 2007 Kent Yoder <kyoder@users.sf.net> - 0.3.1
- Updated specfile for comments in RHBZ#323441

* Wed Jun 07 2006 Kent Yoder <kyoder@users.sf.net> - 0.2.6-1
- Updated build section to use smp_mflags
- Removed .la file from installed dest and files section

* Tue Jun 06 2006 Kent Yoder <kyoder@users.sf.net> - 0.2.6-1
- Initial add of changelog tag for trousers CVS