From 648a18bfc447f076d48ae4147d984b8ef56e37aa Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Mon, 30 Jul 2018 16:13:40 +0800
Subject: [PATCH 01/11] comment out selinux

Upstream-Status: Inappropriate [oe specific]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 blivet/flags.py | 5 +++--
 blivet/util.py  | 6 +++++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/blivet/flags.py b/blivet/flags.py
index 1840121..8789390 100644
--- a/blivet/flags.py
+++ b/blivet/flags.py
@@ -20,7 +20,7 @@
 #
 
 import shlex
-import selinux
+#import selinux
 
 
 class Flags(object):
@@ -47,7 +47,8 @@ class Flags(object):
         #
         # enable/disable functionality
         #
-        self.selinux = selinux.is_selinux_enabled()
+        #self.selinux = selinux.is_selinux_enabled()
+        self.selinux = False
         self.multipath = True
         self.dmraid = True
         self.ibft = True
diff --git a/blivet/util.py b/blivet/util.py
index 7334ff6..0f2a995 100644
--- a/blivet/util.py
+++ b/blivet/util.py
@@ -3,7 +3,7 @@ import functools
 import glob
 import itertools
 import os
-import selinux
+#import selinux
 import subprocess
 import re
 import sys
@@ -430,6 +430,8 @@ def get_cow_sysfs_path(dev_path, dev_sysfsPath):
 def match_path_context(path):
     """ Return the default SELinux context for the given path. """
     context = None
+    return context
+
     try:
         context = selinux.matchpathcon(os.path.normpath(path), 0)[1]
     except OSError as e:
@@ -454,6 +456,8 @@ def set_file_context(path, context, root=None):
 
             True if successful, False if not.
     """
+    return False
+
     if root is None:
         root = '/'
 
-- 
2.7.4

