about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin')
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/default.nix48
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/update.nix57
2 files changed, 105 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/default.nix
new file mode 100644
index 000000000000..b88485b5fa37
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchurl
+, callPackage
+, dpkg
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hsa-amd-aqlprofile-bin";
+  version = "6.0.2";
+
+  src = let
+    version = finalAttrs.version;
+    dotless = builtins.replaceStrings ["."] ["0"] version;
+    incremental = "115";
+    osRelease = "22.04";
+  in fetchurl {
+    url = "https://repo.radeon.com/rocm/apt/${version}/pool/main/h/hsa-amd-aqlprofile/hsa-amd-aqlprofile_1.0.0.${dotless}.${dotless}-${incremental}~${osRelease}_amd64.deb";
+    hash = "sha256-0XeKUKaof5pSMS/UgLwumBDBYgyH/pCex9jViUKENXY=";
+  };
+
+  nativeBuildInputs = [ dpkg ];
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $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/";
+    license = with licenses; [ unfree ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/update.nix b/nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/update.nix
new file mode 100644
index 000000000000..7fdcfad85924
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/update.nix
@@ -0,0 +1,57 @@
+{ 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} == 6 )) && (( $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")"
+    IFS='.' read -a version_arr <<< "$version"
+
+    if (( ''${version_arr[0]} > 6 )); then
+      echo "'rocmPackages_6.${prefix}-bin' is already at it's maximum allowed version.''\nAny further upgrades should go into 'rocmPackages_X.${prefix}-bin'." 1>&2
+      exit 1
+    fi
+
+    if (( ''${#extVersion} == 6 )); then
+      repoVersion="$version"
+
+      if (( ''${version:4:1} == 0 )); then
+        repoVersion=''${version:0:3}
+      fi
+
+      update-source-version rocmPackages_6.${prefix}-bin "$version" "" "$apt/$repoVersion/$pool$deb" --ignore-same-hash
+    fi
+  '';
+in [ updateScript ]