diff --git a/.gitignore b/.gitignore index 282a656..f4c80ed 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ setools-3.3.8-f1e5b20.tar.bz2 /16c0696.tar.gz /4.4.0.tar.gz /4.4.1.tar.gz +/4.4.2.tar.gz diff --git a/0001-Make-NetworkX-optional.patch b/0001-Make-NetworkX-optional.patch deleted file mode 100644 index c573d45..0000000 --- a/0001-Make-NetworkX-optional.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 716a1d9e1db6701c0b310dd7e10dc4a10656da0f Mon Sep 17 00:00:00 2001 -From: Chris PeBenito -Date: Tue, 14 Dec 2021 14:24:20 -0500 -Subject: [PATCH] Make NetworkX optional. -Content-type: text/plain - -The CLI tools get installed to most distros, but sedta and seinfoflow are -not typically used or separated into a different package. This will allow -seinfo, sesearch, and sediff to function if NetworkX is missing, since they -don't require it. - -Signed-off-by: Chris PeBenito ---- - setools/dta.py | 18 ++++++++++++++---- - setools/infoflow.py | 17 +++++++++++++---- - 2 files changed, 27 insertions(+), 8 deletions(-) - -diff --git a/setools/dta.py b/setools/dta.py -index ce5a36463684..ded88ff4f615 100644 ---- a/setools/dta.py -+++ b/setools/dta.py -@@ -10,8 +10,11 @@ from collections import defaultdict - from contextlib import suppress - from typing import DefaultDict, Iterable, List, NamedTuple, Optional, Union - --import networkx as nx --from networkx.exception import NetworkXError, NetworkXNoPath, NodeNotFound -+try: -+ import networkx as nx -+ from networkx.exception import NetworkXError, NetworkXNoPath, NodeNotFound -+except ImportError: -+ logging.getLogger(__name__).debug("NetworkX failed to import.") - - from .descriptors import EdgeAttrDict, EdgeAttrList - from .policyrep import AnyTERule, SELinuxPolicy, TERuletype, Type -@@ -73,8 +76,15 @@ class DomainTransitionAnalysis: - self.reverse = reverse - self.rebuildgraph = True - self.rebuildsubgraph = True -- self.G = nx.DiGraph() -- self.subG = self.G.copy() -+ -+ try: -+ self.G = nx.DiGraph() -+ self.subG = self.G.copy() -+ except NameError: -+ self.log.critical("NetworkX is not available. This is " -+ "requried for Domain Transition Analysis.") -+ self.log.critical("This is typically in the python3-networkx package.") -+ raise - - @property - def reverse(self) -> bool: -diff --git a/setools/infoflow.py b/setools/infoflow.py -index 0ef240a9993f..4b94a0c2d6dd 100644 ---- a/setools/infoflow.py -+++ b/setools/infoflow.py -@@ -7,8 +7,11 @@ import logging - from contextlib import suppress - from typing import cast, Iterable, List, Mapping, Optional, Union - --import networkx as nx --from networkx.exception import NetworkXError, NetworkXNoPath, NodeNotFound -+try: -+ import networkx as nx -+ from networkx.exception import NetworkXError, NetworkXNoPath, NodeNotFound -+except ImportError: -+ logging.getLogger(__name__).debug("NetworkX failed to import.") - - from .descriptors import EdgeAttrIntMax, EdgeAttrList - from .permmap import PermissionMap -@@ -54,8 +57,14 @@ class InfoFlowAnalysis: - self.rebuildgraph = True - self.rebuildsubgraph = True - -- self.G = nx.DiGraph() -- self.subG = self.G.copy() -+ try: -+ self.G = nx.DiGraph() -+ self.subG = self.G.copy() -+ except NameError: -+ self.log.critical("NetworkX is not available. This is " -+ "requried for Information Flow Analysis.") -+ self.log.critical("This is typically in the python3-networkx package.") -+ raise - - @property - def min_weight(self) -> int: --- -2.39.1 - diff --git a/1003-Require-networkx-on-package-level.patch b/1003-Require-networkx-on-package-level.patch deleted file mode 100644 index 99eb500..0000000 --- a/1003-Require-networkx-on-package-level.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 7b73bdeda54b9c944774452bfa3b3c1f2733b3f0 Mon Sep 17 00:00:00 2001 -From: Petr Lautrbach -Date: Thu, 2 Apr 2020 16:06:14 +0200 -Subject: [PATCH 2/2] Require networkx on package level - -It allows us to ship python3-setools without dependency on python3-networkx ---- - setup.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/setup.py b/setup.py -index c593b786cc61..0551811e3fd1 100644 ---- a/setup.py -+++ b/setup.py -@@ -163,5 +163,5 @@ setup(name='setools', - # setup also requires libsepol and libselinux - # C libraries and headers to compile. - setup_requires=['setuptools', 'Cython>=0.27'], -- install_requires=['setuptools', 'networkx>=2.0'] -+ install_requires=['setuptools'] - ) --- -2.30.0 - diff --git a/setools.spec b/setools.spec index 6c9edaf..72ab55b 100644 --- a/setools.spec +++ b/setools.spec @@ -1,8 +1,8 @@ -%global sepol_ver 3.4-1 -%global selinux_ver 3.4-1 +%global sepol_ver 3.5-1 +%global selinux_ver 3.5-1 Name: setools -Version: 4.4.1 +Version: 4.4.2 Release: 1%{?dist} Summary: Policy analysis tools for SELinux @@ -11,8 +11,6 @@ URL: https://github.com/SELinuxProject/setools/wiki Source0: https://github.com/SELinuxProject/setools/archive/%{version}.tar.gz Source1: setools.pam Source2: apol.desktop -Patch0001: 0001-Make-NetworkX-optional.patch -Patch1003: 1003-Require-networkx-on-package-level.patch Obsoletes: setools < 4.0.0, setools-devel < 4.0.0 BuildRequires: flex, bison BuildRequires: glibc-devel, gcc, git-core @@ -145,6 +143,9 @@ Python modules designed to facilitate SELinux policy analysis. %{_mandir}/ru/man1/apol* %changelog +* Thu Apr 20 2023 Petr Lautrbach - 4.4.2-1 +- SETools 4.4.2 release + * Mon Feb 6 2023 Petr Lautrbach - 4.4.1-1 - SETools 4.4.1 release diff --git a/sources b/sources index f46a001..361fad1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (4.4.1.tar.gz) = 1a3091f3f3f8ad6a7a550618b07ed72d5337c63a38df762663a8df3b79c0f1a29c85abf43db814f730fd637cc432db27e8b12ea7ca3b504d80154f4eea3f7f7e +SHA512 (4.4.2.tar.gz) = b5117c5de1503e25183c2a1af92cd015320dd37e0cf26b8e09bd5d0ff879734d2f9c301def2a40b476c1ed1960f9ee04ae13b284df73f39f743004104ac85fb1