File libsemanage.spec of Package libsemanage

#
# spec file for package libsemanage
#
# 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/
#

# norootforbuild

%define libsepol_ver 2.0.37
%define libselinux_ver 2.0.0
BuildRequires:  bison flex libustr-devel python-devel swig
BuildRequires:  libselinux-devel >= %{libselinux_ver}
BuildRequires:  libsepol-devel >= %{libsepol_ver}

Name:           libsemanage
Version:        2.0.43
Release:        7.<RELEASE2>
Url:            http://www.nsa.gov/selinux/
License:        LGPLv2.1
Group:          System/Libraries
Summary:        SELinux binary policy manipulation library
Source:         %{name}-%{version}.tar.bz2
Patch0:         %{name}-rhat.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%define debug_package_requires libsemanage1 = %{version}-%{release}

%description
Security-enhanced Linux is a feature of the Linux kernel and a number
of utilities with enhanced security functionality designed to add
mandatory access controls to Linux.  The Security-enhanced Linux
kernel contains new architectural components originally developed to
improve the security of the Flask operating system. These
architectural components provide general support for the enforcement
of many kinds of mandatory access control policies, including those
based on the concepts of Type Enforcement, Role-based Access
Control, and Multi-level Security.

libsemanage provides an API for the manipulation of SELinux binary policies.
It is used by checkpolicy (the policy compiler) and similar tools, as well
as by programs like load_policy that need to perform specific transformations
on binary policies such as customizing policy boolean settings.

%package -n libsemanage1
License:        LGPLv2.1
Group:          System/Libraries
Summary:        SELinux binary policy manipulation library

%description -n libsemanage1
Security-enhanced Linux is a feature of the Linux kernel and a
number of utilities with enhanced security functionality designed to
add mandatory access controls to Linux.  The Security-enhanced Linux
kernel contains new architectural components originally developed to
improve the security of the Flask operating system. These architectural
components provide general support for the enforcement of many kinds of
mandatory access control policies, including those based on the
concepts of Type Enforcement, Role-based Access Control, and
Multi-level Security.

libsemanage provides an API for the manipulation of SELinux binary
policies. It is used by checkpolicy (the policy compiler) and similar
tools, as well as by programs like load_policy that need to perform
specific transformations on binary policies such as customizing policy
boolean settings.

%package devel
License:        LGPLv2.1
Summary:        Header files and libraries used to build policy manipulation tools
Group:          Development/Libraries
Requires:       libsemanage1 = %{version} libustr-devel

%description devel
The semanage-devel package contains the libraries and header files
needed for developing applications that manipulate binary policies.

%package devel-static
License:        LGPLv2.1
Summary:        SELinux binary policy manipulation library
Group:          System/Libraries
Requires:       libsemanage-devel

%description devel-static
The semanage-static package contains the static libraries
needed for developing applications that manipulate binary policies.


%package -n python-semanage
License:        LGPLv2.1
Summary:        semanage python bindings for libsemanage
Group:          Development/Libraries
Requires:       libsemanage1 = %{version}

%description -n python-semanage
The libsemanage-python package contains the python bindings for developing
SELinux management applications.

%prep
%setup -q
%patch0 -p1

%build
make clean
make -j1 CFLAGS="$RPM_OPT_FLAGS" swigify
make -j1 CFLAGS="$RPM_OPT_FLAGS" LIBDIR="%{_libdir}" SHLIBDIR="%{_lib}" all pywrap

%install
mkdir -p $RPM_BUILD_ROOT/%{_lib}
mkdir -p $RPM_BUILD_ROOT%{_libdir}
mkdir -p $RPM_BUILD_ROOT%{_includedir}
make DESTDIR="$RPM_BUILD_ROOT" LIBDIR="$RPM_BUILD_ROOT%{_libdir}" SHLIBDIR="$RPM_BUILD_ROOT/%{_lib}" install install-pywrap
ln -sf  /%{_lib}/libsemanage.so.1 ${RPM_BUILD_ROOT}/%{_libdir}/libsemanage.so

%clean
rm -rf $RPM_BUILD_ROOT

%post -n libsemanage1 -p /sbin/ldconfig

%postun -n libsemanage1 -p /sbin/ldconfig

%files -n libsemanage1
%defattr(-,root,root)
%dir %{_sysconfdir}/selinux
%config(noreplace) %{_sysconfdir}/selinux/semanage.conf
/%{_lib}/libsemanage.so.*

%files devel
%defattr(-,root,root)
%{_libdir}/libsemanage.so
%{_libdir}/pkgconfig/libsemanage.pc
%dir %{_includedir}/semanage
%{_includedir}/semanage/*.h
%{_mandir}/man3/*

%files devel-static
%defattr(-,root,root)
%{_libdir}/libsemanage.a

%files -n python-semanage
%defattr(-,root,root)
%{_libdir}/python*/site-packages/*

%changelog