Merge pull request #294958 from TomaSajt/projectlibre

projectlibre: make deterministic and clean up
This commit is contained in:
Peder Bergebakken Sundt 2024-04-23 00:48:10 +02:00 committed by GitHub
commit 40311becbb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,46 +1,68 @@
{ lib, stdenv, fetchgit, ant, jdk, makeWrapper, jre, coreutils, which }: { lib
, stdenv
, fetchgit
, ant
, jdk
, stripJavaArchivesHook
, makeWrapper
, jre
, coreutils
, which
}:
stdenv.mkDerivation rec { stdenv.mkDerivation {
pname = "projectlibre"; pname = "projectlibre";
version = "1.7.0"; version = "1.7.0";
src = fetchgit { src = fetchgit {
url = "https://git.code.sf.net/p/projectlibre/code"; url = "https://git.code.sf.net/p/projectlibre/code";
rev = "0c939507cc63e9eaeb855437189cdec79e9386c2"; # version 1.7.0 was not tagged rev = "0c939507cc63e9eaeb855437189cdec79e9386c2"; # version 1.7.0 was not tagged
sha256 = "0vy5vgbp45ai957gaby2dj1hvmbxfdlfnwcanwqm9f8q16qipdbq"; hash = "sha256-eLUbsQkYuVQxt4px62hzfdUNg2zCL/VOSVEVctfbxW8=";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [
buildInputs = [ ant jdk ]; ant
buildPhase = '' jdk
export ANT_OPTS=-Dbuild.sysclasspath=ignore stripJavaArchivesHook
${ant}/bin/ant -f openproj_build/build.xml makeWrapper
''; ];
resourcesPath = "openproj_build/resources"; buildPhase = ''
desktopItem = "${resourcesPath}/projectlibre.desktop"; runHook preBuild
ant -f openproj_build/build.xml
runHook postBuild
'';
installPhase = '' installPhase = ''
mkdir -p $out/share/{applications,projectlibre/samples,pixmaps,doc/projectlibre} $out/bin runHook preInstall
mkdir -p $out/share/{projectlibre/samples,doc/projectlibre}
pushd openproj_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"
substitute $resourcesPath/projectlibre $out/bin/projectlibre \
--replace "\"/usr/share/projectlibre\"" "\"$out/share/projectlibre\""
chmod +x $out/bin/projectlibre
wrapProgram $out/bin/projectlibre \ wrapProgram $out/bin/projectlibre \
--prefix PATH : "${jre}/bin:${coreutils}/bin:${which}/bin" --prefix PATH : ${lib.makeBinPath [ jre coreutils which ]}
cp -R openproj_build/dist/* $out/share/projectlibre runHook postInstall
cp -R openproj_build/license $out/share/doc/projectlibre
cp $desktopItem $out/share/applications
cp $resourcesPath/projectlibre.png $out/share/pixmaps
cp -R $resourcesPath/samples/* $out/share/projectlibre/samples
''; '';
meta = with lib; { meta = {
homepage = "https://www.projectlibre.com/";
description = "Project-Management Software similar to MS-Project"; description = "Project-Management Software similar to MS-Project";
homepage = "https://www.projectlibre.com/";
license = lib.licenses.cpal10;
mainProgram = "projectlibre"; mainProgram = "projectlibre";
maintainers = [ maintainers.Mogria ]; maintainers = with lib.maintainers; [ Mogria tomasajt ];
license = licenses.cpal10; platforms = jre.meta.platforms;
}; };
} }