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:

Reply via email to