File sssd.spec of Package sssd

#
# spec file for package sssd
#
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#



Name:           sssd
Version:        1.4.1
Release:        5
Group:          System/Daemons
Summary:        System Security Services Daemon
License:        GPLv3+ and LGPLv3+
Url:            https://fedorahosted.org/sssd/
Source0:        %{name}-%{version}.tar.bz2
Source1:        baselibs.conf
Patch0:         0001-Validate-user-supplied-size-of-data-items.patch
Patch1:         0002-Add-overflow-check-to-SAFEALIGN_COPY_-_CHECK-macros.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%define servicename sssd
%define sssdstatedir %{_localstatedir}/lib/sss
%define dbpath %{sssdstatedir}/db
%define pipepath %{sssdstatedir}/pipes
%define pubconfpath %{sssdstatedir}/pubconf

### Build Dependencies ###
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  libtool
BuildRequires:  m4
BuildRequires:  popt-devel
BuildRequires:  libtalloc-devel
BuildRequires:  libtevent-devel
BuildRequires:  libtdb-devel
BuildRequires:  libldb-devel
BuildRequires:  libxslt
BuildRequires:  libxml2
BuildRequires:  libcares-devel
BuildRequires:  libnl-devel
BuildRequires:  dbus-1-devel
BuildRequires:  openldap2-devel
BuildRequires:  pam-devel
BuildRequires:  pkg-config
BuildRequires:  pcre-devel
BuildRequires:  docbook-xsl-stylesheets
BuildRequires:  krb5-devel
BuildRequires:  python-devel
BuildRequires:  bind-utils
BuildRequires:  nscd
BuildRequires:  libpath_utils-devel
BuildRequires:  libdhash-devel
BuildRequires:  libini_config-devel
BuildRequires:  libcollection-devel
BuildRequires:  libref_array-devel

%description
Provides a set of daemons to manage access to remote directories and
authentication mechanisms. It provides an NSS and PAM interface toward
the system and a pluggable backend system to connect to multiple different
account sources. It is also the basis to provide client auditing and policy
services for projects like FreeIPA.

%package ipa-provider
License:        GPLv3+ and LGPLv3+
Summary:        FreeIPA provider plugin for sssd
Group:          System/Daemons
Requires:       sssd = %{version}

%description ipa-provider
This package provide the FreeIPA provider plugin for the System Security
Services Daemon (sssd).

%package tools
License:        GPLv3+ and LGPLv3+
Summary:        Commandline tools for sssd
Group:          System/Management
Requires:       sssd = %{version}

%description tools
The packages contains commandline tools for managing users and groups using
the "local" id provider of the System Security Services Daemon (sssd).

%package -n python-sssd-config
License:        GPLv3+ and LGPLv3+
Summary:        Python API for configuring sssd
Group:          Development/Libraries/Python
%{py_requires}

%description -n python-sssd-config
Provide python module to access and manage configuration of the System 
Security Services Daemon (sssd).

%prep
%setup -q
%patch0 -p1
%patch1 -p1

%build
autoreconf
export LDB_LIBS="-lldb"
export LDB_CFLAGS="-I/usr/include"
%configure \
    --without-tests \
    --with-db-path=%{dbpath} \
    --with-pipe-path=%{pipepath} \
    --with-pubconf-path=%{pubconfpath} \
    --with-init-dir=%{_initrddir} \
    --enable-nsslibdir=/%{_lib} \
    --enable-pammoddir=/%{_lib}/security \
    --enable-cryptp=yes \
    --with-ldb-lib-dir=%{_libdir}/ldb \
    --with-selinux=no \
    --with-so=suse \
    --with-semanage=no
make %{?_smp_mflags}

%install
rm -rf $RPM_BUILD_ROOT

make install DESTDIR=$RPM_BUILD_ROOT

# Copy default sssd.conf file
install -d $RPM_BUILD_ROOT/%{_sysconfdir}/sssd
install -m600 src/examples/sssd.conf $RPM_BUILD_ROOT%{_sysconfdir}/sssd/sssd.conf
install src/sysv/SUSE/sssd $RPM_BUILD_ROOT%{_sysconfdir}/init.d/sssd
install -d $RPM_BUILD_ROOT/%{_sysconfdir}/systemd/system
install src/sysv/systemd/sssd.service $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/sssd.service
ln -sf ../../etc/init.d/sssd $RPM_BUILD_ROOT/usr/sbin/rcsssd

