Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2026-03-05 18:37:21 +00:00
committed by GitHub
129 changed files with 1602 additions and 1389 deletions
+2 -2
View File
@@ -11,8 +11,8 @@ on:
permissions:
contents: read
issues: write
pull-requests: write
issues: write # adding the 'has: port to stable' label
pull-requests: write # creating backport pull requests
defaults:
run:
+2 -2
View File
@@ -30,8 +30,8 @@ concurrency:
# This is used as fallback without app only.
# This happens when testing in forks without setting up that app.
permissions:
issues: write
pull-requests: write
issues: write # managing issue labels and comments
pull-requests: write # managing pull request labels and comments
defaults:
run:
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
commits:
if: inputs.baseBranch && inputs.headBranch
permissions:
pull-requests: write
pull-requests: write # submitting PR reviews
runs-on: ubuntu-slim
timeout-minutes: 3
steps:
+1 -1
View File
@@ -7,7 +7,7 @@ on:
# This is used as fallback without app only.
# This happens when testing in forks without setting up that app.
permissions:
pull-requests: write
pull-requests: write # adding reactions to comments
defaults:
run:
+2 -2
View File
@@ -248,8 +248,8 @@ jobs:
needs: [eval]
if: ${{ !cancelled() && !failure() }}
permissions:
pull-requests: write
statuses: write
pull-requests: write # submitting 'wrong branch' reviews
statuses: write # creating 'Eval Summary' commit statuses
timeout-minutes: 5
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+4 -6
View File
@@ -65,8 +65,7 @@ jobs:
needs: [prepare]
uses: ./.github/workflows/check.yml
permissions:
# cherry-picks; formality right now, but unused
pull-requests: write
pull-requests: write # cherry-picks: unused in merge queue but required for check workflow
secrets:
CACHIX_AUTH_TOKEN_GHA: ${{ secrets.CACHIX_AUTH_TOKEN_GHA }}
with:
@@ -90,9 +89,8 @@ jobs:
# The eval workflow requests these permissions so we must explicitly allow them,
# even though they are unused when working with the merge queue.
permissions:
# compare
pull-requests: write
statuses: write
pull-requests: write # compare: unused in merge queue but required by eval workflow
statuses: write # compare: unused in merge queue but required by eval workflow
secrets:
CACHIX_AUTH_TOKEN_GHA: ${{ secrets.CACHIX_AUTH_TOKEN_GHA }}
with:
@@ -125,7 +123,7 @@ jobs:
- build
runs-on: ubuntu-slim
permissions:
statuses: write
statuses: write # creating 'no PR failures' commit status
steps:
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
env:
+1 -2
View File
@@ -21,8 +21,7 @@ jobs:
prepare:
runs-on: ubuntu-slim
permissions:
# wrong branch review comment
pull-requests: write
pull-requests: write # submitting 'wrong branch' reviews
outputs:
baseBranch: ${{ steps.prepare.outputs.base }}
headBranch: ${{ steps.prepare.outputs.head }}
+1 -1
View File
@@ -9,7 +9,7 @@ on:
# This is used as fallback without app only.
# This happens when testing in forks without setting up that app.
permissions:
pull-requests: write
pull-requests: write # minimizing dismissed reviews and adding reactions
defaults:
run:
+5 -5
View File
@@ -82,8 +82,8 @@ jobs:
uses: ./.github/workflows/merge-group.yml
# Those are actually only used on the merge_group event, but will throw an error if not set.
permissions:
pull-requests: write
statuses: write
pull-requests: write # unused on pull_request, required by merge-group workflow
statuses: write # unused on pull_request, required by merge-group workflow
with:
artifact-prefix: mg-
mergedSha: ${{ needs.prepare.outputs.mergedSha }}
@@ -96,9 +96,9 @@ jobs:
uses: ./.github/workflows/pull-request-target.yml
# Those are actually only used on the pull_request_target event, but will throw an error if not set.
permissions:
issues: write
pull-requests: write
statuses: write
issues: write # unused on pull_request, required by bot workflow
pull-requests: write # unused on pull_request, required by PR workflow
statuses: write # unused on pull_request, required by PR workflow
secrets:
NIXPKGS_CI_APP_PRIVATE_KEY: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
with:
@@ -224,6 +224,7 @@ in
services.accounts-daemon.enable = true;
services.upower.enable = config.powerManagement.enable;
services.gnome.glib-networking.enable = true;
services.gnome.gnome-keyring.enable = mkDefault true;
services.gvfs.enable = true;
services.tumbler.enable = true;
services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
@@ -101,11 +101,11 @@
"vendorHash": "sha256-quoFrJbB1vjz+MdV+jnr7FPACHuUe5Gx9POLubD2IaM="
},
"baidubce_baiducloud": {
"hash": "sha256-UDcyYXo4K7tlr5appmzgZh1V+wX3WuaC6YEWXx5Pk8Y=",
"hash": "sha256-zCv7K1+lGPVhroEySEV9gKSHTIqIsYHtfYlrv6LBH3c=",
"homepage": "https://registry.terraform.io/providers/baidubce/baiducloud",
"owner": "baidubce",
"repo": "terraform-provider-baiducloud",
"rev": "v1.22.19",
"rev": "v1.22.20",
"spdx": "MPL-2.0",
"vendorHash": null
},
@@ -2,6 +2,7 @@
lib,
stdenvNoCC,
fetchFromGitHub,
installFonts,
}:
stdenvNoCC.mkDerivation {
@@ -15,14 +16,13 @@ stdenvNoCC.mkDerivation {
hash = "sha256-V0zWbNYT3RGO9vjX+GHfO38ywMozcZVJkBZH+8G5sC0=";
};
nativeBuildInputs = [ installFonts ];
dontBuild = true;
# default installPhase invokes python, but we still want the font hook to run
installPhase = ''
runHook preInstall
install -Dm644 -t $out/share/fonts/opentype fonts/otf/*
install -Dm644 -t $out/share/fonts/variable fonts/variable/*
runHook postInstall
'';
@@ -2,6 +2,7 @@
lib,
stdenvNoCC,
fetchFromGitHub,
installFonts,
}:
stdenvNoCC.mkDerivation {
@@ -17,12 +18,11 @@ stdenvNoCC.mkDerivation {
dontBuild = true;
nativeBuildInputs = [ installFonts ];
# default installPhase invokes python, but we still want the font hook to run
installPhase = ''
runHook preInstall
install -Dm644 -t $out/share/fonts/opentype fonts/otf/*
install -Dm644 -t $out/share/fonts/variable fonts/variable/*
runHook postInstall
'';
+4 -1
View File
@@ -33,7 +33,10 @@ buildGoModule (finalAttrs: {
mit
asl20
];
maintainers = with lib.maintainers; [ pyrox0 ];
maintainers = with lib.maintainers; [
pyrox0
isabelroses
];
mainProgram = "goat";
};
})
@@ -148,9 +148,9 @@
},
"azure-firewall": {
"pname": "azure-firewall",
"version": "2.0.1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/azure_firewall-2.0.1-py2.py3-none-any.whl",
"hash": "sha256-SLnSVacJ47P96ICUt33/6cRz+0YRY+FrkwhowtTMD68=",
"version": "2.1.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/azure_firewall-2.1.0-py2.py3-none-any.whl",
"hash": "sha256-b7ciHJ/BDta4xZXkzrOslTNqyEUH+fKxlQ0p5SwOmBw=",
"description": "Manage Azure Firewall resources"
},
"azurelargeinstance": {
@@ -449,9 +449,9 @@
},
"elastic-san": {
"pname": "elastic-san",
"version": "1.3.1b1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/elastic_san-1.3.1b1-py3-none-any.whl",
"hash": "sha256-L0ps/X+laOJO2aj3kqE7PVntTPxuY30BYeCmN/VWC44=",
"version": "1.3.2",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/elastic_san-1.3.2-py3-none-any.whl",
"hash": "sha256-SrOk7ueB2cG2K4ZRHYwSxPbjJvbGZ0sNT/OQfcKmgFA=",
"description": "Microsoft Azure Command-Line Tools ElasticSan Extension"
},
"eventgrid": {
@@ -477,9 +477,9 @@
},
"fleet": {
"pname": "fleet",
"version": "1.8.3",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/fleet-1.8.3-py3-none-any.whl",
"hash": "sha256-KY4lXsFf1Rxhcblyfxw904dWHxdWR17L864qiIpYYOQ=",
"version": "1.9.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/fleet-1.9.0-py3-none-any.whl",
"hash": "sha256-5CsWYP0r2UfUTekKDsqWBNonDOPaR5TrhxZDF7hAtXI=",
"description": "Microsoft Azure Command-Line Tools Fleet Extension"
},
"fluid-relay": {
@@ -547,9 +547,9 @@
},
"healthbot": {
"pname": "healthbot",
"version": "1.0.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/healthbot-1.0.0-py3-none-any.whl",
"hash": "sha256-X6M+iVNShC9YBliy2Ynf5TVUDKo3ZTaqu1yvFn6v6Ew=",
"version": "1.1.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/healthbot-1.1.0-py3-none-any.whl",
"hash": "sha256-AV0TETMADekkqTcPNFMg+4pt4RCMtPCnGb0pd/wr01A=",
"description": "Microsoft Azure Command-Line Tools HealthbotClient Extension"
},
"healthcareapis": {
@@ -883,9 +883,9 @@
},
"quantum": {
"pname": "quantum",
"version": "1.0.0b11",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/quantum-1.0.0b11-py3-none-any.whl",
"hash": "sha256-LcfF4Rmfr4L4R0n41g4RngDyfTeRZheZuNqGP4kI5Yk=",
"version": "1.0.0b12",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/quantum-1.0.0b12-py3-none-any.whl",
"hash": "sha256-9tjBvpu1F2/2JYKUD2IbxUckYofUH0rEnimkpRXF2wY=",
"description": "Microsoft Azure Command-Line Tools Quantum Extension"
},
"qumulo": {
@@ -902,13 +902,6 @@
"hash": "sha256-i0w0dd8MNUTbzCjkh161sWPXK0Cv9CUKr9rZQYDD+ZU=",
"description": "Microsoft Azure Command-Line Tools AzureQuotaExtensionAPI Extension"
},
"redisenterprise": {
"pname": "redisenterprise",
"version": "1.3.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/redisenterprise-1.3.0-py3-none-any.whl",
"hash": "sha256-53kvBZJxKFcjFnGu6VzALidEx2MexVaoZDLW/4tsckY=",
"description": "Microsoft Azure Command-Line Tools RedisEnterprise Extension"
},
"reservation": {
"pname": "reservation",
"version": "0.3.1",
@@ -967,9 +960,9 @@
},
"sftp": {
"pname": "sftp",
"version": "1.0.0b1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/sftp-1.0.0b1-py3-none-any.whl",
"hash": "sha256-cE8b2ZgoG9DO64ekT3FpcRuTAOYX94pzESYJ9lUe7LI=",
"version": "1.0.0b2",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/sftp-1.0.0b2-py3-none-any.whl",
"hash": "sha256-3ugWIeKK9U8vKgFMbQfMKXxbgW+zO9IB6lPYJFHZm/E=",
"description": "Secure access to Azure Storage blob data via SFTP with SSH certificates"
},
"site": {
@@ -1142,9 +1135,9 @@
},
"workload-orchestration": {
"pname": "workload-orchestration",
"version": "5.0.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/workload_orchestration-5.0.0-py3-none-any.whl",
"hash": "sha256-Hp8Y50FHwR7L+2MXTEW1QXLMZJa8eUqwQCi+B0FPooU=",
"version": "5.1.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/workload_orchestration-5.1.0-py3-none-any.whl",
"hash": "sha256-/9MGhiqQpEUPJ9AgVM0tZ/SQiRdVvOsXVgdnqAtfSMw=",
"description": "Microsoft Azure Command-Line Tools WorkloadOperations Extension"
},
"workloads": {
+2 -2
View File
@@ -26,14 +26,14 @@
}:
let
version = "2.83.0";
version = "2.84.0";
src = fetchFromGitHub {
name = "azure-cli-${version}-src";
owner = "Azure";
repo = "azure-cli";
tag = "azure-cli-${version}";
hash = "sha256-ptmqcRbjLWMZ9i+rt0amfjpVC+VuE+L3Np2gPpF7Urg=";
hash = "sha256-1vt7b9f3enQ3xQzO9JhDETUOpOkW2xWB1qR5arm6xZM=";
};
# put packages that needs to be overridden in the py package scope
@@ -89,6 +89,8 @@ let
--ignore=azure/cli/core/tests/test_util.py \
--ignore=azure/cli/core/tests/test_argcomplete.py \
--ignore=azure/cli/core/tests/test_telemetry.py \
--ignore=azure/cli/core/tests/test_help.py \
--ignore=azure/cli/core/tests/test_command_table_integrity.py \
-k 'not metadata_url and not test_send_raw_requests and not test_format_styled_text_legacy_powershell'
'';
@@ -189,11 +191,6 @@ let
overrideAzureMgmtPackage super.azure-mgmt-rdbms "10.2.0b17" "tar.gz"
"sha256-1nnRkyr4Im79B7DDqGz/FOrPAToFaGhE+a7r5bZMuOQ=";
# ModuleNotFoundError: No module named 'azure.mgmt.redhatopenshift.v2023_11_22'
azure-mgmt-redhatopenshift =
overrideAzureMgmtPackage super.azure-mgmt-redhatopenshift "1.5.0" "tar.gz"
"sha256-Uft0KcOciKzJ+ic9n4nxkwNSBmKZam19jhEiqY9fJSc=";
# azure.mgmt.resource will shadow the other azure.mgmt.resource.* packages unless we merge them together
azure-mgmt-resource-all = py.pkgs.buildPythonPackage {
pname = "azure-mgmt-resource-all";
+3 -3
View File
@@ -8,16 +8,16 @@
php83.buildComposerProject2 (finalAttrs: {
pname = "bookstack";
version = "25.12.3";
version = "25.12.8";
src = fetchFromGitHub {
owner = "bookstackapp";
repo = "bookstack";
tag = "v${finalAttrs.version}";
hash = "sha256-IP1IffCDPPudtgwIv3gqPud9p7WjGbXrLlnoAZ56Gu8=";
hash = "sha256-1dyY66pU73IYa1sOvOn6HTvs1Cww06jvHJl5s/QB6r4=";
};
vendorHash = "sha256-Q7Qz/LwycyKjDuD6vBQY6z7CcT4H/i+9KaC13CgS6Fc=";
vendorHash = "sha256-sb5Tn/yPEQAVWwbC5AwXTU34Mc8aK5PDV5Wp+XH3ruk=";
passthru = {
phpPackage = php83;
@@ -14,13 +14,13 @@
buildDotnetModule rec {
pname = "crossmacro-daemon";
version = "0.9.7";
version = "0.9.8";
src = fetchFromGitHub {
owner = "alper-han";
repo = "CrossMacro";
tag = "v${version}";
hash = "sha256-CRP3u3ChP587yHgoi49yPiozcPB6juVNZLVVknkqvKo=";
hash = "sha256-kca7MTv3KXygLuRoYHuOFJOMKVYny0f9mpWwWhzgqHg=";
};
projectFile = "src/CrossMacro.Daemon/CrossMacro.Daemon.csproj";
+2 -2
View File
@@ -29,13 +29,13 @@
buildDotnetModule rec {
pname = "crossmacro";
version = "0.9.7";
version = "0.9.8";
src = fetchFromGitHub {
owner = "alper-han";
repo = "CrossMacro";
tag = "v${version}";
hash = "sha256-CRP3u3ChP587yHgoi49yPiozcPB6juVNZLVVknkqvKo=";
hash = "sha256-kca7MTv3KXygLuRoYHuOFJOMKVYny0f9mpWwWhzgqHg=";
};
projectFile = "src/CrossMacro.UI.Linux/CrossMacro.UI.Linux.csproj";
+1 -1
View File
@@ -18,7 +18,7 @@ stdenv.mkDerivation (finalAttrs: {
version = "0.5.13.1";
src = fetchurl {
url = "https://gondor.apana.org.au/~herbert/dash/files/dash-${finalAttrs.version}.tar.gz";
url = "http://gondor.apana.org.au/~herbert/dash/files/dash-${finalAttrs.version}.tar.gz";
hash = "sha256-2ScbzgnBJ9mGbiXAEVgt3HWrmIlYoEvE2FU6O48w43A=";
};
+2 -2
View File
@@ -20,13 +20,13 @@ let
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "freetube";
version = "0.23.13";
version = "0.23.14";
src = fetchFromGitHub {
owner = "FreeTubeApp";
repo = "FreeTube";
tag = "v${finalAttrs.version}-beta";
hash = "sha256-vnqrl/2hxL0RQbLHkgRntyTRSWmhMM7hOi31r4pKCgs=";
hash = "sha256-9CO5/EcFPO50awY1QNutbAqDG2rhOv3DYk97/9YNVWI=";
};
# Darwin requires writable Electron dist
+2 -2
View File
@@ -6,10 +6,10 @@
}:
let
pname = "hydralauncher";
version = "3.8.3";
version = "3.9.0";
src = fetchurl {
url = "https://github.com/hydralauncher/hydra/releases/download/v${version}/hydralauncher-${version}.AppImage";
hash = "sha256-1oePQ33Bpt2GKEQgCIVAVjnF04rLY9fraUuodoLlx8o=";
hash = "sha256-5UyS/SfEol0tnKTnELr7goj3ATJXUQPqYsR1dSdV3tY=";
};
appimageContents = appimageTools.extractType2 { inherit pname src version; };
@@ -1,15 +1,3 @@
diff --git a/llvm-project/llvm/include/llvm/ADT/SmallVector.h b/llvm-project/llvm/include/llvm/ADT/SmallVector.h
index 98dce89168..a52947e16e 100644
--- a/llvm-project/llvm/include/llvm/ADT/SmallVector.h
+++ b/llvm-project/llvm/include/llvm/ADT/SmallVector.h
@@ -19,6 +19,7 @@
#include <algorithm>
#include <cassert>
#include <cstddef>
+#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <functional>
diff --git a/llvm-project/llvm/include/llvm/Support/Threading.h b/llvm-project/llvm/include/llvm/Support/Threading.h
index ba6c531ab4..78aa5e7be5 100644
--- a/llvm-project/llvm/include/llvm/Support/Threading.h
@@ -19,7 +19,7 @@ let
in
stdenv.mkDerivation rec {
pname = "intel-graphics-compiler";
version = "2.27.10";
version = "2.28.4";
# See the repository for expected versions:
# <https://github.com/intel/intel-graphics-compiler/blob/v2.16.0/documentation/build_ubuntu.md#revision-table>
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
owner = "intel";
repo = "intel-graphics-compiler";
tag = "v${version}";
hash = "sha256-h/YlZatUn61M5/F4msJljZDWcQyivgCAi1HC9CXvTts=";
hash = "sha256-bct1ntvjK738QkoumqwsMJdV+ikpLVtW061637m4vIg=";
})
(fetchFromGitHub {
name = "llvm-project";
@@ -42,21 +42,21 @@ stdenv.mkDerivation rec {
name = "vc-intrinsics";
owner = "intel";
repo = "vc-intrinsics";
tag = "v0.24.2";
hash = "sha256-ypHFqgc96m+im7DCe5ZOGMGIhB7mtRYPhEmMSg2+pyc=";
tag = "v0.24.3";
hash = "sha256-VRws9wzBvNph1sTFjhmigM8ZDI6VMp8ZUJR4cZaK5uA=";
})
(fetchFromGitHub {
name = "opencl-clang";
owner = "intel";
repo = "opencl-clang";
tag = "v16.0.7";
hash = "sha256-MaL4DRmIdnBA/DZZezNzbsjWh5mz99mOTUJoqcXE1/c=";
tag = "v16.0.9";
hash = "sha256-N6C9OY0ZV36KXdlPXQ+UW8AKdzg+0xMip9uPnsKAcH0=";
})
(fetchFromGitHub {
name = "llvm-spirv";
owner = "KhronosGroup";
repo = "SPIRV-LLVM-Translator";
tag = "v16.0.20";
tag = "v16.0.22";
hash = "sha256-3ymwHSNqCdMIgzPYIYUIHMjJHSxdcGK11DF8qPM6nMs=";
})
];
+8 -5
View File
@@ -10,20 +10,20 @@
buildGoModule (finalAttrs: {
pname = "karma";
version = "0.115";
version = "0.125";
src = fetchFromGitHub {
owner = "prymitive";
repo = "karma";
rev = "v${finalAttrs.version}";
hash = "sha256-SW/nmJcSk/LmoKLuD5stsSaRGaJctl6hVSODNCT9i64=";
hash = "sha256-/Iv7/CUwY/RlunXOd9H5xu4AzL/iXUEu+extyqinJ7M=";
};
vendorHash = "sha256-Y55AaB8KRV+Tq/Trg1BOOwziyt+yJ2b3iVYA6bDebQY=";
vendorHash = "sha256-O+f8drIs+XOvLo8ifB/SHkBBxj0KPg2H1MAcCyJvLe4=";
npmDeps = fetchNpmDeps {
src = "${finalAttrs.src}/ui";
hash = "sha256-/L+eU0xwaopL2im9epiZiZ23dUqJ+3OwhWw/rIZC6hI=";
hash = "sha256-wcQ6QWoRm+aQRf1L7xkmQIbYnfN+Fr/D0LeRlEK5nbE=";
};
npmRoot = "ui";
@@ -65,6 +65,9 @@ buildGoModule (finalAttrs: {
mainProgram = "karma";
homepage = "https://karma-dashboard.io/";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ nukaduka ];
maintainers = with lib.maintainers; [
nukaduka
kraftnix
];
};
})
+3 -5
View File
@@ -2,6 +2,7 @@
stdenvNoCC,
lib,
fetchzip,
installFonts,
variants ? [
"display"
"hand"
@@ -74,11 +75,8 @@ stdenvNoCC.mkDerivation {
sourceRoot = ".";
srcs = map (variant: fetchFont fontMap.${variant}) selectedFonts;
installPhase = ''
runHook preInstall
install -Dm444 **/*.ttf -t $out/share/fonts/ttf
runHook postInstall
'';
nativeBuildInputs = [ installFonts ];
meta = {
homepage = "https://pedroreina.net/apostrophiclab/";
+2 -5
View File
@@ -2,6 +2,7 @@
stdenvNoCC,
lib,
fetchzip,
installFonts,
}:
stdenvNoCC.mkDerivation {
@@ -14,11 +15,7 @@ stdenvNoCC.mkDerivation {
stripRoot = false;
};
installPhase = ''
runHook preInstall
install -Dm444 *.ttf -t $out/share/fonts/ttf
runHook postInstall
'';
nativeBuildInputs = [ installFonts ];
meta = {
homepage = "https://pedroreina.net/apostrophiclab/0049-Komikahuna/komikahuna.html";
+2 -5
View File
@@ -2,6 +2,7 @@
stdenvNoCC,
lib,
fetchzip,
installFonts,
}:
stdenvNoCC.mkDerivation {
@@ -14,11 +15,7 @@ stdenvNoCC.mkDerivation {
stripRoot = false;
};
installPhase = ''
runHook preInstall
install -Dm444 *.ttf -t $out/share/fonts/ttf
runHook postInstall
'';
nativeBuildInputs = [ installFonts ];
meta = {
homepage = "https://pedroreina.net/apostrophiclab/0122-Komikandy/komikandy.html";
+2 -5
View File
@@ -2,6 +2,7 @@
stdenvNoCC,
lib,
fetchzip,
installFonts,
}:
stdenvNoCC.mkDerivation {
@@ -14,11 +15,7 @@ stdenvNoCC.mkDerivation {
stripRoot = false;
};
installPhase = ''
runHook preInstall
install -Dm444 *.ttf -t $out/share/fonts/ttf
runHook postInstall
'';
nativeBuildInputs = [ installFonts ];
meta = {
homepage = "https://pedroreina.net/apostrophiclab/0052-Komikazba/komikazba.html";
+2 -5
View File
@@ -2,6 +2,7 @@
stdenvNoCC,
lib,
fetchzip,
installFonts,
}:
stdenvNoCC.mkDerivation {
@@ -14,11 +15,7 @@ stdenvNoCC.mkDerivation {
stripRoot = false;
};
installPhase = ''
runHook preInstall
install -Dm444 *.ttf -t $out/share/fonts/ttf
runHook postInstall
'';
nativeBuildInputs = [ installFonts ];
meta = {
homepage = "https://pedroreina.net/apostrophiclab/0045-Komikaze/komikaze.html";
+2 -5
View File
@@ -2,6 +2,7 @@
stdenvNoCC,
lib,
fetchzip,
installFonts,
}:
stdenvNoCC.mkDerivation {
@@ -14,11 +15,7 @@ stdenvNoCC.mkDerivation {
stripRoot = false;
};
installPhase = ''
runHook preInstall
install -Dm444 *.ttf -t $out/share/fonts/ttf
runHook postInstall
'';
nativeBuildInputs = [ installFonts ];
meta = {
homepage = "https://pedroreina.net/apostrophiclab/0046-Komikazoom/komikazoom.html";
+2 -2
View File
@@ -10,13 +10,13 @@
buildGoModule (finalAttrs: {
pname = "kubevirt";
version = "1.7.0";
version = "1.7.1";
src = fetchFromGitHub {
owner = "kubevirt";
repo = "kubevirt";
rev = "v${finalAttrs.version}";
hash = "sha256-0dfZbhcFSIU9TFxQ3UT8Sz+tgeiqVke+RxVwlxw49Hk=";
hash = "sha256-fG+iIWAbvgrtrUfDEXFWbxoJdNuQFN9grp4JHzSjlYs=";
};
vendorHash = null;
+120
View File
@@ -0,0 +1,120 @@
{
lib,
buildGoModule,
fetchFromGitHub,
fetchpatch,
stdenvNoCC,
nodejs,
pnpm_10,
templ,
pnpmConfigHook,
fetchPnpmDeps,
versionCheckHook,
nix-update-script,
}:
let
version = "1.1.4";
src = fetchFromGitHub {
owner = "netresearch";
repo = "ldap-manager";
tag = "v${version}";
hash = "sha256-G4UUgjTbRmVmbLvSv95kwhqnTUCygW8plkdYFGcHBqE=";
};
frontend = stdenvNoCC.mkDerivation {
pname = "ldap-manager-frontend";
inherit version src;
nativeBuildInputs = [
nodejs
pnpmConfigHook
pnpm_10
];
pnpmDeps = fetchPnpmDeps {
pname = "ldap-manager";
inherit version src;
pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-XFdKb43NxslB60GEDIBbKFYRClq0SeUqPwA81SAZaug=";
};
buildPhase = ''
runHook preBuild
pnpm css:build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r internal/web/static $out/static
runHook postInstall
'';
};
in
buildGoModule (finalAttrs: {
pname = "ldap-manager";
inherit version src;
vendorHash = "sha256-ekgnjhO9GAml/A8pf9Hj6lseYJkvvf87f7tiwWixyKU=";
nativeBuildInputs = [
templ
];
patches = [
# Add --version support
# https://github.com/netresearch/ldap-manager/pull/462
(fetchpatch {
url = "https://github.com/netresearch/ldap-manager/pull/462.patch";
hash = "sha256-OykLep7uGZ79/lqOC4KNnSThCqQsmDo6vDqaoWVX3XI=";
})
];
excludedPackages = [
"internal/e2e"
"internal/integration"
];
preBuild = ''
cp -r ${frontend}/static/* internal/web/static/
templ generate
'';
ldflags = [
"-s"
"-X github.com/netresearch/ldap-manager/internal/version.Version=${finalAttrs.version}"
"-X github.com/netresearch/ldap-manager/internal/version.BuildTimestamp=1970-01-01T00:00:00"
];
postInstall = ''
mv $out/bin/ldap-manager $out/bin/ldap-passwd
'';
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Web frontend that allows users to administrate their LDAP users";
homepage = "https://github.com/netresearch/ldap-manager";
changelog = "https://github.com/netresearch/ldap-manager/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ liberodark ];
platforms = lib.platforms.linux;
mainProgram = "ldap-passwd";
};
})
@@ -8,11 +8,11 @@
let
pname = "ledger-live-desktop";
version = "2.141.0";
version = "2.143.0";
src = fetchurl {
url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage";
hash = "sha256-G6mmTAs4Y4XE1GnXusJhJEg68EqTLpW8SaCmpidYR8M=";
hash = "sha256-SFIiXr83XV+FRSgbzOQ0/4rLUMu+FTlo3QxagmVXuJ4=";
};
appimageContents = appimageTools.extractType2 {
+2 -2
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "level-zero";
version = "1.28.0";
version = "1.28.2";
src = fetchFromGitHub {
owner = "oneapi-src";
repo = "level-zero";
tag = "v${finalAttrs.version}";
hash = "sha256-zIVykKB53KyjvBMgYhPCXLaLag3yvQ7D9HsF3oGGm1w=";
hash = "sha256-I/MdWljshkEh7p/3exkC75x1hGgeFIlNySiIN+n19dA=";
};
nativeBuildInputs = [
+1 -3
View File
@@ -22,9 +22,6 @@
libbluray-full, # Used for tests
}:
# Info on how to use:
# https://wiki.archlinux.org/index.php/BluRay
let
jre = jre21_minimal.override {
modules = [
@@ -93,6 +90,7 @@ stdenv.mkDerivation rec {
meta = {
homepage = "http://www.videolan.org/developers/libbluray.html";
description = "Library to access Blu-Ray disks for video playback";
longDescription = "See <https://wiki.archlinux.org/title/Blu-ray> how to use";
license = lib.licenses.lgpl21;
maintainers = [ lib.maintainers.amarshall ];
platforms = lib.platforms.unix;
+2 -2
View File
@@ -9,11 +9,11 @@
}:
let
pname = "lycheeslicer";
version = "7.6.1";
version = "7.6.2";
src = fetchurl {
url = "https://mango-lychee.nyc3.cdn.digitaloceanspaces.com/LycheeSlicer-${version}.AppImage";
hash = "sha256-649Lf6bh1Saee0NrHZ+wqoOUgpy4lxMD2DV7lh6ZNik=";
hash = "sha256-F76Bw6ydPu0pD8xzYmgqchVKmolhDuDmj8w4I/g21VA=";
};
desktopItem = makeDesktopItem {
+2 -2
View File
@@ -19,14 +19,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "mousepad";
version = "0.6.5";
version = "0.7.0";
src = fetchFromGitLab {
domain = "gitlab.xfce.org";
owner = "apps";
repo = "mousepad";
tag = "mousepad-${finalAttrs.version}";
hash = "sha256-5ywpQY4KUnjFCLSAXQo3huzZf94YHK9SLmkkNtfx4Ho=";
hash = "sha256-zoPzMqXfY3ir8MOYXTr+ZNmxISdMgKQEWwIgsVD9oMw=";
};
strictDeps = true;
@@ -0,0 +1,66 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
runCommand,
writeScriptBin,
expect,
nano,
}:
stdenv.mkDerivation (finalAttrs: rec {
pname = "nano-syntax-highlighting";
version = "2025.07.01";
src = fetchFromGitHub {
owner = "galenguyer";
repo = pname;
tag = version;
hash = "sha256-+ydaxjF0CzARxyJU9h1Iq2Yj5JgtAd59sf9yH+PyavY=";
};
dontBuild = true;
installPhase = ''
mkdir -p $out/share
install *.nanorc $out/share/
'';
passthru = {
tests.noSyntaxError =
let
expectScript = writeScriptBin "${pname}-test-syntax.exp" (builtins.readFile ./test-syntax.exp);
in
(runCommand "${pname}-test-noSyntaxError"
{
nativeBuildInputs = [
expect
nano
];
}
''
set -euo pipefail
# For each nanorc file and each syntax, execute text-syntax.exp
for nanorcPath in ${finalAttrs.finalPackage}/share/*.nanorc; do
nano --rcfile "$nanorcPath" --listsyntaxes \
| tail --lines +2 \
| xargs --max-args 1 expect -f ${expectScript}/bin/${pname}-test-syntax.exp "$nanorcPath"
done;
touch $out
''
);
updateScript = nix-update-script { };
};
meta = {
description = "Improved Nano Syntax Highlighting Files, fork of nanorc";
homepage = "https://github.com/galenguyer/nano-syntax-highlighting";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
ilai-deutel
];
platforms = lib.platforms.all;
};
})
+42
View File
@@ -0,0 +1,42 @@
#! /usr/bin/env nix-shell
#! nix-shell -p expect -p nano -i "expect -f"
proc abort {error} {
puts stderr "\n\n\033\[31m$error\033\[39m"
exit 1
}
if {$argc != 2} {
abort [format "Usage: %s <nanorcPath> <syntaxName>" [file tail "$argv0"]]
}
lassign $argv nanorcPath syntaxName
puts stderr "Testing $syntaxName ($nanorcPath)"
set timeout 10
# Ensure nano generates ANSI colors so that we can detect errors
set env(TERM) xterm-256color
spawn nano --rcfile "$nanorcPath" --syntax "$syntaxName"
# Send Ctrl-X (exit)
send "\030"
lassign [wait] _ _ osError exitCode
if {$osError == -1} {
abort "errno: $exitCode"
} elseif {$exitCode != 0} {
abort "nano exited with status $exitCode"
}
expect {
# Check for errors printed to stderr after the nano buffer is closed
# Example: "Error in /nix/store/.../nano.nanorc on line 26: Color 'normal' takes no prefix"
-re {Error.*} {
abort $expect_out(0,string)
}
# Check for Nano status bar errors (red background: \033[41m)
# Example: "Unknown syntax name: Invalid"
-re {\e\[41m[\s\[]*([^\e]*?)[\s\]]*\e} {
abort $expect_out(1,string)
}
}
+2 -2
View File
@@ -8,13 +8,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "nmrpflash";
version = "0.9.26";
version = "0.9.27";
src = fetchFromGitHub {
owner = "jclehner";
repo = "nmrpflash";
rev = "v${finalAttrs.version}";
hash = "sha256-I+6bZtiwR1DbZ8ykIBVBqo1LdQftUaU301aMh01StqU=";
hash = "sha256-YkkDvr/wgUFpJ8kp15hlU9iHdfefxQCbyrpT2jAjJro=";
};
nativeBuildInputs = [ pkg-config ];
+2 -7
View File
@@ -2,6 +2,7 @@
lib,
stdenvNoCC,
fetchFromGitHub,
installFonts,
}:
stdenvNoCC.mkDerivation {
@@ -16,13 +17,7 @@ stdenvNoCC.mkDerivation {
rootDir = "ofl/ptmono";
};
installPhase = ''
runHook preInstall
install -Dm644 *.ttf -t $out/share/fonts/truetype
runHook postInstall
'';
nativeBuildInputs = [ installFonts ];
meta = {
homepage = "https://www.paratype.ru/catalog/font/pt/pt-mono";
+2 -7
View File
@@ -2,6 +2,7 @@
lib,
stdenvNoCC,
fetchFromGitHub,
installFonts,
}:
stdenvNoCC.mkDerivation {
@@ -16,13 +17,7 @@ stdenvNoCC.mkDerivation {
rootDir = "ofl/ptsans";
};
installPhase = ''
runHook preInstall
install -Dm644 *.ttf -t $out/share/fonts/truetype
runHook postInstall
'';
nativeBuildInputs = [ installFonts ];
meta = {
homepage = "https://www.paratype.ru/catalog/font/pt/pt-sans";
@@ -2,6 +2,7 @@
lib,
stdenvNoCC,
fetchFromGitHub,
installFonts,
}:
stdenvNoCC.mkDerivation {
@@ -16,13 +17,7 @@ stdenvNoCC.mkDerivation {
rootDir = "ofl/ptserif";
};
installPhase = ''
runHook preInstall
install -Dm644 *.ttf -t $out/share/fonts/truetype
runHook postInstall
'';
nativeBuildInputs = [ installFonts ];
meta = {
homepage = "https://www.paratype.ru/catalog/font/pt/pt-serif";
@@ -12,11 +12,11 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "plasticscm-client-core-unwrapped";
version = "11.0.16.9943";
version = "11.0.16.9973";
src = fetchurl {
url = "https://www.plasticscm.com/plasticrepo/stable/debian/amd64/plasticscm-client-core_${finalAttrs.version}_amd64.deb";
hash = "sha256-8YQhrRxqRfyc3n2MfVGOchOlRpr2WuteOR40dIwMOF4=";
hash = "sha256-Pu9Q+lzgCeg3TZ6d+TvmJ3Z1Lr3UNJ20ByjovLpk+qw=";
nativeBuildInputs = [ dpkg ];
downloadToTemp = true;
recursiveHash = true;
@@ -11,11 +11,11 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "plasticscm-client-gui-unwrapped";
version = "11.0.16.9943";
version = "11.0.16.9973";
src = fetchurl {
url = "https://www.plasticscm.com/plasticrepo/stable/debian/amd64/plasticscm-client-gui_${finalAttrs.version}_amd64.deb";
hash = "sha256-h3yMePj9064YSw5kIHSuTEwF5puDEaEKpylQdmzIXUE=";
hash = "sha256-NdX8XQCf3bRKbiRYnLRV89kC/kN7NUzeBqS5jlPhCLE=";
nativeBuildInputs = [ dpkg ];
downloadToTemp = true;
recursiveHash = true;
+1 -1
View File
@@ -11,7 +11,7 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "plasticscm-theme";
version = "11.0.16.9943";
version = "11.0.16.9973";
src = fetchurl {
url = "https://www.plasticscm.com/plasticrepo/stable/debian/amd64/plasticscm-theme_${finalAttrs.version}_amd64.deb";
+3 -3
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation {
pname = "re-Isearch";
version = "2.20220925.4.0a-unstable-2026-02-06";
version = "2.20220925.4.0a-unstable-2026-03-03";
src = fetchFromGitHub {
owner = "re-Isearch";
repo = "re-Isearch";
rev = "4295a8c6716d63d04738c5a6486914b51e3b6dcd";
hash = "sha256-rQoF4HTtdQQEj86g2g2MRJdwwlLNTUpunP9+f1IZOzg=";
rev = "54054aab10fce6ab0a3b0271034fcc85b2a4f99d";
hash = "sha256-+djhBlIHxcwWP80hydgkgLWuOnyHL9nVpQ7pqzUv8rI=";
};
patches = [
@@ -19,16 +19,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "rusty-path-of-building";
version = "0.2.10";
version = "0.2.11";
src = fetchFromGitHub {
owner = "meehl";
repo = "rusty-path-of-building";
rev = "v${version}";
hash = "sha256-odiiYWoBfcnPNfXsxj0gt/ra6Z3zeBQdWRjF7BazffY=";
hash = "sha256-oDhapNQ5yiZFolI7ChDC7SjPkmkeUAutRmQt/AorStA=";
};
cargoHash = "sha256-OX4L8EmgMJVT6sFZRdhPl36ZUcXq2JEFpb/PJml2YE8=";
cargoHash = "sha256-GEHsHxGAzD7UEte1XsoqOXLkFaquNUCMqTO5j+lVguA=";
nativeBuildInputs = [
pkg-config
+5 -5
View File
@@ -55,13 +55,13 @@ let
'';
});
version = "8.0.0";
version = "8.1.0";
src = fetchFromGitHub {
owner = "signalapp";
repo = "Signal-Desktop";
tag = "v${version}";
hash = "sha256-7Z9VoqNYTrAdIAeXVijJofThYuMMcDTVykwdWrpOmX0=";
hash = "sha256-pxylCBDEHOxcJeo/117661UMHSIKS7NSVJhwU48hPiA=";
};
sticker-creator = stdenv.mkDerivation (finalAttrs: {
@@ -163,15 +163,15 @@ stdenv.mkDerivation (finalAttrs: {
fetcherVersion = 3;
hash =
if withAppleEmojis then
"sha256-BsHBdN9pk3Fi6HRJuMmMD9QU/iie2m1jZy/zSsIO6Q8="
"sha256-XYLpn4yXEF0xBM2XkgeeGBCDQZepLvKwDJunbefq3XU="
else
"sha256-3HLBKd2KzGWUuhIWCPx2teub9isYMHKYw0cgPVOueQI=";
"sha256-f0aOXmjw/RtQ70qQjwuGxRxhsFMk1jaqGr2Y1YOpMGg=";
};
env = {
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
SIGNAL_ENV = "production";
SOURCE_DATE_EPOCH = 1772057792;
SOURCE_DATE_EPOCH = 1772664318;
}
// lib.optionalAttrs stdenv.hostPlatform.isDarwin {
# Disable code signing during local macOS builds.
+2 -2
View File
@@ -19,11 +19,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "survex";
version = "1.4.19";
version = "1.4.20";
src = fetchurl {
url = "https://survex.com/software/${finalAttrs.version}/survex-${finalAttrs.version}.tar.gz";
hash = "sha256-X8FZCZTJ7DkZeYnrzaLCukRhs/kTHwre9F1TTRlK2ro=";
hash = "sha256-mSq/O5nsjHqypTUg/P/dAeIMZKyi5QcCtiydkOhh4N0=";
};
nativeBuildInputs = [
@@ -21,14 +21,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "xfce4-docklike-plugin";
version = "0.5.0";
version = "0.5.1";
src = fetchFromGitLab {
domain = "gitlab.xfce.org";
owner = "panel-plugins";
repo = "xfce4-docklike-plugin";
tag = "xfce4-docklike-plugin-${finalAttrs.version}";
hash = "sha256-1R9qQKqn/CIV36GYmyg54t3xiY23qUs5EMLxvAIavK8=";
hash = "sha256-p4uRdxwV8cfRPQ3eGfa4/Wt3Im7hgze3UvK9a7pW94o=";
};
strictDeps = true;
+2 -2
View File
@@ -31,7 +31,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "xfce4-panel";
version = "4.20.6";
version = "4.20.7";
outputs = [
"out"
@@ -43,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "xfce";
repo = "xfce4-panel";
tag = "xfce4-panel-${finalAttrs.version}";
hash = "sha256-yfiF+ciuRNJzBt3n1rH2ywA1vNGYRVHu2ojf/EIGwyg=";
hash = "sha256-tL32ymLhV1QK84223iEgGrKdZXm5/nB3MumDyDIrSHQ=";
};
nativeBuildInputs = [
@@ -35,14 +35,14 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "xfce4-screensaver";
version = "4.20.1";
version = "4.20.2";
src = fetchFromGitLab {
domain = "gitlab.xfce.org";
owner = "apps";
repo = "xfce4-screensaver";
tag = "xfce4-screensaver-${finalAttrs.version}";
hash = "sha256-FdO6fZTKBPjncjBBe2rK5DSfVLHTRFpo9NtgZ5nFgRU=";
hash = "sha256-zNA43ZrREZB5D0fNa+mmvtA9tDPxIMVpQsHzx/r+hzk=";
};
strictDeps = true;
+2 -2
View File
@@ -22,14 +22,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "xfce4-session";
version = "4.20.3";
version = "4.20.4";
src = fetchFromGitLab {
domain = "gitlab.xfce.org";
owner = "xfce";
repo = "xfce4-session";
tag = "xfce4-session-${finalAttrs.version}";
hash = "sha256-HfVspmAkjuGgoI87VHNHFGZP17ZA0b31llY93gUtWxs=";
hash = "sha256-mL5fOWJtpkpskBQmyYhcVRzGJlzAHsvtcy4j3DceOBE=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -34,14 +34,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "xfce4-settings";
version = "4.20.3";
version = "4.20.4";
src = fetchFromGitLab {
domain = "gitlab.xfce.org";
owner = "xfce";
repo = "xfce4-settings";
tag = "xfce4-settings-${finalAttrs.version}";
hash = "sha256-dQyALVooaie2vkETghddKM4HqAZQmx3E9UJ+ChKtydc=";
hash = "sha256-EAiu29wctXg0EjdFVJOl+0nh1A0l2E44v+i/o5l/PQ8=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "yarn-zpm";
version = "6.0.0-rc.13";
version = "6.0.0-rc.15";
src = fetchFromGitHub {
owner = "yarnpkg";
repo = "zpm";
tag = "v${finalAttrs.version}";
hash = "sha256-Mfzy2dmnQWD8B3bYhMnqAic7rv4JS6pzuqGKrrCqCY0=";
hash = "sha256-2HIEZR8gfze1Xf0LIQiMxjXAjs2NfZrs0mf/l/uku4U=";
};
cargoHash = "sha256-k5lOVe9Ju6BjHswaN7WrzpHgyuOcHTCOEH+ExzUC5lc=";
cargoHash = "sha256-gDgJ2u0Rm8pOB/XILy69qQCFSB5DbqbQI/LcVf/97Ng=";
cargoBuildFlags = [ "--package=zpm" ];
cargoTestFlags = [ "--package=zpm" ];
+2 -2
View File
@@ -26,13 +26,13 @@ let
nodejs = nodejs_22;
pname = "zotero";
version = "8.0.2";
version = "8.0.3";
src = fetchFromGitHub {
owner = "zotero";
repo = "zotero";
tag = version;
hash = "sha256-zGcTZjrbFYbE4qJH5g3betnSLCdxYU2nZBOU55HunYU=";
hash = "sha256-I6s6m8CG1b1BXQK2qIdOqmsNyxzwj3fAfFFuHK7t6ec=";
fetchSubmodules = true;
};
+2 -2
View File
@@ -24,7 +24,7 @@ let
in
stdenv.mkDerivation rec {
pname = "libpeas";
version = "2.2.0";
version = "2.2.1";
outputs = [
"out"
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
hash = "sha256-wohyM/CEpp+r/H+gFA1BBJGGPXBQr7KGd/mlU7JYCtk=";
hash = "sha256-WJ7KibQ3AG7fN1VHjfA3x0CiqEz6XSAtutYJXoKOJIg=";
};
patches = [
@@ -18,7 +18,7 @@
coqPackages,
version ?
if lib.versionAtLeast ocaml.version "4.13" then
"3.4.5"
"3.6.1"
else if lib.versionAtLeast ocaml.version "4.08" then
"1.20.0"
else
@@ -34,6 +34,7 @@ in
let
fetched = coqPackages.metaFetch {
release."3.6.1".sha256 = "sha256-zoVgRqNAXeCgk3zGntVkkZxIiQrCU5+ONeI97BiT674=";
release."3.4.5".sha256 = "sha256-cck6XqC98Z9lb3CYS8K/aB1WOckjAyXzZ14vX41nJvI=";
release."3.4.4".sha256 = "sha256-SvNNAyBYIkSMv3rhx0wVu2JjHdGYUOqaFzZKGBMMebs=";
release."3.4.3".sha256 = "sha256-2bzUzUO/Ps1uxHHIzQx0pULme9upYxBBggenxaQrd+I=";
@@ -13,13 +13,13 @@
buildPythonPackage rec {
pname = "azure-mgmt-postgresqlflexibleservers";
version = "2.0.0";
version = "3.0.0b1";
pyproject = true;
src = fetchPypi {
pname = "azure_mgmt_postgresqlflexibleservers";
inherit version;
hash = "sha256-E9L0W6IYo2T7BAVoT4Bw8mGuPtWX1aVNBOMphzLEzao=";
hash = "sha256-Vo1/vuxAAgVznCppDZCTygNFAMl5uopc3QbiEeFbLv8=";
};
build-system = [
@@ -10,13 +10,13 @@
buildPythonPackage rec {
pname = "azure-mgmt-redhatopenshift";
version = "2.0.0";
version = "3.0.0";
pyproject = true;
src = fetchPypi {
pname = "azure_mgmt_redhatopenshift";
inherit version;
hash = "sha256-nTBKy7p8n0JWEmn3ByEKranHteoJkPJyLfYFmaCOOq4=";
hash = "sha256-R3XJvfNjI4g02hReX1n5doOrBPjdvSUN5F1F4zeYMn8=";
};
build-system = [ setuptools ];
@@ -13,7 +13,6 @@
httpx,
packaging,
pyyaml,
shellingham,
tqdm,
typer,
typing-extensions,
@@ -35,21 +34,16 @@
buildPythonPackage (finalAttrs: {
pname = "huggingface-hub";
version = "1.4.1";
version = "1.5.0";
pyproject = true;
src = fetchFromGitHub {
owner = "huggingface";
repo = "huggingface_hub";
tag = "v${finalAttrs.version}";
hash = "sha256-At3FN+dplQ3L9B4vDZrEvREdwgepUvzWC7yeU6L5XY8=";
hash = "sha256-XuqZvTu3DuncGpRWXipxtDLY2alY7QVm89ZmpgTdfVo=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail "typer-slim" "typer"
'';
build-system = [ setuptools ];
dependencies = [
@@ -59,7 +53,6 @@ buildPythonPackage (finalAttrs: {
httpx
packaging
pyyaml
shellingham
tqdm
typer
typing-extensions
@@ -17,6 +17,7 @@
lsof,
pillow,
pytest-cov-stub,
pytest-rerunfailures,
pytest,
pyvirtualdisplay,
xvfb-run,
@@ -48,6 +49,7 @@ buildPythonPackage rec {
lsof
pillow
pytest-cov-stub
pytest-rerunfailures
pytest
pyvirtualdisplay
xvfb-run
@@ -55,7 +57,7 @@ buildPythonPackage rec {
checkPhase = ''
runHook preCheck
xvfb-run pytest -k "not test_grab_with_tuple and not test_grab_with_tuple_percents and not test_resource_leaks"
xvfb-run pytest -v -k "not test_grab_with_tuple and not test_grab_with_tuple_percents and not test_resource_leaks"
runHook postCheck
'';
@@ -112,6 +112,7 @@ buildPythonPackage rec {
doCheck = false;
meta = {
broken = true;
description = "OpenAI's Code Interpreter in your terminal, running locally";
homepage = "https://github.com/KillianLucas/open-interpreter";
license = lib.licenses.mit;
@@ -93,21 +93,16 @@
buildPythonPackage (finalAttrs: {
pname = "transformers";
version = "5.2.0";
version = "5.3.0";
pyproject = true;
src = fetchFromGitHub {
owner = "huggingface";
repo = "transformers";
tag = "v${finalAttrs.version}";
hash = "sha256-vus4Y+1QXUNqwBO1ZK0gWd+sJBPwrqWW7O2sn0EBvno=";
hash = "sha256-5FzsPIG4dFTR2WgcZbdmVwwwY9Dkqu5aprl5uIIalD0=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail "typer-slim" "typer"
'';
build-system = [ setuptools ];
dependencies = [
@@ -21,12 +21,12 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "amdsmi";
version = "7.1.1";
version = "7.2.0";
src = fetchFromGitHub {
owner = "rocm";
repo = "amdsmi";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-BGe3+8YFwu41ZVAF+VtN5Cn9pfzGxmCg/Rpq8qWOEoM=";
hash = "sha256-3V3B9+B3cpg0ebvsmX6wwvKoTIHbXtvbpIQHs4tkeWU=";
};
postPatch = ''
@@ -8,12 +8,12 @@
stdenv.mkDerivation {
pname = "aqlprofile";
version = "7.1.1";
version = "7.2.0";
src = fetchFromGitHub {
owner = "ROCm";
repo = "aqlprofile";
tag = "rocm-7.1.1";
tag = "rocm-7.2.0";
hash = "sha256-MAZUHo52gb0aZSFnKugMlXxcDkmMwhy1AFF1RDRgRVk=";
};
@@ -70,7 +70,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "clr";
version = "7.1.1";
version = "7.2.0";
outputs = [
"out"
@@ -84,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ROCm";
repo = "clr";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-ofsq1uqMixtum5C6cp/UgTDpgGPfj+rAd6PoDx5iLLw=";
hash = "sha256-zz2O4Qsl1zXMC25L714azsFR2PROAvdpjgKhRolmt1w=";
};
nativeBuildInputs = [
@@ -148,8 +148,8 @@ stdenv.mkDerivation (finalAttrs: {
./cmake-find-x11-libgl.patch
(fetchpatch {
# [PATCH] rocclr: Extend HIP ISA compatibility checks
sha256 = "sha256-InUSIFI1MgkfocBEoZjO2BCgXNyfF10ehh9jkTtAPXs=";
url = "https://github.com/GZGavinZhao/rocm-systems/commit/937dcfdd316b589509c061809186fe5451d22431.patch";
hash = "sha256-3MsDL+OQg24wH1RDhbao74RuIbzEAmduwla9KOPzQ/M=";
url = "https://github.com/GZGavinZhao/rocm-systems/commit/039cb23b24d739adb8c0f9de8b550d9f557de031.patch";
relative = "projects/clr";
})
];
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
pname = "composable_kernel_base";
version = "7.1.1";
version = "7.2.0";
outputs = [
"out"
@@ -58,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ROCm";
repo = "composable_kernel";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-exdkyTIK03dzlCXHm3j8ehEb9NxLOxPX9QyfMsiCgSs=";
hash = "sha256-ABL0MSmWtqAeY5uyw8Ib64npB2v82baUnzLpmrEgDn4=";
};
nativeBuildInputs = [
@@ -54,6 +54,7 @@ let
targets = [
"device_grouped_conv1d_fwd_instance"
"device_grouped_conv2d_fwd_instance"
"device_grouped_conv2d_fwd_bias_bnorm_clamp_instance"
"device_grouped_conv2d_fwd_bias_clamp_instance"
"device_grouped_conv2d_fwd_clamp_instance"
"device_grouped_conv2d_fwd_dynamic_op_instance"
@@ -77,6 +78,7 @@ let
targets = [
"device_grouped_conv3d_fwd_instance"
"device_grouped_conv3d_fwd_clamp_instance"
"device_grouped_conv3d_fwd_bias_bnorm_clamp_instance"
"device_grouped_conv3d_fwd_bias_clamp_instance"
"device_grouped_conv3d_fwd_bilinear_instance"
"device_grouped_conv3d_fwd_convinvscale_instance"
@@ -9,7 +9,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "half";
version = "7.1.1";
version = "7.2.0";
src = fetchFromGitHub {
owner = "ROCm";
@@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "hip-common";
version = "7.1.1";
version = "7.2.0";
src = fetchFromGitHub {
owner = "ROCm";
repo = "HIP";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-aI41HdyzyE5HtCbzFmTQYGMiFyQELM/MTVOAbQsg8So=";
hash = "sha256-eQ+jHc6MlZePPIwJQMB8NKiEcE26i83+U21vKgfGFFM=";
};
dontConfigure = true;
@@ -8,13 +8,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "hipblas-common";
version = "7.1.1";
version = "7.2.0";
src = fetchFromGitHub {
owner = "ROCm";
repo = "hipBLAS-common";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-sswqYIv3c5ArT6dQ3MRru7ZZVA0VxoKW/a0pYTBpjgE=";
hash = "sha256-oOelDrk7TLe9/17fzaw6CDPL4MGAoITJL90ahHzhaAE=";
};
nativeBuildInputs = [
@@ -24,7 +24,7 @@
# Can also use cuBLAS
stdenv.mkDerivation (finalAttrs: {
pname = "hipblas";
version = "7.1.1";
version = "7.2.0";
outputs = [
"out"
@@ -43,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ROCm";
repo = "hipBLAS";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-2wDnYZapJ4fU/JZpy6qOf5+DYuatWmCw/hA8WO5x2T0=";
hash = "sha256-w7myy4FO2vKm91OOfSGWO3bxR8jAvjU68oqI7aJX82c=";
};
postPatch = ''
@@ -1,53 +1,3 @@
diff --git a/tensilelite/Tensile/SolutionStructs/Naming.py b/tensilelite/Tensile/SolutionStructs/Naming.py
index 4f220960db1d..99535e246650 100644
--- a/tensilelite/Tensile/SolutionStructs/Naming.py
+++ b/tensilelite/Tensile/SolutionStructs/Naming.py
@@ -105,7 +105,6 @@ def _getName(state, requiredParameters: frozenset, splitGSU: bool, ignoreInterna
if splitGSU:
state["GlobalSplitU"] = "M" if (state["GlobalSplitU"] > 1 or state["GlobalSplitU"] == -1) else state["GlobalSplitU"]
-
requiredParametersTemp = set(requiredParameters.union(["GlobalSplitU"]))
if ignoreInternalArgs:
diff --git a/tensilelite/Tensile/CustomYamlLoader.py b/tensilelite/Tensile/CustomYamlLoader.py
index bab8c687509..e03f456fbec 100644
--- a/tensilelite/Tensile/CustomYamlLoader.py
+++ b/tensilelite/Tensile/CustomYamlLoader.py
@@ -1,3 +1,6 @@
+# Copyright © Advanced Micro Devices, Inc., or its affiliates.
+# SPDX-License-Identifier: MIT
+
import yaml
from pathlib import Path
Author: Luna Nova <git@lunnova.dev>
Date: Sun Oct 12 11:52:10 2025 -0700
[hipblaslt] intern strings to reduce duplicate memory for solution keys
diff --git a/tensilelite/Tensile/CustomYamlLoader.py b/tensilelite/Tensile/CustomYamlLoader.py
index 685e69220c..9fdf38d8e5 100644
--- a/tensilelite/Tensile/CustomYamlLoader.py
+++ b/tensilelite/Tensile/CustomYamlLoader.py
@@ -1,6 +1,7 @@
# Copyright © Advanced Micro Devices, Inc., or its affiliates.
# SPDX-License-Identifier: MIT
+import sys
import yaml
from pathlib import Path
@@ -85,7 +86,7 @@ def parse_scalar(loader: yaml.Loader):
if not evt.style:
return None
- return value
+ return sys.intern(value)
def load_yaml_stream(yaml_path: Path, loader_type: yaml.Loader):
with open(yaml_path, 'r') as f:
diff --git a/tensilelite/Tensile/Common/Parallel.py b/tensilelite/Tensile/Common/Parallel.py
index 1a2bf9e119..f46100c7b8 100644
--- a/tensilelite/Tensile/Common/Parallel.py
@@ -55,7 +5,7 @@ index 1a2bf9e119..f46100c7b8 100644
@@ -22,43 +22,58 @@
#
################################################################################
-import concurrent.futures
-import itertools
+import multiprocessing
@@ -67,10 +17,10 @@ index 1a2bf9e119..f46100c7b8 100644
-from joblib import Parallel, delayed
+from functools import partial
+from typing import Any, Callable
from .Utilities import tqdm
-def joblibParallelSupportsGenerator():
- import joblib
- from packaging.version import Version
@@ -81,7 +31,7 @@ index 1a2bf9e119..f46100c7b8 100644
+ return int(os.environ['CMAKE_BUILD_PARALLEL_LEVEL'])
+ except ValueError:
+ pass
- joblibVer = joblib.__version__
- return Version(joblibVer) >= Version("1.4.0")
+ # 2. Parse MAKEFLAGS for -jN
@@ -89,12 +39,12 @@ index 1a2bf9e119..f46100c7b8 100644
+ match = re.search(r'-j\s*(\d+)', makeflags)
+ if match:
+ return int(match.group(1))
+ return -1
-def CPUThreadCount(enable=True):
- from .GlobalParameters import globalParameters
+def CPUThreadCount(enable=True):
if not enable:
return 1
@@ -121,7 +71,7 @@ index 1a2bf9e119..f46100c7b8 100644
- if cpuThreads == -1:
- return cpu_count
+ cpuThreads = len(os.sched_getaffinity(0))
- return min(cpu_count, cpuThreads)
+ if os.name == "nt":
+ # Windows supports at most 61 workers because the scheduler uses
@@ -129,13 +79,13 @@ index 1a2bf9e119..f46100c7b8 100644
+ # is actually 64, but some handles are needed for accounting).
+ cpuThreads = min(cpuThreads, 61)
+ return max(1, cpuThreads)
def pcallWithGlobalParamsMultiArg(f, args, newGlobalParameters):
@@ -71,19 +86,22 @@ def pcallWithGlobalParamsSingleArg(f, arg, newGlobalParameters):
return f(arg)
-def apply_print_exception(item, *args):
- # print(item, args)
+def OverwriteGlobalParameters(newGlobalParameters):
@@ -166,8 +116,8 @@ index 1a2bf9e119..f46100c7b8 100644
finally:
@@ -98,154 +116,121 @@ def OverwriteGlobalParameters(newGlobalParameters):
GlobalParameters.globalParameters.update(newGlobalParameters)
-def ProcessingPool(enable=True, maxTasksPerChild=None):
- import multiprocessing
- import multiprocessing.dummy
@@ -191,10 +141,10 @@ index 1a2bf9e119..f46100c7b8 100644
+def progress_logger(iterable, total, message, min_log_interval=5.0):
+ """
+ Generator that wraps an iterable and logs progress with time-based throttling.
+ Only logs progress if at least min_log_interval seconds have passed since last log.
+ Only prints completion message if task took >= min_log_interval seconds.
-def ParallelMap(function, objects, message="", enable=True, method=None, maxTasksPerChild=None):
+ Yields (index, item) tuples.
"""
@@ -212,7 +162,7 @@ index 1a2bf9e119..f46100c7b8 100644
+ start_time = time.time()
+ last_log_time = start_time
+ log_interval = 1 + (total // 100)
- threadCount = CPUThreadCount(enable)
- pool = ProcessingPool(enable, maxTasksPerChild)
-
@@ -251,12 +201,12 @@ index 1a2bf9e119..f46100c7b8 100644
+ print(f"{message}\t{idx+1: 5d}/{total: 5d}")
+ last_log_time = current_time
+ yield idx, item
- if message != "":
- message += ": "
+ elapsed = time.time() - start_time
+ final_idx = idx + 1 if 'idx' in locals() else 0
- print("{0}Launching {1} threads{2}...".format(message, threadCount, countMessage))
- sys.stdout.flush()
- currentTime = time.time()
@@ -268,8 +218,8 @@ index 1a2bf9e119..f46100c7b8 100644
- return rv
+ if elapsed >= min_log_interval or last_log_time > start_time:
+ print(f"{message} done in {elapsed:.1f}s!\t{final_idx: 5d}/{total: 5d}")
-def ParallelMapReturnAsGenerator(function, objects, message="", enable=True, multiArg=True):
- from .GlobalParameters import globalParameters
+def imap_with_progress(pool, func, iterable, total, message, chunksize):
@@ -277,10 +227,10 @@ index 1a2bf9e119..f46100c7b8 100644
+ for _, result in progress_logger(pool.imap(func, iterable, chunksize=chunksize), total, message):
+ results.append(result)
+ return results
- threadCount = CPUThreadCount(enable)
- print("{0}Launching {1} threads...".format(message, threadCount))
- if threadCount <= 1 and globalParameters["ShowProgressBar"]:
- # Provide a progress bar for single-threaded operation.
- callFunc = lambda args: function(*args) if multiArg else lambda args: function(args)
@@ -288,7 +238,7 @@ index 1a2bf9e119..f46100c7b8 100644
+def _ParallelMap_generator(worker, objects, objLen, message, chunksize, threadCount, globalParameters, maxtasksperchild):
+ # separate fn because yield makes the entire fn a generator even if unreachable
+ ctx = multiprocessing.get_context('forkserver' if os.name != 'nt' else 'spawn')
- with concurrent.futures.ProcessPoolExecutor(max_workers=threadCount) as executor:
- resultFutures = (executor.submit(function, *arg if multiArg else arg) for arg in objects)
- for result in concurrent.futures.as_completed(resultFutures):
@@ -297,8 +247,8 @@ index 1a2bf9e119..f46100c7b8 100644
+ initializer=OverwriteGlobalParameters, initargs=(globalParameters,)) as pool:
+ for _, result in progress_logger(pool.imap_unordered(worker, objects, chunksize=chunksize), objLen, message):
+ yield result
def ParallelMap2(
- function, objects, message="", enable=True, multiArg=True, return_as="list", procs=None
+ function: Callable,
@@ -333,7 +283,7 @@ index 1a2bf9e119..f46100c7b8 100644
"""
- Generally equivalent to list(map(function, objects)), possibly executing in parallel.
+ from .GlobalParameters import globalParameters
- message: A message describing the operation to be performed.
- enable: May be set to false to disable parallelism.
- multiArg: True if objects represent multiple arguments
@@ -342,23 +292,23 @@ index 1a2bf9e119..f46100c7b8 100644
- if return_as in ("generator", "generator_unordered") and not joblibParallelSupportsGenerator():
- return ParallelMapReturnAsGenerator(function, objects, message, enable, multiArg)
+ threadCount = CPUThreadCount(enable)
- from .GlobalParameters import globalParameters
+ if not hasattr(objects, "__len__"):
+ objects = list(objects)
- threadCount = procs if procs else CPUThreadCount(enable)
+ objLen = len(objects)
+ if objLen == 0:
+ return [] if return_as == "list" else iter([])
- threadCount = CPUThreadCount(enable)
+ f = (lambda x: function(*x)) if multiArg else function
+ if objLen == 1:
+ print(f"{message}: (1 task)")
+ result = [f(x) for x in objects]
+ return result if return_as == "list" else iter(result)
- if threadCount <= 1 and globalParameters["ShowProgressBar"]:
- # Provide a progress bar for single-threaded operation.
- return [function(*args) if multiArg else function(args) for args in tqdm(objects, message)]
@@ -367,7 +317,7 @@ index 1a2bf9e119..f46100c7b8 100644
+ if objLen
+ else ""
+ )
- countMessage = ""
- try:
- countMessage = " for {} tasks".format(len(objects))
@@ -419,19 +369,19 @@ index ffceb636f5..127b3386a1 100644
--- a/tensilelite/Tensile/CustomKernels.py
+++ b/tensilelite/Tensile/CustomKernels.py
@@ -24,7 +24,9 @@
from . import CUSTOM_KERNEL_PATH
from Tensile.Common.ValidParameters import checkParametersAreValid, validParameters, newMIValidParameters
+from Tensile.CustomYamlLoader import DEFAULT_YAML_LOADER
+from functools import lru_cache
import yaml
import os
@@ -58,10 +60,13 @@ def getCustomKernelConfigAndAssembly(name, directory=CUSTOM_KERNEL_PATH):
return (config, assembly)
+# getCustomKernelConfig will get called repeatedly on the same file
+# 20x logic loading speedup for aquavanjaram_Cijk_Ailk_Bljk_F8NH_HHS_BH_Bias_HAS_SAB_SAV_freesize_custom_GSUs
+@lru_cache
@@ -442,13 +392,34 @@ index ffceb636f5..127b3386a1 100644
+ return yaml.load(rawConfig, Loader=DEFAULT_YAML_LOADER)["custom.config"]
except yaml.scanner.ScannerError as e:
raise RuntimeError("Failed to read configuration for custom kernel: {0}\nDetails:\n{1}".format(name, e))
diff --git a/tensilelite/Tensile/CustomYamlLoader.py b/tensilelite/Tensile/CustomYamlLoader.py
index e03f456fbe..ed7510f2ce 100644
--- a/tensilelite/Tensile/CustomYamlLoader.py
+++ b/tensilelite/Tensile/CustomYamlLoader.py
@@ -1,6 +1,7 @@
# Copyright © Advanced Micro Devices, Inc., or its affiliates.
# SPDX-License-Identifier: MIT
+import sys
import yaml
from pathlib import Path
@@ -70,7 +71,7 @@ def parse_scalar(loader: yaml.Loader):
elif is_float(value_lower):
return float(value_lower)
- return value
+ return sys.intern(value)
def load_yaml_stream(yaml_path: Path, loader_type: yaml.Loader):
with open(yaml_path, 'r') as f:
diff --git a/tensilelite/Tensile/TensileCreateLibrary/Run.py b/tensilelite/Tensile/TensileCreateLibrary/Run.py
index 835ed9c019..024c6c49c1 100644
index 22d19851a3..348068b3bf 100644
--- a/tensilelite/Tensile/TensileCreateLibrary/Run.py
+++ b/tensilelite/Tensile/TensileCreateLibrary/Run.py
@@ -26,8 +26,10 @@ import rocisa
import functools
import glob
+import gc
@@ -460,8 +431,8 @@ index 835ed9c019..024c6c49c1 100644
from timeit import default_timer as timer
@@ -78,6 +80,25 @@ from Tensile.Utilities.Decorators.Timing import timing
from .ParseArguments import parseArguments
+def getMemoryUsage():
+ """Get peak and current memory usage in MB."""
+ rusage = resource.getrusage(resource.RUSAGE_SELF)
@@ -484,11 +455,11 @@ index 835ed9c019..024c6c49c1 100644
class KernelCodeGenResult(NamedTuple):
err: int
src: str
@@ -115,6 +136,29 @@ def processKernelSource(kernelWriterAssembly, data, splitGSU, kernel) -> KernelC
@@ -115,6 +136,29 @@ def processKernelSource(kernelWriterAssembly, data, outOptions, splitGSU, kernel
)
+def processAndAssembleKernelTCL(kernelWriterAssembly, rocisa_data, splitGSU, kernel, assemblyTmpPath, assembler):
+def processAndAssembleKernelTCL(kernelWriterAssembly, rocisa_data, outOptions, splitGSU, kernel, assemblyTmpPath, assembler):
+ """
+ Pipeline function for TCL mode that:
+ 1. Generates kernel source
@@ -496,7 +467,7 @@ index 835ed9c019..024c6c49c1 100644
+ 3. Assembles to .o file
+ 4. Deletes .s file
+ """
+ result = processKernelSource(kernelWriterAssembly, rocisa_data, splitGSU, kernel)
+ result = processKernelSource(kernelWriterAssembly, rocisa_data, outOptions, splitGSU, kernel)
+ return writeAndAssembleKernel(result, assemblyTmpPath, assembler)
+
+
@@ -516,8 +487,8 @@ index 835ed9c019..024c6c49c1 100644
removeKernelNames = []
@@ -189,6 +233,24 @@ def writeAssembly(asmPath: Union[Path, str], result: KernelCodeGenResult):
return path, isa, wfsize, minResult
+def writeAndAssembleKernel(result: KernelCodeGenResult, asmPath: Union[Path, str], assembler):
+ """Write assembly file and immediately assemble it to .o file"""
+ if result.err:
@@ -539,13 +510,14 @@ index 835ed9c019..024c6c49c1 100644
def writeHelpers(
outputPath, kernelHelperObjs, KERNEL_HELPER_FILENAME_CPP, KERNEL_HELPER_FILENAME_H
):
@@ -268,13 +330,14 @@ def writeSolutionsAndKernels(
@@ -272,14 +334,15 @@ def writeSolutionsAndKernels(
numAsmKernels = len(asmKernels)
numKernels = len(asmKernels)
assert numKernels == numAsmKernels, "Only assembly kernels are supported in TensileLite"
- asmIter = zip(
- itertools.repeat(kernelWriterAssembly),
- itertools.repeat(rocisa.rocIsa.getInstance().getData()),
- itertools.repeat(outOptions),
- itertools.repeat(splitGSU),
- asmKernels
+
@@ -553,6 +525,7 @@ index 835ed9c019..024c6c49c1 100644
+ processKernelSource,
+ kernelWriterAssembly=kernelWriterAssembly,
+ data=rocisa.rocIsa.getInstance().getData(),
+ outOptions=outOptions,
+ splitGSU=splitGSU
)
- asmResults = ParallelMap2(processKernelSource, asmIter, "Generating assembly kernels", return_as="list")
@@ -560,12 +533,12 @@ index 835ed9c019..024c6c49c1 100644
removeInvalidSolutionsAndKernels(
asmResults, asmKernels, solutions, errorTolerant, getVerbosity(), splitGSU
)
@@ -282,19 +345,21 @@ def writeSolutionsAndKernels(
@@ -287,19 +350,21 @@ def writeSolutionsAndKernels(
asmResults, asmKernels, solutions, splitGSU
)
- def assemble(ret):
- p, isa, wavefrontsize, result = ret
- p, isa, wavefrontsize, _ = ret
- asmToolchain.assembler(isaToGfx(isa), wavefrontsize, str(p), str(p.with_suffix(".o")))
-
- unaryWriteAssembly = functools.partial(writeAssembly, assemblyTmpPath)
@@ -586,33 +559,41 @@ index 835ed9c019..024c6c49c1 100644
)
+ del asmResults
+ gc.collect()
writeHelpers(outputPath, kernelHelperObjs, KERNEL_HELPER_FILENAME_CPP, KERNEL_HELPER_FILENAME_H)
srcKernelFile = Path(outputPath) / "Kernels.cpp"
@@ -369,32 +434,31 @@ def writeSolutionsAndKernelsTCL(
@@ -376,40 +441,35 @@ def writeSolutionsAndKernelsTCL(
uniqueAsmKernels = [k for k in asmKernels if not k.duplicate]
- def assemble(ret):
- p, isa, wavefrontsize, result = ret
- asmToolchain.assembler(isaToGfx(isa), wavefrontsize, str(p), str(p.with_suffix(".o")))
- def assemble(ret, removeTemporaries: bool):
- asmPath, isa, wavefrontsize, result = ret
- asmToolchain.assembler(isaToGfx(isa), wavefrontsize, str(asmPath), str(asmPath.with_suffix(".o")))
- if removeTemporaries:
- asmPath.unlink()
- return result
-
- unaryAssemble = functools.partial(assemble, removeTemporaries=removeTemporaries)
-
outOptions = rocisa.rocIsa.getInstance().getOutputOptions()
outOptions.outputNoComment = not disableAsmComments
- unaryProcessKernelSource = functools.partial(
- processKernelSource,
+ processKernelFn = functools.partial(
+ processAndAssembleKernelTCL,
kernelWriterAssembly,
rocisa.rocIsa.getInstance().getData(),
outOptions,
splitGSU,
+ assemblyTmpPath=assemblyTmpPath,
+ assembler=asmToolchain.assembler
)
- unaryWriteAssembly = functools.partial(writeAssembly, assemblyTmpPath)
- compose = lambda *F: functools.reduce(lambda f, g: lambda x: f(g(x)), F)
- ret = ParallelMap2(
- compose(assemble, unaryWriteAssembly, unaryProcessKernelSource),
- compose(unaryAssemble, unaryWriteAssembly, unaryProcessKernelSource),
+ results = ParallelMap2(
+ processKernelFn,
uniqueAsmKernels,
@@ -635,10 +616,10 @@ index 835ed9c019..024c6c49c1 100644
buildAssemblyCodeObjectFiles(
asmToolchain.linker,
asmToolchain.bundler,
@@ -493,6 +557,15 @@ def generateKernelHelperObjects(solutions: List[Solution], cxxCompiler: str, isa
@@ -508,6 +568,15 @@ def generateKernelHelperObjects(solutions: List[Solution], cxxCompiler: str, isa
return sorted(khos, key=sortByEnum, reverse=True) # Ensure that we write Enum kernel helpers are first in list
+def libraryIter(lib: MasterSolutionLibrary):
+ if len(lib.solutions):
+ for i, s in enumerate(lib.solutions.items()):
@@ -650,11 +631,11 @@ index 835ed9c019..024c6c49c1 100644
+
@timing
def generateLogicDataAndSolutions(logicFiles, args, assembler: Assembler, isaInfoMap):
@@ -508,26 +581,23 @@ def generateLogicDataAndSolutions(logicFiles, args, assembler: Assembler, isaInf
@@ -523,26 +592,23 @@ def generateLogicDataAndSolutions(logicFiles, args, assembler: Assembler, isaInf
printSolutionRejectionReason = True
printIndexAssignmentInfo = False
- fIter = zip(
- logicFiles,
- itertools.repeat(assembler),
@@ -672,7 +653,7 @@ index 835ed9c019..024c6c49c1 100644
+ isaInfoMap=isaInfoMap,
+ lazyLibraryLoading=args["LazyLibraryLoading"]
)
- def libraryIter(lib: MasterSolutionLibrary):
- if len(lib.solutions):
- for i, s in enumerate(lib.solutions.items()):
@@ -691,31 +672,31 @@ index 835ed9c019..024c6c49c1 100644
+ multiArg=False,
):
_, architectureName, _, _, _, newLibrary = library
@@ -539,6 +609,9 @@ def generateLogicDataAndSolutions(logicFiles, args, assembler: Assembler, isaInf
@@ -554,6 +620,9 @@ def generateLogicDataAndSolutions(logicFiles, args, assembler: Assembler, isaInf
else:
masterLibraries[architectureName] = newLibrary
masterLibraries[architectureName].version = args["CodeObjectVersion"]
+ del library, newLibrary
+
+ gc.collect()
# Sort masterLibraries to make global soln index values deterministic
solnReIndex = 0
@@ -734,6 +807,9 @@ def run():
@@ -751,6 +820,9 @@ def run():
)
stop_wsk = timer()
print(f"Time to generate kernels (s): {(stop_wsk-start_wsk):3.2f}")
+ numKernelHelperObjs = len(kernelHelperObjs)
+ del kernelWriterAssembly, kernelHelperObjs
+ gc.collect()
archs = [ # is this really different than the other archs above?
isaToGfx(arch)
@@ -751,13 +827,10 @@ def run():
@@ -768,13 +840,10 @@ def run():
if kName not in solDict:
solDict["%s"%kName] = kernel
- def writeMsl(name, lib):
- filename = os.path.join(newLibraryDir, name)
- lib.applyNaming(splitGSU)
@@ -725,13 +706,13 @@ index 835ed9c019..024c6c49c1 100644
LibraryIO.write(filename, libraryMapping, "msgpack")
+ del libraryMapping
+ gc.collect()
start_msl = timer()
for archName, newMasterLibrary in masterLibraries.items():
@@ -774,12 +847,22 @@ def run():
@@ -791,12 +860,22 @@ def run():
kName = getKeyNoInternalArgs(s.originalSolution, splitGSU)
s.sizeMapping.CUOccupancy = solDict["%s"%kName]["CUOccupancy"]
- ParallelMap2(writeMsl,
+ writeFn = functools.partial(
+ writeMasterSolutionLibrary,
@@ -749,15 +730,15 @@ index 835ed9c019..024c6c49c1 100644
print(f"Time to write master solution libraries (s): {(stop_msl-start_msl):3.2f}")
+ del masterLibraries, solutions, kernels, solDict
+ gc.collect()
if not arguments["KeepBuildTmp"]:
buildTmp = Path(arguments["OutputPath"]).parent / "library" / "build_tmp"
@@ -796,8 +879,11 @@ def run():
@@ -813,8 +892,11 @@ def run():
print("")
stop = timer()
+ peak_memory_mb, current_memory_mb = getMemoryUsage()
print(f"Total time (s): {(stop-start):3.2f}")
print(f"Total kernels processed: {numKernels}")
print(f"Kernels processed per second: {(numKernels/(stop-start)):3.2f}")
@@ -772,7 +753,7 @@ index e33c617b6f..ba163e9918 100644
@@ -303,8 +303,7 @@ def avoidRegressions(originalDir, incrementalDir, outputPath, forceMerge, noEff=
logicsFiles[origFile] = origFile
logicsFiles[incFile] = incFile
- iters = zip(logicsFiles.keys())
- logicsList = ParallelMap2(loadData, iters, "Loading Logics...", return_as="list")
+ logicsList = ParallelMap2(loadData, logicsFiles.keys(), "Loading Logics...", return_as="list", multiArg=False)
@@ -785,11 +766,11 @@ index 5ff265d0ed..c1803a6349 100644
+++ b/tensilelite/Tensile/TensileUpdateLibrary.py
@@ -26,7 +26,7 @@ from . import LibraryIO
from .Tensile import addCommonArguments, argUpdatedGlobalParameters
from .Common import assignGlobalParameters, print1, restoreDefaultGlobalParameters, HR, \
- globalParameters, architectureMap, ensurePath, ParallelMap, __version__
+ globalParameters, architectureMap, ensurePath, ParallelMap2, __version__
import argparse
import copy
@@ -149,7 +149,7 @@ def TensileUpdateLibrary(userArgs):
@@ -798,8 +779,8 @@ index 5ff265d0ed..c1803a6349 100644
fIter = zip(logicFiles, itertools.repeat(args.logic_path), itertools.repeat(outputPath))
- libraries = ParallelMap(UpdateLogic, fIter, "Updating logic files", method=lambda x: x.starmap)
+ libraries = ParallelMap2(UpdateLogic, fIter, "Updating logic files", multiArg=True, return_as="list")
def main():
diff --git a/tensilelite/Tensile/Toolchain/Assembly.py b/tensilelite/Tensile/Toolchain/Assembly.py
index a8b91e8d62..265e1d532c 100644
@@ -808,16 +789,16 @@ index a8b91e8d62..265e1d532c 100644
@@ -30,7 +30,7 @@ import subprocess
from pathlib import Path
from typing import List, Union, NamedTuple
-from Tensile.Common import print2
+from Tensile.Common import print1, print2
from Tensile.Common.Architectures import isaToGfx
from ..SolutionStructs import Solution
@@ -92,8 +92,26 @@ def buildAssemblyCodeObjectFiles(
if coName:
coFileMap[asmDir / (coName + extCoRaw)].add(str(asmDir / (kernel["BaseName"] + extObj)))
+ # Build reference count map for .o files to handle shared object files
+ # (.o files from kernels marked .duplicate in TensileCreateLibrary)
+ objFileRefCount = collections.Counter()
@@ -70,14 +70,17 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "hipblaslt${clr.gpuArchSuffix}";
version = "7.1.1";
version = "7.2.0";
src = fetchFromGitHub {
owner = "ROCm";
repo = "rocm-libraries";
rev = "a676499add42941ff6af1e8d3f0504416dac7429";
hash = "sha256-zIYdHFbHyP2V6dkx6Ueb6NBqWu8tJji2hSWF9zWEJa4=";
sparseCheckout = [ "projects/hipblaslt" ];
rev = "rocm-${finalAttrs.version}";
hash = "sha256-I2dGn4Ld5lZeML8GePcLPssplBZ+4weNR6uBEqFdZVg=";
sparseCheckout = [
"projects/hipblaslt"
"shared"
];
};
sourceRoot = "${finalAttrs.src.name}/projects/hipblaslt";
env.CXX = compiler;
@@ -203,7 +206,7 @@ stdenv.mkDerivation (finalAttrs: {
# Move binaries to appropriate outputs and delete leftover /bin
+ ''
mkdir -p $benchmark/bin
mv $out/bin/hipblaslt-{api-overhead,sequence,bench*} $out/bin/*.yaml $out/bin/*.py $benchmark/bin
mv $out/bin/hipblaslt-{api-overhead,bench*} $out/bin/*.yaml $out/bin/*.py $benchmark/bin
${lib.optionalString buildTests ''
mkdir -p $test/bin
mv $out/bin/hipblas-test $test/bin
@@ -17,7 +17,7 @@
# CUB can also be used as a backend instead of rocPRIM.
stdenv.mkDerivation (finalAttrs: {
pname = "hipcub";
version = "7.1.1";
version = "7.2.0";
outputs = [
"out"
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ROCm";
repo = "hipCUB";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-3/499pX7hFKJwbhSEH3/bMhNdyabK36jLv8s5TC2fuw=";
hash = "sha256-hIIpU1E/X6bPIhFfauNLPnFNBYSwtoxZV335Huw9fCA=";
};
nativeBuildInputs = [
@@ -21,7 +21,7 @@
# Can also use cuFFT
stdenv.mkDerivation (finalAttrs: {
pname = "hipfft";
version = "7.1.1";
version = "7.2.0";
outputs = [
"out"
@@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ROCm";
repo = "hipFFT";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-6FyI9s6H/lHFhm8aUqB9+vvJ0CRIVWCFLNoJprvsI6o=";
hash = "sha256-5zeL3o/Dfh0iyZOj5CHyfEQdFNehD2BLmllnZRdpsQI=";
fetchSubmodules = true;
};
@@ -1,7 +1,6 @@
{
lib,
stdenv,
fetchpatch,
fetchFromGitHub,
rocmUpdateScript,
cmake,
@@ -11,24 +10,15 @@
stdenv.mkDerivation (finalAttrs: {
pname = "hipfort";
version = "7.1.1";
version = "7.2.0";
src = fetchFromGitHub {
owner = "ROCm";
repo = "hipfort";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-IVLhp8rYtKhkt8K8Mc0qyrp670oKoK0QeclnJjO36pY=";
hash = "sha256-XaB4jauCN41tgD1YHHA2td/yckwfMBemBe/iL0SCxQo=";
};
patches = [
(fetchpatch {
name = "hipfort-fix-cmake-4.patch";
url = "https://github.com/ROCm/hipfort/commit/75552c7ec48e3bd6a914c57c9475ec573ccb37d9.patch";
hash = "sha256-S9r1V6cUo9QbKbu/NK4wIvXMV6BFv7+/n9mjCScVk40=";
includes = [ "bin/*" ];
})
];
nativeBuildInputs = [
cmake
rocm-cmake
@@ -12,13 +12,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "hipify";
version = "7.1.1";
version = "7.2.0";
src = fetchFromGitHub {
owner = "ROCm";
repo = "HIPIFY";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-NbFFHAAvMGpvIryhEbktN5w03Cpay9lEqelqkUT9dpQ=";
hash = "sha256-LC0lnYetV7RPVw92zew6za6bDH4zmnERXUM4MVaRVtc=";
};
strictDeps = true;
@@ -14,7 +14,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "hiprand";
version = "7.1.1";
version = "7.2.0";
outputs = [
"out"
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ROCm";
repo = "hipRAND";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-yypKwJ5p2aSAqapEHre9eOjjaFAI8Q1dDYWhwfrrdhg=";
hash = "sha256-mhhwYswewcRYKGoVAB/ZTIY8ubFSlTDXKZFoJpoDf2o=";
};
nativeBuildInputs = [
@@ -21,7 +21,7 @@
# Can also use cuSOLVER
stdenv.mkDerivation (finalAttrs: {
pname = "hipsolver";
version = "7.1.0";
version = "7.2.0";
outputs = [
"out"
@@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ROCm";
repo = "hipSOLVER";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-n0+Xy92mBhI2vjB7pFHGt2UgPIHo9rO2ZxGxkz30Otw=";
hash = "sha256-xrzRU3X0zlmK6t8Bz4p5ihnJnadrqiW1BW2HLRDpu1M=";
};
nativeBuildInputs = [
@@ -19,7 +19,7 @@
# This can also use cuSPARSE as a backend instead of rocSPARSE
stdenv.mkDerivation (finalAttrs: {
pname = "hipsparse";
version = "7.1.1";
version = "7.2.0";
outputs = [
"out"
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ROCm";
repo = "hipSPARSE";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-zaMAsLfUYkMUiA2vnGiK0//+vZwugqt5T6xJU4FBrRo=";
hash = "sha256-DmanHHlDny/SweYrSes4xQeWoF6TV+AoThyDHQpz+hQ=";
};
nativeBuildInputs = [
+60 -30
View File
@@ -2,7 +2,7 @@
lib,
stdenv,
# LLVM version closest to ROCm fork to override
llvmPackages_20,
llvmPackages_22,
overrideCC,
lndir,
rocm-device-libs,
@@ -22,23 +22,27 @@
# leaving compressed line tables (-g1 -gz) unstripped
# TODO: Should also apply to downstream packages which use rocmClangStdenv?
profilableStdenv ? false,
# FIXME: proper two-stage bootstrap & PGO/BOLT/LTO
# LTO currently disabled due to llvm 22 vs 22.1 bitcode mismatch between
# llvmPackages_22 (22.1) and ROCm LLVM (22.0). Uses new bitcode attr
# 105 nocreateundeforpoison fails to link hipify.
# Whether to use LTO when building the ROCm toolchain
# Slows down this toolchain's build, for typical ROCm usecase
# time saved building composable_kernel and other heavy packages
# will outweight that. ~3-4% speedup multiplied by thousands
# of corehours.
withLto ? true,
withLto ? false,
# whether rocm stdenv uses libcxx (clang c++ stdlib) instead of gcc stdlibc++
withLibcxx ? false,
}:
let
version = "7.1.1";
version = "7.2.0";
# major version of this should be the clang version ROCm forked from
rocmLlvmVersion = "20.0.0-rocm";
rocmLlvmVersion = "22.0.0-rocm";
# llvmPackages_base version should match rocmLlvmVersion
# so libllvm's bitcode is compatible with the built toolchain
llvmPackages_base = llvmPackages_20;
llvmPackages_base = llvmPackages_22;
llvmPackagesNoBintools = llvmPackages_base.override {
bootBintools = null;
bootBintoolsNoLibc = null;
@@ -115,7 +119,7 @@ let
owner = "ROCm";
repo = "llvm-project";
rev = "rocm-${version}";
hash = "sha256-CfknIRVeR1bCKh1xzXKl3ehVp0kWT0uGrI9C1HTSKVo=";
hash = "sha256-I/Bxq1JjU9N4h3vXj/tbD3xPYY4+N7QzYA8UTIq1EL0=";
};
llvmMajorVersion = lib.versions.major rocmLlvmVersion;
# An llvmPackages (pkgs/development/compilers/llvm/) built from ROCm LLVM's source tree
@@ -197,10 +201,23 @@ let
rm -rf $out/lib/cmake $out/lib/lib*.a
mkdir -p $out/lib/clang/${llvmMajorVersion}/lib/linux/
ln -s $out/lib/linux/libclang_rt.* $out/lib/clang/${llvmMajorVersion}/lib/linux/
mkdir -p $out/lib/clang/${llvmMajorVersion}/lib/${stdenv.hostPlatform.config}/
for f in $out/lib/linux/*-${stdenv.hostPlatform.parsed.cpu.name}.*; do
[ -e "$f" ] || continue
base="$(basename "$f" | sed 's/-${stdenv.hostPlatform.parsed.cpu.name}\././')"
ln -sf "$f" "$out/lib/clang/${llvmMajorVersion}/lib/${stdenv.hostPlatform.config}/$base"
done
find $out -type f -exec sed -i "s|${cc.out}|$out|g" {} +
find $out -type f -exec sed -i "s|${cc.dev}|$out|g" {} +
# Clang config file: redirect resource dir to the sysroot (where compiler-rt
# lives) and set GCC install prefix for header/library search
cat > $out/bin/${stdenv.hostPlatform.config}.cfg <<CFG
-resource-dir=$out/lib/clang/${llvmMajorVersion}
${lib.optionalString (!withLibcxx) "--gcc-toolchain=${gcc-prefix}"}
CFG
${lib.getExe rdfind} -makesymlinks true ${
builtins.concatStringsSep " " (map (x: "${x}/lib") paths)
} $out/ # create links *within* the sysroot to save space
@@ -233,6 +250,9 @@ let
(lib.cmakeFeature "LLVM_ENABLE_ZSTD" "FORCE_ON")
# required for threaded ThinLTO to work
(lib.cmakeBool "LLVM_ENABLE_THREADS" true)
# third-party/benchmark is broken in rocm-7.2.0
# error: '__COUNTER__' is a C2y extension [-Werror,-Wc2y-extensions]
(lib.cmakeBool "LLVM_INCLUDE_BENCHMARKS" false)
# LLVM tries to call git to embed VCS info if FORCE_VC_ aren't set
(lib.cmakeFeature "LLVM_FORCE_VC_REVISION" "rocm-${version}")
(lib.cmakeFeature "LLVM_FORCE_VC_REPOSITORY" "https://github.com/ROCm/llvm-project")
@@ -276,11 +296,14 @@ overrideLlvmPackagesRocm (s: {
libllvm = (s.prev.libllvm.override { }).overrideAttrs (old: {
patches = old.patches ++ [
(fetchpatch {
# fix compile error in tools/gold/gold-plugin.cpp
name = "gold-plugin-fix.patch";
url = "https://github.com/llvm/llvm-project/commit/b0baa1d8bd68a2ce2f7c5f2b62333e410e9122a1.patch";
hash = "sha256-yly93PvGIXOnFeDGZ2W+W6SyhdWFM6iwA+qOeaptrh0=";
relative = "llvm";
# Revert of a patch that cause perf regression by pessimising loop unrolling decisions
# See PR and issue discussion
# https://github.com/ROCm/rocm-systems/issues/2865 https://github.com/ROCm/llvm-project/pull/1349
name = "rocm-llvm-revert-unrolling-regression.patch";
url = "https://github.com/ROCm/llvm-project/commit/f58b06dce1f9c15707c5f808fd002e18c2accf7e.patch";
hash = "sha256-pH+3C7PSDqNfOF014sA5Rvm+sc2IJMQJfysS2bvj/o0=";
# stripLen instead of relative to avoid filterdiff mangling /dev/null on the deleted test file
stripLen = 1;
})
./perf-increase-namestring-size.patch
# TODO: consider reapplying "Don't include aliases in RegisterClassInfo::IgnoreCSRForAllocOrder"
@@ -342,7 +365,17 @@ overrideLlvmPackagesRocm (s: {
passthru = old.passthru // {
inherit gcc-prefix;
};
patches = old.patches ++ [
patches = [
(fetchpatch {
# [clang][cmake] Add option to control scan-build-py installation (#172727)
name = "clang-scan-build-py-configurable.patch";
url = "https://github.com/llvm/llvm-project/commit/f5759eeb63a3a5ce7d555c13c3126cea84e0c7b1.patch";
relative = "clang";
hash = "sha256-73IDPGZWKX4vny3x5FJ3/NQw8XRad9UNwfYkvQdMB4s=";
})
]
++ old.patches
++ [
# Never add FHS include paths
./clang-bodge-ignore-systemwide-incls.diff
# Prevents builds timing out if a single compiler invocation is very slow but
@@ -352,11 +385,23 @@ overrideLlvmPackagesRocm (s: {
./perf-shorten-gcclib-include-paths.patch
(fetchpatch {
# [ClangOffloadBundler]: Add GetBundleIDsInFile to OffloadBundler
sha256 = "sha256-G/mzUdFfrJ2bLJgo4+mBcR6Ox7xGhWu5X+XxT4kH2c8=";
url = "https://github.com/GZGavinZhao/rocm-llvm-project/commit/6d296f879b0fed830c54b2a9d26240da86c8bb3a.patch";
hash = "sha256-OsarDZXuJ5vAXTP4i0NBUeK/r6tQPumaqmMWkf29UtM=";
url = "https://github.com/GZGavinZhao/rocm-llvm-project/commit/c7de294b0d1d25f277f9d1cbb2c9e09c7600e210.patch";
relative = "clang";
})
];
# ROCm 7.2 commits 4dda51261a6 "Replace hostexec with upstream rpc"
# and 2ca1509d6d2 "Put the RTL, Back!", added CGEmitEmissaryExec.cpp which
# includes ../../openmp/device/include/EmissaryIds.h, breaking
# standalone clang builds. The upstream PR llvm/llvm-project#175265
# ("[OpenMP] support for Emissary APIs") moves EmissaryIds.h into
# clang/lib/Headers/ so this should not be needed once that lands
# and ROCm rebases onto it.
postUnpack = ''
${old.postUnpack or ""}
mkdir -p "''${sourceRoot}/openmp/device/include"
ln -s "${llvmSrc}/openmp/device/include/EmissaryIds.h" "''${sourceRoot}/openmp/device/include/"
'';
hardeningDisable = [ "all" ];
nativeBuildInputs = old.nativeBuildInputs ++ [
removeReferencesTo
@@ -375,14 +420,7 @@ overrideLlvmPackagesRocm (s: {
# https://github.com/llvm/llvm-project/blob/6976deebafa8e7de993ce159aa6b82c0e7089313/clang/cmake/caches/DistributionExample-stage2.cmake#L9-L11
cmakeFlags =
# TODO: Remove in followup, tblgen now works correctly but would rebuild
(builtins.filter tablegenUsage old.cmakeFlags)
++ commonCmakeFlags
++ lib.optionals (!withLibcxx) [
# FIXME: Config file in rocm-toolchain instead of GCC_INSTALL_PREFIX?
# Expected to be fully removed eventually
"-DUSE_DEPRECATED_GCC_INSTALL_PREFIX=ON"
"-DGCC_INSTALL_PREFIX=${gcc-prefix}"
];
(builtins.filter tablegenUsage old.cmakeFlags) ++ commonCmakeFlags;
preFixup = ''
${toString old.preFixup or ""}
moveToOutput "lib/lib*.a" "$dev"
@@ -437,14 +475,6 @@ overrideLlvmPackagesRocm (s: {
isGNU = false;
};
compiler-rt-libc = s.prev.compiler-rt-libc.overrideAttrs (old: {
patches = old.patches ++ [
# fix build with glibc >= 2.42
(fetchpatch {
url = "https://github.com/llvm/llvm-project/commit/59978b21ad9c65276ee8e14f26759691b8a65763.patch";
hash = "sha256-ys5SMLfO3Ay9nCX9GV5yRCQ6pLsseFu/ZY6Xd6OL4p0=";
relative = "compiler-rt";
})
];
meta = old.meta // llvmMeta;
});
compiler-rt = s.final.compiler-rt-libc;
@@ -17,6 +17,6 @@ index 33f12fb2d075d..ba35f65210c7a 100644
if (TCArgs.hasFlag(options::OPT_offload_compress,
- options::OPT_no_offload_compress, false))
+ options::OPT_no_offload_compress, true))
CmdArgs.push_back("-compress");
CmdArgs.push_back("--compress");
if (TCArgs.hasArg(options::OPT_v))
CmdArgs.push_back("-verbose");
@@ -1,4 +1,4 @@
From ef6c5b353861be727c98f1319c81d0c6b609d644 Mon Sep 17 00:00:00 2001
From 8c64deff2a82fcca5b521362193a1fd8b1a0dca7 Mon Sep 17 00:00:00 2001
From: Luna Nova <git@lunnova.dev>
Date: Tue, 17 Dec 2024 04:29:11 -0800
Subject: [PATCH] HACK: Get canonical GCC include path so doesn't have
@@ -6,21 +6,20 @@ Subject: [PATCH] HACK: Get canonical GCC include path so doesn't have
This allows more of the strings used in compilation to fit inside
fixed size stack allocated buffers instead of spilling into the heap
---
clang/lib/Driver/ToolChains/Gnu.cpp | 16 ++++++++++------
lib/Driver/ToolChains/Gnu.cpp | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index af9fd46f0ce7b..a63a7a93f6a78 100644
diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
index 07df9864636..b1201b999f0 100644
--- a/lib/Driver/ToolChains/Gnu.cpp
+++ b/lib/Driver/ToolChains/Gnu.cpp
@@ -3394,29 +3394,33 @@ bool Generic_GCC::addLibStdCXXIncludePaths(Twine IncludeDir, StringRef Triple,
if (!getVFS().exists(IncludeDir))
@@ -3326,29 +3326,33 @@ static bool addLibStdCXXIncludePaths(llvm::vfs::FileSystem &vfs,
if (!vfs.exists(IncludeDir))
return false;
+ SmallString<260> CanonicalIncludeDir;
+ if (getVFS().getRealPath(IncludeDir, CanonicalIncludeDir))
+ if (vfs.getRealPath(IncludeDir, CanonicalIncludeDir))
+ return false;
+
// Debian native gcc uses g++-multiarch-incdir.diff which uses
@@ -34,24 +33,27 @@ index af9fd46f0ce7b..a63a7a93f6a78 100644
- (Include + "/" + Triple + Dir.substr(Include.size()) + IncludeSuffix)
+ (Include + "/" + Triple + CanonicalIncludeDir.substr(Include.size()) + IncludeSuffix)
.str();
if (DetectDebian && !getVFS().exists(Path))
if (DetectDebian && !vfs.exists(Path))
return false;
// GPLUSPLUS_INCLUDE_DIR
- addSystemInclude(DriverArgs, CC1Args, IncludeDir);
+ addSystemInclude(DriverArgs, CC1Args, CanonicalIncludeDir);
- ToolChain::addSystemInclude(DriverArgs, CC1Args, IncludeDir);
+ ToolChain::addSystemInclude(DriverArgs, CC1Args, CanonicalIncludeDir);
// GPLUSPLUS_TOOL_INCLUDE_DIR. If Triple is not empty, add a target-dependent
// include directory.
if (DetectDebian)
addSystemInclude(DriverArgs, CC1Args, Path);
ToolChain::addSystemInclude(DriverArgs, CC1Args, Path);
else if (!Triple.empty())
addSystemInclude(DriverArgs, CC1Args,
- IncludeDir + "/" + Triple + IncludeSuffix);
+ CanonicalIncludeDir + "/" + Triple + IncludeSuffix);
ToolChain::addSystemInclude(DriverArgs, CC1Args,
- IncludeDir + "/" + Triple + IncludeSuffix);
+ CanonicalIncludeDir + "/" + Triple + IncludeSuffix);
// GPLUSPLUS_BACKWARD_INCLUDE_DIR
- addSystemInclude(DriverArgs, CC1Args, IncludeDir + "/backward");
+ if (getVFS().exists(CanonicalIncludeDir + "/backward"))
+ addSystemInclude(DriverArgs, CC1Args, CanonicalIncludeDir + "/backward");
- ToolChain::addSystemInclude(DriverArgs, CC1Args, IncludeDir + "/backward");
+ if (vfs.exists(CanonicalIncludeDir + "/backward"))
+ ToolChain::addSystemInclude(DriverArgs, CC1Args, CanonicalIncludeDir + "/backward");
return true;
}
--
2.52.0
@@ -58,7 +58,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "migraphx";
version = "7.1.1";
version = "7.2.0";
outputs = [
"out"
@@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ROCm";
repo = "AMDMIGraphX";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-s6w4bF7koK4wnf6leVKBzwIB4X2ROHa3EgX6XuJIAew=";
hash = "sha256-FBAVsk4x3ATLDYtfzcPUPnUTwe36maIAY1/FwqG6jD0=";
};
nativeBuildInputs = [
@@ -4,7 +4,7 @@
callPackage,
fetchFromGitHub,
fetchpatch,
rocmUpdateScript,
fetchurl,
runCommand,
pkg-config,
cmake,
@@ -43,7 +43,7 @@
let
# FIXME: cmake files need patched to include this properly
cFlags = "-Wno-documentation-pedantic --offload-compress -I${hipblas-common}/include -I${hipblas}/include -I${roctracer}/include -I${nlohmann_json}/include -I${sqlite.dev}/include -I${rocrand}/include";
version = "7.1.1";
version = "7.2.0";
# Targets outside this list will get
# error: use of undeclared identifier 'CK_BUFFER_RESOURCE_3RD_DWORD'
@@ -65,42 +65,12 @@ let
"gfx1201"
] gpuTargets;
kdbTargets = lib.intersectLists [
"gfx900"
"gfx906"
"gfx908"
"gfx90a"
"gfx942"
"gfx1030"
] gpuTargets;
src = fetchFromGitHub {
owner = "ROCm";
repo = "MIOpen";
rev = "rocm-${version}";
hash = "sha256-g0AEpuUiwKCu/doiRh9mW34W04m4ynHoarSyl6tR/aE=";
fetchLFS = true;
hash = "sha256-OwBFzUruHHeJD7n3zLs/NsU5cNEjwkwFgim4m2/1hR0=";
fetchSubmodules = true;
# WORKAROUND: .lfsconfig is incorrectly set to exclude everything upstream
leaveDotGit = true;
# FIXME: if someone can reduce the level of awful here that would be really nice
postFetch = ''
export HOME=$(mktemp -d)
cd $out
git remote add origin $url
git fetch origin +refs/tags/rocm-${version}:refs/tags/rocm-${version}
git clean -fdx
git switch -c rocm-${version} refs/tags/rocm-${version}
git config lfs.fetchexclude "none"
rm .lfsconfig
git lfs install
git lfs track "*.kdb.bz2"
git lfs fetch --include="src/kernels/**"
git lfs pull --include="src/kernels/**"
git lfs checkout
rm -rf .git
'';
};
latex = lib.optionalAttrs buildDocs (
@@ -120,19 +90,27 @@ let
)
);
kernelDatabases = lib.genAttrs kdbTargets (
target:
runCommand "miopen-${target}.kdb" { preferLocalBuild = true; } ''
${lbzip2}/bin/lbzip2 -ckd ${src}/src/kernels/${target}.kdb.bz2 > $out
''
);
# Kernel databases moved from Git LFS to DVC (anonymous s3 bucket s3://therock-dvc/rocm-libraries)
fetchKdb =
name:
{ url, hash }:
runCommand "miopen-${name}.kdb" { preferLocalBuild = true; } ''
${lbzip2}/bin/lbzip2 -ckd ${
fetchurl {
inherit url hash;
name = "${name}.kdb.bz2";
}
} > $out
'';
kdbs = lib.mapAttrs fetchKdb (import ./kdbs.nix);
linkKDBsTo =
targetPath:
lib.concatStringsSep "" (
map (target: ''
ln -sf ${kernelDatabases.${target}} ${targetPath}/${target}.kdb
'') kdbTargets
lib.mapAttrsToList (name: kdb: ''
ln -sf ${kdb} ${targetPath}/${name}.kdb
'') kdbs
);
in
stdenv.mkDerivation (finalAttrs: {
@@ -153,14 +131,13 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://github.com/ROCm/MIOpen/commit/3413d2daaeb44b7d6eadcc03033a5954a118491e.patch";
hash = "sha256-ST4snUcTmmSI1Ogx815KEX9GdMnmubsavDzXCGJkiKs=";
})
# FIXME: We need to rebase or drop this arch compat patch
# https://github.com/ROCm/MIOpen/issues/3540 suggests that
# arch compat patching doesn't work correctly for gfx1031
# (fetchpatch {
# name = "Extend-MIOpen-ISA-compatibility.patch";
# url = "https://github.com/GZGavinZhao/MIOpen/commit/416088b534618bd669a765afce59cfc7197064c1.patch";
# hash = "sha256-OwONCA68y8s2GqtQj+OtotXwUXQ5jM8tpeM92iaD4MU=";
# })
(fetchpatch {
# [miopen] Extend HIP ISA compatibility
name = "Extend-MIOpen-ISA-compatibility.patch";
url = "https://github.com/GZGavinZhao/rocm-libraries/commit/02f0fedffdc197f146dd45f41e10990a00cde3ee.patch";
hash = "sha256-My32iZw75rvB4fyvUJJ2kw2bU9/39awGteFGjzijixw=";
relative = "projects/miopen";
})
];
outputs = [
@@ -308,11 +285,7 @@ stdenv.mkDerivation (finalAttrs: {
inherit frugally-deep nlohmann_json;
};
};
passthru.updateScript = rocmUpdateScript {
name = finalAttrs.pname;
inherit (finalAttrs.src) owner;
inherit (finalAttrs.src) repo;
};
passthru.updateScript = ./update.sh;
meta = {
description = "Machine intelligence library for ROCm";
@@ -0,0 +1,27 @@
# Generated by update.sh
{
gfx1030 = {
url = "https://therock-dvc.s3.amazonaws.com/rocm-libraries/files/md5/22/c4bd38cc34d3906add061ee57b099b";
hash = "sha256-LESExp7sFl7osCM7HdVMpzOE0dU7953e2yzgeHSGgfI=";
};
gfx900 = {
url = "https://therock-dvc.s3.amazonaws.com/rocm-libraries/files/md5/cf/9c12dafe25b15ea1e93088b7b061af";
hash = "sha256-lFFB5GQFTjUnx3JDx816yH+96OGRt9XvBzfLFFHtUrE=";
};
gfx906 = {
url = "https://therock-dvc.s3.amazonaws.com/rocm-libraries/files/md5/04/b3be6a15c700ff382e0a5e136010e1";
hash = "sha256-cn1ODLcUQi+/QJUlWbELukMUj4+b1vjjRhhTseL9tdM=";
};
gfx908 = {
url = "https://therock-dvc.s3.amazonaws.com/rocm-libraries/files/md5/35/b9082b72e661dc5e37f14de1d9d4ed";
hash = "sha256-pI30zpZL3OEP3aeLdVpM00nHeTyD5K+XDH47g0W2A+M=";
};
gfx90a = {
url = "https://therock-dvc.s3.amazonaws.com/rocm-libraries/files/md5/a1/1615323e06c5774fe19cf34c51baef";
hash = "sha256-TkzSgY3V/Xs5YXfr69TrL8JjqDr1MZMgeBeQ/e2kEjE=";
};
gfx942 = {
url = "https://therock-dvc.s3.amazonaws.com/rocm-libraries/files/md5/6a/fe97d7bd441fe15280b28b6e3b1748";
hash = "sha256-fyhnR3+xPFkHLN36dI9UYIhqoVstt5RpareGn2S9lMM=";
};
}
+48
View File
@@ -0,0 +1,48 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq nix common-updater-scripts
set -euo pipefail
gh_curl() { curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -sf "$@"; }
version="${1:-$(gh_curl "https://api.github.com/repos/ROCm/MIOpen/releases?per_page=4" \
| jq -re 'map(.tag_name // .name)
| map(select(test("^rocm-[0-9]+\\.[0-9]+(\\.[0-9]+)?$")))
| first | ltrimstr("rocm-")')}"
# main source version
echo "Updating MIOpen to $version" >&2
update-source-version rocmPackages.miopen "$version" --ignore-same-hash
# kdbs.nix from s3 bucket
cd "$(dirname "${BASH_SOURCE[0]}")"
bucket="https://therock-dvc.s3.amazonaws.com/rocm-libraries/files/md5"
# Fetch directory listing; extract name + download_url for .dvc files
dvc_entries=$(gh_curl "https://api.github.com/repos/ROCm/MIOpen/contents/src/kernels?ref=rocm-${version}" \
| jq -r '.[] | select(.name | endswith(".kdb.bz2.dvc")) | "\(.name)\t\(.download_url)"')
[[ -n "$dvc_entries" ]] || { echo "No .kdb.bz2.dvc files found, upstream likely changed packaging again" >&2; exit 1; }
{
echo "# Generated by update.sh"
echo "{"
while IFS=$'\t' read -r dvc_file raw_url; do
arch="${dvc_file%.kdb.bz2.dvc}"
md5=$(curl -sf "$raw_url" | awk '/- md5:/{print $3}')
url="${bucket}/${md5:0:2}/${md5:2}"
sri=$(nix --extra-experimental-features nix-command store prefetch-file --json "$url" --name "${arch}.kdb.bz2" | jq -r .hash)
echo " $arch: $sri" >&2
cat <<EOF
$arch = {
url = "$url";
hash = "$sri";
};
EOF
done <<< "$dvc_entries"
echo "}"
} > kdbs.nix
echo "Wrote kdbs.nix" >&2
@@ -40,13 +40,13 @@ stdenv.mkDerivation (finalAttrs: {
"cpu"
);
version = "7.1.1";
version = "7.2.0";
src = fetchFromGitHub {
owner = "ROCm";
repo = "MIVisionX";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-aC6GUPK6ZSOAx+PHHB4gLPNAG5U/kapqX7YWilusDw8=";
hash = "sha256-rdYQt001kFi9FjVL5R8XVzT+Y+rZVeMsbjXCJEB887A=";
};
patches = [
@@ -40,7 +40,7 @@ in
# infiniband ib_peer_mem support isn't in the mainline kernel but is carried by some distros
stdenv.mkDerivation (finalAttrs: {
pname = "rccl${clr.gpuArchSuffix}";
version = "7.1.1";
version = "7.2.0";
outputs = [
"out"
@@ -58,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ROCm";
repo = "rccl";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-3u7D3Gre1n+4Lf+cK+RMfCUM9c46pXZjdhGOrwIKM0w=";
hash = "sha256-Kpobn0fR7/mXGVWYjNQ35sToRWLfOQTHRbjuSYj1of4=";
};
requiredSystemFeatures = [ "big-parallel" ]; # Very resource intensive LTO
@@ -49,7 +49,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "rdc";
version = "7.1.1";
version = "7.2.0";
outputs = [
"out"
@@ -65,7 +65,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ROCm";
repo = "rdc";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-oJS0fBeISpgjZkaMfFl/Yq7mPOsdaZDqiRjSPv7kT1Q=";
hash = "sha256-gF17mcbsqsL2K9pwTAVG9E6nVY4pi2lC88WyPa0xMes=";
};
patches = [
@@ -22,7 +22,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "rocalution";
version = "7.1.1";
version = "7.2.0";
outputs = [
"out"
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ROCm";
repo = "rocALUTION";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-UkXbcbhaTulCqW1FZHwTyUZLFSnj7WmLYqlPqu5m6YM=";
hash = "sha256-7ZlY0GVIsUJE8OOAkQwQ4pXNHKzgCQomQOET9+TKQN4=";
};
nativeBuildInputs = [
@@ -40,13 +40,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "rocblas${clr.gpuArchSuffix}";
version = "7.1.1";
version = "7.2.0";
src = fetchFromGitHub {
owner = "ROCm";
repo = "rocBLAS";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-obKypbYmnSeOtOr7g0pxOz02YfzZ0bGugTtznkeHz14=";
hash = "sha256-oY6yELFnpnDDksu63Go88TGLAgC64tUaPIbaRgD2qus=";
};
outputs = [ "out" ] ++ lib.optional buildBenchmarks "benchmark" ++ lib.optional buildTests "test";
@@ -137,9 +137,9 @@ stdenv.mkDerivation (finalAttrs: {
patches = [
(fetchpatch {
name = "Extend-rocBLAS-HIP-ISA-compatibility.patch";
url = "https://github.com/GZGavinZhao/rocm-libraries/commit/2850f22f80f90c9e498f520608a82989a4932ec3.patch";
hash = "sha256-SPsdEwGe+r8bQudkChRzBDAgu3tPQWFweZCgzh+4nOE=";
stripLen = 2;
url = "https://github.com/GZGavinZhao/rocm-libraries/commit/49f21f3cfe7eb4b8ac724eef81fa2cae97a3c22e.patch";
hash = "sha256-vAVVpTwt49lGHu2YopR1X68v5LwFOjUYuSC4ucBpFGg=";
relative = "projects/rocblas";
})
];
@@ -47,7 +47,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "rocdbgapi";
version = "7.1.1";
version = "7.2.0";
outputs = [
"out"
@@ -62,7 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ROCm";
repo = "ROCdbgapi";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-RwYZJPwGhNtSSvmSgy0AsNTc98cav0/u9jH5f93sB9M=";
hash = "sha256-KqvhwfIv8pbr8WbnfAKl71fg5yxbwYcpzZcGU9Htdkc=";
};
nativeBuildInputs = [
@@ -20,13 +20,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "rocfft${clr.gpuArchSuffix}";
version = "7.1.1";
version = "7.2.0";
src = fetchFromGitHub {
owner = "ROCm";
repo = "rocFFT";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-1Ho3b5NmnzfLhDnvH6FECigs6OgpbJrxw4EnqKyaHA0=";
hash = "sha256-AFBV5tlhNYH9+d0KG7mCjSifKfRt+8c1ie5wASTiQXM=";
};
nativeBuildInputs = [

Some files were not shown because too many files have changed in this diff Show More