From: Zac Medico Date: Thu, 17 Dec 2009 02:20:58 +0000 (-0000) Subject: Bug #286497 - Make setexec() warn/nonfatal in permissive mode. Thanks to X-Git-Tag: v2.2_rc60~2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=802efcc73d0636964a76ae70ea96f2aaf9e5b089;p=portage.git Bug #286497 - Make setexec() warn/nonfatal in permissive mode. Thanks to Chris PeBenito for this patch. svn path=/main/trunk/; revision=15100 --- diff --git a/pym/portage/_selinux.py b/pym/portage/_selinux.py index d013fa969..5367afc9c 100644 --- a/pym/portage/_selinux.py +++ b/pym/portage/_selinux.py @@ -8,8 +8,10 @@ import os import shutil from portage import _encodings +from portage import _unicode_decode from portage import _unicode_encode from portage.localization import _ +from portage.util import writemsg import selinux from selinux import is_selinux_enabled @@ -70,7 +72,14 @@ def settype(newtype): def setexec(ctx="\n"): ctx = _unicode_encode(ctx, encoding=_encodings['content'], errors='strict') if selinux.setexeccon(ctx) < 0: - raise OSError(_("setexec: Failed setting exec() context \"%s\".") % ctx) + ctx = _unicode_decode(ctx, encoding=_encodings['content'], + errors='replace') + if selinux.security_getenforce() == 1: + raise OSError(_("Failed setting exec() context \"%s\".") % ctx) + else: + writemsg("!!! " + \ + _("Failed setting exec() context \"%s\".") % ctx, \ + noiselevel=-1) def setfscreate(ctx="\n"): ctx = _unicode_encode(ctx,