c9baba9212
(My OCD kicked in today...) Remove repeated package names, capitalize first word, remove trailing periods and move overlong descriptions to longDescription. I also simplified some descriptions as well, when they were particularly long or technical, often based on Arch Linux' package descriptions. I've tried to stay away from generated expressions (and I think I succeeded). Some specifics worth mentioning: * cron, has "Vixie Cron" in its description. The "Vixie" part is not mentioned anywhere else. I kept it in a parenthesis at the end of the description. * ctags description started with "Exuberant Ctags ...", and the "exuberant" part is not mentioned elsewhere. Kept it in a parenthesis at the end of description. * nix has the description "The Nix Deployment System". Since that doesn't really say much what it is/does (especially after removing the package name!), I changed that to "Powerful package manager that makes package management reliable and reproducible" (borrowed from nixos.org). * Tons of "GNU Foo, Foo is a [the important bits]" descriptions is changed to just [the important bits]. If the package name doesn't contain GNU I don't think it's needed to say it in the description either.
88 lines
3.1 KiB
Nix
88 lines
3.1 KiB
Nix
{ fetchurl, stdenv, cmake, perl, ruby, boost, lua5_1, graphviz, libsigcxx
|
|
, libunwind, elfutils
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
version = "3.11.1";
|
|
name = "simgrid-${version}";
|
|
|
|
src = fetchurl {
|
|
url = "https://gforge.inria.fr/frs/download.php/33686/${name}.tar.gz";
|
|
sha256 = "0mkrzxpf42lmn96khfl1791vram67r2nqsgmppd2yil889nyz5kp";
|
|
};
|
|
|
|
buildInputs = [ cmake perl ruby boost lua5_1 graphviz libsigcxx libunwind
|
|
elfutils
|
|
];
|
|
|
|
preConfigure =
|
|
# Make it so that libsimgrid.so will be found when running programs from
|
|
# the build dir.
|
|
'' export LD_LIBRARY_PATH="$PWD/src/.libs"
|
|
export cmakeFlags="-Dprefix=$out"
|
|
|
|
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=on -Denable_gtnets=on
|
|
"
|
|
'';
|
|
|
|
makeFlags = "VERBOSE=1";
|
|
|
|
preBuild =
|
|
/* Work around this:
|
|
|
|
[ 20%] Generating _msg_handle_simulator.c, _msg_handle_client.c, _msg_handle_server.c
|
|
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
|
|
../../../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 =
|
|
'' for i in "src/smpi/"*
|
|
do
|
|
test -f "$i" &&
|
|
sed -i "$i" -e's|/bin/bash|/bin/sh|g'
|
|
done
|
|
|
|
for i in $(grep -rl /usr/bin/perl .)
|
|
do
|
|
sed -i "$i" -e's|/usr/bin/perl|${perl}/bin/perl|g'
|
|
done
|
|
'';
|
|
|
|
# Fixing the few tests that fail is left as an exercise to the reader.
|
|
doCheck = false;
|
|
|
|
meta = {
|
|
description = "Simulator for distributed applications in heterogeneous environments";
|
|
|
|
longDescription =
|
|
'' SimGrid is a toolkit that provides core functionalities for the
|
|
simulation of distributed applications in heterogeneous distributed
|
|
environments. The specific goal of the project is to facilitate
|
|
research in the area of distributed and parallel application
|
|
scheduling on distributed computing platforms ranging from simple
|
|
network of workstations to Computational Grids.
|
|
'';
|
|
|
|
homepage = http://simgrid.gforge.inria.fr/;
|
|
|
|
license = stdenv.lib.licenses.lgpl2Plus;
|
|
|
|
maintainers = [ ];
|
|
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
|
|
};
|
|
}
|