nixos/alsa: reintroduce hardware.alsa.enablePersistence (#373529)
[NixPkgs.git] / pkgs / applications / misc / organicmaps / default.nix
blobab967d94a5cbe2c6b8a6526a4581b89bc8e8a37f
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , fetchpatch
5 , cmake
6 , ninja
7 , pkg-config
8 , which
9 , python3
10 , rsync
11 , wrapQtAppsHook
12 , qtbase
13 , qtpositioning
14 , qtsvg
15 , qtwayland
16 , libGLU
17 , libGL
18 , zlib
19 , icu
20 , freetype
21 , pugixml
22 , nix-update-script
25 let
26   world_feed_integration_tests_data = fetchFromGitHub {
27     owner = "organicmaps";
28     repo = "world_feed_integration_tests_data";
29     rev = "30ecb0b3fe694a582edfacc2a7425b6f01f9fec6";
30     hash = "sha256-1FF658OhKg8a5kKX/7TVmsxZ9amimn4lB6bX9i7pnI4=";
31   };
32 in stdenv.mkDerivation rec {
33   pname = "organicmaps";
34   version = "2024.11.27-12";
36   src = fetchFromGitHub {
37     owner = "organicmaps";
38     repo = "organicmaps";
39     rev = "${version}-android";
40     hash = "sha256-lBEDPqxdnaajMHlf7G/d1TYYL9yPZo8AGekoKmF1ObM=";
41     fetchSubmodules = true;
42   };
44   patches = [
45     # Fix for https://github.com/organicmaps/organicmaps/issues/7838
46     (fetchpatch {
47       url = "https://github.com/organicmaps/organicmaps/commit/1caf64e315c988cd8d5196c80be96efec6c74ccc.patch";
48       hash = "sha256-k3VVRgHCFDhviHxduQMVRUUvQDgMwFHIiDZKa4BNTyk=";
49     })
50   ];
52   postPatch = ''
53     # Disable certificate check. It's dependent on time
54     echo "exit 0" > tools/unix/check_cert.sh
56     # crude fix for https://github.com/organicmaps/organicmaps/issues/1862
57     echo "echo ${lib.replaceStrings ["." "-"] ["" ""] version}" > tools/unix/version.sh
59     # TODO use system boost instead, see https://github.com/organicmaps/organicmaps/issues/5345
60     patchShebangs 3party/boost/tools/build/src/engine/build.sh
62     # Prefetch test data, or the build system will try to fetch it with git.
63     ln -s ${world_feed_integration_tests_data} data/test_data/world_feed_integration_tests_data
64   '';
66   nativeBuildInputs = [
67     cmake
68     ninja
69     pkg-config
70     which
71     python3
72     rsync
73     wrapQtAppsHook
74   ];
76   # Most dependencies are vendored
77   buildInputs = [
78     qtbase
79     qtpositioning
80     qtsvg
81     qtwayland
82     libGLU
83     libGL
84     zlib
85     icu
86     freetype
87     pugixml
88   ];
90   # Yes, this is PRE configure. The configure phase uses cmake
91   preConfigure = ''
92     bash ./configure.sh
93   '';
95   passthru = {
96     updateScript = nix-update-script {
97       extraArgs = [ "-vr" "(.*)-android" ];
98     };
99   };
101   meta = with lib; {
102     # darwin: "invalid application of 'sizeof' to a function type"
103     broken = stdenv.hostPlatform.isDarwin;
104     homepage = "https://organicmaps.app/";
105     description = "Detailed Offline Maps for Travellers, Tourists, Hikers and Cyclists";
106     license = licenses.asl20;
107     maintainers = with maintainers; [ fgaz ];
108     platforms = platforms.all;
109     mainProgram = "OMaps";
110   };