Compare commits

..

115 Commits

Author SHA1 Message Date
96266dd530 Add meta to oneapi packages 2026-03-23 12:45:05 +01:00
c475151b7a Log missing deps on update.hs without Debug.Trace 2026-03-22 20:49:07 +01:00
3497618923 Add error handling to oneapi update script 2026-03-22 20:46:34 +01:00
1c75372f92 Save full version in hpckit packages 2026-03-20 16:57:36 +01:00
a2535d5615 Fix PoCL SYCL tests 2026-03-20 16:57:36 +01:00
ba8ec9521a Update Intel 2023 derivation to use new TOML 2026-03-20 16:57:36 +01:00
a5a0391b9c Only save relevant packages from intel repo
Refactored the parsing and dependency resolution logic into a single
Haskell script.
2026-03-20 16:57:36 +01:00
a2a3c3c81f Add stdenv to llvm-intel passthru 2026-03-20 16:24:41 +01:00
e87cbcb8da Refactor intel-oneapi into deb and open subfolders 2026-03-20 16:24:41 +01:00
704a33fbae Use explicit version instead of wildcard in intel 2026-03-19 14:59:47 +01:00
dd455e8424 Conditionally enable cuda on llvm-intel 2026-03-19 14:59:47 +01:00
6106d16d75 Add stdenv and tests for llvm-intel compiler 2026-03-19 14:59:46 +01:00
ec19115da5 Add cudatoolkit to PATH 2026-03-19 14:59:46 +01:00
63e58f4102 Disable zerocallusedregs in llvm-intel
Doesn't work with neither spirv nor nvptx
2026-03-19 14:59:46 +01:00
0dc74f8b61 Enable libdevice in llvm-intel
This requires a wrapper stub to set up the flags,
since libdevice is built using the built compiler.
2026-03-19 14:59:46 +01:00
40d6cae8a9 Wrap llvm-intel 2026-03-19 14:59:46 +01:00
9888c5913a Add llvm-intel 2026-03-19 14:59:46 +01:00
fcb0ba6da0 Add tests for Intel OCL 2026-03-19 14:59:46 +01:00
b0cfde9dca Add test for sycl-ls with PoCL and Intel OCL 2026-03-19 14:59:45 +01:00
3d052cfa78 Add intel.icd to hpckit compiler 2026-03-19 14:59:45 +01:00
8c5a190394 Add test to run sycl applications with PoCL 2026-03-19 14:59:45 +01:00
d10f2f3818 Provide sycl-ls and sycl-trace on wrapped oneapi compiler 2026-03-19 14:59:45 +01:00
85a17b5320 Use PoCL as SYCL runtime 2026-03-19 14:59:45 +01:00
d4df6e37b9 Add GROMACS 2026-03-19 14:59:45 +01:00
e12955e313 Add OpenCL Conformance Tests to PoCL 2026-03-19 14:59:45 +01:00
92c011ed2e Use POCL_CACHE_DIR instead of writableHome...Hook 2026-03-19 14:59:44 +01:00
7c52af61a8 Add tests for PoCL with and without using icd 2026-03-19 14:59:44 +01:00
0b225f0a8b Add PoCL passthru test that sets doCheck 2026-03-19 14:59:44 +01:00
5d9a4eb9ee Add clinfo test for PoCL 2026-03-19 14:59:44 +01:00
0115787a4e Add PoCL 2026-03-19 14:59:44 +01:00
aa89eeeba7 Add libgcc to intel packages wrapper
Fixes missing lib when compiling some SYCL benchmarks:
ld: cannot find -lstdc++fs: No such file or directory
2026-03-19 14:59:44 +01:00
ceea1e4601 Add passthru in ompss2 wrapper for icpx compat 2026-03-19 14:59:43 +01:00
045cebac68 Remove wrapper flags when clang called from intel
When using `icpx -fsycl -fsycl-host-compiler=clang++`, the inner
compiler will use the flags set in the icpx wrapper and it will break.
2026-03-19 14:59:43 +01:00
61119f48ab Add oneMath 2026-03-19 14:59:43 +01:00
9aab2e5340 Use json for Intel 2023 instead of awk + ifd
This reuses the existing json from the new 2024-25
intel packages instead of parsing the raw data from
the apt output and doing IFD.
2026-03-19 14:59:43 +01:00
e259391343 Add TASYCL 2.1.0 2026-03-19 14:59:43 +01:00
037ed21f23 Add test for icpx with ompss-2 as host compiler 2026-03-19 14:59:43 +01:00
9519b8c32b Add SYCL test compilation 2026-03-19 14:59:43 +01:00
8c8688b274 Add intelPackages_202{4,5} and make 2025 the default 2026-03-19 14:59:42 +01:00
4f51ebe607 Add papi and nosv to cross-compilation CI
Some checks failed
CI / build:cross (push) Failing after 7s
CI / build:all (push) Failing after 12s
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-19 14:50:10 +01:00
98cac0fb8d Add install check for OpenMP{,-V}
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-19 12:53:43 +01:00
ea89344945 Fix openmp buildInputs
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-19 12:53:42 +01:00
fed0cc9685 Remove unused sys-devices requirement in ld test
The test only checks compilation (and linkage),
without actually running the program. There
was no need to access NUMA information.

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-19 12:53:42 +01:00
87da05df91 Enable papi when cross-compiling
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-19 12:53:42 +01:00
66a3047596 Fix papi cross compilation
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-19 12:53:42 +01:00
8cd97fd7cb Use pkg-config instead of papi_version_check
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-19 12:13:46 +01:00
0e2a90db13 Fix cudainfo buildInputs
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-19 12:13:46 +01:00
b0e754e0e7 Set strictDeps to true on all our packages
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-19 12:13:45 +01:00
f6c8c78305 Use ninja when building llvm-ompss2
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-17 18:44:12 +01:00
4832e7bc34 Unlock gitlab-runner to use in multiple projects
Some checks failed
CI / build:cross (push) Failing after 9s
CI / build:all (push) Failing after 15s
Fixes: rarias/jungle#241
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-17 18:35:31 +01:00
39eddb76c1 Add To headers in OmpSs-2 robot email
Cc: Antoni Navarro <antoni.navarro@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-17 17:45:13 +01:00
cf47139ebe Add owl nodes to varcila
Fixes: rarias/jungle#243
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-13 12:11:43 +01:00
54dfaa9dff Remove proot from nix-portable
The pkgsStatic.proot is broken due to failed
dependencies. In upstream nix-portable they have
a custom derivation on top o proot gitlab. But
since we don't need it, we can remove it safely.

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:20 +01:00
34238d81c7 Rework nix-portable derivation arguments
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:20 +01:00
1b36c70512 Unset mn5 default bash functions in nix-portable
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:19 +01:00
f5b1082ab9 Do not restore original $PATH in nix-portable
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:19 +01:00
386cfd8973 Use fetchurl for amd-uprof
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:19 +01:00
f9db76c466 Enable parallelBuilding in jemalloc
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:19 +01:00
0a255b1ffa Make bsc users trusted in nix-portable
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:19 +01:00
af512636ac Add sys-devices feature to nix-portable nix.conf
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:19 +01:00
9dae6a6f38 Add meta with license to nix-portable
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:19 +01:00
839b9b8c76 Bind /usr/bin/env in nix-portable
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:18 +01:00
7ac154a55b Add jungle cache to nix-portable nix.conf
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:18 +01:00
14af841511 Use nix bwrap in nix-portable
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:18 +01:00
1d02f7fae4 Remove nix-portable tmpbin feature
It will not work without the host /lib64/ld

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:18 +01:00
a71b12c60e Add bashInteractive in nix-portable bwrap
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:18 +01:00
b96e3422b2 Install netcat, ssh and git in nix-portable
These are needed by nix in order to properly
download and build stuff.

busybox's netcat does not work since it doesn't
support -X.

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:18 +01:00
e7b3f972b0 Only to busybox to /bin/sh in nix-portable
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:18 +01:00
79fdfc6c0e Remove sgid from .nix-portable and set group
This should prevent issues when putting it under
/gpfs/{projects,scratch} that have sgid and group=nobody.

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:17 +01:00
71352ff5d1 Restrict paths added to bwrap in nix-portable
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:17 +01:00
06925bc0ca Bind proc using --proc in nix-portable
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:17 +01:00
1eaca98618 Fix nix-portable pkgStatic symlink handling
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:17 +01:00
7195ca4cb6 Add nix-portable
repo: https://github.com/DavHau/nix-portable
rev: 91122e3d94ba51d7d83fe990fa81d3de0968fb32

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:17 +01:00
7674f61b17 Re-enable nix-wrap
libcap is no longer broken upstream

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-11 17:23:17 +01:00
f71e807d47 Add remote sblame probe to prometheus
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-11 16:48:15 +01:00
461d96dc75 Allow access to postgresql socket from CI runner
Fixes: rarias/jungle#237
Cc: Antoni Navarro <antoni.navarro@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-11 12:41:06 +01:00
26d9e3d432 Grant gitlab-runner user access to perftestsdb
Cc: Antoni Navarro <antoni.navarro@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-11 12:40:21 +01:00
5c30975b8b Mount NFS home in tent at /nfs/home
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-09 15:27:41 +01:00
d4c00679ee Increase NFS subnet to allow tent
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-09 15:27:41 +01:00
32a576e870 Copy Gitea backup in /ceph too
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-09 15:27:37 +01:00
8197221146 Mount /ceph in tent
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-09 08:52:11 +01:00
374cd4ce48 Allow tent to reach ceph
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-09 08:52:08 +01:00
d3e54b7c99 Rekey secrets adding tent for ceph
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-09 08:52:05 +01:00
46b7efb5ac Rename Gitea backup service and directory
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-09 08:51:48 +01:00
56ab099017 Override files in rotating gitea dump service
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-09 08:51:44 +01:00
2654b9fdd9 Enable rotating gitea backups
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-03-09 08:51:23 +01:00
84a5cb09ee Use host mode for docker network
In order to reduce the traffic of the secondary Ethernet device we need
to be able to directly use the physical device instead of the virtual
one. For now use the host mode and see later if we can revert it.

Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-03-05 15:29:23 +01:00
4899d20748 Fix weasel infiniband interface name
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-02-26 10:26:01 +01:00
76cd6d64b2 Add ssanzmar user to apex and fox
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-02-24 14:06:12 +01:00
8dab0d82ba Update fox documentation in website
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-02-04 15:08:13 +01:00
958dcd4774 Add emonteir user to apex and fox
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-02-04 15:08:08 +01:00
7a6e4232de Add nom and nixfmt-tree to system packages
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-02-03 15:17:30 +01:00
3b56e905e5 Add standalone home-manager to system packages
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-02-03 15:17:29 +01:00
2d41309466 Format and sort default package list
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-02-03 15:17:24 +01:00
deb0cd1488 Allow USB access to TC1 from Gitlab Runner
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-01-23 17:56:16 +01:00
cd1f502ecc Allow user USB access to FTDI device in tent
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-01-23 17:56:11 +01:00
dda6a66782 Fix gitea user to allow sending email
In order to send email, the gitea user needs to be in the mail-robot
group.

Fixes: rarias/jungle#220
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-01-20 12:18:52 +01:00
22420e6ac8 Remove unneeded perf package from eudy
It is already included in the base list of packages, which is now only
"perf" and doesn't depend on the kernel version.

Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-01-20 12:18:49 +01:00
a71cd78b4c Fix infiniband interface names
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-01-20 12:18:46 +01:00
e84a2cadbb flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8bb5646e0bed5dbd3ab08c7a7cc15b75ab4e1d0f?narHash=sha256-SqUuBFjhl/kpDiVaKLQBoD8TLD%2B/cTUzzgVFoaHrkqY%3D' (2025-11-30)
  → 'github:NixOS/nixpkgs/3c9db02515ef1d9b6b709fc60ba9a540957f661c?narHash=sha256-2GffSfQxe3sedHzK%2BsTKlYo/NTIAGzbFCIsNMUPAAnk%3D' (2026-01-05)

Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-01-20 12:18:41 +01:00
d3e43eb651 Remove conflicting definitions in amd-uprof-driver
See: https://lkml.org/lkml/2025/4/9/1709

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-01-20 12:15:18 +01:00
a491546ffb Mark mcxx as broken and remove from package list
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-01-20 12:15:14 +01:00
933c78a80b Fix moved package linuxPackages.perf is now perf
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-01-20 12:15:10 +01:00
150969be9b Fix replaced nixseparatedebuginfod
nixseparatedebuginfod has been replaced by nixseparatedebuginfod2

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-01-20 12:15:06 +01:00
9097729759 Use standard gcc for intel packages
This reverts 26f52aa27d

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-01-20 12:15:02 +01:00
779449f1db Fix renamed option watchdog.runtimeTime
The option 'systemd.watchdog.runtimeTime' has been renamed to
'systemd.settings.Manager.RuntimeWatchdogSec'.

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-01-20 12:14:59 +01:00
6cbe33bd80 Replace wrapGAppsHook with wrapGAppsHook3
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-01-20 12:14:56 +01:00
3f1f5ae8f2 Fix changed cudaPackages.cuda_cudart output
See: https://github.com/NixOS/nixpkgs/pull/437723
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-01-20 12:14:49 +01:00
fe8586e780 Set pyproject=true in buildPythonApplication
The buildPythonPackage and buildPythonApplication functions now
  require an explicit format attribute. Previously the default format
  used setuptools and called setup.py from the source tree, which is
  deprecated. The modern alternative is to configure pyproject = true
  with build-system = [ setuptools ].

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-01-20 12:14:31 +01:00
8677adba27 Fix renamed llvm bintools
Moved from llvmPackages_latest.tools.bintools to
llvmPackages_latest.bintools

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-01-20 12:14:27 +01:00
f614149edf Upgrade nixpkgs to 25.11
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-01-20 12:14:11 +01:00
859eebda98 Change varcila shell to zsh
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2026-01-07 13:22:17 +01:00
c2a201b085 Increase fail2ban ban time on each attempt
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-01-07 13:14:34 +01:00
f921f0a4bd Disable password login via SSH in apex
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-01-07 13:14:30 +01:00
aa16bfc0bc Enable fail2ban in apex login node
We are seeing a lot of failed attempts from the same IPs:

    apex% sudo journalctl -u sshd -b0 | grep 'Failed password' | wc -l
    2441

Reviewed-by: Aleix Boné <abonerib@bsc.es>
2026-01-07 13:14:22 +01:00
83 changed files with 2568 additions and 4496 deletions

6
flake.lock generated
View File

@@ -2,11 +2,11 @@
"nodes": { "nodes": {
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1764522689, "lastModified": 1767634882,
"narHash": "sha256-SqUuBFjhl/kpDiVaKLQBoD8TLD+/cTUzzgVFoaHrkqY=", "narHash": "sha256-2GffSfQxe3sedHzK+sTKlYo/NTIAGzbFCIsNMUPAAnk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8bb5646e0bed5dbd3ab08c7a7cc15b75ab4e1d0f", "rev": "3c9db02515ef1d9b6b709fc60ba9a540957f661c",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -22,8 +22,9 @@ rec {
storage = [ bay lake2 ]; storage = [ bay lake2 ];
monitor = [ hut ]; monitor = [ hut ];
login = [ apex ]; login = [ apex ];
services = [ tent ];
system = storage ++ monitor ++ login; system = storage ++ monitor ++ login ++ services;
safe = system ++ compute; safe = system ++ compute;
all = safe ++ playground; all = safe ++ playground;
}; };

View File

@@ -57,6 +57,18 @@
}; };
}; };
services.fail2ban = {
enable = true;
maxretry = 5;
bantime-increment = {
enable = true; # Double ban time on each attack
maxtime = "7d"; # Ban up to a week
};
};
# Disable SSH login with password, allow only keypair
services.openssh.settings.PasswordAuthentication = false;
networking.firewall = { networking.firewall = {
extraCommands = '' extraCommands = ''
# Blackhole BSC vulnerability scanner (OpenVAS) as it is spamming our # Blackhole BSC vulnerability scanner (OpenVAS) as it is spamming our

View File

@@ -7,7 +7,7 @@
mountdPort = 4002; mountdPort = 4002;
statdPort = 4000; statdPort = 4000;
exports = '' exports = ''
/home 10.0.40.0/24(rw,async,no_subtree_check,no_root_squash) /home 10.0.40.0/21(rw,async,no_subtree_check,no_root_squash)
/home 10.106.0.0/24(rw,async,no_subtree_check,no_root_squash) /home 10.106.0.0/24(rw,async,no_subtree_check,no_root_squash)
''; '';
}; };
@@ -15,19 +15,19 @@
# Check with `rpcinfo -p` # Check with `rpcinfo -p`
extraCommands = '' extraCommands = ''
# Accept NFS traffic from compute nodes but not from the outside # Accept NFS traffic from compute nodes but not from the outside
iptables -A nixos-fw -p tcp -s 10.0.40.0/24 --dport 111 -j nixos-fw-accept iptables -A nixos-fw -p tcp -s 10.0.40.0/21 --dport 111 -j nixos-fw-accept
iptables -A nixos-fw -p tcp -s 10.0.40.0/24 --dport 2049 -j nixos-fw-accept iptables -A nixos-fw -p tcp -s 10.0.40.0/21 --dport 2049 -j nixos-fw-accept
iptables -A nixos-fw -p tcp -s 10.0.40.0/24 --dport 4000 -j nixos-fw-accept iptables -A nixos-fw -p tcp -s 10.0.40.0/21 --dport 4000 -j nixos-fw-accept
iptables -A nixos-fw -p tcp -s 10.0.40.0/24 --dport 4001 -j nixos-fw-accept iptables -A nixos-fw -p tcp -s 10.0.40.0/21 --dport 4001 -j nixos-fw-accept
iptables -A nixos-fw -p tcp -s 10.0.40.0/24 --dport 4002 -j nixos-fw-accept iptables -A nixos-fw -p tcp -s 10.0.40.0/21 --dport 4002 -j nixos-fw-accept
iptables -A nixos-fw -p tcp -s 10.0.40.0/24 --dport 20048 -j nixos-fw-accept iptables -A nixos-fw -p tcp -s 10.0.40.0/21 --dport 20048 -j nixos-fw-accept
# Same but UDP # Same but UDP
iptables -A nixos-fw -p udp -s 10.0.40.0/24 --dport 111 -j nixos-fw-accept iptables -A nixos-fw -p udp -s 10.0.40.0/21 --dport 111 -j nixos-fw-accept
iptables -A nixos-fw -p udp -s 10.0.40.0/24 --dport 2049 -j nixos-fw-accept iptables -A nixos-fw -p udp -s 10.0.40.0/21 --dport 2049 -j nixos-fw-accept
iptables -A nixos-fw -p udp -s 10.0.40.0/24 --dport 4000 -j nixos-fw-accept iptables -A nixos-fw -p udp -s 10.0.40.0/21 --dport 4000 -j nixos-fw-accept
iptables -A nixos-fw -p udp -s 10.0.40.0/24 --dport 4001 -j nixos-fw-accept iptables -A nixos-fw -p udp -s 10.0.40.0/21 --dport 4001 -j nixos-fw-accept
iptables -A nixos-fw -p udp -s 10.0.40.0/24 --dport 4002 -j nixos-fw-accept iptables -A nixos-fw -p udp -s 10.0.40.0/21 --dport 4002 -j nixos-fw-accept
iptables -A nixos-fw -p udp -s 10.0.40.0/24 --dport 20048 -j nixos-fw-accept iptables -A nixos-fw -p udp -s 10.0.40.0/21 --dport 20048 -j nixos-fw-accept
# Accept NFS traffic from wg0 # Accept NFS traffic from wg0
iptables -A nixos-fw -p tcp -i wg0 -s 10.106.0.0/24 --dport 111 -j nixos-fw-accept iptables -A nixos-fw -p tcp -i wg0 -s 10.106.0.0/24 --dport 111 -j nixos-fw-accept

View File

@@ -24,7 +24,7 @@
address = "10.0.40.40"; address = "10.0.40.40";
prefixLength = 24; prefixLength = 24;
} ]; } ];
interfaces.ibp5s0.ipv4.addresses = [ { interfaces.ibs785.ipv4.addresses = [ {
address = "10.0.42.40"; address = "10.0.42.40";
prefixLength = 24; prefixLength = 24;
} ]; } ];
@@ -35,7 +35,7 @@
# Accept monitoring requests from hut # Accept monitoring requests from hut
iptables -A nixos-fw -p tcp -s hut -m multiport --dport 9283,9002 -j nixos-fw-accept iptables -A nixos-fw -p tcp -s hut -m multiport --dport 9283,9002 -j nixos-fw-accept
# Accept all Ceph traffic from the local network # Accept all Ceph traffic from the local network
iptables -A nixos-fw -p tcp -s 10.0.40.0/24 -m multiport --dport 3300,6789,6800:7568 -j nixos-fw-accept iptables -A nixos-fw -p tcp -s 10.0.40.0/21 -m multiport --dport 3300,6789,6800:7568 -j nixos-fw-accept
''; '';
}; };
}; };

View File

@@ -7,7 +7,6 @@
./base/august-shutdown.nix ./base/august-shutdown.nix
./base/boot.nix ./base/boot.nix
./base/env.nix ./base/env.nix
./base/fish.nix
./base/fs.nix ./base/fs.nix
./base/hw.nix ./base/hw.nix
./base/net.nix ./base/net.nix

View File

@@ -2,13 +2,36 @@
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vim wget git htop tmux pciutils tcpdump ripgrep nix-index nixos-option cmake
nix-diff ipmitool freeipmi ethtool lm_sensors cmake gnumake file tree ethtool
ncdu perf ldns pv file
freeipmi
git
gnumake
home-manager
htop
ipmitool
ldns
lm_sensors
ncdu
nix-diff
nix-index
nix-output-monitor nix-output-monitor
nixfmt-tree nixfmt-tree
nixos-option
pciutils
perf
pv
ripgrep
tcpdump
tmux
tree
vim
wget
# From jungle overlay # From jungle overlay
osumb nixgen nixgen
osumb
]; ];
programs.direnv.enable = true; programs.direnv.enable = true;
@@ -30,22 +53,9 @@
VISUAL = "vim"; VISUAL = "vim";
}; };
programs.bash.promptInit = # bash programs.bash.promptInit = ''
'' PS1="\h\\$ "
if echo "$PATH" | grep -qc '/nix/store'; then '';
# Inside a nix shell, dumb prompt
PS1="\h\\$ "
elif [ "$TERM" != "dumb" ] ; then
PROMPT_COLOR="1;31m"
((UID)) && PROMPT_COLOR="1;32m"
PS1="\n\[\033[$PROMPT_COLOR\][\[\e]0;\u@\h: \w\a\]\u@\h:\w]\\$\[\033[0m\] "
if test "$TERM" = "xterm"; then
PS1="\[\033]2;\h:\u:\w\007\]$PS1"
fi
fi
'';
time.timeZone = "Europe/Madrid"; time.timeZone = "Europe/Madrid";
i18n.defaultLocale = "en_DK.UTF-8"; i18n.defaultLocale = "en_DK.UTF-8";

View File

@@ -1,3 +0,0 @@
{
programs.fish.enable = true;
}

View File

@@ -87,13 +87,6 @@
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIIFiqXqt88VuUfyANkZyLJNiuroIITaGlOOTMhVDKjf abonerib@bsc" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIIFiqXqt88VuUfyANkZyLJNiuroIITaGlOOTMhVDKjf abonerib@bsc"
]; ];
shell = pkgs.fish;
packages = with pkgs; [
fzf
jujutsu
neovim
starship
];
}; };
vlopez = { vlopez = {
@@ -141,11 +134,12 @@
home = "/home/Computational/varcila"; home = "/home/Computational/varcila";
description = "Vincent Arcila"; description = "Vincent Arcila";
group = "Computational"; group = "Computational";
hosts = [ "apex" "hut" "tent" "fox" ]; hosts = [ "apex" "hut" "tent" "fox" "owl1" "owl2" ];
hashedPassword = "$6$oB0Tcn99DcM4Ch$Vn1A0ulLTn/8B2oFPi9wWl/NOsJzaFAWjqekwcuC9sMC7cgxEVb.Nk5XSzQ2xzYcNe5MLtmzkVYnRS1CqP39Y0"; hashedPassword = "$6$oB0Tcn99DcM4Ch$Vn1A0ulLTn/8B2oFPi9wWl/NOsJzaFAWjqekwcuC9sMC7cgxEVb.Nk5XSzQ2xzYcNe5MLtmzkVYnRS1CqP39Y0";
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKGt0ESYxekBiHJQowmKpfdouw0hVm3N7tUMtAaeLejK vincent@varch" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKGt0ESYxekBiHJQowmKpfdouw0hVm3N7tUMtAaeLejK vincent@varch"
]; ];
shell = pkgs.zsh;
}; };
pmartin1 = { pmartin1 = {
@@ -200,6 +194,32 @@
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOlRX7ZCnqtUJYCxKgWmgSrFCYuA2LHY96rVwqxXPl86 aaguirre@BSC-8488184117" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOlRX7ZCnqtUJYCxKgWmgSrFCYuA2LHY96rVwqxXPl86 aaguirre@BSC-8488184117"
]; ];
}; };
emonteir = {
uid = 9656;
isNormalUser = true;
home = "/home/Computational/emonteir";
description = "Erwin Royson Monteiro";
group = "Computational";
hosts = [ "apex" "fox" ];
hashedPassword = "$6$0mU88zd3ZuK5NiJQ$DFWL5RMLH6esQM5UyhBCiiNryw4lDDmvJp7Usz3tmevnsiSJr6u0RsUKAnR/K8GRBFrV1.GocrgNjKjik5GY//";
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOKZKot/Y3F5Wq9pQIXlCbyvQuVVeWMCsAC96Nd+LTcG erwin@Oreo"
];
};
ssanzmar = {
uid = 9657;
isNormalUser = true;
home = "/home/Computational/ssanzmar";
description = "Sergio Sanz Martínez";
group = "Computational";
hosts = [ "apex" "fox" ];
hashedPassword = "$6$HUjNDJeJMmNQ6M64$laXSOZcXg6o4v2r8Jm8Xj9kmqw7veCY32po3TVDPRR4WlyxvOeqwoKr4NjlUlPPpKN55Oot3ZYHi.9iNXsH5E1";
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIELrsRRHXryrdA2ZBx5XmdGxL4DC5bmJydhBeTWQ0SQ sergio.sanz.martinez@estudiantat.upc.edu"
];
};
}; };
groups = { groups = {

View File

@@ -1,11 +1,6 @@
{ config, pkgs, lib, ... }: { pkgs, lib, ... }:
{ {
# add the perf tool
environment.systemPackages = with pkgs; [
config.boot.kernelPackages.perf
];
# allow non-root users to read tracing data from the kernel # allow non-root users to read tracing data from the kernel
boot.kernel.sysctl."kernel.perf_event_paranoid" = -2; boot.kernel.sysctl."kernel.perf_event_paranoid" = -2;
boot.kernel.sysctl."kernel.kptr_restrict" = 0; boot.kernel.sysctl."kernel.kptr_restrict" = 0;

View File

@@ -45,7 +45,7 @@
address = "10.0.40.7"; address = "10.0.40.7";
prefixLength = 24; prefixLength = 24;
} ]; } ];
interfaces.ibp5s0.ipv4.addresses = [ { interfaces.ibs785.ipv4.addresses = [ {
address = "10.0.42.7"; address = "10.0.42.7";
prefixLength = 24; prefixLength = 24;
} ]; } ];

