Release under the SolidCraft name: binaries, assets and installers (#383)
* Release under the SolidCraft name: binaries, assets and installers The desktop binary is now `solidcraft` and the CLI `solidcraft-cli` (the two app packages are renamed; their folders move with the rest of the rename later). Every release asset is named solidcraft-<ver>-… / SolidCraft-<ver>-windows-x64.exe, and the installers show the SolidCraft product name. Kept so existing installs keep updating (docs/compatibility.md): - `solvecraft-cli` alias binary in every package, forwarding to solidcraft-cli with a deprecation note on stderr (tests/legacy_alias.rs). - Linux app ID ai.storyteller.solvecraft (Flatpak ID, desktop entry, Wayland app_id). - MSI UpgradeCode, so the MSI upgrades in place. - deb Replaces/Conflicts/Provides and rpm Obsoletes/Provides solvecraft. - An old-named .zsync copy so earlier AppImages find updates; a legacy .flatpakrepo copy. - .solvecraft file associations; SOLVECRAFT_* fallbacks in the packaging scripts. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT * MSI: register the legacy .solvecraft extension without a duplicate open verb Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT --------- Co-authored-by: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
f06b76e14f
commit
6090e89b3f
50 files changed
+478
-317
No files matched your search
@@ -63,8 +63,8 @@
|
||||
echo "SolidCraft: ${driverLibDir pkgs} is missing — on NixOS enable hardware.graphics; on other distributions use a matching nixGL driver wrapper." >&2
|
||||
fi
|
||||
''}
|
||||
command -v cc >/dev/null || echo "solvecraft: no C linker on PATH, cargo cannot link — use nix develop .#rust" >&2
|
||||
echo "solvecraft: cargo run --release -p solvecraft -- --sample"
|
||||
command -v cc >/dev/null || echo "solidcraft: no C linker on PATH, cargo cannot link — use nix develop .#rust" >&2
|
||||
echo "solidcraft: cargo run --release -p solidcraft -- --sample"
|
||||
${pkgs.lib.optionalString pkgs.stdenv.isLinux ''
|
||||
export XDG_DATA_DIRS="${driverShareDir pkgs}:''${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
|
||||
''}
|
||||
@@ -97,7 +97,7 @@
|
||||
CARGO_TARGET_DIR = "target/nix";
|
||||
shellHook = ''
|
||||
${shellHook pkgs}
|
||||
echo "solvecraft: $(rustc --version), building into target/nix"
|
||||
echo "solidcraft: $(rustc --version), building into target/nix"
|
||||
'';
|
||||
};
|
||||
});
|
||||
@@ -116,15 +116,15 @@
|
||||
# The CLI draws the same packaging icons as the other Linux distributions.
|
||||
cargoBuildFlags = [
|
||||
"-p"
|
||||
"solvecraft"
|
||||
"solidcraft"
|
||||
"-p"
|
||||
"solvecraft-cli"
|
||||
"solidcraft-cli"
|
||||
];
|
||||
cargoInstallFlags = [
|
||||
"-p"
|
||||
"solvecraft"
|
||||
"solidcraft"
|
||||
"-p"
|
||||
"solvecraft-cli"
|
||||
"solidcraft-cli"
|
||||
];
|
||||
# `cargo xtask ci` is the test gate (it wants a wasm target and a GPU); the sandbox has
|
||||
# neither.
|
||||
@@ -134,7 +134,6 @@
|
||||
buildInputs = runtimeLibs pkgs;
|
||||
|
||||
postInstall = ''
|
||||
ln -s solvecraft $out/bin/solidcraft
|
||||
${pkgs.lib.optionalString pkgs.stdenv.isLinux ''
|
||||
install -Dm644 packaging/linux/ai.storyteller.solvecraft.desktop \
|
||||
$out/share/applications/ai.storyteller.solvecraft.desktop
|
||||
@@ -143,7 +142,7 @@
|
||||
for size in 16 24 32 48 64 128 256 512; do
|
||||
icon=$out/share/icons/hicolor/''${size}x''${size}/apps/ai.storyteller.solvecraft.png
|
||||
mkdir -p "$(dirname "$icon")"
|
||||
$out/bin/solvecraft-cli icon --size "$size" --out "$icon" >/dev/null
|
||||
$out/bin/solidcraft-cli icon --size "$size" --out "$icon" >/dev/null
|
||||
done
|
||||
''}
|
||||
'';
|
||||
@@ -151,7 +150,7 @@
|
||||
# Linux only: the app reaches the window through dlopen'd libraries, so the packaged
|
||||
# binary needs the same LD_LIBRARY_PATH the shell exports. macOS needs no wrapper.
|
||||
postFixup = pkgs.lib.optionalString pkgs.stdenv.isLinux ''
|
||||
wrapProgram $out/bin/solvecraft \
|
||||
wrapProgram $out/bin/solidcraft \
|
||||
--prefix LD_LIBRARY_PATH : "${libraryPath pkgs}" \
|
||||
--set-default XDG_DATA_DIRS /usr/local/share:/usr/share \
|
||||
--prefix XDG_DATA_DIRS : "$out/share:${driverShareDir pkgs}"
|
||||
@@ -175,8 +174,7 @@
|
||||
in {
|
||||
default = desktop;
|
||||
solidcraft = desktop;
|
||||
solvecraft = { type = "app"; program = "${package}/bin/solvecraft"; };
|
||||
cli = { type = "app"; program = "${package}/bin/solvecraft-cli"; };
|
||||
cli = { type = "app"; program = "${package}/bin/solidcraft-cli"; };
|
||||
});
|
||||
};
|
||||
}
|
||||
Reference in new issue
Block a user