blob: 5982b9b0dded0552a9e9576f66da6e5a4cd8fff1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
{ stdenv
, lib
, callPackage
, fetchFromGitHub
, fetchzip
, ffmpeg_4
, pjsip
, opendht
, jack
, udev
, qt6Packages
}:
let
version = "20220726.1515.da8d1da";
src = fetchzip {
url = "https://dl.jami.net/release/tarballs/jami_${version}.tar.gz";
hash = "sha256-yK+xo+YpNYmmWyNAE31hiL6HLvDdEFkm8FO6LQmPCL0=";
stripRoot = false;
postFetch = ''
cd $out
mv jami-project/daemon ./
mv jami-project/client-qt ./
mv jami-project/COPYING ./
rm -r jami-project.rst jami-project
rm daemon/contrib/tarballs/*
'';
};
jami-meta = with lib; {
homepage = "https://jami.net/";
description = " for Jami, the free and universal communication platform that respects the privacy and freedoms of its users";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = [ maintainers.linsui ];
};
readLinesToList = with builtins; file: filter (s: isString s && stringLength s > 0) (split "\n" (readFile file));
in
rec {
ffmpeg-jami = ffmpeg_4.overrideAttrs (old:
let
patch-src = src + "/daemon/contrib/src/ffmpeg/";
in
{
patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/ffmpeg_patches));
configureFlags = old.configureFlags
++ (readLinesToList ./config/ffmpeg_args_common)
++ lib.optionals stdenv.isLinux (readLinesToList ./config/ffmpeg_args_linux)
++ lib.optionals (stdenv.isx86_32 || stdenv.isx86_64) (readLinesToList ./config/ffmpeg_args_x86);
outputs = [ "out" "doc" ];
meta = old.meta // {
# undefined reference to `ff_nlmeans_init_aarch64'
broken = stdenv.isAarch64;
};
});
pjsip-jami = pjsip.overrideAttrs (old:
let
patch-src = src + "/daemon/contrib/src/pjproject/";
in
rec {
version = "4af5d666d18837abaac94c8ec6bfc84984dcf1e2";
src = fetchFromGitHub {
owner = "savoirfairelinux";
repo = "pjproject";
rev = version;
sha256 = "sha256-ENRfQh/HCXqInTV0tu8tGQO7+vTbST6XXpptERXMACE=";
};
patches = (map (x: patch-src + x) (readLinesToList ./config/pjsip_patches));
configureFlags = (readLinesToList ./config/pjsip_args_common)
++ lib.optionals stdenv.isLinux (readLinesToList ./config/pjsip_args_linux);
meta = {
knownVulnerabilities = [ "CVE-2022-39269" "CVE-2022-39244" ];
} // old.meta;
});
opendht-jami = opendht.override {
enableProxyServerAndClient = true;
enablePushNotifications = true;
};
jami-daemon = callPackage ./daemon.nix {
inherit version src udev jack jami-meta ffmpeg-jami pjsip-jami opendht-jami;
};
jami-client-qt = qt6Packages.callPackage ./client-qt.nix {
inherit version src jami-meta ffmpeg-jami;
};
}
|