godot: move export templates into share/godot/export_templates

Changed files
+37 -14
doc
release-notes
pkgs
by-name
op
opengamepadui
pi
pixelorama
development
+2
doc/release-notes/rl-2505.section.md
···
- [`lib.packagesFromDirectoryRecursive`] now rejects unknown arguments.
[`lib.packagesFromDirectoryRecursive`]: https://nixos.org/manual/nixpkgs/stable/#function-library-lib.filesystem.packagesFromDirectoryRecursive
+
- The `godot-export-templates` package now has its content at `share/godot/export_templates/$version` instead of the output root. This makes it more convenient for for symlinking into `~/.local`, but scripts expecting the old layout will need to be changed.
+
### Deprecations {#sec-nixpkgs-release-25.05-lib-deprecations}
- `functor` is an implementation detail and should not be relied upon, but since its status wasn't clear and it has had some use cases without alternatives, changes are being handled as gracefully as possible. Deprecations within functor:
+3 -3
pkgs/by-name/op/opengamepadui/package.nix
···
GODOT = lib.getExe godot_4_4;
GODOT_VERSION = lib.elemAt versionAndRelease 0;
GODOT_RELEASE = lib.elemAt versionAndRelease 1;
-
EXPORT_TEMPLATE = "${godot_4_4.export-templates-bin}";
+
EXPORT_TEMPLATE = "${godot_4_4.export-templates-bin}/share/godot/export_templates";
BUILD_TYPE = "${finalAttrs.buildType}";
};
···
preBuild = ''
# Godot looks for export templates in HOME
export HOME=$(mktemp -d)
-
mkdir -p $HOME/.local/share/godot/export_templates
-
ln -s "${godot_4_4.export-templates-bin}" "$HOME/.local/share/godot/export_templates/$GODOT_VERSION.$GODOT_RELEASE"
+
mkdir -p $HOME/.local/share/godot/
+
ln -s "$EXPORT_TEMPLATE" "$HOME"/.local/share/godot/
'';
postInstall = ''
+2 -2
pkgs/by-name/pi/pixelorama/package.nix
···
runHook preBuild
export HOME=$(mktemp -d)
-
mkdir -p $HOME/.local/share/godot/export_templates
-
ln -s "${godot.export-templates-bin}" "$HOME/.local/share/godot/export_templates/${godot_version_folder}"
+
mkdir -p $HOME/.local/share/godot/
+
ln -s "${godot.export-templates-bin}"/share/godot/export_templates "$HOME"/.local/share/godot/
mkdir -p build
godot4 --headless --export-release "${preset}" ./build/pixelorama
+1 -1
pkgs/development/tools/godot/4.3/default.nix
···
{
version = "4.3-stable";
hash = "sha256-MzElflwXHWLgPtoOIhPLA00xX8eEdQsexZaGIEOzbj0=";
-
exportTemplatesHash = "sha256-XRnKii+eexIkbGf7bqc42SR0NBULFvgMdOpSRNNk6kg=";
+
exportTemplatesHash = "sha256-9fENuvVqeQg0nmS5TqjCyTwswR+xAUyVZbaKK7Q3uSI=";
nugetDeps = ./deps.json;
}
+1 -1
pkgs/development/tools/godot/4.4/default.nix
···
{
version = "4.4.1-stable";
hash = "sha256-O4TdPYu1K2zWKMBP/7xd0UPLDb7/4dBnkGM7QydD3Yo=";
-
exportTemplatesHash = "sha256-KV4sDBZPiMf7IORaNFR2uEK1midnyyjCUfG9hl6AwHY=";
+
exportTemplatesHash = "sha256-eo0UreSJ/U0i8XgZMCH+iodqnlEGjtTd4m2sOuTFmog=";
nugetDeps = ./deps.json;
}
+2 -2
pkgs/development/tools/godot/common.nix
···
runHook preBuild
export HOME=$(mktemp -d)
-
mkdir -p $HOME/.local/share/godot/export_templates
-
ln -s "${pkg.export-templates-bin}" "$HOME/.local/share/godot/export_templates/${dottedVersion}"
+
mkdir -p $HOME/.local/share/godot/
+
ln -s "${pkg.export-templates-bin}"/share/godot/export_templates "$HOME"/.local/share/godot/
godot --headless -s create-scene.gd
+26 -5
pkgs/development/tools/godot/export-templates-bin.nix
···
{
-
fetchzip,
+
fetchurl,
godot,
hash,
lib,
+
stdenvNoCC,
+
unzip,
version,
}:
# Export templates is necessary for setting up Godot engine, it's used when exporting projects.
# Godot applications/games packages needs to reference export templates.
# Export templates version should be kept in sync with Godot version.
# https://docs.godotengine.org/en/stable/tutorials/export/exporting_projects.html#export-templates
-
fetchzip {
+
stdenvNoCC.mkDerivation {
pname = "godot-export-templates";
version = version;
-
extension = "zip";
-
url = "https://github.com/godotengine/godot/releases/download/${version}/Godot_v${version}_export_templates.tpz";
-
inherit hash;
+
+
src = fetchurl {
+
url = "https://github.com/godotengine/godot/releases/download/${version}/Godot_v${version}_export_templates.tpz";
+
inherit hash;
+
};
+
+
nativeBuildInputs = [
+
unzip
+
];
+
+
unpackPhase = ''
+
runHook preUnpack
+
unzip -q "$src"
+
runHook postUnpack
+
'';
+
+
installPhase = ''
+
templates="$out"/share/godot/export_templates
+
mkdir -p "$templates"
+
read version < templates/version.txt
+
mv templates "$templates/$version"
+
'';
meta = {
inherit (godot.meta)