nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchzip,
5 jdk11,
6 makeWrapper,
7}:
8
9stdenv.mkDerivation (finalAttrs: {
10 pname = "janusgraph";
11 version = "1.1.0";
12
13 src = fetchzip {
14 url = "https://github.com/JanusGraph/janusgraph/releases/download/v${finalAttrs.version}/janusgraph-${finalAttrs.version}.zip";
15 sha256 = "sha256-gEtiY/FXNCtpVlohcTTuZ1V/EHr/trqYQKYUKy9wN4U=";
16 };
17
18 nativeBuildInputs = [ makeWrapper ];
19
20 installPhase = ''
21 mkdir -p $out/bin $out/share/janusgraph
22 install -D $src/lib/*.jar $out/share/janusgraph
23 cd $src
24 find conf scripts -type f -exec install -D {} $out/share/janusgraph/{} \;
25
26 JANUSGRAPH_LIB=$out/share/janusgraph
27 classpath=""
28 # Add the slf4j-log4j12 binding
29 classpath="$classpath":$(find -L $JANUSGRAPH_LIB -name 'slf4j-log4j12*.jar' | sort | tr '\n' ':')
30 # Add the jars in $JANUSGRAPH_LIB that start with "janusgraph"
31 classpath="$classpath":$(find -L $JANUSGRAPH_LIB -name 'janusgraph*.jar' | sort | tr '\n' ':')
32 # Add the remaining jars in $JANUSGRAPH_LIB.
33 classpath="$classpath":$(find -L $JANUSGRAPH_LIB -name '*.jar' \
34 \! -name 'janusgraph*' \
35 \! -name 'slf4j-log4j12*.jar' | sort | tr '\n' ':')
36
37 makeWrapper ${jdk11}/bin/java $out/bin/janusgraph-server \
38 --add-flags "-classpath $classpath org.janusgraph.graphdb.server.JanusGraphServer"
39
40 # temporary workaround for
41 # https://github.com/NixOS/nixpkgs/pull/244400#issuecomment-1667330430
42 cd "$TMPDIR"
43 '';
44
45 meta = {
46 description = "Open-source, distributed graph database";
47 homepage = "https://janusgraph.org/";
48 mainProgram = "janusgraph-server";
49 license = lib.licenses.asl20;
50 platforms = lib.platforms.unix;
51 maintainers = [ lib.maintainers.ners ];
52 };
53})