1{
2 lib,
3 stdenv,
4 fetchFromGitLab,
5 wrapQtAppsHook,
6 libglut,
7 freealut,
8 libGLU,
9 libGL,
10 libICE,
11 libjpeg,
12 openal,
13 openscenegraph,
14 plib,
15 libSM,
16 libunwind,
17 libX11,
18 xorgproto,
19 libXext,
20 libXi,
21 libXmu,
22 libXt,
23 simgear,
24 zlib,
25 boost,
26 cmake,
27 libpng,
28 udev,
29 fltk13,
30 apr,
31 qtbase,
32 qtquickcontrols2,
33 qtdeclarative,
34 glew,
35 curl,
36}:
37
38let
39 version = "2024.1.1";
40 data = stdenv.mkDerivation rec {
41 pname = "flightgear-data";
42 inherit version;
43
44 src = fetchFromGitLab {
45 owner = "flightgear";
46 repo = "fgdata";
47 tag = "v${version}";
48 hash = "sha256-PdqsIZw9mSrvnqqB/fVFjWPW9njhXLWR/2LQCMoBLQI=";
49 };
50
51 dontUnpack = true;
52
53 installPhase = ''
54 mkdir -p "$out/share/FlightGear"
55 cp ${src}/* -a "$out/share/FlightGear/"
56 '';
57 };
58in
59stdenv.mkDerivation rec {
60 pname = "flightgear";
61 # inheriting data for `nix-prefetch-url -A pkgs.flightgear.data.src`
62 inherit version data;
63
64 src = fetchFromGitLab {
65 owner = "flightgear";
66 repo = "flightgear";
67 tag = "v${version}";
68 hash = "sha256-h4N18VAbJGQSBKA+eEQxej5e5MEwAcZpvH+dpTypM+k=";
69 };
70
71 nativeBuildInputs = [
72 cmake
73 wrapQtAppsHook
74 ];
75 buildInputs = [
76 libglut
77 freealut
78 libGLU
79 libGL
80 libICE
81 libjpeg
82 openal
83 openscenegraph
84 plib
85 libSM
86 libunwind
87 libX11
88 xorgproto
89 libXext
90 libXi
91 libXmu
92 libXt
93 simgear
94 zlib
95 boost
96 libpng
97 udev
98 fltk13
99 apr
100 qtbase
101 qtquickcontrols2
102 glew
103 qtdeclarative
104 curl
105 ];
106
107 qtWrapperArgs = [
108 "--set FG_ROOT ${data}/share/FlightGear"
109 ];
110
111 meta = with lib; {
112 description = "Flight simulator";
113 maintainers = with maintainers; [ raskin ];
114 platforms = platforms.linux;
115 hydraPlatforms = [ ]; # disabled from hydra because it's so big
116 license = licenses.gpl2Plus;
117 mainProgram = "fgfs";
118 };
119}