traccar: 6.15.2 -> 6.15.3

Switch to building Traccar from source.

Signed-off-by: David Wronek <david.wronek@mainlining.org>
This commit is contained in:
David Wronek
2026-05-05 09:36:10 +02:00
parent c7b78a8e18
commit c2710e8009
3 changed files with 3915 additions and 25 deletions

3801
pkgs/by-name/tr/traccar/deps.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,43 +1,100 @@
{
fetchzip,
lib,
pkgs,
stdenvNoCC,
stdenv,
fetchFromGitHub,
fetchNpmDeps,
makeWrapper,
npmHooks,
gradle,
jdk_headless,
jre_minimal,
nodejs,
protobuf,
}:
stdenvNoCC.mkDerivation rec {
pname = "traccar";
version = "6.15.2";
nativeBuildInputs = [ pkgs.makeWrapper ];
src = fetchzip {
stripRoot = false;
url = "https://github.com/traccar/traccar/releases/download/v${version}/traccar-other-${version}.zip";
hash = "sha256-PxZFun5fxe7Y9xU25WfeuxZGodD/vbs2dSqOzkzJgQc=";
let
jre = jre_minimal.override {
jdk = jdk_headless;
modules = [
"java.desktop"
"java.logging"
"java.management"
"java.naming"
"java.sql"
"jdk.crypto.ec"
];
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "traccar";
version = "6.15.3";
src = fetchFromGitHub {
owner = "traccar";
repo = "traccar";
tag = "v${finalAttrs.version}";
hash = "sha256-ic9l5WnbsCLl+THyz9LXkTGTTwyrm3gU4IPi3B362Gc=";
fetchSubmodules = true;
};
nativeBuildInputs = [
makeWrapper
npmHooks.npmConfigHook
gradle
nodejs
];
patches = [ ./use-protobuf-from-nixpkgs.patch ];
postPatch = ''
substituteAllInPlace build.gradle
'';
env.protocPath = lib.getExe' protobuf "protoc";
mitmCache = gradle.fetchDeps {
pkg = finalAttrs.finalPackage;
data = ./deps.json;
};
npmRoot = "traccar-web";
npmDeps = fetchNpmDeps {
src = "${finalAttrs.src}/traccar-web";
hash = "sha256-C/jfTuFFGdGNGyoYb5fhEmsKdWb5XfsoJ388Rzh35fY=";
};
preBuild = ''
pushd traccar-web
npm run build
popd
'';
gradleBuildTask = "build";
doCheck = true;
installPhase = ''
runHook preInstall
for dir in lib schema templates web ; do
mkdir -p $out/$dir
cp -a $dir $out
done
mkdir -p $out/share/traccar
install -Dm644 tracker-server.jar $out
makeWrapper ${pkgs.openjdk}/bin/java $out/bin/traccar \
mkdir -p $out/bin
cp -r {schema,target/*,templates} $out
cp -r traccar-web/build $out/web
cp -r traccar-web/src/resources/l10n $out/templates/translations
makeWrapper ${lib.getExe jre} $out/bin/traccar \
--add-flags "-jar $out/tracker-server.jar"
runHook postInstall
'';
__darwinAllowLocalNetworking = true;
meta = {
description = "Open source GPS tracking system";
homepage = "https://www.traccar.org/";
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
sourceProvenance = with lib.sourceTypes; [
binaryBytecode
fromSource
];
license = lib.licenses.asl20;
mainProgram = "traccar";
maintainers = with lib.maintainers; [ frederictobiasc ];
};
}
})

View File

@@ -0,0 +1,32 @@
diff --git a/build.gradle b/build.gradle
index e238ffefb..fb49ec8dd 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,3 +1,9 @@
+buildscript {
+ dependencies {
+ classpath 'com.google.protobuf:protobuf-gradle-plugin:0.10.0'
+ }
+}
+
plugins {
id "java"
id "checkstyle"
@@ -6,6 +12,8 @@ plugins {
id "com.github.ben-manes.versions" version "0.54.0"
}
+apply plugin: 'com.google.protobuf'
+
repositories {
mavenCentral()
}
@@ -76,7 +84,7 @@ ext.hk2Version = resolveTransitiveVersion(
protobuf {
protoc {
- artifact = "com.google.protobuf:protoc:$protobufVersion"
+ path = "@protocPath@"
}
}