nixpkgs/pkgs/applications/misc/projectlibre/default.nix
2024-04-25 14:05:46 +02:00

80 lines
1.8 KiB
Nix

{
lib,
stdenv,
fetchgit,
ant,
jdk,
stripJavaArchivesHook,
makeWrapper,
jre,
coreutils,
which,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "projectlibre";
version = "1.9.3";
src = fetchgit {
url = "https://git.code.sf.net/p/projectlibre/code";
rev = "20814e88dc83694f9fc6780c2550ca5c8a87aa16"; # version 1.9.3 was not tagged
hash = "sha256-yXgYyy3jWxYMXKsNCRWdO78gYRmjKpO9U5WWU6PtwMU=";
};
nativeBuildInputs = [
ant
jdk
stripJavaArchivesHook
makeWrapper
];
runtimeDeps = [
jre
coreutils
which
];
env.JAVA_TOOL_OPTIONS = "-Dfile.encoding=UTF8";
buildPhase = ''
runHook preBuild
ant -f projectlibre_build/build.xml
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/{projectlibre/samples,doc/projectlibre}
pushd projectlibre_build
cp -R dist/* $out/share/projectlibre
cp -R license $out/share/doc/projectlibre
cp -R resources/samples/* $out/share/projectlibre/samples
install -Dm644 resources/projectlibre.desktop -t $out/share/applications
install -Dm644 resources/projectlibre.png -t $out/share/pixmaps
install -Dm755 resources/projectlibre -t $out/bin
popd
substituteInPlace $out/bin/projectlibre \
--replace-fail "/usr/share/projectlibre" "$out/share/projectlibre"
wrapProgram $out/bin/projectlibre \
--prefix PATH : ${lib.makeBinPath finalAttrs.runtimeDeps}
runHook postInstall
'';
meta = {
description = "Project-Management Software similar to MS-Project";
homepage = "https://www.projectlibre.com/";
license = lib.licenses.cpal10;
mainProgram = "projectlibre";
maintainers = with lib.maintainers; [
Mogria
tomasajt
];
platforms = jre.meta.platforms;
};
})