Richard W.M. Jones
2017-Mar-06 15:30 UTC
[Libguestfs] [PATCH v2] v2v: Fix invalid regexp in file_contexts file
v1 -> v2: Match more specifically. Rich.
Richard W.M. Jones
2017-Mar-06 15:30 UTC
[Libguestfs] [PATCH v2] v2v: Fix invalid regexp in file_contexts file (RHBZ#1374232).
Instead of just documenting this bug, fix it in the file_contexts file. Replaces commit ad3c8fe7f49c4991e1aa536856a1a408f55d5409. --- customize/SELinux_relabel.ml | 20 ++++++++++++++++++++ v2v/virt-v2v.pod | 11 ----------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/customize/SELinux_relabel.ml b/customize/SELinux_relabel.ml index fa9603c..d3b9325 100644 --- a/customize/SELinux_relabel.ml +++ b/customize/SELinux_relabel.ml @@ -44,6 +44,26 @@ let relabel (g : G.guestfs) let specfile sprintf "/etc/selinux/%s/contexts/files/file_contexts" policy in + (* RHEL 6.2 - 6.5 had a malformed specfile that contained the + * invalid regular expression "/var/run/spice-vdagentd.\pid" + * (instead of "\.p"). This stops setfiles from working on + * the guest. + * + * Because an SELinux relabel writes all over the filesystem, + * it seems reasonable to fix this problem in the specfile + * at the same time. (RHBZ#1374232) + *) + if g#grep ~fixed:true "vdagentd.\\pid" specfile <> [||] then ( + debug "fixing invalid regular expression in %s" specfile; + let old_specfile = specfile ^ "~" in + g#mv specfile old_specfile; + let content = g#read_file old_specfile in + let content + String.replace content "vdagentd.\\pid" "vgagentd\\.pid" in + g#write specfile content; + g#copy_attributes ~all:true old_specfile specfile + ); + (* Relabel everything. *) g#selinux_relabel ~force:true specfile "/"; diff --git a/v2v/virt-v2v.pod b/v2v/virt-v2v.pod index 3d0eada..a5b8e88 100644 --- a/v2v/virt-v2v.pod +++ b/v2v/virt-v2v.pod @@ -789,17 +789,6 @@ can install policycoreutils E<ge> 1.18.1-4.13 before starting the v2v conversion. See also L<https://bugzilla.redhat.com/show_bug.cgi?id=244636> -=head1 RHEL 6 - -=head2 RHEL 6.2 fails with "libguestfs error: selinux_relabel: : Success" - -Conversion of a RHEL 6.2 (exactly) guest will fail because the -C</etc/selinux/targeted/contexts/files> file within the guest contains -a corrupt regular expression. This was fixed in later versions of -RHEL 6, so you will need to update to any version E<ge> 6.3 before -performing the conversion. See also -L<https://bugzilla.redhat.com/show_bug.cgi?id=1374232> - =head1 DEBIAN AND UBUNTU =head2 "warning: could not determine a way to update the configuration of Grub2" -- 2.10.2
Pino Toscano
2017-Mar-06 15:51 UTC
Re: [Libguestfs] [PATCH v2] v2v: Fix invalid regexp in file_contexts file (RHBZ#1374232).
On Monday, 6 March 2017 16:30:45 CET Richard W.M. Jones wrote:> Instead of just documenting this bug, fix it in the file_contexts > file. > > Replaces commit ad3c8fe7f49c4991e1aa536856a1a408f55d5409. > ---LGTM. Thanks, -- Pino Toscano
Apparently Analagous Threads
- [PATCH] v2v: Fix invalid regexp in file_contexts file (RHBZ#1374232).
- Re: [PATCH] v2v: Fix invalid regexp in file_contexts file (RHBZ#1374232).
- [PATCH libguestfs-common 1/2] mlcustomize: Refactor SELinux_relabel code.
- [PATCH v2] v2v: Fix invalid regexp in file_contexts file
- [PATCH libguestfs-common 2/2] mlcustomize: Fall back to autorelabel if specfile does not exist (RHBZ#1828952).