From a593ca3973018b5eecd76aedcafe336345f1bd2e Mon Sep 17 00:00:00 2001 From: Madoura Date: Sun, 22 Oct 2023 08:09:57 -0500 Subject: rocmPackages.hsa-amd-aqlprofile-bin: 5.7.0 -> 5.7.1 Added update script that actually works --- .../5/hsa-amd-aqlprofile-bin/default.nix | 24 +++++----- .../5/hsa-amd-aqlprofile-bin/update.nix | 51 ++++++++++++++++++++++ 2 files changed, 62 insertions(+), 13 deletions(-) create mode 100644 pkgs/development/rocm-modules/5/hsa-amd-aqlprofile-bin/update.nix (limited to 'pkgs/development/rocm-modules') diff --git a/pkgs/development/rocm-modules/5/hsa-amd-aqlprofile-bin/default.nix b/pkgs/development/rocm-modules/5/hsa-amd-aqlprofile-bin/default.nix index d13092fd3eef..8bd479c5c245 100644 --- a/pkgs/development/rocm-modules/5/hsa-amd-aqlprofile-bin/default.nix +++ b/pkgs/development/rocm-modules/5/hsa-amd-aqlprofile-bin/default.nix @@ -1,23 +1,17 @@ { lib , stdenv , fetchurl +, callPackage , dpkg }: -let - prefix = "hsa-amd-aqlprofile"; - version = "5.7.0"; - major = lib.versions.major version; - minor = lib.versions.minor version; - patch = lib.versions.patch version; - magic = lib.strings.concatStrings (lib.strings.intersperse "0" (lib.versions.splitVersion version)); -in stdenv.mkDerivation (finalAttrs: { - inherit version; - pname = "${prefix}-bin"; +stdenv.mkDerivation (finalAttrs: { + pname = "hsa-amd-aqlprofile-bin"; + version = "5.7.1"; src = fetchurl { - url = "https://repo.radeon.com/rocm/apt/${major}.${minor}/pool/main/h/${prefix}/${prefix}_1.0.0.${magic}.${magic}-63~22.04_amd64.deb"; - hash = "sha256-FQ25eXkhnvOmcf0sGW3GYu9kZj69bVvZrh0jVx/G/kI="; + url = "https://repo.radeon.com/rocm/apt/5.7.1/pool/main/h/hsa-amd-aqlprofile/hsa-amd-aqlprofile_1.0.0.50701.50701-98~22.04_amd64.deb"; + hash = "sha256-LWAtZ0paJW8lhE+QAMwq2l8wM+96bxk5rNWyQXTc9Vo="; }; nativeBuildInputs = [ dpkg ]; @@ -29,11 +23,15 @@ in stdenv.mkDerivation (finalAttrs: { runHook preInstall mkdir -p $out - cp -a opt/rocm-${version}/* $out + cp -a opt/rocm-${finalAttrs.version}/* $out + chmod +x $out/lib/libhsa-amd-aqlprofile64.so.1.* + chmod +x $out/lib/hsa-amd-aqlprofile/librocprofv2_att.so runHook postInstall ''; + passthru.updateScript = (callPackage ./update.nix { }) { inherit (finalAttrs) version; }; + meta = with lib; { description = "AQLPROFILE library for AMD HSA runtime API extension support"; homepage = "https://rocm.docs.amd.com/en/latest/"; diff --git a/pkgs/development/rocm-modules/5/hsa-amd-aqlprofile-bin/update.nix b/pkgs/development/rocm-modules/5/hsa-amd-aqlprofile-bin/update.nix new file mode 100644 index 000000000000..95260a79321d --- /dev/null +++ b/pkgs/development/rocm-modules/5/hsa-amd-aqlprofile-bin/update.nix @@ -0,0 +1,51 @@ +{ lib +, writeScript +}: + +{ version }: + +let + prefix = "hsa-amd-aqlprofile"; + extVersion = lib.strings.concatStrings (lib.strings.intersperse "0" (lib.versions.splitVersion version)); + major = lib.versions.major version; + minor = lib.versions.minor version; + patch = lib.versions.patch version; + + updateScript = writeScript "update.sh" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p curl common-updater-scripts + apt="https://repo.radeon.com/rocm/apt" + pool="pool/main/h/${prefix}/" + url="$apt/latest/$pool" + res="$(curl -sL "$url")" + deb="${prefix}$(echo "$res" | grep -o -P "(?<=href=\"${prefix}).*(?=\">)" | tail -1)" + patch="${patch}" + + # Try up to 10 patch versions + for i in {1..10}; do + ((patch++)) + extVersion="$(echo "$deb" | grep -o -P "(?<=\.....).*(?=\..*-)")" + + if (( ''${#extVersion} == 5 )) && (( $extVersion <= ${extVersion} )); then + url="https://repo.radeon.com/rocm/apt/${major}.${minor}.$patch/pool/main/h/${prefix}/" + res="$(curl -sL "$url")" + deb="${prefix}$(echo "$res" | grep -o -P "(?<=href=\"${prefix}).*(?=\">)" | tail -1)" + else + break + fi + done + + extVersion="$(echo $deb | grep -o -P "(?<=\.....).*(?=\..*-)")" + version="$(echo $extVersion | sed "s/0/./1" | sed "s/0/./1")" + + if (( ''${#extVersion} == 5 )); then + repoVersion="$version" + + if (( ''${version:4:1} == 0 )); then + repoVersion=''${version:0:3} + fi + + update-source-version rocmPackages_5.${prefix}-bin "$version" "" "$apt/$repoVersion/$pool$deb" --ignore-same-hash + fi + ''; +in [ updateScript ] -- cgit v1.2.3