nixpkgs/pkgs/development/tools/misc/bonnmotion/default.nix
stuebinm ff1a94e523 treewide: add meta.mainProgram to packages with a single binary
The nixpkgs-unstable channel's programs.sqlite was used to identify
packages producing exactly one binary, and these automatically added
to their package definitions wherever possible.
2024-03-19 03:14:51 +01:00

56 lines
1.6 KiB
Nix

{ stdenv, lib, fetchzip, substituteAll, bash, jre }:
stdenv.mkDerivation rec {
pname = "bonnmotion";
version = "3.0.1";
src = fetchzip {
url = "https://sys.cs.uos.de/bonnmotion/src/bonnmotion-${version}.zip";
sha256 = "16bjgr0hy6an892m5r3x9yq6rqrl11n91f9rambq5ik1cxjqarxw";
};
patches = [
# The software has a non-standard install bash script which kind of works.
# However, to make it fully functional, the automatically detection of the
# program paths must be substituted with full paths.
(substituteAll {
src = ./install.patch;
inherit bash jre;
})
];
installPhase = ''
runHook preInstall
./install
mkdir -p $out/bin $out/share/bonnmotion
cp -r ./classes ./lib $out/share/bonnmotion/
cp ./bin/bm $out/bin/
substituteInPlace $out/bin/bm \
--replace /build/source $out/share/bonnmotion
runHook postInstall
'';
meta = with lib; {
description = "A mobility scenario generation and analysis tool";
mainProgram = "bm";
longDescription = ''
BonnMotion is a Java software which creates and analyzes mobility
scenarios and is most commonly used as a tool for the investigation of
mobile ad hoc network characteristics. The scenarios can also be exported
for several network simulators, such as ns-2, ns-3, GloMoSim/QualNet,
COOJA, MiXiM, and ONE.
'';
homepage = "https://sys.cs.uos.de/bonnmotion/";
sourceProvenance = with sourceTypes; [
fromSource
binaryBytecode # source bundles dependency jars
];
license = licenses.gpl2Plus;
maintainers = with maintainers; [ oxzi ];
};
}