setools/setools.spec
Petr Lautrbach d570700ddd Do not export/use setools.InfoFlowAnalysis and setools.DomainTransitionAnalysis
dta and infoflow modules require networkx which brings lot of dependencies.
These dependencies are not necessary for setools module itself as it's
used in policycoreutils.

Therefore it's better to use setools.infoflow.InfoFlowAnalysis and
setools.dta.DomainTransitionAnalysis and let the package containing
sedta and seinfoflow to require python3-networkx

Added new subpackage setools-console-analyses
2017-02-23 11:03:03 +01:00

179 lines
5.2 KiB
RPMSpec

# sitelib for noarch packages, sitearch for others (remove the unneeded one)
%{!?__python2: %global __python2 %__python}
%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
%{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
# % global setools_pre_ver beta.1.8e09d95
# % global gitver f1e5b20
%global sepol_ver 2.6-0
%global selinux_ver 2.6-0
Name: setools
Version: 4.1.0
Release: 1%{?setools_pre_ver:.%{setools_pre_ver}}%{?dist}
Summary: Policy analysis tools for SELinux
License: GPLv2
URL: https://github.com/TresysTechnology/setools/wiki
Source0: https://github.com/TresysTechnology/setools/archive/%{version}%{?setools_pre_ver:-%{setools_pre_ver}}.tar.gz
Source1: setools.pam
Source2: apol.desktop
Patch1: 0001-Do-not-use-Werror-during-build.patch
Patch2: 0002-Do-not-export-use-setools.InfoFlowAnalysis-and-setoo.patch
Obsoletes: setools < 4.0.0, setools-devel < 4.0.0
BuildRequires: flex, bison
BuildRequires: glibc-devel, gcc, git
BuildRequires: libsepol-devel, libsepol-static
BuildRequires: qt5-qtbase-devel
BuildRequires: swig
BuildRequires: python-devel
# BuildArch:
BuildRequires: python-devel
Requires: %{name}-python3 = %{version}-%{release}
BuildRequires: python3-devel
%description
SETools is a collection of graphical tools, command-line tools, and
Python modules designed to facilitate SELinux policy analysis.
%package console
Summary: Policy analysis command-line tools for SELinux
Group: System Environment/Base
License: GPLv2
Requires: setools-python3 = %{version}-%{release}
Requires: libselinux >= %{selinux_ver}
%description console
SETools is a collection of graphical tools, command-line tools, and
libraries designed to facilitate SELinux policy analysis.
This package includes the following console tools:
sediff Compare two policies to find differences.
seinfo List policy components.
sesearch Search rules (allow, type_transition, etc.)
%package console-analyses
Summary: Policy analysis command-line tools for SELinux
Group: System Environment/Base
License: GPLv2
Requires: setools-python3 = %{version}-%{release}
Requires: libselinux >= %{selinux_ver}
Requires: python3-networkx
%description console-analyses
SETools is a collection of graphical tools, command-line tools, and
libraries designed to facilitate SELinux policy analysis.
This package includes the following console tools:
sedta Perform domain transition analyses.
seinfoflow Perform information flow analyses.
%package python
Summary: Policy analysis tools for SELinux
%description python
SETools is a collection of graphical tools, command-line tools, and
Python 2 modules designed to facilitate SELinux policy analysis.
%package python3
Summary: Policy analysis tools for SELinux
Obsoletes: setools-libs < 4.0.0, setools-libs-tcl
%description python3
SETools is a collection of graphical tools, command-line tools, and
Python 3 modules designed to facilitate SELinux policy analysis.
%package gui
Summary: Policy analysis graphical tools for SELinux
Requires: python3-qt5
Requires: python3-networkx
%description gui
SETools is a collection of graphical tools, command-line tools, and
Python modules designed to facilitate SELinux policy analysis.
%prep
%autosetup -p 1 -S git
cp -a ../setools-%{version}%{?setools_pre_ver:-%{setools_pre_ver}} ../setools-%{version}%{?setools_pre_ver:-%{setools_pre_ver}}-python2
%build
# Remove CFLAGS=... for noarch packages (unneeded)
CFLAGS="%{optflags}" %{__python3} setup.py build
pushd ../setools-%{version}%{?setools_pre_ver:-%{setools_pre_ver}}-python2
# Remove CFLAGS=... for noarch packages (unneeded)
CFLAGS="%{optflags}" %{__python2} setup.py build
popd
%install
rm -rf %{buildroot}
pushd ../setools-%{version}%{?setools_pre_ver:-%{setools_pre_ver}}-python2
%{__python2} setup.py install --root %{buildroot}
popd
rm -rf %{buildroot}%{_bindir}
%{__python3} setup.py install --root %{buildroot}
%check
%if %{?_with_check:1}%{!?_with_check:0}
%{__python3} setup.py test
pushd ../setools-%{version}%{?setools_pre_ver:-%{setools_pre_ver}}-python2
%{__python2} setup.py test
popd
%endif
%files
%defattr(-,root,root,-)
%files console
%{_bindir}/sediff
%{_bindir}/seinfo
%{_bindir}/sesearch
%{_mandir}/man1/sediff*
%{_mandir}/man1/seinfo*
%{_mandir}/man1/sesearch*
%files console-analyses
%{_bindir}/sedta
%{_bindir}/seinfoflow
%{_mandir}/man1/sedta*
%{_mandir}/man1/seinfoflow*
%files python
# %doc AUTHORS ChangeLog KNOWN-BUGS NEWS README
%license COPYING COPYING.GPL COPYING.LGPL
# For noarch packages: sitelib
# %{python2_sitelib}/*
# For arch-specific packages: sitearch
%{python2_sitearch}/*
%files python3
%license COPYING COPYING.GPL COPYING.LGPL
# %doc AUTHORS ChangeLog KNOWN-BUGS NEWS README
# For noarch packages: sitelib
# %{python3_sitelib}/*
# For arch-specific packages: sitearch
%{python3_sitearch}/*
%files gui
%{_bindir}/apol
%{_mandir}/man1/apol*
%changelog
* Wed Feb 15 2017 Petr Lautrbach <plautrba@redhat.com> - 4.1.0-1
- New upstream release.