From f89cd4d7e270ed12517edb3f8618537f441c5814 Mon Sep 17 00:00:00 2001 From: Aleix Roca Nonell Date: Mon, 26 May 2025 10:28:30 +0200 Subject: [PATCH 01/23] Remove dangling libomp.so symlink Reviewed-by: Rodrigo Arias Mallo --- pkgs/llvm-ompss2/openmp.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/llvm-ompss2/openmp.nix b/pkgs/llvm-ompss2/openmp.nix index 56c0d70..0d2c84b 100644 --- a/pkgs/llvm-ompss2/openmp.nix +++ b/pkgs/llvm-ompss2/openmp.nix @@ -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 = { -- 2.49.0 From 8e5b2dc5ccee0bad68d738cca7db2ffffc44c8fd Mon Sep 17 00:00:00 2001 From: Aleix Roca Nonell Date: Mon, 26 May 2025 10:29:16 +0200 Subject: [PATCH 02/23] Fix C runtime objects path in OmpSs-2 LLVM Some gcc versions append an extension to the patch version number, but this extension is not part of the installation path. This patch removes the extension to the patch version. Reviewed-by: Rodrigo Arias Mallo Tested-by: Rodrigo Arias Mallo --- pkgs/llvm-ompss2/default.nix | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/pkgs/llvm-ompss2/default.nix b/pkgs/llvm-ompss2/default.nix index 81b972a..1b53de3 100644 --- a/pkgs/llvm-ompss2/default.nix +++ b/pkgs/llvm-ompss2/default.nix @@ -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 ''; } -- 2.49.0 From 9d1944c658929b6f98b3f3803fead4d1b91c4405 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Wed, 11 Jun 2025 14:14:05 +0200 Subject: [PATCH 03/23] Upgrade and fix lmbench package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now it needs libtirpc to provide rpc/rpc.h, as it seems it is gone from libc. We also fix the install target so it installs the additional benchmarks. Reviewed-by: Aleix Boné Tested-by: Aleix Boné --- overlay.nix | 2 +- pkgs/lmbench/default.nix | 16 ++++++++++++---- pkgs/lmbench/fix-install.patch | 10 ++++++++++ 3 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 pkgs/lmbench/fix-install.patch diff --git a/overlay.nix b/overlay.nix index d337347..d4ea269 100644 --- a/overlay.nix +++ b/overlay.nix @@ -21,7 +21,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; }; diff --git a/pkgs/lmbench/default.nix b/pkgs/lmbench/default.nix index b822cac..9c48dd1 100644 --- a/pkgs/lmbench/default.nix +++ b/pkgs/lmbench/default.nix @@ -1,19 +1,20 @@ { 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 = '' @@ -24,12 +25,19 @@ stdenv.mkDerivation rec { sed -i "s@/bin/rm@rm@g" $(find . -name Makefile) ''; + buildInputs = [ libtirpc ]; + patches = [ ./fix-install.patch ]; + hardeningDisable = [ "all" ]; enableParallelBuilding = false; preBuild = '' - makeFlagsArray+=(BASE=$out) + makeFlagsArray+=( + BASE=$out + CPPFLAGS=-I${libtirpc.dev}/include/tirpc + LDFLAGS=-ltirpc + ) ''; meta = { diff --git a/pkgs/lmbench/fix-install.patch b/pkgs/lmbench/fix-install.patch new file mode 100644 index 0000000..f539254 --- /dev/null +++ b/pkgs/lmbench/fix-install.patch @@ -0,0 +1,10 @@ +--- a/Makefile ++++ b/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 -- 2.49.0 From 43d32ac16d930f733041478bbcc1c7125a208664 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Bon=C3=A9?= Date: Fri, 28 Feb 2025 13:23:28 +0100 Subject: [PATCH 04/23] Use nixpkgs from flake.lock and support attrs when importing bscpkgs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes `nix-build` and friends use the current flake lock instead of the outdated pinned version we had in `./nixpkgs.nix` With this, `nix-build -A ovni` and `nix build .#ovni` should produce the same result. This will fail if the flake nixpkgs input does not come from NixOS/nixpkgs. We could use edolstra/flake-compat instead, but it's overkill imho. Additionally, I made default.nix behave like nixpkgs, so that we can import bscpkgs à la nixpkgs (Apply overlays and other options that nixpkgs accepts): ```nix let pkgs = import bscpkgs { inherit system; }; in <...> ``` Reviewed-by: Rodrigo Arias Mallo --- default.nix | 22 +++++++++++++++------- nixpkgs.nix | 9 --------- 2 files changed, 15 insertions(+), 16 deletions(-) delete mode 100644 nixpkgs.nix diff --git a/default.nix b/default.nix index a28f759..14c06c6 100644 --- a/default.nix +++ b/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; } +) diff --git a/nixpkgs.nix b/nixpkgs.nix deleted file mode 100644 index 2075697..0000000 --- a/nixpkgs.nix +++ /dev/null @@ -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 ` - sha256 = "sha256-de9KYi8rSJpqvBfNwscWdalIJXPo8NjdIZcEJum1mH0="; -} -- 2.49.0 From a87b99d0a42118c85f72cf4be200e62e3cf6b483 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Thu, 13 Mar 2025 16:52:15 +0100 Subject: [PATCH 05/23] Update bench6 package to bf29a531 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Aleix Boné --- pkgs/bench6/default.nix | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/pkgs/bench6/default.nix b/pkgs/bench6/default.nix index 91c8a74..a85ae78 100644 --- a/pkgs/bench6/default.nix +++ b/pkgs/bench6/default.nix @@ -1,14 +1,22 @@ { stdenv +, bigotes , cmake , clangOmpss2 +, openmp +, openmpv , nanos6 , nodes +, nosv , mpi , tampi +, tagaspi +, gpi-2 +, openblas +, ovni , gitBranch ? "master" , gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git" -, gitCommit ? "1e6ce2aa8ad7b4eef38df1581d7ec48a8815f85d" +, gitCommit ? "bf29a53113737c3aa74d2fe3d55f59868faea7b4" }: stdenv.mkDerivation rec { @@ -21,9 +29,30 @@ stdenv.mkDerivation rec { rev = gitCommit; }; - buildInputs = [ cmake clangOmpss2 nanos6 nodes mpi tampi ]; + buildInputs = [ + bigotes + cmake + clangOmpss2 + openmp + openmpv + nanos6 + nodes + nosv + mpi + tampi + tagaspi + gpi-2 + 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++" -- 2.49.0 From e4abd8d8f608c431a49f242e8ae496d3f3cf17ee Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Fri, 18 Jul 2025 10:35:10 +0200 Subject: [PATCH 06/23] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'nixpkgs': 'path:/nix/store/2csx2kkb2hxyxhhmg2xs9jfyypikwwk6-source?lastModified=1736867362&narHash=sha256-i/UJ5I7HoqmFMwZEH6vAvBxOrjjOJNU739lnZnhUln8%3D&rev=9c6b49aeac36e2ed73a8c472f1546f6d9cf1addc' (2025-01-14) → 'path:/nix/store/zk8v61cpk1wprp9ld5ayc1g5fq4pdkwv-source?lastModified=1752436162&narHash=sha256-Kt1UIPi7kZqkSc5HVj6UY5YLHHEzPBkgpNUByuyxtlw%3D&rev=dfcd5b901dbab46c9c6e80b265648481aafb01f8' (2025-07-13) Reviewed-by: Aleix Boné --- flake.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flake.lock b/flake.lock index ae74ebe..8fcc4a2 100644 --- a/flake.lock +++ b/flake.lock @@ -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": { -- 2.49.0 From 2cacc2b265b57530132b451aaff4becc0ddf4b46 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Fri, 18 Jul 2025 10:39:27 +0200 Subject: [PATCH 07/23] Update ovni to 1.12.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Aleix Boné --- pkgs/ovni/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/ovni/default.nix b/pkgs/ovni/default.nix index a888e71..9521fa6 100644 --- a/pkgs/ovni/default.nix +++ b/pkgs/ovni/default.nix @@ -7,7 +7,7 @@ , 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) @@ -17,13 +17,13 @@ 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 { -- 2.49.0 From 867ba3ec5a546c25fc2640760b1ca717856e8c65 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Fri, 18 Jul 2025 10:45:30 +0200 Subject: [PATCH 08/23] Update nOS-V to 3.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Aleix Boné --- pkgs/nosv/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/nosv/default.nix b/pkgs/nosv/default.nix index 22ff41b..889f5c3 100644 --- a/pkgs/nosv/default.nix +++ b/pkgs/nosv/default.nix @@ -11,19 +11,19 @@ , 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="; }; }; -- 2.49.0 From 2d0b014dc7b1f8e91386e6b0c132052676a90c50 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Fri, 18 Jul 2025 12:10:14 +0200 Subject: [PATCH 09/23] Update Nanos6 to 4.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Aleix Boné --- pkgs/nanos6/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/nanos6/default.nix b/pkgs/nanos6/default.nix index ef0f1a7..07066fb 100644 --- a/pkgs/nanos6/default.nix +++ b/pkgs/nanos6/default.nix @@ -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="; }; }; -- 2.49.0 From 4442b6a70694454ce9e317a306d23228fb9bd8b3 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Fri, 18 Jul 2025 12:20:49 +0200 Subject: [PATCH 10/23] Update TAMPI to 4.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Aleix Boné --- pkgs/tampi/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tampi/default.nix b/pkgs/tampi/default.nix index 37209e8..50de822 100644 --- a/pkgs/tampi/default.nix +++ b/pkgs/tampi/default.nix @@ -15,7 +15,7 @@ , useGit ? false , gitUrl ? "ssh://git@bscpm04.bsc.es/interoperability/tampi.git" , gitBranch ? "master" -, gitCommit ? "a5c93bf8ab045b71ad4a8d5e2c991ce774db5cbc" +, gitCommit ? "f6455db9d3124ae36e715a4874fd49720e79f20a" }: with lib; @@ -24,12 +24,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 { -- 2.49.0 From e82d3c3b9f255dfc34be897581f9e44af416dc54 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Fri, 18 Jul 2025 16:03:09 +0200 Subject: [PATCH 11/23] Upgrade OmpSs-2 LLVM to 2025.06 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Aleix Boné --- pkgs/llvm-ompss2/clang.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/llvm-ompss2/clang.nix b/pkgs/llvm-ompss2/clang.nix index 3302e64..ca2fb43 100644 --- a/pkgs/llvm-ompss2/clang.nix +++ b/pkgs/llvm-ompss2/clang.nix @@ -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="; }; }; -- 2.49.0 From e7adef1ffa9cad6d84a2e8581b0b063650ca0b8a Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Mon, 21 Jul 2025 13:04:21 +0200 Subject: [PATCH 12/23] Fix intel-compiler by ignoring broken symlinks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the future, we may want to look if those symlinks are needed. Reviewed-by: Aleix Boné --- pkgs/intel-oneapi/2023.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/intel-oneapi/2023.nix b/pkgs/intel-oneapi/2023.nix index 79576e7..8b7d3a6 100644 --- a/pkgs/intel-oneapi/2023.nix +++ b/pkgs/intel-oneapi/2023.nix @@ -314,6 +314,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 -- 2.49.0 From 6ddfea0a3aec88205c7a64519783cd386013bd98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Bon=C3=A9?= Date: Mon, 21 Jul 2025 12:43:02 +0200 Subject: [PATCH 13/23] Use boost 1.86 for paraver Reviewed-by: Rodrigo Arias Mallo --- pkgs/paraver/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/paraver/default.nix b/pkgs/paraver/default.nix index 9eaaca8..f0d126c 100644 --- a/pkgs/paraver/default.nix +++ b/pkgs/paraver/default.nix @@ -1,7 +1,7 @@ { stdenv , autoreconfHook -, boost +, boost186 , libxml2 , xml2 , wxGTK32 @@ -15,6 +15,7 @@ let wx = wxGTK32; + boost = boost186; in stdenv.mkDerivation rec { pname = "wxparaver"; -- 2.49.0 From f0637b4569242fabaf4f4984b6f4f8a9df647eec Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Mon, 21 Jul 2025 13:14:01 +0200 Subject: [PATCH 14/23] Drop GPI-2 and TAGASPI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GPI-2 fails to build, which is needed for TAGASPI. Reviewed-by: Aleix Boné --- overlay.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/overlay.nix b/overlay.nix index d4ea269..52b0d17 100644 --- a/overlay.nix +++ b/overlay.nix @@ -18,7 +18,7 @@ let clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmpv; }; clangOmpss2Unwrapped = callPackage ./pkgs/llvm-ompss2/clang.nix { }; #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 { }; # Broken: https://jungle.bsc.es/git/rarias/bscpkgs/issues/7 intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { }; jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { }; lmbench = callPackage ./pkgs/lmbench/default.nix { }; @@ -44,7 +44,7 @@ let stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.clangOmpss2Nanos6; allowedRequisites = null; }; stdenvClangOmpss2Nodes = final.stdenv.override { cc = final.clangOmpss2Nodes; allowedRequisites = null; }; stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; }; - tagaspi = callPackage ./pkgs/tagaspi/default.nix { }; + #tagaspi = callPackage ./pkgs/tagaspi/default.nix { }; # Broken due gpi-2 tampi = callPackage ./pkgs/tampi/default.nix { }; wxparaver = callPackage ./pkgs/paraver/default.nix { }; }; -- 2.49.0 From 52fe43bfe130f0859636d336bb3ba52afb643ea6 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Mon, 21 Jul 2025 16:23:53 +0200 Subject: [PATCH 15/23] Fix PATH in intel compiler wrapper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We need to add the gcc in the PATH, but adding it directly to $PATH doesn't work, as it will be restored to $path_backup before icc runs. So for now we simply inject it to path_backup, but ideally we should find a more robust solution. Reviewed-by: Aleix Boné --- pkgs/intel-oneapi/2023.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/intel-oneapi/2023.nix b/pkgs/intel-oneapi/2023.nix index 8b7d3a6..97420b7 100644 --- a/pkgs/intel-oneapi/2023.nix +++ b/pkgs/intel-oneapi/2023.nix @@ -400,7 +400,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 -- 2.49.0 From 26f52aa27d53ef893104c5757cf23a3747b5f635 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Mon, 21 Jul 2025 16:27:23 +0200 Subject: [PATCH 16/23] Use gcc 13 for intel compiler 2023 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Intel compiler for C++ (icpc) is not able to parse the location of C++ headers from the output of gcc 14, but works fine for gcc 13. Reviewed-by: Aleix Boné --- pkgs/intel-oneapi/2023.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/intel-oneapi/2023.nix b/pkgs/intel-oneapi/2023.nix index 97420b7..1e65c6c 100644 --- a/pkgs/intel-oneapi/2023.nix +++ b/pkgs/intel-oneapi/2023.nix @@ -12,7 +12,7 @@ , autoPatchelfHook , symlinkJoin , libfabric -, gcc +, gcc13 , gcc7 , wrapCCWith , linuxHeaders @@ -30,6 +30,8 @@ let + gcc = gcc13; + v = { hpckit = "2023.1.0"; compiler = "2023.1.0"; -- 2.49.0 From 885e04e4466cc2cfb4912e8568767f2900a41d0d Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Mon, 21 Jul 2025 17:01:06 +0200 Subject: [PATCH 17/23] Remove unused inputs from intel compiler 2023 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Aleix Boné --- pkgs/intel-oneapi/2023.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/intel-oneapi/2023.nix b/pkgs/intel-oneapi/2023.nix index 1e65c6c..4410995 100644 --- a/pkgs/intel-oneapi/2023.nix +++ b/pkgs/intel-oneapi/2023.nix @@ -1,6 +1,5 @@ { stdenv , fetchurl -, ncurses , lib , dpkg , rsync @@ -10,12 +9,9 @@ , hwloc , zlib , autoPatchelfHook -, symlinkJoin , libfabric , gcc13 -, gcc7 , wrapCCWith -, linuxHeaders }: # The distribution of intel packages is a mess. We are doing the installation -- 2.49.0 From 88d4d8e317115c1654079deedc0d84f8290911d9 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Mon, 21 Jul 2025 17:27:02 +0200 Subject: [PATCH 18/23] Drop tagaspi from bench6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Aleix Boné --- pkgs/bench6/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/bench6/default.nix b/pkgs/bench6/default.nix index a85ae78..0c7872c 100644 --- a/pkgs/bench6/default.nix +++ b/pkgs/bench6/default.nix @@ -10,8 +10,6 @@ , nosv , mpi , tampi -, tagaspi -, gpi-2 , openblas , ovni , gitBranch ? "master" @@ -40,8 +38,6 @@ stdenv.mkDerivation rec { nosv mpi tampi - tagaspi - gpi-2 openblas openblas.dev ovni -- 2.49.0 From 974bb56dc38b408fda9ee296f2595306e68bf88d Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Mon, 21 Jul 2025 17:52:06 +0200 Subject: [PATCH 19/23] Fix lmbench build issues with GCC 14 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Aleix Boné Tested-by: Rodrigo Arias Mallo --- pkgs/lmbench/default.nix | 8 ++-- pkgs/lmbench/fix-install.patch | 4 +- pkgs/lmbench/gcc-14.patch | 77 ++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 7 deletions(-) create mode 100644 pkgs/lmbench/gcc-14.patch diff --git a/pkgs/lmbench/default.nix b/pkgs/lmbench/default.nix index 9c48dd1..cfe2349 100644 --- a/pkgs/lmbench/default.nix +++ b/pkgs/lmbench/default.nix @@ -17,16 +17,12 @@ stdenv.mkDerivation rec { 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 ]; + patches = [ ./fix-install.patch ./gcc-14.patch ]; hardeningDisable = [ "all" ]; @@ -34,7 +30,9 @@ stdenv.mkDerivation rec { preBuild = '' makeFlagsArray+=( + -C src BASE=$out + CFLAGS=-Wno-implicit-int CPPFLAGS=-I${libtirpc.dev}/include/tirpc LDFLAGS=-ltirpc ) diff --git a/pkgs/lmbench/fix-install.patch b/pkgs/lmbench/fix-install.patch index f539254..89543b8 100644 --- a/pkgs/lmbench/fix-install.patch +++ b/pkgs/lmbench/fix-install.patch @@ -1,5 +1,5 @@ ---- a/Makefile -+++ b/Makefile +--- 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 diff --git a/pkgs/lmbench/gcc-14.patch b/pkgs/lmbench/gcc-14.patch new file mode 100644 index 0000000..0af0c42 --- /dev/null +++ b/pkgs/lmbench/gcc-14.patch @@ -0,0 +1,77 @@ +From a3c6e7d303cd8368e8d4e35be7cbc1997e801257 Mon Sep 17 00:00:00 2001 +From: Rodrigo Arias Mallo +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 + + /* + * 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 + -- 2.49.0 From 9a48ae45bbcbca0103fc4e3226db967d57905fd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Bon=C3=A9?= Date: Mon, 21 Jul 2025 11:43:01 +0200 Subject: [PATCH 20/23] Update paraver to 4.12.0 Adds a new patch to fix libxml2: the m4 AM_PATH_XML2 macro has been deprecated and is no longer included in the latest nixpkgs unstable. Upstream recommends using `PKG_CHECK_MODULES` instead. Reviewed-by: Rodrigo Arias Mallo --- pkgs/paraver/default.nix | 12 ++++++----- pkgs/paraver/dont-expand-colors.patch | 18 ++++++++--------- pkgs/paraver/fix-libxml2-deprecation.patch | 23 ++++++++++++++++++++++ pkgs/paraver/kernel.nix | 16 +++++++++------ 4 files changed, 49 insertions(+), 20 deletions(-) create mode 100644 pkgs/paraver/fix-libxml2-deprecation.patch diff --git a/pkgs/paraver/default.nix b/pkgs/paraver/default.nix index f0d126c..49cbfe0 100644 --- a/pkgs/paraver/default.nix +++ b/pkgs/paraver/default.nix @@ -1,5 +1,6 @@ { stdenv +, fetchFromGitHub , autoreconfHook , boost186 , libxml2 @@ -19,12 +20,13 @@ 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="; }; hardeningDisable = [ "all" ]; diff --git a/pkgs/paraver/dont-expand-colors.patch b/pkgs/paraver/dont-expand-colors.patch index ff45d78..a5e449b 100644 --- a/pkgs/paraver/dont-expand-colors.patch +++ b/pkgs/paraver/dont-expand-colors.patch @@ -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 ); diff --git a/pkgs/paraver/fix-libxml2-deprecation.patch b/pkgs/paraver/fix-libxml2-deprecation.patch new file mode 100644 index 0000000..f7bb2aa --- /dev/null +++ b/pkgs/paraver/fix-libxml2-deprecation.patch @@ -0,0 +1,23 @@ +commit 60aa3ffa05f6b40db191a880e9e622d608744c1f +Author: Aleix Boné +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 + diff --git a/pkgs/paraver/kernel.nix b/pkgs/paraver/kernel.nix index eb3e60d..e940401 100644 --- a/pkgs/paraver/kernel.nix +++ b/pkgs/paraver/kernel.nix @@ -1,5 +1,6 @@ { stdenv +, fetchFromGitHub , autoreconfHook , boost , libxml2 @@ -16,17 +17,20 @@ let 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" ]; -- 2.49.0 From ae2ef1d2dfbc85e8d6a1bfa85cc9109ba3750e5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Bon=C3=A9?= Date: Mon, 21 Jul 2025 11:46:37 +0200 Subject: [PATCH 21/23] Add patch to paraver to prevent focus stealing See: https://github.com/bsc-performance-tools/wxparaver/issues/18 Reviewed-by: Rodrigo Arias Mallo --- pkgs/paraver/default.nix | 2 ++ .../do-not-steal-focus-on-redraw.patch | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 pkgs/paraver/do-not-steal-focus-on-redraw.patch diff --git a/pkgs/paraver/default.nix b/pkgs/paraver/default.nix index 49cbfe0..9130f06 100644 --- a/pkgs/paraver/default.nix +++ b/pkgs/paraver/default.nix @@ -29,6 +29,8 @@ stdenv.mkDerivation rec { sha256 = "sha256-YsO5gsuEFQdki3lQudEqgo5WXOt/fPdvNw5OxZQ86Zo="; }; + patches = [ ./do-not-steal-focus-on-redraw.patch ]; + hardeningDisable = [ "all" ]; # Fix the PARAVER_HOME variable diff --git a/pkgs/paraver/do-not-steal-focus-on-redraw.patch b/pkgs/paraver/do-not-steal-focus-on-redraw.patch new file mode 100644 index 0000000..3c66967 --- /dev/null +++ b/pkgs/paraver/do-not-steal-focus-on-redraw.patch @@ -0,0 +1,26 @@ +From 2b185e1b5ce52808b3026334851dbcd5a640ed4d Mon Sep 17 00:00:00 2001 +From: aleixbonerib +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 + -- 2.49.0 From b29f03ba6e20981ccc2107df4a41253e827dd46c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Bon=C3=A9?= Date: Mon, 21 Jul 2025 18:13:27 +0200 Subject: [PATCH 22/23] Fix boost >=1.87 in wxparaver Reviewed-by: Rodrigo Arias Mallo --- pkgs/paraver/default.nix | 11 +++-- pkgs/paraver/fix-boost-87.patch | 87 +++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 pkgs/paraver/fix-boost-87.patch diff --git a/pkgs/paraver/default.nix b/pkgs/paraver/default.nix index 9130f06..ba8a0c9 100644 --- a/pkgs/paraver/default.nix +++ b/pkgs/paraver/default.nix @@ -2,7 +2,7 @@ stdenv , fetchFromGitHub , autoreconfHook -, boost186 +, boost , libxml2 , xml2 , wxGTK32 @@ -16,7 +16,6 @@ let wx = wxGTK32; - boost = boost186; in stdenv.mkDerivation rec { pname = "wxparaver"; @@ -29,7 +28,13 @@ stdenv.mkDerivation rec { sha256 = "sha256-YsO5gsuEFQdki3lQudEqgo5WXOt/fPdvNw5OxZQ86Zo="; }; - patches = [ ./do-not-steal-focus-on-redraw.patch ]; + 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" ]; diff --git a/pkgs/paraver/fix-boost-87.patch b/pkgs/paraver/fix-boost-87.patch new file mode 100644 index 0000000..01f8b79 --- /dev/null +++ b/pkgs/paraver/fix-boost-87.patch @@ -0,0 +1,87 @@ +From 7ecd888e2ebb9e8c5582851d3c50bff61022708e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= +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 + -- 2.49.0 From 1666c14a35e08fd2eddcc206d622494435595fdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Bon=C3=A9?= Date: Mon, 21 Jul 2025 18:33:25 +0200 Subject: [PATCH 23/23] Remove dependency on wx from paraver kernel Reviewed-by: Rodrigo Arias Mallo Tested-by: Rodrigo Arias Mallo --- pkgs/paraver/kernel.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/paraver/kernel.nix b/pkgs/paraver/kernel.nix index e940401..742610f 100644 --- a/pkgs/paraver/kernel.nix +++ b/pkgs/paraver/kernel.nix @@ -5,16 +5,12 @@ , boost , libxml2 , xml2 -, wxGTK32 , autoconf , automake , pkg-config , zlib }: -let - wx = wxGTK32; -in stdenv.mkDerivation rec { pname = "paraver-kernel"; version = "4.12.0"; -- 2.49.0