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