587713944a
GitOrigin-RevId: 6143fc5eeb9c4f00163267708e26191d1e918932
117 lines
3.1 KiB
Nix
117 lines
3.1 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchMavenArtifact,
|
|
jdk11,
|
|
makeWrapper
|
|
}:
|
|
|
|
let
|
|
pname = "aeron";
|
|
version = "1.43.0";
|
|
groupId = "io.aeron";
|
|
|
|
aeronAll_1_40_0 = fetchMavenArtifact {
|
|
inherit groupId;
|
|
version = "1.40.0";
|
|
artifactId = "aeron-all";
|
|
hash = "sha512-NyhYaQqOWcSBwzwpje6DMAp36CEgGSNXBSdaRrDyP+Fn2Z0nvh5o2czog6GKKtbjH9inYfyyF/21gehfgLF6qA==";
|
|
};
|
|
|
|
aeronSamples_1_40_0 = fetchMavenArtifact {
|
|
inherit groupId;
|
|
version = "1.40.0";
|
|
artifactId = "aeron-samples";
|
|
hash = "sha512-vyAq4mfLDDyaVk7wcIpPvPcxSt92Ek8mxfuuZwaX+0Wu9oJCpwbnjvS9+bvzcE4qSGxzY6eJIIX6nMdw0LkACg==";
|
|
};
|
|
|
|
aeronAll_1_42_1 = fetchMavenArtifact {
|
|
inherit groupId;
|
|
artifactId = "aeron-all";
|
|
version = "1.42.1";
|
|
hash = "sha512-pjX+JopK6onDwElMIroj+ZXrKwdPj5H2uPg08XgNlrK1rAkHo9MUT8weBGbuFVFDLeqOZrHj0bt1wJ9XgYY5aA==";
|
|
};
|
|
|
|
aeronSamples_1_42_1 = fetchMavenArtifact {
|
|
inherit groupId;
|
|
version = "1.42.1";
|
|
artifactId = "aeron-samples";
|
|
hash = "sha512-4JnHn22vJf2lmOg6ev5PD+/YiaL3KgfuyWAK92djX3KBVXO7ERMY2kH79dveVCJG1rbekvE1j1pnjaAIxwJcqg==";
|
|
};
|
|
|
|
aeronAll_1_43_0 = fetchMavenArtifact {
|
|
inherit groupId;
|
|
artifactId = "aeron-all";
|
|
version = "1.43.0";
|
|
hash = "sha512-ZKjUA1Kp++RLnCNUOi2K/iGc4zIIR4pC4j8qPfO+rcgp7ghZfgsXO8sB+JD307kzeikUXnPFX7ef28DlzI8s8Q==";
|
|
};
|
|
|
|
aeronSamples_1_43_0 = fetchMavenArtifact {
|
|
inherit groupId;
|
|
version = "1.43.0";
|
|
artifactId = "aeron-samples";
|
|
hash = "sha512-a/ti4Kd8WwzOzDGMgdYk0pxsu8vRA4kRD9cm4D3S+r6xc/rL8ECHVoogOMDeabDd1EYSIbx/sKE01BJOW7BVsg==";
|
|
};
|
|
|
|
aeronAll = aeronAll_1_43_0;
|
|
aeronSamples = aeronSamples_1_43_0;
|
|
|
|
in stdenv.mkDerivation {
|
|
|
|
inherit pname version;
|
|
|
|
buildInputs = [
|
|
aeronAll
|
|
aeronSamples
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
makeWrapper
|
|
];
|
|
|
|
dontUnpack = true;
|
|
dontConfigure = true;
|
|
dontBuild = true;
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir --parents "$out/share/java"
|
|
ln --symbolic "${aeronAll.jar}" "$out/share/java/${pname}-all.jar"
|
|
ln --symbolic "${aeronSamples.jar}" "$out/share/java/${pname}-samples.jar"
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
postFixup = ''
|
|
function wrap {
|
|
makeWrapper "${jdk11}/bin/java" "$out/bin/$1" \
|
|
--add-flags "--add-opens java.base/sun.nio.ch=ALL-UNNAMED" \
|
|
--add-flags "--class-path ${aeronAll.jar}" \
|
|
--add-flags "$2"
|
|
}
|
|
|
|
wrap "${pname}-media-driver" io.aeron.driver.MediaDriver
|
|
wrap "${pname}-stat" io.aeron.samples.AeronStat
|
|
wrap "${pname}-archiving-media-driver" io.aeron.archive.ArchivingMediaDriver
|
|
wrap "${pname}-archive-tool" io.aeron.archive.ArchiveTool
|
|
wrap "${pname}-logging-agent" io.aeron.agent.DynamicLoggingAgent
|
|
wrap "${pname}-clustered-media-driver" io.aeron.cluster.ClusteredMediaDriver
|
|
wrap "${pname}-cluster-tool" io.aeron.cluster.ClusterTool
|
|
'';
|
|
|
|
passthru = {
|
|
jar = aeronAll.jar;
|
|
};
|
|
|
|
meta = with lib; {
|
|
description = "Low-latency messaging library";
|
|
homepage = "https://aeron.io/";
|
|
license = licenses.asl20;
|
|
mainProgram = "${pname}-media-driver";
|
|
maintainers = [ maintainers.vaci ];
|
|
sourceProvenance = [
|
|
sourceTypes.binaryBytecode
|
|
];
|
|
};
|
|
}
|