feat(packaging): ship crafter-build as a Flatpak with its own toolchain
packaging/flatpak/ holds the manifest for net.catcrafts.CrafterBuild and its side files. The runtime is the Freedesktop Sdk, not the Platform: a build tool needs glibc's headers and crt objects, gcc's libgcc_s, cmake, ninja, git and python at run time. Everything compiler-shaped is ours under /app, built from one LLVM 22.1.8 source tree: clang, lld, libclang, libc++ with its std module, compiler-rt for the host and for wasm32, the WASI sysroot (wasi-sdk 34 in sysroot-only mode, driven by the clang just built) and wasmtime for running the result. One tree means the modules crafter-build builds and the compiler that consumes them cannot drift apart, and the toolchain resolver finds all of it beside the executable with no configuration. The crafter-build module runs the bootstrap, the self-host build and the test suite inside the sandbox, so a Flatpak that installs has passed the suite with the toolchain it ships. CRAFTER_BUILD_MARCH is x86-64-v2 for the shipped binary; user projects keep -march=native. WasmHelloRuns compiles a fixture for wasm32-wasip1 and runs it under wasmtime. The existing wasm tests only inspect generated files, so this is the one that proves the sysroot, the std module for wasm and wasm-ld work together; it skips where the sysroot or wasmtime is missing. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
c3485b7ab1
commit
add30b9a4f
9 changed files with 330 additions and 1 deletions
34
packaging/flatpak/net.catcrafts.CrafterBuild.metainfo.xml
Normal file
34
packaging/flatpak/net.catcrafts.CrafterBuild.metainfo.xml
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- SPDX-License-Identifier: CC0-1.0 -->
|
||||
<component type="console-application">
|
||||
<id>net.catcrafts.CrafterBuild</id>
|
||||
<name>Crafter Build</name>
|
||||
<summary>C++26 modules build system</summary>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>LGPL-3.0-only</project_license>
|
||||
<developer id="net.catcrafts">
|
||||
<name>Catcrafts</name>
|
||||
</developer>
|
||||
<description>
|
||||
<p>
|
||||
A build system for C++26 modules. Project descriptions are C++: a
|
||||
project.cpp constructs a Configuration and returns it, and crafter-build
|
||||
compiles, loads and executes it. The Flatpak carries its own LLVM, so
|
||||
every machine builds with the same clang, lld, libc++ and WASI sysroot.
|
||||
</p>
|
||||
</description>
|
||||
<url type="homepage">https://forgejo.catcrafts.net/Catcrafts/Crafter.Build</url>
|
||||
<url type="bugtracker">https://forgejo.catcrafts.net/Catcrafts/Crafter.Build/issues</url>
|
||||
<url type="vcs-browser">https://forgejo.catcrafts.net/Catcrafts/Crafter.Build</url>
|
||||
<provides>
|
||||
<binary>crafter-build</binary>
|
||||
</provides>
|
||||
<content_rating type="oars-1.1"/>
|
||||
<releases>
|
||||
<release version="2.0.0" date="2026-10-02">
|
||||
<description>
|
||||
<p>First release distributed as a Flatpak, with a bundled LLVM 22 toolchain and WASI sysroot. Windows host support is removed; crafter-build gains --version and resolves its compiler from one place.</p>
|
||||
</description>
|
||||
</release>
|
||||
</releases>
|
||||
</component>
|
||||
Loading…
Reference in a new issue