diff --git a/pkgs/intel-oneapi/deb/packages.nix b/pkgs/intel-oneapi/deb/packages.nix index f4b41b90..5e1e33fa 100644 --- a/pkgs/intel-oneapi/deb/packages.nix +++ b/pkgs/intel-oneapi/deb/packages.nix @@ -136,14 +136,15 @@ let }; }; + kit = fromTOML (readFile ./packages.toml); in mapAttrs ( name: value: patchIntel { - unpatched = extractKit (lib.getName name) (lib.getVersion name) value; + unpatched = extractKit "hpckit" kit.meta.${name}.version value; components = components.${name}; } -) (fromTOML (readFile ./packages.toml)) +) (removeAttrs kit [ "meta" ]) // { - inherit patchIntel extractKit; + inherit patchIntel extractKit kit; } diff --git a/pkgs/intel-oneapi/deb/packages.toml b/pkgs/intel-oneapi/deb/packages.toml index 268b5b63..70a05061 100644 --- a/pkgs/intel-oneapi/deb/packages.toml +++ b/pkgs/intel-oneapi/deb/packages.toml @@ -1,3 +1,6 @@ +[meta.hpckit-2023-1-0] +version="2023.1.0-46346" + [[hpckit-2023-1-0]] name="intel-oneapi-ccl" version="2021.9.0-43543" @@ -292,6 +295,9 @@ version="2021.9.0-43484" file="pool/main/intel-oneapi-tbb-devel-2021.9.0-2021.9.0-43484_amd64.deb" sha256="dec4a9c18b10039dac5bd8a7c3158c9521cc018a986bff58a36d7a5daadfc3e3" +[meta.hpckit-2024] +version="2024.2.1-77" + [[hpckit-2024]] name="intel-oneapi-ccl" version="2021.13.1-31" @@ -658,6 +664,9 @@ version="2024.2.0-705" file="pool/main/intel-oneapi-tlt-2024.2-2024.2.0-705_amd64.deb" sha256="b7eb4614de1e10fd691616365ec0b6e3b23712a9377999df1ebb2f2c0589f2aa" +[meta.hpckit-2025] +version="2025.3.1-52" + [[hpckit-2025]] name="intel-oneapi-ccl" version="2021.17.2-5" diff --git a/pkgs/intel-oneapi/deb/update.hs b/pkgs/intel-oneapi/deb/update.hs index fb3c897e..b9c90015 100644 --- a/pkgs/intel-oneapi/deb/update.hs +++ b/pkgs/intel-oneapi/deb/update.hs @@ -3,6 +3,7 @@ module Main (main) where import Control.Arrow (second, (&&&)) +import Control.Monad (when) import qualified Data.Map.Lazy as M import qualified Data.Map.Strict as MS @@ -12,7 +13,7 @@ import qualified Data.Text.IO as TIO import Data.Char (isAlpha, isNumber) import Data.List (find, nub, sortOn) import Data.Map.Lazy (Map) -import Data.Maybe (catMaybes, fromMaybe, maybeToList) +import Data.Maybe (catMaybes, maybeToList) import Data.Ord (Down (Down)) import Data.Text.Read (decimal) @@ -152,7 +153,6 @@ solveDeps d p = removeDupes $ go ([], [p]) done' = filter (not . isBlacklisted) $ nub $ done ++ (filter isMetaPackage todo) todo' = concatMap depends todo >>= maybeToList . findMatching d isMetaPackage = ((/= 0) . size) -- Packages with size 0 - removeDupes :: [Package] -> [Package] removeDupes l = fmap snd . MS.toList $ MS.fromListWith (getLatest) $ (cleanName . name &&& id) <$> l @@ -210,17 +210,15 @@ main = do d <- parse <$> TIO.getContents - sizes <- mapM (processHpcKit d . parseVersion) v - - hPrintf stderr "Total Installed-Size: %.3fMb\n" ((fromIntegral (sum sizes)) / 1e6 :: Double) + mapM_ (processHpcKit d . parseVersion) v where - -- TODO: replace fromMaybe+trace with either error handling? - processHpcKit :: Data -> Version -> IO Int - processHpcKit d v = do - let kit = getHpckit d v - deps = fromMaybe (trace (T.unpack $ "Could not find deps for kit: " <> showVer v <> " (SKIPPED)") $ []) $ solveDeps d <$> kit - totalSize = sum $ size <$> deps - - mapM_ (displayTOML v) deps - - return totalSize + processHpcKit :: Data -> Version -> IO () + processHpcKit d v = + case (getHpckit d v) of + Nothing -> hPrintf stderr "[WARN]: Could not find hpckit with version %s [SKIPPED]\n" (show v) + (Just kit) -> do + -- Save resolved hpckit version information + printf "[meta.hpckit-%s]\nversion=\"%s\"\n\n" (showVerDash v) (showVer $ version kit) + let deps = solveDeps d kit + when (null deps) $ hPrintf stderr "[WARN]: Empty hpckit? (hpckit-%s)\n" (show v) + mapM_ (displayTOML v) deps