Skip to content

client: fix from-source build/install (cargo profile, portable useradd) - #4234

Merged
martinsander00 merged 3 commits into
malbeclabs:mainfrom
ayushsingh82:fix/client-install-build-issues
Aug 30, 2026
Merged

client: fix from-source build/install (cargo profile, portable useradd)#4234
martinsander00 merged 3 commits into
malbeclabs:mainfrom
ayushsingh82:fix/client-install-build-issues

Conversation

@ayushsingh82

Copy link
Copy Markdown
Contributor

Resolves: #4175

Summary of Changes

  • make build produced target/debug/doublezero (no --release), while make install reads from target/release/doublezero, so every from-source install failed as documented in client/INSTALL.md. CARGO_FLAGS now defaults to --release.
  • install used addgroup/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 portable groupadd/useradd equivalents, 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 needs ExecStartPre fallback plumbing that's disproportionate scope here.

Diff Breakdown

Category Files Lines (+/-) Net
Config/build 1 +3 / -3 +0
Total 1 +3 / -3 +0

Small, targeted fix — one file, two one-line substitutions.

Testing Verification

  • make build (no flags) from client/ now produces client/../target/release/doublezero, matching what make install reads — verified the binary exists at that exact path after a clean build.
  • groupadd/useradd are POSIX-standard and present on both Debian and RHEL (unlike addgroup/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.

@ayushsingh82
ayushsingh82 requested a review from a team August 26, 2026 15:55
@ayushsingh82

Copy link
Copy Markdown
Contributor Author

@armcconnell PR is up: fixes the from-source make build/make install breakage reported in #4175 (cargo profile mismatch + Debian-only addgroup/adduser). Ready for CI.

@ayushsingh82

Copy link
Copy Markdown
Contributor Author

Pushed a CHANGELOG entry (- Client under Unreleased) for the build/install fix. CI hasn't run on this PR yet — the workflow runs are sitting in action_required. @armcconnell could you approve and run workflows when you get a chance?

@elitegreg
elitegreg self-requested a review August 27, 2026 16:54
@martinsander00

Copy link
Copy Markdown
Contributor

/run-e2e

@martinsander00

Copy link
Copy Markdown
Contributor

@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.

@ayushsingh82
ayushsingh82 force-pushed the fix/client-install-build-issues branch from 5f1570d to 95cb2c9 Compare August 28, 2026 04:41
@ayushsingh82

Copy link
Copy Markdown
Contributor Author

@martinsander00 pushed. Both items done:

No content changes beyond the rebase — still the same two-line client/Makefile fix (CARGO_FLAGS?=--release, portable groupadd/useradd) plus the CHANGELOG entry.

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
@ayushsingh82
ayushsingh82 force-pushed the fix/client-install-build-issues branch from 95cb2c9 to 6a311c2 Compare August 28, 2026 04:42
@ayushsingh82

Copy link
Copy Markdown
Contributor Author

@martinsander00 heads up — I force-pushed once more to make the committer email consistent across both commits (--reset-author, both now ayushsinghmi711@...). New SHAs:

  • 6ece5b6d client: fix from-source build/install
  • 6a311c2d client: add CHANGELOG entry

Content is identical to the previous push — same two-line Makefile fix + CHANGELOG entry, rebased on main. Both commits show as Verified, PR is MERGEABLE. Ready for another e2e run whenever.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_FLAGS to --release so make build produces the same artifact path that make install copies.
  • Replace addgroup/adduser with groupadd/useradd in 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.

Comment thread client/Makefile Outdated
@martinsander00

Copy link
Copy Markdown
Contributor

/run-e2e

1 similar comment
@martinsander00

Copy link
Copy Markdown
Contributor

/run-e2e

@martinsander00

Copy link
Copy Markdown
Contributor

@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.
@ayushsingh82
ayushsingh82 force-pushed the fix/client-install-build-issues branch from 751572c to 7318a0c Compare August 30, 2026 16:43
@ayushsingh82

Copy link
Copy Markdown
Contributor Author

@martinsander00 fixed — amended the last commit with an SSH signature and force-pushed. It now shows as verified (7318a0c). No content change. Mind re-running /run-e2e?

@martinsander00

Copy link
Copy Markdown
Contributor

/run-e2e

@martinsander00
martinsander00 merged commit b301fb2 into malbeclabs:main Aug 30, 2026
40 checks passed
@martinsander00

Copy link
Copy Markdown
Contributor

@ayushsingh82 appreciate your help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

client: from-source build fails at make install (cargo profile, Debian-only useradd, systemd version)

4 participants