python312Packages.icontract: relax deps (#380554)
[NixPkgs.git] / pkgs / by-name / ge / geoclue2 / package.nix
blobcb6e524a9cb8e7e11b32eb7a30b2fc71f52ef531
2   lib,
3   stdenv,
4   fetchFromGitLab,
5   intltool,
6   meson,
7   mesonEmulatorHook,
8   ninja,
9   pkg-config,
10   gtk-doc,
11   docbook-xsl-nons,
12   docbook_xml_dtd_412,
13   glib,
14   json-glib,
15   libsoup_3,
16   libnotify,
17   gdk-pixbuf,
18   modemmanager,
19   avahi,
20   glib-networking,
21   python3,
22   wrapGAppsHook3,
23   gobject-introspection,
24   vala,
25   withDemoAgent ? false,
26   nix-update-script,
29 stdenv.mkDerivation (finalAttrs: {
30   pname = "geoclue";
31   version = "2.7.2";
33   outputs = [
34     "out"
35     "dev"
36     "devdoc"
37   ];
39   src = fetchFromGitLab {
40     domain = "gitlab.freedesktop.org";
41     owner = "geoclue";
42     repo = "geoclue";
43     rev = "refs/tags/${finalAttrs.version}";
44     hash = "sha256-LwL1WtCdHb/NwPr3/OLISwaAwplhJwiZT9vUdX29Bbs=";
45   };
47   patches = [
48     ./add-option-for-installation-sysconfdir.patch
49   ];
51   nativeBuildInputs =
52     [
53       pkg-config
54       intltool
55       meson
56       ninja
57       wrapGAppsHook3
58       python3
59       vala
60       gobject-introspection
61       # devdoc
62       gtk-doc
63       docbook-xsl-nons
64       docbook_xml_dtd_412
65     ]
66     ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
67       mesonEmulatorHook
68     ];
70   buildInputs =
71     [
72       glib
73       json-glib
74       libsoup_3
75       avahi
76     ]
77     ++ lib.optionals withDemoAgent [
78       libnotify
79       gdk-pixbuf
80     ]
81     ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
82       modemmanager
83     ];
85   propagatedBuildInputs = [
86     glib
87     glib-networking
88   ];
90   mesonFlags =
91     [
92       "-Dsystemd-system-unit-dir=${placeholder "out"}/lib/systemd/system"
93       "-Ddemo-agent=${lib.boolToString withDemoAgent}"
94       "--sysconfdir=/etc"
95       "-Dsysconfdir_install=${placeholder "out"}/etc"
96       "-Ddbus-srv-user=geoclue"
97     ]
98     ++ lib.optionals stdenv.hostPlatform.isDarwin [
99       "-D3g-source=false"
100       "-Dcdma-source=false"
101       "-Dmodem-gps-source=false"
102       "-Dnmea-source=false"
103     ];
105   postPatch = ''
106     chmod +x demo/install-file.py
107     patchShebangs demo/install-file.py
108   '';
110   passthru.updateScript = nix-update-script { };
112   meta = with lib; {
113     broken = stdenv.hostPlatform.isDarwin && withDemoAgent;
114     description = "Geolocation framework and some data providers";
115     homepage = "https://gitlab.freedesktop.org/geoclue/geoclue/wikis/home";
116     changelog = "https://gitlab.freedesktop.org/geoclue/geoclue/-/blob/${finalAttrs.version}/NEWS";
117     maintainers = with maintainers; [
118       raskin
119       mimame
120     ];
121     platforms = with platforms; linux ++ darwin;
122     license = licenses.lgpl2Plus;
123   };