Conversation
There was a problem hiding this comment.
Pull request overview
Adds a containerized workflow to build a local monad-services Debian package, including a builder image, packaging script, and systemd unit files under package-private install paths.
Changes:
- Introduces
make deb/make deb-hostflows and supporting Dockerfiles for building.debartifacts. - Adds Debian packaging staging logic (binaries + bundled shared libs + control generation) and versioning via git metadata.
- Adds systemd service units and DEBIAN maintainer scripts into the packaged payload.
Reviewed changes
Copilot reviewed 16 out of 17 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/package-version | Generates Debian version string from last git commit timestamp + short SHA. |
| scripts/build-deb | Stages binaries/libs + Debian metadata and builds the .deb. |
| scripts/build-binaries | Builds release Rust binaries with pinned toolchain/environment. |
| Makefile | Adds targets to build binaries, build builder image, and produce .deb locally or via container. |
| docker/debian-package/Dockerfile | Containerized packaging layer (dpkg tools + patchelf) producing /out artifacts. |
| docker/builder/Dockerfile | Builder toolchain image (Rust + C/C++ deps) for reproducible binary builds. |
| debian/usr/share/doc/monad-services/copyright | Adds Debian copyright metadata. |
| debian/usr/lib/systemd/system/monad-services-*.service | Adds systemd units for the four services pointing to /usr/lib/monad-services/*. |
| debian/DEBIAN/control.in | Control file template with version and computed shlibs depends. |
| debian/DEBIAN/postinst | Maintainer script to reload systemd on configure. |
| debian/DEBIAN/prerm | Maintainer script to stop units on remove/deconfigure. |
| debian/DEBIAN/postrm | Maintainer script to reload/reset-failed units on remove/purge. |
| .gitignore | Ignores dist/ output directory. |
| .dockerignore | Excludes .git, target/, and dist/ from docker build contexts. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
mhumeSF
force-pushed
the
mh/local-deb-packaging
branch
2 times, most recently
from
August 31, 2026 19:53
8e90392 to
7ce6f36
Compare
Everything installs under package-private paths: /usr/lib/monad-services binaries and libraries, monad-services-* units, /etc/default/monad-services config. Debian policy forbids touching /usr/local, and the monad package owns the archive binary and unit names there, so the private paths satisfy policy and let the two packages co-install. The monad user is provisioned outside the package.
Policy 12.5 and 12.7 require both under /usr/share/doc; the changelog is a stub pointing at the git history.
mhumeSF
force-pushed
the
mh/local-deb-packaging
branch
from
August 31, 2026 20:15
7ce6f36 to
c29fce6
Compare
docker/builder carries everything make build needs, mirroring monad-bft; the debian-package layer adds only packaging tools on top.
The release profile sets debug = true, so each unstripped binary is 375 MB against 30 MB stripped. Set STRIP_SYMBOLS=0 to keep the symbols.
mhumeSF
force-pushed
the
mh/local-deb-packaging
branch
from
August 31, 2026 20:25
c29fce6 to
23cb933
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a containerized Debian package build for the archive services. Everything installs under package-private paths (/usr/lib/monad-services, monad-services-* units), so the package follows Debian policy on /usr/local and co-installs with the monad package without conflicts.