From cca100a9aae5b555a757ea2f780a09772fa9f16d Mon Sep 17 00:00:00 2001 From: jrd Date: Fri, 17 Jul 2026 22:32:21 +0000 Subject: [PATCH 1/5] Add linux/debian/README.md: packaging overview and headless service Co-Authored-By: Claude Fable 5 --- linux/debian/README.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 linux/debian/README.md diff --git a/linux/debian/README.md b/linux/debian/README.md new file mode 100644 index 0000000000..9eecc3d84f --- /dev/null +++ b/linux/debian/README.md @@ -0,0 +1,34 @@ +### Copyright (c) 2026 + +Author(s): +* The Jamulus Development Team + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see [](https://www.gnu.org/licenses/). + +--- + +# Debian Packaging + +`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. + +Most files here are standard Debian packaging (`control`, `rules`, `copyright`, `*.install`, …). `changelog` is regenerated at build time from the top-level `ChangeLog` — don't edit it by hand. + +## jamulus-headless.service + +Installed to `lib/systemd/system` by the headless package. It runs `/usr/bin/jamulus-headless -s -n` as the unprivileged `jamulus` system user (created in `jamulus-headless.postinst`), restarts on failure, and raises CPU and I/O scheduling priority for real-time audio. + +Start it with `sudo systemctl enable --now jamulus-headless`. To name, publish or otherwise configure the server, adjust the `ExecStart=` options — see https://jamulus.io/wiki/Running-a-Server#server-mode-related-options. From aba7bf5e5422560e7dda7fabc80349f6adec7be5 Mon Sep 17 00:00:00 2001 From: jrd Date: Sat, 18 Jul 2026 22:46:55 +0000 Subject: [PATCH 2/5] Clarify qmake target naming for both packages pljones asked whether noupcasename was missing from the headless package's config line. It is not: rules passes TARGET=jamulus-headless explicitly there, which makes noupcasename redundant. State both target-naming mechanisms in the README so the asymmetry is explained. Co-Authored-By: Claude Fable 5 --- linux/debian/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux/debian/README.md b/linux/debian/README.md index 9eecc3d84f..7766c3bf91 100644 --- a/linux/debian/README.md +++ b/linux/debian/README.md @@ -22,8 +22,8 @@ along with this program. If not, see [](https:// `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. +- **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. Most files here are standard Debian packaging (`control`, `rules`, `copyright`, `*.install`, …). `changelog` is regenerated at build time from the top-level `ChangeLog` — don't edit it by hand. From 59831bab5a794c76a8a0b92d72075bb82313fe09 Mon Sep 17 00:00:00 2001 From: John Dempsey <1750243+mcfnord@users.noreply.github.com> Date: Thu, 23 Jul 2026 09:58:09 -0700 Subject: [PATCH 3/5] Update linux/debian/README.md Co-authored-by: ann0see <20726856+ann0see@users.noreply.github.com> --- linux/debian/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/debian/README.md b/linux/debian/README.md index 7766c3bf91..9c635e72e5 100644 --- a/linux/debian/README.md +++ b/linux/debian/README.md @@ -1,4 +1,4 @@ -### Copyright (c) 2026 +### Debian packaging Author(s): * The Jamulus Development Team From f19b1594c2dc8052a85e5df58c3fea764e9d3f52 Mon Sep 17 00:00:00 2001 From: John Dempsey <1750243+mcfnord@users.noreply.github.com> Date: Thu, 23 Jul 2026 09:58:22 -0700 Subject: [PATCH 4/5] Update linux/debian/README.md Co-authored-by: ann0see <20726856+ann0see@users.noreply.github.com> --- linux/debian/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/debian/README.md b/linux/debian/README.md index 9c635e72e5..6cd3354b1b 100644 --- a/linux/debian/README.md +++ b/linux/debian/README.md @@ -18,7 +18,7 @@ along with this program. If not, see [](https:// --- -# Debian Packaging +## Files in this folder `linux/deploy_deb.sh` (run from the repository root) uses this directory to build two packages with `debuild`: From 643035a4f3397fa4167977d6e708d54b92fa546b Mon Sep 17 00:00:00 2001 From: jrd Date: Thu, 23 Jul 2026 22:07:27 +0000 Subject: [PATCH 5/5] Apply review suggestion: bump title to # Debian packaging Per ann0see's latest review comment (h1 reads better as the page title than the h3 used previously). --- linux/debian/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/debian/README.md b/linux/debian/README.md index 6cd3354b1b..1d72da1465 100644 --- a/linux/debian/README.md +++ b/linux/debian/README.md @@ -1,4 +1,4 @@ -### Debian packaging +# Debian packaging Author(s): * The Jamulus Development Team