selinux-policy-2.eclass: support semodule -b/-i base depending on version
authorJason Zaman <perfinion@gentoo.org>
Sun, 11 Dec 2016 16:16:39 +0000 (00:16 +0800)
committerJason Zaman <perfinion@gentoo.org>
Sun, 11 Dec 2016 19:59:42 +0000 (03:59 +0800)
eclass/selinux-policy-2.eclass

index 692a885b6b37a4c3b7db32f07e35208e4d05dde9..19cfe020d77fa4c3f3d38a941c71be4c79be7338 100644 (file)
@@ -292,11 +292,15 @@ selinux-policy-2_pkg_postinst() {
                semodule -s ${i} -i ${COMMAND}
                if [[ $? -ne 0 ]]; then
                        ewarn "SELinux module load failed. Trying full reload...";
-                       if [ "${i}" == "targeted" ];
-                       then
-                               semodule -s ${i} -b base.pp -i $(ls *.pp | grep -v base.pp);
+                       local COMMAND_base="-i base.pp"
+                       if has_version "<sys-apps/policycoreutils-2.5"; then
+                               COMMAND="-b base.pp"
+                       fi
+
+                       if [[ "${i}" == "targeted" ]]; then
+                               semodule -s ${i} ${COMMAND_base} -i $(ls *.pp | grep -v base.pp);
                        else
-                               semodule -s ${i} -b base.pp -i $(ls *.pp | grep -v base.pp | grep -v unconfined.pp);
+                               semodule -s ${i} ${COMMAND_base} -i $(ls *.pp | grep -v base.pp | grep -v unconfined.pp);
                        fi
                        if [[ $? -ne 0 ]]; then
                                ewarn "Failed to reload SELinux policies."
@@ -311,9 +315,9 @@ selinux-policy-2_pkg_postinst() {
                                ewarn "command finished succesfully."
                                ewarn ""
                                ewarn "To reload, run the following command from within /usr/share/selinux/${i}:"
-                               ewarn "  semodule -b base.pp -i \$(ls *.pp | grep -v base.pp)"
+                               ewarn "  semodule ${COMMAND_base} -i \$(ls *.pp | grep -v base.pp)"
                                ewarn "or"
-                               ewarn "  semodule -b base.pp -i \$(ls *.pp | grep -v base.pp | grep -v unconfined.pp)"
+                               ewarn "  semodule ${COMMAND_base} -i \$(ls *.pp | grep -v base.pp | grep -v unconfined.pp)"
                                ewarn "depending on if you need the unconfined domain loaded as well or not."
                        else
                                einfo "SELinux modules reloaded succesfully."