diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 7bcd7b9..0000000 --- a/.cvsignore +++ /dev/null @@ -1,13 +0,0 @@ -setools-1.4.1.tgz -setools-1.5.tgz -setools-1.5.1.tgz -setools-2.0.0.tar.bz2 -setools-2.1.0.tar.bz2 -setools-2.1.1.tar.bz2 -setools-2.1.2.tar.bz2 -setools-2.1.3.tar.bz2 -setools-2.2.tar.bz2 -setools-2.3.tar.bz2 -setools-2.4.tar.bz2 -setools-3.1.tar.bz2 -setools-3.2.tar.bz2 diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b838721 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +setools-3.3.7.tar.bz2 +setools-3.3.8.tar.bz2 +setools-3.3.8-f1e5b20.tar.bz2 +/4.1.0.tar.gz +/4.1.1.tar.gz +/4.2.0-beta.tar.gz +/4.2.0-rc.tar.gz +/4.2.0.tar.gz +/4.2.1.tar.gz +/4.2.2.tar.gz +/4.3.0.tar.gz +/05e90ee.tar.gz +/16c0696.tar.gz +/4.4.0.tar.gz +/4.4.1.tar.gz +/4.4.2.tar.gz +/4.4.3.tar.gz +/4.4.4.tar.gz +/4.5.0.tar.gz +/4.5.1.tar.gz +/4.6.0.tar.gz diff --git a/156.patch b/156.patch new file mode 100644 index 0000000..ea56fc1 --- /dev/null +++ b/156.patch @@ -0,0 +1,43 @@ +From 39f7c88251925463c38f5000f6178fe70b484f44 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= +Date: Tue, 8 Apr 2025 11:22:47 +0200 +Subject: [PATCH] Remove redundant runtime requirement on setuptools +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The dependency was dropped in 99a1cf3b50cd8bf502b5070293c4d1bf792d1566 + +Add a build time dependency for setup.py build_ext on Python 3.12+ +which no longer contains distutils. + +Signed-off-by: Miro Hrončok +--- + pyproject.toml | 2 +- + tox.ini | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/pyproject.toml b/pyproject.toml +index f7815a15..28ae121a 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -39,7 +39,7 @@ classifiers = ["Development Status :: 5 - Production/Stable", + + requires-python=">=3.10" + # also requires libsepol.so and libselinux.so. +-dependencies = ["setuptools"] ++dependencies = [] + + optional-dependencies.analysis = ["networkx>=2.6", + "pygraphviz"] +diff --git a/tox.ini b/tox.ini +index 8fa6954f..b2a21d6b 100644 +--- a/tox.ini ++++ b/tox.ini +@@ -56,5 +56,6 @@ deps = networkx>=2.6 + pygraphviz + pytest-qt + pytest-xvfb ++ setuptools;python_version>="3.12" + commands_pre = {envpython} setup.py build_ext -i + commands = {envpython} -m pytest tests diff --git a/157.patch b/157.patch new file mode 100644 index 0000000..24b6820 --- /dev/null +++ b/157.patch @@ -0,0 +1,42 @@ +From a33a2e394435316f3822e89ac9c2a9aabab17252 Mon Sep 17 00:00:00 2001 +From: Pranav Lawate +Date: Tue, 30 Sep 2025 22:29:10 +0530 +Subject: [PATCH] Fix seinfo argument parsing when policy path follows query + options + +Signed-off-by: Pranav Lawate +--- + seinfo | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/seinfo b/seinfo +index 99180c36..d04ec320 100755 +--- a/seinfo ++++ b/seinfo +@@ -12,6 +12,7 @@ import logging + import signal + import ipaddress + import warnings ++from pathlib import Path + from typing import Callable, List, Tuple + + +@@ -102,6 +103,18 @@ xen.add_argument("--devicetreecon", help="Print all devicetreecon statements.", + + args = parser.parse_args() + ++# Fix argument misparsing: when policy is None and a query option is a string, ++# check if the string is actually a policy file that is incorrectly consumed by the query option ++if not args.policy: ++ # Check all query options defined in the queries argument group ++ for action in queries._group_actions: ++ value = getattr(args, action.dest, None) ++ if isinstance(value, str) and Path(value).exists(): ++ # This query argument consumed the policy path - fix it ++ args.policy = value ++ setattr(args, action.dest, True) ++ break ++ + if args.debug: + logging.basicConfig(level=logging.DEBUG, + format='%(asctime)s|%(levelname)s|%(name)s|%(message)s') diff --git a/Makefile b/Makefile deleted file mode 100644 index fcbd83b..0000000 --- a/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# Makefile for source rpm: setools -# $Id$ -NAME := setools -SPECFILE = $(firstword $(wildcard *.spec)) - -include ../common/Makefile.common diff --git a/apol.desktop b/apol.desktop index 230e94b..727733a 100644 --- a/apol.desktop +++ b/apol.desktop @@ -2,11 +2,10 @@ Name=SELinux Policy Analysis GenericName=SELinux Policy Analysis Tool Comment=This tool can examine, search, and relate policy components and policy rules -Icon=apol.png +Icon=apol Exec=/usr/bin/apol Type=Application Terminal=false -Encoding=UTF-8 -Categories=Application;System;X-Red-Hat-Base; +Categories=System; X-Desktop-File-Install-Version=0.2 StartupNotify=true diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..af6eb32 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,16 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_testing +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} + +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} + diff --git a/plans/selinux.fmf b/plans/selinux.fmf new file mode 100644 index 0000000..b20003c --- /dev/null +++ b/plans/selinux.fmf @@ -0,0 +1,7 @@ +summary: selinux tests - Tier 1 | policycoreutils | checkpolicy +discover: + how: fmf + url: https://src.fedoraproject.org/tests/selinux + filter: "tier: 1 | component: policycoreutils | component: checkpolicy" +execute: + how: tmt diff --git a/plans/tests.fmf b/plans/tests.fmf new file mode 100644 index 0000000..1caffcc --- /dev/null +++ b/plans/tests.fmf @@ -0,0 +1,5 @@ +summary: setools test plan +discover: + how: fmf +execute: + how: tmt diff --git a/rpminspect.yaml b/rpminspect.yaml new file mode 100644 index 0000000..6bcfaca --- /dev/null +++ b/rpminspect.yaml @@ -0,0 +1,3 @@ +emptyrpm: + expected_empty: + - setools diff --git a/seaudit.desktop b/seaudit.desktop index 077c131..d3a277e 100644 --- a/seaudit.desktop +++ b/seaudit.desktop @@ -6,7 +6,6 @@ Icon=seaudit.png Exec=/usr/bin/seaudit Type=Application Terminal=false -Encoding=UTF-8 -Categories=Application;System;X-Red-Hat-Base; +Categories=System; X-Desktop-File-Install-Version=0.2 StartupNotify=true diff --git a/sediffx.desktop b/sediffx.desktop index 0294381..fb714d9 100644 --- a/sediffx.desktop +++ b/sediffx.desktop @@ -5,8 +5,7 @@ Comment=This tool allows you to compare two policy files Exec=/usr/bin/sediffx Type=Application Terminal=false -Encoding=UTF-8 -Categories=Application;System;X-Red-Hat-Base; +Categories=System; X-Desktop-File-Install-Version=0.2 StartupNotify=true Icon=sediffx.png diff --git a/setools-rhat.patch b/setools-rhat.patch deleted file mode 100644 index 388a93c..0000000 --- a/setools-rhat.patch +++ /dev/null @@ -1,121 +0,0 @@ ---- setools-3.1/packages/Makefile.am.rhat 2007-02-06 15:43:29.000000000 -0500 -+++ setools-3.1/packages/Makefile.am 2007-02-15 11:20:09.000000000 -0500 -@@ -8,7 +8,7 @@ - tar jxf BWidget-1.8.0.tar.bz2 - test -z "$(bwidget_destdir)" || $(mkdir_p) "$(bwidget_destdir)" - cd BWidget-1.8.0 && find . -type d -exec $(mkdir_p) "$(bwidget_destdir)/{}" \; -- cd BWidget-1.8.0 && find . -type f -exec $(INSTALL_DATA) '{}' $(bwidget_destdir) \; -+ cd BWidget-1.8.0 && find . -type f -exec $(INSTALL_DATA) '{}' $(bwidget_destdir)/'{}'\; - - uninstall-local: - -rm -rf $(bwidget_destdir)/BWidget-1.8.0 ---- setools-3.1/packages/Makefile.in.rhat 2007-02-15 11:21:11.000000000 -0500 -+++ setools-3.1/packages/Makefile.in 2007-02-15 11:21:24.000000000 -0500 -@@ -381,7 +381,7 @@ - tar jxf BWidget-1.8.0.tar.bz2 - test -z "$(bwidget_destdir)" || $(mkdir_p) "$(bwidget_destdir)" - cd BWidget-1.8.0 && find . -type d -exec $(mkdir_p) "$(bwidget_destdir)/{}" \; -- cd BWidget-1.8.0 && find . -type f -exec $(INSTALL_DATA) '{}' $(bwidget_destdir) \; -+ cd BWidget-1.8.0 && find . -type f -exec $(INSTALL_DATA) '{}' $(bwidget_destdir)/'{}' \; - - uninstall-local: - -rm -rf $(bwidget_destdir)/BWidget-1.8.0 ---- setools-3.1/libqpol/src/policy_parse.y.rhat 2007-02-06 15:43:26.000000000 -0500 -+++ setools-3.1/libqpol/src/policy_parse.y 2007-02-15 11:19:06.000000000 -0500 -@@ -1098,11 +1098,11 @@ - ret = hashtab_insert(policydbp->p_commons.table, - (hashtab_key_t) id, (hashtab_datum_t) comdatum); - -- if (ret == HASHTAB_PRESENT) { -+ if (ret == SEPOL_EEXIST) { - yyerror("duplicate common definition"); - goto bad; - } -- if (ret == HASHTAB_OVERFLOW) { -+ if (ret == SEPOL_ENOMEM) { - yyerror("hash table overflow"); - goto bad; - } -@@ -1130,14 +1130,14 @@ - (hashtab_key_t) perm, - (hashtab_datum_t) perdatum); - -- if (ret == HASHTAB_PRESENT) { -+ if (ret == SEPOL_EEXIST) { - sprintf(errormsg, - "duplicate permission %s in common %s", perm, - id); - yyerror(errormsg); - goto bad_perm; - } -- if (ret == HASHTAB_OVERFLOW) { -+ if (ret == SEPOL_ENOMEM) { - yyerror("hash table overflow"); - goto bad_perm; - } -@@ -1259,12 +1259,12 @@ - (hashtab_key_t) id, - (hashtab_datum_t) perdatum); - -- if (ret == HASHTAB_PRESENT) { -+ if (ret == SEPOL_EEXIST) { - sprintf(errormsg, "duplicate permission %s", id); - yyerror(errormsg); - goto bad; - } -- if (ret == HASHTAB_OVERFLOW) { -+ if (ret == SEPOL_ENOMEM) { - yyerror("hash table overflow"); - goto bad; - } ---- setools-3.1/libqpol/src/policy_extend.c.rhat 2007-02-07 14:16:52.000000000 -0500 -+++ setools-3.1/libqpol/src/policy_extend.c 2007-02-15 11:19:06.000000000 -0500 -@@ -167,7 +167,7 @@ - - retv = hashtab_insert(db->p_types.table, (hashtab_key_t) tmp_name, (hashtab_datum_t) tmp_type); - if (retv) { -- if (retv == HASHTAB_OVERFLOW) -+ if (retv == SEPOL_ENOMEM) - error = db->p_types.table ? ENOMEM : EINVAL; - else - error = EEXIST; -@@ -243,7 +243,7 @@ - - retv = hashtab_insert(db->p_types.table, (hashtab_key_t) tmp_name, (hashtab_datum_t) tmp_type); - if (retv) { -- if (retv == HASHTAB_OVERFLOW) -+ if (retv == SEPOL_ENOMEM) - error = db->p_types.table ? ENOMEM : EINVAL; - else - error = EEXIST; ---- setools-3.1/configure.ac.rhat 2007-02-07 10:48:44.000000000 -0500 -+++ setools-3.1/configure.ac 2007-02-15 11:19:06.000000000 -0500 -@@ -20,7 +20,7 @@ - libseaudit_version=4.0.0 - libseaudit_soname=libseaudit.so.4 - --setoolsdir='${prefix}/share/setools-3.1' -+setoolsdir='${prefix}/share/setools' - - version_min_sepol_major=1 - version_min_sepol_minor=12 -@@ -88,6 +88,7 @@ - fi - AC_MSG_RESULT(disabled) - fi -+AC_SUBST(YFLAGS) - AC_SUBST(DEBUGCFLAGS) - AC_SUBST(DEBUGLDFLAGS) - QPOL_CFLAGS='-I$(top_srcdir)/libqpol/include' -@@ -227,7 +228,10 @@ - AC_SUBST(BWIDGET_DESTDIR) - fi - else -- copy_bwidget=no -+ -+ BWIDGET_DESTDIR="\$(DESTDIR)/\${datadir}/tcl8.4/BWidget-1.8.0" -+ AC_SUBST(BWIDGET_DESTDIR) -+ copy_bwidget=yes - bwidget_ver=1.8 - fi - diff --git a/setools.spec b/setools.spec index 6eb8c24..e43d04a 100644 --- a/setools.spec +++ b/setools.spec @@ -1,120 +1,44 @@ -Name: setools -Version: 3.2 -Release: 4%{?dist} -License: GPL -URL: http://oss.tresys.com/projects/setools -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root -Source: setools-%{version}.tar.bz2 -AutoReqProv: no -Summary: Policy analysis tools for SELinux -Group: System Environment/Base -Requires: setools-libs = %{version} setools-gui = %{version} setools-console = %{version} +%global sepol_ver 3.9 +%global selinux_ver 3.9 -# disable auto dependency generation because they are explicitly listed -%define __find_requires %{nil} +Name: setools +Version: 4.6.0 +Release: 4%{?dist} +Summary: Policy analysis tools for SELinux -%define libqpol_ver 1.2 -%define libapol_ver 4.0 -%define libpoldiff_ver 1.2 -%define libsefs_ver 3.1 -%define libseaudit_ver 4.1 +License: GPL-2.0-only AND LGPL-2.1-only +URL: https://github.com/SELinuxProject/setools/wiki +Source0: https://github.com/SELinuxProject/setools/archive/%{version}.tar.gz +Source1: setools.pam +Source2: apol.desktop + +# Remove redundant runtime requirement on setuptools +Patch: https://github.com/SELinuxProject/setools/pull/156.patch +# Fix seinfo argument parsing when policy path follows query +Patch: https://github.com/SELinuxProject/setools/pull/157.patch + +Obsoletes: setools < 4.0.0, setools-devel < 4.0.0 +BuildRequires: flex, bison +BuildRequires: glibc-devel, gcc, git-core +BuildRequires: libsepol-devel >= %{sepol_ver}, libsepol-static >= %{sepol_ver} +BuildRequires: swig +BuildRequires: python3-Cython +BuildRequires: python3-devel +BuildRequires: libselinux-devel + +Requires: %{name}-console = %{version}-%{release} +Requires: %{name}-console-analyses = %{version}-%{release} +Requires: %{name}-gui = %{version}-%{release} %description SETools is a collection of graphical tools, command-line tools, and -libraries designed to facilitate SELinux policy analysis. +Python modules designed to facilitate SELinux policy analysis. -This meta-package depends upon the main packages necessary to run -SETools. - -%package libs -License: LGPL -Summary: Policy analysis support libraries for SELinux -Group: System Environment/Libraries -Requires: libselinux >= 1.30 libsepol >= 1.12.27 libxml2 -Provides: libqpol = %{libqpol_ver} libapol = %{libapol_ver} libpoldiff = %{libpoldiff_ver} libsefs = %{libsefs_ver} libseaudit = %{libseaudit_ver} -BuildRequires: flex, bison, pkgconfig -BuildRequires: libselinux-devel >= 1.30 libsepol-devel >= 1.12.27 libxml2-devel -BuildRequires: tk-devel >= 8.4.9 tcl-devel >= 8.4.9 -BuildRequires: gtk2-devel >= 2.8 libglade2-devel libxml2-devel -BuildRequires: autoconf >= 2.59 automake - -%description libs -SETools is a collection of graphical tools, command-line tools, and -libraries designed to facilitate SELinux policy analysis. - -This package includes the following run-time libraries: - - libapol policy analysis library - libpoldiff semantic policy difference library - libqpol library that abstracts policy internals - libseaudit parse and filter SELinux audit messages in log files - libsefs SELinux filesystem database library - -%package libs-python -License: LGPL -Summary: Python bindings for SELinux policy analysis -Group: Development/Languages -Requires: setools-libs = %{version} python2 >= 2.3 -Provides: libqpol-python = %{libqpol_ver} libapol-python = %{libapol_ver} libpoldiff-python = %{libpoldiff_ver} libseaudit-python = %{libseaudit_ver} -BuildRequires: python2-devel >= 2.3 swig >= 1.3.28 - -%description libs-python -SETools is a collection of graphical tools, command-line tools, and -libraries designed to facilitate SELinux policy analysis. - -This package includes Python bindings for the following libraries: - - libapol policy analysis library - libpoldiff semantic policy difference library - libqpol library that abstracts policy internals - libseaudit parse and filter SELinux audit messages in log files - -%package libs-java -License: LGPL -Summary: Java bindings for SELinux policy analysis -Group: Development/Languages -Requires: setools-libs = %{version} java >= 1.2 -Provides: libqpol-java = %{libqpol_ver} libapol-java = %{libapol_ver} libpoldiff-java = %{libpoldiff_ver} libseaudit-java = %{libseaudit_ver} -BuildRequires: java-devel >= 1.2 swig >= 1.3.28 - -%description libs-java -SETools is a collection of graphical tools, command-line tools, and -libraries designed to facilitate SELinux policy analysis. - -This package includes Java bindings for the following libraries: - - libapol policy analysis library - libpoldiff semantic policy difference library - libqpol library that abstracts policy internals - libseaudit parse and filter SELinux audit messages in log files - -%package devel -License: LGPL -Summary: Policy analysis development files for SELinux -Group: Development/Libraries -Requires: libselinux-devel >= 1.30 libsepol-devel >= 1.12.27 libxml2-devel setools-libs = %{version} - -%description devel -SETools is a collection of graphical tools, command-line tools, and -libraries designed to facilitate SELinux policy analysis. - -This package includes header files and archives for the following -libraries: - - awish customized wish interpreter for apol development - libapol policy analysis library - libapol-tcl bindings between apol and libapol - libpoldiff semantic policy difference library - libqpol library that abstracts policy internals - libseaudit parse and filter SELinux audit messages in log files - libsefs SELinux filesystem database library - -%package console -AutoReqProv: no -Summary: Policy analysis command-line tools for SELinux -Group: System Environment/Base -Requires: libqpol >= 1.1 libapol >= 4.0 libpoldiff >= 1.2 libsefs >= 3.1 libseaudit >= 4.0 -Requires: libselinux >= 1.30 +%package console +Summary: Policy analysis command-line tools for SELinux +License: GPL-2.0-only +Requires: python3-setools = %{version}-%{release} +Requires: libselinux >= %{selinux_ver} %description console SETools is a collection of graphical tools, command-line tools, and @@ -122,560 +46,355 @@ libraries designed to facilitate SELinux policy analysis. This package includes the following console tools: - seaudit-report audit log analysis tool - sechecker SELinux policy checking tool - secmds command line tools: seinfo, sesearch, findcon, - replcon, indexcon, and searchcon - sediff semantic policy difference tool + sediff Compare two policies to find differences. + seinfo List policy components. + sesearch Search rules (allow, type_transition, etc.) -%package gui -AutoReqProv: no -Summary: Policy analysis graphical tools for SELinux -Group: System Environment/Base -Requires: libqpol >= 1.1 libapol >= 4.0 libpoldiff >= 1.2 libsefs >= 3.0 libseaudit >= 4.1 -Requires: tcl >= 8.4.9 tk >= 8.4.9 bwidget >= 1.8 -Requires: glib2 gtk2 >= 2.8 usermode -%description gui +%package console-analyses +Summary: Policy analysis command-line tools for SELinux +License: GPL-2.0-only +Requires: python3-setools = %{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 graphical tools: +This package includes the following console tools: - apol Tcl/Tk-based policy analysis tool - seaudit audit log analysis tool - sediffx semantic policy difference tool + sedta Perform domain transition analyses. + seinfoflow Perform information flow analyses. + + +%package -n python3-setools +Summary: Policy analysis tools for SELinux +License: LGPL-2.1-only +Obsoletes: setools-libs < 4.0.0 + +%description -n python3-setools +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 +License: GPL-2.0-only +Requires: python3-setools = %{version}-%{release} +Requires: python3-pyqt6 python3-pyqt6-sip +Requires: python3-networkx + +%description gui +SETools is a collection of graphical tools, command-line tools, and +Python modules designed to facilitate SELinux policy analysis. -%define setoolsdir %{_datadir}/setools-%{version} -%define pkgpyexecdir %{_libdir}/python?.?/site-packages/setools -%define pkgpythondir %{_exec_prefix}/lib*/python?.?/site-packages/setools -%define javalibdir %{_libdir}/setools %prep -%setup -q +%autosetup -p 1 -S git -n setools-%{version} + + +%generate_buildrequires +%pyproject_buildrequires + %build -%configure --disable-bwidget-check --disable-selinux-check --enable-swig-python --enable-swig-java -make %{?_smp_mflags} +%pyproject_wheel + %install -rm -rf ${RPM_BUILD_ROOT} -make DESTDIR=${RPM_BUILD_ROOT} install -mkdir -p ${RPM_BUILD_ROOT}/usr/share/pixmaps -install -d -m 755 ${RPM_BUILD_ROOT}%{_sysconfdir}/pam.d -install -m 644 packages/rpm/seaudit.pam ${RPM_BUILD_ROOT}%{_sysconfdir}/pam.d/seaudit -install -d -m 755 ${RPM_BUILD_ROOT}%{_sysconfdir}/security/console.apps -install -m 644 packages/rpm/seaudit.console ${RPM_BUILD_ROOT}%{_sysconfdir}/security/console.apps/seaudit -install -d -m 755 ${RPM_BUILD_ROOT}%{_datadir}/applications -install -m 664 packages/rpm/apol.desktop ${RPM_BUILD_ROOT}%{_datadir}/applications/apol.desktop -install -m 664 packages/rpm/seaudit.desktop ${RPM_BUILD_ROOT}%{_datadir}/applications/seaudit.desktop -install -m 664 packages/rpm/sediffx.desktop ${RPM_BUILD_ROOT}%{_datadir}/applications/sediffx.desktop -install -m 664 apol/apol.png ${RPM_BUILD_ROOT}/usr/share/pixmaps/apol.png -install -m 664 seaudit/seaudit.png ${RPM_BUILD_ROOT}/usr/share/pixmaps/seaudit.png -install -m 664 sediff/sediffx.png ${RPM_BUILD_ROOT}/usr/share/pixmaps/sediffx.png -cd $RPM_BUILD_ROOT/%{_bindir}/ -ln -sf consolehelper seaudit +%pyproject_install + +%check +%if %{?_with_check:1}%{!?_with_check:0} +# dnf install python3-pytest python3-pytest-qt +%pytest +%endif -%clean -rm -rf ${RPM_BUILD_ROOT} %files -%doc AUTHORS ChangeLog COPYING COPYING.GPL COPYING.LGPL KNOWN-BUGS NEWS README - -%files libs -%defattr(755,root,root) -%{_libdir}/libqpol.so.%{libqpol_ver} -%{_libdir}/libqpol.so.1 -%{_libdir}/libapol.so.%{libapol_ver} -%{_libdir}/libapol.so.4 -%{_libdir}/libpoldiff.so.%{libpoldiff_ver} -%{_libdir}/libpoldiff.so.1 -%{_libdir}/libsefs.so.%{libsefs_ver} -%{_libdir}/libsefs.so.3 -%{_libdir}/libseaudit.so.%{libseaudit_ver} -%{_libdir}/libseaudit.so.4 -%defattr(-, root, root) -%{setoolsdir}/seaudit-report.conf -%{setoolsdir}/seaudit-report.css - -%files libs-python -%defattr(-,root,root) -%{pkgpythondir}/__init__.py -%{pkgpythondir}/__init__.pyc -%{pkgpythondir}/__init__.pyo -%{pkgpythondir}/qpol.py -%{pkgpythondir}/qpol.pyc -%{pkgpythondir}/qpol.pyo -%{pkgpyexecdir}/_qpol.so.%{libqpol_ver} -%{pkgpyexecdir}/_qpol.so.1 -%attr(755,root,root) %{pkgpyexecdir}/_qpol.so -%{pkgpythondir}/apol.py -%{pkgpythondir}/apol.pyc -%{pkgpythondir}/apol.pyo -%{pkgpyexecdir}/_apol.so.%{libapol_ver} -%{pkgpyexecdir}/_apol.so.4 -%attr(755,root,root) %{pkgpyexecdir}/_apol.so -%{pkgpythondir}/poldiff.py -%{pkgpythondir}/poldiff.pyc -%{pkgpythondir}/poldiff.pyo -%{pkgpyexecdir}/_poldiff.so.%{libpoldiff_ver} -%{pkgpyexecdir}/_poldiff.so.1 -%attr(755,root,root) %{pkgpyexecdir}/_poldiff.so -%{pkgpythondir}/seaudit.py -%{pkgpythondir}/seaudit.pyc -%{pkgpythondir}/seaudit.pyo -%{pkgpyexecdir}/_seaudit.so.%{libseaudit_ver} -%{pkgpyexecdir}/_seaudit.so.4 -%attr(755,root,root) %{pkgpyexecdir}/_seaudit.so - -%files libs-java -%defattr(-,root,root) -%{_libdir}/libjqpol.so.%{libqpol_ver} -%{_libdir}/libjqpol.so.1 -%{_libdir}/libjqpol.so -%{_libdir}/libjapol.so.%{libapol_ver} -%{_libdir}/libjapol.so.4 -%{_libdir}/libjapol.so -%{_libdir}/libjpoldiff.so.%{libpoldiff_ver} -%{_libdir}/libjpoldiff.so.1 -%{_libdir}/libjpoldiff.so -%{_libdir}/libjseaudit.so.%{libseaudit_ver} -%{_libdir}/libjseaudit.so.4 -%{_libdir}/libjseaudit.so -%{javalibdir}/qpol.jar -%{javalibdir}/apol.jar -%{javalibdir}/poldiff.jar -%{javalibdir}/seaudit.jar - -%files devel -%defattr(-,root,root) -%{_bindir}/awish -%{_libdir}/libqpol.a -%{_libdir}/libqpol.so -%{_libdir}/libapol.so -%{_libdir}/libapol.a -%{_libdir}/libpoldiff.a -%{_libdir}/libpoldiff.so -%{_libdir}/libsefs.a -%{_libdir}/libsefs.so -%{_libdir}/libseaudit.a -%{_libdir}/libseaudit.so -%{_libdir}/libapol-tcl.a -%{_includedir}/qpol/avrule_query.h -%{_includedir}/qpol/bool_query.h -%{_includedir}/qpol/class_perm_query.h -%{_includedir}/qpol/cond_query.h -%{_includedir}/qpol/constraint_query.h -%{_includedir}/qpol/context_query.h -%{_includedir}/qpol/fs_use_query.h -%{_includedir}/qpol/genfscon_query.h -%{_includedir}/qpol/isid_query.h -%{_includedir}/qpol/iterator.h -%{_includedir}/qpol/mls_query.h -%{_includedir}/qpol/mlsrule_query.h -%{_includedir}/qpol/module.h -%{_includedir}/qpol/netifcon_query.h -%{_includedir}/qpol/nodecon_query.h -%{_includedir}/qpol/policy.h -%{_includedir}/qpol/policy_extend.h -%{_includedir}/qpol/portcon_query.h -%{_includedir}/qpol/rbacrule_query.h -%{_includedir}/qpol/role_query.h -%{_includedir}/qpol/syn_rule_query.h -%{_includedir}/qpol/terule_query.h -%{_includedir}/qpol/type_query.h -%{_includedir}/qpol/user_query.h -%{_includedir}/qpol/util.h -%{_includedir}/apol/avl-util.h -%{_includedir}/apol/avrule-query.h -%{_includedir}/apol/bool-query.h -%{_includedir}/apol/bst.h -%{_includedir}/apol/class-perm-query.h -%{_includedir}/apol/condrule-query.h -%{_includedir}/apol/constraint-query.h -%{_includedir}/apol/context-query.h -%{_includedir}/apol/domain-trans-analysis.h -%{_includedir}/apol/fscon-query.h -%{_includedir}/apol/infoflow-analysis.h -%{_includedir}/apol/isid-query.h -%{_includedir}/apol/mls-query.h -%{_includedir}/apol/netcon-query.h -%{_includedir}/apol/perm-map.h -%{_includedir}/apol/policy.h -%{_includedir}/apol/policy-path.h -%{_includedir}/apol/policy-query.h -%{_includedir}/apol/range_trans-query.h -%{_includedir}/apol/rbacrule-query.h -%{_includedir}/apol/relabel-analysis.h -%{_includedir}/apol/render.h -%{_includedir}/apol/role-query.h -%{_includedir}/apol/terule-query.h -%{_includedir}/apol/type-query.h -%{_includedir}/apol/types-relation-analysis.h -%{_includedir}/apol/user-query.h -%{_includedir}/apol/util.h -%{_includedir}/apol/vector.h -%{_includedir}/poldiff/poldiff.h -%{_includedir}/poldiff/attrib_diff.h -%{_includedir}/poldiff/avrule_diff.h -%{_includedir}/poldiff/bool_diff.h -%{_includedir}/poldiff/cat_diff.h -%{_includedir}/poldiff/class_diff.h -%{_includedir}/poldiff/level_diff.h -%{_includedir}/poldiff/range_diff.h -%{_includedir}/poldiff/range_trans_diff.h -%{_includedir}/poldiff/rbac_diff.h -%{_includedir}/poldiff/role_diff.h -%{_includedir}/poldiff/terule_diff.h -%{_includedir}/poldiff/user_diff.h -%{_includedir}/poldiff/type_diff.h -%{_includedir}/poldiff/type_map.h -%{_includedir}/poldiff/util.h -%{_includedir}/sefs/file_contexts.h -%{_includedir}/sefs/fsdata.h -%{_includedir}/sefs/fshash.h -%{_includedir}/sefs/util.h -%{_includedir}/seaudit/avc_message.h -%{_includedir}/seaudit/bool_message.h -%{_includedir}/seaudit/filter.h -%{_includedir}/seaudit/load_message.h -%{_includedir}/seaudit/log.h -%{_includedir}/seaudit/message.h -%{_includedir}/seaudit/model.h -%{_includedir}/seaudit/parse.h -%{_includedir}/seaudit/report.h -%{_includedir}/seaudit/sort.h -%{_includedir}/seaudit/util.h %files console -%defattr(-,root,root) -%{_bindir}/seinfo -%{_bindir}/sesearch -%{_bindir}/indexcon -%{_bindir}/findcon -%{_bindir}/replcon -%{_bindir}/searchcon +%license COPYING.GPL %{_bindir}/sechecker %{_bindir}/sediff -%{_bindir}/seaudit-report -%{setoolsdir}/sechecker-profiles/all-checks.sechecker -%{setoolsdir}/sechecker-profiles/analysis-checks.sechecker -%{setoolsdir}/sechecker-profiles/devel-checks.sechecker -%{setoolsdir}/sechecker-profiles/sechecker.dtd -%{setoolsdir}/sechecker_help.txt -%{setoolsdir}/seaudit-report-service -%{_mandir}/man1/findcon.1.gz -%{_mandir}/man1/indexcon.1.gz -%{_mandir}/man1/replcon.1.gz -%{_mandir}/man1/searchcon.1.gz -%{_mandir}/man1/sechecker.1.gz -%{_mandir}/man1/sediff.1.gz -%{_mandir}/man1/seinfo.1.gz -%{_mandir}/man1/sesearch.1.gz -%{_mandir}/man8/seaudit-report.8.gz +%{_bindir}/seinfo +%{_bindir}/sesearch +%{_mandir}/man1/sechecker* +%{_mandir}/man1/sediff* +%{_mandir}/man1/seinfo* +%{_mandir}/man1/sesearch* +%{_mandir}/ru/man1/sediff* +%{_mandir}/ru/man1/seinfo* +%{_mandir}/ru/man1/sesearch* + +%files console-analyses +%license COPYING.GPL +%{_bindir}/sedta +%{_bindir}/seinfoflow +%{_mandir}/man1/sedta* +%{_mandir}/man1/seinfoflow* +%{_mandir}/ru/man1/sedta* +%{_mandir}/ru/man1/seinfoflow* + +%files -n python3-setools +%license COPYING COPYING.LGPL +%{python3_sitearch}/setools +%{python3_sitearch}/setools-* %files gui -%defattr(-,root,root) -%{_bindir}/seaudit -%{_bindir}/sediffx +%license COPYING.GPL %{_bindir}/apol -%{setoolsdir}/sediff_help.txt -%{setoolsdir}/sediffx.glade -%{setoolsdir}/sediffx.png -%{setoolsdir}/sediffx-small.png -%{setoolsdir}/apol_help.txt -%{setoolsdir}/domaintrans_help.txt -%{setoolsdir}/file_relabel_help.txt -%{setoolsdir}/infoflow_help.txt -%{setoolsdir}/types_relation_help.txt -%{setoolsdir}/apol_perm_mapping_ver12 -%{setoolsdir}/apol_perm_mapping_ver15 -%{setoolsdir}/apol_perm_mapping_ver16 -%{setoolsdir}/apol_perm_mapping_ver17 -%{setoolsdir}/apol_perm_mapping_ver18 -%{setoolsdir}/apol_perm_mapping_ver19 -%{setoolsdir}/apol_perm_mapping_ver20 -%{setoolsdir}/apol_perm_mapping_ver21 -%{setoolsdir}/apol.gif -%{setoolsdir}/apol.tcl -%{setoolsdir}/seaudit.glade -%{setoolsdir}/seaudit_help.txt -%{setoolsdir}/seaudit.png -%{setoolsdir}/seaudit-small.png -%{setoolsdir}/dot_seaudit -%{_mandir}/man1/apol.1.gz -%{_mandir}/man1/sediffx.1.gz -%{_mandir}/man8/seaudit.8.gz -%{_sbindir}/seaudit - -%config(noreplace) %{_sysconfdir}/pam.d/seaudit -%config(noreplace) %{_sysconfdir}/security/console.apps/seaudit -%{_datadir}/applications/apol.desktop -%{_datadir}/applications/seaudit.desktop -%{_datadir}/applications/sediffx.desktop -%attr(0644,root,root) /usr/share/pixmaps/apol.png -%attr(0644,root,root) /usr/share/pixmaps/seaudit.png -%attr(0644,root,root) /usr/share/pixmaps/sediffx.png - -%post libs-java -p /sbin/ldconfig - -%postun libs-java -p /sbin/ldconfig - -%post libs -p /sbin/ldconfig - -%postun libs -p /sbin/ldconfig +%{python3_sitearch}/setoolsgui +%{_mandir}/man1/apol* +%{_mandir}/ru/man1/apol* %changelog -* Tue Aug 28 2007 Fedora Release Engineering - 3.2-4 -- Rebuild for selinux ppc32 issue. +* Mon Dec 01 2025 Veronika Syncakova - 4.6.0-4 +- Fix seinfo argument parsing when policy path follows query options -* Fri Jul 20 2007 Dan Walsh 3.2-3 -- Move to Tresys spec file +* Thu Oct 02 2025 Miro Hrončok - 4.6.0-3 +- Drop redundant runtime requirement on python3-setuptools (redux) -* Wed Jun 13 2007 Dan Walsh 3.2-2 -- Bump for rebuild - -* Mon Apr 30 2007 Dan Walsh 3.2-1 -- Start shipping the rest of the setools command line apps - -* Wed Apr 25 2007 Jason Tang 3.2-0 -- update to SETools 3.2 release - -* Mon Feb 02 2007 Jason Tang 3.1-1 -- update to SETools 3.1 release - -* Mon Oct 30 2006 Dan Walsh 3.0-2.fc6 -- bump for fc6 - -* Thu Oct 26 2006 Dan Walsh 3.0-2 -- Build on rawhide - -* Sun Oct 15 2006 Dan Walsh 3.0-1 -- Update to upstream - -* Wed Jul 12 2006 Jesse Keating - sh: line 0: fg: no job control -- rebuild - -* Tue May 23 2006 Dan Walsh 2.4-2 -- Remove sqlite include directory - -* Wed May 3 2006 Dan Walsh 2.4-1 -- Update from upstream - -* Mon Apr 10 2006 Dan Walsh 2.3-3 -- Fix help -- Add icons +* Fri Sep 19 2025 Python Maint - 4.6.0-2 +- Rebuilt for Python 3.14.0rc3 bytecode -* Tue Mar 21 2006 Dan Walsh 2.3-2 -- Remove console apps for sediff, sediffx and apol +* Tue Sep 09 2025 Petr Lautrbach - 4.6.0-1 +- SETools 4.6.0 -* Fri Feb 10 2006 Jesse Keating - 2.3-1.2 -- bump again for double-long bug on ppc(64) +* Fri Aug 15 2025 Python Maint - 4.5.1-11 +- Rebuilt for Python 3.14.0rc2 bytecode -* Tue Feb 07 2006 Jesse Keating - 2.3-1.1 -- rebuilt for new gcc4.1 snapshot and glibc changes +* Mon Aug 04 2025 Miro Hrončok - 4.5.1-10 +- Drop redundant runtime requirement on python3-setuptools (correction) -* Tue Jan 31 2006 Dan Walsh 2.3-1 -- Update from upstream - * apol: - added new MLS components tab for sensitivities, - levels, and categories. - Changed users tab to support ranges and default - levels. - added range transition tab for searching range - Transition rules. - added new tab for network context components. - added new tab for file system context components. - * libapol: - added binpol support for MLS, network contexts, - and file system contexts. - * seinfo: - added command line options for MLS components. - added command line options for network contexts - and file system contexts. - * sesearch: - added command line option for searching for rules - by conditional boolean name. - * seaudit: - added new column in the log view for the 'comm' - field found in auditd log files. - added filters for the 'comm' field and 'message' - field. - * manpages: - added manpages for all tools. +* Fri Jul 25 2025 Fedora Release Engineering - 4.5.1-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild +* Sat Jul 05 2025 Petr Lautrbach - 4.5.1-8 +- Rebuilt with SELinux userspace 3.9-rc2 release +* Mon Jun 02 2025 Python Maint - 4.5.1-7 +- Rebuilt for Python 3.14 -* Fri Dec 16 2005 Jesse Keating -- rebuilt for new gcj +* Tue Apr 01 2025 Miro Hrončok - 4.5.1-6 +- Drop redundant runtime requirement on python3-setuptools, dropped in setools 4.5.1 -* Wed Dec 14 2005 Dan Walsh 2.2-4 -- Fix dessktop files -- Apply fixes from bkyoung +* Sun Jan 19 2025 Fedora Release Engineering - 4.5.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild -* Fri Dec 09 2005 Jesse Keating -- rebuilt +* Sat Jul 20 2024 Fedora Release Engineering - 4.5.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild -* Thu Nov 3 2005 Dan Walsh 2.2-3 -- Move more gui files out of base into gui +* Fri Jun 07 2024 Python Maint - 4.5.1-3 +- Rebuilt for Python 3.13 -* Thu Nov 3 2005 Dan Walsh 2.2-2 -- Move sediff from gui to main package +* Thu May 02 2024 Petr Lautrbach - 4.5.1-2 +- Fix License tag -* Thu Nov 3 2005 Dan Walsh 2.2-1 -- Upgrade to upstream version +* Thu May 02 2024 Petr Lautrbach - 4.5.1-1 +- SETools 4.5.1 -* Thu Oct 13 2005 Dan Walsh 2.1.3-1 -- Upgrade to upstream version +* Thu Apr 18 2024 Petr Lautrbach - 4.5.0-1 +- SETools 4.5.0 -* Mon Oct 10 2005 Tomas Mraz 2.1.2-3 -- use include instead of pam_stack in pam config +* Sat Jan 27 2024 Fedora Release Engineering - 4.4.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Thu Sep 1 2005 Dan Walsh 2.1.2-2 -- Fix spec file - -* Thu Sep 1 2005 Dan Walsh 2.1.2-1 -- Upgrade to upstream version - -* Thu Aug 18 2005 Florian La Roche -- do not package debug files into the -devel package +* Mon Dec 11 2023 Petr Lautrbach - 4.4.4-1 +- SETools 4.4.4 release -* Wed Aug 17 2005 Jeremy Katz - 2.1.1-3 -- rebuild against new cairo +* Mon Aug 28 2023 Petr Lautrbach - 4.4.3-2 +- Use Qt 6 -* Wed May 25 2005 Dan Walsh 2.1.1-0 -- Upgrade to upstream version +* Wed Aug 9 2023 Petr Lautrbach - 4.4.3-1 +- SETools 4.4.3 release -* Mon May 23 2005 Bill Nottingham 2.1.0-5 -- put libraries in the right place (also puts debuginfo in the right - package) -- add %%defattr for -devel too +* Wed Jul 26 2023 Petr Lautrbach - 4.4.2-4 +- Disable/remove neverallow options in sediff. +- Improve man pages +- seinfoflow: Add -r option to get flows into the source type. +- seinfoflow.1: Remove references to sepolgen permission map. +- AVRule/AVRuleXperm: Treat rules with no permissions as invalid policy. +- SELinuxPolicy: Add explicit cast for libspol message -* Thu May 12 2005 Dan Walsh 2.1.0-4 -- Move sepcut to gui apps. +* Sat Jul 22 2023 Fedora Release Engineering - 4.4.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild -* Fri May 6 2005 Dan Walsh 2.1.0-3 -- Fix Missing return code. +* Tue Jun 13 2023 Python Maint - 4.4.2-2 +- Rebuilt for Python 3.12 -* Wed Apr 20 2005 Dan Walsh 2.1.0-2 -- Fix requires line +* Thu Apr 20 2023 Petr Lautrbach - 4.4.2-1 +- SETools 4.4.2 release -* Tue Apr 19 2005 Dan Walsh 2.1.0-1 -- Update to latest from tresys +* Mon Feb 6 2023 Petr Lautrbach - 4.4.1-1 +- SETools 4.4.1 release -* Tue Apr 5 2005 Dan Walsh 2.0.0-2 -- Fix buildrequires lines in spec file +* Sat Jan 21 2023 Fedora Release Engineering - 4.4.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild -* Tue Mar 2 2005 Dan Walsh 2.0.0-1 -- Update to latest from tresys +* Sat Jul 23 2022 Fedora Release Engineering - 4.4.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild -* Mon Nov 29 2004 Dan Walsh 1.5.1-6 -- add FALLBACK=true to /etc/security/console.apps/apol +* Thu Jun 16 2022 Python Maint - 4.4.0-8 +- Rebuilt for Python 3.11 -* Wed Nov 10 2004 Dan Walsh 1.5.1-3 -- Add badtcl patch from Tresys. +* Mon Jun 13 2022 Petr Lautrbach - 4.4.0-7 +- Update required userspace versions to 3.4 +- Drop unnecessary Recommends -* Mon Nov 8 2004 Dan Walsh 1.5.1-2 -- Apply malloc problem patch provided by Sami Farin +* Mon Jun 13 2022 Python Maint - 4.4.0-6 +- Rebuilt for Python 3.11 -* Mon Nov 1 2004 Dan Walsh 1.5.1-1 -- Update to latest from Upstream +* Sat Jan 22 2022 Fedora Release Engineering - 4.4.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild -* Wed Oct 6 2004 Dan Walsh 1.4.1-5 -- Update tresys patch +* Fri Nov 19 2021 Petr Lautrbach - 4.4.0-4 +- Make seinfo output predictable + https://github.com/SELinuxProject/setools/issues/65 -* Mon Oct 4 2004 Dan Walsh 1.4.1-4 -- Fix directory ownership +* Fri Jul 23 2021 Fedora Release Engineering - 4.4.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild -* Thu Jul 8 2004 Dan Walsh 1.4.1-1 -- Latest from Tresys +* Fri Jun 04 2021 Python Maint - 4.4.0-2 +- Rebuilt for Python 3.10 -* Wed Jun 23 2004 Dan Walsh 1.4-5 -- Add build requires libselinux +* Mon Mar 8 2021 Petr Lautrbach - 4.4.0-1 +- SETools 4.4.0 release -* Tue Jun 22 2004 Dan Walsh 1.4-4 -- Add support for policy.18 +* Wed Jan 27 2021 Fedora Release Engineering - 4.4.0-0.3.20210121git16c0696 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild -* Tue Jun 15 2004 Elliot Lee -- rebuilt +* Thu Jan 21 2021 Petr Lautrbach - 4.4.0-0.2.20210121git16c0696 +- Rebuild with SELinux userspace 3.2-rc1 +- Update to 16c0696 -* Thu Jun 10 2004 Dan Walsh 1.4-2 -- Fix install locations of policy_src_dir +* Thu Dec 10 2020 Petr Lautrbach - 4.4.0-0.2.20201102git05e90ee +- Fix imports in /usr/bin/sedta -* Wed Jun 2 2004 Dan Walsh 1.4-1 -- Update to latest from TRESYS. +* Tue Nov 3 2020 Petr Lautrbach - 4.4.0-0.1.20201102git05e90ee +- Update to 05e90ee +- Add /usr/bin/sechecker +- Adapt to new libsepol filename transition structures +- Rebuild with libsepol.so.2 -* Tue Jun 1 2004 Dan Walsh 1.3-3 -- Make changes to work with targeted/strict policy -* Fri Apr 16 2004 Dan Walsh 1.3-2 -- Take out requirement for policy file +* Sat Aug 01 2020 Fedora Release Engineering - 4.3.0-5 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild -* Fri Apr 16 2004 Dan Walsh 1.3-1 -- Fix doc location +* Wed Jul 29 2020 Fedora Release Engineering - 4.3.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild -* Fri Apr 16 2004 Dan Walsh 1.3-1 -- Latest from TRESYS +* Thu Jul 16 2020 Petr Lautrbach - 4.3.0-3 +- rebuild with SELinux userspace 3.1 release -* Tue Apr 13 2004 Dan Walsh 1.2.1-8 -- fix location of policy.conf file +* Tue May 26 2020 Miro Hrončok - 4.3.0-2 +- Rebuilt for Python 3.9 -* Tue Apr 6 2004 Dan Walsh 1.2.1-7 -- Obsolete setools-devel -* Tue Apr 6 2004 Dan Walsh 1.2.1-6 -- Fix location of -* Tue Apr 6 2004 Dan Walsh 1.2.1-5 -- Remove devel libraries -- Fix installdir for lib64 +* Thu Apr 2 2020 Petr Lautrbach - 4.3.0-1 +- SETools 4.3.0 release +- Revised sediff method for TE rules. This drastically reduced memory and run time. +- Added infiniband context support to seinfo, sediff, and apol. +- Added apol configuration for location of Qt assistant. +- Fixed sediff issue where properties header would display when not requested. +- Fixed sediff issue with type_transition file name comparison. +- Fixed permission map socket sendto information flow direction. +- Added methods to TypeAttribute class to make it a complete Python collection. +- Genfscon now will look up classes rather than using fixed values which + were dropped from libsepol. -* Sat Apr 3 2004 Dan Walsh 1.2.1-4 -- Add usr_t file read to policy +* Mon Mar 23 2020 Petr Lautrbach - 4.2.2-5 +- setools requires -console, -console-analyses and -gui packages (#1794314) -* Thu Mar 25 2004 Dan Walsh 1.2.1-3 -- Use tcl8.4 +* Thu Jan 30 2020 Fedora Release Engineering - 4.2.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild -* Tue Mar 02 2004 Elliot Lee -- rebuilt +* Thu Oct 03 2019 Miro Hrončok - 4.2.2-3 +- Rebuilt for Python 3.8.0rc1 (#1748018) -* Fri Feb 13 2004 Elliot Lee -- rebuilt +* Mon Aug 19 2019 Miro Hrončok - 4.2.2-2 +- Rebuilt for Python 3.8 -* Fri Feb 6 2004 Dan Walsh 1.2.1-1 -- New patch +* Mon Jul 08 2019 Vit Mojzis - 4.2.2-1} +- SETools 4.2.2 release -* Fri Feb 6 2004 Dan Walsh 1.2-1 -- Latest upstream version +* Mon May 13 2019 Vit Mojzis - 4.2.1-3 +- Use %set_build_flags instead of %optflags -* Tue Dec 30 2003 Dan Walsh 1.1.1-1 -- New version from upstream -- Remove seuser.te. Now in policy file. +* Mon May 06 2019 Vit Mojzis - 4.2.1-2 +- SELinuxPolicy: Create a map of aliases on policy load (#1672631) -* Tue Dec 30 2003 Dan Walsh 1.1-2 -- Add Defattr to devel -- move libs to base kit +* Tue Mar 26 2019 Petr Lautrbach - 4.2.1-1 +- SETools 4.2.1 release (#1581761, #1595582) -* Fri Dec 19 2003 Dan Walsh 1.1-1 -- Update to latest code from tresys -- Break into three separate packages for cmdline, devel and gui -- Incorporate the tcl patch +* Wed Nov 14 2018 Vit Mojzis - 4.2.0-1 +- Update source to SETools 4.2.0 release -* Mon Dec 15 2003 Jens Petersen - 1.0.1-3 -- apply setools-1.0.1-tcltk.patch to build against tcl/tk 8.4 -- buildrequire tk-devel +* Mon Oct 01 2018 Vit Mojzis - 4.2.0-0.3.rc +- Update upstream source to 4.2.0-rc -* Thu Nov 20 2003 Dan Walsh 1.0.1-2 -- Add Bwidgets to this RPM +* Wed Sep 19 2018 Vit Mojzis - 4.2.0-0.2.beta +- Require userspace release 2.8 +- setools-gui requires python3-setools +- Add Requires for python[23]-setuptools - no longer required (just recommended) by python[23] (#1623371) +- Drop python2 subpackage (4.2.0 no longer supports python2) -* Tue Nov 4 2003 Dan Walsh 1.0.1-1 -- Upgrade to 1.0.1 +* Wed Aug 29 2018 Vit Mojzis - 4.1.1-13 +- Add Requires for python[23]-setuptools - no longer required (just recommended) + by python[23] (#1623371) -* Wed Oct 15 2003 Dan Walsh 1.0-6 -- Clean up build +* Wed Aug 22 2018 Petr Lautrbach - 4.1.1-12.1 +- Fix SCTP patch - https://github.com/SELinuxProject/setools/issues/9 -* Tue Oct 14 2003 Dan Walsh 1.0-5 -- Update with correct seuser.te +* Sat Jul 14 2018 Fedora Release Engineering - 4.1.1-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild -* Wed Oct 1 2003 Dan Walsh 1.0-4 -- Update with final release from Tresys +* Tue Jun 19 2018 Miro Hrončok - 4.1.1-10 +- Rebuilt for Python 3.7 -* Mon Jun 2 2003 Dan Walsh 1.0-1 -- Initial version +* Thu Jun 14 2018 Petr Lautrbach - 4.1.1-9 +- Move gui python files to -gui subpackage + +* Thu Apr 26 2018 Vit Mojzis - 4.1.1-8 +- Add support for SCTP protocol (#1568333) + +* Thu Apr 19 2018 Iryna Shcherbina - 4.1.1-7 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Fri Feb 09 2018 Fedora Release Engineering - 4.1.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Mon Sep 04 2017 Petr Lautrbach - 4.1.1-5 +- setools-python2 requires python2-enum34 + +* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 4.1.1-4 +- Add Provides for the old name without %%_isa + +* Thu Aug 10 2017 Zbigniew Jędrzejewski-Szmek - 4.1.1-3 +- Python 2 binary package renamed to python2-setools + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 +- Python 3 binary package renamed to python3-setools + +* Thu Aug 10 2017 Petr Lautrbach - 4.1.1-2 +- bswap_* macros are defined in byteswap.h + +* Mon Aug 07 2017 Petr Lautrbach - 4.1.1-1 +- New upstream release + +* Thu Aug 03 2017 Fedora Release Engineering - 4.1.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 4.1.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon May 22 2017 Petr Lautrbach - 4.1.0-3 +- setools-python{,3} packages should have a weak dependency on libselinux-python{,3} + (#1447747) + +* Thu Feb 23 2017 Petr Lautrbach - 4.1.0-2 +- Move python networkx dependency to -gui and -console-analyses +- Ship sedta and seinfoflow in setools-console-analyses + +* Wed Feb 15 2017 Petr Lautrbach - 4.1.0-1 +- New upstream release. diff --git a/sources b/sources index aca44bb..386b801 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -699988ceb2d996cf172aa66bf24d7c0b setools-3.2.tar.bz2 +SHA512 (4.6.0.tar.gz) = 5b654f480f285717d15fa55f754fbd00cb030a0d8af8342d901e0514c4fdbacb7873e19420dab98540eaa481c687ff1e03423df893c0d1744eb4c53eb81afbf5 diff --git a/tests/Regression/The-setools-package-doesn-t-install-any-tools/Makefile b/tests/Regression/The-setools-package-doesn-t-install-any-tools/Makefile new file mode 100644 index 0000000..a5e7a6b --- /dev/null +++ b/tests/Regression/The-setools-package-doesn-t-install-any-tools/Makefile @@ -0,0 +1,63 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /CoreOS/setools/Regression/The-setools-package-doesn-t-install-any-tools +# Description: Make sure setools requires setools-console and setools-gui +# Author: Vit Mojzis +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2020 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/CoreOS/setools/Regression/The-setools-package-doesn-t-install-any-tools +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Vit Mojzis " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: Make sure setools requires setools-console and setools-gui" >> $(METADATA) + @echo "Type: Regression" >> $(METADATA) + @echo "TestTime: 5m" >> $(METADATA) + @echo "RunFor: setools" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Bug: 1820078" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5 -RHEL6 -RHEL7" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/Regression/The-setools-package-doesn-t-install-any-tools/main.fmf b/tests/Regression/The-setools-package-doesn-t-install-any-tools/main.fmf new file mode 100644 index 0000000..11ff640 --- /dev/null +++ b/tests/Regression/The-setools-package-doesn-t-install-any-tools/main.fmf @@ -0,0 +1,11 @@ +summary: Make sure setools requires setools-console and setools-gui +contact: Vit Mojzis +component: + - setools +test: ./runtest.sh +framework: beakerlib +duration: 5m +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1820078 +extra-summary: /CoreOS/setools/Regression/The-setools-package-doesn-t-install-any-tools +extra-task: /CoreOS/setools/Regression/The-setools-package-doesn-t-install-any-tools diff --git a/tests/Regression/The-setools-package-doesn-t-install-any-tools/runtest.sh b/tests/Regression/The-setools-package-doesn-t-install-any-tools/runtest.sh new file mode 100755 index 0000000..ad83754 --- /dev/null +++ b/tests/Regression/The-setools-package-doesn-t-install-any-tools/runtest.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/setools/Regression/bz1820078-The-setools-package-doesn-t-install-any-tools +# Description: Make sure setools requires setools-console and setools-gui +# Author: Vit Mojzis +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2020 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="setools" + +rlJournalStart + rlPhaseStartSetup + rlRun "dnf -y remove ${PACKAGE} ${PACKAGE}-gui ${PACKAGE}-console" + OUTPUT_FILE=`mktemp` + rlPhaseEnd + + rlPhaseStartTest "bz#1820078" + rlRun "dnf -y install ${PACKAGE}" 0 + rlAssertRpm "${PACKAGE}-gui" + rlAssertRpm "${PACKAGE}-console" + # make sure that setools-* packages do not require setools + rlRun "rpm -q --whatrequires ${PACKAGE} >& ${OUTPUT_FILE}" 0,1 + rlRun "grep -i \"${PACKAGE}-\" ${OUTPUT_FILE}" 1 + if [ $? -ne 1 ]; then rlRun "cat \"${OUTPUT_FILE}\""; fi + rlPhaseEnd + + rlPhaseStartCleanup + rm -f ${OUTPUT_FILE} + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/tests/Sanity/sedta/Makefile b/tests/Sanity/sedta/Makefile new file mode 100644 index 0000000..e45b9de --- /dev/null +++ b/tests/Sanity/sedta/Makefile @@ -0,0 +1,63 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /CoreOS/setools/Sanity/sedta +# Description: Does sedta work as expected? Does it support all features? +# Author: Milos Malik +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2019 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/CoreOS/setools/Sanity/sedta +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE testpolicy.cil + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Milos Malik " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: Does sedta work as expected? Does it support all features?" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 1h" >> $(METADATA) + @echo "RunFor: setools" >> $(METADATA) + @echo "Requires: policycoreutils setools-console-analyses" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Releases: -RHEL4 -RHEL6 -RHEL7 -RHELClient5 -RHELServer5" >> $(METADATA) + + rhts-lint $(METADATA) + diff --git a/tests/Sanity/sedta/PURPOSE b/tests/Sanity/sedta/PURPOSE new file mode 100644 index 0000000..db04487 --- /dev/null +++ b/tests/Sanity/sedta/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /CoreOS/setools/Sanity/sedta +Description: Does sedta work as expected? Does it support all features? +Author: Milos Malik diff --git a/tests/Sanity/sedta/main.fmf b/tests/Sanity/sedta/main.fmf new file mode 100644 index 0000000..e0c2de1 --- /dev/null +++ b/tests/Sanity/sedta/main.fmf @@ -0,0 +1,30 @@ +summary: Does sedta work as expected? Does it support all features? +description: '' +contact: Milos Malik +component: + - setools +test: ./runtest.sh +framework: beakerlib +recommend: + - git + - policycoreutils + - setools-console-analyses +duration: 1h +enabled: true +tag: + - CI-Tier-1 + - NoRHEL4 + - NoRHEL5 + - NoRHEL6 + - NoRHEL7 + - TIPfail_Security + - f32friendly + - f33friendly + - targeted +adjust: + - enabled: false + when: distro == rhel-4, rhel-5, rhel-6, rhel-7 + continue: false +extra-nitrate: TC#0604139 +extra-summary: /CoreOS/setools/Sanity/sedta +extra-task: /CoreOS/setools/Sanity/sedta diff --git a/tests/Sanity/sedta/runtest.sh b/tests/Sanity/sedta/runtest.sh new file mode 100755 index 0000000..fa6372d --- /dev/null +++ b/tests/Sanity/sedta/runtest.sh @@ -0,0 +1,87 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/setools/Sanity/sedta +# Description: Does sedta work as expected? Does it support all features? +# Author: Milos Malik +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2019 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="setools" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm ${PACKAGE}-console-analyses + OUTPUT_FILE=`mktemp` + rlRun "semodule -i testpolicy.cil" + rlRun "semodule -l | grep testpolicy" + rlPhaseEnd + + rlPhaseStartTest "invalid values" + rlRun "sedta -s unknown_t >& ${OUTPUT_FILE}" 1 + rlRun "grep -i 'not a valid type' ${OUTPUT_FILE}" + rlRun "sedta -s apmd_t -t unknown_t -S >& ${OUTPUT_FILE}" 1 + rlRun "grep -i 'not a valid type' ${OUTPUT_FILE}" + rlRun "sedta -s unknown_t -p /etc/selinux/unknown/policy/policy.31 >& ${OUTPUT_FILE}" 1 + rlRun "grep -i 'no such file or directory' ${OUTPUT_FILE}" + rlRun "sedta -s apmd_t -t var_lib_t -A -1 >& ${OUTPUT_FILE}" 1 + rlRun "grep -i 'must be positive' ${OUTPUT_FILE}" + rlRun "sedta -s xyz_t >& ${OUTPUT_FILE}" + rlRun "grep -i '^0.*transition.*found' ${OUTPUT_FILE}" + rlPhaseEnd + + rlPhaseStartTest "valid values" + # transitivity + rlRun "sedta -s first_t -t second_t -S >& ${OUTPUT_FILE}" + rlRun "grep -i '^1 domain transition path.*found' ${OUTPUT_FILE}" + rlRun "sedta -s second_t -t third_t -S >& ${OUTPUT_FILE}" + rlRun "grep -i '^1 domain transition path.*found' ${OUTPUT_FILE}" + rlRun "sedta -s first_t -t third_t -S >& ${OUTPUT_FILE}" + rlRun "grep -i '^1 domain transition path.*found' ${OUTPUT_FILE}" + # reflexivity + rlRun "sedta -s first_t -t first_t -S >& ${OUTPUT_FILE}" + rlRun "grep -i '^1 domain transition path.*found' ${OUTPUT_FILE}" + rlRun "sedta -s second_t -t second_t -S >& ${OUTPUT_FILE}" + rlRun "grep -i '^1 domain transition path.*found' ${OUTPUT_FILE}" + rlRun "sedta -s third_t -t third_t -S >& ${OUTPUT_FILE}" + rlRun "grep -i '^1 domain transition path.*found' ${OUTPUT_FILE}" + # path is longer than limit + rlRun "sedta -s first_t -t third_t -A 1 >& ${OUTPUT_FILE}" + rlRun "grep -i '^0 domain transition path.*found' ${OUTPUT_FILE}" + # non-existent relation + rlRun "sedta -s first_t -t third_t -S -r >& ${OUTPUT_FILE}" + rlRun "grep -i '^0 domain transition path.*found' ${OUTPUT_FILE}" + # non-existent relation + rlRun "sedta -s third_t -t first_t -S >& ${OUTPUT_FILE}" + rlRun "grep -i '^0 domain transition path.*found' ${OUTPUT_FILE}" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "semodule -r testpolicy" + rlRun "semodule -l | grep testpolicy" 1 + rm -f ${OUTPUT_FILE} + rlPhaseEnd +rlJournalPrintText +rlJournalEnd + diff --git a/tests/Sanity/sedta/testpolicy.cil b/tests/Sanity/sedta/testpolicy.cil new file mode 100644 index 0000000..cc39d72 --- /dev/null +++ b/tests/Sanity/sedta/testpolicy.cil @@ -0,0 +1,21 @@ +( type xyz_t ) + +( type first_t ) +( type first_exec_t ) +( type second_t ) +( type second_exec_t ) +( type third_t ) +( type third_exec_t ) + +( typetransition first_t second_exec_t process second_t ) +( typetransition second_t third_exec_t process third_t ) + +( allow first_t second_exec_t ( file ( getattr open read execute ))) +( allow first_t second_t ( process ( transition ))) +( allow second_t third_exec_t ( file ( getattr open read execute ))) +( allow second_t third_t ( process ( transition ))) + +( allow first_t first_exec_t ( file ( entrypoint ))) +( allow second_t second_exec_t ( file ( entrypoint ))) +( allow third_t third_exec_t ( file ( entrypoint ))) + diff --git a/tests/Sanity/seinfo-consistent-output/Makefile b/tests/Sanity/seinfo-consistent-output/Makefile new file mode 100644 index 0000000..e8bd655 --- /dev/null +++ b/tests/Sanity/seinfo-consistent-output/Makefile @@ -0,0 +1,64 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of Sanity/seinfo-consistent-output +# Description: Check whether different 2 or more runs of same seinfo commands produce same output +# Author: Petr Lautrbach +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=Sanity/seinfo-consistent-output +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Petr Lautrbach " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: Check whether different 2 or more runs of same seinfo commands produce same output" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 5m" >> $(METADATA) + @echo "RunFor: setools" >> $(METADATA) + @echo "Requires: setools-console" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Bug: 2019962" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/Sanity/seinfo-consistent-output/PURPOSE b/tests/Sanity/seinfo-consistent-output/PURPOSE new file mode 100644 index 0000000..3202eb9 --- /dev/null +++ b/tests/Sanity/seinfo-consistent-output/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of Sanity/seinfo-consistent-output +Description: Check whether different 2 or more runs of same seinfo commands produce same output +Author: Petr Lautrbach diff --git a/tests/Sanity/seinfo-consistent-output/main.fmf b/tests/Sanity/seinfo-consistent-output/main.fmf new file mode 100644 index 0000000..1c908d7 --- /dev/null +++ b/tests/Sanity/seinfo-consistent-output/main.fmf @@ -0,0 +1,15 @@ +summary: Check whether different 2 or more runs of same seinfo commands produce same + output +description: '' +contact: Petr Lautrbach +component: + - setools +test: ./runtest.sh +framework: beakerlib +recommend: + - setools-console +duration: 5m +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2019962 +extra-summary: Sanity/seinfo-consistent-output +extra-task: Sanity/seinfo-consistent-output diff --git a/tests/Sanity/seinfo-consistent-output/runtest.sh b/tests/Sanity/seinfo-consistent-output/runtest.sh new file mode 100755 index 0000000..0ad39a7 --- /dev/null +++ b/tests/Sanity/seinfo-consistent-output/runtest.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of Sanity/seinfo-consistent-output +# Description: Check whether different 2 or more runs of same seinfo commands produce same output +# Author: Petr Lautrbach +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="setools-console" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + rlPhaseEnd + + commands=( + "seinfo --all -x" + "seinfo --constrain" + "seinfo --common" + "seinfo -c -x" + "seinfo -r -x" + "seinfo -u -x" + ) + + for c in "${commands[@]}"; do + + rlPhaseStartTest "$c" + rlRun "$c > 1.out" + rlRun "$c > 2.out" + rlRun "cmp 1.out 2.out" 0 + rlPhaseEnd + done + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd