tl;dr typalias (and possibly typealiasactual) statement does not like periods systemd plans to consolidate systemd-udevd and udevadm and so I was looking to consolidate the policy. For compatibility I wanted to add a (typealias .udev.udevadm.exec) and (typealiasactual .udev.udevadm.exec .udev.daemon.exec) That reminded me that it does not like the period name space delimiter in at least the typealias statement. Example: [root@brutus ~]# echo "(block test (type test1) (typealias test2.test1) (typealiasactual test2.test1 test.test1))" > mytest.cil [root@brutus ~]# semodule -vvv -i mytest.cil <snip> Building AST from Parse Tree Invalid character "." in test2.test1 Invalid name Failed to create node Bad typealias declaration at /var/lib/selinux/mydssp3-mcs/tmp/modules/400/mytest/cil:1 Problem at /var/lib/selinux/mydssp3-mcs/tmp/modules/400/mytest/cil:1 Failed to build ast semodule: Failed! -- gpg --locate-keys dominick.grift@xxxxxxxxxxx Key fingerprint = FCD2 3660 5D6B 9D27 7FC6 E0FF DA7E 521F 10F6 4098 https://sks-keyservers.net/pks/lookup?op=get&search=0xDA7E521F10F64098 Dominick Grift