1
0

10 Commits

Author SHA1 Message Date
aki
ce6af21c1c build(manifest): Add module headers to fix missing module header errors 2025-05-07 04:31:58 +08:00
aki
2aa5a6e8f6 build(manifest): Logging part 2 2025-05-07 04:21:56 +08:00
aki
26d41667a6 fix(manifest): Correct Skia installation paths the path Aseprite expects 2025-05-07 04:11:39 +08:00
aki
1b1ebf70a7 fix(manifest): Add logging for Skia build output and include dir structure to try and fix build errors 2025-05-07 03:53:42 +08:00
aki
9ef60e4efb fix(manifest): Update depot_tools installation to preserve file attributes as a fix 2025-05-07 03:39:03 +08:00
aki
1448804f42 fix(manifest): Ensure depot_tools directory has correct permissions 2025-05-07 03:29:59 +08:00
aki
1b4744024b fix(Dockerfile, Makefile, manifest): Address user/group ID mapping and attempt to resolve ninja errors 2025-05-07 03:04:41 +08:00
aki
5a4239dd9e fix(manifest): Attmept at handling library 2025-05-07 01:55:48 +08:00
aki
a0506f94a3 fix(manifest): Fix the build process by extracting and installing static libraries from Skia 2025-05-07 01:48:30 +08:00
aki
b0479bfbf4 feat: Implement Flatpak build system using flatpak-builder in Docker
This commit replaces the previous multi-distribution Docker build system with a unified Flatpak build process executed inside a Docker container. This is the intended final architecture for building Aseprite bundles.

**Key Changes:**

*   **Transition to Flatpak:** The core build logic now uses `flatpak-builder` and a Flatpak manifest (`com.aseprite.Aseprite.yaml`) to compile Aseprite and its dependencies against a standard Flatpak SDK runtime.
*   **Unified Docker Environment:** Replaced distribution-specific `Dockerfile.<distro>` files with a single `Dockerfile` that sets up a consistent environment containing `flatpak-builder` and the necessary Flatpak SDK.
*   **Simplified Makefile:** Removed OS detection logic and multi-distro targets. The Makefile now orchestrates:
    1.  Running `prepare_sources.sh` on the host (still responsible for reliable source fetching/syncing).
    2.  Building the single Flatpak builder Docker image.
    3.  Running `flatpak-builder` inside a *privileged* container (required for `flatpak-builder` sandboxing) to perform the actual build.
    4.  Running `flatpak build-bundle` inside the container.
    5.  Extracting the final `.flatpak` bundle from the container to `./target/aseprite.flatpak`.
*   **Updated .gitignore:** Added `build/`, `target/`, `*.flatpak`, and `*.log` to ignore Flatpak build directories, output bundles, and logs. Removed the old `dependencies` ignore pattern.
*   **Prepare Sources Update:** Modified `prepare_sources.sh` to explicitly initialize `depot_tools` on the host, as this is required before sources are copied into the Flatpak build environment for `gn` usage.
*   **Removal of Old Files:** Deleted `Dockerfile.<distro>`, `Dockerfile.debian`, `Dockerfile.fedora`, `Dockerfile.arch` (multi-distro Dockerfiles), and the original generic `Dockerfile` and `docker-compose.yml`.

**Rationale:**

This refactor moves to the planned final architecture. Building within a Flatpak SDK provides a highly consistent environment independent of the host Linux distribution. The output is a portable `.flatpak` bundle, simplifying distribution and runtime compatibility compared to dynamically linking against varied host libraries. While `prepare_sources.sh` on the host still handles the initial (and potentially rate-limited) source fetching, the subsequent build process is significantly standardized and more reliable.

This architecture is now the **forward-maintained** build method.
2025-05-06 17:02:01 +08:00