← Back to issue list

packages: fix symlink normalization

View original Github issue

Metadata

Project
craft-parts
Number
#215
Type
pull request
State
merged
Author
cmatsuoka
Labels
—
Created
Updated
Closed

Current evaluation

Merged PR #215 (branch cmatsuoka/fix/normalize-symlink-relpath, approved) replaced Path.relative_to() with os.path.relpath() when normalizing stage-package symlinks whose targets traverse parent path components. Landed as commit 45fe13c0, merged in cf1004fc.

Resolution: closed resolved

Reason: PR #215 was approved and merged into main via merge commit cf1004fc ("Merge pull request #215 from cmatsuoka/fix/normalize-symlink-relpath"), with the change itself in commit 45fe13c0. The code in craft_parts/packages/normalize.py now uses os.path.relpath(target, start=root) for symlink normalization, with a comment noting Path.relative_to() fails on non-subpath targets.

Evaluated by: mr-cal-bot

No scores available.

Issue body

Use `os.path.relpath()` instead of `Path.relative_to()` to normalize symlinks requiring parent path components. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com> - [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)? -----

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Merged PR #215 (branch cmatsuoka/fix/normalize-symlink-relpath, approved) replaced Path.relative_to() with os.path.relpath() when normalizing stage-package symlinks whose targets traverse parent path components. Landed as commit 45fe13c0, merged in cf1004fc.
stealth/space-bunny-alpha — closed resolved Merged fix replacing Path.relative_to() with os.path.relpath() to normalize symlinks that traverse parent path components.
stealth/space-bunny-alpha — closed resolved Merged PR #215 in commit 45fe13c0, replacing Path.relative_to() with os.path.relpath() to normalize symlinks requiring parent path components.
stealth/space-bunny-alpha — closed resolved Merged PR #215 via commit cf1004fc (45fe13c0), replacing Path.relative_to() with os.path.relpath() to normalize symlinks requiring parent path components.
qwen/qwen3.6-35b-a3b — — Merged a fix for symlink normalization that replaces Path.relative_to() with os.path.relpath() to correctly resolve parent path components. Approved by reviewer and passed CI checks.
qwen3.6-35b-a3b-mtp-q6 — — Merged a fix for package symlink normalization by replacing Path.relative_to() with os.path.relpath() to correctly resolve parent path components.

Update history

No update history recorded yet.

Related work

  • Related To: canonical/craft-parts#1424 (confidence 25%)

    Later refactor commit cfdabafc ("refactor: use pathlib internally (#1424)") further touched normalize.py, but supersedes rather than resolves this change.

Related issues

Issue Project State Summary Similarity
#217 Release 1.6.1 craft-parts merged Merged release 1.6.1 with staged-package symlink normalization fix from PR #215 (commit 45fe13c0).
71%