Merge pull request #297131 from TomaSajt/astral

astral: make deterministic and clean up
This commit is contained in:
Weijia Wang 2024-03-20 14:47:27 +01:00 committed by GitHub
commit 9865fb3e29
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 55 additions and 16 deletions

View File

@ -2,49 +2,67 @@
, stdenvNoCC
, fetchFromGitHub
, jdk8
, makeWrapper
, jre8
, strip-nondeterminism
, makeWrapper
, zip
}:
let
jdk = jdk8;
jre = jre8;
in
stdenvNoCC.mkDerivation rec {
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "astral";
version = "5.7.1";
src = fetchFromGitHub {
owner = "smirarab";
repo = "ASTRAL";
rev = "v${version}";
sha256 = "043w2z6gbrisqirdid022f4b8jps1pp5syi344krv2bis1gjq5sn";
rev = "v${finalAttrs.version}";
hash = "sha256-VhcsX9BxiZ0nISN6Xe4N+kq0iBMCtNhyxDrm9cwXfBA=";
};
nativeBuildInputs = [ jdk makeWrapper jre zip ];
patches = [
# we can't use stripJavaArchivesHook here, because the build process puts a .jar file into a zip file
# this patch calls strip-nondeterminism manually
./make-deterministic.patch
];
nativeBuildInputs = [
jdk
zip
strip-nondeterminism
makeWrapper
];
buildPhase = ''
runHook preBuild
patchShebangs ./make.sh
./make.sh
runHook postBuild
'';
doCheck = true;
checkPhase = ''
runHook preCheck
java -jar astral.${version}.jar -i main/test_data/song_primates.424.gene.tre
java -jar astral.${finalAttrs.version}.jar -i main/test_data/song_primates.424.gene.tre
runHook postCheck
'';
installPhase = ''
mkdir -p $out/share/lib
mkdir -p $out/bin
mv astral.${version}.jar $out/share/
mv lib/*.jar $out/share/lib
mv Astral.${version}.zip $out/share/
cp -a main/test_data $out/share/
runHook preInstall
install -Dm644 astral.${finalAttrs.version}.jar -t $out/share
install -Dm644 lib/*.jar -t $out/share/lib
install -Dm644 Astral.${finalAttrs.version}.zip -t $out/share
cp -a main/test_data $out/share
makeWrapper ${jre}/bin/java $out/bin/astral \
--add-flags "-jar $out/share/astral.${version}.jar"
--add-flags "-jar $out/share/astral.${finalAttrs.version}.jar"
runHook postInstall
'';
meta = with lib; {
@ -53,9 +71,9 @@ stdenvNoCC.mkDerivation rec {
mainProgram = "astral";
sourceProvenance = with sourceTypes; [
fromSource
binaryBytecode # source bundles dependencies as jars
binaryBytecode # source bundles dependencies as jars
];
license = licenses.asl20;
maintainers = with maintainers; [ bzizou ];
maintainers = with maintainers; [ bzizou tomasajt ];
};
}
})

View File

@ -0,0 +1,21 @@
diff --git a/make.sh b/make.sh
index 3ff6529..937b1a2 100644
--- a/make.sh
+++ b/make.sh
@@ -17,6 +17,8 @@ jar cvfm ../astral.$version.jar ../manifest.text phylonet/util/BitSet.* phylonet
cd ..
+strip-nondeterminism --type jar astral.$version.jar
+
chmod +x astral.$version.jar
sed -e "s/__astral.jar__/astral.$version.jar/g" -e "s/__astral.zip__/Astral.$version.zip/g" README.template.md > README.md
sed -e "s/__astral.jar__/astral.$version.jar/g" -e "s/__astral.zip__/Astral.$version.zip/g" astral-tutorial-template.md > astral-tutorial.md
@@ -32,6 +34,7 @@ ln -s ../astral-tutorial.pdf .
cd ..
rm -f Astral.$version.zip
zip -r Astral.$version.zip Astral
+strip-nondeterminism --type zip Astral.$version.zip
set +x
echo "