Blame SOURCES/oscap-anaconda-addon-1.2-new_package_groups-PR_128.patch

b9710d
From 1de759e8bcf1caddddfdda59496473ed9b525365 Mon Sep 17 00:00:00 2001
b9710d
From: =?UTF-8?q?Mat=C4=9Bj=20T=C3=BD=C4=8D?= <matyc@redhat.com>
b9710d
Date: Wed, 4 Nov 2020 17:48:35 +0100
b9710d
Subject: [PATCH] Expanded group data to detect more package collisions.
b9710d
b9710d
This should cover RHEL8 OSPP and CIS profiles.
b9710d
---
b9710d
 org_fedora_oscap/rule_handling.py | 16 +++++++++++++++-
b9710d
 1 file changed, 15 insertions(+), 1 deletion(-)
b9710d
b9710d
diff --git a/org_fedora_oscap/rule_handling.py b/org_fedora_oscap/rule_handling.py
b9710d
index 6a3a04e..80d86c7 100644
b9710d
--- a/org_fedora_oscap/rule_handling.py
b9710d
+++ b/org_fedora_oscap/rule_handling.py
b9710d
@@ -40,12 +40,26 @@
b9710d
 __all__ = ["RuleData"]
b9710d
 
b9710d
 
b9710d
+# Mapping of packages to package environments and/or groups that depends on them
b9710d
+# See also https://access.redhat.com/solutions/1201413 how to get group IDs.
b9710d
+# on RHEL8, use e.g. grep -R "<id>" /var/cache/dnf/*
b9710d
 ESSENTIAL_PACKAGES = {
b9710d
     "xorg-x11-server-common": {
b9710d
         "env": ["graphical-server-environment", "workstation-product-environment"],
b9710d
+        "groups": ["workstation-product-environment"],
b9710d
     },
b9710d
     "nfs-utils": {
b9710d
         "env": ["graphical-server-environment", "workstation-product-environment"],
b9710d
+        "groups": ["workstation-product-environment"],
b9710d
+    },
b9710d
+    "tftp": {
b9710d
+        "groups": ["network-server"],
b9710d
+    },
b9710d
+    "abrt": {
b9710d
+        "groups": ["debugging"],
b9710d
+    },
b9710d
+    "gssproxy": {
b9710d
+        "groups": ["file-server"],
b9710d
     },
b9710d
 }
b9710d
 
b9710d
@@ -642,7 +656,7 @@ def _package_is_essential(self, package_name, ksdata_packages):
b9710d
         if package_name in ksdata_packages.packageList:
b9710d
             return True
b9710d
         selected_install_env = ksdata_packages.environment
b9710d
-        if selected_install_env in ESSENTIAL_PACKAGES[package_name].get("env"):
b9710d
+        if selected_install_env in ESSENTIAL_PACKAGES[package_name].get("env", []):
b9710d
             return True
b9710d
         selected_install_groups_names = {g.name for g in ksdata_packages.groupList}
b9710d
         for g in ESSENTIAL_PACKAGES[package_name].get("groups", []):