nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 132 lines 3.5 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchMavenArtifact, 5 jdk11, 6 makeWrapper, 7}: 8 9let 10 pname = "aeron"; 11 version = "1.44.1"; 12 groupId = "io.aeron"; 13 14 aeronAll_1_40_0 = fetchMavenArtifact { 15 inherit groupId; 16 version = "1.40.0"; 17 artifactId = "aeron-all"; 18 hash = "sha512-NyhYaQqOWcSBwzwpje6DMAp36CEgGSNXBSdaRrDyP+Fn2Z0nvh5o2czog6GKKtbjH9inYfyyF/21gehfgLF6qA=="; 19 }; 20 21 aeronSamples_1_40_0 = fetchMavenArtifact { 22 inherit groupId; 23 version = "1.40.0"; 24 artifactId = "aeron-samples"; 25 hash = "sha512-vyAq4mfLDDyaVk7wcIpPvPcxSt92Ek8mxfuuZwaX+0Wu9oJCpwbnjvS9+bvzcE4qSGxzY6eJIIX6nMdw0LkACg=="; 26 }; 27 28 aeronAll_1_42_1 = fetchMavenArtifact { 29 inherit groupId; 30 artifactId = "aeron-all"; 31 version = "1.42.1"; 32 hash = "sha512-pjX+JopK6onDwElMIroj+ZXrKwdPj5H2uPg08XgNlrK1rAkHo9MUT8weBGbuFVFDLeqOZrHj0bt1wJ9XgYY5aA=="; 33 }; 34 35 aeronSamples_1_42_1 = fetchMavenArtifact { 36 inherit groupId; 37 version = "1.42.1"; 38 artifactId = "aeron-samples"; 39 hash = "sha512-4JnHn22vJf2lmOg6ev5PD+/YiaL3KgfuyWAK92djX3KBVXO7ERMY2kH79dveVCJG1rbekvE1j1pnjaAIxwJcqg=="; 40 }; 41 42 aeronAll_1_43_0 = fetchMavenArtifact { 43 inherit groupId; 44 artifactId = "aeron-all"; 45 version = "1.43.0"; 46 hash = "sha512-ZKjUA1Kp++RLnCNUOi2K/iGc4zIIR4pC4j8qPfO+rcgp7ghZfgsXO8sB+JD307kzeikUXnPFX7ef28DlzI8s8Q=="; 47 }; 48 49 aeronSamples_1_43_0 = fetchMavenArtifact { 50 inherit groupId; 51 version = "1.43.0"; 52 artifactId = "aeron-samples"; 53 hash = "sha512-a/ti4Kd8WwzOzDGMgdYk0pxsu8vRA4kRD9cm4D3S+r6xc/rL8ECHVoogOMDeabDd1EYSIbx/sKE01BJOW7BVsg=="; 54 }; 55 56 aeronAll_1_44_1 = fetchMavenArtifact { 57 inherit groupId; 58 artifactId = "aeron-all"; 59 version = "1.44.1"; 60 hash = "sha256-O80bWp7F6mRh3me1znzpfFfFEpvvMVjL4PrAt7+3Fq0="; 61 }; 62 63 aeronSamples_1_44_1 = fetchMavenArtifact { 64 inherit groupId; 65 version = "1.44.1"; 66 artifactId = "aeron-samples"; 67 hash = "sha256-ZSuTed45BRzr4JJuGeXghUgEifv/FpnCzTNJWa+nwjo="; 68 }; 69 70 aeronAll = aeronAll_1_44_1; 71 aeronSamples = aeronSamples_1_44_1; 72 73in 74stdenv.mkDerivation { 75 76 inherit pname version; 77 78 buildInputs = [ 79 aeronAll 80 aeronSamples 81 ]; 82 83 nativeBuildInputs = [ 84 makeWrapper 85 ]; 86 87 dontUnpack = true; 88 dontConfigure = true; 89 dontBuild = true; 90 91 installPhase = '' 92 runHook preInstall 93 94 mkdir --parents "$out/share/java" 95 ln --symbolic "${aeronAll.jar}" "$out/share/java/${pname}-all.jar" 96 ln --symbolic "${aeronSamples.jar}" "$out/share/java/${pname}-samples.jar" 97 98 runHook postInstall 99 ''; 100 101 postFixup = '' 102 function wrap { 103 makeWrapper "${jdk11}/bin/java" "$out/bin/$1" \ 104 --add-flags "--add-opens java.base/sun.nio.ch=ALL-UNNAMED" \ 105 --add-flags "--class-path ${aeronAll.jar}" \ 106 --add-flags "$2" 107 } 108 109 wrap "${pname}-media-driver" io.aeron.driver.MediaDriver 110 wrap "${pname}-stat" io.aeron.samples.AeronStat 111 wrap "${pname}-archiving-media-driver" io.aeron.archive.ArchivingMediaDriver 112 wrap "${pname}-archive-tool" io.aeron.archive.ArchiveTool 113 wrap "${pname}-logging-agent" io.aeron.agent.DynamicLoggingAgent 114 wrap "${pname}-clustered-media-driver" io.aeron.cluster.ClusteredMediaDriver 115 wrap "${pname}-cluster-tool" io.aeron.cluster.ClusterTool 116 ''; 117 118 passthru = { 119 jar = aeronAll.jar; 120 }; 121 122 meta = with lib; { 123 description = "Low-latency messaging library"; 124 homepage = "https://aeron.io/"; 125 license = licenses.asl20; 126 mainProgram = "${pname}-media-driver"; 127 maintainers = [ maintainers.vaci ]; 128 sourceProvenance = [ 129 sourceTypes.binaryBytecode 130 ]; 131 }; 132}