# Remove .la files created by libtool
rm -f \
    $RPM_BUILD_ROOT/%{_lib}/libnss_sss.la \
    $RPM_BUILD_ROOT/%{_lib}/security/pam_sss.la \
    $RPM_BUILD_ROOT/%{_libdir}/*.la \
    $RPM_BUILD_ROOT/%{_libdir}/ldb/memberof.la \
    $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/pysss.la \
    $RPM_BUILD_ROOT/%{_libdir}/sssd/libsss_ldap.la \
    $RPM_BUILD_ROOT/%{_libdir}/sssd/libsss_proxy.la \
    $RPM_BUILD_ROOT/%{_libdir}/sssd/libsss_krb5.la \
    $RPM_BUILD_ROOT/%{_libdir}/sssd/libsss_ipa.la \
    $RPM_BUILD_ROOT/%{_libdir}/sssd/libsss_simple.la \
    $RPM_BUILD_ROOT/%{_libdir}/krb5/plugins/libkrb5/sssd_krb5_locator_plugin.la
%find_lang sssd

%clean
rm -rf $RPM_BUILD_ROOT

%post -p /sbin/ldconfig

%preun
%stop_on_removal sssd

%postun
/sbin/ldconfig
%restart_on_update sssd
%insserv_cleanup

%files -f sssd.lang
%defattr(-,root,root,-)
%doc COPYING
%{_initrddir}/%{name}
%dir %{_sysconfdir}/systemd
%dir %{_sysconfdir}/systemd/system
%config %{_sysconfdir}/systemd/system/sssd.service
%{_sbindir}/sssd
%{_sbindir}/rcsssd
%dir %{_libdir}/%{name}
%dir %{_libexecdir}/%{name}
%{_libexecdir}/%{name}/sss*
%{_libexecdir}/%{name}/*_child
%{_libdir}/%{name}/libsss_krb5*
%{_libdir}/%{name}/libsss_ldap*
%{_libdir}/%{name}/libsss_proxy*
%{_libdir}/%{name}/libsss_simple*
%{_libdir}/ldb/memberof.so
%{_libdir}/krb5/plugins/libkrb5/*
%dir %{sssdstatedir}
%attr(700,root,root) %dir %{dbpath}
%attr(755,root,root) %dir %{pipepath}
%attr(700,root,root) %dir %{pipepath}/private
%attr(755,root,root) %dir %{pubconfpath}
%attr(750,root,root) %dir %{_var}/log/%{name}
%dir %{_sysconfdir}/sssd
%config(noreplace) %{_sysconfdir}/sssd/sssd.conf
%config %{_sysconfdir}/sssd/sssd.api.conf
%attr(700,root,root) %dir %{_sysconfdir}/sssd/sssd.api.d
%config %{_sysconfdir}/sssd/sssd.api.d/sssd-krb5.conf
%config %{_sysconfdir}/sssd/sssd.api.d/sssd-ldap.conf
%config %{_sysconfdir}/sssd/sssd.api.d/sssd-local.conf
%config %{_sysconfdir}/sssd/sssd.api.d/sssd-proxy.conf
%config %{_sysconfdir}/sssd/sssd.api.d/sssd-simple.conf
/%{_lib}/libnss_sss.so.2
/%{_lib}/security/pam_sss.so
%{_mandir}/man5/sssd-krb5.*
%{_mandir}/man5/sssd-ldap.*
%{_mandir}/man5/sssd-simple.*
%{_mandir}/man5/sssd.conf.*

%files tools
%defattr(-,root,root,-)
%{_mandir}/man8/*
%{_sbindir}/sss_useradd
%{_sbindir}/sss_userdel
%{_sbindir}/sss_usermod
%{_sbindir}/sss_groupadd
%{_sbindir}/sss_groupdel
%{_sbindir}/sss_groupmod
%{_sbindir}/sss_groupshow
%attr(0755,root,root) %{_sbindir}/sss_obfuscate

%files ipa-provider
%defattr(-,root,root,-)
%config %{_sysconfdir}/sssd/sssd.api.d/sssd-ipa.conf
%{_libdir}/sssd/libsss_ipa*
%{_mandir}/man5/sssd-ipa.*

%files -n python-sssd-config
%defattr(-,root,root,-)
%{python_sitearch}/pysss.so
%{python_sitelib}/*.py*
%{python_sitelib}/*.egg-info

%changelog
openSUSE Build Service is sponsored by