From a7b37ea693a4e1fc0472b74bc7c70463cf35122d Mon Sep 17 00:00:00 2001 From: Justin ! Date: Thu, 1 Jan 2026 22:29:41 -0500 Subject: [PATCH] treewide: fix `rec-set-dynamic-attrs` Lix will soon warn, and in the future, error on `rec-set-dynamic-attrs`. This commit fix where attrs are dynamically set in a recursive function currently present in nixpkgs. --- .../applications/editors/sublime/4/common.nix | 14 +++++----- .../sublime-merge/common.nix | 14 +++++----- pkgs/by-name/fs/fstar/z3/default.nix | 8 +++--- pkgs/development/ada-modules/gnatcoll/db.nix | 8 +++--- .../development/compilers/dotnet/packages.nix | 26 ++++++++++++------- pkgs/development/compilers/dotnet/vmr.nix | 7 ++--- 6 files changed, 41 insertions(+), 36 deletions(-) diff --git a/pkgs/applications/editors/sublime/4/common.nix b/pkgs/applications/editors/sublime/4/common.nix index 6242e71b856e..0dfc59a083e9 100644 --- a/pkgs/applications/editors/sublime/4/common.nix +++ b/pkgs/applications/editors/sublime/4/common.nix @@ -142,15 +142,13 @@ stdenv.mkDerivation rec { dontUnpack = true; - ${primaryBinary} = binaryPackage; - nativeBuildInputs = [ makeWrapper ]; installPhase = '' mkdir -p "$out/bin" - makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}" + makeWrapper "${binaryPackage}/${primaryBinary}" "$out/bin/${primaryBinary}" '' + builtins.concatStringsSep "" ( map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases @@ -159,18 +157,20 @@ stdenv.mkDerivation rec { mkdir -p "$out/share/applications" substitute \ - "''$${primaryBinary}/${primaryBinary}.desktop" \ + "${binaryPackage}/${primaryBinary}.desktop" \ "$out/share/applications/${primaryBinary}.desktop" \ --replace-fail "/opt/${primaryBinary}/${primaryBinary}" "${primaryBinary}" - for directory in ''$${primaryBinary}/Icon/*; do + for directory in ${binaryPackage}/Icon/*; do size=$(basename $directory) mkdir -p "$out/share/icons/hicolor/$size/apps" - ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps + ln -s ${binaryPackage}/Icon/$size/* $out/share/icons/hicolor/$size/apps done ''; passthru = { + unwrapped = binaryPackage; + updateScript = let script = writeShellScript "${packageAttribute}-update-script" '' @@ -191,7 +191,7 @@ stdenv.mkDerivation rec { fi for platform in ${lib.escapeShellArgs meta.platforms}; do - update-source-version "${packageAttribute}.${primaryBinary}" "$latestVersion" --ignore-same-version --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform" + update-source-version "${packageAttribute}".unwrapped "$latestVersion" --ignore-same-version --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform" done ''; in diff --git a/pkgs/applications/version-management/sublime-merge/common.nix b/pkgs/applications/version-management/sublime-merge/common.nix index 075244027f29..c3e0e5147448 100644 --- a/pkgs/applications/version-management/sublime-merge/common.nix +++ b/pkgs/applications/version-management/sublime-merge/common.nix @@ -144,8 +144,6 @@ stdenv.mkDerivation rec { dontUnpack = true; - ${primaryBinary} = binaryPackage; - nativeBuildInputs = [ makeWrapper ]; @@ -153,7 +151,7 @@ stdenv.mkDerivation rec { installPhase = '' runHook preInstall mkdir -p "$out/bin" - makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}" + makeWrapper "${binaryPackage}/${primaryBinary}" "$out/bin/${primaryBinary}" '' + builtins.concatStringsSep "" ( map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases @@ -162,19 +160,21 @@ stdenv.mkDerivation rec { mkdir -p "$out/share/applications" substitute \ - "''$${primaryBinary}/${primaryBinary}.desktop" \ + "${binaryPackage}/${primaryBinary}.desktop" \ "$out/share/applications/${primaryBinary}.desktop" \ --replace-fail "/opt/${primaryBinary}/${primaryBinary}" "${primaryBinary}" - for directory in ''$${primaryBinary}/Icon/*; do + for directory in ${binaryPackage}/Icon/*; do size=$(basename $directory) mkdir -p "$out/share/icons/hicolor/$size/apps" - ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps + ln -s ${binaryPackage}/Icon/$size/* $out/share/icons/hicolor/$size/apps done runHook postInstall ''; passthru = { + unwrapped = binaryPackage; + updateScript = let script = writeShellScript "${packageAttribute}-update-script" '' @@ -196,7 +196,7 @@ stdenv.mkDerivation rec { fi for platform in ${lib.escapeShellArgs meta.platforms}; do - update-source-version "${packageAttribute}.${primaryBinary}" "$latestVersion" --ignore-same-version --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform" + update-source-version "${packageAttribute}".unwrapped "$latestVersion" --ignore-same-version --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform" done ''; in diff --git a/pkgs/by-name/fs/fstar/z3/default.nix b/pkgs/by-name/fs/fstar/z3/default.nix index e4973e669ac4..33d200e8c854 100644 --- a/pkgs/by-name/fs/fstar/z3/default.nix +++ b/pkgs/by-name/fs/fstar/z3/default.nix @@ -98,11 +98,9 @@ stdenvNoCC.mkDerivation { ln -s ${lib.getExe fstarOldZ3} $out/bin/z3-${lib.escapeShellArg fstarOldZ3.version} ''; - passthru = rec { - new = fstarNewZ3; - "z3_${lib.replaceStrings [ "." ] [ "_" ] fstarNewZ3.version}" = new; + passthru = { + "z3_${lib.replaceStrings [ "." ] [ "_" ] fstarNewZ3.version}" = fstarNewZ3; - old = fstarOldZ3; - "z3_${lib.replaceStrings [ "." ] [ "_" ] fstarOldZ3.version}" = old; + "z3_${lib.replaceStrings [ "." ] [ "_" ] fstarOldZ3.version}" = fstarOldZ3; }; } diff --git a/pkgs/development/ada-modules/gnatcoll/db.nix b/pkgs/development/ada-modules/gnatcoll/db.nix index d24791fcf40b..5d9ac5a59e22 100644 --- a/pkgs/development/ada-modules/gnatcoll/db.nix +++ b/pkgs/development/ada-modules/gnatcoll/db.nix @@ -49,19 +49,19 @@ let ]; in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { + version = "25.0.0"; # executables don't adhere to the string gnatcoll-* scheme pname = if onlyExecutable then builtins.replaceStrings [ "_" ] [ "-" ] component else "gnatcoll-${component}"; - version = "25.0.0"; src = fetchFromGitHub { owner = "AdaCore"; repo = "gnatcoll-db"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; sha256 = "0q35ii0aa4hh59v768l5cilg1b30a4ckcvlbfy0lkcbp3rcfnbz3"; }; @@ -108,4 +108,4 @@ stdenv.mkDerivation rec { maintainers = [ lib.maintainers.sternenseemann ]; platforms = lib.platforms.all; }; -} +}) diff --git a/pkgs/development/compilers/dotnet/packages.nix b/pkgs/development/compilers/dotnet/packages.nix index d35fd57145b3..ea526b2212a5 100644 --- a/pkgs/development/compilers/dotnet/packages.nix +++ b/pkgs/development/compilers/dotnet/packages.nix @@ -32,6 +32,9 @@ let ) ); inherit (vmr) targetRid releaseManifest; + sdkVersion = releaseManifest.sdkVersion; + runtimeVersion = releaseManifest.runtimeVersion; + aspnetcoreVersion = releaseManifest.aspNetCoreVersion or releaseManifest.runtimeVersion; # TODO: do this properly hostRid = targetRid; @@ -114,9 +117,9 @@ let ]; }; - sdk = mkCommon "sdk" rec { + sdk = mkCommon "sdk" { pname = "${baseName}-sdk"; - version = releaseManifest.sdkVersion; + version = sdkVersion; src = vmr; dontUnpack = true; @@ -136,7 +139,7 @@ let runHook preInstall mkdir -p "$out"/share - cp -r "$src"/lib/dotnet-sdk-${version}-${targetRid} "$out"/share/dotnet + cp -r "$src"/lib/dotnet-sdk-${sdkVersion}-${targetRid} "$out"/share/dotnet chmod +w "$out"/share/dotnet mkdir "$out"/bin ln -s "$out"/share/dotnet/dotnet "$out"/bin/dotnet @@ -159,7 +162,10 @@ let ''; ${ - if stdenvNoCC.hostPlatform.isDarwin && lib.versionAtLeast version "10" then "postInstall" else null + if stdenvNoCC.hostPlatform.isDarwin && lib.versionAtLeast sdkVersion "10" then + "postInstall" + else + null } = '' mkdir -p "$out"/nix-support @@ -182,9 +188,9 @@ let }; }; - runtime = mkCommon "runtime" rec { + runtime = mkCommon "runtime" { pname = "${baseName}-runtime"; - version = releaseManifest.runtimeVersion; + version = runtimeVersion; src = vmr; dontUnpack = true; @@ -193,7 +199,7 @@ let runHook preInstall mkdir -p "$out"/share - cp -r "$src/lib/dotnet-runtime-${version}-${targetRid}" "$out"/share/dotnet + cp -r "$src/lib/dotnet-runtime-${runtimeVersion}-${targetRid}" "$out"/share/dotnet chmod +w "$out"/share/dotnet mkdir "$out"/bin ln -s "$out"/share/dotnet/dotnet "$out"/bin/dotnet @@ -210,9 +216,9 @@ let }; }; - aspnetcore = mkCommon "aspnetcore" rec { + aspnetcore = mkCommon "aspnetcore" { pname = "${baseName}-aspnetcore-runtime"; - version = releaseManifest.aspNetCoreVersion or releaseManifest.runtimeVersion; + version = aspnetcoreVersion; src = vmr; dontUnpack = true; @@ -226,7 +232,7 @@ let mkdir "$out"/bin ln -s "$out"/share/dotnet/dotnet "$out"/bin/dotnet - cp -Tr "$src/lib/aspnetcore-runtime-${version}-${targetRid}"/shared/Microsoft.AspNetCore.App "$out"/share/dotnet/shared/Microsoft.AspNetCore.App + cp -Tr "$src/lib/aspnetcore-runtime-${aspnetcoreVersion}-${targetRid}"/shared/Microsoft.AspNetCore.App "$out"/share/dotnet/shared/Microsoft.AspNetCore.App chmod +w "$out"/share/dotnet/shared runHook postInstall diff --git a/pkgs/development/compilers/dotnet/vmr.nix b/pkgs/development/compilers/dotnet/vmr.nix index 4e976cd73ba8..907ce3cc9869 100644 --- a/pkgs/development/compilers/dotnet/vmr.nix +++ b/pkgs/development/compilers/dotnet/vmr.nix @@ -59,10 +59,11 @@ let _icu = if isDarwin then darwin.ICU else icu; -in -stdenv.mkDerivation rec { - pname = "${baseName}-vmr"; version = release; +in +stdenv.mkDerivation { + pname = "${baseName}-vmr"; + inherit version; # TODO: fix this in the binary sdk packages preHook = lib.optionalString stdenv.hostPlatform.isDarwin ''