Skip to content

Add linux/debian/README.md: packaging overview and headless service - #3799

Merged
pljones merged 1 commit into
jamulussoftware:mainfrom
mcfnord:debian-readme
Jul 30, 2026
Merged

Add linux/debian/README.md: packaging overview and headless service#3799
pljones merged 1 commit into
jamulussoftware:mainfrom
mcfnord:debian-readme

Conversation

@mcfnord

@mcfnord mcfnord commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Requested by @ann0see in #3790 (comment) ("Add a README.md to linux/debian explaining this then").

One new file. Explains what deploy_deb.sh builds from this directory (the two packages and their qmake configs), notes that changelog is generated at build time, and documents jamulus-headless.service: what it runs, as which user, and where to configure it — linking to the server options page on jamulus.io rather than duplicating it.

CHANGELOG: SKIP

🤖 Generated with Claude Code

Comment thread linux/debian/README.md Outdated
`linux/deploy_deb.sh` (run from the repository root) uses this directory to build two packages with `debuild`:

- **jamulus** — the desktop client/server (built with `CONFIG+=noupcasename`).
- **jamulus-headless** — a server-only binary (`CONFIG+=headless serveronly`) with no GUI library dependencies, plus a systemd service.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

noupcasename missing here?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Not missing — rules sets TARGET=jamulus-headless explicitly for that build, which overrides the target name directly (noupcasename only renames the default Jamulusjamulus). Updated the README to spell out both mechanisms so the asymmetry is clear.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks.

I wonder why, though. Unless there's a good reason, we should be consistent. Is TARGET used elsewhere? (I mean, we added noupcasename specifically for Debian, if I remember correctly.)

@mcfnord mcfnord Jul 27, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Note

📡 STAND BY FOR AN LLM-AUTHORED MESSAGE.

TARGET isn't used anywhere else in Jamulus.pro for naming — it's set in exactly two places: the noupcasename block (TARGET = jamulus) and the qmake command line in rules (TARGET=jamulus-headless). A qmake command-line variable always overrides an assignment in the .pro file, so passing TARGET=jamulus-headless on the command line makes noupcasename redundant for that build regardless — it would just get overridden right back. So there's no real inconsistency: noupcasename is the mechanism for the desktop build (there's no better name-changing hook at that call site), and an explicit TARGET= override is the mechanism for headless, because that build wants a completely different binary name, not just a case change. I've trimmed the README line per the suggestion below so it states the facts without asserting a design opinion — happy to spell the reasoning out inline instead if you'd rather have it in the doc than in this thread.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

It might be worth documenting in the Jamulus.pro rather than surfacing it to the debian-specific README. Anyone maintaining Jamulus.pro would need to be aware of the intent.

Probably a separate PR, though, at this point.

@ann0see ann0see added the AI AI generated or potentially AI generated label Jul 21, 2026
Comment thread linux/debian/README.md Outdated
Comment thread linux/debian/README.md Outdated
Comment thread linux/debian/README.md Outdated
@@ -0,0 +1,34 @@
### Debian packaging

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Actually better

Suggested change
### Debian packaging
# Debian packaging

Comment thread linux/debian/README.md Outdated
`linux/deploy_deb.sh` (run from the repository root) uses this directory to build two packages with `debuild`:

- **jamulus** — the desktop client/server (built with `CONFIG+=noupcasename`, which renames the target from `Jamulus` to `jamulus`).
- **jamulus-headless** — a server-only binary (`CONFIG+=headless serveronly` with `TARGET=jamulus-headless`, so `noupcasename` is not needed) with no GUI library dependencies, plus a systemd service.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
- **jamulus-headless** — a server-only binary (`CONFIG+=headless serveronly` with `TARGET=jamulus-headless`, so `noupcasename` is not needed) with no GUI library dependencies, plus a systemd service.
- **jamulus-headless** — a server-only binary (`CONFIG+=headless serveronly` with `TARGET=jamulus-headless`) with no GUI library dependencies, plus a systemd service.

@ann0see ann0see left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Once everything is squashed into one commit I think this is ready.

Documents the Debian packaging layout (jamulus and jamulus-headless
targets), qmake target naming, and how to build and install both
packages, including the headless systemd service.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@pljones pljones added the refactoring Non-behavioural changes, Code cleanup label Jul 30, 2026
@pljones pljones added this to the Release 4.0.0 milestone Jul 30, 2026
@pljones
pljones merged commit 28812bc into jamulussoftware:main Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI AI generated or potentially AI generated refactoring Non-behavioural changes, Code cleanup

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants