nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ lib, stdenv, fetchurl, wrapQtAppsHook
2, freeglut, freealut, libGLU, libGL, libICE, libjpeg, openal, openscenegraph, plib
3, libSM, libunwind, libX11, xorgproto, libXext, libXi
4, libXmu, libXt, simgear, zlib, boost, cmake, libpng, udev, fltk13, apr
5, makeDesktopItem, qtbase, qtdeclarative, glew, curl
6}:
7
8let
9 version = "2020.3.18";
10 shortVersion = builtins.substring 0 6 version;
11 data = stdenv.mkDerivation rec {
12 pname = "flightgear-data";
13 inherit version;
14
15 src = fetchurl {
16 url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.txz";
17 sha256 = "sha256-U8lsHrw40Xo6a3jZw6GiPnOALvvg9PdecVAdkZewUjg=";
18 };
19
20 dontUnpack = true;
21
22 installPhase = ''
23 mkdir -p "$out/share/FlightGear"
24 tar xf "${src}" -C "$out/share/FlightGear/" --strip-components=1
25 '';
26 };
27in
28stdenv.mkDerivation rec {
29 pname = "flightgear";
30 # inheriting data for `nix-prefetch-url -A pkgs.flightgear.data.src`
31 inherit version data;
32
33 src = fetchurl {
34 url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2";
35 sha256 = "sha256-OajjGj/Bgqg8H/6PjXkwJHwbSQqtzbQ1b3Xwk3aI3jc=";
36 };
37
38 # Of all the files in the source and data archives, there doesn't seem to be
39 # a decent icon :-)
40 iconsrc = fetchurl {
41 url = "https://wiki.flightgear.org/w/images/6/62/FlightGear_logo.png";
42 sha256 = "1ikz413jia55vfnmx8iwrlxvx8p16ggm81mbrj66wam3q7s2dm5p";
43 };
44
45 desktopItem = makeDesktopItem {
46 name = "flightgear";
47 exec = "fgfs";
48 icon = iconsrc;
49 comment = "FlightGear Flight Simulator";
50 desktopName = "FlightGear";
51 genericName = "Flight simulator";
52 categories = [ "Game" "Simulation" ];
53 };
54
55 nativeBuildInputs = [ cmake wrapQtAppsHook ];
56 buildInputs = [
57 freeglut freealut libGLU libGL libICE libjpeg openal openscenegraph plib
58 libSM libunwind libX11 xorgproto libXext libXi
59 libXmu libXt simgear zlib boost libpng udev fltk13 apr qtbase
60 glew qtdeclarative curl
61 ];
62
63 postInstall = ''
64 mkdir -p "$out/share/applications/"
65 cp "${desktopItem}"/share/applications/* "$out/share/applications/" #*/
66 '';
67
68 qtWrapperArgs = [
69 "--set FG_ROOT ${data}/share/FlightGear"
70 ];
71
72 meta = with lib; {
73 description = "Flight simulator";
74 maintainers = with maintainers; [ raskin ];
75 platforms = platforms.linux;
76 hydraPlatforms = []; # disabled from hydra because it's so big
77 license = licenses.gpl2;
78 };
79}