forked from rarias/bscpkgs
		
	Compare commits
	
		
			45 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 92ee4a09d7 | |||
| 34f4b6aa37 | |||
| 2f2d6cbea8 | |||
| 69b09b6dda | |||
| a737d725ed | |||
| 6c1d1f3b2b | |||
| f338ef47d5 | |||
| 239e84c40c | |||
| ed820e79f8 | |||
| afeb415c98 | |||
| 256b24b97b | |||
| 492f73b600 | |||
| 76ddd85afe | |||
| 7affb8ef4b | |||
| 4ba823e5b7 | |||
| 51eecde59e | |||
| 9eb5c486ba | |||
| 5df49dcfab | |||
| 2ffdd53d86 | |||
| c7b5ec13b8 | |||
| 00dfe801f4 | |||
| 2c8d7ed855 | |||
| 1666c14a35 | |||
| b29f03ba6e | |||
| ae2ef1d2df | |||
| 9a48ae45bb | |||
| 974bb56dc3 | |||
| 88d4d8e317 | |||
| 885e04e446 | |||
| 26f52aa27d | |||
| 52fe43bfe1 | |||
| f0637b4569 | |||
| 6ddfea0a3a | |||
| e7adef1ffa | |||
| e82d3c3b9f | |||
| 4442b6a706 | |||
| 2d0b014dc7 | |||
| 867ba3ec5a | |||
| 2cacc2b265 | |||
| e4abd8d8f6 | |||
| a87b99d0a4 | |||
| 43d32ac16d | |||
| 9d1944c658 | |||
| 8e5b2dc5cc | |||
| f89cd4d7e2 | 
							
								
								
									
										15
									
								
								.gitea/workflows/ci.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								.gitea/workflows/ci.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | ||||
| name: CI | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|   pull_request: | ||||
|     branches: | ||||
|       - master | ||||
| 
 | ||||
| jobs: | ||||
|   build:all: | ||||
|     runs-on: native | ||||
|     steps: | ||||
|       - uses: https://gitea.com/ScMi1/checkout@v1.4 | ||||
|       - run: nix build -L --no-link --print-out-paths .#bsc-ci.all | ||||
							
								
								
									
										22
									
								
								default.nix
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								default.nix
									
									
									
									
									
								
							| @ -1,11 +1,19 @@ | ||||
| let | ||||
|   bscOverlay = import ./overlay.nix; | ||||
| 
 | ||||
|   # Pin the nixpkgs | ||||
|   nixpkgsPath = import ./nixpkgs.nix; | ||||
| 
 | ||||
|   pkgs = import nixpkgsPath { | ||||
|     overlays = [ bscOverlay ]; | ||||
|   # read flake.lock and determine revision from there | ||||
|   lock = builtins.fromJSON (builtins.readFile ./flake.lock); | ||||
|   inherit (lock.nodes.nixpkgs.locked) rev narHash; | ||||
|   fetchedNixpkgs = builtins.fetchTarball { | ||||
|     url = "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz"; | ||||
|     sha256 = narHash; | ||||
|   }; | ||||
| 
 | ||||
| in pkgs | ||||
| in | ||||
| { overlays ? [ ] | ||||
| , nixpkgs ? fetchedNixpkgs | ||||
| , ... | ||||
| }@attrs: | ||||
| import nixpkgs ( | ||||
|   (builtins.removeAttrs attrs [ "overlays" "nixpkgs" ]) // | ||||
|   { overlays = [ bscOverlay ] ++ overlays; } | ||||
| ) | ||||
|  | ||||
							
								
								
									
										8
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										8
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @ -2,10 +2,10 @@ | ||||
|   "nodes": { | ||||
|     "nixpkgs": { | ||||
|       "locked": { | ||||
|         "lastModified": 1736867362, | ||||
|         "narHash": "sha256-i/UJ5I7HoqmFMwZEH6vAvBxOrjjOJNU739lnZnhUln8=", | ||||
|         "path": "/nix/store/2csx2kkb2hxyxhhmg2xs9jfyypikwwk6-source", | ||||
|         "rev": "9c6b49aeac36e2ed73a8c472f1546f6d9cf1addc", | ||||
|         "lastModified": 1752436162, | ||||
|         "narHash": "sha256-Kt1UIPi7kZqkSc5HVj6UY5YLHHEzPBkgpNUByuyxtlw=", | ||||
|         "path": "/nix/store/zk8v61cpk1wprp9ld5ayc1g5fq4pdkwv-source", | ||||
|         "rev": "dfcd5b901dbab46c9c6e80b265648481aafb01f8", | ||||
|         "type": "path" | ||||
|       }, | ||||
|       "original": { | ||||
|  | ||||
							
								
								
									
										21
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								flake.nix
									
									
									
									
									
								
							| @ -2,16 +2,25 @@ | ||||
|   inputs.nixpkgs.url = "nixpkgs"; | ||||
| 
 | ||||
|   outputs = { self, nixpkgs, ...}: | ||||
|   let | ||||
|     pkgs = import nixpkgs { | ||||
|     let | ||||
|       # For now we only support x86 | ||||
|       system = "x86_64-linux"; | ||||
|       overlays = [ self.overlays.default ]; | ||||
|     }; | ||||
|   in | ||||
|       pkgs = import nixpkgs { | ||||
|         inherit system; | ||||
|         overlays = [ self.overlays.default ]; | ||||
|       }; | ||||
|     in | ||||
|     { | ||||
|       bscOverlay = import ./overlay.nix; | ||||
|       overlays.default = self.bscOverlay; | ||||
|       legacyPackages.x86_64-linux = pkgs; | ||||
|       # full nixpkgs with our overlay applied | ||||
|       legacyPackages.${system} = pkgs; | ||||
| 
 | ||||
|       hydraJobs = { | ||||
|         inherit (self.legacyPackages.${system}.bsc-ci) tests pkgs cross; | ||||
|       }; | ||||
| 
 | ||||
|       # propagate nixpkgs lib, so we can do bscpkgs.lib | ||||
|       inherit (nixpkgs) lib; | ||||
|     }; | ||||
| } | ||||
|  | ||||
| @ -1,9 +0,0 @@ | ||||
| let | ||||
|   commit = "e4ad989506ec7d71f7302cc3067abd82730a4beb"; | ||||
| in builtins.fetchTarball { | ||||
|     # Descriptive name to make the store path easier to identify | ||||
|     name = "nixpkgs-${commit}"; | ||||
|     url = "https://github.com/nixos/nixpkgs/archive/${commit}.tar.gz"; | ||||
|     # Hash obtained using `nix-prefetch-url --unpack <url>` | ||||
|     sha256 = "sha256-de9KYi8rSJpqvBfNwscWdalIJXPo8NjdIZcEJum1mH0="; | ||||
| } | ||||
							
								
								
									
										113
									
								
								overlay.nix
									
									
									
									
									
								
							
							
						
						
									
										113
									
								
								overlay.nix
									
									
									
									
									
								
							| @ -6,9 +6,6 @@ with final.lib; | ||||
| let | ||||
|   callPackage = final.callPackage; | ||||
| 
 | ||||
|   mkDeps = name: pkgs: final.runCommand name { } | ||||
|     "printf '%s\n' ${toString (collect (x: x ? outPath) pkgs)} > $out"; | ||||
| 
 | ||||
|   bscPkgs = { | ||||
|     bench6 = callPackage ./pkgs/bench6/default.nix { }; | ||||
|     bigotes = callPackage ./pkgs/bigotes/default.nix { }; | ||||
| @ -21,7 +18,7 @@ let | ||||
|     gpi-2 = callPackage ./pkgs/gpi-2/default.nix { }; | ||||
|     intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { }; | ||||
|     jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { }; | ||||
|     #lmbench = callPackage ./pkgs/lmbench/default.nix { }; # Broken | ||||
|     lmbench = callPackage ./pkgs/lmbench/default.nix { }; | ||||
|     mcxx = callPackage ./pkgs/mcxx/default.nix { }; | ||||
|     nanos6 = callPackage ./pkgs/nanos6/default.nix { }; | ||||
|     nanos6Debug = final.nanos6.override { enableDebug = true; }; | ||||
| @ -49,56 +46,74 @@ let | ||||
|     wxparaver = callPackage ./pkgs/paraver/default.nix { }; | ||||
|   }; | ||||
| 
 | ||||
|   tests = rec { | ||||
|     #hwloc = callPackage ./test/bugs/hwloc.nix { }; # Broken, no /sys | ||||
|     #sigsegv = callPackage ./test/reproducers/sigsegv.nix { }; | ||||
|     hello-c = callPackage ./test/compilers/hello-c.nix { }; | ||||
|     hello-cpp = callPackage ./test/compilers/hello-cpp.nix { }; | ||||
|     lto = callPackage ./test/compilers/lto.nix { }; | ||||
|     asan = callPackage ./test/compilers/asan.nix { }; | ||||
|     intel2023-icx-c   = hello-c.override   { stdenv = final.intelPackages_2023.stdenv; }; | ||||
|     intel2023-icc-c   = hello-c.override   { stdenv = final.intelPackages_2023.stdenv-icc; }; | ||||
|     intel2023-icx-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv; }; | ||||
|     intel2023-icc-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv-icc; }; | ||||
|     intel2023-ifort   = callPackage ./test/compilers/hello-f.nix { | ||||
|       stdenv = final.intelPackages_2023.stdenv-ifort; | ||||
|     }; | ||||
|     clangOmpss2-lto   = lto.override       { stdenv = final.stdenvClangOmpss2Nanos6; }; | ||||
|     clangOmpss2-asan  = asan.override      { stdenv = final.stdenvClangOmpss2Nanos6; }; | ||||
|     clangOmpss2-task  = callPackage ./test/compilers/ompss2.nix { | ||||
|       stdenv = final.stdenvClangOmpss2Nanos6; | ||||
|     }; | ||||
|     clangNodes-task = callPackage ./test/compilers/ompss2.nix { | ||||
|       stdenv = final.stdenvClangOmpss2Nodes; | ||||
|     }; | ||||
|     clangNosvOpenmp-task = callPackage ./test/compilers/clang-openmp.nix { | ||||
|       stdenv = final.stdenvClangOmpss2Nodes; | ||||
|     }; | ||||
|     clangNosvOmpv-nosv = callPackage ./test/compilers/clang-openmp-nosv.nix { | ||||
|       stdenv = final.stdenvClangOmpss2NodesOmpv; | ||||
|     }; | ||||
|     clangNosvOmpv-ld = callPackage ./test/compilers/clang-openmp-ld.nix { | ||||
|       stdenv = final.stdenvClangOmpss2NodesOmpv; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   pkgs = filterAttrs (_: isDerivation) bscPkgs; | ||||
| 
 | ||||
|   crossTargets = [ "riscv64" ]; | ||||
|   cross = prev.lib.genAttrs crossTargets (target: | ||||
|     final.pkgsCross.${target}.bsc-ci.pkgs | ||||
|   ); | ||||
| 
 | ||||
|   buildList = name: paths: | ||||
|     final.runCommandLocal name { } '' | ||||
|       printf '%s\n' ${toString paths} | tee $out | ||||
|     ''; | ||||
| 
 | ||||
|   buildList' = name: paths: | ||||
|     final.runCommandLocal name { } '' | ||||
|       deps="${toString paths}" | ||||
|       cat $deps | ||||
|       printf '%s\n' $deps >$out | ||||
|     ''; | ||||
| 
 | ||||
|   crossList = builtins.mapAttrs (t: v: buildList t (builtins.attrValues v)) cross; | ||||
| 
 | ||||
|   pkgsList = buildList "ci-pkgs" (builtins.attrValues pkgs); | ||||
|   testList = buildList "ci-tests" (collect isDerivation tests); | ||||
| 
 | ||||
|   all = buildList' "ci-all" [ pkgsList testList ]; | ||||
| 
 | ||||
| in bscPkgs // { | ||||
|   # Prevent accidental usage of bsc attribute | ||||
|   bsc = throw "the bsc attribute is deprecated, packages are now in the root"; | ||||
| 
 | ||||
|   # Internal for our CI tests | ||||
|   bsc-ci = { | ||||
|     test = rec { | ||||
|       #hwloc = callPackage ./test/bugs/hwloc.nix { }; # Broken, no /sys | ||||
|       #sigsegv = callPackage ./test/reproducers/sigsegv.nix { }; | ||||
|       hello-c = callPackage ./test/compilers/hello-c.nix { }; | ||||
|       hello-cpp = callPackage ./test/compilers/hello-cpp.nix { }; | ||||
|       lto = callPackage ./test/compilers/lto.nix { }; | ||||
|       asan = callPackage ./test/compilers/asan.nix { }; | ||||
|       intel2023-icx-c   = hello-c.override   { stdenv = final.intelPackages_2023.stdenv; }; | ||||
|       intel2023-icc-c   = hello-c.override   { stdenv = final.intelPackages_2023.stdenv-icc; }; | ||||
|       intel2023-icx-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv; }; | ||||
|       intel2023-icc-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv-icc; }; | ||||
|       intel2023-ifort   = callPackage ./test/compilers/hello-f.nix { | ||||
|         stdenv = final.intelPackages_2023.stdenv-ifort; | ||||
|       }; | ||||
|       clangOmpss2-lto   = lto.override       { stdenv = final.stdenvClangOmpss2Nanos6; }; | ||||
|       clangOmpss2-asan  = asan.override      { stdenv = final.stdenvClangOmpss2Nanos6; }; | ||||
|       clangOmpss2-task  = callPackage ./test/compilers/ompss2.nix { | ||||
|         stdenv = final.stdenvClangOmpss2Nanos6; | ||||
|       }; | ||||
|       clangNodes-task = callPackage ./test/compilers/ompss2.nix { | ||||
|         stdenv = final.stdenvClangOmpss2Nodes; | ||||
|       }; | ||||
|       clangNosvOpenmp-task = callPackage ./test/compilers/clang-openmp.nix { | ||||
|         stdenv = final.stdenvClangOmpss2Nodes; | ||||
|       }; | ||||
|       clangNosvOmpv-nosv = callPackage ./test/compilers/clang-openmp-nosv.nix { | ||||
|         stdenv = final.stdenvClangOmpss2NodesOmpv; | ||||
|       }; | ||||
|       clangNosvOmpv-ld = callPackage ./test/compilers/clang-openmp-ld.nix { | ||||
|         stdenv = final.stdenvClangOmpss2NodesOmpv; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     pkgs = final.runCommand "ci-pkgs" { } | ||||
|       "printf '%s\n' ${toString (collect isDerivation bscPkgs)} > $out"; | ||||
| 
 | ||||
|     tests = final.runCommand "ci-tests" { } | ||||
|       "printf '%s\n' ${toString (collect isDerivation final.bsc-ci.test)} > $out"; | ||||
| 
 | ||||
|     all = final.runCommand "ci-all" { } | ||||
|     '' | ||||
|       deps="${toString [ final.bsc-ci.pkgs final.bsc-ci.tests ]}" | ||||
|       cat $deps | ||||
|       printf '%s\n' $deps > $out | ||||
|     ''; | ||||
|     inherit pkgs pkgsList; | ||||
|     inherit tests testList; | ||||
|     inherit cross crossList; | ||||
|     inherit all; | ||||
|   }; | ||||
| } | ||||
|  | ||||
| @ -1,14 +1,20 @@ | ||||
| { | ||||
|   stdenv | ||||
| , bigotes | ||||
| , cmake | ||||
| , clangOmpss2 | ||||
| , openmp | ||||
| , openmpv | ||||
| , nanos6 | ||||
| , nodes | ||||
| , nosv | ||||
| , mpi | ||||
| , tampi | ||||
| , openblas | ||||
| , ovni | ||||
| , gitBranch ? "master" | ||||
| , gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git" | ||||
| , gitCommit ? "1e6ce2aa8ad7b4eef38df1581d7ec48a8815f85d" | ||||
| , gitCommit ? "bf29a53113737c3aa74d2fe3d55f59868faea7b4" | ||||
| }: | ||||
| 
 | ||||
| stdenv.mkDerivation rec { | ||||
| @ -21,9 +27,31 @@ stdenv.mkDerivation rec { | ||||
|     rev = gitCommit; | ||||
|   }; | ||||
| 
 | ||||
|   buildInputs = [ cmake clangOmpss2 nanos6 nodes mpi tampi ]; | ||||
|   nativeBuildInputs = [ | ||||
|     cmake | ||||
|     clangOmpss2 | ||||
|   ]; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|     bigotes | ||||
|     openmp | ||||
|     openmpv | ||||
|     nanos6 | ||||
|     nodes | ||||
|     nosv | ||||
|     mpi | ||||
|     tampi | ||||
|     openblas | ||||
|     openblas.dev | ||||
|     ovni | ||||
|   ]; | ||||
| 
 | ||||
|   env = { | ||||
|     NANOS6_HOME = nanos6; | ||||
|     NODES_HOME = nodes; | ||||
|     NOSV_HOME = nosv; | ||||
|   }; | ||||
| 
 | ||||
|   enableParallelBuilding = false; | ||||
|   cmakeFlags = [ | ||||
|     "-DCMAKE_C_COMPILER=clang" | ||||
|     "-DCMAKE_CXX_COMPILER=clang++" | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
| , cmake | ||||
| }: | ||||
| 
 | ||||
| stdenv.mkDerivation rec { | ||||
| stdenv.mkDerivation { | ||||
|   pname = "bigotes"; | ||||
|   version = "9dce13"; | ||||
|   src = fetchFromGitHub { | ||||
| @ -13,5 +13,5 @@ stdenv.mkDerivation rec { | ||||
|     rev = "9dce13446a8da30bea552d569d260d54e0188518"; | ||||
|     sha256 = "sha256-ktxM3pXiL8YXSK+/IKWYadijhYXqGoLY6adLk36iigE="; | ||||
|   }; | ||||
|   buildInputs = [ cmake ]; | ||||
|   nativeBuildInputs = [ cmake ]; | ||||
| } | ||||
|  | ||||
| @ -34,6 +34,8 @@ stdenv.mkDerivation rec { | ||||
| 
 | ||||
|   enableParallelBuilding = true; | ||||
| 
 | ||||
|   patches = [ ./rdma-core.patch ./max-mem.patch ]; | ||||
| 
 | ||||
|   preConfigure = '' | ||||
|     patchShebangs autogen.sh | ||||
|     ./autogen.sh | ||||
|  | ||||
							
								
								
									
										10
									
								
								pkgs/gpi-2/max-mem.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								pkgs/gpi-2/max-mem.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | ||||
| --- a/tests/tests/segments/max_mem.c	2025-09-12 13:30:53.449353591 +0200
 | ||||
| +++ b/tests/tests/segments/max_mem.c	2025-09-12 13:33:49.750352401 +0200
 | ||||
| @@ -1,5 +1,7 @@
 | ||||
|  #include <test_utils.h> | ||||
|   | ||||
| +gaspi_size_t gaspi_get_system_mem (void);
 | ||||
| +
 | ||||
|  /* Test allocates 45% of system memory and creates a segment that | ||||
|     large or if several ranks per node exist, divided among that | ||||
|     number */ | ||||
							
								
								
									
										12
									
								
								pkgs/gpi-2/rdma-core.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								pkgs/gpi-2/rdma-core.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| --- a/src/devices/ib/GPI2_IB.h	2025-09-12 13:25:31.564181121 +0200
 | ||||
| +++ b/src/devices/ib/GPI2_IB.h	2025-09-12 13:24:49.105422150 +0200
 | ||||
| @@ -26,6 +26,9 @@ along with GPI-2. If not, see <http://ww
 | ||||
|   | ||||
|  #include "GPI2_Dev.h" | ||||
|   | ||||
| +/* Missing prototype as driver.h is now private */
 | ||||
| +int ibv_read_sysfs_file(const char *dir, const char *file, char *buf, size_t size);
 | ||||
| +
 | ||||
|  #define GASPI_GID_INDEX   (0) | ||||
|  #define PORT_LINK_UP      (5) | ||||
|  #define MAX_INLINE_BYTES  (128) | ||||
| @ -1,6 +1,5 @@ | ||||
| { stdenv | ||||
| , fetchurl | ||||
| , ncurses | ||||
| , lib | ||||
| , dpkg | ||||
| , rsync | ||||
| @ -10,12 +9,9 @@ | ||||
| , hwloc | ||||
| , zlib | ||||
| , autoPatchelfHook | ||||
| , symlinkJoin | ||||
| , libfabric | ||||
| , gcc | ||||
| , gcc7 | ||||
| , gcc13 | ||||
| , wrapCCWith | ||||
| , linuxHeaders | ||||
| }: | ||||
| 
 | ||||
| # The distribution of intel packages is a mess. We are doing the installation | ||||
| @ -30,6 +26,8 @@ | ||||
| 
 | ||||
| let | ||||
| 
 | ||||
|   gcc = gcc13; | ||||
| 
 | ||||
|   v = { | ||||
|     hpckit   = "2023.1.0"; | ||||
|     compiler = "2023.1.0"; | ||||
| @ -80,7 +78,7 @@ let | ||||
|   uncompressDebs = debs: name: stdenv.mkDerivation { | ||||
|     name = name; | ||||
|     srcs = debs; | ||||
|     buildInputs = [ dpkg ]; | ||||
|     nativeBuildInputs = [ dpkg ]; | ||||
|     phases = [ "installPhase" ]; | ||||
|     installPhase = '' | ||||
|       mkdir -p $out | ||||
| @ -110,14 +108,17 @@ let | ||||
|       "intel-oneapi-mpi-${version}" | ||||
|     ]; | ||||
| 
 | ||||
|     buildInputs = [ | ||||
|     nativeBuildInputs = [ | ||||
|       autoPatchelfHook | ||||
|       rsync | ||||
|     ]; | ||||
| 
 | ||||
|     buildInputs = [ | ||||
|       libfabric | ||||
|       zlib | ||||
|       stdenv.cc.cc.lib | ||||
|     ]; | ||||
| 
 | ||||
|     nativeBuildInputs = [ autoPatchelfHook ]; | ||||
|     phases = [ "installPhase" "fixupPhase" ]; | ||||
|     dontStrip = true; | ||||
|     installPhase = '' | ||||
| @ -156,7 +157,6 @@ let | ||||
| 
 | ||||
|     buildInputs = [ | ||||
|       intel-mpi | ||||
|       rsync | ||||
|       libffi_3_3 | ||||
|       libelf | ||||
|       libxml2 | ||||
| @ -164,7 +164,10 @@ let | ||||
|       stdenv.cc.cc.lib | ||||
|     ]; | ||||
| 
 | ||||
|     nativeBuildInputs = [ autoPatchelfHook ]; | ||||
|     nativeBuildInputs = [ | ||||
|       autoPatchelfHook | ||||
|       rsync | ||||
|     ]; | ||||
|     phases = [ "installPhase" "fixupPhase" ]; | ||||
|     dontStrip = true; | ||||
| 
 | ||||
| @ -194,7 +197,6 @@ let | ||||
|     buildInputs = [ | ||||
|       intel-mpi | ||||
|       intel-tbb | ||||
|       rsync | ||||
|       libffi_3_3 | ||||
|       libelf | ||||
|       libxml2 | ||||
| @ -203,7 +205,10 @@ let | ||||
|       stdenv.cc.cc.lib | ||||
|     ]; | ||||
| 
 | ||||
|     nativeBuildInputs = [ autoPatchelfHook ]; | ||||
|     nativeBuildInputs = [ | ||||
|       autoPatchelfHook | ||||
|       rsync | ||||
|     ]; | ||||
|     phases = [ "installPhase" "fixupPhase" ]; | ||||
|     dontStrip = true; | ||||
| 
 | ||||
| @ -256,7 +261,6 @@ let | ||||
|     buildInputs = [ | ||||
|       intel-mpi | ||||
|       intel-compiler-shared | ||||
|       rsync | ||||
|       libffi_3_3 | ||||
|       libelf | ||||
|       libxml2 | ||||
| @ -264,7 +268,10 @@ let | ||||
|       stdenv.cc.cc.lib | ||||
|     ]; | ||||
| 
 | ||||
|     nativeBuildInputs = [ autoPatchelfHook ]; | ||||
|     nativeBuildInputs = [ | ||||
|       autoPatchelfHook | ||||
|       rsync | ||||
|     ]; | ||||
| 
 | ||||
|     phases = [ "installPhase" "fixupPhase" ]; | ||||
| 
 | ||||
| @ -314,6 +321,7 @@ let | ||||
|       "intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-${version}" | ||||
|       "intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-${version}" | ||||
|     ]; | ||||
|     dontCheckForBrokenSymlinks = true; | ||||
|     # From https://aur.archlinux.org/packages/intel-oneapi-compiler: | ||||
|     # - intel-oneapi-compiler-cpp-eclipse-cfg-2023.0.0-25370_all.deb | ||||
|     # + intel-oneapi-compiler-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb | ||||
| @ -338,7 +346,6 @@ let | ||||
| 
 | ||||
|     buildInputs = [ | ||||
|       intel-compiler-shared | ||||
|       rsync | ||||
|       libffi_3_3 | ||||
|       libelf | ||||
|       libxml2 | ||||
| @ -346,7 +353,10 @@ let | ||||
|       stdenv.cc.cc.lib | ||||
|     ]; | ||||
| 
 | ||||
|     nativeBuildInputs = [ autoPatchelfHook ]; | ||||
|     nativeBuildInputs = [ | ||||
|       autoPatchelfHook | ||||
|       rsync | ||||
|     ]; | ||||
|     autoPatchelfIgnoreMissingDeps = [ "libtbb.so.12" "libtbbmalloc.so.2" "libze_loader.so.1" ]; | ||||
| 
 | ||||
|     phases = [ "installPhase" "fixupPhase" ]; | ||||
| @ -399,7 +409,9 @@ let | ||||
|         echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags | ||||
| 
 | ||||
|         # Need the gcc in the path | ||||
|         echo 'export "PATH=${mygcc}/bin:$PATH"' >> $out/nix-support/cc-wrapper-hook | ||||
|         # 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="${mygcc}/bin:$path_backup"' >> $out/nix-support/cc-wrapper-hook | ||||
| 
 | ||||
|         # Disable hardening by default | ||||
|         echo "" > $out/nix-support/add-hardening.sh | ||||
|  | ||||
| @ -16,19 +16,19 @@ | ||||
| , useGit ? false | ||||
| , gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git" | ||||
| , gitBranch ? "master" | ||||
| , gitCommit ? "8c0d267c04d7fc3fb923078f510fcd5f4719a6cc" | ||||
| , gitCommit ? "880e2341c56bad1dc14e8c369fb3356bec19018e" | ||||
| }: | ||||
| 
 | ||||
| let | ||||
|   stdenv = llvmPackages_latest.stdenv; | ||||
| 
 | ||||
|   release = rec { | ||||
|     version = "2024.11"; | ||||
|     version = "2025.06"; | ||||
|     src = fetchFromGitHub { | ||||
|       owner = "bsc-pm"; | ||||
|       repo = "llvm"; | ||||
|       rev = "refs/tags/github-release-${version}"; | ||||
|       hash = "sha256-pF0qa987nLkIJPUrXh1srzBkLPfb31skIegD0bl34Kg="; | ||||
|       hash = "sha256-ww9PpRmtz/M9IyLiZ8rAehx2UW4VpQt+svf4XfKBzKo="; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
| @ -43,32 +43,36 @@ let | ||||
| 
 | ||||
|   source = if (useGit) then git else release; | ||||
| 
 | ||||
| in stdenv.mkDerivation rec { | ||||
| in stdenv.mkDerivation { | ||||
|   pname = "clang-ompss2"; | ||||
|   inherit (source) src version; | ||||
| 
 | ||||
|   enableParallelBuilding = true; | ||||
|   isClang = true; | ||||
| 
 | ||||
|   passthru = { | ||||
|     CC = "clang"; | ||||
|     CXX = "clang++"; | ||||
| 
 | ||||
|     isClang = true; | ||||
|     isClangWithOmpss = true; | ||||
| 
 | ||||
|     inherit gcc zlib; | ||||
|   }; | ||||
| 
 | ||||
|   isClangWithOmpss = true; | ||||
| 
 | ||||
|   nativeBuildInputs = [ zlib ]; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|     which | ||||
|   nativeBuildInputs = [ | ||||
|     bash | ||||
|     cmake | ||||
|     elfutils | ||||
|     llvmPackages_latest.lld | ||||
|     pkg-config | ||||
|     python3 | ||||
|     perl | ||||
|     cmake | ||||
|     llvmPackages_latest.lld | ||||
|     elfutils | ||||
|     which | ||||
|     zlib | ||||
|   ]; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|     libffi | ||||
|     pkg-config | ||||
|     zlib | ||||
|     gcc.cc.lib # Required for libstdc++.so.6 | ||||
|   ]; | ||||
|  | ||||
| @ -9,12 +9,14 @@ | ||||
| , ompss2rt ? null | ||||
| }: | ||||
| 
 | ||||
| with lib; | ||||
| 
 | ||||
| let | ||||
|   usingNodesAndOmpv = (openmp.pname == "openmp-v" && ompss2rt.pname == "nodes"); | ||||
|   sameNosv = openmp.nosv == ompss2rt.nosv; | ||||
| in | ||||
| 
 | ||||
| assert lib.assertMsg (usingNodesAndOmpv -> sameNosv) "OpenMP-V and NODES must share the same nOS-V"; | ||||
| assert assertMsg (usingNodesAndOmpv -> sameNosv) "OpenMP-V and NODES must share the same nOS-V"; | ||||
| 
 | ||||
| let | ||||
|   homevar = if ompss2rt.pname == "nanos6" then "NANOS6_HOME" else "NODES_HOME"; | ||||
| @ -34,14 +36,15 @@ let | ||||
|   targetConfig = stdenv.targetPlatform.config; | ||||
|   inherit gcc; | ||||
|   cc = clangOmpss2Unwrapped; | ||||
|   gccVersion = with versions; let v = gcc.version; in concatStringsSep "." [(major v) (minor v) (patch v)]; | ||||
| in wrapCCWith { | ||||
|   inherit cc bintools; | ||||
|   # extraPackages adds packages to depsTargetTargetPropagated | ||||
|   extraPackages = lib.optional (openmp != null) openmp; | ||||
|   extraPackages = optional (openmp != null) openmp; | ||||
|   extraBuildCommands = '' | ||||
|     echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags | ||||
|     echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags | ||||
|     echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags | ||||
|     echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-cflags | ||||
|     echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-ldflags | ||||
|     echo "-L${gcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags | ||||
| 
 | ||||
|     for dir in ${gcc.cc}/include/c++/*; do | ||||
| @ -55,12 +58,12 @@ in wrapCCWith { | ||||
| 
 | ||||
|     wrap clang++  $wrapper $ccPath/clang++ | ||||
| 
 | ||||
|   '' + lib.optionalString (openmp != null) '' | ||||
|   '' + optionalString (openmp != null) '' | ||||
|     echo "export OPENMP_RUNTIME=${ompname}" >> $out/nix-support/cc-wrapper-hook | ||||
|   '' + lib.optionalString (ompss2rt != null) '' | ||||
|   '' + optionalString (ompss2rt != null) '' | ||||
|     echo "export OMPSS2_RUNTIME=${rtname}" >> $out/nix-support/cc-wrapper-hook | ||||
|     echo "export ${homevar}=${ompss2rt}"   >> $out/nix-support/cc-wrapper-hook | ||||
|   '' + lib.optionalString (ompss2rt != null && ompss2rt.pname == "nodes") '' | ||||
|   '' + optionalString (ompss2rt != null && ompss2rt.pname == "nodes") '' | ||||
|     echo "export NOSV_HOME=${ompss2rt.nosv}" >> $out/nix-support/cc-wrapper-hook | ||||
|   ''; | ||||
| } | ||||
|  | ||||
| @ -68,6 +68,7 @@ stdenv.mkDerivation rec { | ||||
|     rm -f $out/lib/libiomp* | ||||
|   '' + lib.optionalString enableNosv '' | ||||
|     rm -f $out/lib/libomp.* | ||||
|     rm -f $out/libllvmrt/libomp.* | ||||
|   ''; | ||||
| 
 | ||||
|   passthru = { | ||||
|  | ||||
| @ -1,35 +1,41 @@ | ||||
| { | ||||
|   lib, | ||||
|   stdenv, | ||||
|   libtirpc, | ||||
|   fetchFromGitHub | ||||
| }: | ||||
| 
 | ||||
| stdenv.mkDerivation rec { | ||||
|   pname = "lmbench"; | ||||
|   version = "701c6c35"; | ||||
|   version = "941a0dcc"; | ||||
| 
 | ||||
|   # We use the intel repo as they have fixed some problems | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "intel"; | ||||
|     repo = pname; | ||||
|     rev = "701c6c35b0270d4634fb1dc5272721340322b8ed"; | ||||
|     sha256 = "0sf6zk03knkardsfd6qx7drpm56nhg53n885cylkggk83r38idyr"; | ||||
|     rev = "941a0dcc0e7bdd9bb0dee05d7f620e77da8c43af"; | ||||
|     sha256 = "sha256-SzwplRBO3V0R3m3p15n71ivYBMGoLsajFK2TapYxdqk="; | ||||
|   }; | ||||
| 
 | ||||
|   postUnpack = '' | ||||
|     export sourceRoot="$sourceRoot/src" | ||||
|   ''; | ||||
| 
 | ||||
|   postPatch = '' | ||||
|     sed -i "s@/bin/rm@rm@g" $(find . -name Makefile) | ||||
|   ''; | ||||
| 
 | ||||
|   buildInputs = [ libtirpc ]; | ||||
|   patches = [ ./fix-install.patch ./gcc-14.patch ]; | ||||
| 
 | ||||
|   hardeningDisable = [ "all" ]; | ||||
| 
 | ||||
|   enableParallelBuilding = false; | ||||
| 
 | ||||
|   preBuild = '' | ||||
|     makeFlagsArray+=(BASE=$out) | ||||
|     makeFlagsArray+=( | ||||
|       -C src | ||||
|       BASE=$out | ||||
|       CFLAGS=-Wno-implicit-int | ||||
|       CPPFLAGS=-I${libtirpc.dev}/include/tirpc | ||||
|       LDFLAGS=-ltirpc | ||||
|     ) | ||||
|   ''; | ||||
| 
 | ||||
|   meta = { | ||||
|  | ||||
							
								
								
									
										10
									
								
								pkgs/lmbench/fix-install.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								pkgs/lmbench/fix-install.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | ||||
| --- a/src/Makefile
 | ||||
| +++ b/src/Makefile
 | ||||
| @@ -144,6 +144,7 @@ install-target:
 | ||||
|  	if [ ! -d $(BASE)/include ]; then mkdir $(BASE)/include; fi | ||||
|  	if [ ! -d $(BASE)/lib ]; then mkdir $(BASE)/lib; fi | ||||
|  	cp $(EXES) $(BASE)/bin | ||||
| +	cp $(OPT_EXES) $(BASE)/bin
 | ||||
|  	cp $(INCS) $(BASE)/include | ||||
|  	cp $O/lmbench.a $(BASE)/lib/libmbench.a | ||||
|  	cd ../doc; env MAKEFLAGS="$(MAKEFLAGS)" make CC="${CC}" OS="${OS}" BASE="$(BASE)" install | ||||
							
								
								
									
										77
									
								
								pkgs/lmbench/gcc-14.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								pkgs/lmbench/gcc-14.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,77 @@ | ||||
| From a3c6e7d303cd8368e8d4e35be7cbc1997e801257 Mon Sep 17 00:00:00 2001 | ||||
| From: Rodrigo Arias Mallo <rodrigo.arias@bsc.es> | ||||
| Date: Mon, 21 Jul 2025 17:38:58 +0200 | ||||
| Subject: [PATCH] Misc fixes to build with gcc 14 | ||||
| 
 | ||||
| ---
 | ||||
|  src/bench.h      | 2 ++ | ||||
|  src/lat_select.c | 2 +- | ||||
|  src/lib_debug.c  | 1 + | ||||
|  src/lib_sched.c  | 2 +- | ||||
|  src/lib_timing.c | 2 +- | ||||
|  5 files changed, 6 insertions(+), 3 deletions(-) | ||||
| 
 | ||||
| diff --git a/src/bench.h b/src/bench.h
 | ||||
| index 8166408..4da9079 100644
 | ||||
| --- a/src/bench.h
 | ||||
| +++ b/src/bench.h
 | ||||
| @@ -320,4 +320,6 @@ extern int handle_scheduler(int childno, int benchproc, int nbenchprocs);
 | ||||
|  extern char *rpc_xact_1(); | ||||
|  extern char *client_rpc_xact_1(); | ||||
|   | ||||
| +void lmbench_usage(int argc, char *argv[], char* usage);
 | ||||
| +
 | ||||
|  #endif /* _BENCH_H */ | ||||
| diff --git a/src/lat_select.c b/src/lat_select.c
 | ||||
| index 583b505..39df369 100644
 | ||||
| --- a/src/lat_select.c
 | ||||
| +++ b/src/lat_select.c
 | ||||
| @@ -164,7 +164,7 @@ doit(iter_t iterations, void * cookie)
 | ||||
|  	state_t * 	state = (state_t *)cookie; | ||||
|  	fd_set		nosave; | ||||
|  	static struct timeval tv; | ||||
| -	static count = 0;
 | ||||
| +	static int count = 0;
 | ||||
|  	 | ||||
|  	tv.tv_sec = 0; | ||||
|  	tv.tv_usec = 0; | ||||
| diff --git a/src/lib_debug.c b/src/lib_debug.c
 | ||||
| index e8347dd..cf65312 100644
 | ||||
| --- a/src/lib_debug.c
 | ||||
| +++ b/src/lib_debug.c
 | ||||
| @@ -1,5 +1,6 @@
 | ||||
|  #include "bench.h" | ||||
|  #include "lib_debug.h" | ||||
| +#include <math.h>
 | ||||
|   | ||||
|  /* | ||||
|   * return micro-seconds / iteration at the the fraction point. | ||||
| diff --git a/src/lib_sched.c b/src/lib_sched.c
 | ||||
| index aa83ae0..4f16bbf 100644
 | ||||
| --- a/src/lib_sched.c
 | ||||
| +++ b/src/lib_sched.c
 | ||||
| @@ -91,7 +91,7 @@ handle_scheduler(int childno, int benchproc, int nbenchprocs)
 | ||||
|  			     childno * (nbenchprocs + 1) + benchproc); | ||||
|  	} else { | ||||
|  		/* default action: do nothing */ | ||||
| -		return;
 | ||||
| +		return 0;
 | ||||
|  	} | ||||
|   | ||||
|  	return sched_pin(cpu % sched_ncpus()); | ||||
| diff --git a/src/lib_timing.c b/src/lib_timing.c
 | ||||
| index af8cf68..7ec9652 100644
 | ||||
| --- a/src/lib_timing.c
 | ||||
| +++ b/src/lib_timing.c
 | ||||
| @@ -1623,7 +1623,7 @@ bread(void* buf, long nbytes)
 | ||||
|  void | ||||
|  touch(char *buf, int nbytes) | ||||
|  { | ||||
| -	static	psize;
 | ||||
| +	static int psize;
 | ||||
|   | ||||
|  	if (!psize) { | ||||
|  		psize = getpagesize(); | ||||
| -- 
 | ||||
| 2.49.0 | ||||
| 
 | ||||
| @ -32,19 +32,22 @@ stdenv.mkDerivation rec { | ||||
| 
 | ||||
|   enableParallelBuilding = true; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|   nativeBuildInputs = [ | ||||
|     autoreconfHook | ||||
|     nanos6 | ||||
|     gperf | ||||
|     bison | ||||
|     flex | ||||
|     python3 | ||||
|     gfortran | ||||
|     pkg-config | ||||
|     sqlite.dev | ||||
|     bison | ||||
|     flex | ||||
|     gperf | ||||
|     gcc | ||||
|   ]; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|     nanos6 | ||||
|     sqlite.dev | ||||
|   ]; | ||||
| 
 | ||||
|   patches = [ ./intel.patch ]; | ||||
| 
 | ||||
|   preConfigure = '' | ||||
|  | ||||
| @ -19,7 +19,7 @@ | ||||
| , useGit ? false | ||||
| , gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6" | ||||
| , gitBranch ? "master" | ||||
| , gitCommit ? "9f54c988e0a8b9c011d9d526acdb8d76f18fcae4" | ||||
| , gitCommit ? "f82762b66c82b5174a8eaad33f6c2f335ac759b4" | ||||
| }: | ||||
| 
 | ||||
| assert enableJemalloc -> (jemallocNanos6 != null); | ||||
| @ -28,12 +28,12 @@ with lib; | ||||
| 
 | ||||
| let | ||||
|   release = rec { | ||||
|     version = "4.2"; | ||||
|     version = "4.3"; | ||||
|     src = fetchFromGitHub { | ||||
|       owner = "bsc-pm"; | ||||
|       repo = "nanos6"; | ||||
|       rev = "version-${version}"; | ||||
|       hash = "sha256-tBrRGLCjSFYdmVGPAC2DzYY6HJyZGUOMeykujafn7+4="; | ||||
|       hash = "sha256-/c6WiKBsAo/01uvMRmjv0PMucbrgvaGmbxlPE6q+dfE="; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
| @ -88,11 +88,19 @@ in | ||||
|     dontStrip = enableDebug; | ||||
|     separateDebugInfo = true; | ||||
| 
 | ||||
|     buildInputs = [ | ||||
|     nativeBuildInputs = [ | ||||
|       autoconf | ||||
|       automake | ||||
|       libtool | ||||
|       pkg-config | ||||
| 
 | ||||
|       # TODO: papi_version is needed for configure: | ||||
|       # ./configure: line 27378: papi_version: command not found | ||||
|       # This probably breaks cross-compilation | ||||
|       papi | ||||
|     ]; | ||||
| 
 | ||||
|     buildInputs = [ | ||||
|       boost | ||||
|       numactl | ||||
|       hwloc | ||||
| @ -104,7 +112,7 @@ in | ||||
|     postInstall = '' | ||||
|       mkdir -p $out/nix-support | ||||
|       echo "export NANOS6_HOME=$out" >> $out/nix-support/setup-hook | ||||
|     '';  | ||||
|     ''; | ||||
| 
 | ||||
|     meta = with lib; { | ||||
|       homepage = "https://github.com/bsc-pm/nanos6"; | ||||
|  | ||||
| @ -6,24 +6,26 @@ | ||||
| , pkg-config | ||||
| , numactl | ||||
| , hwloc | ||||
| , papi | ||||
| , enablePapi ? true | ||||
| , cacheline ? 64 # bits | ||||
| , ovni ? null | ||||
| , useGit ? false | ||||
| , gitUrl ? "git@gitlab-internal.bsc.es:nos-v/nos-v.git" | ||||
| , gitBranch ? "master" | ||||
| , gitCommit ? "cfd361bd1dd30c96da405e6bbaa7e78f5f93dfda" | ||||
| , gitCommit ? "9f47063873c3aa9d6a47482a82c5000a8c813dd8" | ||||
| }: | ||||
| 
 | ||||
| with lib; | ||||
| 
 | ||||
| let | ||||
|   release = rec { | ||||
|     version = "3.1.0"; | ||||
|     version = "3.2.0"; | ||||
|     src = fetchFromGitHub { | ||||
|       owner = "bsc-pm"; | ||||
|       repo = "nos-v"; | ||||
|       rev = "${version}"; | ||||
|       hash = "sha256-Pkre+ZZsREDxJLCoIoPN1HQDuUa2H1IQyKB3omg6qaU="; | ||||
|       hash = "sha256-yaz92426EM8trdkBJlISmAoG9KJCDTvoAW/HKrasvOw="; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
| @ -56,5 +58,5 @@ in | ||||
|       numactl | ||||
|       hwloc | ||||
|       ovni | ||||
|     ]; | ||||
|     ] ++ lib.optionals enablePapi [ papi ]; | ||||
|   } | ||||
|  | ||||
| @ -24,9 +24,10 @@ stdenv.mkDerivation rec { | ||||
| 
 | ||||
|   doCheck = true; | ||||
|   enableParallelBuilding = true; | ||||
|   nativeBuildInputs = [ mpiAll ]; | ||||
|   buildInputs = [ mpiAll ]; | ||||
|   hardeningDisable = [ "all" ]; | ||||
|   configureFlags = [  | ||||
|   configureFlags = [ | ||||
|       "CC=mpicc" | ||||
|       "CXX=mpicxx" | ||||
|   ]; | ||||
| @ -40,7 +41,7 @@ stdenv.mkDerivation rec { | ||||
| 
 | ||||
|   meta = { | ||||
|     description = "OSU Micro-Benchmarks"; | ||||
|     homepage = http://mvapich.cse.ohio-state.edu/benchmarks/; | ||||
|     homepage = "http://mvapich.cse.ohio-state.edu/benchmarks/"; | ||||
|     maintainers = [ ]; | ||||
|     platforms = lib.platforms.all; | ||||
|   }; | ||||
|  | ||||
| @ -7,23 +7,21 @@ | ||||
| , useGit ? false | ||||
| , gitBranch ? "master" | ||||
| , gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git" | ||||
| , gitCommit ? "a7103f8510d1ec124c3e01ceb47d1e443e98bbf4" | ||||
| , gitCommit ? "e4f62382076f0cf0b1d08175cf57cc0bc51abc61" | ||||
| , enableDebug ? false | ||||
| # Only enable MPI if the build is native (fails on cross-compilation) | ||||
| , useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform) | ||||
| }: | ||||
| 
 | ||||
| with lib; | ||||
| 
 | ||||
| let | ||||
|   release = rec { | ||||
|     version = "1.11.0"; | ||||
|     version = "1.12.0"; | ||||
|     src = fetchFromGitHub { | ||||
|       owner = "bsc-pm"; | ||||
|       repo = "ovni"; | ||||
|       rev = "${version}"; | ||||
|       hash = "sha256-DEZUK1dvbPGH5WYkZ2hpP5PShkMxXkHOqMwgYUHHxeM="; | ||||
|     } // { shortRev = "a7103f8"; }; | ||||
|       hash = "sha256-H04JvsVKrdqr3ON7JhU0g17jjlg/jzQ7eTfx9vUNd3E="; | ||||
|     } // { shortRev = "a73afcf"; }; | ||||
|   }; | ||||
| 
 | ||||
|   git = rec { | ||||
| @ -45,7 +43,7 @@ in | ||||
|     postPatch = '' | ||||
|       patchShebangs --build test/ | ||||
|     ''; | ||||
|     nativeBuildInputs = [ cmake ]; | ||||
|     nativeBuildInputs = [ cmake ] ++ lib.optionals (useMpi) [ mpi ]; | ||||
|     buildInputs = lib.optionals (useMpi) [ mpi ]; | ||||
|     cmakeBuildType = if (enableDebug) then "Debug" else "Release"; | ||||
|     cmakeFlags = [ | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| { | ||||
|   stdenv | ||||
| , fetchFromGitHub | ||||
| , autoreconfHook | ||||
| , boost | ||||
| , libxml2 | ||||
| @ -18,14 +19,23 @@ let | ||||
| in | ||||
| stdenv.mkDerivation rec { | ||||
|   pname = "wxparaver"; | ||||
|   version = "4.11.2"; | ||||
|   version = "4.12.0"; | ||||
| 
 | ||||
|   src = builtins.fetchGit { | ||||
|     url = "https://github.com/bsc-performance-tools/wxparaver.git"; | ||||
|     rev = "129e6b4a4f061e5a319049db8db1620f5de3bd70"; # v4.11.2 (missing tag) | ||||
|     ref = "master"; | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "bsc-performance-tools"; | ||||
|     repo = "wxparaver"; | ||||
|     rev = "v${version}"; | ||||
|     sha256 = "sha256-YsO5gsuEFQdki3lQudEqgo5WXOt/fPdvNw5OxZQ86Zo="; | ||||
|   }; | ||||
| 
 | ||||
|   patches = [ | ||||
|     ./do-not-steal-focus-on-redraw.patch | ||||
| 
 | ||||
|     # Fix for boost >=1.87 (thanks to gamezelda) | ||||
|     # https://aur.archlinux.org/cgit/aur.git/commit/?h=wxparaver&id=b0dcd08c472536e0a1a3cc1dfbc4c77d9f5e0d47 | ||||
|     ./fix-boost-87.patch | ||||
|   ]; | ||||
| 
 | ||||
|   hardeningDisable = [ "all" ]; | ||||
| 
 | ||||
|   # Fix the PARAVER_HOME variable | ||||
| @ -50,17 +60,17 @@ stdenv.mkDerivation rec { | ||||
|   ]; | ||||
| 
 | ||||
|   nativeBuildInputs = [ | ||||
|     autoconf | ||||
|     automake | ||||
|     autoreconfHook | ||||
|     wrapGAppsHook | ||||
|   ]; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|     autoreconfHook | ||||
|     boost | ||||
|     libxml2.dev | ||||
|     xml2 | ||||
|     wx | ||||
|     autoconf | ||||
|     automake | ||||
|     paraverKernel | ||||
|     openssl.dev | ||||
|   ]; | ||||
|  | ||||
							
								
								
									
										26
									
								
								pkgs/paraver/do-not-steal-focus-on-redraw.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								pkgs/paraver/do-not-steal-focus-on-redraw.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | ||||
| From 2b185e1b5ce52808b3026334851dbcd5a640ed4d Mon Sep 17 00:00:00 2001 | ||||
| From: aleixbonerib <aleix.boneribo@bsc.es> | ||||
| Date: Mon, 10 Jun 2024 20:59:45 +0200 | ||||
| Subject: [PATCH] fix: do not set focus on redraw | ||||
| 
 | ||||
| Some wm can change the window size without focusing. Right now, when the | ||||
| plot is resized it takes back focus. | ||||
| ---
 | ||||
|  src/gtimeline.cpp | 1 - | ||||
|  1 file changed, 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/src/gtimeline.cpp b/src/gtimeline.cpp
 | ||||
| index 23ebef2..a896066 100644
 | ||||
| --- a/src/gtimeline.cpp
 | ||||
| +++ b/src/gtimeline.cpp
 | ||||
| @@ -899,7 +899,6 @@ void gTimeline::redraw()
 | ||||
|   | ||||
|    drawZone->Refresh(); | ||||
|   | ||||
| -  SetFocus();
 | ||||
|  } | ||||
|   | ||||
|   | ||||
| -- 
 | ||||
| 2.44.1 | ||||
| 
 | ||||
| @ -11,7 +11,7 @@ diff --git a/api/semanticcolor.cpp b/api/semanticcolor.cpp | ||||
| index 9f86960..22859eb 100644
 | ||||
| --- a/api/semanticcolor.cpp
 | ||||
| +++ b/api/semanticcolor.cpp
 | ||||
| @@ -232,8 +232,9 @@ rgb CodeColor::getColor( PRV_UINT32 pos ) const
 | ||||
| @@ -295,8 +295,9 @@ rgb SemanticColor::getColor( PRV_UINT32 pos ) const
 | ||||
|  { | ||||
|    if( pos == 0 && ParaverConfig::getInstance()->getColorsTimelineUseZero() ) | ||||
|      return ParaverConfig::getInstance()->getColorsTimelineColorZero(); | ||||
| @ -22,26 +22,26 @@ index 9f86960..22859eb 100644 | ||||
| +  return colors[ pos + 1 ];
 | ||||
|  } | ||||
|   | ||||
|  void CodeColor::setColor( PRV_UINT32 whichPos, rgb whichColor ) | ||||
| @@ -250,6 +251,12 @@ void CodeColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
 | ||||
|  void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor ) | ||||
| @@ -314,6 +315,12 @@ void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
 | ||||
|    colors[ whichPos ] = whichColor; | ||||
|  } | ||||
|   | ||||
| +void CodeColor::cutAfter( PRV_UINT32 pos )
 | ||||
| +void SemanticColor::cutAfter( PRV_UINT32 pos )
 | ||||
| +{
 | ||||
| +  if ( pos < colors.size() )
 | ||||
| +    colors.erase( colors.begin() + pos, colors.end() );
 | ||||
| +}
 | ||||
| +
 | ||||
|  void CodeColor::setCustomColor( TSemanticValue whichValue, rgb color )  | ||||
|  void SemanticColor::setCustomColor( TSemanticValue whichValue, rgb color )  | ||||
|  { | ||||
|    customPalette[ whichValue ] = color; | ||||
| diff --git a/api/semanticcolor.h b/api/semanticcolor.h
 | ||||
| index a079556..bddf3d8 100644
 | ||||
| --- a/api/semanticcolor.h
 | ||||
| +++ b/api/semanticcolor.h
 | ||||
| @@ -98,6 +98,7 @@ class CodeColor: public SemanticColor
 | ||||
|   | ||||
| @@ -114,6 +114,7 @@ class SemanticColor
 | ||||
|      // Code Color methods | ||||
|      PRV_UINT32 getNumColors() const; | ||||
|      void setColor( PRV_UINT32 pos, rgb color ); | ||||
| +    void cutAfter( PRV_UINT32 pos );
 | ||||
| @ -61,7 +61,7 @@ index b0d2050..ee2ab69 100644 | ||||
|    for ( auto it : semanticColors ) | ||||
|    { | ||||
|      std::tie( tmpColor.red, tmpColor.green, tmpColor.blue ) = it.second; | ||||
|      myCodeColor.setColor( it.first, tmpColor ); | ||||
|      mySemanticColor.setColor( it.first, tmpColor ); | ||||
| +	if (it.first > maxValue)
 | ||||
| +      maxValue = it.first;
 | ||||
|    } | ||||
| @ -69,7 +69,7 @@ index b0d2050..ee2ab69 100644 | ||||
| +  // Cut the palette after the highest defined value, so there are no
 | ||||
| +  // extra expanded values
 | ||||
| +  if ( !pcfParser.expandColors )
 | ||||
| +	myCodeColor.cutAfter(maxValue);
 | ||||
| +	mySemanticColor.cutAfter(maxValue);
 | ||||
| +
 | ||||
|    myEventLabels = EventLabels( pcfParser ); | ||||
|    myStateLabels = StateLabels( pcfParser ); | ||||
|  | ||||
							
								
								
									
										87
									
								
								pkgs/paraver/fix-boost-87.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								pkgs/paraver/fix-boost-87.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,87 @@ | ||||
| From 7ecd888e2ebb9e8c5582851d3c50bff61022708e Mon Sep 17 00:00:00 2001 | ||||
| From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <joanbrugueram@gmail.com> | ||||
| Date: Sat, 29 Mar 2025 18:14:25 +0000 | ||||
| Subject: [PATCH] tutorialsdownload: Fix Boost ASIO 1.87.0 removals | ||||
| 
 | ||||
| ---
 | ||||
|  src/tutorialsdownload.cpp | 25 ++++++++++++------------- | ||||
|  1 file changed, 12 insertions(+), 13 deletions(-) | ||||
| 
 | ||||
| diff --git a/src/tutorialsdownload.cpp b/src/tutorialsdownload.cpp
 | ||||
| index a1921fd..6ce9dc2 100644
 | ||||
| --- a/src/tutorialsdownload.cpp
 | ||||
| +++ b/src/tutorialsdownload.cpp
 | ||||
| @@ -121,13 +121,13 @@ void TutorialsProgress::updateInstall( int whichValue )
 | ||||
|  class client | ||||
|  { | ||||
|    public: | ||||
| -    client( boost::asio::io_service& io_service,
 | ||||
| +    client( boost::asio::io_context& io_context,
 | ||||
|              boost::asio::ssl::context& context, | ||||
|              const std::string& server, const std::string& path, | ||||
|              ofstream& storeFile, | ||||
|              TutorialsProgress *progress ) | ||||
| -            : resolver_( io_service ),
 | ||||
| -              socket_( io_service, context ),
 | ||||
| +            : resolver_( io_context ),
 | ||||
| +              socket_( io_context, context ),
 | ||||
|                store_( storeFile ), | ||||
|                progress_( progress ) | ||||
|      { | ||||
| @@ -143,8 +143,7 @@ class client
 | ||||
|   | ||||
|          // Start an asynchronous resolve to translate the server and service names | ||||
|          // into a list of endpoints. | ||||
| -        tcp::resolver::query query( server, "https" );
 | ||||
| -        resolver_.async_resolve( query,
 | ||||
| +        resolver_.async_resolve( server, "https",
 | ||||
|                                   boost::bind( &client::handle_resolve, | ||||
|                                                this, | ||||
|                                                boost::asio::placeholders::error, | ||||
| @@ -154,7 +153,7 @@ class client
 | ||||
|    private: | ||||
|   | ||||
|      void handle_resolve( const boost::system::error_code& err, | ||||
| -                         tcp::resolver::iterator endpoint_iterator )
 | ||||
| +                         const tcp::resolver::results_type& endpoints )
 | ||||
|      { | ||||
|        if ( !err ) | ||||
|        { | ||||
| @@ -162,7 +161,7 @@ class client
 | ||||
|          socket_.set_verify_callback( boost::bind( &client::verify_certificate, this, _1, _2 ) ); | ||||
|   | ||||
|          boost::asio::async_connect( socket_.lowest_layer(),  | ||||
| -                                    endpoint_iterator,
 | ||||
| +                                    endpoints,
 | ||||
|                                      boost::bind( &client::handle_connect,  | ||||
|                                                   this, | ||||
|                                                   boost::asio::placeholders::error ) ); | ||||
| @@ -536,9 +535,9 @@ bool TutorialsDownload::downloadTutorialsList() const
 | ||||
|      boost::asio::ssl::context ctx( boost::asio::ssl::context::sslv23 ); | ||||
|      ctx.set_default_verify_paths(); | ||||
|   | ||||
| -    boost::asio::io_service io_service;
 | ||||
| -    client c( io_service, ctx, server, path, storeFile, nullptr );
 | ||||
| -    io_service.run();
 | ||||
| +    boost::asio::io_context io_context;
 | ||||
| +    client c( io_context, ctx, server, path, storeFile, nullptr );
 | ||||
| +    io_context.run();
 | ||||
|   | ||||
|      doneDownload = true; | ||||
|    } | ||||
| @@ -580,9 +579,9 @@ bool TutorialsDownload::download( const TutorialData& whichTutorial, string& tut
 | ||||
|      boost::asio::ssl::context ctx( boost::asio::ssl::context::sslv23 ); | ||||
|      ctx.set_default_verify_paths(); | ||||
|   | ||||
| -    boost::asio::io_service io_service;
 | ||||
| -    client c( io_service, ctx, std::string( server.mb_str() ), std::string( path.mb_str() ), storeFile, &progress );
 | ||||
| -    io_service.run();
 | ||||
| +    boost::asio::io_context io_context;
 | ||||
| +    client c( io_context, ctx, std::string( server.mb_str() ), std::string( path.mb_str() ), storeFile, &progress );
 | ||||
| +    io_context.run();
 | ||||
|    } | ||||
|    catch ( ParaverKernelException& e ) | ||||
|    { | ||||
| -- 
 | ||||
| 2.49.0 | ||||
| 
 | ||||
							
								
								
									
										23
									
								
								pkgs/paraver/fix-libxml2-deprecation.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								pkgs/paraver/fix-libxml2-deprecation.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | ||||
| commit 60aa3ffa05f6b40db191a880e9e622d608744c1f | ||||
| Author: Aleix Boné <aleix.boneribo@bsc.es> | ||||
| Date:   Sun Jul 21 12:11:30 2025 +0200 | ||||
| 
 | ||||
|     fix libxml2 deprecated macro | ||||
| 
 | ||||
| diff --git a/configure.ac b/configure.ac
 | ||||
| index 7fe1876..3ce1091 100644
 | ||||
| --- a/configure.ac
 | ||||
| +++ b/configure.ac
 | ||||
| @@ -46,7 +46,10 @@ AC_PROG_CPP
 | ||||
|  AC_PROG_CXXCPP | ||||
|  AC_PROG_SED | ||||
|   | ||||
| -AM_PATH_XML2
 | ||||
| +PKG_PROG_PKG_CONFIG
 | ||||
| +PKG_CHECK_MODULES([XML], [libxml-2.0])
 | ||||
| +
 | ||||
| +AC_SUBST(XML_CPPFLAGS, $XML_CFLAGS)
 | ||||
|   | ||||
|  AX_BOOST_BASE(1.36) | ||||
|  AX_BOOST_SERIALIZATION | ||||
| 
 | ||||
| @ -1,32 +1,32 @@ | ||||
| { | ||||
|   stdenv | ||||
| , fetchFromGitHub | ||||
| , autoreconfHook | ||||
| , boost | ||||
| , libxml2 | ||||
| , xml2 | ||||
| , wxGTK32 | ||||
| , autoconf | ||||
| , automake | ||||
| , pkg-config | ||||
| , zlib | ||||
| }: | ||||
| 
 | ||||
| let | ||||
|   wx = wxGTK32; | ||||
| in | ||||
| stdenv.mkDerivation rec { | ||||
|   pname = "paraver-kernel"; | ||||
|   version = "${src.shortRev}"; | ||||
|   version = "4.12.0"; | ||||
| 
 | ||||
|   src = builtins.fetchGit { | ||||
|     url = "https://github.com/bsc-performance-tools/paraver-kernel.git"; | ||||
|     rev = "2e167da3cee78ca11e31b74faefb23f12bac2b8c"; # master (missing tag) | ||||
|     ref = "master"; | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "bsc-performance-tools"; | ||||
|     repo = "paraver-kernel"; | ||||
|     rev = "v${version}"; | ||||
|     sha256 = "sha256-Xs7g8ITZhPt00v7o2WlTddbou8C8Rc9kBMFpl2WsCS4="; | ||||
|   }; | ||||
| 
 | ||||
|   patches = [ | ||||
|     # https://github.com/bsc-performance-tools/paraver-kernel/pull/11 | ||||
|     ./dont-expand-colors.patch | ||||
|     # TODO: add this back if it's still relevant | ||||
|     # ./dont-expand-colors.patch | ||||
|     ./fix-libxml2-deprecation.patch | ||||
|   ]; | ||||
| 
 | ||||
|   hardeningDisable = [ "all" ]; | ||||
| @ -44,14 +44,17 @@ stdenv.mkDerivation rec { | ||||
|     "--enable-openmp" | ||||
|   ]; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|   nativeBuildInputs = [ | ||||
|     autoreconfHook | ||||
|     boost | ||||
|     libxml2.dev | ||||
|     xml2 | ||||
|     autoconf | ||||
|     automake | ||||
|     pkg-config | ||||
|   ]; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|     boost | ||||
|     libxml2.dev | ||||
|     xml2 | ||||
|     zlib | ||||
|   ]; | ||||
| } | ||||
|  | ||||
| @ -61,13 +61,16 @@ stdenv.mkDerivation rec { | ||||
|     "--with-wx-config=${wx}/bin/wx-config" | ||||
|   ]; | ||||
| 
 | ||||
|   nativeBuildInputs = [ | ||||
|     autoconf | ||||
|     automake | ||||
|   ]; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|     boost | ||||
|     xml2 | ||||
|     libxml2.dev | ||||
|     wx | ||||
|     autoconf | ||||
|     automake | ||||
|     openssl.dev | ||||
|   ]; | ||||
| 
 | ||||
|  | ||||
| @ -18,8 +18,12 @@ stdenv.mkDerivation rec { | ||||
|   hardeningDisable = [ "all" ]; | ||||
|   dontStrip = true; | ||||
|   configureFlags = [ "--with-ovni=${ovni}" ]; | ||||
|   buildInputs = [ | ||||
| 
 | ||||
|   nativeBuildInputs = [ | ||||
|     autoreconfHook | ||||
|   ]; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|     ovni | ||||
|     mpi | ||||
|   ]; | ||||
|  | ||||
| @ -8,14 +8,13 @@ | ||||
| , gnumake | ||||
| , boost | ||||
| , mpi | ||||
| , gcc | ||||
| , autoreconfHook | ||||
| , enableOvni ? true | ||||
| , ovni ? null | ||||
| , useGit ? false | ||||
| , gitUrl ? "ssh://git@bscpm04.bsc.es/interoperability/tampi.git" | ||||
| , gitBranch ? "master" | ||||
| , gitCommit ? "a5c93bf8ab045b71ad4a8d5e2c991ce774db5cbc" | ||||
| , gitCommit ? "f6455db9d3124ae36e715a4874fd49720e79f20a" | ||||
| }: | ||||
| 
 | ||||
| with lib; | ||||
| @ -24,12 +23,12 @@ assert enableOvni -> (ovni != null); | ||||
| 
 | ||||
| let | ||||
|   release = rec { | ||||
|     version = "4.0"; | ||||
|     version = "4.1"; | ||||
|     src = fetchFromGitHub { | ||||
|       owner = "bsc-pm"; | ||||
|       repo = "tampi"; | ||||
|       rev = "v${version}"; | ||||
|       hash = "sha256-R7ew5tsrxGReTvOeeZe1FD0oThBhOHoDGv6Mo2sbmDg="; | ||||
|       hash = "sha256-SwfPSnwcZnRnSgNvCD5sFSUJRpWINqI5I4adj5Hh+XY="; | ||||
|     }; | ||||
|   }; | ||||
|   git = rec { | ||||
| @ -41,20 +40,23 @@ let | ||||
|     }; | ||||
|   }; | ||||
|   source = if (useGit) then git else release; | ||||
| in stdenv.mkDerivation rec { | ||||
| in stdenv.mkDerivation { | ||||
|   pname = "tampi"; | ||||
|   inherit (source) src version; | ||||
|   enableParallelBuilding = true; | ||||
|   separateDebugInfo = true; | ||||
|   buildInputs = [ | ||||
|     autoreconfHook | ||||
|     automake | ||||
| 
 | ||||
|   nativeBuildInputs = [ | ||||
|     autoconf | ||||
|     libtool | ||||
|     automake | ||||
|     autoreconfHook | ||||
|     gnumake | ||||
|     libtool | ||||
|   ]; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|     boost | ||||
|     mpi | ||||
|     gcc | ||||
|   ] ++ optional (enableOvni) ovni; | ||||
|   configureFlags = optional (enableOvni) "--with-ovni=${ovni}"; | ||||
|   dontDisableStatic = true; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user