fix(ci): clone submodule content in rattler-build package #376

Merged
forbes merged 1 commits from fix/rattler-build-submodules into main 2026-03-03 14:30:18 +00:00
Owner

Summary

Fixes the release build (AppImage) failure where cmake --install fails because rattler-build's source.path copy does not include submodule contents.

Root Cause

The recipe.yaml uses source.path: ../.. with use_gitignore: true. When rattler-build copies the source tree, submodule directories (mods/silo/, mods/solver/, mods/gears/, mods/datums/) end up empty — their contents are not resolved from the gitlink references. This causes cmake --install to fail when it tries to install files from those paths.

The failure was observed at the silo addon install step (after successfully installing silo tree-node icons from src/Mod/Create/resources/).

Changes

  • package/rattler-build/build.sh — Add clone_if_empty helper that detects empty submodule directories and shallow-clones them from their remotes before CMake runs
  • package/rattler-build/recipe.yaml — Add git to build requirements

Affected submodules

Directory Remote
mods/silo kindred/silo-mod.git
mods/solver kindred/solver.git
mods/gears kindred/gears.git
mods/datums kindred/datums.git

The clone is skipped if the directory already has content (e.g. when building locally with submodules initialized).

## Summary Fixes the release build (AppImage) failure where `cmake --install` fails because rattler-build's `source.path` copy does not include submodule contents. ## Root Cause The `recipe.yaml` uses `source.path: ../..` with `use_gitignore: true`. When rattler-build copies the source tree, submodule directories (`mods/silo/`, `mods/solver/`, `mods/gears/`, `mods/datums/`) end up empty — their contents are not resolved from the gitlink references. This causes `cmake --install` to fail when it tries to install files from those paths. The failure was observed at the silo addon install step (after successfully installing silo tree-node icons from `src/Mod/Create/resources/`). ## Changes - **`package/rattler-build/build.sh`** — Add `clone_if_empty` helper that detects empty submodule directories and shallow-clones them from their remotes before CMake runs - **`package/rattler-build/recipe.yaml`** — Add `git` to build requirements ## Affected submodules | Directory | Remote | |-----------|--------| | `mods/silo` | `kindred/silo-mod.git` | | `mods/solver` | `kindred/solver.git` | | `mods/gears` | `kindred/gears.git` | | `mods/datums` | `kindred/datums.git` | The clone is skipped if the directory already has content (e.g. when building locally with submodules initialized).
forbes added 1 commit 2026-03-03 14:28:35 +00:00
fix(ci): clone submodule content in rattler-build package
Some checks failed
Build and Test / build (pull_request) Has been cancelled
784d172a61
rattler-build's source.path copy does not include submodule contents —
directories like mods/silo/, mods/solver/, mods/gears/, and mods/datums/
end up empty in the work directory, causing cmake --install to fail
when it tries to install files from those paths.

Add a clone_if_empty helper to build.sh that detects empty submodule
directories and shallow-clones them from their remotes before CMake
runs. Add git to build requirements in recipe.yaml.

This fixes the release build (AppImage) failure where cmake --install
failed at the silo addon install step after successfully installing
the silo tree-node icons from src/Mod/Create/resources/.
forbes merged commit 95142a0b0a into main 2026-03-03 14:30:18 +00:00
forbes deleted branch fix/rattler-build-submodules 2026-03-03 14:30:19 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#376