1{ lib, stdenv
2, fetchurl
3, pkg-config
4, meson
5, ninja
6, gettext
7, gobject-introspection
8, gtk-doc
9, docbook_xsl
10, docbook_xml_dtd_412
11, glib
12, gupnp
13, gnome
14}:
15
16stdenv.mkDerivation rec {
17 pname = "gupnp-igd";
18 version = "1.2.0";
19
20 outputs = [ "out" "dev" ]
21 ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
22
23 src = fetchurl {
24 url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
25 sha256 = "sha256-S1EgCYqhPt0ngYup7k1/6WG/VAv1DQVv9wPGFUXgK+E=";
26 };
27
28 depsBuildBuild = [
29 pkg-config
30 ];
31
32 nativeBuildInputs = [
33 pkg-config
34 meson
35 ninja
36 gettext
37 gobject-introspection
38 gtk-doc
39 docbook_xsl
40 docbook_xml_dtd_412
41 ];
42
43 propagatedBuildInputs = [
44 glib
45 gupnp
46 ];
47
48 mesonFlags = [
49 "-Dgtk_doc=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}"
50 "-Dintrospection=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}"
51 ];
52
53 # Seems to get stuck sometimes.
54 # https://github.com/NixOS/nixpkgs/issues/119288
55 #doCheck = true;
56
57 passthru = {
58 updateScript = gnome.updateScript {
59 packageName = pname;
60 versionPolicy = "odd-unstable";
61 };
62 };
63
64 meta = with lib; {
65 description = "Library to handle UPnP IGD port mapping";
66 homepage = "http://www.gupnp.org/";
67 license = licenses.lgpl21Plus;
68 platforms = platforms.unix;
69 };
70}