View File

@@ -51,6 +51,7 @@
"/nix/store:/nix/store:ro" "/nix/store:/nix/store:ro"
"/nix/var/nix/db:/nix/var/nix/db:ro" "/nix/var/nix/db:/nix/var/nix/db:ro"
"/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket:ro" "/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket:ro"
"/var/run/postgresql/:/var/run/postgresql/"
]; ];
dockerExtraHosts = [ dockerExtraHosts = [
# Required to pass the proxy via hut # Required to pass the proxy via hut
@@ -60,6 +61,8 @@
registrationFlags = [ registrationFlags = [
# Increase build log length to 64 MiB # Increase build log length to 64 MiB
"--output-limit 65536" "--output-limit 65536"
# Allow the runner to be used in multiple projects
"--locked=false"
]; ];
preBuildScript = pkgs.writeScript "setup-container" '' preBuildScript = pkgs.writeScript "setup-container" ''
mkdir -p -m 0755 /nix/var/log/nix/drvs mkdir -p -m 0755 /nix/var/log/nix/drvs

View File

@@ -5,7 +5,7 @@
../module/slurm-exporter.nix ../module/slurm-exporter.nix
../module/meteocat-exporter.nix ../module/meteocat-exporter.nix
../module/upc-qaire-exporter.nix ../module/upc-qaire-exporter.nix
./gpfs-probe.nix ./ssh-robot-probes.nix
../module/nix-daemon-exporter.nix ../module/nix-daemon-exporter.nix
]; ];
@@ -111,6 +111,7 @@
"127.0.0.1:${toString config.services.prometheus.exporters.smartctl.port}" "127.0.0.1:${toString config.services.prometheus.exporters.smartctl.port}"
"127.0.0.1:9341" # Slurm exporter "127.0.0.1:9341" # Slurm exporter
"127.0.0.1:9966" # GPFS custom exporter "127.0.0.1:9966" # GPFS custom exporter
"127.0.0.1:9967" # SLURM custom exporter
"127.0.0.1:9999" # Nix-daemon custom exporter "127.0.0.1:9999" # Nix-daemon custom exporter
"127.0.0.1:9929" # Meteocat custom exporter "127.0.0.1:9929" # Meteocat custom exporter
"127.0.0.1:9928" # UPC Qaire custom exporter "127.0.0.1:9928" # UPC Qaire custom exporter

View File

@@ -4,8 +4,8 @@ let
name = "jungle-web"; name = "jungle-web";
src = pkgs.fetchgit { src = pkgs.fetchgit {
url = "https://jungle.bsc.es/git/rarias/jungle-website.git"; url = "https://jungle.bsc.es/git/rarias/jungle-website.git";
rev = "52abaf4d71652a9ef77a0b098db14ca33bffff4c"; rev = "5f18335d14126d2fef134c0cd441771436f7dfa1";
hash = "sha256-/ul9GazbOrOkmlvSgDz/+2W+V+ir5725Y7mVLc3rb0M="; hash = "sha256-s9VBF91sQ7hg9+lrwNFPYgoXTTyXaQcAulCiGJgWERo=";
}; };
buildInputs = [ pkgs.hugo ]; buildInputs = [ pkgs.hugo ];
buildPhase = '' buildPhase = ''

View File

@@ -29,6 +29,7 @@
closing = pkgs.writeText "closing.txt" closing = pkgs.writeText "closing.txt"
'' ''
Subject: OmpSs-2 release enters closing period Subject: OmpSs-2 release enters closing period
To: star@bsc.es
Hi, Hi,
@@ -42,6 +43,7 @@
freeze = pkgs.writeText "freeze.txt" freeze = pkgs.writeText "freeze.txt"
'' ''
Subject: OmpSs-2 release enters freeze period Subject: OmpSs-2 release enters freeze period
To: star@bsc.es
Hi, Hi,
@@ -55,6 +57,7 @@
release = pkgs.writeText "release.txt" release = pkgs.writeText "release.txt"
'' ''
Subject: OmpSs-2 release now Subject: OmpSs-2 release now
To: star@bsc.es
Hi, Hi,
@@ -69,7 +72,7 @@
script = '' script = ''
set -eu set -eu
set -o pipefail set -o pipefail
cat ${mail} | ${config.security.wrapperDir}/sendmail star@bsc.es cat ${mail} | ${config.security.wrapperDir}/sendmail -t star@bsc.es
''; '';
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";

View File

@@ -8,12 +8,14 @@
{ name = "anavarro"; ensureClauses.superuser = true; } { name = "anavarro"; ensureClauses.superuser = true; }
{ name = "rarias"; ensureClauses.superuser = true; } { name = "rarias"; ensureClauses.superuser = true; }
{ name = "grafana"; } { name = "grafana"; }
{ name = "gitlab-runner"; }
]; ];
authentication = '' authentication = ''
#type database DBuser auth-method #type database DBuser auth-method
local perftestsdb rarias trust local perftestsdb rarias trust
local perftestsdb anavarro trust local perftestsdb anavarro trust
local perftestsdb grafana trust local perftestsdb grafana trust
local perftestsdb gitlab-runner trust
''; '';
}; };
} }

8
m/hut/sblame-probe.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
cat <<EOF
HTTP/1.1 200 OK
Content-Type: text/plain; version=0.0.4; charset=utf-8; escaping=values
EOF
ssh bsc015557@glogin2.bsc.es "timeout 3 command sblame -E"

View File

@@ -6,6 +6,12 @@ let
chmod +x $out chmod +x $out
'' ''
; ;
sblame-probe-script = pkgs.runCommand "sblame-probe.sh" { }
''
cp ${./sblame-probe.sh} $out;
chmod +x $out
''
;
in in
{ {
# Use a new user to handle the SSH keys # Use a new user to handle the SSH keys
@@ -28,4 +34,17 @@ in
Group = "ssh-robot"; Group = "ssh-robot";
}; };
}; };
systemd.services.sblame-probe = {
description = "Daemon to report SLURM statistics via SSH";
path = [ pkgs.openssh pkgs.netcat ];
after = [ "network.target" ];
wantedBy = [ "default.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.socat}/bin/socat TCP4-LISTEN:9967,fork EXEC:${sblame-probe-script}";
User = "ssh-robot";
Group = "ssh-robot";
};
};
} }

View File

@@ -46,7 +46,7 @@
address = "10.0.40.42"; address = "10.0.40.42";
prefixLength = 24; prefixLength = 24;
} ]; } ];
interfaces.ibp5s0.ipv4.addresses = [ { interfaces.ibs785.ipv4.addresses = [ {
address = "10.0.42.42"; address = "10.0.42.42";
prefixLength = 24; prefixLength = 24;
} ]; } ];
@@ -57,7 +57,7 @@
# Accept monitoring requests from hut # Accept monitoring requests from hut
iptables -A nixos-fw -p tcp -s hut --dport 9002 -j nixos-fw-accept iptables -A nixos-fw -p tcp -s hut --dport 9002 -j nixos-fw-accept
# Accept all Ceph traffic from the local network # Accept all Ceph traffic from the local network
iptables -A nixos-fw -p tcp -s 10.0.40.0/24 -m multiport --dport 3300,6789,6800:7568 -j nixos-fw-accept iptables -A nixos-fw -p tcp -s 10.0.40.0/21 -m multiport --dport 3300,6789,6800:7568 -j nixos-fw-accept
''; '';
}; };
}; };

27
m/module/tc1-board.nix Normal file
View File

@@ -0,0 +1,27 @@
{ lib, pkgs, ... }:
{
# Allow user access to FTDI USB device
services.udev.packages = lib.singleton (pkgs.writeTextFile {
# Needs to be < 73
name = "60-ftdi-tc1.rules";
text = ''
# Bus 003 Device 003: ID 0403:6011 Future Technology Devices International, Ltd FT4232H Quad HS USB-UART/FIFO IC
# Use := to make sure it doesn't get changed later
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", MODE:="0666"
'';
destination = "/etc/udev/rules.d/60-ftdi-tc1.rules";
});
# Allow access to USB for docker in GitLab runner
services.gitlab-runner = {
services.gitlab-bsc-docker = {
registrationFlags = [
# We need raw access to the USB port to reboot the board
"--docker-devices /dev/bus/usb/003/003"
# And TTY access for the serial port
"--docker-devices /dev/ttyUSB2"
];
};
};
}

View File

@@ -20,7 +20,7 @@
address = "10.0.40.1"; address = "10.0.40.1";
prefixLength = 24; prefixLength = 24;
} ]; } ];
interfaces.ibp5s0.ipv4.addresses = [ { interfaces.ibs785.ipv4.addresses = [ {
address = "10.0.42.1"; address = "10.0.42.1";
prefixLength = 24; prefixLength = 24;
} ]; } ];

View File

@@ -21,7 +21,7 @@
prefixLength = 24; prefixLength = 24;
} ]; } ];
# Watch out! The OmniPath device is not in the same place here: # Watch out! The OmniPath device is not in the same place here:
interfaces.ibp129s0.ipv4.addresses = [ { interfaces.ibs801.ipv4.addresses = [ {
address = "10.0.42.2"; address = "10.0.42.2";
prefixLength = 24; prefixLength = 24;
} ]; } ];

View File

@@ -16,6 +16,8 @@
../module/p.nix ../module/p.nix
../module/vpn-dac.nix ../module/vpn-dac.nix
../module/hut-substituter.nix ../module/hut-substituter.nix
../module/tc1-board.nix
../module/ceph.nix
]; ];
# Select the this using the ID to avoid mismatches # Select the this using the ID to avoid mismatches
@@ -63,6 +65,13 @@
fsType = "ext4"; fsType = "ext4";
}; };
# Mount the NFS home
fileSystems."/nfs/home" = {
device = "10.106.0.30:/home";
fsType = "nfs";
options = [ "nfsvers=3" "rsize=1024" "wsize=1024" "cto" "nofail" ];
};
# Make a /vault/$USER directory for each user. # Make a /vault/$USER directory for each user.
systemd.services.create-vault-dirs = let systemd.services.create-vault-dirs = let
# Take only normal users in tent # Take only normal users in tent

View File

@@ -1,4 +1,7 @@
{ config, lib, ... }: { config, lib, ... }:
let
cfg = config.services.gitea;
in
{ {
services.gitea = { services.gitea = {
enable = true; enable = true;
@@ -26,5 +29,54 @@
SENDMAIL_ARGS = "--"; SENDMAIL_ARGS = "--";
}; };
}; };
dump = {
enable = false; # Do not enable NixOS module, use our custom systemd script below
backupDir = "/vault/backup/gitea";
};
}; };
systemd.services.gitea-backup = let
exe = lib.getExe cfg.package;
in {
description = "Gitea daily backup";
after = [ "gitea.service" ];
path = [ cfg.package ];
environment = {
USER = cfg.user;
HOME = cfg.stateDir;
GITEA_WORK_DIR = cfg.stateDir;
GITEA_CUSTOM = cfg.customDir;
};
serviceConfig = {
Type = "oneshot";
User = cfg.user;
WorkingDirectory = cfg.dump.backupDir;
};
script = ''
name="gitea-dump-$(date +%a).${cfg.dump.type}"
${exe} dump --type ${cfg.dump.type} --file - >"$name.tmp"
mv "$name.tmp" "$name"
cp "$name" "/ceph/backup/gitea/$name"
'';
};
# Create also the /ceph directories if needed
systemd.tmpfiles.rules = [
"d /ceph/backup/gitea/ 0750 ${cfg.user} ${cfg.group} - -"
"z /ceph/backup/gitea/ 0750 ${cfg.user} ${cfg.group} - -"
];
systemd.timers.gitea-backup = {
description = "Update timer for gitea-backup";
partOf = [ "gitea-backup.service" ];
wantedBy = [ "timers.target" ];
timerConfig.OnCalendar = cfg.dump.interval;
};
# Allow gitea user to send mail
users.users.gitea.extraGroups = [ "mail-robot" ];
} }

View File

@@ -43,6 +43,7 @@
registrationFlags = [ registrationFlags = [
# Increase build log length to 64 MiB # Increase build log length to 64 MiB
"--output-limit 65536" "--output-limit 65536"
"--docker-network-mode host"
]; ];
preBuildScript = pkgs.writeScript "setup-container" '' preBuildScript = pkgs.writeScript "setup-container" ''
mkdir -p -m 0755 /nix/var/log/nix/drvs mkdir -p -m 0755 /nix/var/log/nix/drvs

View File

@@ -4,8 +4,8 @@ let
name = "jungle-web"; name = "jungle-web";
src = pkgs.fetchgit { src = pkgs.fetchgit {
url = "https://jungle.bsc.es/git/rarias/jungle-website.git"; url = "https://jungle.bsc.es/git/rarias/jungle-website.git";
rev = "52abaf4d71652a9ef77a0b098db14ca33bffff4c"; rev = "5f18335d14126d2fef134c0cd441771436f7dfa1";
hash = "sha256-/ul9GazbOrOkmlvSgDz/+2W+V+ir5725Y7mVLc3rb0M="; hash = "sha256-s9VBF91sQ7hg9+lrwNFPYgoXTTyXaQcAulCiGJgWERo=";
}; };
buildInputs = [ pkgs.hugo ]; buildInputs = [ pkgs.hugo ];
buildPhase = '' buildPhase = ''

View File

@@ -1,10 +1,9 @@
{ lib, pkgs, ... }: { lib, ... }:
{ {
imports = [ imports = [
../common/ssf.nix ../common/ssf.nix
../module/hut-substituter.nix ../module/hut-substituter.nix
./hydra.nix
]; ];
# Select this using the ID to avoid mismatches # Select this using the ID to avoid mismatches
@@ -26,27 +25,9 @@
address = "10.0.40.6"; address = "10.0.40.6";
prefixLength = 24; prefixLength = 24;
} ]; } ];
interfaces.ibp5s0.ipv4.addresses = [ { interfaces.ibs785.ipv4.addresses = [ {
address = "10.0.42.6"; address = "10.0.42.6";
prefixLength = 24; prefixLength = 24;
} ]; } ];
}; };
services.nix-serve = {
enable = true;
bindAddress = "0.0.0.0";
port = 5000;
package = pkgs.haskell.lib.overrideSrc (pkgs.haskell.packages.ghc96.nix-serve-ng.override { nix = pkgs.nixVersions.nix_2_28; }) {
src = pkgs.fetchgit {
url = "https://jungle.bsc.es/git/abonerib/nix-serve-ng.git";
rev = "9c056641300a826db66b66d7e584b2541d38927a";
hash = "sha256-y69ZchFiZOU71eyeljcQgLxkLk5JUzZfanq8Yzw4MkI=";
};
version = "unstable";
};
secretKeyFile = "/var/cache-priv-key.pem";
# Public key:
# 10.0.40.6:8jBhIdXEBap+Qo+vc1/fnV9vj43A2oDk839EEheRr/U=
};
} }

View File

@@ -1,57 +0,0 @@
{
config,
pkgs,
lib,
...
}:
{
services.hydra = {
enable = true;
# Wrap hydra so it puts quiet flag every time... This is dumb and annoying,
# but i can't override the systemd ExecStart without running into infinite
# recursion.
package = pkgs.symlinkJoin {
name = "hydra-quiet";
paths = [ pkgs.hydra ];
postBuild = ''
for prog in hydra-queue-runner hydra-evaluator ; do
prev=$(realpath $out/bin/$prog)
rm $out/bin/$prog
cat >$out/bin/$prog <<EOF
#!/bin/sh
args=()
for arg in "\$@"; do
if [ "\$arg" != "-v" ]; then
args+=("\$arg")
fi
done
exec $prev --quiet "\''${args[@]}"
EOF
chmod +x $out/bin/$prog
done
'';
};
hydraURL = "http://localhost:3001"; # externally visible URL
notificationSender = "hydra@jungle.bsc.es"; # e-mail of Hydra service
port = 3001;
# a standalone Hydra will require you to unset the buildMachinesFiles list to avoid using a nonexistant /etc/nix/machines
buildMachinesFiles = [ ];
# you will probably also want, otherwise *everything* will be built from scratch
useSubstitutes = true;
listenHost = "0.0.0.0"; # Force IPv4
};
systemd.services.hydra-send-stats.enable = lib.mkForce false;
networking.firewall.allowedTCPPorts = [ config.services.hydra.port ];
nix.settings.extra-allowed-uris = [
"git+ssh://git@bscpm04.bsc.es"
"git+ssh://git@gitlab-internal.bsc.es"
"https://github.com"
"git+ssh://github.com"
];
}

View File

@@ -9,9 +9,6 @@ let
bscPkgs = { bscPkgs = {
agenix = prev.callPackage ./pkgs/agenix/default.nix { }; agenix = prev.callPackage ./pkgs/agenix/default.nix { };
amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { }; amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { };
aoccUnwrapped = callPackage ./pkgs/aocc/unwrapped.nix { };
aocc = callPackage ./pkgs/aocc/default.nix { };
stdenvAocc = final.overrideCC final.stdenv final.aocc;
bench6 = callPackage ./pkgs/bench6/default.nix { }; bench6 = callPackage ./pkgs/bench6/default.nix { };
bigotes = callPackage ./pkgs/bigotes/default.nix { }; bigotes = callPackage ./pkgs/bigotes/default.nix { };
clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { }; clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { };
@@ -23,10 +20,11 @@ let
#extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated #extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated
gpi-2 = callPackage ./pkgs/gpi-2/default.nix { }; gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
gromacs = callPackage ./pkgs/gromacs/default.nix { enableSYCL = true; }; gromacs = callPackage ./pkgs/gromacs/default.nix { enableSYCL = true; };
intel-apt = callPackage ./pkgs/intel-oneapi/packages.nix { }; wrapIntel = callPackage ./pkgs/intel-oneapi/common/wrapper.nix { };
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { }; intel-apt = callPackage ./pkgs/intel-oneapi/deb/packages.nix { };
intelPackages_2024 = final.intel-apt.hpckit_2024; intelPackages_2023 = callPackage ./pkgs/intel-oneapi/deb/2023.nix { };
intelPackages_2025 = final.intel-apt.hpckit_2025; intelPackages_2024 = final.intel-apt.hpckit-2024;
intelPackages_2025 = final.intel-apt.hpckit-2025;
intelPackages = final.intelPackages_2025; intelPackages = final.intelPackages_2025;
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { }; jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
# FIXME: Extend this to all linuxPackages variants. Open problem, see: # FIXME: Extend this to all linuxPackages variants. Open problem, see:
@@ -37,7 +35,8 @@ let
linuxPackages_latest = prev.linuxPackages_latest.extend(_final: _prev: { linuxPackages_latest = prev.linuxPackages_latest.extend(_final: _prev: {
amd-uprof-driver = _prev.callPackage ./pkgs/amd-uprof/driver.nix { }; amd-uprof-driver = _prev.callPackage ./pkgs/amd-uprof/driver.nix { };
}); });
llvm-intel = callPackage ./pkgs/llvm-intel/default.nix { }; llvm-intel-unwrapped = callPackage ./pkgs/intel-oneapi/open/default.nix { };
llvm-intel = final.wrapIntel { cc = final.llvm-intel-unwrapped; };
lmbench = callPackage ./pkgs/lmbench/default.nix { }; lmbench = callPackage ./pkgs/lmbench/default.nix { };
# Broken and unmantained # Broken and unmantained
# mcxx = callPackage ./pkgs/mcxx/default.nix { }; # mcxx = callPackage ./pkgs/mcxx/default.nix { };
@@ -48,9 +47,8 @@ let
nanos6Debug = final.nanos6.override { enableDebug = true; }; nanos6Debug = final.nanos6.override { enableDebug = true; };
nixtools = callPackage ./pkgs/nixtools/default.nix { }; nixtools = callPackage ./pkgs/nixtools/default.nix { };
nixgen = callPackage ./pkgs/nixgen/default.nix { }; nixgen = callPackage ./pkgs/nixgen/default.nix { };
# Broken because of pkgsStatic.libcap nix-portable = callPackage ./pkgs/nix-portable/default.nix { };
# See: https://github.com/NixOS/nixpkgs/pull/268791 nix-wrap = callPackage ./pkgs/nix-wrap/default.nix { };
#nix-wrap = callPackage ./pkgs/nix-wrap/default.nix { };
nodes = callPackage ./pkgs/nodes/default.nix { }; nodes = callPackage ./pkgs/nodes/default.nix { };
nosv = callPackage ./pkgs/nosv/default.nix { }; nosv = callPackage ./pkgs/nosv/default.nix { };
oneMath = callPackage ./pkgs/onemath/default.nix { }; oneMath = callPackage ./pkgs/onemath/default.nix { };
@@ -61,20 +59,11 @@ let
ovniGit = final.ovni.override { useGit = true; }; ovniGit = final.ovni.override { useGit = true; };
papi = callPackage ./pkgs/papi/default.nix { papi = prev.papi; }; papi = callPackage ./pkgs/papi/default.nix { papi = prev.papi; };
paraverKernel = callPackage ./pkgs/paraver/kernel.nix { }; paraverKernel = callPackage ./pkgs/paraver/kernel.nix { };
pertalde = callPackage ./pkgs/pertalde/default.nix { };
pocl = callPackage ./pkgs/pocl/default.nix { }; pocl = callPackage ./pkgs/pocl/default.nix { };
pocl-unpublished = callPackage ./pkgs/pocl/default.nix {
gitUrl = "git@github.com:pocl/unpublished.git";
gitBranch = "loopvec-next";
gitCommit = "74f7e2b5644b1c5598205c8cac1914bb4c5dadec";
enableNOSV = false;
enableOVNI = false;
};
pocl-noicd = callPackage ./pkgs/pocl/default.nix { enableICD = false; }; pocl-noicd = callPackage ./pkgs/pocl/default.nix { enableICD = false; };
prometheus-slurm-exporter = prev.callPackage ./pkgs/slurm-exporter/default.nix { }; prometheus-slurm-exporter = prev.callPackage ./pkgs/slurm-exporter/default.nix { };
#pscom = callPackage ./pkgs/parastation/pscom.nix { }; # Unmaintaned #pscom = callPackage ./pkgs/parastation/pscom.nix { }; # Unmaintaned
#psmpi = callPackage ./pkgs/parastation/psmpi.nix { }; # Unmaintaned #psmpi = callPackage ./pkgs/parastation/psmpi.nix { }; # Unmaintaned
rodinia = callPackage ./pkgs/rodinia/default.nix { };
slurm = import ./pkgs/slurm/default.nix { slurm = prev.slurm; }; slurm = import ./pkgs/slurm/default.nix { slurm = prev.slurm; };
sonar = callPackage ./pkgs/sonar/default.nix { }; sonar = callPackage ./pkgs/sonar/default.nix { };
stdenvClangOmpss2 = final.stdenv.override { cc = final.clangOmpss2; allowedRequisites = null; }; stdenvClangOmpss2 = final.stdenv.override { cc = final.clangOmpss2; allowedRequisites = null; };
@@ -85,16 +74,8 @@ let
tampi = callPackage ./pkgs/tampi/default.nix { }; tampi = callPackage ./pkgs/tampi/default.nix { };
tasycl = callPackage ./pkgs/tasycl/default.nix { }; tasycl = callPackage ./pkgs/tasycl/default.nix { };
tasycl-acpp = callPackage ./pkgs/tasycl/default.nix { useIntel = false; }; tasycl-acpp = callPackage ./pkgs/tasycl/default.nix { useIntel = false; };
unified-runtime = callPackage ./pkgs/unified-runtime/default.nix { };
upc-qaire-exporter = prev.callPackage ./pkgs/upc-qaire-exporter/default.nix { }; upc-qaire-exporter = prev.callPackage ./pkgs/upc-qaire-exporter/default.nix { };
taopencl = callPackage ./pkgs/taopencl/default.nix { };
wxparaver = callPackage ./pkgs/paraver/default.nix { }; wxparaver = callPackage ./pkgs/paraver/default.nix { };
_cuda = prev._cuda.extend (_: _prev: final.lib.recursiveUpdate _prev {
extensions = _prev.extensions ++ [(finalAttrs: _: {
tacuda = finalAttrs.callPackage ./pkgs/tacuda/default.nix { };
})];
});
}; };
tests = rec { tests = rec {
@@ -125,6 +106,10 @@ let
# intel2023-sycl = hello-sycl.override { intelPackages = final.intelPackages_2023; }; # broken # intel2023-sycl = hello-sycl.override { intelPackages = final.intelPackages_2023; }; # broken
intel2024-sycl = hello-sycl.override { intelPackages = final.intelPackages_2024; }; intel2024-sycl = hello-sycl.override { intelPackages = final.intelPackages_2024; };
intel2025-sycl = hello-sycl.override { intelPackages = final.intelPackages_2025; }; intel2025-sycl = hello-sycl.override { intelPackages = final.intelPackages_2025; };
oneapi-c = hello-c.override { inherit (final.llvm-intel) stdenv; };
oneapi-cpp = hello-cpp.override { inherit (final.llvm-intel) stdenv; };
oneapi-sycl = hello-sycl.override { intelPackages = final.llvm-intel; };
oneapi-syclompss = hello-syclompss.override { intelPackages = final.llvm-intel; };
clangOmpss2-lto = lto.override { stdenv = final.stdenvClangOmpss2Nanos6; }; clangOmpss2-lto = lto.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-asan = asan.override { stdenv = final.stdenvClangOmpss2Nanos6; }; clangOmpss2-asan = asan.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-task = callPackage ./test/compilers/ompss2.nix { clangOmpss2-task = callPackage ./test/compilers/ompss2.nix {

View File

@@ -1,8 +1,6 @@
{ stdenv { stdenv
, lib , lib
, curl , fetchurl
, cacert
, runCommandLocal
, autoPatchelfHook , autoPatchelfHook
, elfutils , elfutils
, glib , glib
@@ -26,26 +24,22 @@ let
tarball = "AMDuProf_Linux_x64_${version}.tar.bz2"; tarball = "AMDuProf_Linux_x64_${version}.tar.bz2";
# NOTE: Remember to update the radare2 patch below if AMDuProfPcm changes. # NOTE: Remember to update the radare2 patch below if AMDuProfPcm changes.
uprofSrc = runCommandLocal tarball { src = fetchurl {
nativeBuildInputs = [ curl ]; url = "https://download.amd.com/developer/eula/uprof/uprof-5-1/${tarball}";
outputHash = "sha256-j9gxcBcIg6Zhc5FglUXf/VV9bKSo+PAKeootbN7ggYk="; sha256 = "sha256-j9gxcBcIg6Zhc5FglUXf/VV9bKSo+PAKeootbN7ggYk=";
SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt"; curlOptsList = [
} '' "-H" "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0"
curl \ "-H" "'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'"
-o $out \ "-H" "Accept-Language: en-US,en;q=0.5"
'https://download.amd.com/developer/eula/uprof/uprof-5-1/${tarball}' \ "-H" "Accept-Encoding: gzip, deflate, br, zstd"
-H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0' \ "-H" "Referer: https://www.amd.com/"
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \ ];
-H 'Accept-Language: en-US,en;q=0.5' \ };
-H 'Accept-Encoding: gzip, deflate, br, zstd' \
-H 'Referer: https://www.amd.com/' 2>&1 | tr '\r' '\n'
'';
in in
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "AMD-uProf"; pname = "AMD-uProf";
inherit version; inherit src version;
src = uprofSrc;
dontStrip = true; dontStrip = true;
strictDeps = true; strictDeps = true;
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];

View File

@@ -1,17 +0,0 @@
{
wrapCCWith,
aoccUnwrapped,
}:
let
cc = aoccUnwrapped;
in
wrapCCWith {
inherit cc;
nixSupport.cc-cflags = [ "-isystem ${cc}/include" ];
extraBuildCommands = ''
wrap aocc $wrapper $ccPath/clang
wrap aocc++ $wrapper $ccPath/clang++
'';
}

View File

@@ -1,52 +0,0 @@
{
lib,
fetchurl,
stdenv,
autoPatchelfHook,
rocmPackages,
zlib,
libffi,
elfutils,
}:
let
# in newer nixpkgs the runtime is hsakmt
rocmRuntime = if rocmPackages ? hsakmt then rocmPackages.hsakmt else rocmPackages.rocm-runtime;
in
stdenv.mkDerivation {
pname = "aocc-compiler";
version = "5.0.0";
src = fetchurl {
url = "https://download.amd.com/developer/eula/aocc/aocc-5-0/aocc-compiler-5.0.0.tar";
sha256 = "sha256-lm+sLSx1np3m6WnBCtp6ezBsET9/HgfqN2gp7IY4Dao=";
};
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [
elfutils
zlib
rocmRuntime
stdenv.cc.cc.lib
];
phases = [
"unpackPhase"
"installPhase"
"fixupPhase"
];
dontStrip = true;
installPhase = ''
mkdir -p $out
cp -a . $out/
ln -s ${lib.getLib libffi}/lib/libffi.so $out/lib/libffi.so.6
'';
passthru = {
inherit rocmRuntime;
isClang = true; # Needed for wrapCCWith
};
meta.mainProgram = "clang";
}

View File

@@ -185,6 +185,7 @@ stdenv'.mkDerivation rec {
maintainers = with maintainers; [ maintainers = with maintainers; [
sheepforce sheepforce
markuskowa markuskowa
bsc.abonerib
]; ];
}; };
} }

