Repository navigation
Automated release Packaging withj guthub acty + arm64 target for macOS - #7
Open
youenchene wants to merge 21 commits into
Open
youenchene wants to merge 21 commits into
youenchene wants to merge 21 commits into
Conversation
…ients macOS support for x86_64-only apps is going away, so CI now produces a single universal .app covering both Apple Silicon and Intel Macs (Qt's official macOS package has shipped universal since Qt 6.2). Linux and Windows client builds are added alongside it so all existing targets get automated builds too, uploaded as workflow artifacts on every push/PR and attached to GitHub Releases on version tags. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Keeps ad-hoc signing for now; leaves a placeholder noting the Apple Developer ID cert + notarytool steps needed to sign for real later. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
aqtinstall cannot resolve Updates.xml for any Qt 6.11.x version on Windows targets, because Qt restructured its Windows repo layout starting at 6.11.0 (added an arm64 cross-compile variant folder). macOS and Linux repos were not restructured, so they stay on 6.11.1. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ortability char indexedImageData[width * height] is a GCC/Clang extension (VLA), not standard C++, and cl.exe rejects it outright. The resulting parse error cascaded into bogus "undeclared identifier" errors for the rest of the translation unit, breaking the Windows CI build. GCC/Clang silently accepted the VLA, so this never surfaced on macOS/Linux. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
__attribute__((packed)) is a GCC/Clang-only extension. cl.exe doesn't recognize it and fails to parse it as an attribute at all, producing "'packed': undeclared identifier" and cascading syntax errors through the rest of the header (and everywhere it's included), which is what broke the Windows CI build. Introduce AMIGA_PACKED / AMIGA_PACKED_STRUCT_BEGIN/END macros that expand to __attribute__((packed)) on GCC/Clang and to #pragma pack(push, 1)/pack(pop) on MSVC, preserving the same tightly-packed wire-format layout needed to parse Amiga .info files on all three compilers. IconType_t's packed attribute is dropped outright since it's never used as a struct field (only as a value type in getType()/setType()), so it has no effect on the parsed layout. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ls logging macros __PRETTY_FUNCTION__ is a GCC/Clang extension and doesn't exist under MSVC, breaking the Windows CI build. __FUNCSIG__ is the MSVC equivalent. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ash is an interactive terminal client built on tcsetattr, STDIN_FILENO, and raw non-blocking read() from termios.h/unistd.h, none of which exist on Windows. It was never built by build_windows_client.ps1 either, so this doesn't remove Windows support that used to work. Porting its raw terminal handling to the Windows Console API would be a separate, larger effort. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ash/main.cpp used POSIX-only termios raw mode, isatty, and fcntl-based non-blocking reads to drive its interactive shell, none of which exist on MSVC. Add a Windows path using conio.h's _getch() for unbuffered, unechoed keystroke reads (which needs no raw-mode toggling), _isatty for the TTY check, and _write for the SIGINT handler. Windows arrow/ function keys arrive as a 0/0xE0-prefixed two-byte sequence instead of an ANSI escape sequence, so they're swallowed in readInteractiveByte() rather than via the POSIX ESC-sequence discard path. Also guard the acp file transfer progress bars' unistd.h include (needed only for the already-guarded ioctl/TIOCGWINSZ terminal-width lookup) so it doesn't pull in a header MSVC doesn't have. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This reverts commit 05acb0e.
Only used for the ioctl/TIOCGWINSZ terminal-width lookup, which is already gated behind #if __linux__ || __APPLE__ a few lines below, but the #include itself was left unconditional, so cl.exe still tried (and failed) to find unistd.h. fileuploader.cpp already guards this correctly; bring filedownloader.cpp in line with it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Same issue as filedownloader.cpp: unistd.h is POSIX-only and must not be included when building with MSVC. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Bridges the project's non-standard ndk32-include/Include_H path expected by Amiga/Makefile onto the standard ndk-include layout produced by `make ndk`. Marked continue-on-error since the resulting binary hasn't been verified on real hardware/FS-UAE yet. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The CI run confirmed github.com/bebbo/amiga-gcc now 404s; the project's canonical home is codeberg.org/bebbo/amiga-gcc. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CI hit a classic parallel-make race: concurrent recursive make jobs generating libnix's export-libnix4.c wrote duplicate stub entries, causing "redefinition of ..." compile errors. Dropping -j makes the one-time toolchain build slower but reliable; actions/cache means it only runs on a cache miss. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
make min (binutils gcc gprof libnix libgcc libnix4.library) fails deterministically, not from -j: upstream's libnix4-support generator emits a duplicate __vfwprintf_total_size stub, breaking export-libnix4.c regardless of parallelism. libnix4.library builds a shared-library variant of libnix that Amiga/Makefile never links against (it uses -noixemul, plain static libnix), so build min's other pieces directly instead of the aggregate target, restoring -j now that the failure is confirmed unrelated to parallel make. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Amiga/Makefile's first (default) target is just the server binary (ApolloExplorerSrv); Willem's own workflow always runs `make all` to also get ApolloExplorerTool. Toolchain now builds cleanly end-to-end (binutils/gcc/libnix/ndk/netinclude/libamiga all succeeded last run), so this was the last blocker before the whole job - and its toolchain cache - can go green. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… Amiga package Same files as the upstream 1.1.3 release 'Amiga Server' folder.
QSettings fallbacks made childGroups() of the static-hosts settings include the global preferences domain (com.apple.* keys -> group 'com'), which was turned into a host named INVALID with no address. Disable fallbacks and skip any group that is not an IP address.
…acks to ApolloExplorer-Amiga/
…e Qt DLLs in the Windows package upload-artifact@v7 archive:false makes the download the package itself. The Windows zip only had the two .exe files: windeployqt now deploys the Qt DLLs, plugins and MSVC runtime into the packaged folder.
Add CI builds for macOS (universal arm64+x86_64), Linux, and Windows
WDrijver
approved these changes
Sep 27, 2026
WDrijver
approved these changes
Sep 27, 2026
Owner
|
This is a wonderful contribution with lots of useful changes. If it is ok, I would like to cherry pick individual changes. |
Contributor
Author
|
No problem. 2 intents in this PR :
|
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.
Because Mac OS 27 will make X86 packages deprecated I use some AI to add :
Test on macos (not on Linux and windows).