17 frontend = buildNpmPackage {
18 pname = "dependency-track-frontend";
21 # TODO: pinned due to build error on node 22
24 src = fetchFromGitHub {
25 owner = "DependencyTrack";
28 hash = "sha256-M7UtyhIuEi6ebkjO8OM0VVi8LQ+VqeVIzBgQwIzSAzg=";
31 npmDepsHash = "sha256-ZU5D3ZXLaZ1m2YP6uZmpzahP2JQPL9tdOHOyN9fp/XA=";
33 makeCacheWritable = true;
35 # The prepack script runs the build script, which we'd rather do in the build phase.
36 npmPackFlags = [ "--ignore-scripts" ];
40 maven.buildMavenPackage rec {
42 pname = "dependency-track";
44 src = fetchFromGitHub {
45 owner = "DependencyTrack";
46 repo = "dependency-track";
48 hash = "sha256-wn4HnOFhV02oq66LwBIOVzU+ehXemCuzOWcDASG/47c=";
52 ./0000-remove-frontend-download.patch
53 ./0001-add-junixsocket.patch
57 substituteInPlace pom.xml \
58 --replace-fail '<protocArtifact>''${tool.protoc.version}</protocArtifact>' \
59 "<protocCommand>${protobuf}/bin/protoc</protocCommand>"
62 mvnJdk = jre_headless;
63 mvnHash = "sha256-x1/b8LoXyGxCQiu7QB60XSpiufTk/y4492mOraFnRKY=";
64 manualMvnArtifacts = [ "com.coderplus.maven.plugins:copy-rename-maven-plugin:1.0.1" ];
67 mvnDepsParameters = lib.escapeShellArgs [
68 "-Dmaven.test.skip=true"
73 mvnParameters = lib.escapeShellArgs [
74 "-Dmaven.test.skip=true"
78 "-Dservices.bom.merge.skip=false"
79 "-Dlogback.configuration.file=${src}/src/main/docker/logback.xml"
80 "-Dcyclonedx-cli.path=${lib.getExe cyclonedx-cli}"
85 cp -r ${frontend}/lib/node_modules/@dependencytrack/frontend/dist frontend/
89 mvn cyclonedx:makeBom -Dmaven.repo.local=$mvnDeps/.m2 \
90 org.codehaus.mojo:exec-maven-plugin:exec@merge-services-bom
95 nativeBuildInputs = [ makeWrapper ];
100 install -Dm644 target/dependency-track-*.jar $out/share/dependency-track/dependency-track.jar
101 makeWrapper ${jre_headless}/bin/java $out/bin/dependency-track \
102 --add-flags "-jar $out/share/dependency-track/dependency-track.jar"
108 # passthru for nix-update
109 inherit (frontend) npmDeps;
111 inherit (nixosTests) dependency-track;
113 updateScript = nix-update-script { };
117 description = "Intelligent Component Analysis platform that allows organizations to identify and reduce risk in the software supply chain";
118 homepage = "https://github.com/DependencyTrack/dependency-track";
119 license = lib.licenses.asl20;
120 maintainers = lib.teams.cyberus.members;
121 mainProgram = "dependency-track";
122 inherit (jre_headless.meta) platforms;