Files
nixpkgs/pkgs/by-name/pl/plm/package.nix
Ihar Hrachyshka 567e8dfd8e treewide: clean up 'meta = with' pattern
This commit was created by a combination of scripts and tools:
- an ast-grep script to prefix things in meta with `lib.`,
- a modified nixf-diagnose / nixf combination to remove unused `with
lib;`, and
- regular nixfmt.

Co-authored-by: Wolfgang Walther <walther@technowledgy.de>
2025-12-10 18:09:49 +01:00

54 lines
1.2 KiB
Nix

{
lib,
stdenv,
fetchurl,
makeWrapper,
jre,
gcc,
valgrind,
}:
# gcc and valgrind are not strict dependencies, they could be made
# optional. They are here because plm can only help you learn C if you
# have them installed.
stdenv.mkDerivation rec {
pname = "plm";
version = "2.9.3";
src = fetchurl {
url = "https://github.com/BuggleInc/PLM/releases/download/v${version}/plm-${version}.jar";
sha256 = "0i9ghx9pm3kpn9x9n1hl10zdr36v5mv3drx8lvhsqwhlsvz42p5i";
name = "${pname}-${version}.jar";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [
jre
gcc
valgrind
];
dontUnpack = true;
installPhase = ''
runHook preInstall
mkdir -p "$prefix/bin"
makeWrapper ${jre}/bin/java $out/bin/plm \
--add-flags "-jar $src" \
--prefix PATH : "$PATH"
runHook postInstall
'';
meta = {
description = "Free cross-platform programming exerciser";
mainProgram = "plm";
homepage = "https://people.irisa.fr/Martin.Quinson/Teaching/PLM/";
license = lib.licenses.gpl3;
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
maintainers = [ ];
platforms = lib.platforms.all;
};
}