Merge pull request #330634 from r-ryantm/auto-update/circumflex
[NixPkgs.git] / pkgs / desktops / gnome / apps / gnome-maps / default.nix
blob7bc6880496c45c84d0edf45b133da8113ee083b3
1 { stdenv
2 , lib
3 , fetchurl
4 , meson
5 , ninja
6 , gettext
7 , python3
8 , pkg-config
9 , gnome
10 , glib
11 , gtk4
12 , gobject-introspection
13 , gdk-pixbuf
14 , librest_1_0
15 , libgweather
16 , geoclue2
17 , wrapGAppsHook4
18 , desktop-file-utils
19 , libportal
20 , libshumate
21 , libsecret
22 , libsoup_3
23 , gsettings-desktop-schemas
24 , gjs
25 , libadwaita
26 , geocode-glib_2
27 , tzdata
30 stdenv.mkDerivation (finalAttrs: {
31   pname = "gnome-maps";
32   version = "46.11";
34   src = fetchurl {
35     url = "mirror://gnome/sources/gnome-maps/${lib.versions.major finalAttrs.version}/gnome-maps-${finalAttrs.version}.tar.xz";
36     hash = "sha256-lAtBuXQLCBMyXjkWdYcWz4+g7k4MkZHyYM7AbZITWDU=";
37   };
39   doCheck = !stdenv.isDarwin;
41   nativeBuildInputs = [
42     gettext
43     meson
44     ninja
45     pkg-config
46     wrapGAppsHook4
47     gobject-introspection
48     # For post install script
49     desktop-file-utils
50     glib
51     gtk4
52   ];
54   buildInputs = [
55     gdk-pixbuf
56     glib
57     geoclue2
58     geocode-glib_2
59     gjs
60     gsettings-desktop-schemas
61     gtk4
62     libportal
63     libshumate
64     libgweather
65     libadwaita
66     librest_1_0
67     libsecret
68     libsoup_3
69   ];
71   postPatch = ''
72     # The .service file isn't wrapped with the correct environment
73     # so misses GIR files when started. By re-pointing from the gjs
74     # entry point to the wrapped binary we get back to a wrapped
75     # binary.
76     substituteInPlace "data/org.gnome.Maps.service.in" \
77         --replace "Exec=@pkgdatadir@/@app-id@" \
78                   "Exec=$out/bin/gnome-maps"
79   '';
81   preCheck = ''
82     # “time.js” included by “timeTest” and “translationsTest” depends on “org.gnome.desktop.interface” schema.
83     export XDG_DATA_DIRS="${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:$XDG_DATA_DIRS"
84     export HOME=$(mktemp -d)
85     export TZDIR=${tzdata}/share/zoneinfo
87     # Our gobject-introspection patches make the shared library paths absolute
88     # in the GIR files. When running tests, the library is not yet installed,
89     # though, so we need to replace the absolute path with a local one during build.
90     # We are using a symlink that we will delete before installation.
91     mkdir -p $out/lib/gnome-maps
92     ln -s $PWD/lib/libgnome-maps.so.0 $out/lib/gnome-maps/libgnome-maps.so.0
93   '';
95   postCheck = ''
96     rm $out/lib/gnome-maps/libgnome-maps.so.0
97   '';
99   passthru = {
100     updateScript = gnome.updateScript {
101       packageName = "gnome-maps";
102       attrPath = "gnome.gnome-maps";
103     };
104   };
106   meta = with lib; {
107     homepage = "https://apps.gnome.org/Maps/";
108     description = "Map application for GNOME 3";
109     mainProgram = "gnome-maps";
110     maintainers = teams.gnome.members;
111     license = licenses.gpl2Plus;
112     platforms = platforms.unix;
113   };