From ae84e5ef59bb24d5b8fd17e6756952f42c2d5c36 Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Thu, 23 Feb 2017 08:17:07 +0100
Subject: [PATCH] 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

Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
[Refreshed for 4.3.0]
Signed-off-by: Adam Duskett <aduskett@gmail.com>
[Refreshed for 4.4.2]
---
 sedta                       | 3 ++-
 seinfoflow                  | 5 +++--
 setools/__init__.py         | 4 ++--
 setoolsgui/apol/dta.py      | 2 +-
 setoolsgui/apol/infoflow.py | 2 +-
 tests/test_dta.py           | 2 +-
 tests/test_infoflow.py      | 2 +-
 7 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/sedta b/sedta
index ffd9ede..4c53825 100755
--- a/sedta
+++ b/sedta
@@ -10,6 +10,7 @@ import logging
 import signal
 
 import setools
+import setools.dta
 
 
 def print_transition(trans: setools.DomainTransition) -> None:
@@ -104,7 +105,7 @@ else:
 
 try:
     p = setools.SELinuxPolicy(args.policy)
-    g = setools.DomainTransitionAnalysis(p, reverse=args.reverse, exclude=args.exclude)
+    g = setools.dta.DomainTransitionAnalysis(p, reverse=args.reverse, exclude=args.exclude)
 
     if args.shortest_path or args.all_paths:
         if args.shortest_path:
diff --git a/seinfoflow b/seinfoflow
index 5f4e764..a27b781 100755
--- a/seinfoflow
+++ b/seinfoflow
@@ -5,6 +5,7 @@
 #
 
 import setools
+import setools.infoflow
 import argparse
 import sys
 import logging
@@ -94,8 +95,8 @@ elif args.booleans is not None:
 try:
     p = setools.SELinuxPolicy(args.policy)
     m = setools.PermissionMap(args.map)
-    g = setools.InfoFlowAnalysis(p, m, min_weight=args.min_weight, exclude=args.exclude,
-                                 booleans=booleans)
+    g = setools.infoflow.InfoFlowAnalysis(p, m, min_weight=args.min_weight, exclude=args.exclude,
+                                          booleans=booleans)
 
     if args.shortest_path or args.all_paths:
         if args.shortest_path:
diff --git a/setools/__init__.py b/setools/__init__.py
index ad9b36a..2bde01b 100644
--- a/setools/__init__.py
+++ b/setools/__init__.py
@@ -77,11 +77,11 @@ from .pcideviceconquery import PcideviceconQuery
 from .devicetreeconquery import DevicetreeconQuery
 
 # Information Flow Analysis
-from .infoflow import InfoFlowAnalysis
+# from .infoflow import InfoFlowAnalysis
 from .permmap import PermissionMap, RuleWeight, Mapping
 
 # Domain Transition Analysis
-from .dta import DomainTransitionAnalysis, DomainEntrypoint, DomainTransition
+# from .dta import DomainTransitionAnalysis, DomainEntrypoint, DomainTransition
 
 # Policy difference
 from .diff import PolicyDifference
diff --git a/setoolsgui/apol/dta.py b/setoolsgui/apol/dta.py
index a78d960..e71c70a 100644
--- a/setoolsgui/apol/dta.py
+++ b/setoolsgui/apol/dta.py
@@ -11,7 +11,7 @@ from PyQt5.QtCore import pyqtSignal, Qt, QStringListModel, QThread
 from PyQt5.QtGui import QPalette, QTextCursor
 from PyQt5.QtWidgets import QCompleter, QHeaderView, QMessageBox, QProgressDialog, \
     QTreeWidgetItem
-from setools import DomainTransitionAnalysis
+from setools.dta import DomainTransitionAnalysis
 
 from ..logtosignal import LogHandlerToSignal
 from .analysistab import AnalysisSection, AnalysisTab
diff --git a/setoolsgui/apol/infoflow.py b/setoolsgui/apol/infoflow.py
index fb9b409..738f1b8 100644
--- a/setoolsgui/apol/infoflow.py
+++ b/setoolsgui/apol/infoflow.py
@@ -13,7 +13,7 @@ from PyQt5.QtCore import pyqtSignal, Qt, QStringListModel, QThread
 from PyQt5.QtGui import QPalette, QTextCursor
 from PyQt5.QtWidgets import QCompleter, QHeaderView, QMessageBox, QProgressDialog, \
     QTreeWidgetItem
-from setools import InfoFlowAnalysis
+from setools.infoflow import InfoFlowAnalysis
 from setools.exception import UnmappedClass, UnmappedPermission
 
 from ..logtosignal import LogHandlerToSignal
diff --git a/tests/test_dta.py b/tests/test_dta.py
index 7f9bbc9..48338c5 100644
--- a/tests/test_dta.py
+++ b/tests/test_dta.py
@@ -5,7 +5,7 @@
 import os
 import unittest
 
-from setools import DomainTransitionAnalysis
+from setools.dta import DomainTransitionAnalysis
 from setools import TERuletype as TERT
 from setools.exception import InvalidType
 from setools.policyrep import Type
diff --git a/tests/test_infoflow.py b/tests/test_infoflow.py
index 5a8f745..e25993b 100644
--- a/tests/test_infoflow.py
+++ b/tests/test_infoflow.py
@@ -5,7 +5,7 @@
 import os
 import unittest
 
-from setools import InfoFlowAnalysis
+from setools.infoflow import InfoFlowAnalysis
 from setools import TERuletype as TERT
 from setools.exception import InvalidType
 from setools.permmap import PermissionMap
-- 
2.26.2

