macOS: CONFIG+=serveronly needs two changes, not one
Maintainer thường phản hồi trong vòng 5 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 78/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- cpp, macos
- Lĩnh vực
- build-system
Hướng nghiên cứu
Bắt đầu trong Jamulus.pro với danh sách mã nguồn macx và các điều kiện serveronly hiện có, sau đó xem lại bảng đối số tại thời điểm biên dịch và ví dụ Linux trong COMPILING.md. Chạy qmake với CONFIG+=serveronly CONFIG+=headless trên macOS và xác minh rằng bản build server-only được liên kết thành công, đồng thời Jamulus.app/Contents/MacOS/Jamulus --version khởi động ở chế độ máy chủ. Cập nhật tài liệu để mô tả chính xác việc hỗ trợ macOS và các tùy chọn liên quan.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
🤖 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.
- Ngôn ngữ chính
- C
- Star
- 1.1k
- Fork
- 248
- Merge trung bình
- 9 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 5
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của jamulussoftware/jamulus
-
Move translation checker (and potentially other runners) to ARM runnerCó thể đã có người làm @ann0see đã nhận 26 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
jamulussoftware/jamulus#3953 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 5 ngày
-
AI
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
jamulussoftware/jamulus#3846 ·
Maintainer thường phản hồi trong vòng 5 ngày
-
Qt6 moving towards cmakeĐang mởfeature request
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
jamulussoftware/jamulus#3964 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 5 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 65/100
jamulussoftware/jamulus#3961 ·
Maintainer thường phản hồi trong vòng 5 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 76/100
jamulussoftware/jamulus#3958 ·
Maintainer thường phản hồi trong vòng 5 ngày
Tất cả issue của jamulussoftware/jamulus
Issue tương tự
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 76/100
SteamGridDB/SGDBoop#147 ·
-
Doc: insert executor and incremental consolidation leave sorted runs, not globally sorted headsĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 83/100
semantic-reasoning/wirelog#2133 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
backlog
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
EchoTools/nevr-runtime#454 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
initramfs: -type f (#18686) skips the libcurl.so.4 symlink, libcurl no longer copied into initramfsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày