diff options
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.nix | 48 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/update.nix | 57 |
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 ] |