package-citron-linux.sh:
- Guard patchelf with || true so readelf fallback is reachable under set -e
- Check for zstd binary before tar --zstd, fail with a clear message if missing
- Fix qt.conf Translations path to match actual AppDir layout (lib/qt6/translations)
build-citron-linux.sh:
- Split optional linux-tools packages out of the required apt install block
- Add zstd CLI to all distro setup functions
- Add libXext-devel to zypper X11 block (required by SDL2 CheckX11)
- Always apply patchelf --force-rpath to ensure DT_RUNPATH is never left in place
- Fix Qt translations find to drop hardcoded gcc_64, works for aarch64 now
- Fail fast when CITRON_QT_PATH is empty rather than silently using system Qt
Deleted scripts/CI files:
- Remove AppImage-build-debian-inner.sh, ppImage-build-debian.sh, AppImage-build-local.sh: replaced by AppImageBuilder/package-citron-linux.sh
- Remove AppImageBuilder/build.sh, AppImageBuilder/build-v2.sh: superseded by package-citron-linux.sh
- Remove build-for-mingw.bat, build-for-mingw.sh, fix-pgo-dll.ps1, pgo-build.ps1, pgo-build.sh: obsolete windows/PGO build helpers
- Remove .gitlab-ci.yml: entirely commented-out dead config
build-citron-linux.sh:
- Add ALSA + PulseAudio dev packages as required across all supported package managers (apt, pacman, dnf, yum, zypper, emerge) to encourage Linux audio output to be present in packaged AppImages
AppImageBuilder/package-citron-linux.sh:
- Expand AppDir post-packaging cleanup: remove additional Qt plugin dirs, stale symlinks, and other bloat before the AppImage is assembled
- Add AppImageBuilder/package-citron-linux.sh: full AppImage packaging
script with debloating (strips Qt Multimedia shared FFmpeg ~100 MB),
and produces a tar.zst portable archive alongside the AppImage.
- Add AppImageBuilder/quick-sharun.sh: sharun-based launcher helper.
- Add dist/org.citron_emu.citron.png: application icon for AppImage.
build-citron-linux.sh:
- Add CITRON_USE_QT_MULTIMEDIA=OFF and QT_NO_PRIVATE_MODULE_WARNING=ON
to common cmake args, preventing Qt Multimedia's shared FFmpeg from
being linked at all.
- Guard -mtls-dialect=gnu2 behind an x86_64 check so aarch64 builds
no longer pass an unsupported flag.
- Expand system dependency setup across all package managers (apt,
pacman, dnf, yum, zypper, emerge) to include: libudev, libGL/OpenGL
headers (required by aqt Qt6 cmake even for Vulkan-only builds),
VAAPI/VDPAU hw-accel libs, and X11/XCB libs required by SDL2 and Qt.
CMakeModules/qt_download.cmake:
- Add aarch64 Linux aqt target (linux_arm64 / linux_gcc_arm64) so
Qt is downloaded for the correct host arch on arm64 builders.
- Remove qtmultimedia from aqt --modules download; it is permanently
dead code under Qt6 and was causing recurring CI install warnings.
CMakeLists.txt:
- Make Qt6 Multimedia an optional find_package component, only included
when CITRON_USE_QT_MULTIMEDIA is ON, so the cmake flag is functional.
externals/libusb/CMakeLists.txt:
- Resolve LIBUSB_SRC_DIR via CPM cache variables (LIBUSB_CPM_SOURCE_DIR
or libusb_src_SOURCE_DIR) before falling back to the submodule path,
fixing CPM-sourced libusb builds on Linux.
OpenSSL compiles correctly from source for Windows /Linux native and Linux to Windows cross compiling scenarios
Added -mtls-dialect=gnu2 to linux compile flags
Added commented out -march=native for easy self-compile use.
Fixed linux binary lib path resolution, so running the binaries works without AppImage packaging.