feat(fscrypt): add fscrypt component and publish to rpm-base - #18370
feat(fscrypt): add fscrypt component and publish to rpm-base#18370Tobias Brick (tobiasb-ms) wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Pull request overview
Adds fscrypt to Azure Linux 4.0 and publishes its runtime packages to rpm-base.
Changes:
- Registers and locks the upstream fscrypt component.
- Adds rendered spec, sources, PAM configuration, and compatibility patches.
- Keeps the Go development subpackage in
rpm-sdk.
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
base/comps/components.toml |
Registers fscrypt. |
base/comps/components-publish-channels.toml |
Configures base and SDK publishing. |
locks/fscrypt.lock |
Pins upstream inputs. |
specs/f/fscrypt/fscrypt.spec |
Defines generated RPM packaging. |
specs/f/fscrypt/fscrypt.pam |
Provides PAM configuration. |
specs/f/fscrypt/423.patch |
Adds Go 1.24 compatibility. |
specs/f/fscrypt/426.patch |
Improves mount-device detection. |
specs/f/fscrypt/sources |
Records the source checksum. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
248fb5e to
bd5f54b
Compare
bd5f54b to
2524baa
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.
Suppressed comments (1)
specs/f/fscrypt/fscrypt.spec:36
- This imports upstream PR 423, which was closed after its
"path: %s"formatting was rejected because it changes errors to the awkwardpath: /dir: ...form. Upstream merged PR 424 instead, usingerrors.Wrapto satisfy Go vet while preserving the existing/dir: ...output. Backport PR 424 rather than PR 423.
Patch0: https://github.com/google/fscrypt/pull/423.patch
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 8 changed files in this pull request and generated no new comments.
Suppressed comments (1)
specs/f/fscrypt/fscrypt.spec:36
- Patch0 imports upstream PR #423, which was closed unmerged because it changes these errors to the awkward
path: /dir: ...form. Upstream merged PR #424 instead; it useserrors.Wrapto satisfy Go 1.24 while preserving the existing/dir: ...message. Please backport #424 rather than shipping the rejected patch, then re-render the component.
Patch0: https://github.com/google/fscrypt/pull/423.patch
|
/azp run |
|
Azure Pipelines: 2 pipeline(s) were filtered out due to trigger conditions. |
1d92c0f to
168a5c7
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 8 changed files in this pull request and generated no new comments.
Suppressed comments (1)
specs/f/fscrypt/fscrypt.spec:50
pam_fscryptinstalls a PAM service that invokespam_unix.so(fscrypt.pam:2), but this subpackage only requiresfscrypt. Its ELF autodependencies can installpam-libs, whilepam_unix.sois shipped by the separate mainpampackage (specs/p/pam/pam.spec:314), so installingpam_fscrypton a minimal system can succeed and then fail authentication at runtime. Add an explicitRequires: pam%{?_isa}to this subpackage through an overlay and re-render the spec.
Requires: %{name}%{?_isa} = %{version}-%{release}
|
/azp run |
|
Azure Pipelines: 2 pipeline(s) were filtered out due to trigger conditions. |
Build pam_fscrypt as c-shared so PAM can load it.
The Fedora spec builds pam_fscrypt with a plain %gobuild (-buildmode=pie).
A Go PIE binary is an ELF executable with DF_1_PIE set, which glibc >= 2.30
refuses to dlopen ("cannot dynamically load position-independent
executable"). Since PAM loads modules via dlopen, the module was
unusable. A spec overlay appends -buildmode=c-shared to that build
(matching upstream's Makefile) so it produces a real, loadable shared
library. Verified: pam_fscrypt.so is an ELF shared object with no
DF_1_PIE flag and dlopen succeeds.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
168a5c7 to
a8c7b17
Compare
|
/azp run |
|
Azure Pipelines: 2 pipeline(s) were filtered out due to trigger conditions. |
Adds the fscrypt component to AZL 4.0 and publishes it to the
rpm-basechannel.fscrypt is a Go/go2rpm package producing:
fscrypt— the CLI for managing filesystem encryption (ext4/f2fs/UBIFSfscrypt)pam_fscrypt— PAM module for unlocking encrypted directories at logingolang-github-google-fscrypt-devel— importable Go sourcesPublish channels
pamalready ships in base). Onlyfscryptis added tobase-packages.golang-github-google-fscrypt-devel(the Go source subpackage) is excepted back torpm-sdk, matching every othergolang-*source library.Validation
golang-*ecosystem;%checkpasses.azldev comp render --check-onlyreports no drift; lock gate passes.AB#22587