From a076d7d3d05bdff945a4cdb521847e3bd248c77d Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Wed, 18 Nov 2020 14:00:19 +0100 Subject: [PATCH] Add paraver with some patches for tiling WM --- bsc/paraver/default.nix | 65 +++++++++++++++++++++++++++++++++++++++ bsc/paraver/kernel.nix | 35 +++++++++++++++++++++ bsc/paraver/wxparaver.nix | 47 ++++++++++++++++++++++++++++ overlay.nix | 7 +++++ 4 files changed, 154 insertions(+) create mode 100644 bsc/paraver/default.nix create mode 100644 bsc/paraver/kernel.nix create mode 100644 bsc/paraver/wxparaver.nix diff --git a/bsc/paraver/default.nix b/bsc/paraver/default.nix new file mode 100644 index 0000000..7c441b8 --- /dev/null +++ b/bsc/paraver/default.nix @@ -0,0 +1,65 @@ +{ + stdenv +, fetchFromGitHub +, boost +, libxml2 +, xml2 +, fetchurl +, wxGTK31 +, autoconf +, automake +}: + +let + wx = wxGTK31; +in +stdenv.mkDerivation rec { + pname = "wxparaver"; + version = "4.8.2"; + + src = fetchurl { + url = "https://ftp.tools.bsc.es/wxparaver/wxparaver-${version}-src.tar.bz2"; + sha256 = "0b8rrhnf7h8j72pj6nrxkrbskgg9b5w60nxi47nxg6275qvfq8hd"; + }; + + enableParallelBuilding = true; + + # What would we do without the great gamezelda: + # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=wxparaver + postPatch = '' + pushd src/wxparaver + sed -i 's|-lparaver-kernel -lparaver-api|-L../../paraver-kernel/src/.libs -L../../paraver-kernel/api/.libs -lparaver-kernel -lparaver-api|g' src/Makefile.am + sed -i 's|^wxparaver_bin_CXXFLAGS =.*|& -I../../paraver-kernel -I../../paraver-kernel/api|' src/Makefile.am + sed -i 's| -L$PARAVER_LIBDIR||g' configure.ac + popd + + # Patch shebang as /usr/bin/env is missing in nix + sed -i '1c#!/bin/sh' src/paraver-cfgs/install.sh + + sed -i '1524d' src/wxparaver/src/gtimeline.cpp + sed -i '806d' src/wxparaver/src/gtimeline.cpp + sed -i '142d' src/wxparaver/src/paravermain.cpp + ''; + #TODO: Move the sed commands to proper patches (and maybe send them upstream?) + + preConfigure = '' + pushd src/wxparaver + autoreconf -i -f + popd + ''; + + configureFlags = [ + "--with-boost=${boost}" + "--with-wx-config=${wx}/bin/wx-config" + ]; + + buildInputs = [ + boost + xml2 + libxml2.dev + wx + autoconf + automake + ]; + +} diff --git a/bsc/paraver/kernel.nix b/bsc/paraver/kernel.nix new file mode 100644 index 0000000..0a6c0b9 --- /dev/null +++ b/bsc/paraver/kernel.nix @@ -0,0 +1,35 @@ +{ stdenv +, fetchFromGitHub +, boost +, libxml2 +, xml2 +, fetchurl +, symlinkJoin +}: + +stdenv.mkDerivation rec { + pname = "paraver-kernel"; + version = "4.8.2"; + + src = fetchurl { + url = "https://ftp.tools.bsc.es/wxparaver/wxparaver-${version}-src.tar.bz2"; + sha256 = "0b8rrhnf7h8j72pj6nrxkrbskgg9b5w60nxi47nxg6275qvfq8hd"; + }; + + postUnpack = "sourceRoot=$sourceRoot/src/paraver-kernel"; + + enableParallelBuilding = true; + + preConfigure = '' + configureFlagsArray=( + "--with-boost=${boost}" + ) + ''; + + buildInputs = [ + boost + xml2 + libxml2.dev + ]; + +} diff --git a/bsc/paraver/wxparaver.nix b/bsc/paraver/wxparaver.nix new file mode 100644 index 0000000..5a2dfce --- /dev/null +++ b/bsc/paraver/wxparaver.nix @@ -0,0 +1,47 @@ +{ + stdenv +, fetchFromGitHub +, boost +, libxml2 +, xml2 +, fetchurl +, wxGTK30-gtk3 +, paraver-kernel +}: + +let + wx = wxGTK30-gtk3; +in +stdenv.mkDerivation rec { + pname = "wxparaver"; + version = "4.8.2"; + + src = fetchurl { + url = "https://ftp.tools.bsc.es/wxparaver/wxparaver-${version}-src.tar.bz2"; + sha256 = "0b8rrhnf7h8j72pj6nrxkrbskgg9b5w60nxi47nxg6275qvfq8hd"; + }; + + postUnpack = "sourceRoot=$sourceRoot/src/wxparaver"; + enableParallelBuilding = true; + + preConfigure = '' + configureFlagsArray=( + "--with-boost=${boost}" + "--with-wx-config=${wx}/bin/wx-config" + --with-wxpropgrid-dir= + "--with-paraver=${paraver-kernel}" + "--enable-debug=yes" + "CXXFLAGS=-g" + "CFLAGS=-g" + ) + ''; + + buildInputs = [ + boost + xml2 + libxml2.dev + wx + paraver-kernel + ]; + +} diff --git a/overlay.nix b/overlay.nix index 289c661..71a0479 100644 --- a/overlay.nix +++ b/overlay.nix @@ -97,6 +97,13 @@ let fftw = callPackage ./bsc/fftw/default.nix { }; + paraver = callPackage ./bsc/paraver/default.nix { }; + paraverDebug = bsc.paraver.overrideAttrs (old: + { + dontStrip = true; + enableDebugging = true; + }); + extrae = callPackage ./bsc/extrae/default.nix { }; tampi = bsc.tampiRelease;