View File

@@ -0,0 +1,77 @@
{
stdenv,
lib,
gcc,
libgcc,
overrideCC,
wrapCCWith,
}:
{
cc,
extraPath ? lib.makeBinPath (
[ gcc.cc ] ++ (lib.optionals (cc.enableCuda or false) [ cc.cudaPackages.cudatoolkit ])
),
extraBuildCommands ? "",
extraInstallCommands ? "",
}:
let
targetConfig = stdenv.targetPlatform.config;
in
(wrapCCWith {
inherit cc;
nixSupport = {
cc-ldflags = [
"-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}"
"-L${gcc.cc.lib}/lib"
"-L${libgcc.out}/lib"
"-L${gcc.libc}/lib"
"-L${cc}/lib"
];
cc-cflags = [
"--gcc-toolchain=${gcc.cc}"
"-isystem ${cc.original or cc}/lib/clang/${toString cc.llvmMajorVersion}/include"
"-isystem ${cc}/include"
"-isystem ${cc}/include/intel64"
"-isystem ${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}/include"
];
libcxx-cxxflags = [
"-isystem ${gcc.cc}/include/c++/${gcc.version}"
"-isystem ${gcc.cc}/include/c++/${gcc.version}/${targetConfig}"
];
};
extraBuildCommands = ''
# FIXME: We should find a better way to modify the PATH instead of using
# this ugly hack. See https://jungle.bsc.es/git/rarias/bscpkgs/issues/9
echo 'path_backup="${extraPath}:$path_backup"' >>$out/nix-support/cc-wrapper-hook
# Disable hardening by default
echo "" > $out/nix-support/add-hardening.sh
pushd $ccPath
for i in $ {llvm,sycl}-* ; do
ln -s $ccPath/$i $out/bin/$i
done
popd
# Use this to detect when a compiler subprocess is called
# from icpx (--fsycl-host-compiler)
echo 'export NIX_CC_WRAPPER_INTEL=1' >>$out/nix-support/cc-wrapper-hook
# oneMath looks for sycl libraries in bin/../lib
ln -s ${cc}/lib $out/lib
ln -s ${cc}/include $out/include
''
+ extraBuildCommands;
}).overrideAttrs
(finalAttrs: prevAttrs: {
installPhase = prevAttrs.installPhase + extraInstallCommands;
passthru.stdenv = overrideCC stdenv finalAttrs.finalPackage;
meta = (prevAttrs.meta or { }) // {
maintainers = with lib.maintainers.bsc; [ abonerib ];
platforms = lib.platforms.linux;
};
})

View File

