base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / pkgs / by-name / va / vatprism / package.nix
blobbdc406091d003523b149869fe32d2cdcd15687be
2   lib,
3   stdenv,
4   jdk,
5   maven,
6   makeWrapper,
7   fetchFromGitHub,
8   libGL,
9   libxkbcommon,
10   wayland,
11   fontconfig,
12   libX11,
13   libXcursor,
14   libXi,
15   libXrandr,
16   libXxf86vm,
17   libXtst,
18   copyDesktopItems,
19   makeDesktopItem,
21 let
22   libPath = lib.makeLibraryPath [
23     libGL
24     libxkbcommon
25     wayland
26     libX11
27     libXcursor
28     libXi
29     libXrandr
30     libXxf86vm
31     libXtst
32     fontconfig
33   ];
35 maven.buildMavenPackage rec {
36   pname = "vatprism";
37   version = "0.3.5";
38   src = fetchFromGitHub {
39     owner = "marvk";
40     repo = "vatprism";
41     rev = "refs/tags/v${version}";
42     hash = "sha256-ofEwHUCm79roHe2bawmKFw2QHhIonnlkFG5nhE6uN+g=";
43   };
45   nativeBuildInputs = [
46     makeWrapper
47     copyDesktopItems
48   ];
49   # https://github.com/marvk/vatprism/pull/141
50   patches = [ ./0001-Fix-build-on-JDK-21.patch ];
52   desktopItems = [
53     (makeDesktopItem {
54       name = "vatprism";
55       desktopName = "VATprism";
56       exec = "vatprism";
57       terminal = false;
58       icon = "vatprism";
59     })
60   ];
62   mvnHash =
63     if (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) then
64       "sha256-x0nFt2C7dZqMdllI1+Io9SPBY2J/dVgBTVb9T24vFFI="
65     else
66       "sha256-9uyNCUqnMgpiwm2kz544pWNB/SkRpASm2Dln0e4yZos=";
68   installPhase = ''
69     runHook preInstall
70     # create the bin directory
71     mkdir -p $out/bin $out/share/icons/hicolor/256x256/apps
73     # copy out the JAR
74     # Maven already setup the classpath to use m2 repository layout
75     # with the prefix of lib/
76     cp target-fat-jar/vatsim-map-${version}-fat.jar $out/
77     cp src/main/resources/net/marvk/fs/vatsim/map/icon-256.png $out/share/icons/hicolor/256x256/apps/vatprism.png
79     # create a wrapper that will automatically set the classpath
80     # this should be the paths from the dependency derivation
81     makeWrapper ${jdk}/bin/java $out/bin/vatprism \
82         --add-flags "-jar $out/vatsim-map-${version}-fat.jar" \
83         --set JAVA_HOME ${jdk.home} \
84         --suffix LD_LIBRARY_PATH : ${libPath}
85     runHook postInstall
86   '';
88   meta = {
89     description = "VATSIM map and data explorer";
90     longDescription = ''
91       VATprism is a VATSIM Map and VATSIM Data Explorer, VATSIM being the
92       Virtual Air Traffic Simulation Network. VATprism allows users to explore
93       available ATC services, connected pilots, Airports, Flight and Upper
94       Information Regions and more!
95     '';
96     homepage = "https://vatprism.org/";
97     mainProgram = "vatprism";
98     license = lib.licenses.agpl3Plus;
99     platforms = lib.platforms.linux;
100     maintainers = with lib.maintainers; [ thepuzzlemaker ];
101   };