Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib, stdenv
2, fetchurl
3, fetchpatch
4, meson
5, ninja
6, pkg-config
7, python3
8, gobject-introspection
9, gtk-doc
10, docbook_xsl
11, docbook_xml_dtd_412
12, glib
13, gupnp-igd
14, gst_all_1
15, gnutls
16}:
17
18stdenv.mkDerivation rec {
19 pname = "libnice";
20 version = "0.1.18";
21
22 outputs = [ "bin" "out" "dev" "devdoc" ];
23
24 src = fetchurl {
25 url = "https://libnice.freedesktop.org/releases/${pname}-${version}.tar.gz";
26 sha256 = "1x3kj9b3dy9m2h6j96wgywfamas1j8k2ca43k5v82kmml9dx5asy";
27 };
28
29 patches = [
30 # Fix generating data
31 # Note: upstream is not willing to merge our fix
32 # https://gitlab.freedesktop.org/libnice/libnice/merge_requests/35#note_98871
33 (fetchpatch {
34 url = "https://gitlab.freedesktop.org/libnice/libnice/commit/d470c4bf4f2449f7842df26ca1ce1efb63452bc6.patch";
35 sha256 = "0z74vizf92flfw1m83p7yz824vfykmnm0xbnk748bnnyq186i6mg";
36 })
37 ];
38
39 nativeBuildInputs = [
40 meson
41 ninja
42 pkg-config
43 python3
44 gobject-introspection
45
46 # documentation
47 gtk-doc
48 docbook_xsl
49 docbook_xml_dtd_412
50 ];
51
52 buildInputs = [
53 gst_all_1.gstreamer
54 gst_all_1.gst-plugins-base
55 gnutls
56 gupnp-igd
57 ];
58
59 propagatedBuildInputs = [
60 glib
61 ];
62
63 mesonFlags = [
64 "-Dgtk_doc=enabled" # Disabled by default as of libnice-0.1.15
65 "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
66 ];
67
68 # Tests are flaky
69 # see https://github.com/NixOS/nixpkgs/pull/53293#issuecomment-453739295
70 doCheck = false;
71
72 meta = with lib; {
73 description = "GLib ICE implementation";
74 longDescription = ''
75 Libnice is an implementation of the IETF's Interactice Connectivity
76 Establishment (ICE) standard (RFC 5245) and the Session Traversal
77 Utilities for NAT (STUN) standard (RFC 5389).
78
79 It provides a GLib-based library, libnice and a Glib-free library,
80 libstun as well as GStreamer elements.'';
81 homepage = "https://libnice.freedesktop.org/";
82 platforms = platforms.linux;
83 license = with licenses; [ lgpl21 mpl11 ];
84 };
85}