@@ -42,15 +42,15 @@ let
findMatch = name: findMatch = name:
let let
aptPackages = builtins.fromJSON (builtins.readFile ./packages.json); aptPackages = builtins.getAttr "hpckit-2023-1-0" (builtins.fromTOML (builtins.readFile ./packages.toml));
matches = lib.filter (x: name == x.pname) aptPackages; matches = lib.filter (x: lib.hasPrefix name (x.name + "-" + x.version)) aptPackages;
n = lib.length matches; n = lib.length matches;
match = builtins.traceVerbose (name + " -- ${builtins.toString n}") (builtins.head matches); match = builtins.traceVerbose (name + " -- ${builtins.toString n}") (builtins.head matches);
apthost = "https://apt.repos.intel.com/oneapi/"; apthost = "https://apt.repos.intel.com/oneapi/";
in in
{ {
url = apthost + match.filename; url = apthost + match.file;
sha256 = match.sha256; sha256 = match.sha256;
}; };
@@ -303,7 +303,7 @@ let
src = joinDebs pname [ src = joinDebs pname [
# C/C++ # C/C++
"intel-oneapi-dpcpp-cpp-${version}" "intel-oneapi-dpcpp-cpp-${version}"
"intel-oneapi-compiler-dpcpp-cpp-${version}" # "intel-oneapi-compiler-dpcpp-cpp-${version}"
"intel-oneapi-compiler-dpcpp-cpp-common-${version}" "intel-oneapi-compiler-dpcpp-cpp-common-${version}"
"intel-oneapi-compiler-dpcpp-cpp-runtime-${version}" "intel-oneapi-compiler-dpcpp-cpp-runtime-${version}"
"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-${version}" "intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-${version}"

View File

@@ -0,0 +1,150 @@
{
lib,
stdenv,
callPackage,
dpkg,
fetchurl,
sqlite,
elfutils,
intelAptRepoURL ? "https://apt.repos.intel.com/oneapi/",
}:
let
inherit (builtins) map mapAttrs readFile;
fetchDeb =
p:
fetchurl {
url = intelAptRepoURL + p.file;
inherit (p) sha256;
};
dpkgExtractAll =
pname: version:
{ srcs, deps }:
stdenv.mkDerivation {
inherit pname version srcs;
nativeBuildInputs = [ dpkg ];
phases = [ "installPhase" ];
passthru = { inherit deps; };
installPhase = ''
mkdir -p $out
for src in $srcs; do
echo "Unpacking $src"
dpkg -x $src $out
done
'';
};
extractKit =
name: version: pkg:
dpkgExtractAll "${name}-extracted" version {
srcs = map fetchDeb pkg;
deps = pkg;
};
patchIntel = callPackage ./patch_intel.nix { };
# Version information for each hpckit. This is used to normalize the paths
# so that files are in $out/{bin,lib,include...} instead of all over the place
# in $out/opt/intel/oneapi/*/*/{...}.
#
# The most important is the compiler component, which is used to build the
# stdenv for the hpckit.
#
# NOTE: this have to be manually specified, so we can avoid IFD. To add a
# new version, add a new field with an empty attrset, (e.g. "2026" = {}; ),
# build hpckit_2026.unpatched and use the values from
# result/opt/intel/oneapi/* to populate the attrset.
#
# WARN: if there are more than one version in the folders of the unpatched
# components, our dependency resolution hacks have probably failed and the
# package set may be broken.
components = {
# hpckit-2023 = {
# ccl = "2021.10.0";
# compiler = "2023.2.4";
# # conda_channel = "linux-64"; # TODO: which package pulls this?
# dal = "2023.2.0";
# debugger = "2023.2.0";
# dev-utilities = "2021.10.0";
# diagnostics = "2022.4.0";
# dnnl = "2023.2.0";
# dpcpp-ct = "2023.2.0";
# dpl = "2022.2.0";
# ipp = "2021.9.0";
# ippcp = "2021.8.0";
# itac = "2021.10.0";
# mkl = "2023.2.0";
# mpi = "2021.10.0";
# tbb = "2021.10.0";
#
# llvmMajorVersion = 14;
# };
hpckit-2024 = {
tcm = "1.1";
ccl = "2021.13";
compiler = "2024.2";
dal = "2024.6";
debugger = "2024.2";
dev-utilities = "2024.2";
diagnostics = "2024.2";
dnnl = "2024.2";
dpcpp-ct = "2024.2";
dpl = "2022.6";
ipp = "2021.12";
ippcp = "2021.12";
mkl = "2024.2";
mpi = "2021.13";
tbb = "2021.13";
llvmMajorVersion = 19;
extraPackages = [
sqlite
elfutils
];
};
hpckit-2025 = {
ishmem = "1.5";
tcm = "1.4";
umf = "1.0";
ccl = "2021.17";
compiler = "2025.3";
dal = "2025.10";
debugger = "2025.3";
dev-utilities = "2025.3";
dnnl = "2025.3";
dpcpp-ct = "2025.3";
dpl = "2022.10";
ipp = "2022.3";
ippcp = "2025.3";
mkl = "2025.3";
mpi = "2021.17";
tbb = "2022.3";
llvmMajorVersion = 21;
};
};
kit = fromTOML (readFile ./packages.toml);
in
mapAttrs (
name: value:
patchIntel {
unpatched = extractKit "hpckit" kit.meta.${name}.version value;
components = components.${name};
}
) (removeAttrs kit [ "meta" ])
// {
inherit patchIntel extractKit kit;
}

View File

@@ -0,0 +1,975 @@
[meta.hpckit-2023-1-0]
version="2023.1.0-46346"
[[hpckit-2023-1-0]]
name="intel-oneapi-ccl"
version="2021.9.0-43543"
file="pool/main/intel-oneapi-ccl-2021.9.0-2021.9.0-43543_amd64.deb"
sha256="153807818d0f67bf351acdcb30520e34d3b21e57d2feecb35bbffce741b220ab"
[[hpckit-2023-1-0]]
name="intel-oneapi-ccl-devel"
version="2021.9.0-43543"
file="pool/main/intel-oneapi-ccl-devel-2021.9.0-2021.9.0-43543_amd64.deb"
sha256="4271cd383fc618633566340b7f8ae1fcf7882f208dffcf854d50c10f4389cf72"
[[hpckit-2023-1-0]]
name="intel-oneapi-clck"
version="2021.7.3-45658"
file="pool/main/intel-oneapi-clck-2021.7.3-2021.7.3-45658_amd64.deb"
sha256="045a5e1f1135cfef146f7b5211dcad3afd5608bef283c7f03a920bf686a86586"
[[hpckit-2023-1-0]]
name="intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.1.0-2023.1.0-46305_amd64.deb"
sha256="8a85a64359f8ea49d82a0a1e89d9a456d3447f917c5a0682d2f6b3d09c6fe48e"
[[hpckit-2023-1-0]]
name="intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-common"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-common-2023.1.0-2023.1.0-46305_all.deb"
sha256="d38895ab3046195929b7109b8bf80b3a0cd14507fda096ab7d0577aaea79b727"
[[hpckit-2023-1-0]]
name="intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-2023.1.0-2023.1.0-46305_amd64.deb"
sha256="2b12ab367bbf7e07d1f9da0b3ec6b3dd409703cb08802cd1e87b78192d90cf39"
[[hpckit-2023-1-0]]
name="intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-2023.1.0-2023.1.0-46305_amd64.deb"
sha256="354e65a469a9ab8e5c72684ff8c2dc5731356bc7be45012eff23e75302624edf"
[[hpckit-2023-1-0]]
name="intel-oneapi-compiler-dpcpp-cpp-common"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-compiler-dpcpp-cpp-common-2023.1.0-2023.1.0-46305_all.deb"
sha256="9c117b25ddee699d1a8162ab101b9c23beeea5e9a3f2409414ee6bbc78d6593b"
[[hpckit-2023-1-0]]
name="intel-oneapi-compiler-dpcpp-cpp-runtime"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-compiler-dpcpp-cpp-runtime-2023.1.0-2023.1.0-46305_amd64.deb"
sha256="d0eec67fe7e3b36c8c5b1d07a17779f739fd2fd1881f6b1848169faffcb855c6"
[[hpckit-2023-1-0]]
name="intel-oneapi-compiler-fortran"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-compiler-fortran-2023.1.0-2023.1.0-46305_amd64.deb"
sha256="c8c73b7a88ed594c53a424dc3ed1dc497259da960dad5eb902982f5c31059e8d"
[[hpckit-2023-1-0]]
name="intel-oneapi-compiler-fortran-common"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-compiler-fortran-common-2023.1.0-2023.1.0-46305_all.deb"
sha256="312bc5e47b7254c5637110a31c48509e09bdcb4af07a8edfddc3d190cd83d9b7"
[[hpckit-2023-1-0]]
name="intel-oneapi-compiler-fortran-runtime"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-compiler-fortran-runtime-2023.1.0-2023.1.0-46305_amd64.deb"
sha256="bb137c02afd6c372e0734c424e2087c9509fbe2f154eee1f363e39368f794334"
[[hpckit-2023-1-0]]
name="intel-oneapi-compiler-shared"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-compiler-shared-2023.1.0-2023.1.0-46305_amd64.deb"
sha256="014104b9721d7fca7bb2529ed810f27e9a73410698e9cc643ded7f909a7f17cf"
[[hpckit-2023-1-0]]
name="intel-oneapi-compiler-shared-common"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-compiler-shared-common-2023.1.0-2023.1.0-46305_all.deb"
sha256="894eaf13bfe840d2f5df49685e9f5bb9ca8212bc2c8ddf848adcabb3806db8bd"
[[hpckit-2023-1-0]]
name="intel-oneapi-compiler-shared-runtime"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-compiler-shared-runtime-2023.1.0-2023.1.0-46305_amd64.deb"
sha256="fa3f4c23f527f1ced767fef56c022e252daedd08fab752ec653985f178d509b6"
[[hpckit-2023-1-0]]
name="intel-oneapi-dal"
version="2023.1.0-46349"
file="pool/main/intel-oneapi-dal-2023.1.0-2023.1.0-46349_amd64.deb"
sha256="1c7c79398aad2010590ac092087bd8430232cf79bd859b8f3a5ac08bf8b1e9f9"
[[hpckit-2023-1-0]]
name="intel-oneapi-dal-common"
version="2023.1.0-46349"
file="pool/main/intel-oneapi-dal-common-2023.1.0-2023.1.0-46349_all.deb"
sha256="ffa4620fe6deeb71779ecc8ea6e4b113d93d0abb326632ec87a2be6aa62b579f"
[[hpckit-2023-1-0]]
name="intel-oneapi-dal-common-devel"
version="2023.1.0-46349"
file="pool/main/intel-oneapi-dal-common-devel-2023.1.0-2023.1.0-46349_all.deb"
sha256="72f539982ef75acc8d236144529715d656f35b3ffff486f5205295aa97fe097b"
[[hpckit-2023-1-0]]
name="intel-oneapi-dal-devel"
version="2023.1.0-46349"
file="pool/main/intel-oneapi-dal-devel-2023.1.0-2023.1.0-46349_amd64.deb"
sha256="202b28dc9cba1d978d3dd296b66fb2de266adb53f8c1aaeead3dd70d713756d6"
[[hpckit-2023-1-0]]
name="intel-oneapi-dev-utilities"
version="2021.9.0-44447"
file="pool/main/intel-oneapi-dev-utilities-2021.9.0-2021.9.0-44447_amd64.deb"
sha256="2d34f9d4f746b2b6468ed033628ffbe7838bf1d0bafcc3650d13d5740b10157f"
[[hpckit-2023-1-0]]
name="intel-oneapi-diagnostics-utility"
version="2022.3.0-43897"
file="pool/main/intel-oneapi-diagnostics-utility-2022.3.0-43897_amd64.deb"
sha256="0dcb568c586269c34acf055a2531eda75b1e79beaeca2587f3a87daf5167a86f"
[[hpckit-2023-1-0]]
name="intel-oneapi-dnnl"
version="2023.1.0-46343"
file="pool/main/intel-oneapi-dnnl-2023.1.0-46343_amd64.deb"
sha256="e60916a5849ba8faacd46f9633cdd6e9623fc45828696afe5d8308b7a6fcd96e"
[[hpckit-2023-1-0]]
name="intel-oneapi-dnnl-devel"
version="2023.1.0-46343"
file="pool/main/intel-oneapi-dnnl-devel-2023.1.0-46343_amd64.deb"
sha256="5a014e468825ad12b674b88a8b549e6a607bf8a8caf2e100e525e41ac9302db6"
[[hpckit-2023-1-0]]
name="intel-oneapi-dpcpp-cpp"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-dpcpp-cpp-2023.1.0-2023.1.0-46305_amd64.deb"
sha256="5acd0dc9fc540355bc19317be5d79686f2acb90ac28486dd0717c423e4c94326"
[[hpckit-2023-1-0]]
name="intel-oneapi-dpcpp-ct"
version="2023.1.0-44450"
file="pool/main/intel-oneapi-dpcpp-ct-2023.1.0-2023.1.0-44450_amd64.deb"
sha256="062a8186d07999286875f13de68b7516c10ed4466c408b03558b318e2cffa291"
[[hpckit-2023-1-0]]
name="intel-oneapi-dpcpp-debugger"
version="2023.1.0-43513"
file="pool/main/intel-oneapi-dpcpp-debugger-2023.1.0-2023.1.0-43513_amd64.deb"
sha256="910daada72c1754f3784906a105788f9de226c84b0147c38c63ce4345ab5455e"
[[hpckit-2023-1-0]]
name="intel-oneapi-dpcpp-debugger-eclipse-cfg"
version="2023.1.0-43513"
file="pool/main/intel-oneapi-dpcpp-debugger-eclipse-cfg-2023.1.0-43513_all.deb"
sha256="389ace7ca89e567cf63dbc083dfea3c2ecef645f5461aca35cda02e5410ced8a"
[[hpckit-2023-1-0]]
name="intel-oneapi-ipp"
version="2021.8.0-46345"
file="pool/main/intel-oneapi-ipp-2021.8.0-2021.8.0-46345_amd64.deb"
sha256="2e7e6bdf92b650bcb56e5f72224289531b35de870e16b46b2000ee1276185186"
[[hpckit-2023-1-0]]
name="intel-oneapi-ipp-common"
version="2021.8.0-46345"
file="pool/main/intel-oneapi-ipp-common-2021.8.0-2021.8.0-46345_all.deb"
sha256="d367b5eb7135fd16e78be64e31be8fabf82bdd7ff5b7e20c0cab7aa89da82612"
[[hpckit-2023-1-0]]
name="intel-oneapi-ipp-common-devel"
version="2021.8.0-46345"
file="pool/main/intel-oneapi-ipp-common-devel-2021.8.0-2021.8.0-46345_all.deb"
sha256="16f5d9448492023b701b36dbe860ede13fb771ca60d5165464151f4fec086423"
[[hpckit-2023-1-0]]
name="intel-oneapi-ipp-devel"
version="2021.8.0-46345"
file="pool/main/intel-oneapi-ipp-devel-2021.8.0-2021.8.0-46345_amd64.deb"
sha256="0651c32a8875ffad2c627aae8c120366b51ae5bf62aa3fb3ac478e635aeeb871"
[[hpckit-2023-1-0]]
name="intel-oneapi-ippcp"
version="2021.7.0-43492"
file="pool/main/intel-oneapi-ippcp-2021.7.0-2021.7.0-43492_amd64.deb"
sha256="51c8ba51ffb8aa8d8fb89cb0e33e52ba6a1b415e6dcfa8dbf3e6c111f33f67d9"
[[hpckit-2023-1-0]]
name="intel-oneapi-ippcp-common"
version="2021.7.0-43492"
file="pool/main/intel-oneapi-ippcp-common-2021.7.0-2021.7.0-43492_all.deb"
sha256="acda55e5e660fb0a15183310aaf5acd42b2a5aef82395964e2aa2d74012b8fde"
[[hpckit-2023-1-0]]
name="intel-oneapi-ippcp-common-devel"
version="2021.7.0-43492"
file="pool/main/intel-oneapi-ippcp-common-devel-2021.7.0-2021.7.0-43492_all.deb"
sha256="d2c7e3f1c6a1cb0c84bfeb8ab1d398dc5dd4ebd48569a2a1d4d64292bb4bf938"
[[hpckit-2023-1-0]]
name="intel-oneapi-ippcp-devel"
version="2021.7.0-43492"
file="pool/main/intel-oneapi-ippcp-devel-2021.7.0-2021.7.0-43492_amd64.deb"
sha256="8b682da8d14c940779845385b9a68b9a71c5a488791ea1c3f64d4eb317abd23f"
[[hpckit-2023-1-0]]
name="intel-oneapi-itac"
version="2021.9.0-43491"
file="pool/main/intel-oneapi-itac-2021.9.0-2021.9.0-43491_amd64.deb"
sha256="b8b393e0f7f027f56e3d6c3fe06c2bf84fe40783701a0849fd13982d9e8eff50"
[[hpckit-2023-1-0]]
name="intel-oneapi-libdpstd-devel"
version="2022.1.0-43490"
file="pool/main/intel-oneapi-libdpstd-devel-2022.1.0-2022.1.0-43490_amd64.deb"
sha256="133b98eec6558ffee3cec65bcadcda097497cd390a63c3da09f77a7d7d225ded"
[[hpckit-2023-1-0]]
name="intel-oneapi-mkl"
version="2023.1.0-46342"
file="pool/main/intel-oneapi-mkl-2023.1.0-2023.1.0-46342_amd64.deb"
sha256="0581a867bed4ef620812bc05faa35228b7439d4f1d33f0eb4483f7eb8cafe8aa"
[[hpckit-2023-1-0]]
name="intel-oneapi-mkl-common"
version="2023.1.0-46342"
file="pool/main/intel-oneapi-mkl-common-2023.1.0-2023.1.0-46342_all.deb"
sha256="50c1537cd8252b443802325a6938f607b4b3801c552e77aacaa8d9d9dfc8c34e"
[[hpckit-2023-1-0]]
name="intel-oneapi-mkl-common-devel"
version="2023.1.0-46342"
file="pool/main/intel-oneapi-mkl-common-devel-2023.1.0-2023.1.0-46342_all.deb"
sha256="bb096792ea3669a0977beb0949c49238e0e43e3bc48a7f63abc5fdb856562651"
[[hpckit-2023-1-0]]
name="intel-oneapi-mkl-devel"
version="2023.1.0-46342"
file="pool/main/intel-oneapi-mkl-devel-2023.1.0-2023.1.0-46342_amd64.deb"
sha256="1eeb94ad7aeebd55873cb64f2ba3db5a202e3c6f17c7d3095742aeb95c72f2cd"
[[hpckit-2023-1-0]]
name="intel-oneapi-mpi"
version="2021.9.0-43482"
file="pool/main/intel-oneapi-mpi-2021.9.0-2021.9.0-43482_amd64.deb"
sha256="ccef71d5992198bca7b40111addb854062c0796427180c42d51553a949a2f7b4"
[[hpckit-2023-1-0]]
name="intel-oneapi-mpi-devel"
version="2021.9.0-43482"
file="pool/main/intel-oneapi-mpi-devel-2021.9.0-2021.9.0-43482_amd64.deb"
sha256="8702f4df9030597352e10f28ccc9635f3f17a3e128d18622a82ffa440471ba4e"
[[hpckit-2023-1-0]]
name="intel-oneapi-openmp"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-openmp-2023.1.0-2023.1.0-46305_amd64.deb"
sha256="6455ee16e4b5ab482ca57a607c20b7387ebc74ab0e1787d2a0beb7ad38c74443"
[[hpckit-2023-1-0]]
name="intel-oneapi-openmp-common"
version="2023.1.0-46305"
file="pool/main/intel-oneapi-openmp-common-2023.1.0-2023.1.0-46305_all.deb"
sha256="d4cb4adfbfc1ba289996f4b55e85fef73348ee193314552b08a3c59c2af2c8e0"
[[hpckit-2023-1-0]]
name="intel-oneapi-tbb"
version="2021.9.0-43484"
file="pool/main/intel-oneapi-tbb-2021.9.0-2021.9.0-43484_amd64.deb"
sha256="5a5b041a76e1def25b57c3aa3a3d6f60af761115770193c61185eec2c21f6e65"
[[hpckit-2023-1-0]]
name="intel-oneapi-tbb-common"
version="2021.9.0-43484"
file="pool/main/intel-oneapi-tbb-common-2021.9.0-2021.9.0-43484_all.deb"
sha256="cdad350bed77e0f695d28c0a1468c5b21b32ff9d6db960e5c11d466ea17c634a"
[[hpckit-2023-1-0]]
name="intel-oneapi-tbb-common-devel"
version="2021.9.0-43484"
file="pool/main/intel-oneapi-tbb-common-devel-2021.9.0-2021.9.0-43484_all.deb"
sha256="919783c69c8fe7d78ba592801630da2dc6031bfec9c56363bc09ff3ce762d9b8"
[[hpckit-2023-1-0]]
name="intel-oneapi-tbb-devel"
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"
file="pool/main/intel-oneapi-ccl-2021.13-2021.13.1-31_amd64.deb"
sha256="a2c0e8548336c97ba76152dc121d09599c0b87f442215882216177d09748afd7"
[[hpckit-2024]]
name="intel-oneapi-ccl-devel"
version="2021.13.1-31"
file="pool/main/intel-oneapi-ccl-devel-2021.13-2021.13.1-31_amd64.deb"
sha256="e643cf40e6b878cda5d1d5b6faa1f1591d10b7117454133d67558cb511e2a988"
[[hpckit-2024]]
name="intel-oneapi-compiler-dpcpp-cpp-common"
version="2024.2.1-1079"
file="pool/main/intel-oneapi-compiler-dpcpp-cpp-common-2024.2-2024.2.1-1079_all.deb"
sha256="9435fa27dff15a63dc8f57badffd0c8f5b4e259ea5f3b842b5e0bdc27eb629bd"
[[hpckit-2024]]
name="intel-oneapi-compiler-dpcpp-cpp-runtime"
version="2024.2.1-1079"
file="pool/main/intel-oneapi-compiler-dpcpp-cpp-runtime-2024.2-2024.2.1-1079_amd64.deb"
sha256="89e862808730ce2a6e71ffbe04742c8148e056a54f616f9b9fa791c5865f8ed8"
[[hpckit-2024]]
name="intel-oneapi-compiler-fortran"
version="2024.2.1-1079"
file="pool/main/intel-oneapi-compiler-fortran-2024.2-2024.2.1-1079_amd64.deb"
sha256="39b06723ee859f520297b2ab1895d1c5fd93bb313c107f94b7c277630be3cb94"
[[hpckit-2024]]
name="intel-oneapi-compiler-fortran-common"
version="2024.2.1-1079"
file="pool/main/intel-oneapi-compiler-fortran-common-2024.2-2024.2.1-1079_all.deb"
sha256="8a0b2ad4017336fe607600eaf958199c3c0a65a258b11cbc4d54e1f4ca9c67ca"
[[hpckit-2024]]
name="intel-oneapi-compiler-fortran-runtime"
version="2024.2.1-1079"
file="pool/main/intel-oneapi-compiler-fortran-runtime-2024.2-2024.2.1-1079_amd64.deb"
sha256="1f88e312f361d1aecf92c992f8d86127f935fd1bbe92bbe17d5ec9503538a0b1"
[[hpckit-2024]]
name="intel-oneapi-compiler-shared"
version="2024.2.1-1079"
file="pool/main/intel-oneapi-compiler-shared-2024.2-2024.2.1-1079_amd64.deb"
sha256="0fe148b6cc0d3bafe8a9cb71d2fd47473eb7a9df76f14369440c1cd2fd2b76c4"
[[hpckit-2024]]
name="intel-oneapi-compiler-shared-common"
version="2024.2.1-1079"
file="pool/main/intel-oneapi-compiler-shared-common-2024.2-2024.2.1-1079_all.deb"
sha256="dbc61ca434fa0ab12fd70e7b19d796eac2fbd60f9b3309ace233226c74169f0a"
[[hpckit-2024]]
name="intel-oneapi-compiler-shared-runtime"
version="2024.2.1-1079"
file="pool/main/intel-oneapi-compiler-shared-runtime-2024.2-2024.2.1-1079_amd64.deb"
sha256="0ede7ca5d7bd0266d072e5b948ade26b8dcb384aa4f202d0178540d6e94a67ad"
[[hpckit-2024]]
name="intel-oneapi-dal"
version="2024.6.0-416"
file="pool/main/intel-oneapi-dal-2024.6-2024.6.0-416_amd64.deb"
sha256="f8c30b452512332ab357913be00a9a96f2285a757f9e25ec1725af9479c94abe"
[[hpckit-2024]]
name="intel-oneapi-dal-common"
version="2024.6.0-416"
file="pool/main/intel-oneapi-dal-common-2024.6-2024.6.0-416_all.deb"
sha256="511f5e6c2efaec93252f5c83801af0445297353d5e31f566c59b57f6e1f87cfe"
[[hpckit-2024]]
name="intel-oneapi-dal-common-devel"
version="2024.6.0-416"
file="pool/main/intel-oneapi-dal-common-devel-2024.6-2024.6.0-416_all.deb"
sha256="572c8f27df4a6e1500040918c808edf5ad20efbb2efc26076038eae16816cb98"
[[hpckit-2024]]
name="intel-oneapi-dal-devel"
version="2024.6.0-416"
file="pool/main/intel-oneapi-dal-devel-2024.6-2024.6.0-416_amd64.deb"
sha256="aff98af4aa133589e400371aa7db91d119fb74b5d4736948ca1e63bcd7c265e5"
[[hpckit-2024]]
name="intel-oneapi-dev-utilities"
version="2024.2.1-11"
file="pool/main/intel-oneapi-dev-utilities-2024.2-2024.2.1-11_amd64.deb"
sha256="de5db5005c9458aea2b00531d5737b7b5018d76c36283aa715f44757a4608c08"
[[hpckit-2024]]
name="intel-oneapi-diagnostics-utility"
version="2024.2.1-13"
file="pool/main/intel-oneapi-diagnostics-utility-2024.2-2024.2.1-13_amd64.deb"
sha256="a876443134a971810f874e340ecfd10307766bb42f1f649e4cb13e714d13e8b9"
[[hpckit-2024]]
name="intel-oneapi-dnnl"
version="2024.2.1-74"
file="pool/main/intel-oneapi-dnnl-2024.2-2024.2.1-74_amd64.deb"
sha256="5f31be37bb55d7486a703dc305180f8055ab40ddfe1b114f68401e5568415d3b"
[[hpckit-2024]]
name="intel-oneapi-dnnl-devel"
version="2024.2.1-74"
file="pool/main/intel-oneapi-dnnl-devel-2024.2-2024.2.1-74_amd64.deb"
sha256="4f5d1ceb675713f9678d1256320f85199c6ae26ebfe0e51767511468699edbf8"
[[hpckit-2024]]
name="intel-oneapi-dpcpp-cpp"
version="2024.2.1-1079"
file="pool/main/intel-oneapi-dpcpp-cpp-2024.2-2024.2.1-1079_amd64.deb"
sha256="bcfef41a59ec2e5dc9092569a4d6de61dffed6ab4e34386a06ed427bcd4f0b67"
[[hpckit-2024]]
name="intel-oneapi-dpcpp-ct"
version="2024.2.1-62"
file="pool/main/intel-oneapi-dpcpp-ct-2024.2-2024.2.1-62_amd64.deb"
sha256="5d3d34a085ab2423d84e69955b22dc1358360ee1c4be4f2f9c4a88428fc9b244"
[[hpckit-2024]]
name="intel-oneapi-dpcpp-debugger"
version="2024.2.1-67"
file="pool/main/intel-oneapi-dpcpp-debugger-2024.2-2024.2.1-67_amd64.deb"
sha256="494e5f6f1beaa78367cde9b57a804c1b6d8d7fa1ab395805d4e5309e9b75114d"
[[hpckit-2024]]
name="intel-oneapi-ipp"
version="2021.12.1-14"
file="pool/main/intel-oneapi-ipp-2021.12-2021.12.1-14_amd64.deb"
sha256="b05ed95530e9a2a56d1c628ead3f6c6e1806b056863f87d6a20f1f619b98e833"
[[hpckit-2024]]
name="intel-oneapi-ipp-common"
version="2021.12.1-14"
file="pool/main/intel-oneapi-ipp-common-2021.12-2021.12.1-14_all.deb"
sha256="09b37bb4ed060958b31684e923e302cd43f08da119936a107548355b8974ad9e"
[[hpckit-2024]]
name="intel-oneapi-ipp-common-devel"
version="2021.12.1-14"
file="pool/main/intel-oneapi-ipp-common-devel-2021.12-2021.12.1-14_all.deb"
sha256="b49c425f10f05ca060d0e63fd2298ef13a8de79d31354857e0fee9afb5a8ffdd"
[[hpckit-2024]]
name="intel-oneapi-ipp-devel"
version="2021.12.1-14"
file="pool/main/intel-oneapi-ipp-devel-2021.12-2021.12.1-14_amd64.deb"
sha256="46193460bce2b8f17a0990e75acce9e1dd48fc995df5dc206b113a2a34cc2145"
[[hpckit-2024]]
name="intel-oneapi-ippcp"
version="2021.12.1-12"
file="pool/main/intel-oneapi-ippcp-2021.12-2021.12.1-12_amd64.deb"
sha256="8aa7ff2bc8cb35ca150657c44e150c341d23ebe2775a4fc417d1976f6d004772"
[[hpckit-2024]]
name="intel-oneapi-ippcp-common"
version="2021.12.1-12"
file="pool/main/intel-oneapi-ippcp-common-2021.12-2021.12.1-12_all.deb"
sha256="a47dcaa7d79c9f72de55e31f47e1af25073bb2677353cf97fbf0a06af8a34df9"
[[hpckit-2024]]
name="intel-oneapi-ippcp-common-devel"
version="2021.12.1-12"
file="pool/main/intel-oneapi-ippcp-common-devel-2021.12-2021.12.1-12_all.deb"
sha256="2a36e254f7b21e0bbbdedd904741c58aa9d8f92e992eed19ec112253dca30e69"
[[hpckit-2024]]
name="intel-oneapi-ippcp-devel"
version="2021.12.1-12"
file="pool/main/intel-oneapi-ippcp-devel-2021.12-2021.12.1-12_amd64.deb"
sha256="21a1ccffe1e2b632ed9c3295ecac99ba646978938d701b8f9bb5f936d8f85ac9"
[[hpckit-2024]]
name="intel-oneapi-libdpstd-devel"
version="2022.6.1-12"
file="pool/main/intel-oneapi-libdpstd-devel-2022.6-2022.6.1-12_amd64.deb"
sha256="c2dbe75d54ce0d66a85d17642496067e3bdca6c55828a3a2e3f8a7fcf017a331"
[[hpckit-2024]]
name="intel-oneapi-mkl-classic-include"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-classic-include-2024.2-2024.2.2-15_amd64.deb"
sha256="c561650b0a29f68a2a64b2b08013eacc7c4c474c78ecc9a97e377600008230e5"
[[hpckit-2024]]
name="intel-oneapi-mkl-classic-include-common"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-classic-include-common-2024.2-2024.2.2-15_all.deb"
sha256="d693457a4d5b1ac4fa9ef3b33fe840d13d585c7c53481ba1bae50574c8c35632"
[[hpckit-2024]]
name="intel-oneapi-mkl-cluster"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-cluster-2024.2-2024.2.2-15_amd64.deb"
sha256="987c2f088d1bcaf0c09f5a07f75d46d8badc0c5043e8f950c0cc21ce66f8449f"
[[hpckit-2024]]
name="intel-oneapi-mkl-cluster-devel"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-cluster-devel-2024.2-2024.2.2-15_amd64.deb"
sha256="237ea66178e0f1ca17ad84a602ae18095dfa68654bceff8f012c35add7e2f75a"
[[hpckit-2024]]
name="intel-oneapi-mkl-cluster-devel-common"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-cluster-devel-common-2024.2-2024.2.2-15_all.deb"
sha256="139579e6c551a4d40a90a32760ca81a7b0dd020a38d8d55edd1fd37a67c2425c"
[[hpckit-2024]]
name="intel-oneapi-mkl-core"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-core-2024.2-2024.2.2-15_amd64.deb"
sha256="38790ffe5e4bae6b58e987888d3f201b2da5378d724d0748ed08cfb44adc7293"
[[hpckit-2024]]
name="intel-oneapi-mkl-core-common"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-core-common-2024.2-2024.2.2-15_all.deb"
sha256="3782e65378ad8c5ab313d400ddb629475dd0f29a54deb4e7bd242c102f336d04"
[[hpckit-2024]]
name="intel-oneapi-mkl-core-devel"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-core-devel-2024.2-2024.2.2-15_amd64.deb"
sha256="c723a51b2dc413cc92e6916d607bb770cc3358e49e6f3e46593cabedaea5ebf8"
[[hpckit-2024]]
name="intel-oneapi-mkl-core-devel-common"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-core-devel-common-2024.2-2024.2.2-15_all.deb"
sha256="e57684820dbd38baf21fa38c78c32046aae73408dfcfbc2fbfcff09ef4b31a10"
[[hpckit-2024]]
name="intel-oneapi-mkl-sycl"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-sycl-2024.2-2024.2.2-15_amd64.deb"
sha256="96b9cf9ed87a298c17ddb7fa9be1f2f9bb75bcfb2d10e4a768e89d33641bcefc"
[[hpckit-2024]]
name="intel-oneapi-mkl-sycl-blas"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-sycl-blas-2024.2-2024.2.2-15_amd64.deb"
sha256="17bc5c87e632e695d34b99c4ad9a355c6151bf4da049b111326c2ab690c2203a"
[[hpckit-2024]]
name="intel-oneapi-mkl-sycl-data-fitting"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-sycl-data-fitting-2024.2-2024.2.2-15_amd64.deb"
sha256="26ed10e928b68a03e64db96b0d889f7654579bf687a2f2f4c199c3c18daacc66"
[[hpckit-2024]]
name="intel-oneapi-mkl-sycl-devel"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-sycl-devel-2024.2-2024.2.2-15_amd64.deb"
sha256="bc0052e3703da2e5531f8b2a826bcfcca968db66a9e9d3a3e59fa2fa7e54eb23"
[[hpckit-2024]]
name="intel-oneapi-mkl-sycl-devel-common"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-sycl-devel-common-2024.2-2024.2.2-15_all.deb"
sha256="0da183623695e91e79d7260770b6a7e32b935f0cdaaa5eb22e9684cd68dae0b0"
[[hpckit-2024]]
name="intel-oneapi-mkl-sycl-dft"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-sycl-dft-2024.2-2024.2.2-15_amd64.deb"
sha256="e3e6eaaf801b3df3ae99f38e700dbd858b877b7691c7e55aef9937d469a359ab"
[[hpckit-2024]]
name="intel-oneapi-mkl-sycl-include"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-sycl-include-2024.2-2024.2.2-15_amd64.deb"
sha256="7e86492fbcb1e708e034b2638b1032ea346387f60f9dd2253824784492a9561d"
[[hpckit-2024]]
name="intel-oneapi-mkl-sycl-lapack"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-sycl-lapack-2024.2-2024.2.2-15_amd64.deb"
sha256="bf1b104b52f8b22c1ae92e20e23901970e7736aabfc5ab41ba7b0cfd450aeeec"
[[hpckit-2024]]
name="intel-oneapi-mkl-sycl-rng"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-sycl-rng-2024.2-2024.2.2-15_amd64.deb"
sha256="8be435fc7b16634d8e7b12a09b80b399c594f53a8d0a12efa332fe422efaa608"
[[hpckit-2024]]
name="intel-oneapi-mkl-sycl-sparse"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-sycl-sparse-2024.2-2024.2.2-15_amd64.deb"
sha256="01fb7b7586d3d59c9c4beff3b871c406fb3a801b85712940175a003d6d3d69f8"
[[hpckit-2024]]
name="intel-oneapi-mkl-sycl-stats"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-sycl-stats-2024.2-2024.2.2-15_amd64.deb"
sha256="e741dc0dabbc0955fb1d1f0a4ad73e7326b880d859f2c1caf18cb2384761811f"
[[hpckit-2024]]
name="intel-oneapi-mkl-sycl-vm"
version="2024.2.2-15"
file="pool/main/intel-oneapi-mkl-sycl-vm-2024.2-2024.2.2-15_amd64.deb"
sha256="40f44c1e90781757d342edc242359d2567013b6d32aeff3dfca6f1e77777d995"
[[hpckit-2024]]
name="intel-oneapi-mpi"
version="2021.13.1-767"
file="pool/main/intel-oneapi-mpi-2021.13-2021.13.1-767_amd64.deb"
sha256="4a60fd1ea52b0c0cb052c0f9309c5e6e4aa8cac05e9da4b7cf3157dde02bd7bd"
[[hpckit-2024]]
name="intel-oneapi-mpi-devel"
version="2021.13.1-767"
file="pool/main/intel-oneapi-mpi-devel-2021.13-2021.13.1-767_amd64.deb"
sha256="47fb46dfaeee395547cf54714cd9d20d3e37cf5714676e28d0eb828c538b5805"
[[hpckit-2024]]
name="intel-oneapi-openmp"
version="2024.2.1-1079"
file="pool/main/intel-oneapi-openmp-2024.2-2024.2.1-1079_amd64.deb"
sha256="6b8722f3e6da876cc7044d00f7132d79f3dc83841b360cd57c907a09375846d2"
[[hpckit-2024]]
name="intel-oneapi-openmp-common"
version="2024.2.1-1079"
file="pool/main/intel-oneapi-openmp-common-2024.2-2024.2.1-1079_all.deb"
sha256="5a540a4f3b226a16ec6effddd39e3a97ef0ea83e9a6f01ca03f9bd0305f92739"
[[hpckit-2024]]
name="intel-oneapi-tbb"
version="2021.13.1-12"
file="pool/main/intel-oneapi-tbb-2021.13-2021.13.1-12_amd64.deb"
sha256="b6cc5bd80ce18f62ab38f5c54dcf75ef8e2957589eedf0913bcde029d0c7ca1a"
[[hpckit-2024]]
name="intel-oneapi-tbb-common"
version="2021.13.1-12"
file="pool/main/intel-oneapi-tbb-common-2021.13-2021.13.1-12_all.deb"
sha256="435be0d78831997ce465b19dbaa8411d8fca90ca4abc998f74200c67116420a0"
[[hpckit-2024]]
name="intel-oneapi-tbb-common-devel"
version="2021.13.1-12"
file="pool/main/intel-oneapi-tbb-common-devel-2021.13-2021.13.1-12_all.deb"
sha256="3dae6c0139b32651e46652799aa49fda8cbef59911934cb27ec7444260641bc0"
[[hpckit-2024]]
name="intel-oneapi-tbb-devel"
version="2021.13.1-12"
file="pool/main/intel-oneapi-tbb-devel-2021.13-2021.13.1-12_amd64.deb"
sha256="55961b5f4782b5ebf05d1a0f7da7fb80bcc2bf75d229c094507f2659b91931ee"
[[hpckit-2024]]
name="intel-oneapi-tcm"
version="1.1.1-11"
file="pool/main/intel-oneapi-tcm-1.1-1.1.1-11_amd64.deb"
sha256="53535a5d16d66755e7de3db9bd8e25b42d426ed9c90e4ac5bcb121bebf1b2ede"
[[hpckit-2024]]
name="intel-oneapi-tlt"
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"
file="pool/main/intel-oneapi-ccl-2021.17-2021.17.2-5_amd64.deb"
sha256="744cedaf2cd244309f6d1b0bb3236939a8f6bed7406b0da57dd4dda9f3296b67"
[[hpckit-2025]]
name="intel-oneapi-ccl-devel"
version="2021.17.2-5"
file="pool/main/intel-oneapi-ccl-devel-2021.17-2021.17.2-5_amd64.deb"
sha256="cd2d2c494a3ab986f4c4fa63effe0aed9073028ba1572ff2ec877a1ff2af2053"
[[hpckit-2025]]
name="intel-oneapi-compiler-dpcpp-cpp-common"
version="2025.3.2-832"
file="pool/main/intel-oneapi-compiler-dpcpp-cpp-common-2025.3-2025.3.2-832_all.deb"
sha256="864f9aa601dda75c25594f390f98b3637b0c5a81d2f7dea6612e10de831e7183"
[[hpckit-2025]]
name="intel-oneapi-compiler-dpcpp-cpp-runtime"
version="2025.3.2-832"
file="pool/main/intel-oneapi-compiler-dpcpp-cpp-runtime-2025.3-2025.3.2-832_amd64.deb"
sha256="65b3aa66a191c5b3df08ba35a64fcb42e751897ca3cb9093b9ee42e53feda890"
[[hpckit-2025]]
name="intel-oneapi-compiler-fortran"
version="2025.3.2-832"
file="pool/main/intel-oneapi-compiler-fortran-2025.3-2025.3.2-832_amd64.deb"
sha256="3caf41f6c545712839b624d10f194c3d2ba614397b66dbdf7ff4d1fbd2b58ee8"
[[hpckit-2025]]
name="intel-oneapi-compiler-fortran-common"
version="2025.3.2-832"
file="pool/main/intel-oneapi-compiler-fortran-common-2025.3-2025.3.2-832_all.deb"
sha256="eb85bad42db5926e658e42d1e0e1cb89f386cf87e78fe343b693afaa91cb6b06"
[[hpckit-2025]]
name="intel-oneapi-compiler-fortran-runtime"
version="2025.3.2-832"
file="pool/main/intel-oneapi-compiler-fortran-runtime-2025.3-2025.3.2-832_amd64.deb"
sha256="1acf0feba0e85fe963be8ff358ebcea850c0be4a874af98f31ef3b9a85254522"
[[hpckit-2025]]
name="intel-oneapi-compiler-shared"
version="2025.3.2-832"
file="pool/main/intel-oneapi-compiler-shared-2025.3-2025.3.2-832_amd64.deb"
sha256="85f0fd9843ba5cd8d8854e101c289c1f61e0f73465afccca938cc9ce936e7a2d"
[[hpckit-2025]]
name="intel-oneapi-compiler-shared-common"
version="2025.3.2-832"
file="pool/main/intel-oneapi-compiler-shared-common-2025.3-2025.3.2-832_all.deb"
sha256="d07cac0683a1f9a667bae175b2649b62d9a340d4871f8d22ea3948730c10d5a5"
[[hpckit-2025]]
name="intel-oneapi-compiler-shared-runtime"
version="2025.3.2-832"
file="pool/main/intel-oneapi-compiler-shared-runtime-2025.3-2025.3.2-832_amd64.deb"
sha256="1363f7350e384de53230eaad5bae6b8cfc564048b012289eb1f4f9b11d9a0dec"
[[hpckit-2025]]
name="intel-oneapi-dal"
version="2025.10.1-19"
file="pool/main/intel-oneapi-dal-2025.10-2025.10.1-19_amd64.deb"
sha256="943339a9a8438132014280f304beac30ee6ff895625fa4fbd4254124bed1f7b8"
[[hpckit-2025]]
name="intel-oneapi-dal-devel"
version="2025.10.1-19"
file="pool/main/intel-oneapi-dal-devel-2025.10-2025.10.1-19_amd64.deb"
sha256="631b47f87fea0da5e975cd61ebf006a3ae77170dc741dfd2a09df179257326eb"
[[hpckit-2025]]
name="intel-oneapi-dev-utilities"
version="2025.3.1-15"
file="pool/main/intel-oneapi-dev-utilities-2025.3-2025.3.1-15_amd64.deb"
sha256="61ab278788edbc2ad047e8f6f63f1f73f5508b4c96cc2b05e449289061a76c7d"
[[hpckit-2025]]
name="intel-oneapi-dnnl"
version="2025.3.0-409"
file="pool/main/intel-oneapi-dnnl-2025.3-2025.3.0-409_amd64.deb"
sha256="4468042a137707721be596861b4058dee5190cf3d7b3aa2c12d643228ac6360c"
[[hpckit-2025]]
name="intel-oneapi-dnnl-devel"
version="2025.3.0-409"
file="pool/main/intel-oneapi-dnnl-devel-2025.3-2025.3.0-409_amd64.deb"
sha256="256cc1f2347c882a0535be552e2048f11544e1c4fa8c024ae2dcd54f2ce81e87"
[[hpckit-2025]]
name="intel-oneapi-dpcpp-cpp"
version="2025.3.2-832"
file="pool/main/intel-oneapi-dpcpp-cpp-2025.3-2025.3.2-832_amd64.deb"
sha256="b36e18609d627a10fa4ca3b20e3bb34270a149175872936e6f7499bd8b873d13"
[[hpckit-2025]]
name="intel-oneapi-dpcpp-ct"
version="2025.3.1-18"
file="pool/main/intel-oneapi-dpcpp-ct-2025.3-2025.3.1-18_amd64.deb"
sha256="4ee8595d886639d2baef071b7d39817b1bf94db65ced729869823331ccef3e51"
[[hpckit-2025]]
name="intel-oneapi-dpcpp-debugger"
version="2025.3.1-7"
file="pool/main/intel-oneapi-dpcpp-debugger-2025.3-2025.3.1-7_amd64.deb"
sha256="e18bef111d389603228b399e280f898a72be514d4cb4ca5c9e30492640fb2db2"
[[hpckit-2025]]
name="intel-oneapi-hpc-toolkit-env"
version="2025.3.1-52"
file="pool/main/intel-oneapi-hpc-toolkit-env-2025.3-2025.3.1-52_all.deb"
sha256="3ec40bd7a9e49b5abfb0fcdd94a6015baa71b8335c9a9c9b4e2ec2a35aac5e60"
[[hpckit-2025]]
name="intel-oneapi-ipp"
version="2022.3.1-7"
file="pool/main/intel-oneapi-ipp-2022.3-2022.3.1-7_amd64.deb"
sha256="89c0d1ce9aac145a6e949678c17296c57ee233ff10f4443019c32fe5db5b7569"
[[hpckit-2025]]
name="intel-oneapi-ipp-devel"
version="2022.3.1-7"
file="pool/main/intel-oneapi-ipp-devel-2022.3-2022.3.1-7_amd64.deb"
sha256="ebdf865d359c030ce177fbbd916e6813ed7024bce37f680c33eff64c29d90708"
[[hpckit-2025]]
name="intel-oneapi-ippcp"
version="2025.3.0-274"
file="pool/main/intel-oneapi-ippcp-2025.3-2025.3.0-274_amd64.deb"
sha256="de95e2a06164443725bb0b23d6489c1b5bb65fdc34619d7eff1d01241d098c4c"
[[hpckit-2025]]
name="intel-oneapi-ippcp-devel"
version="2025.3.0-274"
file="pool/main/intel-oneapi-ippcp-devel-2025.3-2025.3.0-274_amd64.deb"
sha256="1b56080646f3e508550f4cef6f7dc05f90be96c0bc3c08485176d9619aa635b7"
[[hpckit-2025]]
name="intel-oneapi-ishmem"
version="1.5.0-222"
file="pool/main/intel-oneapi-ishmem-1.5-1.5.0-222_amd64.deb"
sha256="c8b97c0c7e6c8aacd532ed68fd273b7cecfa869c469a82ba1f2518619a6f4bda"
[[hpckit-2025]]
name="intel-oneapi-ishmem-devel"
version="1.5.0-222"
file="pool/main/intel-oneapi-ishmem-devel-1.5-1.5.0-222_amd64.deb"
sha256="7d21e663136bd2608757c4c2607a2f9589369047e89d58e6fd03801b7931ecbf"
[[hpckit-2025]]
name="intel-oneapi-libdpstd-devel"
version="2022.10.0-275"
file="pool/main/intel-oneapi-libdpstd-devel-2022.10-2022.10.0-275_amd64.deb"
sha256="b7172453b5f31fabc864d5b8793979ffd3c472b6af1dd01a434dc9ffb241474d"
[[hpckit-2025]]
name="intel-oneapi-mkl-classic-include"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-classic-include-2025.3-2025.3.1-8_amd64.deb"
sha256="4ba39c1de76e318723c35c3043f2ad6279eb13a8658955eb4c36c595cf672f9c"
[[hpckit-2025]]
name="intel-oneapi-mkl-cluster"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-cluster-2025.3-2025.3.1-8_amd64.deb"
sha256="2149ca2adb7cef318ff50ea1fd6135cf873c2c4a1f3c0e396051645d992c0e7d"
[[hpckit-2025]]
name="intel-oneapi-mkl-cluster-devel"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-cluster-devel-2025.3-2025.3.1-8_amd64.deb"
sha256="3eb204990eb328b218bbd0a178dc40e4ac3f3a4fd7578caaf00caf7f0d732e70"
[[hpckit-2025]]
name="intel-oneapi-mkl-core"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-core-2025.3-2025.3.1-8_amd64.deb"
sha256="1648440662a5146d2064456c6e7ba23b00dbe63cb4a26e3563eb43b4912ace2f"
[[hpckit-2025]]
name="intel-oneapi-mkl-core-devel"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-core-devel-2025.3-2025.3.1-8_amd64.deb"
sha256="d2efe5d549803e80c3a9b3e5e092860f0acdd2f37da0e1c12de17d2e730035e6"
[[hpckit-2025]]
name="intel-oneapi-mkl-sycl"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-sycl-2025.3-2025.3.1-8_amd64.deb"
sha256="d3db31980517d70ba5febee14e089ac75844a9420ffde2baa43dc6f3e7269df8"
[[hpckit-2025]]
name="intel-oneapi-mkl-sycl-blas"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-sycl-blas-2025.3-2025.3.1-8_amd64.deb"
sha256="deb413a909822c14a6ee8eb270d5edb3351dc1c2656175ef40a7f99e025e6aab"
[[hpckit-2025]]
name="intel-oneapi-mkl-sycl-data-fitting"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-sycl-data-fitting-2025.3-2025.3.1-8_amd64.deb"
sha256="ca9b47611b8e7b8503b087ca7de4ff6417325c10685d6d0254df1eb3a668aca8"
[[hpckit-2025]]
name="intel-oneapi-mkl-sycl-devel"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-sycl-devel-2025.3-2025.3.1-8_amd64.deb"
sha256="73c70ab19f76d2c4cb64686800b2682d01a79f3a686454ff6d0b5198ce5f4e0d"
[[hpckit-2025]]
name="intel-oneapi-mkl-sycl-dft"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-sycl-dft-2025.3-2025.3.1-8_amd64.deb"
sha256="e825872685f8b93130e32ca1b72d31cad808042f97f956b5e8e86065f94d29e8"
[[hpckit-2025]]
name="intel-oneapi-mkl-sycl-include"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-sycl-include-2025.3-2025.3.1-8_amd64.deb"
sha256="5fa96fb892c4b818fb176e556f3a93f99235affe0b47b7766717b9d6dcbd44ae"
[[hpckit-2025]]
name="intel-oneapi-mkl-sycl-lapack"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-sycl-lapack-2025.3-2025.3.1-8_amd64.deb"
sha256="5296ef4a969688e3af40ebd851162523e3b5d4f63fea1d2f48a8dfd6a675a0a5"
[[hpckit-2025]]
name="intel-oneapi-mkl-sycl-rng"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-sycl-rng-2025.3-2025.3.1-8_amd64.deb"
sha256="8559a0e7cdcd77f8f4e97c490b0d5e055605b21815e93d88383c53772f60c507"
[[hpckit-2025]]
name="intel-oneapi-mkl-sycl-sparse"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-sycl-sparse-2025.3-2025.3.1-8_amd64.deb"
sha256="1261ee1b3ce52dfcc642ba541953af144308b2242e57ab7a32550da51882afaf"
[[hpckit-2025]]
name="intel-oneapi-mkl-sycl-stats"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-sycl-stats-2025.3-2025.3.1-8_amd64.deb"
sha256="426fd7795f4ef278930e2ea8a0021b4ff3460ab1c826206e01a17458cca9a9ba"
[[hpckit-2025]]
name="intel-oneapi-mkl-sycl-vm"
version="2025.3.1-8"
file="pool/main/intel-oneapi-mkl-sycl-vm-2025.3-2025.3.1-8_amd64.deb"
sha256="47f9a6fa7fcc9bcc98de93cfea2c92cfda45f9e86ddd8129176f527e53a7f7e9"
[[hpckit-2025]]
name="intel-oneapi-mpi"
version="2021.17.2-91"
file="pool/main/intel-oneapi-mpi-2021.17-2021.17.2-91_amd64.deb"
sha256="c6a0b33e6f60471a7461ba3246e7c90ebe06d550664a0af2134bd07ffd8f6c8d"
[[hpckit-2025]]
name="intel-oneapi-mpi-devel"
version="2021.17.2-91"
file="pool/main/intel-oneapi-mpi-devel-2021.17-2021.17.2-91_amd64.deb"
sha256="519088a22fad2795fc56b216298ba4b467996107f9d359b0f56f1372b02508c0"
[[hpckit-2025]]
name="intel-oneapi-openmp"
version="2025.3.2-832"
file="pool/main/intel-oneapi-openmp-2025.3-2025.3.2-832_amd64.deb"
sha256="c2dd60eb82b8b63a1ae44e98bd983b1ba1c15e1c87cdf37901723120d6164a3f"
[[hpckit-2025]]
name="intel-oneapi-openmp-common"
version="2025.3.2-832"
file="pool/main/intel-oneapi-openmp-common-2025.3-2025.3.2-832_all.deb"
sha256="10af13bb74bbe14ed986d15114fc00352c95c09f32da77c58f50302ef3d0215a"
[[hpckit-2025]]
name="intel-oneapi-tbb"
version="2022.3.1-400"
file="pool/main/intel-oneapi-tbb-2022.3-2022.3.1-400_amd64.deb"
sha256="01ad7551130d6f30d34ed19084650ffc778d755ef4ede682345bf907bd510641"
[[hpckit-2025]]
name="intel-oneapi-tbb-devel"
version="2022.3.1-400"
file="pool/main/intel-oneapi-tbb-devel-2022.3-2022.3.1-400_amd64.deb"
sha256="eb085a1930230c9eda5e6ed32ebc167e9cad7c053f9cd5623201df08a5362947"
[[hpckit-2025]]
name="intel-oneapi-tcm"
version="1.4.1-445"
file="pool/main/intel-oneapi-tcm-1.4-1.4.1-445_amd64.deb"
sha256="8e2fd21ec71f9c9d41df2a23d23ea8aad7d2928ae0f66ed3de4b54dbd7b5ce78"
[[hpckit-2025]]
name="intel-oneapi-tlt"
version="2025.3.0-157"
file="pool/main/intel-oneapi-tlt-2025.3-2025.3.0-157_amd64.deb"
sha256="32fdc685d8dd8c54a646491dae19262e30533ba80c994cc33579e83259f7384a"
[[hpckit-2025]]
name="intel-oneapi-umf"
version="1.0.3-17"
file="pool/main/intel-oneapi-umf-1.0-1.0.3-17_amd64.deb"
sha256="0b93cf3f42df26c31713a94172b16903fabb75b03494da47b2b99d2f37ad2298"

View File

@@ -4,9 +4,8 @@
lib, lib,
symlinkJoin, symlinkJoin,
autoPatchelfHook, autoPatchelfHook,
wrapCCWith, wrapIntel,
overrideCC, overrideCC,
gcc,
hwloc, hwloc,
libelf, libelf,
libffi_3_3, libffi_3_3,
@@ -38,77 +37,25 @@ lib.makeOverridable (
removeAttrs removeAttrs
; ;
__components = removeAttrs components [ "extraPackages" ]; inherit (components) llvmMajorVersion;
__components = removeAttrs components [
"extraPackages"
"llvmMajorVersion"
];
_components = __components; _components = __components;
# _components = lib.traceSeqN 2 { # _components = lib.traceSeqN 2 {
# inherit unpatched __components; # inherit unpatched __components;
# deps = builtins.map (x: "${x.pname}-${x.version}") unpatched.deps; # deps = builtins.map (x: "${x.pname}-${x.version}") unpatched.deps;
# } __components; # } __components;
wrapIntel = meta = {
cc: homepage = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit.html";
let description = "Intel® oneAPI HPC Toolkit";
targetConfig = stdenv.targetPlatform.config; maintainers = with lib.maintainers.bsc; [ abonerib ];
in platforms = lib.platforms.linux;
(wrapCCWith { license = lib.licenses.unfree;
inherit cc; };
nixSupport = {
cc-ldflags = [
"-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}"
"-L${gcc.cc.lib}/lib"
"-L${cc}/lib"
];
cc-cflags = [
"--gcc-toolchain=${gcc.cc}"
"-isystem \"${cc.original}/lib/clang/*/include\""
"-isystem ${cc}/include"
"-isystem ${cc}/include/intel64"
"-isystem ${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}/include"
];
libcxx-cxxflags = [
# "--gcc-toolchain=${gcc.cc}"
"-isystem ${gcc.cc}/include/c++/${gcc.version}"
"-isystem ${gcc.cc}/include/c++/${gcc.version}/${targetConfig}"
];
};
extraBuildCommands = ''
# FIXME: We should find a better way to modify the PATH instead of using
# this ugly hack. See https://jungle.bsc.es/git/rarias/bscpkgs/issues/9
echo 'path_backup="${gcc.cc}/bin:$path_backup"' >>$out/nix-support/cc-wrapper-hook
# Disable hardening by default
echo "" > $out/nix-support/add-hardening.sh
wrap icx $wrapper $ccPath/icx
wrap icpx $wrapper $ccPath/icpx
wrap ifx $wrapper $ccPath/ifx
ln -s $out/bin/icpx $out/bin/c++
ln -s $out/bin/icx $out/bin/cc
ln -s $ccPath/sycl-ls $out/bin/sycl-ls
ln -s $ccPath/sycl-trace $out/bin/sycl-trace
sed -i 's/.*isCxx=0/isCxx=1/' $out/bin/icpx
# Use this to detect when a compiler subprocess is called
# from icpx (--fsycl-host-compiler)
echo 'export NIX_CC_WRAPPER_INTEL=1' >>$out/nix-support/cc-wrapper-hook
# oneMath looks for sycl libraries in bin/../lib
ln -s ${cc}/lib $out/lib
ln -s ${cc}/include $out/include
'';
}).overrideAttrs
(old: {
installPhase = old.installPhase + ''
export named_cc="icx"
export named_cxx="icpx"
export named_fc="ifx"
'';
});
in in
stdenvNoCC.mkDerivation (finalAttrs: { stdenvNoCC.mkDerivation (finalAttrs: {
@@ -152,6 +99,8 @@ lib.makeOverridable (
cp -r $src/opt/intel/oneapi/ $out cp -r $src/opt/intel/oneapi/ $out
''; '';
inherit meta;
passthru = passthru =
let let
pkgs = mapAttrs ( pkgs = mapAttrs (
@@ -169,7 +118,8 @@ lib.makeOverridable (
pname = "intel-${folder}"; pname = "intel-${folder}";
inherit version; inherit version;
paths = [ original ] ++ lib.optionals (folder == "compiler") [ etc-vendors ]; paths = [ original ] ++ lib.optionals (folder == "compiler") [ etc-vendors ];
passthru = { inherit original; }; passthru = { inherit original llvmMajorVersion; };
inherit meta;
} }
) _components; ) _components;
in in
@@ -192,7 +142,25 @@ lib.makeOverridable (
stdenv = overrideCC stdenv finalAttrs.finalPackage.cc; stdenv = overrideCC stdenv finalAttrs.finalPackage.cc;
cc = wrapIntel finalAttrs.finalPackage.pkgs.compiler; cc = wrapIntel {
cc = finalAttrs.finalPackage.pkgs.compiler;
extraBuildCommands = ''
wrap icx $wrapper $ccPath/icx
wrap icpx $wrapper $ccPath/icpx
wrap ifx $wrapper $ccPath/ifx
ln -s $out/bin/icpx $out/bin/c++
ln -s $out/bin/icx $out/bin/cc
sed -i 's/.*isCxx=0/isCxx=1/' $out/bin/icpx
'';
extraInstallCommands = ''
export named_cc="icx"
export named_cxx="icpx"
export named_fc="ifx"
'';
};
}; };
}) })

View File

@@ -0,0 +1,261 @@
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
module Main (main) where
import Control.Arrow (first, second, (&&&))
import Control.Monad.Writer
import qualified Data.Map.Lazy as M
import qualified Data.Map.Strict as MS
import qualified Data.Text as T
import qualified Data.Text.IO as TIO
import Data.Char (isAlpha)
import Data.Functor (($>))
import Data.List (find, nub, sortOn)
import Data.Map.Lazy (Map)
import Data.Maybe (catMaybes, maybeToList)
import Data.Ord (Down (Down))
import Data.Text.Read (decimal)
import System.Environment (getArgs)
import System.Exit (exitFailure)
import System.IO (stderr)
import Text.Printf (hPrintf, printf)
type Str = T.Text
type Data = Map Str [Package]
type Version = [Int]
type Err a = Either Str a
data Package = Package
{ name :: Str
, version :: Version
, filename, sha256 :: Str
, size :: Int
, depends :: [Dependency]
}
deriving (Show, Eq)
data Dependency = Dependency
{ pkgName :: Str
, pkgVersion :: Maybe (Ordering', Version)
}
deriving (Show, Eq)
data Kit = Kit
{ kitMajorVersion, kitFullVersion :: Version
, kitPackages :: [Package]
}
deriving (Show, Eq)
-- Standard Ordering cannot represent GE or LE, we have to cook our own
data Ordering' = GT' | LT' | EQ' | GE' | LE' deriving (Show, Eq)
-- PARSING
parse :: Str -> Err Data
parse =
fmap (M.map (sortOn (Down . version)) . M.fromListWith (++) . fmap (second pure))
. mapM parsePackage
. ( init
. fmap
( M.fromList
. ( fmap (second (T.strip . T.drop 1) . T.breakOn ":")
. T.lines
. T.strip
)
)
. T.splitOn "\n\n"
)
parseDependency :: Str -> Err Dependency
parseDependency t = case (T.breakOn "(" t) of
(a, "") -> Right $ Dependency (T.strip a) Nothing
(a, b) -> do
let (o, v) = T.span (`elem` ("<=>" :: String)) $ T.tail b
o' <- toOrd' o
v' <- parseVersion . T.strip $ T.dropEnd 1 v
return . Dependency (T.strip a) $ Just (o', v')
where
toOrd' :: Str -> Err Ordering'
toOrd' ">>" = Right GT'
toOrd' "<<" = Right LT'
toOrd' "=" = Right EQ'
toOrd' ">=" = Right GE'
toOrd' "<=" = Right LE'
toOrd' r = Left $ T.unwords ["could not parse dependency", quote t, "(unknown constraint type", quote r <> ")"]
dropEmpty :: [Str] -> [Str]
dropEmpty = filter (not . T.null)
tshow :: (Show a) => a -> Str
tshow = T.pack . show
quote :: Str -> Str
quote = ("\"" <>) . (<> "\"")
parseVersion :: Str -> Err Version
parseVersion = (>>= validateVersion) . mapM (unwrapDecimal . decimal) . dropEmpty . T.split (`elem` ("-._~" :: String))
where
unwrapDecimal (Left err) = Left . T.pack $ "version parsing failed with error: " <> err
unwrapDecimal (Right (a, "")) = Right a
unwrapDecimal (Right (a, b)) =
Left $ T.unwords ["version parsing failed, parsed", quote $ tshow a, "(leftover:", quote b <> ")"]
validateVersion [] = Left "version is empty"
validateVersion v = Right v
parsePackage :: Map Str Str -> Err (Str, Package)
parsePackage d =
(,)
<$> package
<*> ( Package
<$> package
<*> (d !? "Version" >>= parseVersion)
<*> (d !? "Filename")
<*> (d !? "SHA256")
<*> (read . T.unpack <$> (d !? "Installed-Size"))
<*> (mapM parseDependency . dropEmpty . (>>= T.splitOn ",") . maybeToList $ d M.!? "Depends")
)
where
package = d !? "Package"
(!?) :: (Show a) => Map Str a -> Str -> Err a
m !? k = maybeToEither ("missing key " <> quote k <> " in:\n" <> tshow m) $ m M.!? k
maybeToEither :: a -> Maybe b -> Either a b
maybeToEither _ (Just b) = Right b
maybeToEither a Nothing = Left a
-- DEPENDENCY SOLVER
-- Compare versions in debian control file syntax
-- See: https://www.debian.org/doc/debian-policy/ch-relationships.html#syntax-of-relationship-fields
--
-- NOTE: this is not a proper version comparison
--
-- A proper version solver, should aggregate dependencies with the same name
-- and compute the constraint (e.g. a (>= 2) a (<< 5) -> 2 <= a << 5)
--
-- But in the intel repo, there are no such "duplicated" dependencies to specify
-- upper limits, which leads to issues when intel-hpckit-2021 depends on things
-- like intel-basekit >= 2021.1.0-2403 and we end up installing the newest
-- basekit instead of the one from 2021.1
--
-- To mitigate this, >= is set to take the latest version with matching major
-- and minor (only revision and patch are allowed to change)
compareVersions :: Maybe (Ordering', Version) -> Version -> Bool
compareVersions Nothing _ = True
compareVersions (Just (kind, want)) got
| null want = True
| kind == GE' = and (take 2 $ zipWith (==) got want) && result
| kind == EQ' = and $ zipWith (==) want got -- Only compare up to the smallest list
| otherwise = result
where
result = matches (compare got want) kind
matches :: Ordering -> Ordering' -> Bool
matches EQ b = b `elem` [EQ', GE', LE']
matches LT b = b `elem` [LT', LE']
matches GT b = b `elem` [GT', GE']
findMatching :: Data -> Dependency -> Maybe Package
findMatching pkgList (Dependency n v) = pkgList M.!? n >>= find (compareVersions v . version)
findMatchingTraced :: Data -> Dependency -> Writer [Dependency] (Maybe Package)
findMatchingTraced l d = case findMatching l d of
Nothing -> tell [d] $> Nothing
Just a -> pure $ Just a
solveDeps :: Data -> Package -> ([Package], [Dependency])
solveDeps d p = first removeDupes $ runWriter $ go [] [p]
where
go :: [Package] -> [Package] -> Writer [Dependency] [Package]
go done [] = pure done
go done todo = do
let done' = filter (not . isBlacklisted) . nub $ done ++ (filter (not . isMetaPackage) todo)
todo' <- catMaybes <$> mapM (findMatchingTraced d) (todo >>= depends)
go done' todo'
isMetaPackage = ((== 0) . size) -- Meta Packages are only used to pull dependencies
removeDupes :: [Package] -> [Package]
removeDupes = fmap snd . MS.toList . MS.fromListWith getLatest . fmap (cleanName . name &&& id)
getLatest a b
| version a > version b = a
| otherwise = b
-- Remove trailing version information from package name
cleanName :: Str -> Str
cleanName = T.dropWhileEnd (not . isAlpha)
isBlacklisted :: Package -> Bool
isBlacklisted = (`elem` blacklist) . cleanName . name
where
blacklist =
[ "intel-basekit-env"
, "intel-basekit-getting-started"
, "intel-hpckit-env"
, "intel-hpckit-getting-started"
, "intel-oneapi-advisor"
, "intel-oneapi-common-licensing"
, "intel-oneapi-common-oneapi-vars"
, "intel-oneapi-common-vars"
, "intel-oneapi-compiler-cpp-eclipse-cfg"
, "intel-oneapi-compiler-dpcpp-eclipse-cfg"
, "intel-oneapi-condaindex"
, "intel-oneapi-dev-utilities-eclipse-cfg"
, "intel-oneapi-dpcpp-ct-eclipse-cfg"
, "intel-oneapi-eclipse-ide"
, "intel-oneapi-hpc-toolkit-getting-started"
, "intel-oneapi-icc-eclipse-plugin-cpp"
, "intel-oneapi-inspector"
, "intel-oneapi-vtune"
, "intel-oneapi-vtune-eclipse-plugin-vtune"
]
application :: [String] -> Str -> Err ([Dependency], [Kit])
application args contents = do
v <- mapM (parseVersion . T.pack) $ case args of
[] -> ["2025"]
_ -> args
d <- parse contents
first concat . unzip <$> mapM (processKit d) v
processKit :: Data -> Version -> Err ([Dependency], Kit)
processKit d v = do
kit <- findHpckit "intel-hpckit"
let (deps, missing) = solveDeps d kit
return $ (missing, Kit v (version kit) deps)
where
findHpckit pName =
maybeToEither (T.unwords ["package not found:", pName, "=", showVer v]) $
findMatching d (Dependency pName (Just (EQ', v)))
-- OUTPUT
showVer, showVerDash :: [Int] -> Str
showVer = T.dropEnd 1 . T.concat . zipWith (flip (<>)) ([".", ".", "-"] ++ repeat ".") . fmap tshow
showVerDash = T.intercalate "-" . fmap tshow
-- Reads Debian Package List from apt repo from stdin and outputs TOML with
-- hpckit versions passed as arguments
main :: IO ()
main =
application <$> getArgs <*> TIO.getContents >>= \case
Left err -> hPrintf stderr "[ERROR]: %s\n" err *> exitFailure
Right (missing, kits) -> do
mapM_ (hPrintf stderr "[WARN] missing dependency: %s\n" . show) $ nub missing
mapM_ (TIO.putStrLn) $ kits >>= formatKit
where
formatKit (Kit majorVer fullVer pkgs) =
T.pack
<$> (printf "[meta.hpckit-%s]\nversion=%s\n" (showVerDash majorVer) (quote $ showVer fullVer))
: ((formatPackage) <$> pkgs)
where
formatPackage (Package n v f h _ _) =
printf "[[hpckit-%s]]\nname=%s\nversion=%s\nfile=%s\nsha256=%s\n" (showVerDash majorVer) (quote $ cleanName n) (quote $ showVer v) (quote f) (quote h)

View File

@@ -7,5 +7,4 @@ trap 'rm -f "$out_64" "$out_all"' EXIT INT HUP
curl https://apt.repos.intel.com/oneapi/dists/all/main/binary-amd64/Packages -o "$out_64" curl https://apt.repos.intel.com/oneapi/dists/all/main/binary-amd64/Packages -o "$out_64"
curl https://apt.repos.intel.com/oneapi/dists/all/main/binary-all/Packages -o "$out_all" curl https://apt.repos.intel.com/oneapi/dists/all/main/binary-all/Packages -o "$out_all"
# NOTE: we use `jq -r tostring` to minify the json (3.2Mb -> 2.3Mb) cat "$out_64" "$out_all" | runghc ./update.hs 2023.1.0 2024 2025 >packages.toml
cat "$out_64" "$out_all" | ./toJson.awk | ./process.jq | jq -r tostring >packages.json

View File

@@ -2,7 +2,8 @@
stdenv, stdenv,
lib, lib,
ninja, ninja,
addDriverRunpath, autoAddDriverRunpath,
wrapCC,
cmake, cmake,
emhash, emhash,
fetchFromGitHub, fetchFromGitHub,
@@ -18,11 +19,15 @@
symlinkJoin, symlinkJoin,
zlib, zlib,
cudaPackages, config,
enableCuda ? true,
cudaPackages ? null,
enableCuda ? config.cudaSupport,
}: }:
let let
llvmMajorVersion = "21";
version = "6.2.1"; version = "6.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "intel"; owner = "intel";
@@ -101,9 +106,9 @@ stdenv.mkDerivation {
pkg-config pkg-config
python3 python3
spirv-tools spirv-tools
addDriverRunpath
] ]
++ lib.optionals enableCuda [ ++ lib.optionals enableCuda [
autoAddDriverRunpath
cudaPackages.cuda_nvcc cudaPackages.cuda_nvcc
]; ];
@@ -140,6 +145,7 @@ stdenv.mkDerivation {
"xptifw" "xptifw"
"compiler-rt" "compiler-rt"
"sycl-jit" "sycl-jit"
"libdevice"
] ]
++ lib.optionals enableCuda [ ++ lib.optionals enableCuda [
"libclc" "libclc"
@@ -187,6 +193,46 @@ stdenv.mkDerivation {
(lib.cmakeBool "LIBCLC_NATIVECPU_HOST_TARGET" false) (lib.cmakeBool "LIBCLC_NATIVECPU_HOST_TARGET" false)
]; ];
hardeningDisable = [ "zerocallusedregs" ];
postPatch =
let
# See the postPatch phase for details on why this is used
ccWrapperStub = wrapCC (
stdenv.mkDerivation {
name = "ccWrapperStub";
dontUnpack = true;
installPhase = ''
mkdir -p $out/bin
cat > $out/bin/clang-${llvmMajorVersion} <<'EOF'
#!/bin/sh
exec "$NIX_BUILD_TOP/source/build/bin/clang-${llvmMajorVersion}" "$@"
EOF
chmod +x $out/bin/clang-${llvmMajorVersion}
cp $out/bin/clang-${llvmMajorVersion} $out/bin/clang
cp $out/bin/clang-${llvmMajorVersion} $out/bin/clang++
'';
passthru.isClang = true;
}
);
in
''
# Parts of libdevice are built using the freshly-built compiler.
# As it tries to link to system libraries, we need to wrap it with the
# usual nix cc-wrapper.
# Since the compiler to be wrapped is not available at this point,
# we use a stub that points to where it will be later on
# in `$NIX_BUILD_TOP/source/build/bin/clang-${llvmMajorVersion}`
substituteInPlace libdevice/cmake/modules/SYCLLibdevice.cmake \
--replace-fail "\''${clang_exe}" "${ccWrapperStub}/bin/clang++"
'';
passthru = {
inherit llvmMajorVersion;
inherit enableCuda cudaPackages;
};
meta = { meta = {
homepage = "https://github.com/intel/llvm"; homepage = "https://github.com/intel/llvm";
description = "Intel staging area for llvm.org contribution"; description = "Intel staging area for llvm.org contribution";

File diff suppressed because one or more lines are too long

View File

@@ -1,297 +0,0 @@
{
lib,
stdenv,
callPackage,
dpkg,
fetchurl,
sqlite,
elfutils,
}:
let
inherit (builtins)
attrNames
attrValues
concatMap
elem
filter
fromJSON
getAttr
groupBy
head
isNull
listToAttrs
map
mapAttrs
readFile
replaceStrings
splitVersion
;
inherit (lib)
converge
findFirst
groupBy'
hasPrefix
optional
pipe
take
toInt
toList
versionAtLeast
versionOlder
;
aptData = fromJSON (readFile ./packages.json);
# Compare versions in debian control file syntax
# See: https://www.debian.org/doc/debian-policy/ch-relationships.html#syntax-of-relationship-fields
#
# NOTE: this is not a proper version comparison
#
# A proper version solver, should aggregate dependencies with the same name
# and compute the constraint (e.g. a (>= 2) a (<< 5) -> 2 <= a << 5)
#
# But in the intel repo, there are no such "duplicated" dependencies to specify
# upper limits, which leads to issues when intel-hpckit-2021 depends on things
# like intel-basekit >= 2021.1.0-2403 and we end up installing the newest
# basekit instead of the one from 2021.
#
# To mitigate this, >= is set to take the latest version with matching major
# and minor (only revision and patch are allowed to change)
compareVersions =
got: kind: want:
let
g0 = take 2 (splitVersion got);
w0 = take 2 (splitVersion want);
in
if isNull want then
true
else if kind == "=" then
got == want
else if kind == "<<" then
versionOlder got want
else if kind == "<=" then
versionAtLeast want got
else if kind == ">>" then
versionOlder want got
else if kind == ">=" then
(g0 == w0) && versionAtLeast got want # always match major version
else
throw "unknown operation: ${kind}";
findMatching =
{
pname,
kind,
version,
}:
findFirst (x: pname == x.pname && compareVersions x.version kind version) null aptData;
isIntel = pkg: (hasPrefix "intel-" pkg.pname);
expandDeps =
pkg: (map findMatching (filter isIntel pkg.dependencies)) ++ (optional (pkg.size != 0) pkg);
# get the oldest by major version. If they have the same major version, take
# the newest. This prevents most issues with resolutions
# versionOlder b a -> true if b is older than a (b `older` a)
getNewerInMajor =
a: b:
let
va = a.version;
vb = b.version;
va0 = head (splitVersion va);
vb0 = head (splitVersion vb);
in
if isNull a then
b
else if va0 != vb0 then
if va0 > vb0 then b else a
else if versionOlder vb va then
a
else
b;
removeDups = l: attrValues (groupBy' getNewerInMajor null (getAttr "provides") l);
_resolveDeps = converge (l: removeDups (concatMap expandDeps l));
resolveDeps =
pkg:
let
deps = _resolveDeps (toList pkg);
namedDeps = (map (x: "${x.pname}-${x.version}") deps);
in
builtins.traceVerbose (builtins.deepSeq namedDeps namedDeps) deps;
blacklist = [
"intel-basekit-env"
"intel-basekit-getting-started"
"intel-hpckit-env"
"intel-hpckit-getting-started"
"intel-oneapi-advisor"
"intel-oneapi-common-licensing"
"intel-oneapi-common-oneapi-vars"
"intel-oneapi-common-vars"
"intel-oneapi-compiler-cpp-eclipse-cfg"
"intel-oneapi-compiler-dpcpp-eclipse-cfg"
"intel-oneapi-condaindex"
"intel-oneapi-dev-utilities-eclipse-cfg"
"intel-oneapi-dpcpp-ct-eclipse-cfg"
"intel-oneapi-eclipse-ide"
"intel-oneapi-hpc-toolkit-getting-started"
"intel-oneapi-icc-eclipse-plugin-cpp"
"intel-oneapi-vtune"
"intel-oneapi-vtune-eclipse-plugin-vtune"
];
isInBlacklist = pkg: elem pkg.provides blacklist;
removeBlacklist = filter (e: !(isInBlacklist e));
dpkgExtractAll =
pname: version:
{ srcs, deps }:
stdenv.mkDerivation {
inherit pname version srcs;
nativeBuildInputs = [ dpkg ];
phases = [ "installPhase" ];
passthru = { inherit deps; };
installPhase = ''
mkdir -p $out
for src in $srcs; do
echo "Unpacking $src"
dpkg -x $src $out
done
'';
};
apthost = "https://apt.repos.intel.com/oneapi/";
fetchDeb =
p:
fetchurl {
url = apthost + p.filename;
inherit (p) sha256;
};
buildIntel =
pkg:
pipe pkg [
resolveDeps
removeBlacklist
(l: {
srcs = map fetchDeb l;
deps = l;
})
(dpkgExtractAll "${pkg.provides}-extracted" pkg.version)
];
findHpcKit =
year:
findMatching {
pname = "intel-hpckit";
kind = "<<";
version = toString (year + 1);
};
years = map toInt (attrNames components);
patchIntel = callPackage ./patch_intel.nix { };
# Version information for each hpckit. This is used to normalize the paths
# so that files are in $out/{bin,lib,include...} instead of all over the place
# in $out/opt/intel/oneapi/*/*/{...}.
#
# The most important is the compiler component, which is used to build the
# stdenv for the hpckit.
#
# NOTE: this have to be manually specified, so we can avoid IFD. To add a
# new version, add a new field with an empty attrset, (e.g. "2026" = {}; ),
# build hpckit_2026.unpatched and use the values from
# result/opt/intel/oneapi/* to populate the attrset.
#
# WARN: if there are more than one version in the folders of the unpatched
# components, our dependency resolution hacks have probably failed and the
# package set may be broken.
components = {
"2025" = {
ishmem = "1.4";
pti = "0.13";
tcm = "1.4";
umf = "0.11";
ccl = "2021.16";
compiler = "2025.2";
dal = "2025.8";
debugger = "2025.2";
dev-utilities = "2025.2";
dnnl = "2025.2";
dpcpp-ct = "2025.2";
dpl = "2022.9";
ipp = "2022.2";
ippcp = "2025.2";
mkl = "2025.2";
mpi = "2021.16";
tbb = "2022.2";
};
"2024" = {
tcm = "1.1";
ccl = "2021.13";
compiler = "2024.2";
dal = "2024.6";
debugger = "2024.2";
dev-utilities = "2024.2";
diagnostics = "2024.2";
dnnl = "2024.2";
dpcpp-ct = "2024.2";
dpl = "2022.6";
ipp = "2021.12";
ippcp = "2021.12";
mkl = "2024.2";
mpi = "2021.13";
tbb = "2021.13";
extraPackages = [
sqlite
elfutils
];
};
};
replaceDots = replaceStrings [ "." ] [ "_" ];
in
lib.recurseIntoAttrs (
listToAttrs (
map (
year:
let
year_str = toString year;
in
{
name = "hpckit_${year_str}";
value = patchIntel {
unpatched = buildIntel (findHpcKit year);
components = components.${year_str};
};
}
) years
)
)
// {
apt = pipe aptData [
(groupBy (p: replaceDots p.provides))
(mapAttrs (
_: l:
listToAttrs (
map (pkg: {
name = replaceDots ("v" + pkg.version);
value = pkg;
}) l
)
))
];
inherit resolveDeps patchIntel buildIntel;
}

View File

@@ -1,29 +0,0 @@
#!/usr/bin/env -S jq -f
def extract_fields: {
pname : .Package,
version : .Version,
provides : .Package | sub("[0-9.-]*$"; ""),
filename : .Filename,
size : ."Installed-Size" | tonumber,
sha256 : .SHA256,
dependencies : .Depends,
} ;
# parses dependencies into a list of [{.pname, .kind, .version}]
# some dependencies do not have a version specified, in which case, kind = version = null
#
# example dependencies:
# intel-oneapi-common-vars (>= 2023.0.0-25325), intel-oneapi-common-licensing-2023.0.0
def split_dependencies : map(try(.dependencies |= split(",\\s?"; "")) // .dependencies |= []) ;
def match_version : capture("(?<pname>[a-zA-Z0-9_\\-.]*) *(\\((?<kind>[<>=]*) *(?<version>.*)\\))?"; "") ;
def parse_dependencies : map_values(.dependencies.[] |= match_version) ;
def sort_version_decreasing : sort_by(.version | split("[-.]"; "") | map(tonumber)) | reverse ;
map(extract_fields) | split_dependencies | parse_dependencies | sort_version_decreasing
# [.[] | select(.pname == "intel-hpckit") | .version]

View File

@@ -1,29 +0,0 @@
#!/usr/bin/env -S awk -f
BEGIN {
FS=": "
prev_empty=1
t=" "
print "[ {"
}
!NF { # empty line, update separator so next non empty line closes the dict
prev_empty=1
t="},\n{ "
next # skip line (we won't match anything else)
}
{
printf t "\"%s\" : \"%s\"\n", $1, $2
if (prev_empty) {
# we were the first after a group of empty lines, following ones have to
# have a comma
prev_empty=0
t=", "
}
}
END { print "} ]" }

View File

@@ -3,6 +3,7 @@
, lib , lib
, fetchFromGitHub , fetchFromGitHub
, cmake , cmake
, ninja
, bash , bash
, python3 , python3
, perl , perl
@@ -63,6 +64,7 @@ in stdenv.mkDerivation {
nativeBuildInputs = [ nativeBuildInputs = [
bash bash
cmake cmake
ninja
elfutils elfutils
llvmPackages_latest.lld llvmPackages_latest.lld
pkg-config pkg-config

View File

@@ -5,6 +5,7 @@ jemalloc.overrideAttrs (old: {
"--with-jemalloc-prefix=nanos6_je_" "--with-jemalloc-prefix=nanos6_je_"
"--enable-stats" "--enable-stats"
]; ];
enableParallelBuilding = true;
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
meta = old.meta // { meta = old.meta // {
description = old.meta.description + " (for Nanos6)"; description = old.meta.description + " (for Nanos6)";

View File

@@ -0,0 +1,650 @@
with builtins;
{
nix,
unzip,
zip,
unixtools,
stdenv,
buildPackages,
upx,
bootstrapPrograms ? [
"gitMinimal"
"netcat-openbsd"
"openssh"
"bashInteractive"
],
cacert ? pkgs.cacert,
compression ? "zstd -19 -T0",
lib ? pkgs.lib,
pkgs ? import <nixpkgs> {},
# hardcode executable to run. Useful when creating a bundle.
bundledPackage ? null,
nixStatic,
busyboxStatic ? pkgs.pkgsStatic.busybox,
bwrapStatic ? pkgs.pkgsStatic.bubblewrap,
zstdStatic ? pkgs.pkgsStatic.zstd,
perlBuildBuild ? pkgs.pkgsBuildBuild.perl,
}@inp:
with lib;
let
perl = perlBuildBuild;
pname =
if bundledPackage == null
then "nix-portable"
else lib.getName bundledPackage;
bundledExe = lib.getExe bundledPackage;
nixpkgsSrc = pkgs.path;
maketar = targets:
let
closureInfo = buildPackages.closureInfo { rootPaths = targets; };
in
stdenv.mkDerivation {
name = "nix-portable-store-tarball";
nativeBuildInputs = [ perl zstd ];
exportReferencesGraph = map (x: [("closure-" + baseNameOf x) x]) targets;
buildCommand = ''
storePaths=$(cat ${closureInfo}/store-paths)
mkdir $out
echo $storePaths > $out/index
cp -r ${closureInfo} $out/closureInfo
tar -cf - \
--owner=0 --group=0 --mode=u+rw,uga+r \
--hard-dereference \
$storePaths | ${compression} > $out/tar
'';
};
packStaticBin = binPath: let
binName = (last (splitString "/" binPath)); in
pkgs.runCommand
binName
{ nativeBuildInputs = [ upx ]; }
''
mkdir -p $out/bin
theBinPath=${binPath}
if [[ -L "$theBinPath" ]]; then
theBinPath=$(readlink -f "$theBinPath")
fi
upx -9 -o $out/bin/${binName} $theBinPath
'';
installBin = pkg: bin: ''
unzip -qqoj "\$self" ${ lib.removePrefix "/" "${pkg}/bin/${bin}"} -d \$dir/bin
chmod +wx \$dir/bin/${bin};
'';
installDynamic = pkgname: let
out = pkgs.${pkgname}.out;
in ''
if [ ! -e \$store${lib.removePrefix "/nix/store" pkgs.${pkgname}.out} ] ; then
debug "Installing ${pkgname}"
\$run \$store${lib.removePrefix "/nix/store" nix}/bin/nix build --impure --no-link --expr "
(import ${nixpkgsSrc} {}).${pkgname}.out
"
else
debug "${pkgname} already installed"
fi
export PATH="${out}/bin:\$PATH"
'';
caBundleZstd = pkgs.runCommand "cacerts" {} "cat ${cacert}/etc/ssl/certs/ca-bundle.crt | ${zstd}/bin/zstd -19 > $out";
bwrap = packStaticBin "${bwrapStatic}/bin/bwrap";
nixStatic = packStaticBin "${inp.nixStatic}/bin/nix";
zstd = packStaticBin "${zstdStatic}/bin/zstd";
# the default nix store contents to extract when first used
storeTar = maketar ([ cacert nix nixpkgsSrc ] ++ lib.optional (bundledPackage != null) bundledPackage);
# The runtime script which unpacks the necessary files to $HOME/.nix-portable
# and then executes nix via bwrap
# Some shell expressions will be evaluated at build time and some at run time.
# Variables/expressions escaped via `\$` will be evaluated at run time
runtimeScript = ''
#!/usr/bin/env bash
set -eo pipefail
start=\$(date +%s%N) # start time in nanoseconds
# dump environment on exit if debug is enabled
if [ -n "\$NP_DEBUG" ] && [ "\$NP_DEBUG" -ge 1 ]; then
trap "declare -p > \''${TMPDIR:-/tmp}/np_env" EXIT
fi
set -e
if [ -n "\$NP_DEBUG" ] && [ "\$NP_DEBUG" -ge 2 ]; then
set -x
fi
# &3 is our error out which we either forward to &2 or to /dev/null
# depending on the setting
if [ -n "\$NP_DEBUG" ] && [ "\$NP_DEBUG" -ge 1 ]; then
debug(){
echo \$@ || true
}
exec 3>&2
else
debug(){
true
}
exec 3>/dev/null
fi
# to reference this script's file
self="\$(realpath \''${BASH_SOURCE[0]})"
# fingerprint will be inserted by builder
fingerprint="_FINGERPRINT_PLACEHOLDER_"
# user specified location for program files and nix store
[ -z "\$NP_LOCATION" ] && NP_LOCATION="\$HOME"
NP_LOCATION="\$(readlink -f "\$NP_LOCATION")"
dir="\$NP_LOCATION/.nix-portable"
# Create NP_LOCATION and remove sgid bit
mkdir -p \$dir
if [ ! -z "\$BSC_MACHINE" ]; then
# Attempt to avoid issues with sgid folders
chmod g-s \$dir
chgrp bsc \$dir
fi
store="\$dir/nix/store"
# create /nix/var/nix to prevent nix from falling back to chroot store.
mkdir -p \$dir/{bin,nix/var/nix,nix/store}
# create minimal drv file for nix to spawn a nix shell
echo 'builtins.derivation {name="foo"; builder="/bin/sh"; args = ["-c" "echo hello \> \\\$out"]; system=builtins.currentSystem;}' > "\$dir/mini-drv.nix"
# the fingerprint being present inside a file indicates that
# this version of nix-portable has already been initialized
if test -e \$dir/conf/fingerprint && [ "\$(cat \$dir/conf/fingerprint)" == "\$fingerprint" ]; then
newNPVersion=false
else
newNPVersion=true
fi
# Nix portable ships its own nix.conf
export NIX_CONF_DIR=\$dir/conf/
NP_CONF_SANDBOX=\''${NP_CONF_SANDBOX:-false}
NP_CONF_STORE=\''${NP_CONF_STORE:-auto}
recreate_nix_conf(){
mkdir -p "\$NIX_CONF_DIR"
rm -f "\$NIX_CONF_DIR/nix.conf"
# static config
echo "build-users-group = " >> \$dir/conf/nix.conf
echo "experimental-features = nix-command flakes" >> \$dir/conf/nix.conf
echo "ignored-acls = security.selinux system.nfs4_acl" >> \$dir/conf/nix.conf
echo "sandbox-paths = /bin/sh=\$dir/busybox/bin/busybox" >> \$dir/conf/nix.conf
echo "extra-substituters = https://jungle.bsc.es/cache">> \$dir/conf/nix.conf
echo "extra-trusted-public-keys = jungle.bsc.es:pEc7MlAT0HEwLQYPtpkPLwRsGf80ZI26aj29zMw/HH0=" >> \$dir/conf/nix.conf
echo "extra-system-features = sys-devices" >> \$dir/conf/nix.conf
echo "extra-sandbox-paths = /sys/devices/system/cpu=/sys/devices/system/cpu /sys/devices/system/node=/sys/devices/system/node" >> \$dir/conf/nix.conf
echo "extra-trusted-users = @bsc" >> \$dir/conf/nix.conf
# configurable config
echo "sandbox = \$NP_CONF_SANDBOX" >> \$dir/conf/nix.conf
echo "store = \$NP_CONF_STORE" >> \$dir/conf/nix.conf
}
### install files
PATH_OLD="\$PATH"
# as soon as busybox is unpacked, restrict PATH to busybox to ensure reproducibility of this script
# only unpack binaries if necessary
if [ "\$newNPVersion" == "false" ]; then
debug "binaries already installed"
# our busybox does not run on termux, therefore we suffix the PATH only on termux
export PATH="\''${TERMUX_VERSION:+\$PATH:}\$dir/busybox/bin"
else
debug "installing files"
mkdir -p \$dir/emptyroot
# install busybox
mkdir -p \$dir/busybox/bin
(base64 -d> "\$dir/busybox/bin/busybox" && chmod +x "\$dir/busybox/bin/busybox") << END
$(cat ${busyboxStatic}/bin/busybox | base64)
END
busyBins="${toString (attrNames (filterAttrs (d: type: type == "symlink") (readDir "${busyboxStatic}/bin")))}"
for bin in \$busyBins; do
[ ! -e "\$dir/busybox/bin/\$bin" ] && ln -s busybox "\$dir/busybox/bin/\$bin"
done
# our busybox does not run on termux, therefore we suffix the PATH only on termux
export PATH="\''${TERMUX_VERSION:+\$PATH:}\$dir/busybox/bin"
# install other binaries
${installBin zstd "zstd"}
${installBin bwrap "bwrap"}
${installBin nixStatic "nix"}
# install ssl cert bundle
unzip -poj "\$self" ${ lib.removePrefix "/" "${caBundleZstd}"} | \$dir/bin/zstd -d > \$dir/ca-bundle.crt
recreate_nix_conf
fi
# Override $SHELL with nix bashInteractive
export SHELL="${pkgs.bashInteractive.out}/bin/bash"
export PS1="\n\[\033[1;32m\][\[\e]0;\u@\h: \w\a\]\u@\h:\w]\$\[\033[0m\] "
# unset bash function aliases
unset -f which ml module
### setup SSL
# find ssl certs or use from nixpkgs
debug "figuring out ssl certs"
if [ -z "\$SSL_CERT_FILE" ]; then
debug "SSL_CERT_FILE not defined. trying to find certs automatically"
if [ -e /etc/ssl/certs/ca-bundle.crt ]; then
export SSL_CERT_FILE=\$(realpath /etc/ssl/certs/ca-bundle.crt)
debug "found /etc/ssl/certs/ca-bundle.crt with real path \$SSL_CERT_FILE"
elif [ -e /etc/ssl/certs/ca-certificates.crt ]; then
export SSL_CERT_FILE=\$(realpath /etc/ssl/certs/ca-certificates.crt)
debug "found /etc/ssl/certs/ca-certificates.crt with real path \$SSL_CERT_FILE"
elif [ ! -e /etc/ssl/certs ]; then
debug "/etc/ssl/certs does not exist. Will use certs from nixpkgs."
export SSL_CERT_FILE=\$dir/ca-bundle.crt
else
debug "certs seem to reside in /etc/ssl/certs. No need to set up anything"
fi
fi
if [ -n "\$SSL_CERT_FILE" ]; then
sslBind="\$(realpath \$SSL_CERT_FILE) \$dir/ca-bundle.crt"
export SSL_CERT_FILE="\$dir/ca-bundle.crt"
else
sslBind="/etc/ssl /etc/ssl"
fi
if [ -n "\$NP_GIT" ]; then
echo "WARN: NP_GIT is not supported, using nix version instead"
fi
storePathOfFile(){
file=\$(realpath \$1)
sPath="\$(echo \$file | awk -F "/" 'BEGIN{OFS="/";}{print \$2,\$3,\$4}')"
echo "/\$sPath"
}
collectBinds(){
pathsTopLevel="/boot /run /sys \$PWD /gpfs /tmp /scratch"
toBind=""
for p in \$pathsTopLevel; do
if [ -e "\$p" ]; then
real=\$(realpath \$p)
if [ -e "\$real" ]; then
if [[ "\$real" == /nix/store/* ]]; then
storePath=\$(storePathOfFile \$real)
toBind="\$toBind \$storePath \$storePath"
else
toBind="\$toBind \$real \$p"
fi
fi
fi
done
# TODO: add /var/run/dbus/system_bus_socket
paths="/etc/host.conf /etc/hosts /etc/hosts.equiv /etc/mtab /etc/netgroup /etc/networks /etc/passwd /etc/group /etc/nsswitch.conf /etc/resolv.conf /etc/localtime \$HOME"
for p in \$paths; do
if [ -e "\$p" ]; then
real=\$(realpath \$p)
if [ -e "\$real" ]; then
if [[ "\$real" == /nix/store/* ]]; then
storePath=\$(storePathOfFile \$real)
toBind="\$toBind \$storePath \$storePath"
else
toBind="\$toBind \$real \$real"
fi
fi
fi
done
# provide /bin/sh via the shipped busybox
toBind="\$toBind \$dir/busybox/bin/busybox /bin/sh"
toBind="\$toBind \$dir/busybox/bin/busybox /usr/bin/env"
# on termux, make sure termux packages still work inside the nix-portable environment
if [ -n "\$TERMUX_VERSION" ]; then
# binds required so termux native packages still run inside the nix-portable sandbox
# TODO: this doesn't quite work yet. debug and fix
toBind="\$toBind /system/lib64/libc.so /system/lib64/libc.so"
toBind="\$toBind /system/lib64/ld-android.so /system/lib64/ld-android.so"
toBind="\$toBind /system/lib64/libdl.so /system/lib64/libdl.so"
toBind="\$toBind /system/bin /system/bin"
toBind="\$toBind /system/lib64 /system/lib64"
toBind="\$toBind /apex/com.android.runtime/bin /apex/com.android.runtime/bin"
toBind="\$toBind /linkerconfig/ld.config.txt /linkerconfig/ld.config.txt"
toBind="\$toBind \$dir/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt"
toBind="\$toBind \$(realpath \$HOME/../usr/etc/resolv.conf) /etc/resolv.conf"
fi
}
makeBindArgs(){
arg=\$1; shift
sep=\$1; shift
binds=""
while :; do
if [ -n "\$1" ]; then
from="\$1"; shift
to="\$1"; shift || { echo "no bind destination provided for \$from!"; exit 3; }
binds="\$binds \$arg \$from\$sep\$to";
else
break
fi
done
}
### select container runtime
debug "figuring out which runtime to use"
[ -z "\$NP_BWRAP" ] && NP_BWRAP=\$dir/bin/bwrap
debug "bwrap executable: \$NP_BWRAP"
[ -z "\$NP_NIX" ] && NP_NIX=\$dir/bin/nix
debug "nix executable: \$NP_NIX"
debug "testing all available runtimes..."
if [ -z "\$NP_RUNTIME" ]; then
# read last automatic selected runtime from disk
if [ "\$newNPVersion" == "true" ]; then
debug "removing cached auto selected runtime"
rm -f "\$dir/conf/last_auto_runtime"
fi
if [ -f "\$dir/conf/last_auto_runtime" ]; then
last_auto_runtime="\$(cat "\$dir/conf/last_auto_runtime")"
else
last_auto_runtime=
fi
debug "last auto selected runtime: \$last_auto_runtime"
if [ "\$last_auto_runtime" != "" ]; then
NP_RUNTIME="\$last_auto_runtime"
# check if nix --store works
elif \\
debug "testing nix --store" \\
&& mkdir -p \$dir/tmp/ \\
&& touch \$dir/tmp/testfile \\
&& "\$NP_NIX" --store "\$dir/tmp/__store" shell -f "\$dir/mini-drv.nix" -c "\$dir/bin/nix" store add-file --store "\$dir/tmp/__store" "\$dir/tmp/testfile" >/dev/null 2>&3; then
chmod -R +w \$dir/tmp/__store
rm -r \$dir/tmp/__store
debug "nix --store works on this system -> will use nix as runtime"
NP_RUNTIME=nix
# check if bwrap works properly
elif \\
debug "nix --store failed -> testing bwrap" \\
&& \$NP_BWRAP --bind \$dir/emptyroot / --bind \$dir/ /nix --bind \$dir/busybox/bin/busybox "\$dir/true" "\$dir/true" 2>&3 ; then
debug "bwrap seems to work on this system -> will use bwrap"
NP_RUNTIME=bwrap
else
debug "bwrap doesn't work on this system -> will use proot"
NP_RUNTIME=proot
fi
echo -n "\$NP_RUNTIME" > "\$dir/conf/last_auto_runtime"
else
debug "runtime selected via NP_RUNTIME: \$NP_RUNTIME"
fi
debug "NP_RUNTIME: \$NP_RUNTIME"
if [ "\$NP_RUNTIME" == "nix" ]; then
run="\$NP_NIX shell -f \$dir/mini-drv.nix -c"
export PATH="\$PATH:\$store${lib.removePrefix "/nix/store" nix}/bin"
NP_CONF_STORE="\$dir"
recreate_nix_conf
elif [ "\$NP_RUNTIME" == "bwrap" ]; then
collectBinds
makeBindArgs --bind " " \$toBind \$sslBind
run="\$NP_BWRAP \$BWRAP_ARGS \\
--bind \$dir/emptyroot /\\
--dev-bind /dev /dev\\
--proc /proc\\
--bind \$dir/nix /nix\\
\$binds"
# --bind \$dir/busybox/bin/busybox /bin/sh\\
else
# proot
echo Unsupported runtime: $NP_RUNTIME
exit 1
fi
debug "base command will be: \$run"
### setup environment
export NIX_PATH="\$dir/channels:nixpkgs=\$dir/channels/nixpkgs"
mkdir -p \$dir/channels
[ -h \$dir/channels/nixpkgs ] || ln -s ${nixpkgsSrc} \$dir/channels/nixpkgs
### install nix store
# Install all the nix store paths necessary for the current nix-portable version
# We only unpack missing store paths from the tar archive.
index="$(cat ${storeTar}/index)"
export missing=\$(
for path in \$index; do
basepath=\$(basename \$path)
if [ ! -e \$store/\$basepath ]; then
echo "nix/store/\$basepath"
fi
done
)
if [ -n "\$missing" ]; then
debug "extracting missing store paths"
(
mkdir -p \$dir/tmp \$store/
rm -rf \$dir/tmp/*
cd \$dir/tmp
unzip -qqp "\$self" ${ lib.removePrefix "/" "${storeTar}/tar"} \
| \$dir/bin/zstd -d \
| tar -x \$missing --strip-components 2
mv \$dir/tmp/* \$store/
)
rm -rf \$dir/tmp
fi
if [ -n "\$missing" ]; then
debug "registering new store paths to DB"
reg="$(cat ${storeTar}/closureInfo/registration)"
cmd="\$run \$store${lib.removePrefix "/nix/store" nix}/bin/nix-store --load-db"
debug "running command: \$cmd"
echo "\$reg" | \$cmd
fi
### select executable
# the executable can either be selected by
# - executing './nix-portable BIN_NAME',
# - symlinking to nix-portable, in which case the name of the symlink selects the nix executable
# Alternatively the executable can be hardcoded by specifying the argument 'executable' of nix-portable's default.nix file.
executable="${if bundledPackage == null then "" else bundledExe}"
if [ "\$executable" != "" ]; then
bin="\$executable"
debug "executable is hardcoded to: \$bin"
elif [[ "\$(basename \$0)" == nix-portable* ]]; then\
if [ -z "\$1" ]; then
echo "Error: please specify the nix binary to execute"
echo "Alternatively symlink against \$0"
exit 1
elif [ "\$1" == "debug" ]; then
bin="\$(which \$2)"
shift; shift
else
bin="\$store${lib.removePrefix "/nix/store" nix}/bin/\$1"
shift
fi
# for binary selection via symlink
else
bin="\$store${lib.removePrefix "/nix/store" nix}/bin/\$(basename \$0)"
fi
### check which runtime has been used previously
if [ -f "\$dir/conf/last_runtime" ]; then
lastRuntime=\$(cat "\$dir/conf/last_runtime")
else
lastRuntime=
fi
### check if nix is functional with or without sandbox
# sandbox-fallback is not reliable: https://github.com/NixOS/nix/issues/4719
if [ "\$newNPVersion" == "true" ] || [ "\$lastRuntime" != "\$NP_RUNTIME" ]; then
nixBin="\$(dirname \$bin)/nix"
debug "Testing if nix can build stuff without sandbox"
if ! \$run "\$nixBin" build --no-link -f "\$dir/mini-drv.nix" --option sandbox false >&3 2>&3; then
echo "Fatal error: nix is unable to build packages"
exit 1
fi
debug "Testing if nix sandbox is functional"
if ! \$run "\$nixBin" build --no-link -f "\$dir/mini-drv.nix" --option sandbox true >&3 2>&3; then
debug "Sandbox doesn't work -> disabling sandbox"
NP_CONF_SANDBOX=false
recreate_nix_conf
else
debug "Sandboxed builds work -> enabling sandbox"
NP_CONF_SANDBOX=true
recreate_nix_conf
fi
fi
### save fingerprint and lastRuntime
if [ "\$newNPVersion" == "true" ]; then
echo -n "\$fingerprint" > "\$dir/conf/fingerprint"
fi
if [ "\$lastRuntime" != \$NP_RUNTIME ]; then
echo -n \$NP_RUNTIME > "\$dir/conf/last_runtime"
fi
### set PATH
export PATH="\$dir/busybox/bin"
export PATH="\$PATH:\$store${lib.removePrefix "/nix/store" nix}/bin"
### install programs via nix
${concatMapStringsSep "\n" installDynamic bootstrapPrograms}
### print elapsed time
end=\$(date +%s%N) # end time in nanoseconds
# time elapsed in millis with two decimal places
# print stats about initialization time of nix-portable
# skipt for termux, as it doesn't have bc installed
if [ -z "\$TERMUX_VERSION" ]; then
elapsed=\$(echo "scale=2; (\$end - \$start)/1000000" | bc)
debug "Time to initialize nix-portable: \$elapsed millis"
fi
### run commands
[ -z "\$NP_RUN" ] && NP_RUN="\$run"
if [ "\$NP_RUNTIME" == "proot" ]; then
debug "running command: \$NP_RUN \$bin \$@"
exec \$NP_RUN \$bin "\$@"
else
cmd="\$NP_RUN \$bin \$@"
debug "running command: \$cmd"
exec \$NP_RUN \$bin "\$@"
fi
exit
'';
runtimeScriptEscaped = replaceStrings ["\""] ["\\\""] runtimeScript;
nixPortable = pkgs.runCommand pname {
nativeBuildInputs = [unixtools.xxd unzip];
meta = {
homepage = "https://github.com/DavHau/nix-portable";
description = "Nix - Static, Permissionless, Installation-free, Pre-configured for mn5";
maintainers = with lib.maintainers.bsc; [ abonerib ];
platforms = lib.platforms.linux;
license = lib.licenses.mit;
};
} ''
mkdir -p $out/bin
echo "${runtimeScriptEscaped}" > $out/bin/nix-portable.zip
xxd $out/bin/nix-portable.zip | tail
sizeA=$(printf "%08x" `stat -c "%s" $out/bin/nix-portable.zip` | tac -rs ..)
echo 504b 0304 0000 0000 0000 0000 0000 0000 | xxd -r -p >> $out/bin/nix-portable.zip
echo 0000 0000 0000 0000 0000 0200 0000 4242 | xxd -r -p >> $out/bin/nix-portable.zip
sizeB=$(printf "%08x" `stat -c "%s" $out/bin/nix-portable.zip` | tac -rs ..)
echo 504b 0102 0000 0000 0000 0000 0000 0000 | xxd -r -p >> $out/bin/nix-portable.zip
echo 0000 0000 0000 0000 0000 0000 0200 0000 | xxd -r -p >> $out/bin/nix-portable.zip
echo 0000 0000 0000 0000 0000 $sizeA 4242 | xxd -r -p >> $out/bin/nix-portable.zip
echo 504b 0506 0000 0000 0000 0100 3000 0000 | xxd -r -p >> $out/bin/nix-portable.zip
echo $sizeB 0000 0000 0000 0000 0000 0000 | xxd -r -p >> $out/bin/nix-portable.zip
unzip -vl $out/bin/nix-portable.zip
zip="${zip}/bin/zip -0"
$zip $out/bin/nix-portable.zip ${bwrap}/bin/bwrap
$zip $out/bin/nix-portable.zip ${nixStatic}/bin/nix
$zip $out/bin/nix-portable.zip ${zstd}/bin/zstd
$zip $out/bin/nix-portable.zip ${storeTar}/tar
$zip $out/bin/nix-portable.zip ${caBundleZstd}
# create fingerprint
fp=$(sha256sum $out/bin/nix-portable.zip | cut -d " " -f 1)
sed -i "s/_FINGERPRINT_PLACEHOLDER_/$fp/g" $out/bin/nix-portable.zip
# fix broken zip header due to manual modification
${zip}/bin/zip -F $out/bin/nix-portable.zip --out $out/bin/nix-portable-fixed.zip
rm $out/bin/nix-portable.zip
executable=${if bundledPackage == null then "" else bundledExe}
if [ "$executable" == "" ]; then
target="$out/bin/nix-portable"
else
target="$out/bin/$(basename "$executable")"
fi
mv $out/bin/nix-portable-fixed.zip "$target"
chmod +x "$target"
'';
in
nixPortable.overrideAttrs (prev: {
passthru = (prev.passthru or {}) // {
inherit bwrap;
};
})

View File

@@ -14,7 +14,7 @@ let
nixConfDir = "share"; nixConfDir = "share";
nix_wrap_sh = writeText "nix-wrap.sh" '' nix_wrap_sh = writeText "nix-wrap.sh" ''
#!/usr/bin/env bash #!/usr/bin/env bash
#
busybox_bin="${nixPrefix}${busybox}/bin" busybox_bin="${nixPrefix}${busybox}/bin"
bubblewrap_bin="${nixPrefix}/${bubblewrap}/bin" bubblewrap_bin="${nixPrefix}/${bubblewrap}/bin"
@@ -69,7 +69,6 @@ stdenv.mkDerivation rec {
name = "nix-wrap"; name = "nix-wrap";
buildInputs = [ buildInputs = [
bashInteractive bashInteractive
busybox
nix nix
]; ];
src = null; src = null;
@@ -92,7 +91,6 @@ stdenv.mkDerivation rec {
homepage = null; homepage = null;
description = "nix bubblewrap wrapper"; description = "nix bubblewrap wrapper";
maintainers = [ ]; maintainers = [ ];
broken = true;
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
license = lib.licenses.mit; license = lib.licenses.mit;
}; };

View File

@@ -68,5 +68,6 @@ in
maintainers = with lib.maintainers.bsc; [ abonerib rarias ]; maintainers = with lib.maintainers.bsc; [ abonerib rarias ];
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
license = lib.licenses.gpl3Plus; license = lib.licenses.gpl3Plus;
cross = true;
}; };
} }

View File

@@ -31,13 +31,13 @@ assert mklSupport || cudaSupport || enableHip;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "oneMath"; pname = "oneMath";
version = "0.8"; version = "0.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "uxlfoundation"; owner = "uxlfoundation";
repo = "oneMath"; repo = "oneMath";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-xK8lKI3oqKlx3xtvdScpMq+HXAuoYCP0BZdkEqnJP5o="; sha256 = "sha256-jVcrpne6OyOeUlQHg07zZXEyFXvEGCYW88sWnYgEeu8=";
}; };
cmakeFlags = [ cmakeFlags = [

View File

@@ -8,8 +8,15 @@ if stdenv.hostPlatform == stdenv.buildPlatform then
else else
papi.overrideAttrs (old: { papi.overrideAttrs (old: {
configureFlags = (old.configureFlags or [ ]) ++ [ configureFlags = (old.configureFlags or [ ]) ++ [
"--enable-perf_event_uncore=no" # Only perf-events works when cross compiling, since for the rest, papi's
# configure.in uses `test -f` which is not allowed when cross-compiling.
# FIXME: patch configure.in to skip the faulty checks when cross-compiling
"--disable-perf-event-uncore"
"--with-sysdetect=no" "--with-sysdetect=no"
# Flags below are adapted from "cross compile sample" in papi's
# src/configure.in. (--host is already set by nix). Verified to
# cross-compile in both riscv64 and aarch64-multiplatform targets.
"--with-ffsll" "--with-ffsll"
"--with-tls=__thread" "--with-tls=__thread"
"--with-virtualtimer=clock_thread_cputime_id" "--with-virtualtimer=clock_thread_cputime_id"
@@ -19,4 +26,6 @@ else
"--with-arch=${stdenv.hostPlatform.uname.processor}" "--with-arch=${stdenv.hostPlatform.uname.processor}"
]; ];
patches = (old.patches or [ ]) ++ [ ./fix-ar-cross.patch ]; patches = (old.patches or [ ]) ++ [ ./fix-ar-cross.patch ];
meta = old.meta // { cross = true; };
}) })

View File

@@ -1,47 +0,0 @@
{
lib,
python3,
fetchPypi,
cargo,
rustPlatform,
rustc,
}:
let
pname = "pertalde";
version = "0.1.4";
src = fetchPypi {
inherit pname version;
hash = "sha256-KdS5yNYR+8z81hMBTl9oNiLi17cVLyoZBNNR88T/gOY=";
};
in
python3.pkgs.buildPythonApplication {
inherit pname version src;
pyproject = true;
strictDeps = true;
cargoDeps = rustPlatform.fetchCargoVendor {
inherit src;
name = "${pname}-${version}";
hash = "sha256-dQ8EKlYZq+Urtb+0zxRi/Vh/ormIGCNKHy/9entyb7g=";
};
# error[E0554]: `#![feature]` may not be used on the stable release channel
env.RUSTC_BOOTSTRAP = true;
build-system = [
cargo
rustPlatform.cargoSetupHook
rustPlatform.maturinBuildHook
rustc
];
meta = {
description = "Some command-line utilities on paraver traces";
homepage = "https://pypi.org/project/pertalde/";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers.bsc; [ abonerib ];
mainProgram = "ptd";
};
}

View File

@@ -21,8 +21,8 @@
useGit ? false, useGit ? false,
gitUrl ? "git@gitlab-internal.bsc.es:task-awareness/pocl/pocl.git", gitUrl ? "git@gitlab-internal.bsc.es:task-awareness/pocl/pocl.git",
gitBranch ? "new-device", gitBranch ? "feat/nosv",
gitCommit ? "dd10c2221b31223cbb796182df6a07f11c7541f5", gitCommit ? "556542309fc3c5900cf05dae5b41d200cd3de6a0",
staticLLVM ? true, staticLLVM ? true,
enableICD ? true, enableICD ? true,
@@ -248,7 +248,7 @@ stdenv.mkDerivation (finalAttrs: {
leixb leixb
jansol jansol
xddxdd xddxdd
bsc.maintainers.leixb bsc.abonerib
]; ];
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.linux ++ platforms.darwin;
}; };

View File

@@ -1,58 +0,0 @@
{
stdenv,
lib,
fetchurl,
ocl-icd,
opencl-headers,
}:
stdenv.mkDerivation {
pname = "rodinia-opencl";
version = "3.1";
src = fetchurl {
url = "http://www.cs.virginia.edu/~skadron/lava/Rodinia/Packages/rodinia_3.1.tar.bz2";
hash = "sha256-+uusfBHtj4/Pa/LX6FwwhvwtEfciBNbfwo3FsujyrP0=";
};
patches = [
./rodinia-fixes.patch
./rodinia-rm.patch
];
buildInputs = [
opencl-headers
ocl-icd
];
buildFlags = [
"OPENCL"
"--always-make"
];
preBuild = ''
mkdir -p bin/linux/{cuda,omp,opencl}
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share
cp -r bin data opencl $out
cp LICENSE README $out/share
runHook postInstall
'';
meta = {
homepage = "https://rodinia.cs.virginia.edu/";
description = "Test Suite of Compute-Intensive Applications with Accelerators";
maintainers = with lib.maintainers.bsc; [ abonerib ];
platforms = lib.platforms.linux;
license = {
deprecated = false;
free = false;
fullName = "Rodinia License";
redistributable = true;
shortName = "rodinia";
url = "https://www.cs.virginia.edu/~skadron/lava/rodinia/license.htm";
};
};
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,72 +0,0 @@
{
backendStdenv,
fetchFromGitHub,
automake,
autoconf,
libtool,
gnumake,
autoreconfHook,
boost,
cudatoolkit,
libcublas,
cuda_cudart,
useGit ? false,
gitUrl ? "git@gitlab-internal.bsc.es:task-awareness/tacuda/tacuda.git",
gitBranch ? "main",
gitCommit ? "35234f9445e6149a2bd38d119841e2485d6ee05e",
}:
let
release_ver = "2.1.0";
release = {
version = release_ver;
src = fetchFromGitHub {
owner = "bsc-pm";
repo = "tacuda";
rev = release_ver;
hash = "sha256-Cj3EiLVJSLvRv0ydeg7Vp4SpkniEqHkcWF+YOJQ8EcM=";
};
};
git = rec {
version = src.shortRev;
src = builtins.fetchGit {
url = gitUrl;
ref = gitBranch;
rev = gitCommit;
};
};
source = if (useGit) then git else release;
in
backendStdenv.mkDerivation {
pname = "tacuda";
inherit (source) src version;
enableParallelBuilding = true;
separateDebugInfo = true;
strictDeps = true;
nativeBuildInputs = [
autoreconfHook
automake
autoconf
libtool
gnumake
];
patches = [ ./fix_config.patch ];
configureFlags = [ "--with-cuda-include=${cudatoolkit}/include" ];
buildInputs = [
boost
libcublas
cuda_cudart
];
}

View File

@@ -1,13 +0,0 @@
diff --git a/m4/cuda.m4 b/m4/cuda.m4
index 23f5c94..8f9b534 100644
--- a/m4/cuda.m4
+++ b/m4/cuda.m4
@@ -40,7 +40,7 @@ search_libs="cuda cublas cudart"
required_libs=""
m4_foreach([function],
- [cuInit,
+ [
cublasSgemm,
cudaStreamCreate,
cudaLaunchKernel,

View File

@@ -1,48 +0,0 @@
{
stdenv,
automake,
autoconf,
libtool,
gnumake,
boost,
mpi,
autoreconfHook,
ocl-icd,
opencl-headers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "taopencl";
version = finalAttrs.src.shortRev;
src = builtins.fetchGit {
url = "git@gitlab-internal.bsc.es:task-awareness/taopencl/taopencl.git";
ref = "master";
rev = "c3b7b32ae8fa4af7ceff598532a881f8f1490aaf";
};
enableParallelBuilding = true;
separateDebugInfo = true;
strictDeps = true;
configureFlags = [
"--with-opencl-lib=${ocl-icd}/lib"
"--with-opencl-include=${opencl-headers}/include"
];
nativeBuildInputs = [
autoreconfHook
automake
autoconf
libtool
gnumake
];
buildInputs = [
boost
mpi
];
dontDisableStatic = true;
hardeningDisable = [ "all" ];
})

View File

@@ -84,4 +84,12 @@ syclStdenv.mkDerivation {
''; '';
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
meta = {
homepage = "https://github.com/bsc-pm/tasycl";
description = "Interoperability support between task-based programming models and SYCL";
maintainers = with lib.maintainers.bsc; [ abonerib ];
platforms = lib.platforms.linux;
license = lib.licenses.gpl3Plus;
};
} }

View File

@@ -1,63 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
python3,
cudatoolkit,
libbacktrace,
intel-compute-runtime,
level-zero,
unified-memory-framework,
autoAddDriverRunpath,
enableL0 ? false,
}:
stdenv.mkDerivation rec {
pname = "unified-runtime";
version = "2025-WW45";
src = fetchFromGitHub {
owner = "intel";
repo = "llvm";
tag = version;
sha256 = "sha256-yf8pFEeNEWf9LpEhAy4vMdFDlA08x5XaCegnq+5aXRw=";
};
sourceRoot = "${src.name}/unified-runtime";
nativeBuildInputs = [
cmake
python3
libbacktrace
(python3.withPackages (
python-pkgs: with python-pkgs; [
lit
filecheck
]
))
autoAddDriverRunpath
];
buildInputs = [
unified-memory-framework
cudatoolkit
]
++ lib.optionals enableL0 [
intel-compute-runtime
level-zero
];
cmakeFlags = [
(lib.cmakeBool "UR_USE_EXTERNAL_UMF" true)
(lib.cmakeBool "UR_BUILD_TESTS" false)
(lib.cmakeBool "UR_BUILD_ADAPTER_CUDA" true)
(lib.cmakeBool "UR_BUILD_ADAPTER_L0" enableL0)
(lib.cmakeBool "UR_BUILD_ADAPTER_OPENCL" false)
(lib.cmakeBool "UR_BUILD_ADAPTER_HIP" false)
(lib.cmakeBool "UR_BUILD_ADAPTER_NATIVE_CPU" false)
];
}

View File

@@ -1,25 +1,29 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 AY8zKw /gmhFOFqOs8IobAImvQVKeM5Y6k0FpuR61/Cu5drVVI -> ssh-ed25519 AY8zKw Crgof1PMHzv3jBw8VeJAst6FKSoyqPFdANFpf79CAgo
g9FXJg2oIoien0zJ70FWHwSTM8SBwbpS188S3Swj7EM 7fagE5BmlWdTsdY/i3RbExu1KBcjW1LQXbYwu6chxlk
-> ssh-ed25519 sgAamA opPjlWPhSiI0Rd5l7kd204S5FXFLcQcQftyKb7MDmnU -> ssh-ed25519 sgAamA tGRCaK8mjvz65YziXjRcjMOHIRoyGNJFzBEEbivXPDo
3XrRDVnglCP+vBwvfd1rP5gHttsGDHyXwbf10a8/kKY YLzE5a3J81r+gzkfZIeh9gS+mXzMooC82tBbZ+C3C8o
-> ssh-ed25519 HY2yRg QKZbubM76C3tobPoyCFDRclA9Pzb2fC7s4WOoIgdORc -> ssh-ed25519 HY2yRg +vhO1/vdGPM1JnZRsvVnViFWaFWUZ7MIqvWdePivkxA
K5kckU0KhQFTE6SikJXFJgM41Tco5+VqOsaG0qLrY1Q 2K+JdN82DTeGh9QwZBTaghg8C5BCLoEsOgTCM64PU28
-> ssh-ed25519 fw2Xhg +ohqts8dLFjvdHxrGHcOGxU0dm+V3N//giljHkobpDM -> ssh-ed25519 fw2Xhg NHDn0dq32I/AVdUZlpzBX6retlEYEUipde7A9R90qW4
jR/UzGrfS9lrJ/VeolKLxfzeJAf2fIB2pdIn/6ukqNk SJO78ooqEwfHlBRW+YCzgSQJb1JHNo8jz37t3qvLClE
-> ssh-ed25519 tcumPQ 3DPkDPIQQSVtXSLzIRETsIyXQ0k1o18Evn6vf+l/6R8 -> ssh-ed25519 G5LX5w d4HfLzI2623artkR2FIfRJgr5yb2BKZJUWqPnwOWDCk
bLXF62OmJjnOT1vvgq3+AcOKKSG5NonrK5EqCVc0Mwo Kh50QESJZSjaJPyp3xroHGn0fD5pPNEYgKkDdqxGpjs
-> ssh-ed25519 JJ1LWg 2Wefc7eLolMU5InEmCNTq21Mf71mI0a2N1HgDrlHvy4 -> ssh-ed25519 tcumPQ wQyOKtT15Qezs3cyv5/xxIPVD7Jyk6N6ZLkfxxBHLTo
qXFW9CQBnrzubZ0mzS0Io2WGRrwGBkmeYndBTcZn/fM rKlRBjJdfDVT6U8211+ssFF8yY9yRs1u3GhCSvsw2oE
-> ssh-ed25519 cDBabA oiH36AoIt/fFFYgnoxtH7OoetP+2/wjtn8qo3RJDSHc -> ssh-ed25519 JJ1LWg 98tF1MdA244xNny4w3RnMFuubf4WcuQaZf2bN2Uq8Qc
qKmkxy1aZGP4ZwC0iH7n7hiJ0+rFQYvjQb5O1a1Z0r4 MA1Xh1H9vHisVYdqkxNeBkngtn8cYuT2eSimvooIXYo
-> ssh-ed25519 cK5kHw bX3RtO5StMejUYWAaA37fjHA5nO7Xs1vWDQk3yOjs2o -> ssh-ed25519 cDBabA imJ0rXLQETELP7yo3sArhqA9nJwY+S6gkC7tA7CJsQA
Egxmcf8FKAd+E5hMLmhV1yQsCo5rJyUazf1szOvpTAM pKMHW/KDAoEj5ZD64VKekg6et9hlS2PKSgDw3eB3eu8
-> ssh-ed25519 CAWG4Q oKqqRDJH0w8lsoQBQk0w8PO+z5gFNmSaGBUSumvDp1I -> ssh-ed25519 WY7yGw +2g5021/02HvLxLqq42ynr6qKgOKJ3J5GgB1a1bmFXg
m1zWp9MfViAmtpbJhqOHraIokDaPKb0DvvO4vAGCTWI fYvj52R6bM6ngPOZ2lwVezTJnx+8LJBbdnaapKKbyd0
-> ssh-ed25519 xA739A G26kPOz6sbFATs+KAr7gbDvji13eA1smFusQAOJXMwA -> ssh-ed25519 cK5kHw fLZ6yF3NggJ724rjYqhs5ZZh1xUExuK+ITAyqONluzk
Sppvz7A103kZoNxoGsd6eXeCvVh7mBE2MRwLFj9O1dY NS9OMX70XEHrbPQnmC4KB/eoiHChIb8DwDLYJiwOLUU
-> ssh-ed25519 MSF3dg 55ekNcp+inbUd+GQ/VZ7BoBASaJ8YDqF74CVXy1PUxQ -> ssh-ed25519 CAWG4Q tVduE/wMzdfS+DjNbU3Q4blNhL/A63IehNSZGJkJjD0
aTHLLAbzQPWWld/OT3BKebc6FcmsqMTaWCPBGm1UHic jEBB5zG+gLA/88YF+KqWQsNH7lfCsWNvAkrgfbescFs
--- mVkAMnI9XQhS3fMiFuuXP/yLR9wEG9+Rr8pA4Uc0avY -> ssh-ed25519 xA739A ZhFvev77I+YOl1YSHKn2ZcEvGoLjWOILufjd4q/k8HM
<04>DU <20><>s<EFBFBD><73><EFBFBD><EFBFBD>j<EFBFBD><6A>M<EFBFBD><4D>$<24>[<5B>M<EFBFBD><4D><EFBFBD><03>[_<>K7s<37>ju<>v<EFBFBD>D<EFBFBD>4<EFBFBD>g<EFBFBD><67>܄3<>Gn<47><6E><EFBFBD> ɽ<>P<EFBFBD>7~rZs<><73> YXEtHHtjPQlgZW60zHgHm7CLI6vYiRo+AM8QERL9tCg
-> ssh-ed25519 MSF3dg 9DvLNheBU1vlfW2zNNxBrGnJ6k4P5ox7s+OGKlgRdyQ
wseHfLGHz0huNi5sZsNOfeNkm6Kjjx0SZ8lK4/oXtUQ
--- bnJE+14onuSla0XmckD4z/wChWGZh6exbkcbyhcmNYU
<EFBFBD><EFBFBD>t<>N<><10>U<EFBFBD>wi2<69><32>-<2D>iV'(<1E>IF<49><46> S<><53>xs/s<><73> <09><>NDm<44>Q<EFBFBD><51><EFBFBD>o<EFBFBD><6F><EFBFBD><EFBFBD>wZv<7F><76>.\

Binary file not shown.

Binary file not shown.

View File

@@ -1,13 +1,13 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 HY2yRg U2KQWviZIVNemm9e8h7H+eOzoYNxXgLLS3hsZLMAuGk -> ssh-ed25519 HY2yRg eHM55QsHK1ca9b5nP3EoVUZYu0w2d4B5tkilNK0j/lw
6n5dH1McNzk3rscP4v2pqZYDWtUFMd15rZsEd/mqIFM 6Na6lkMe0fOd7+vNP1fLIaVEQDUw5m65Wh8jUH1I6C0
-> ssh-ed25519 cK5kHw Ebrj/cpz1cFWAYAV9OxgyyH85OEMUnfUIV66p7jaoFY -> ssh-ed25519 cK5kHw 0ekhoBYwF7OSWwn4P5f/J4gXb9UHJAWGKV0yI7HCzzE
6J7hWqODtS/fIF4BpxhxbrxZq5vbolvbLqRKqazT02M 2Q+Tt5jXAB9ip9jf1z+jeM4FSiqd1w5DNtbqtacuOcM
-> ssh-ed25519 CAWG4Q mXqoQH9ycHF7u0y8mazCgynHxNLxTnrmQHke+2a5QCc -> ssh-ed25519 CAWG4Q Jmw4v9efOFXHjjNky96q/d6vGBP5dNM4wK9zoGrwOh8
mq6PdSF+KOqthuXwzTCsOQsi5KG0z1wHUck+bSTyOBY u5I17wcIq8/2ARWckDXsYckhfX0jWE4AEm5mip/KHws
-> ssh-ed25519 xA739A TADeswueqDEroZWLjMw3RDNwVQ2xRD+JUMVZENovn0M -> ssh-ed25519 xA739A 10pPeC2YG9DJzaQlt7p+fGo27VDiL2dN6JmvY2npcUw
KFlnSjVFbjc+ZsbY8Ed7edC5B01TJGzd/dSryiLArPc 4aRV8DekYeL9HagGWgOSjlYnPKmYdKZH8Aw4lRdm+r8
-> ssh-ed25519 MSF3dg Pq+ZD8AqJGDHDbd4PO1ngNFST8+6C2ghZkO/knKzzEc -> ssh-ed25519 MSF3dg hDwIE3Su6cN3sq2E5v/oy6vTNfxTT1ZPts85//gIhwY
wyiL/u38hdQMokmfTsBrY7CtYwc+31FG4EDaqVEn31U aoiaGjQYJB1ededhIuVBCKDRLIOVThWz1pSTvg65J3Y
--- 1z4cOipayh0zYkvasEVEvGreajegE/dqBV7b6E7aFh0 --- OYPAGb5U/nwLOIV5VchSvxhChjNnwzbEgU9glSkWCl4
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>@<40>/i<>I'<27><><EFBFBD>Nx<4E>r"<1D>`<1E>O<EFBFBD><4F><EFBFBD>y<><79>8<EFBFBD><38> \/<2F><>I<19><17>D<EFBFBD>`<60>ߓ<EFBFBD><DF93><EFBFBD><1E><04>uy<75><79><EFBFBD>:9Lt<4C><1D><><EFBFBD>؋<EFBFBD><D88B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AU<41><55><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`<60>;<3B>q8<71>GLU#<23>i<EFBFBD>y<EFBFBD><79>i<03>ڜ <EFBFBD>=<3D><><EFBFBD>c<EFBFBD>WȟJSaІ&<26><1F>ቧ)E<> <0B> C<><43>J~u<>c<63><7F>2<EFBFBD><32>v<EFBFBD><76><EFBFBD><03><>s<EFBFBD><73><EFBFBD>vf<76><10><>X7(<28>~<7E><1A>=XCi;<3B>״<EFBFBD><><DFA2><EFBFBD>ܣ<EFBFBD><10><><07>ɳCe<43>D;;X*<2A>3<EFBFBD>i<EFBFBD><69>r<EFBFBD>Em<45><6D><

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,14 +1,13 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 G5LX5w SRJhNenoQXbT1FgX3TMPnVH5P6oe2eHot+M1YsEjsEk -> ssh-ed25519 G5LX5w /9lcJOXC9CN02+XLswUaJ0H7jU6Xhjd8Xg4+KY0l1Vc
hfTSLgKi98Eh7JK5o7x2POpTEtQlQCpEa3keUFYCuME fCLzsLc9zrocM8SHOKyZwt6eUEr8r1WLug9RLi63KU0
-> ssh-ed25519 cK5kHw z5TwWJTkvx7HztjXHJW/aCOtOfPrQaLP0gyIT7rXcyU -> ssh-ed25519 cK5kHw 1qza6h2NRSs4g8LYdFU7E+Dn1CgdtCU7DPdYInP1GwM
b4NCpHfasgvkLLr+6LcWUl60p59aSNnfp3bl2OFYXo0 /6uk7pTFkNTRTI7nA+x4y4CyOBVQVXX2lnpOg3ktPe4
-> ssh-ed25519 CAWG4Q 4VpS1/OnFe8nxcQbRTKNhjsh/ZQ5cbhSMXwK/jjQ+3o -> ssh-ed25519 CAWG4Q o+vyzcejSaNVYPSGzzOdzaqPByZ6zA1uaJf4KOg+wQA
WF9wvOkqVml4UcEzyzeumKuUwCwwr2zvKLMg+PCB8nk wfZmWrDSfRV8C+Hu+SeZDcomf/qigBqxuQK77SfnuEo
-> ssh-ed25519 xA739A 67FhuJ070jBVMt/xbKHWhfri6iIm0FyaFvzQabsvFBM -> ssh-ed25519 xA739A +rBsOC+IBE3lmc/pfrziftLIqMSyaGMsggRjC5Pqwl0
1G5/913dDv/r/6p1x/c5YiUnZzrX/LvIj33KW+PN0KU xa7ulLz2+YC3g2hu7e9XhRYDIUb2sriaaigJRYF2oB8
-> ssh-ed25519 MSF3dg Bj/yB4N2wkyHCHC22tcjjJAA4ebSamN0Z4UVX3ZnryI -> ssh-ed25519 MSF3dg TK6PmKjjQt8ni0mJLCt7P41lUsgimlj3o5Q6n3N+DE4
6D/ZgTs+j+MGDAbPU5zyK0i9zN6tQy68IcOnQZ27mYg ne+s3ctcg8cBjY06LY2lrW7wcxomvKHxu6MlirEA8Kg
--- 169erk3ICSYLs4FPEuXCn7QlekWhsmSn0Lr+/R14I5Q --- eorg2ckkUZ1Ogi4iTTg2MoiVBwl1F0RCmH2D8N1d1So
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><05>ҽ3<D2BD>s<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>8<1C><><EFBFBD><EFBFBD><EFBFBD><12>i<17>$]K<>J=2Z<1D><>ӼF<D3BC>][<14><><EFBFBD>8<EFBFBD><38>ޤ<12> <09>=<3D><>LD/<2F>gz
w<EFBFBD><EFBFBD>4D<EFBFBD><EFBFBD>b.<2E><><EFBFBD>"|<7C><><EFBFBD>)"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<3B>.<2E>ɫ7)<29>LeC<05>=S؟

Binary file not shown.

View File

@@ -1,14 +1,13 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 cDBabA heyW9/cxgwFX9IexQIXjAQDWGQPNcMXcArQp2Rxsqx4 -> ssh-ed25519 cDBabA So/Tqwdwd7G0PbE4RwH2qDrNcdqTkhFjF4IJrLKKpkM
o9MQ7EH8PDDjsJdpH9F3Xq2zUoaDAJQlfFmYucSFs6Y MEA5dzlUeFXm3pa+ndxrcE0ZWdO00Xf98+Q8U9LZ+cQ
-> ssh-ed25519 cK5kHw Sza4pos7K3qW3omEeyidI/jszJNf9smemSZnUJfCIww -> ssh-ed25519 cK5kHw sCHD/hHBOfMBUQXkLG3MBPNC4ebLOXW37OlF/C8FEjU
D6vazXki7hIYraIuSiGPS+FPbkFUwHhHWDf52OhEIMg 4TFbKoy23Ic2vteXZ02fMrFxyb4NxyWaSo5I8dn48mI
-> ssh-ed25519 CAWG4Q YexIHueOIMmIN8JIDyNUOKBkyz/k18HqV3hTXh48KlM -> ssh-ed25519 CAWG4Q KYGPAXTx8H5cBC3YIBxi5B7OeF15C9rEIPFCcG0vEDw
xh8UJzzWT6ByN+Dpn4JrMNsjGC/uc/v6LynwjBDz9NQ 9LC2Zvp1Oiau1/hfPf+nJknl6BUSr+lzTn6TozZNxJg
-> ssh-ed25519 xA739A KySG3TXdqfCMUkVEDGa74B0op745s3XGYxFLyAXSQAc -> ssh-ed25519 xA739A hpvNBHPgYRtUx0HyUAdCW8s7QTmGyPXwzRHb8qYoeG0
5EI/yb5ctW9Qu18bHm3/sK97kwGcKzzmWvPSCWm89XA QkUZINY7Fr7HpyY6lbIMcP+hGO3oCmLL6N+yDN4weyk
-> ssh-ed25519 MSF3dg MNxnNj0fHmri8ophexXPNjRUBUWrzcuk5S1mucxUMTE -> ssh-ed25519 MSF3dg P9TmEfXS+hyxsbVKja58UWAFpad0ZS3LhwrMkLnSNAY
GVFWXtISEU8ZmlwL4nh4weAgfGrt2GHX0DTzbpS6zg8 hiHuh7HhoYwHi2KFbCczXJoF3On9eqjD1Wsp9Q1NW/w
--- UdrqkYG2ZApAuwdZeNhC50NP2rkD/Ol6y8nJa4RHx7Y --- SN3peoDvjXuD/Q4DdebQFam1CE22NyGZlMmnKyCTuX8
<EFBFBD>ܻ<EFBFBD>m(<28><><EFBFBD>><3E>H<48>Y87<><37>G<0F>+*<12><><EFBFBD><EFBFBD>9V<>.<2E><><EFBFBD><EFBFBD><03><><EFBFBD>p<EFBFBD>Oo<4F>=+哇<>P0<50><30>{<7B>)<29><17><><EFBFBD><EFBFBD>><3E>z3P^ s<0F><><14><>&׳֦<D7B3><D6A6><EFBFBD><EFBFBD>}<7D>#In0&<26><1F>{<7B>1<EFBFBD><31>.
u

Binary file not shown.

View File

@@ -26,7 +26,7 @@ let
cgh.single_task<hello_world>([=]() { cgh.single_task<hello_world>([=]() {
os << "Hello World! (on device)\n"; os << "Hello World! (on device)\n";
}); });
}); }).wait();
return 0; return 0;
} catch (sycl::exception &e) { } catch (sycl::exception &e) {
@@ -64,6 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
passthru = { passthru = {
withPocl = finalAttrs.finalPackage.overrideAttrs (old: { withPocl = finalAttrs.finalPackage.overrideAttrs (old: {
nativeBuildInputs = old.nativeBuildInputs ++ [ pocl ]; nativeBuildInputs = old.nativeBuildInputs ++ [ pocl ];
name = old.name + "-pocl";
env = (old.env or { }) // { env = (old.env or { }) // {
POCL_DEBUG = "error,warn"; POCL_DEBUG = "error,warn";
POCL_CACHE_DIR = "/build/pocl_cache"; POCL_CACHE_DIR = "/build/pocl_cache";
@@ -71,6 +72,8 @@ stdenv.mkDerivation (finalAttrs: {
# Make PoCL report Intel vendor id so oneapi SYCL works # Make PoCL report Intel vendor id so oneapi SYCL works
POCL_DRIVER_VERSION_OVERRIDE = "2024.18.6.0.02_160000"; POCL_DRIVER_VERSION_OVERRIDE = "2024.18.6.0.02_160000";
POCL_CPU_VENDOR_ID_OVERRIDE = 32902; POCL_CPU_VENDOR_ID_OVERRIDE = 32902;
HWLOC_SYNTHETIC = "node:1 core:1 pu:1";
}; };
doInstallCheck = true; doInstallCheck = true;
installCheckPhase = '' installCheckPhase = ''
@@ -78,6 +81,7 @@ stdenv.mkDerivation (finalAttrs: {
''; '';
}); });
withIntel = finalAttrs.finalPackage.overrideAttrs (old: { withIntel = finalAttrs.finalPackage.overrideAttrs (old: {
name = old.name + "-intel";
env = (old.env or { }) // { env = (old.env or { }) // {
OCL_ICD_VENDORS = intelPackages.compiler + "/etc/OpenCL/vendors"; OCL_ICD_VENDORS = intelPackages.compiler + "/etc/OpenCL/vendors";
}; };

View File

@@ -52,6 +52,7 @@ intelPackages.stdenv.mkDerivation (finalAttrs: {
passthru = { passthru = {
withPocl = finalAttrs.finalPackage.overrideAttrs (old: { withPocl = finalAttrs.finalPackage.overrideAttrs (old: {
nativeBuildInputs = old.nativeBuildInputs ++ [ pocl ]; nativeBuildInputs = old.nativeBuildInputs ++ [ pocl ];
name = old.name + "-pocl";
env = (old.env or { }) // { env = (old.env or { }) // {
POCL_DEBUG = "error,warn"; POCL_DEBUG = "error,warn";
POCL_CACHE_DIR = "/build/pocl_cache"; POCL_CACHE_DIR = "/build/pocl_cache";
@@ -59,6 +60,8 @@ intelPackages.stdenv.mkDerivation (finalAttrs: {
# Make PoCL report Intel vendor id so oneapi SYCL works # Make PoCL report Intel vendor id so oneapi SYCL works
POCL_DRIVER_VERSION_OVERRIDE = "2024.18.6.0.02_160000"; POCL_DRIVER_VERSION_OVERRIDE = "2024.18.6.0.02_160000";
POCL_CPU_VENDOR_ID_OVERRIDE = 32902; POCL_CPU_VENDOR_ID_OVERRIDE = 32902;
HWLOC_SYNTHETIC = "node:1 core:1 pu:1";
}; };
doInstallCheck = true; doInstallCheck = true;
installCheckPhase = '' installCheckPhase = ''
@@ -67,6 +70,7 @@ intelPackages.stdenv.mkDerivation (finalAttrs: {
}); });
withIntel = finalAttrs.finalPackage.overrideAttrs (old: { withIntel = finalAttrs.finalPackage.overrideAttrs (old: {
name = old.name + "-intel";
env = (old.env or { }) // { env = (old.env or { }) // {
OCL_ICD_VENDORS = intelPackages.compiler + "/etc/OpenCL/vendors"; OCL_ICD_VENDORS = intelPackages.compiler + "/etc/OpenCL/vendors";
}; };
@@ -93,7 +97,7 @@ intelPackages.stdenv.mkDerivation (finalAttrs: {
echo NODES_HOME=$NODES_HOME echo NODES_HOME=$NODES_HOME
command -v $CXX command -v $CXX
icpx -Wno-deprecated-declarations -fsycl \ $CXX -Wno-deprecated-declarations -fsycl \
-fsycl-host-compiler=${clangOmpss2Nodes.forIcpx}/bin/clang++ \ -fsycl-host-compiler=${clangOmpss2Nodes.forIcpx}/bin/clang++ \
-fsycl-host-compiler-options='-Wno-deprecated-declarations -fompss-2=libnodes' \ -fsycl-host-compiler-options='-Wno-deprecated-declarations -fompss-2=libnodes' \
-lnodes -lnosv \ -lnodes -lnosv \

View File

@@ -22,7 +22,7 @@ runCommandWith
]; ];
}; };
POCL_DRIVER_VERSION_OVERRIDE = "2024.18.6.0.02_160000"; POCL_DRIVER_VERSION_OVERRIDE = "2025.20.6.0.04_224945";
POCL_CPU_VENDOR_ID_OVERRIDE = 32902; POCL_CPU_VENDOR_ID_OVERRIDE = 32902;
POCL_DEBUG = "error,warn"; POCL_DEBUG = "error,warn";
POCL_CACHE_DIR = "/build/pocl_cache"; POCL_CACHE_DIR = "/build/pocl_cache";