Skip to content

Fixed --simulate=diff and --simulate symlink reporting (3.27) - #6443

Open
nickanderson wants to merge 3 commits into
cfengine:3.27.xfrom
nickanderson:ENT-14694/3.27
Open

nickanderson wants to merge 3 commits into
cfengine:3.27.xfrom
nickanderson:ENT-14694/3.27

Conversation

@nickanderson

@nickanderson nickanderson commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

Cherry-picks of the --simulate fixes from master:

Tickets: ENT-14694, ENT-14713, ENT-14714

The diff report only ran 'diff -u' on file contents, so a file whose
mode, owner or group changed without its contents was listed with
nothing under it. Permission, owner and group changes are now printed
before the content diff.

Ticket: ENT-14694
Changelog: Title
(cherry picked from commit e55f9d8)
@cf-bottom

Copy link
Copy Markdown

Thank you for submitting a pull request! Maybe @craigcomstock can review this?

When a symlink in the changes chroot replaced a link with a wrong target
or an obstructing file, the diff report read the link from the real
filesystem instead of from the changes chroot. A wrong link showed its
old target with the first characters cut off, and an obstruction showed
"Invalid target" because the original was a regular file.

Ticket: ENT-14713
Changelog: Title
(cherry picked from commit 8d6bc9c)
… path

Symlinks mirrored into the changes chroot point into the chroot, so the
"points to ... not ..." messages for a link with a wrong target showed
the internal '<workdir>/state/<pid>.changes/...' path instead of the
target on the real filesystem.

Ticket: ENT-14714
Changelog: Title
(cherry picked from commit bfb47d7)
@nickanderson nickanderson changed the title Fixed --simulate=diff to report permission and ownership changes (3.27) Fixed --simulate=diff and --simulate symlink reporting (3.27) Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants