Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ bctoolbox
2, belcard
3, belle-sip
4, belr
5, cmake
6, doxygen
7, fetchFromGitLab
8, jsoncpp
9, libxml2
10, lime
11, mediastreamer
12, python3
13, bc-soci
14, sqlite
15, lib
16, stdenv
17, xercesc
18, zxing-cpp
19}:
20
21stdenv.mkDerivation rec {
22 pname = "liblinphone";
23 version = "5.2.17";
24
25 src = fetchFromGitLab {
26 domain = "gitlab.linphone.org";
27 owner = "public";
28 group = "BC";
29 repo = pname;
30 rev = version;
31 hash = "sha256-zxp+jcClfKm+VsylRtydF2rlDCkO+sa9vw8GpwAfKHM=";
32 };
33
34 postPatch = ''
35 substituteInPlace src/CMakeLists.txt \
36 --replace "jsoncpp_object" "jsoncpp" \
37 --replace "jsoncpp_static" "jsoncpp"
38 '';
39
40 cmakeFlags = [
41 "-DENABLE_STATIC=NO" # Do not build static libraries
42 "-DENABLE_UNIT_TESTS=NO" # Do not build test executables
43 "-DENABLE_STRICT=NO" # Do not build with -Werror
44 ];
45
46 buildInputs = [
47 # Made by BC
48 belcard
49 belle-sip
50 lime
51 mediastreamer
52
53 # Vendored by BC
54 bc-soci
55
56 jsoncpp
57 libxml2
58 (python3.withPackages (ps: [ ps.pystache ps.six ]))
59 sqlite
60 xercesc
61 zxing-cpp
62 ];
63
64 nativeBuildInputs = [
65 cmake
66 doxygen
67 ];
68
69 strictDeps = true;
70
71 # Some grammar files needed to be copied too from some dependencies. I suppose
72 # if one define a dependency in such a way that its share directory is found,
73 # then this copying would be unnecessary. Instead of actually copying these
74 # files, create a symlink.
75 postInstall = ''
76 mkdir -p $out/share/belr/grammars
77 ln -s ${belcard}/share/belr/grammars/* $out/share/belr/grammars/
78 '';
79
80 meta = with lib; {
81 homepage = "https://www.linphone.org/technical-corner/liblinphone";
82 description = "Library for SIP calls and instant messaging";
83 license = licenses.gpl3Plus;
84 platforms = platforms.linux;
85 maintainers = with maintainers; [ jluttine ];
86 };
87}