macOS: CONFIG+=serveronly needs two changes, not one
维护者通常 5 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 78/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- cpp, macos
- 领域
- build-system
调研方向
从 Jamulus.pro 中的 macx 源文件列表和现有的 serveronly 条件开始,然后查看 COMPILING.md 中的编译时参数表和 Linux 示例。在 macOS 上使用 CONFIG+=serveronly CONFIG+=headless 运行 qmake,并验证 server-only 构建能够正确链接,且 Jamulus.app/Contents/MacOS/Jamulus --version 以服务器模式启动。更新文档,准确描述 macOS 支持和相关选项。
由索引模型根据 Issue 内容生成。
描述
🤖 AI: #2551 left macOS out of CONFIG+=serveronly with an open invitation — "The MacOS build might be feasible but there were the bundle options already there and I've no way to check what's going on with the MacOS build. If someone else wants to have a go at that, add DEFINES += SERVER_ONLY and see if it works." Now it is run on a Mac, at c862872e, macOS 12.7.6, Qt 5.15.2, command-line qmake+make, x86_64.
That change does most of it, and is not sufficient. With DEFINES += SERVER_ONLY added to the macx branch and nothing else, the define reaches every compile line and all 15 client-side undefined symbols go away. Nine remain, and every one of them is CSoundBase:
$ qmake Jamulus.pro CONFIG+=serveronly CONFIG+=headless && make -j2
Project MESSAGE: Restricting build to server-only due to CONFIG+=serveronly.
Project MESSAGE: Using CoreAudio.
[...]
Undefined symbols for architecture x86_64:
"CSoundBase::ReinitRequest(int)", referenced from:
CSound::deviceNotification(unsigned int, unsigned int, AudioObjectPropertyAddress const*, void*) in sound.o
"CSoundBase::staticMetaObject", referenced from:
CSound::staticMetaObject in moc_sound.o
"vtable for CSoundBase", referenced from:
CSoundBase::~CSoundBase() in sound.o
[6 further CSoundBase symbols, 9 in total]
ld: symbol(s) not found for architecture x86_64
The nine come from the second difference between the branches: the macx branch adds coreaudio-mac/sound.cpp unconditionally, while soundbase.cpp is stripped platform-independently — so CSound is compiled without its base class. win32 does not hit this because its ASIO sources sit inside the else-branch of its own serveronly test. So macOS needs two changes, not one: the missing define, and a serveronly guard around the CoreAudio sources. With both, a plain CONFIG+=serveronly CONFIG+=headless build links and runs:
$ qmake Jamulus.pro CONFIG+=serveronly CONFIG+=headless && make -j2
Project MESSAGE: Restricting build to server-only due to CONFIG+=serveronly.
Project MESSAGE: Server-only build: skipping CoreAudio.
[...]
$ Jamulus.app/Contents/MacOS/Jamulus --version
- Starting in server mode by default (due to compile time option)
*** Jamulus, Version 3.12.4dev-nogit
With neither change the option half-applies rather than being ignored: five platform-independent !contains(CONFIG, "serveronly") blocks strip client sources while SERVER_ONLY stays undefined, and the link fails with 24 undefined symbols.
No released artifact is affected: the macOS server app is built by mac/deploy_mac.sh with CONFIG+=server_bundle alone, which keeps both sound files — built at the same commit here, 0 errors, JamulusServer starts in server mode.
Documentation is affected either way: the compile-time arguments table marks server_bundle "macOS only" and jackonmac "on macOS", while serveronly carries no platform qualifier and its one worked example, qmake "CONFIG+=headless serveronly", sits under ## Linux.
🤖 This message was written by AI and reviewed by @mcfnord.
- 主要语言
- C
- 星标
- 1.1k
- 派生
- 248
- 平均合并
- 7 天 4 小时
- 30 天内合并 PR
- 5
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
jamulussoftware/jamulus 的其他 Issue
-
Move translation checker (and potentially other runners) to ARM runner可能已有人在做 @ann0see 于 22 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 75/100
jamulussoftware/jamulus#3953 · 2 条评论 ·
维护者通常 5 天内回复
-
Reused channel slot records the previous occupant's audio可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭AI bug
难度 2/5 1-3 小时 新手友好度 82/100
jamulussoftware/jamulus#3901 · 4 条评论 · 1 个 reaction ·
维护者通常 5 天内回复
-
AI
难度 2/5 1-3 小时 新手友好度 78/100
jamulussoftware/jamulus#3846 ·
维护者通常 5 天内回复
-
feature request
难度 5/5 一周以上 新手友好度 25/100
jamulussoftware/jamulus#3964 · 3 条评论 ·
维护者通常 5 天内回复
-
难度 3/5 1-2 天 新手友好度 65/100
jamulussoftware/jamulus#3961 ·
维护者通常 5 天内回复
查看 jamulussoftware/jamulus 的全部 Issue
相似的 Issue
-
area:http-gateway good first issue priority:low type:docs
难度 2/5 1-3 小时 新手友好度 88/100
crazy-goat/php-fpm-ng#828 ·
维护者通常 1 天内回复
-
area:docs good first issue type:docs
难度 1/5 1 小时以内 新手友好度 92/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
-
CVE-2026-18839 popt: size_t underflow in `singleOptionHelp`可能已有人在做 @pmatilai 于 34 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 70/100
rpm-software-management/popt#143 ·
-
难度 1/5 1 小时以内 新手友好度 85/100