Files
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

104 lines
2.2 KiB
Nix

{
lib,
stdenv,
gccStdenv,
coreutils,
fetchFromGitHub,
openjdk,
jre,
cctools,
copyDesktopItems,
makeDesktopItem,
makeWrapper,
}:
let
stdenv' = if stdenv.hostPlatform.isDarwin then gccStdenv else stdenv;
in
stdenv'.mkDerivation (finalAttrs: {
pname = "prism-model-checker";
version = "4.9";
src = fetchFromGitHub {
owner = "prismmodelchecker";
repo = "prism";
rev = "v${finalAttrs.version}";
hash = "sha256-eoyMGrXta49j2h/bStPuzrF6OZd/l2aQBngPbTZEvAo=";
};
nativeBuildInputs = [
openjdk
copyDesktopItems
makeWrapper
]
++ lib.optionals stdenv'.hostPlatform.isDarwin [ cctools ];
desktopItems = [
(makeDesktopItem {
name = "prism-model-checker-xprism";
desktopName = "XPrism";
type = "Application";
icon = "prism-model-checker";
terminal = false;
categories = [
"Science"
"Math"
];
exec = "xprism";
comment = "Probabalistic Symbolic Model Checker";
})
];
postPatch = ''
substituteInPlace prism/install.sh --replace-fail "/bin/mv" "mv"
'';
makeFlags = [
"JAVA_DIR=${openjdk}"
"release_config"
"clean_all"
"all"
"binary"
];
preBuild = ''
cd prism
'';
installPhase = ''
runHook preInstall
mkdir --parents $out/share/
cp -r bin/ $out/
cp -r lib/ $out/
cp -r etc/{scripts,syntax-highlighters,prism{.css,.tex,-eclipse-formatter.xml}} -t $out/share
for size in 16 24 32 48 64 128 256; do
mkdir --parents $out/share/icons/hicolor/''${size}x''${size}/apps
cp etc/icons/p''${size}.png $out/share/icons/hicolor/''${size}x''${size}/apps/prism-model-checker.png
done
mv install.sh $out/
cd $out
./install.sh
rm install.sh
for f in $out/bin/*; do
wrapProgram $f \
--set JAVA_HOME ${jre.home} \
--set PRISM_JAVA ${lib.getExe jre} \
--prefix PATH: ${lib.makeBinPath [ jre ]}
done
runHook postInstall
'';
meta = {
description = "Probabalistic Symbolic Model Checker";
homepage = "https://www.prismmodelchecker.org";
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.astrobeastie ];
platforms = lib.platforms.unix;
mainProgram = "prism";
};
})