# # spec file for package libsemanage # # Copyright (c) 2016 SUSE LINUX 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: libsemanage Version: 2.5 Release: 0 Summary: SELinux binary policy manipulation library License: LGPL-2.1+ Group: System/Libraries Url: https://github.com/SELinuxProject/selinux/wiki/Releases Source: https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20160223/%{name}-%{version}.tar.gz Source1: baselibs.conf Source2: semanage.conf BuildRequires: audit-devel BuildRequires: bison BuildRequires: fdupes BuildRequires: flex BuildRequires: libbz2-devel BuildRequires: libselinux-devel BuildRequires: libsepol-devel BuildRequires: libustr-devel BuildRoot: %{_tmppath}/%{name}-%{version}-build %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 Summary: SELinux binary policy manipulation library Group: System/Libraries %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 Summary: Header files and libraries used to build policy manipulation tools Group: Development/Libraries # FIXME: use correct group, see "https://en.opensuse.org/openSUSE:Package_group_guidelines" Requires: libsemanage1 = %{version} Requires: 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 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. %prep %setup -q %build make %{?_smp_mflags} clean make -j1 CFLAGS="%{optflags}" CC="gcc" make -j1 CFLAGS="%{optflags}" LIBDIR="%{_libdir}" LIBEXECDIR="%{_libexecdir}" SHLIBDIR="%{_lib}" CC="gcc" all %install mkdir -p %{buildroot}/%{_lib} mkdir -p %{buildroot}%{_libdir} mkdir -p %{buildroot}%{_includedir} make DESTDIR=%{buildroot} LIBDIR="%{buildroot}%{_libdir}" LIBEXECDIR="%{buildroot}%{_libexecdir}" SHLIBDIR="%{buildroot}/%{_lib}" install ln -sf %{_libdir}/libsemanage.so.1 %{buildroot}/%{_libdir}/libsemanage.so cp %{SOURCE2} %{buildroot}%{_sysconfdir}/selinux/semanage.conf # Remove duplicate files %fdupes -s %{buildroot}%{_mandir} %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 %{_libdir}/libsemanage.so.* %files devel %defattr(-,root,root) %{_libdir}/libsemanage.so %{_libdir}/pkgconfig/libsemanage.pc %dir %{_libexecdir}/selinux %{_libexecdir}/selinux/semanage_migrate_store %dir %{_includedir}/semanage %{_includedir}/semanage/*.h %{_mandir}/man3/* %{_mandir}/man5/* %files devel-static %defattr(-,root,root) %{_libdir}/libsemanage.a %changelog