1From ae84e5ef59bb24d5b8fd17e6756952f42c2d5c36 Mon Sep 17 00:00:00 2001 2From: rpm-build <rpm-build> 3Date: Thu, 23 Feb 2017 08:17:07 +0100 4Subject: [PATCH] Do not export/use setools.InfoFlowAnalysis and 5 setools.DomainTransitionAnalysis 6 7dta and infoflow modules require networkx which brings lot of dependencies. 8These dependencies are not necessary for setools module itself as it's 9used in policycoreutils. 10 11Therefore it's better to use setools.infoflow.InfoFlowAnalysis and 12setools.dta.DomainTransitionAnalysis and let the package containing 13sedta and seinfoflow to require python3-networkx 14 15Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com> 16[Refreshed for 4.3.0] 17Signed-off-by: Adam Duskett <aduskett@gmail.com> 18[Refreshed for 4.4.2] 19--- 20 sedta | 3 ++- 21 seinfoflow | 5 +++-- 22 setools/__init__.py | 4 ++-- 23 setoolsgui/apol/dta.py | 2 +- 24 setoolsgui/apol/infoflow.py | 2 +- 25 tests/test_dta.py | 2 +- 26 tests/test_infoflow.py | 2 +- 27 7 files changed, 11 insertions(+), 9 deletions(-) 28 29diff --git a/sedta b/sedta 30index ffd9ede..4c53825 100755 31--- a/sedta 32+++ b/sedta 33@@ -10,6 +10,7 @@ import logging 34 import signal 35 36 import setools 37+import setools.dta 38 39 40 def print_transition(trans: setools.DomainTransition) -> None: 41@@ -104,7 +105,7 @@ else: 42 43 try: 44 p = setools.SELinuxPolicy(args.policy) 45- g = setools.DomainTransitionAnalysis(p, reverse=args.reverse, exclude=args.exclude) 46+ g = setools.dta.DomainTransitionAnalysis(p, reverse=args.reverse, exclude=args.exclude) 47 48 if args.shortest_path or args.all_paths: 49 if args.shortest_path: 50diff --git a/seinfoflow b/seinfoflow 51index 5f4e764..a27b781 100755 52--- a/seinfoflow 53+++ b/seinfoflow 54@@ -5,6 +5,7 @@ 55 # 56 57 import setools 58+import setools.infoflow 59 import argparse 60 import sys 61 import logging 62@@ -94,8 +95,8 @@ elif args.booleans is not None: 63 try: 64 p = setools.SELinuxPolicy(args.policy) 65 m = setools.PermissionMap(args.map) 66- g = setools.InfoFlowAnalysis(p, m, min_weight=args.min_weight, exclude=args.exclude, 67- booleans=booleans) 68+ g = setools.infoflow.InfoFlowAnalysis(p, m, min_weight=args.min_weight, exclude=args.exclude, 69+ booleans=booleans) 70 71 if args.shortest_path or args.all_paths: 72 if args.shortest_path: 73diff --git a/setools/__init__.py b/setools/__init__.py 74index ad9b36a..2bde01b 100644 75--- a/setools/__init__.py 76+++ b/setools/__init__.py 77@@ -77,11 +77,11 @@ from .pcideviceconquery import PcideviceconQuery 78 from .devicetreeconquery import DevicetreeconQuery 79 80 # Information Flow Analysis 81-from .infoflow import InfoFlowAnalysis 82+# from .infoflow import InfoFlowAnalysis 83 from .permmap import PermissionMap, RuleWeight, Mapping 84 85 # Domain Transition Analysis 86-from .dta import DomainTransitionAnalysis, DomainEntrypoint, DomainTransition 87+# from .dta import DomainTransitionAnalysis, DomainEntrypoint, DomainTransition 88 89 # Policy difference 90 from .diff import PolicyDifference 91diff --git a/setoolsgui/apol/dta.py b/setoolsgui/apol/dta.py 92index a78d960..e71c70a 100644 93--- a/setoolsgui/apol/dta.py 94+++ b/setoolsgui/apol/dta.py 95@@ -11,7 +11,7 @@ from PyQt5.QtCore import pyqtSignal, Qt, QStringListModel, QThread 96 from PyQt5.QtGui import QPalette, QTextCursor 97 from PyQt5.QtWidgets import QCompleter, QHeaderView, QMessageBox, QProgressDialog, \ 98 QTreeWidgetItem 99-from setools import DomainTransitionAnalysis 100+from setools.dta import DomainTransitionAnalysis 101 102 from ..logtosignal import LogHandlerToSignal 103 from .analysistab import AnalysisSection, AnalysisTab 104diff --git a/setoolsgui/apol/infoflow.py b/setoolsgui/apol/infoflow.py 105index fb9b409..738f1b8 100644 106--- a/setoolsgui/apol/infoflow.py 107+++ b/setoolsgui/apol/infoflow.py 108@@ -13,7 +13,7 @@ from PyQt5.QtCore import pyqtSignal, Qt, QStringListModel, QThread 109 from PyQt5.QtGui import QPalette, QTextCursor 110 from PyQt5.QtWidgets import QCompleter, QHeaderView, QMessageBox, QProgressDialog, \ 111 QTreeWidgetItem 112-from setools import InfoFlowAnalysis 113+from setools.infoflow import InfoFlowAnalysis 114 from setools.exception import UnmappedClass, UnmappedPermission 115 116 from ..logtosignal import LogHandlerToSignal 117diff --git a/tests/test_dta.py b/tests/test_dta.py 118index 7f9bbc9..48338c5 100644 119--- a/tests/test_dta.py 120+++ b/tests/test_dta.py 121@@ -5,7 +5,7 @@ 122 import os 123 import unittest 124 125-from setools import DomainTransitionAnalysis 126+from setools.dta import DomainTransitionAnalysis 127 from setools import TERuletype as TERT 128 from setools.exception import InvalidType 129 from setools.policyrep import Type 130diff --git a/tests/test_infoflow.py b/tests/test_infoflow.py 131index 5a8f745..e25993b 100644 132--- a/tests/test_infoflow.py 133+++ b/tests/test_infoflow.py 134@@ -5,7 +5,7 @@ 135 import os 136 import unittest 137 138-from setools import InfoFlowAnalysis 139+from setools.infoflow import InfoFlowAnalysis 140 from setools import TERuletype as TERT 141 from setools.exception import InvalidType 142 from setools.permmap import PermissionMap 143-- 1442.26.2 145 146