client: fix from-source build/install (cargo profile, portable useradd) - #4234
Conversation
|
@armcconnell PR is up: fixes the from-source |
|
Pushed a CHANGELOG entry ( |
|
/run-e2e |
|
@ayushsingh82 tag me when you push a new commit with the changelog conflicts fixed. Also I believe you will need to sign all of your commits with a gpg key. |
5f1570d to
95cb2c9
Compare
|
@martinsander00 pushed. Both items done:
No content changes beyond the rebase — still the same two-line |
make build produced target/debug/doublezero while make install read from target/release, so every from-source install failed. addgroup/adduser are Debian-only and don't exist on the RPM distros in the support matrix; groupadd/useradd are the portable equivalents. Fixes malbeclabs#4175
95cb2c9 to
6a311c2
Compare
|
@martinsander00 heads up — I force-pushed once more to make the committer email consistent across both commits (
Content is identical to the previous push — same two-line Makefile fix + CHANGELOG entry, rebased on |
There was a problem hiding this comment.
Pull request overview
This pull request fixes the client from-source build and install flow in client/ by making the default Cargo build profile match what make install expects, and by replacing Debian-specific user/group helpers with more widely available Linux tools.
Changes:
- Default
CARGO_FLAGSto--releasesomake buildproduces the same artifact path thatmake installcopies. - Replace
addgroup/adduserwithgroupadd/useraddin the install target for better cross-distro support. - Add a changelog entry describing the from-source install fix.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
client/Makefile |
Aligns build and install output paths and switches to portable user/group creation commands. |
CHANGELOG.md |
Documents the from-source build/install fix for the client. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
/run-e2e |
1 similar comment
|
/run-e2e |
|
@ayushsingh82 last commit wasn't signed |
/usr/sbin/nologin is Debian-specific; RPM distros ship it at /sbin/nologin. /bin/false is present at the same path everywhere and still denies login.
751572c to
7318a0c
Compare
|
@martinsander00 fixed — amended the last commit with an SSH signature and force-pushed. It now shows as verified ( |
|
/run-e2e |
|
@ayushsingh82 appreciate your help! |
Resolves: #4175
Summary of Changes
make buildproducedtarget/debug/doublezero(no--release), whilemake installreads fromtarget/release/doublezero, so every from-source install failed as documented inclient/INSTALL.md.CARGO_FLAGSnow defaults to--release.installusedaddgroup/adduser, which are Debian-only wrappers and don't exist on the RPM distros (RHEL/Rocky) that are in the documented support matrix. Replaced with the portablegroupadd/useraddequivalents, which exist on both.Left the systemd
RuntimeDirectory=/StateDirectory=(requires systemd >= 235) item from the issue untouched — the reporter flagged it as lower priority since affected distros are mostly outside the support matrix, and a real fix needsExecStartPrefallback plumbing that's disproportionate scope here.Diff Breakdown
Small, targeted fix — one file, two one-line substitutions.
Testing Verification
make build(no flags) fromclient/now producesclient/../target/release/doublezero, matching whatmake installreads — verified the binary exists at that exact path after a clean build.groupadd/useraddare POSIX-standard and present on both Debian and RHEL (unlikeaddgroup/adduser, which are Debian-only), so the install-target change is portable by construction; not exercised end-to-end since that requires root on a real Debian/RHEL host.