summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeder Bergebakken Sundt <pbsds@hotmail.com>2023-10-26 14:22:48 +0200
committerGitHub <noreply@github.com>2023-10-26 14:22:48 +0200
commit1ce5a446bb17c4d440c1159660eff6cdea7f66a4 (patch)
treea1ce420fb9add9e9c7535118b1fbb3ec626ad455
parentf0f5af262cd2d45cc8d5425a5b707bc23eb3f06c (diff)
parenta593ca3973018b5eecd76aedcafe336345f1bd2e (diff)
downloadnixpkgs-1ce5a446bb17c4d440c1159660eff6cdea7f66a4.tar
nixpkgs-1ce5a446bb17c4d440c1159660eff6cdea7f66a4.tar.gz
nixpkgs-1ce5a446bb17c4d440c1159660eff6cdea7f66a4.tar.bz2
nixpkgs-1ce5a446bb17c4d440c1159660eff6cdea7f66a4.tar.lz
nixpkgs-1ce5a446bb17c4d440c1159660eff6cdea7f66a4.tar.xz
nixpkgs-1ce5a446bb17c4d440c1159660eff6cdea7f66a4.tar.zst
nixpkgs-1ce5a446bb17c4d440c1159660eff6cdea7f66a4.zip
Merge pull request #262750 from Madouura/pr/hsa-amd-aqlprofile
rocmPackages.hsa-amd-aqlprofile-bin: 5.7.0 -> 5.7.1
-rw-r--r--pkgs/development/rocm-modules/5/hsa-amd-aqlprofile-bin/default.nix24
-rw-r--r--pkgs/development/rocm-modules/5/hsa-amd-aqlprofile-bin/update.nix51
2 files changed, 62 insertions, 13 deletions
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 d13092fd3ee..8bd479c5c24 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 00000000000..95260a79321
--- /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 ]