0001-Do-not-export-use-setools.InfoFlowAnalysis-and-setoo.patch 4.9 KB

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