Archived
1
0
forked from rarias/bscpkgs

7 Commits

Author SHA1 Message Date
f1dfaa8395 Add patch to paraver to prevent focus stealing
https://github.com/bsc-performance-tools/wxparaver/issues/18
2025-07-21 11:58:46 +02:00
9cad4abc7f 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.
2025-07-21 11:43:01 +02:00
a87b99d0a4 Update bench6 package to bf29a531
Reviewed-by: Aleix Boné <abonerib@bsc.es>
2025-06-16 15:34:35 +02:00
43d32ac16d Use nixpkgs from flake.lock and support attrs when importing bscpkgs
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 <rodrigo.arias@bsc.es>
2025-06-16 12:29:55 +02:00
9d1944c658 Upgrade and fix lmbench package
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é <abonerib@bsc.es>
Tested-by: Aleix Boné <abonerib@bsc.es>
2025-06-11 16:01:40 +02:00
8e5b2dc5cc 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 <rodrigo.arias@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-06-02 08:58:19 +02:00
f89cd4d7e2 Remove dangling libomp.so symlink
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-06-02 08:57:23 +02:00
13 changed files with 156 additions and 50 deletions

View File

@@ -1,11 +1,19 @@
let let
bscOverlay = import ./overlay.nix; bscOverlay = import ./overlay.nix;
# Pin the nixpkgs # read flake.lock and determine revision from there
nixpkgsPath = import ./nixpkgs.nix; lock = builtins.fromJSON (builtins.readFile ./flake.lock);
inherit (lock.nodes.nixpkgs.locked) rev narHash;
pkgs = import nixpkgsPath { fetchedNixpkgs = builtins.fetchTarball {
overlays = [ bscOverlay ]; url = "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz";
sha256 = narHash;
}; };
in
in pkgs { overlays ? [ ]
, nixpkgs ? fetchedNixpkgs
, ...
}@attrs:
import nixpkgs (
(builtins.removeAttrs attrs [ "overlays" "nixpkgs" ]) //
{ overlays = [ bscOverlay ] ++ overlays; }
)

View File

@@ -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=";
}

View File

@@ -21,7 +21,7 @@ let
gpi-2 = callPackage ./pkgs/gpi-2/default.nix { }; gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { }; intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { };
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.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 { }; mcxx = callPackage ./pkgs/mcxx/default.nix { };
nanos6 = callPackage ./pkgs/nanos6/default.nix { }; nanos6 = callPackage ./pkgs/nanos6/default.nix { };
nanos6Debug = final.nanos6.override { enableDebug = true; }; nanos6Debug = final.nanos6.override { enableDebug = true; };

View File

@@ -1,14 +1,22 @@
{ {
stdenv stdenv
, bigotes
, cmake , cmake
, clangOmpss2 , clangOmpss2
, openmp
, openmpv
, nanos6 , nanos6
, nodes , nodes
, nosv
, mpi , mpi
, tampi , tampi
, tagaspi
, gpi-2
, openblas
, ovni
, gitBranch ? "master" , gitBranch ? "master"
, gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git" , gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git"
, gitCommit ? "1e6ce2aa8ad7b4eef38df1581d7ec48a8815f85d" , gitCommit ? "bf29a53113737c3aa74d2fe3d55f59868faea7b4"
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@@ -21,9 +29,30 @@ stdenv.mkDerivation rec {
rev = gitCommit; 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 = [ cmakeFlags = [
"-DCMAKE_C_COMPILER=clang" "-DCMAKE_C_COMPILER=clang"
"-DCMAKE_CXX_COMPILER=clang++" "-DCMAKE_CXX_COMPILER=clang++"

View File

@@ -9,12 +9,14 @@
, ompss2rt ? null , ompss2rt ? null
}: }:
with lib;
let let
usingNodesAndOmpv = (openmp.pname == "openmp-v" && ompss2rt.pname == "nodes"); usingNodesAndOmpv = (openmp.pname == "openmp-v" && ompss2rt.pname == "nodes");
sameNosv = openmp.nosv == ompss2rt.nosv; sameNosv = openmp.nosv == ompss2rt.nosv;
in 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 let
homevar = if ompss2rt.pname == "nanos6" then "NANOS6_HOME" else "NODES_HOME"; homevar = if ompss2rt.pname == "nanos6" then "NANOS6_HOME" else "NODES_HOME";
@@ -34,14 +36,15 @@ let
targetConfig = stdenv.targetPlatform.config; targetConfig = stdenv.targetPlatform.config;
inherit gcc; inherit gcc;
cc = clangOmpss2Unwrapped; cc = clangOmpss2Unwrapped;
gccVersion = with versions; let v = gcc.version; in concatStringsSep "." [(major v) (minor v) (patch v)];
in wrapCCWith { in wrapCCWith {
inherit cc bintools; inherit cc bintools;
# extraPackages adds packages to depsTargetTargetPropagated # extraPackages adds packages to depsTargetTargetPropagated
extraPackages = lib.optional (openmp != null) openmp; extraPackages = optional (openmp != null) openmp;
extraBuildCommands = '' extraBuildCommands = ''
echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-cflags
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-ldflags
echo "-L${gcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags echo "-L${gcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags
for dir in ${gcc.cc}/include/c++/*; do for dir in ${gcc.cc}/include/c++/*; do
@@ -55,12 +58,12 @@ in wrapCCWith {
wrap clang++ $wrapper $ccPath/clang++ wrap clang++ $wrapper $ccPath/clang++
'' + lib.optionalString (openmp != null) '' '' + optionalString (openmp != null) ''
echo "export OPENMP_RUNTIME=${ompname}" >> $out/nix-support/cc-wrapper-hook 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 OMPSS2_RUNTIME=${rtname}" >> $out/nix-support/cc-wrapper-hook
echo "export ${homevar}=${ompss2rt}" >> $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 echo "export NOSV_HOME=${ompss2rt.nosv}" >> $out/nix-support/cc-wrapper-hook
''; '';
} }

View File

@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
rm -f $out/lib/libiomp* rm -f $out/lib/libiomp*
'' + lib.optionalString enableNosv '' '' + lib.optionalString enableNosv ''
rm -f $out/lib/libomp.* rm -f $out/lib/libomp.*
rm -f $out/libllvmrt/libomp.*
''; '';
passthru = { passthru = {

View File

@@ -1,19 +1,20 @@
{ {
lib, lib,
stdenv, stdenv,
libtirpc,
fetchFromGitHub fetchFromGitHub
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "lmbench"; pname = "lmbench";
version = "701c6c35"; version = "941a0dcc";
# We use the intel repo as they have fixed some problems # We use the intel repo as they have fixed some problems
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "intel"; owner = "intel";
repo = pname; repo = pname;
rev = "701c6c35b0270d4634fb1dc5272721340322b8ed"; rev = "941a0dcc0e7bdd9bb0dee05d7f620e77da8c43af";
sha256 = "0sf6zk03knkardsfd6qx7drpm56nhg53n885cylkggk83r38idyr"; sha256 = "sha256-SzwplRBO3V0R3m3p15n71ivYBMGoLsajFK2TapYxdqk=";
}; };
postUnpack = '' postUnpack = ''
@@ -24,12 +25,19 @@ stdenv.mkDerivation rec {
sed -i "s@/bin/rm@rm@g" $(find . -name Makefile) sed -i "s@/bin/rm@rm@g" $(find . -name Makefile)
''; '';
buildInputs = [ libtirpc ];
patches = [ ./fix-install.patch ];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
enableParallelBuilding = false; enableParallelBuilding = false;
preBuild = '' preBuild = ''
makeFlagsArray+=(BASE=$out) makeFlagsArray+=(
BASE=$out
CPPFLAGS=-I${libtirpc.dev}/include/tirpc
LDFLAGS=-ltirpc
)
''; '';
meta = { meta = {

View File

@@ -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

View File

@@ -1,5 +1,6 @@
{ {
stdenv stdenv
, fetchFromGitHub
, autoreconfHook , autoreconfHook
, boost , boost
, libxml2 , libxml2
@@ -18,14 +19,17 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "wxparaver"; pname = "wxparaver";
version = "4.11.2"; version = "4.12.0";
src = builtins.fetchGit { src = fetchFromGitHub {
url = "https://github.com/bsc-performance-tools/wxparaver.git"; owner = "bsc-performance-tools";
rev = "129e6b4a4f061e5a319049db8db1620f5de3bd70"; # v4.11.2 (missing tag) repo = "wxparaver";
ref = "master"; rev = "v${version}";
sha256 = "sha256-YsO5gsuEFQdki3lQudEqgo5WXOt/fPdvNw5OxZQ86Zo=";
}; };
patches = [ ./do-not-steal-focus-on-redraw.patch ];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
# Fix the PARAVER_HOME variable # Fix the PARAVER_HOME variable

View 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

View File

@@ -11,7 +11,7 @@ diff --git a/api/semanticcolor.cpp b/api/semanticcolor.cpp
index 9f86960..22859eb 100644 index 9f86960..22859eb 100644
--- a/api/semanticcolor.cpp --- a/api/semanticcolor.cpp
+++ b/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() ) if( pos == 0 && ParaverConfig::getInstance()->getColorsTimelineUseZero() )
return ParaverConfig::getInstance()->getColorsTimelineColorZero(); return ParaverConfig::getInstance()->getColorsTimelineColorZero();
@@ -22,26 +22,26 @@ index 9f86960..22859eb 100644
+ return colors[ pos + 1 ]; + return colors[ pos + 1 ];
} }
void CodeColor::setColor( PRV_UINT32 whichPos, rgb whichColor ) void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
@@ -250,6 +251,12 @@ void CodeColor::setColor( PRV_UINT32 whichPos, rgb whichColor ) @@ -314,6 +315,12 @@ void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
colors[ whichPos ] = whichColor; colors[ whichPos ] = whichColor;
} }
+void CodeColor::cutAfter( PRV_UINT32 pos ) +void SemanticColor::cutAfter( PRV_UINT32 pos )
+{ +{
+ if ( pos < colors.size() ) + if ( pos < colors.size() )
+ colors.erase( colors.begin() + pos, colors.end() ); + colors.erase( colors.begin() + pos, colors.end() );
+} +}
+ +
void CodeColor::setCustomColor( TSemanticValue whichValue, rgb color ) void SemanticColor::setCustomColor( TSemanticValue whichValue, rgb color )
{ {
customPalette[ whichValue ] = color; customPalette[ whichValue ] = color;
diff --git a/api/semanticcolor.h b/api/semanticcolor.h diff --git a/api/semanticcolor.h b/api/semanticcolor.h
index a079556..bddf3d8 100644 index a079556..bddf3d8 100644
--- a/api/semanticcolor.h --- a/api/semanticcolor.h
+++ b/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; PRV_UINT32 getNumColors() const;
void setColor( PRV_UINT32 pos, rgb color ); void setColor( PRV_UINT32 pos, rgb color );
+ void cutAfter( PRV_UINT32 pos ); + void cutAfter( PRV_UINT32 pos );
@@ -61,7 +61,7 @@ index b0d2050..ee2ab69 100644
for ( auto it : semanticColors ) for ( auto it : semanticColors )
{ {
std::tie( tmpColor.red, tmpColor.green, tmpColor.blue ) = it.second; std::tie( tmpColor.red, tmpColor.green, tmpColor.blue ) = it.second;
myCodeColor.setColor( it.first, tmpColor ); mySemanticColor.setColor( it.first, tmpColor );
+ if (it.first > maxValue) + if (it.first > maxValue)
+ maxValue = it.first; + maxValue = it.first;
} }
@@ -69,7 +69,7 @@ index b0d2050..ee2ab69 100644
+ // Cut the palette after the highest defined value, so there are no + // Cut the palette after the highest defined value, so there are no
+ // extra expanded values + // extra expanded values
+ if ( !pcfParser.expandColors ) + if ( !pcfParser.expandColors )
+ myCodeColor.cutAfter(maxValue); + mySemanticColor.cutAfter(maxValue);
+ +
myEventLabels = EventLabels( pcfParser ); myEventLabels = EventLabels( pcfParser );
myStateLabels = StateLabels( pcfParser ); myStateLabels = StateLabels( pcfParser );

View 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

View File

@@ -1,5 +1,6 @@
{ {
stdenv stdenv
, fetchFromGitHub
, autoreconfHook , autoreconfHook
, boost , boost
, libxml2 , libxml2
@@ -16,17 +17,19 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "paraver-kernel"; pname = "paraver-kernel";
version = "${src.shortRev}"; version = "4.12.0";
src = builtins.fetchGit { src = fetchFromGitHub {
url = "https://github.com/bsc-performance-tools/paraver-kernel.git"; owner = "bsc-performance-tools";
rev = "2e167da3cee78ca11e31b74faefb23f12bac2b8c"; # master (missing tag) repo = "paraver-kernel";
ref = "master"; rev = "v${version}";
sha256 = "sha256-Xs7g8ITZhPt00v7o2WlTddbou8C8Rc9kBMFpl2WsCS4=";
}; };
patches = [ patches = [
# https://github.com/bsc-performance-tools/paraver-kernel/pull/11 # https://github.com/bsc-performance-tools/paraver-kernel/pull/11
./dont-expand-colors.patch ./dont-expand-colors.patch
./fix-libxml2-deprecation.patch
]; ];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];