forked from mirrors/nixpkgs
simgrid: 3.15 -> 3.17 (#32114)
* simgrid: 3.15 -> 3.17 + clean + add options * Add myself as maintainer * Fix typo
This commit is contained in:
commit
ae096444a2
|
@ -414,6 +414,7 @@
|
||||||
michaelpj = "Michael Peyton Jones <michaelpj@gmail.com>";
|
michaelpj = "Michael Peyton Jones <michaelpj@gmail.com>";
|
||||||
michalrus = "Michal Rus <m@michalrus.com>";
|
michalrus = "Michal Rus <m@michalrus.com>";
|
||||||
michelk = "Michel Kuhlmann <michel@kuhlmanns.info>";
|
michelk = "Michel Kuhlmann <michel@kuhlmanns.info>";
|
||||||
|
mickours = "Michael Mercier <mickours@gmail.com<";
|
||||||
midchildan = "midchildan <midchildan+nix@gmail.com>";
|
midchildan = "midchildan <midchildan+nix@gmail.com>";
|
||||||
mikefaille = "Michaël Faille <michael@faille.io>";
|
mikefaille = "Michaël Faille <michael@faille.io>";
|
||||||
mikoim = "Eshin Kunishima <ek@esh.ink>";
|
mikoim = "Eshin Kunishima <ek@esh.ink>";
|
||||||
|
|
|
@ -1,75 +1,106 @@
|
||||||
{ fetchurl, stdenv, cmake, perl, ruby, boost, lua5_3, graphviz, libsigcxx
|
{ stdenv, fetchFromGitHub, cmake, elfutils, perl, python3, boost, valgrind
|
||||||
, libunwind, elfutils, python3, doxygen
|
# Optional requirements
|
||||||
|
# Lua 5.3 needed and not available now
|
||||||
|
#, luaSupport ? false, lua5
|
||||||
|
, fortranSupport ? false, gfortran
|
||||||
|
, buildDocumentation ? false, transfig, ghostscript, doxygen
|
||||||
|
, buildJavaBindings ? false, openjdk
|
||||||
|
, modelCheckingSupport ? false, libunwind, libevent # Inside elfutils - , libelf, libevent, libdw
|
||||||
|
, debug ? false
|
||||||
|
, moreTests ? false
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
# helpers for options
|
||||||
version = "3.15";
|
let optionals = stdenv.lib.optionals;
|
||||||
name = "simgrid-${version}";
|
optionalString = stdenv.lib.optionalString;
|
||||||
|
optionOnOff = option: "${if option then "on" else "off"}";
|
||||||
|
in
|
||||||
|
|
||||||
src = fetchurl {
|
stdenv.mkDerivation rec {
|
||||||
url = "https://gforge.inria.fr/frs/download.php/36621/${name}.tar.gz";
|
major_version = "3";
|
||||||
sha256 = "1s595wc4z8hkvim3ypfdxy16pply6ckjg10v84cc0lx9pz6i3r6i";
|
minor_version = "17";
|
||||||
|
version = "v${major_version}.${minor_version}";
|
||||||
|
tagged_version = "${major_version}_${minor_version}";
|
||||||
|
name = "simgrid";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "simgrid";
|
||||||
|
repo = "simgrid";
|
||||||
|
rev = "v3_17";
|
||||||
|
sha256 = "0ffs9w141qhw571jsa9sch1cnr332vs4sgj6dsiij2mc24m6wpb4";
|
||||||
|
#rev = "master";
|
||||||
|
#sha256 = "0qvh1jzc2lpnp8234kjx1x4g1a5kfdn6kb15vhk160qgvj98nyqm";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ cmake perl ruby boost lua5_3 graphviz libsigcxx libunwind
|
nativeBuildInputs = [ cmake perl elfutils python3 boost valgrind]
|
||||||
elfutils python3 doxygen
|
++ optionals fortranSupport [gfortran]
|
||||||
];
|
++ optionals buildJavaBindings [openjdk]
|
||||||
|
++ optionals buildDocumentation [transfig ghostscript doxygen]
|
||||||
|
++ optionals modelCheckingSupport [libunwind libevent];
|
||||||
|
|
||||||
|
#buildInputs = optional luaSupport lua5;
|
||||||
|
|
||||||
preConfigure =
|
preConfigure =
|
||||||
# Make it so that libsimgrid.so will be found when running programs from
|
# Make it so that libsimgrid.so will be found when running programs from
|
||||||
# the build dir.
|
# the build dir.
|
||||||
'' export LD_LIBRARY_PATH="$PWD/src/.libs"
|
''
|
||||||
export cmakeFlags="-Dprefix=$out"
|
export LD_LIBRARY_PATH="$PWD/build/lib"
|
||||||
|
|
||||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE
|
|
||||||
-isystem $(echo "${libsigcxx}/lib/"sigc++*/include)
|
|
||||||
-isystem $(echo "${libsigcxx}/include"/sigc++* )
|
|
||||||
"
|
|
||||||
export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH:$(echo "${libsigcxx}/lib/"sigc++*)"
|
|
||||||
|
|
||||||
# Enable more functionality.
|
|
||||||
export cmakeFlags="$cmakeFlags -Denable_tracing=on -Denable_jedule=on
|
|
||||||
-Denable_latency_bound_tracking=on -Denable_lua=on
|
|
||||||
-Denable_ns3=off -Denable_gtnets=on
|
|
||||||
"
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
makeFlags = "VERBOSE=1";
|
# Release mode is not supported in SimGrid
|
||||||
|
cmakeBuildType = "Debug";
|
||||||
|
|
||||||
|
# Disable/Enable functionality
|
||||||
|
# Note: those packages are not packaged in Nixpkgs yet so some options
|
||||||
|
# are disabled:
|
||||||
|
# - papi: for enable_smpi_papi
|
||||||
|
# - ns3: for enable_ns3
|
||||||
|
# - lua53: for enable_lua
|
||||||
|
#
|
||||||
|
# For more information see:
|
||||||
|
# http://simgrid.gforge.inria.fr/simgrid/latest/doc/install.html#install_cmake_list
|
||||||
|
cmakeFlags= ''
|
||||||
|
-Denable_documentation=${optionOnOff buildDocumentation}
|
||||||
|
-Denable_java=${optionOnOff buildJavaBindings}
|
||||||
|
-Denable_fortran=${optionOnOff fortranSupport}
|
||||||
|
-Denable_model-checking=${optionOnOff modelCheckingSupport}
|
||||||
|
-Denable_ns3=off
|
||||||
|
-Denable_lua=off
|
||||||
|
-Denable_lib_in_jar=off
|
||||||
|
-Denable_maintainer_mode=off
|
||||||
|
-Denable_mallocators=on
|
||||||
|
-Denable_debug=on
|
||||||
|
-Denable_smpi=on
|
||||||
|
-Denable_smpi_ISP_testsuite=${optionOnOff moreTests}
|
||||||
|
-Denable_smpi_MPICH3_testsuite=${optionOnOff moreTests}
|
||||||
|
-Denable_compile_warnings=${optionOnOff debug}
|
||||||
|
-Denable_compile_optimizations=${optionOnOff (!debug)}
|
||||||
|
-Denable_lto=${optionOnOff (!debug)}
|
||||||
|
'';
|
||||||
|
#-Denable_lua=${optionOnOff luaSupport}
|
||||||
|
#-Denable_smpi_papi=${optionOnOff moreTests}
|
||||||
|
|
||||||
|
makeFlags = optionalString debug "VERBOSE=1";
|
||||||
|
|
||||||
preBuild =
|
preBuild =
|
||||||
/* Work around this:
|
''
|
||||||
|
# Some perl scripts are called to generate test during build which
|
||||||
[ 20%] Generating _msg_handle_simulator.c, _msg_handle_client.c, _msg_handle_server.c
|
# is before the fixupPhase of nix, so do this manualy here:
|
||||||
cd /tmp/nix-build-7yc8ghmf2yb8zi3bsri9b6qadwmfpzhr-simgrid-3.5.drv-0/simgrid-3.5/build/teshsuite/gras/msg_handle && ../../../bin/gras_stub_generator msg_handle /tmp/nix-build-7yc8ghmf2yb8zi3bsri9b6qadwmfpzhr-simgrid-3.5.drv-0/simgrid-3.5/teshsuite/gras/msg_handle/msg_handle.xml
|
patchShebangs ..
|
||||||
../../../bin/gras_stub_generator: error while loading shared libraries: libsimgrid.so.3.5: cannot open shared object file: No such file or directory
|
|
||||||
make[2]: *** [teshsuite/gras/msg_handle/_msg_handle_simulator.c] Error 127
|
|
||||||
make[2]: Leaving directory `/tmp/nix-build-7yc8ghmf2yb8zi3bsri9b6qadwmfpzhr-simgrid-3.5.drv-0/simgrid-3.5/build'
|
|
||||||
|
|
||||||
*/
|
|
||||||
'' export LD_LIBRARY_PATH="$PWD/lib:$LD_LIBRARY_PATH"
|
|
||||||
echo "\$LD_LIBRARY_PATH is \`$LD_LIBRARY_PATH'"
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
patchPhase =
|
doCheck = true;
|
||||||
'' for i in "src/smpi/"*
|
checkPhase = ''
|
||||||
do
|
runHook preCheck
|
||||||
test -f "$i" &&
|
|
||||||
sed -i "$i" -e's|/bin/bash|/bin/sh|g'
|
|
||||||
done
|
|
||||||
|
|
||||||
for i in $(grep -rl /usr/bin/perl .)
|
ctest --output-on-failure -E smpi-replay-multiple
|
||||||
do
|
|
||||||
sed -i "$i" -e's|/usr/bin/perl|${perl}/bin/perl|g'
|
runHook postCheck
|
||||||
done
|
|
||||||
patchShebangs ./tools/
|
|
||||||
'';
|
'';
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
# Fixing the few tests that fail is left as an exercise to the reader.
|
meta = with stdenv.lib; {
|
||||||
doCheck = false;
|
description = "Framework for the simulation of distributed applications";
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Simulator for distributed applications in heterogeneous environments";
|
|
||||||
|
|
||||||
longDescription =
|
longDescription =
|
||||||
'' SimGrid is a toolkit that provides core functionalities for the
|
'' SimGrid is a toolkit that provides core functionalities for the
|
||||||
simulation of distributed applications in heterogeneous distributed
|
simulation of distributed applications in heterogeneous distributed
|
||||||
|
@ -78,12 +109,9 @@ stdenv.mkDerivation rec {
|
||||||
scheduling on distributed computing platforms ranging from simple
|
scheduling on distributed computing platforms ranging from simple
|
||||||
network of workstations to Computational Grids.
|
network of workstations to Computational Grids.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
homepage = http://simgrid.gforge.inria.fr/;
|
homepage = http://simgrid.gforge.inria.fr/;
|
||||||
|
maintainers = with maintainers; [ mickours ];
|
||||||
license = stdenv.lib.licenses.lgpl2Plus;
|
platforms = platforms.x86_64;
|
||||||
|
license = licenses.lgpl2Plus;
|
||||||
maintainers = [ ];
|
|
||||||
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue