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
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; }
)

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 { };
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; };

View File

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

View File

@@ -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
'';
}

View File

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

View File

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

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
, fetchFromGitHub
, autoreconfHook
, boost
, libxml2
@@ -18,14 +19,17 @@ 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 ];
hardeningDisable = [ "all" ];
# 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
--- 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 );

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
, fetchFromGitHub
, autoreconfHook
, boost
, libxml2
@@ -16,17 +17,19 @@ 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
./fix-libxml2-deprecation.patch
];
hardeningDisable = [ "all" ];