Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package setools for openSUSE:Factory checked in at 2022-09-07 11:05:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/setools (Old) and /work/SRC/openSUSE:Factory/.setools.new.2083 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "setools" Wed Sep 7 11:05:22 2022 rev:41 rq:1001362 version:4.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/setools/setools.changes 2022-02-25 21:24:48.059635479 +0100 +++ /work/SRC/openSUSE:Factory/.setools.new.2083/setools.changes 2022-09-07 11:05:23.392307888 +0200 @@ -1,0 +2,6 @@ +Fri Sep 2 09:24:56 UTC 2022 - Johannes Segitz <[email protected]> + +- Added README.SUSE and drop recommend for python3-networkx altogether + (bsc#1202676) + +------------------------------------------------------------------- @@ -4 +10 @@ -- Add make-networkx-optional.patch to cut down installation requirements +- Add make_networkx_optional.patch to cut down installation requirements Old: ---- make-networkx-optional.patch New: ---- README.SUSE make_networkx_optional.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ setools.spec ++++++ --- /var/tmp/diff_new_pack.EjSr4o/_old 2022-09-07 11:05:23.920309230 +0200 +++ /var/tmp/diff_new_pack.EjSr4o/_new 2022-09-07 11:05:23.924309239 +0200 @@ -33,8 +33,9 @@ License: GPL-2.0-only Group: System/Management Source: https://github.com/SELinuxProject/setools/releases/download/%{version}/%{name}-%{version}.tar.bz2 +Source2: README.SUSE # PATCH-FIX-UPSTREAM https://github.com/SELinuxProject/setools/pull/68 -Patch1: make-networkx-optional.patch +Patch1: make_networkx_optional.patch BuildRequires: fdupes BuildRequires: libselinux-devel BuildRequires: libsepol-devel @@ -75,7 +76,6 @@ License: LGPL-2.0-only Group: Development/Languages/Python Requires: python3 >= 3.4 -Recommends: python3-networkx Obsoletes: python-setools < %{version}-%{release} Provides: python-setools = %{version}-%{release} %if "%{python3_primary_provider}" != "python3" @@ -112,12 +112,15 @@ %install %python_install +install -m 644 -D %{SOURCE2} %{buildroot}%{_docdir}/%{name}/README.SUSE %fdupes -s %{buildroot}%{python3_sitearch} %files -n %{python3_primary_provider}-setools %defattr(-,root,root,-) %{python3_sitearch}/setools %{python3_sitearch}/setools-%{version}*-info +%dir %{_docdir}/%{name}/ +%{_docdir}/%{name}/* %files console %defattr(-,root,root,-) ++++++ README.SUSE ++++++ Additional functionality for these tools can be gained by installing python3-networkx. This pulls in many dependencies and is not needed for most people, therefor it's not required or recommended due to the size of the required dependencies ++++++ make_networkx_optional.patch ++++++ >From 716a1d9e1db6701c0b310dd7e10dc4a10656da0f Mon Sep 17 00:00:00 2001 From: Chris PeBenito <[email protected]> Date: Tue, 14 Dec 2021 14:24:20 -0500 Subject: [PATCH] Make NetworkX optional. 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 <[email protected]> --- setools/dta.py | 18 ++++++++++++++---- setools/infoflow.py | 17 +++++++++++++---- 2 files changed, 27 insertions(+), 8 deletions(-) Index: setools/setools/dta.py =================================================================== --- setools.orig/setools/dta.py +++ setools/setools/dta.py @@ -24,8 +24,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 @@ -87,8 +90,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: Index: setools/setools/infoflow.py =================================================================== --- setools.orig/setools/infoflow.py +++ setools/setools/infoflow.py @@ -21,8 +21,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 @@ -68,8 +71,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:
